您在此处:
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;
}
}
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;
}
}
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;
}
}

