Loading
Centro de contacto Agentforce
Índice de materias
Seleccionar filtros

          No hay resultados
          No hay resultados
          Estas son algunas sugerencias de búsqueda

          Compruebe la ortografía de sus palabras clave.
          Utilice términos de búsqueda más generales.
          Seleccione menos filtros para ampliar su búsqueda.

          Buscar en toda la Ayuda de Salesforce
          Fragmentos de código de muestra para clases Apex

          Fragmentos de código de muestra para clases Apex

          Utilice estas clases Apex para definir los parámetros requeridos para la integración de WhatsApp Pay.

          Estas son las clases Apex de muestra que configura.

          • Total de pago
          • Partidas de pago
          • Contexto de pedido
          • Iniciaciones de pago

          Total de pago

          Esta clase calcula y proporciona el importe total que paga el cliente. Representa el costo de transacción final después de que el sistema aplique todos los cálculos.

          Total de pago
          Total de pago
          
          public with sharing class GetPaymentTotal {
              
              @InvocableMethod
              public static List<Outputs> getPaymentTotal() {
                  Double amount = 0.25;
                  List<Outputs> result = new List<Outputs>();
                  RichMessaging.PaymentLineItem total = new RichMessaging.PaymentLineItem('total amount', amount);
          
                  total.amountValue = 1.5;
                  
                  Outputs o1 = new Outputs();
                  o1.paymentLineItem = total;
                  
                  result.add(o1);
                  return result;
              }
              
              public class Outputs {
                  @InvocableVariable
                  public RichMessaging.PaymentLineItem paymentLineItem;
              }
              
          }
          
           

          Partidas de pago

          Esta clase genera un recibo desglosado para el cliente. Enumera los productos o servicios individuales, como una pizza o pasta, y sus precios de modo que el comprador pueda revisar su carrito directamente en el chat de WhatsApp.

          Partidas de pago
          Partidas de pago
          public with sharing class GetPaymentLineItems {
              
              @InvocableMethod
              public static List<List<RichMessaging.PaymentLineItem>> getLineItems() {
                  Double amount = 0.25;
                  Double amount1 = 1.25;
                  List<List<RichMessaging.PaymentLineItem>> result = new List<List<RichMessaging.PaymentLineItem>>();
                  RichMessaging.PaymentLineItem pizza = new RichMessaging.PaymentLineItem('pizza', amount);
                  RichMessaging.PaymentLineItem pasta = new RichMessaging.PaymentLineItem('pasta', amount1);
                  pizza.statusValue = RichMessaging.PaymentItemStatus.FinalCost;
                  pasta.statusValue = RichMessaging.PaymentItemStatus.FinalCost;
                  
                  RichMessaging.OrderItemCommerceAttributes commerceAttrs = new RichMessaging.OrderItemCommerceAttributes();
                  commerceAttrs.retailerIdValue = 'retailed_id';
                  commerceAttrs.categoryValue = RichMessaging.OrderItemCategory.Product;
                  
                  pizza.commerceValue = commerceAttrs;
                  pasta.commerceValue = commerceAttrs;
                  
                  List<RichMessaging.PaymentLineItem> options = new List<RichMessaging.PaymentLineItem>{
                      pizza, pasta
                  };
                  result.add(options);
                  return result;
              }
              
          }
           

          Contexto de pedido

          Esta clase define los detalles de fondo y la logística del pedido. Actúa como las “condiciones” y la “etiqueta de envío”, y proporciona metadatos necesarios como direcciones de facturación y envío, el tiempo de caducidad del vínculo de pago y el tipo de bienes que se venden.

          Contexto de pedido
          Contexto de pedido
          public with sharing class GetOrderContext {
              
              @InvocableMethod
              public static List<OrderContextOutputs> getOrderContext() {
                  RichMessaging.OrderContext orderContext = new RichMessaging.OrderContext();
                  RichMessaging.OrderExpiration orderExpiration = new RichMessaging.OrderExpiration();
                  orderExpiration.description = 'Expiration Description';
                  orderExpiration.timestamp = 2342534536L;
                  orderContext.expiration = orderExpiration;
                  orderContext.catalogId = 'CAT-001';
                  orderContext.typeValue = RichMessaging.OrderType.DigitalGoods;
                  orderContext.checkoutBehaviorValue = RichMessaging.PaymentCheckoutBehavior.QuickPay;
                  orderContext.referenceId = 'REF-001';
                  List<RichMessaging.OrderBeneficiary> beneficiaries = new List<RichMessaging.OrderBeneficiary>();
                  RichMessaging.OrderBeneficiary beneficiaryA = new RichMessaging.OrderBeneficiary();
                  beneficiaryA.name = 'beneficiary Name A';
                  beneficiaryA.phone = 'beneficiary Phone A';
                  List<String> addressLinesA = new List<String>();
                  addressLinesA.add('Addresss Line 1');
                  addressLinesA.add('Addresss Line 2');
                  RichMessaging.Address addressA = new RichMessaging.Address();
                  addressA.addressLines = addressLinesA;
                  addressA.subLocality = 'subLocality A';
                  addressA.locality = 'locality A';
                  addressA.postalCode = '111111';
                  addressA.subAdministrativeArea = 'subAdministrativeArea A';
                  addressA.administrativeArea = 'administrativeArea A';
                  addressA.country = 'India';
                  addressA.countryCode = 'IN';
                  beneficiaryA.address = addressA;
                  RichMessaging.OrderBeneficiary beneficiaryB = new RichMessaging.OrderBeneficiary();
                  beneficiaryB.name = 'beneficiary Name B';
                  beneficiaryB.phone = 'beneficiary Phone B';
                  List<String> addressLinesB = new List<String>();
                  addressLinesB.add('Addresss Line 1');
                  addressLinesB.add('Addresss Line 2');
                  RichMessaging.Address addressB = new RichMessaging.Address();
                  addressB.addressLines = addressLinesB;
                  addressB.subLocality = 'subLocality B';
                  addressB.locality = 'locality B';
                  addressB.postalCode = '222222';
                  addressB.subAdministrativeArea = 'subAdministrativeArea B';
                  addressB.administrativeArea = 'administrativeArea B';
                  addressB.country = 'India';
                  addressB.countryCode = 'IN';
                  beneficiaryB.address = addressB;
                  beneficiaries.add(beneficiaryA);
                  beneficiaries.add(beneficiaryB);
                  orderContext.beneficiaries = beneficiaries;
                  OrderContextOutputs output = new OrderContextOutputs();
                  output.orderContext = orderContext;
                  List<OrderContextOutputs> result = new List<OrderContextOutputs>();
                  result.add(output);
                  return result;
              }
              public class OrderContextOutputs {
                  @InvocableVariable
                  public RichMessaging.OrderContext orderContext;
              }
          }
           

          Iniciaciones de pago

          Esta clase configura cómo puede pagar el cliente. Especifica los métodos de pago aprobados, como PIX o Boleto, y proporciona los códigos de enrutamiento subyacentes y las claves de cuenta requeridas para procesar la transacción.

          Iniciaciones de pago
          Iniciaciones de pago
          public class GetPaymentInitiations {
              @InvocableMethod
              public static List<List<RichMessaging.PaymentInitiation>> getPaymentInitiation() {
                  List<List<RichMessaging.PaymentInitiation>> result = new List<List<RichMessaging.PaymentInitiation>>();
                  RichMessaging.PaymentInitiation pixPaymentInitiation = new RichMessaging.PaymentInitiation();
                  pixPaymentInitiation.modeValue = RichMessaging.PaymentInitiationMode.ExternalPaymentApp;
                  RichMessaging.PaymentInitiationPix pixValue = new RichMessaging.PaymentInitiationPix();
                  pixValue.keyValue = '12345678901';
                  pixValue.keyTypeValue = RichMessaging.PaymentPixKeyType.Cpf;
                  pixValue.codeValue = '12345678901';
                  pixPaymentInitiation.pix = pixValue;
                  RichMessaging.PaymentInitiation boletoPaymentInitiation = new RichMessaging.PaymentInitiation();
                  boletoPaymentInitiation.modeValue = RichMessaging.PaymentInitiationMode.ExternalPaymentApp;
                  RichMessaging.PaymentInitiationBoleto boletoValue = new RichMessaging.PaymentInitiationBoleto();
                  boletoValue.digitableLine = '03399026944140000002628346101018898510000008848';
                  boletoPaymentInitiation.boleto = boletoValue;
                  List<RichMessaging.PaymentInitiation> options = new List<RichMessaging.PaymentInitiation>{
                      pixPaymentInitiation, boletoPaymentInitiation
                  };
                  result.add(options);
                  return result;
              }
          }
           
           
          Cargando
          Salesforce Help | Article