Возникли проблемы с оплатой через Apple Pay с использованием Braintree Javascript SDK - PullRequest
2 голосов
/ 25 апреля 2019

Я включил Apple Pay в свое веб-приложение, используя Braintree Javascript SDK. В настоящее время включен режим Песочница .

  1. Появляется всплывающее окно с просьбой ввести адрес для выставления счета и информация о добавленной карте.

  2. Процесс оплаты по Touch Id может быть выполнен. Тем не менее, он говорит «Платеж не завершен»

Вот код ниже:

  1. Добавлены файлы сценариев 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>
  1. Код 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();
                        }
                    });
                });
            });
    
  2. Приложен скриншот с ошибкой платежа. enter image description here

Может кто-нибудь помочь, что идет не так?

  1. Вход в iCloud завершен.
  2. Карта добавлена.
  3. Добавлен платежный адрес.
  4. Но оплата не удалась?

Пожалуйста, помогите! Спасибо.

...