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>