Amazon Payments: успешная авторизация, сбой на дисплее кошелька

Я пытаюсь интегрировать Amazon Payments (только оплата, а не вход с помощью Amazon) в мой сайт.

Я могу успешно отобразить форму аутентификации для оплаты:

<div id="AmazonPayButton" />
          @{
              var callbackurl = string.Format("{0}://{1}/Account/AmazonConfirm", Request.Url.Scheme, Request.Url.Authority);
           }
           <script type="text/javascript">
               OffAmazonPayments.Button("AmazonPayButton", "M_MYSELLERID_1234567", {
                   type: "PwA",
                   size: "medium",
                   authorization: function() {
                      loginOptions =
                           {scope: "payments:widget", popup: true };
                      authRequest = amazon.Login.authorize(loginOptions, "@(callbackurl)");
                   },
                   onError: function(error) {
                        alert('We could not connect to Amazon to process your payment, try again later');
                   }
              });
      </script>
</div>

Amazon успешно перенаправляет на мой URL обратного вызова после аутентификации. Но когда я пытаюсь отобразить виджет кошелька с тем же идентификатором продавца, я получаю ошибку "неверный идентификатор продавца":

<div id="walletWidgetDiv">
    </div>
    <script>
        new OffAmazonPayments.Widgets.Wallet({
            sellerId: 'M_MYSELLERID_1234567',
            onReady: function(billingAgreement) {
                var billingAgreementId = billingAgreement.getAmazonBillingAgreementId();
            },
            agreementType: 'BillingAgreement',
            design: {
                size : {width:'400px', height:'260px'}
            },
            onPaymentSelect: function(billingAgreement) {
                // Replace this code with the action that you want to perform
                // after the payment method is selected.
            },
            onError: function(error) {
                alert(error.getErrorMessage());
            }
      }).bind("walletWidgetDiv");
    </script>

Почему аутентификация будет работать только для отклонения отображения кошелька?

Обновление @Brent Douglas в своем ответе заставило меня перепроверить мой идентификатор продавца, и я указал неверный идентификатор в одной из ссылок на мои скрипты. Теперь я получаю следующую ошибку:

"Идентификатор продавца находится не в соответствующем состоянии для выполнения запроса"

Не уверен, что это значит. Я проверил свой аккаунт, указана информация о депозите / банковском обслуживании, и на странице " Настройки интеграции" больше ничего не отмечено. Есть ли что-то еще в учетной записи, что нужно добавить / проверить? (Кроме обычного, URL веб-страницы и другой информации)

2 ответа

Решение

Вам необходимо войти в свою учетную запись продавца Central, убедиться, что в раскрывающемся меню вверху выбран пункт "Amazon Payments Advanced", нажать "Настройки" в правом верхнем углу, затем "Настройки интеграции". На этой странице вы увидите "Ваш идентификатор продавца". Это ваш идентификатор продавца. Замените M_MYSELLERID_1234567 этим идентификатором продавца везде.

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

<!-- since you are using 'popup' -->
<script type='text/javascript'>
    window.onAmazonLoginReady = function () {
        amazon.Login.setClientId('[YOUR_CLIENT_ID]');
        amazon.Login.setUseCookie(true);
    };
</script>

Затем вам нужно включить файл Widgets.js.

Для режима песочницы вы бы использовали это.

<script src='https://static-na.payments-amazon.com/OffAmazonPayments/us/sandbox/js/Widgets.js'></script>

Для производства вы бы использовали это.

<script src='https://static-na.payments-amazon.com/OffAmazonPayments/us/js/Widgets.js'></script>

Я искал вокруг с той же самой точной ошибкой, и я нашел эту ссылку.

Что говорит о том, что "вам нужно использовать учетные данные SandBox для платежей Amazon".

Проверьте эту ссылку.

Другие вопросы по тегам