亚马逊支付:成功验证,钱包显示失败

时间:2014-10-17 02:08:10

标签: javascript amazon-pay

我正在尝试将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>

亚马逊在身份验证后成功重定向到我的回调网址。但是当我尝试使用相同卖家ID 显示钱包小部件时,我收到“无效的卖家ID”错误:

<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>

enter image description here

为什么验证会有效,只是让电子钱包显示被拒绝?

更新 @Brent道格拉斯在他的回答中触发我重新检查我的卖家ID,并在我的一个脚本引用中指定了错误的ID。现在我收到以下错误:

  

“卖方ID未处于执行请求的适当状态”

不确定这意味着什么。我检查了我的帐户并指定了存款/银行信息,并且集成设置页面上没有标记任何其他信息。帐户中是否还有其他需要添加/验证的内容? (除了典型的网页网址和其他信息)

2 个答案:

答案 0 :(得分:2)

您需要登录卖家中心帐户,确保&#34;亚马逊支付高级&#34;在顶部的下拉列表中选中,单击&#34;设置&#34;在右上角,然后&#34;集成设置&#34;。在此页面上,您将看到&#34;您的商家ID&#34;。这是您的卖家ID。将M_MYSELLERID_1234567替换为此卖家ID无处不在。

假设您使用的是正确的卖家ID,您还需要确保在您显示钱包小部件的句柄登录页面中包含以下内容。

<!-- 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>

答案 1 :(得分:0)

我搜索了同样的错误,我找到了这个link.

建议&#34;您需要使用SandBox凭据进行Amazon Payments。 &#34;

选中此link.