Как асинхронно вызывать метод Square API - PullRequest
0 голосов
/ 08 апреля 2019

Как вызвать метод paymentForm.requestCardNonce () асинхронным

Я интегрирую квадратный платежный шлюз в AngularJs. Теперь у меня есть ситуация, когда мне нужно вызвать paymentForm.requestCardNonce(), и этот метод вызывает веб-сервис в фоновом режиме. Теперь мне нужно дождаться фонового вызова, чтобы продолжить процесс. Так, как я могу обработать обратный вызов от paymentForm.requestCardNonce() метода, который обеспечивается Квадратным платежным шлюзом https://docs.connect.squareup.com/payments/sqpaymentform/setup

Пример кода инициализации

var paymentForm = new SqPaymentForm({
    applicationId: "sandbox-xxx-xxxxxxxxxxxx",
    inputClass: 'sq-input',
    callbacks: {
        cardNonceResponseReceived: function (errors, nonce, cardData, billingContact, shippingContact) {
        // I am receiving response of web service Here
        }
    }
}

Как я могу получить успешный ответ в своей пользовательской функции, вызвав в ней метод? (Примечание - он тоже работает и вызывает метод, но я должен сделать следующие шаги на основе ответа от веб-службы)

addCard = function () {
   paymentForm.requestCardNonce();
   // Till this function executes I need to wait here. how can I write promise here ?
}

Refrence LInks https://docs.connect.squareup.com/payments/sqpaymentform/how-it-works

https://github.com/square/connect-api-examples/tree/master/templates/web-ui/payment-form/basic

1 Ответ

0 голосов
/ 24 июля 2019

Для потомков, извлечение из комментариев.

requestCardNonce является асинхронным, и после его завершения вызовет cardNonceResponseReceived, поэтому, если вы хотите вызвать функцию после ее завершения, вам следуетпоместите это в cardNonceResponseReceived.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...