Я включил Apple Pay в свое веб-приложение, используя Braintree Javascript SDK. В настоящее время включен режим Песочница .
Появляется всплывающее окно с просьбой ввести адрес для выставления счета и информация о добавленной карте.
Процесс оплаты по Touch Id может быть выполнен. Тем не менее, он говорит «Платеж не завершен»
Вот код ниже:
- Добавлены файлы сценариев Apply Pay и Braintree SDK в HTML-тег head
<script src="https://js.braintreegateway.com/web/3.44.2/js/client.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.44.2/js/apple-pay.min.js"></script>
Код Braintree для создания клиента и создания Apple Pay Session при нажатии кнопки.
braintree.client.create({
authorization: data.result.token
}, function (clientErr, clientInstance) {
if (clientErr) {
console.error('Error creating client:', clientErr);
return;
}
braintree.applePay.create({
client: clientInstance
}, function (applePayErr, applePayInstance) {
if (applePayErr) {
console.error('Error creating applePayInstance:', applePayErr);
return;
}
var finalAmt = parseFloat($("#final_amount").text());
$("#shipcheckout").on("touchend",function(){
var error = teShipmentForm();
if(!error){
var paymentRequest = applePayInstance.createPaymentRequest({
total: {
label: "Oranization Name",
amount: finalAmt
},
requiredBillingContactFields: ["postalAddress"]
});
var session = new ApplePaySession(3, paymentRequest);
session.onvalidatemerchant = function (event) {
applePayInstance.performValidation({
validationURL: event.validationURL,
displayName: 'Organization Name'
}, function (err, merchantSession) {
if (err) {
console.log("Apple pay failed to load onvalidatemerchant");
return;
}
session.completeMerchantValidation(merchantSession);
});
};
session.onpaymentauthorized = function (event) {
applePayInstance.tokenize({
token: event.payment.token
}, function (tokenizeErr, payload) {
if (tokenizeErr) {
session.completePayment(ApplePaySession.STATUS_FAILURE);
return;
}
// Send payload.nonce to your server.
console.log('nonce:', payload.nonce);
createTransaction(payload.nonce,finalAmt); // sending nonce to server to make final payment
console.log('billingPostalCode:', event.payment.billingContact.postalCode);
session.completePayment(ApplePaySession.STATUS_SUCCESS);
});
};
session.begin();
}
});
});
});
Приложен скриншот с ошибкой платежа.
![enter image description here](https://i.stack.imgur.com/I2l1J.png)
Может кто-нибудь помочь, что идет не так?
- Вход в iCloud завершен.
- Карта добавлена.
- Добавлен платежный адрес.
- Но оплата не удалась?
Пожалуйста, помогите! Спасибо.