Loading
Agentforce 联系中心
目录
选择筛选器

          没有结果
          没有结果
          以下是一些搜索提示

          检查关键字的拼写。
          使用更普遍的搜索词。
          选择更少的筛选器,并扩大搜索范围。

          搜索所有 Salesforce 帮助
          Apex 类的代码片段示例

          Apex 类的代码片段示例

          使用这些 Apex 类定义 WhatsApp Pay 集成所需的参数。

          以下是您配置的示例 Apex 类。

          • 付款总额
          • 付款行项目
          • 订单上下文
          • 付款启动

          付款总额

          该类计算并提供客户支付的总金额。它表示系统应用所有计算后的最终交易成本。

          付款总额
          付款总额
          
          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;
              }
              
          }
          
           

          付款行项目

          该类会为客户生成明细收据。它列出了单个产品或服务,例如比萨饼或意大利面,以及它们的价格,以便购买者可以直接在 WhatsApp 聊天中查看他们的购物车。

          付款行项目
          付款行项目
          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;
              }
              
          }
           

          订单上下文

          该类定义了订单的背景详细信息和后勤。它充当“条款和条件”和“发货标签”,并提供必要的元数据,例如开单和发货地址、付款链接的到期时间和正在销售的商品类型。

          订单上下文
          订单上下文
          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;
              }
          }
           

          付款启动

          该类配置客户如何付款。它指定批准的付款方式,例如 PIX 或 Boleto,并提供处理交易所需的基础路由代码和帐户密钥。

          付款启动
          付款启动
          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;
              }
          }
           
           
          正在加载
          Salesforce Help | Article