ApplePay API接入流程备份
对接流程
1. Apple Pay 证书
https://网站域名/.well-known/apple-developer-merchantid-domain-association.txt
2. 前端
2.1 前端引入Apple Pay
2.1.1 在网站引入apple pay
<script src="https://applepay.cdn-apple.com/jsapi/v1.1.0/apple-pay-sdk.js"></script>
2.1.2 渲染Apple Pay button
if (window.ApplePaySession) {
var merchantIdentifier = 'YOUR MERCHANT IDENTIFIER';
var promise = ApplePaySession.canMakePaymentsWithActiveCard(merchantIdentifier);
promise.then(function (canMakePayments) {
if (canMakePayments)
// Display Apple Pay button here.
}); }
环境 | 值 |
---|---|
sandbox | merchant.com.sandbox.useepay |
prod | merchant.com.gateway.useepay |
一.获取ApplePay验证文件
https://checkou.useepay.com/.well-known/apple-developer-merchantid-domain-association.txt
完成后联系UseePay的工作人员,进行网站的绑定。
二.挂载Apple Pay SDK
三.检查Apple Pay是否可用
if (window.ApplePaySession) {
var merchantIdentifier = 'YOUR MERCHANT IDENTIFIER';
var promise = ApplePaySession.canMakePaymentsWithActiveCard(merchantIdentifier);
promise.then(function (canMakePayments) {
if (canMakePayments)
// Display Apple Pay button here.
}); }
生产环境使用merchant.com.gateway.useepay
四.构建ApplePay Request
const request = {
"countryCode": "US",
"currencyCode": "",
"merchantCapabilities": [
"supports3DS",
"supportsDebit",
"supportsCredit"
],
"supportedNetworks": [
"visa",
"masterCard",
"amex",
"discover",
],
"total": {
"label": "",
"amount": "",
"type": "final"
}
}
五.构建ApplePaySession
后续使用此session
三.获取MerchantSession
session.onvalidatemerchant = async event => {
// Call your own server to request a new merchant session.
const merchantSession = await Api.merchantSession(sessionRequest);
session.completeMerchantValidation(merchantSession);
};
六. 后续session动作
session.onpaymentmethodselected = event => {
event.eventName = "onpaymentmethodselected"
Api.applepayLogEvent(event);
// Define ApplePayPaymentMethodUpdate based on the selected payment method.
// No updates or errors are needed, pass an empty object.
var newTotal = {
"label": //交易网址//,
"amount": //交易金额//,
"type": "final"
};
var newLineItems = [
// {
// "type": "final",
// "label": "Sales Tax",
// "amount": "1.00"
// },
// {
// "type": "final",
// "label": "Shipping",
// "amount": "0.00"
// }
];
var update = {
newTotal: newTotal,
newLineItems: newLineItems
};
session.completePaymentMethodSelection( update );
};
session.onshippingmethodselected = event => {
event.eventName = "onshippingmethodselected"
// Define ApplePayShippingMethodUpdate based on the selected shipping method.
// No updates or errors are needed, pass an empty object.
const update = {};
session.completeShippingMethodSelection(update);
};
session.onshippingcontactselected = event => {
event.eventName = "onshippingcontactselected"
Api.applepayLogEvent(event);
// Define ApplePayShippingContactUpdate based on the selected shipping contact.
const update = {};
session.completeShippingContactSelection(update);
};
七.进行支付
session.onpaymentauthorized = async event => {
const applepayPaymentRequest = buildApplepayPaymentRequest();
const applepayPaymentResponse = await Api.applepayPayment(applepayPaymentRequest);
session.completePayment(applepayPaymentResponse.applePayPaymentAuthorizationResult);
// 处理apple pay支付结果
processApplepayPaymentResponse(applepayPaymentResponse);
};
修改于 2024-05-14 10:02:44