【问题标题】:Amazon Payments: Successful auth, fails on wallet displayAmazon Payments:身份验证成功,钱包显示失败
【发布时间】:2014-12-12 13:16:45
【问题描述】:

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

亚马逊在身份验证后成功重定向到我的回调 URL。但是,当我尝试使用 Same Seller 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>

为什么验证会起作用,但钱包显示会被拒绝?

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

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

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

【问题讨论】:

  • 查看this,在钱包选项卡上...您在哪里定义了顶部?
  • 也...starting on page 19 这比我在网上找到的任何其他地方都更详细。有时错误并不完全准确,也可能是其他一些信息丢失。
  • 你在沙箱里吗?
  • @gloomy.penguin 我确实定义了那部分,只是把它省略了,将重新检查您链接的文档
  • @Abkarino 是的,在沙盒模式下

标签: javascript amazon-pay


【解决方案1】:

您需要登录您的卖家中心账户,确保在顶部的下拉菜单中选择“Amazon Payments Advanced”,点击右上角的“设置”,然后点击“集成设置”。在此页面上,您将看到“您的商家 ID”。这是您的卖家 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>

【讨论】:

  • 我认为他只是为了隐藏他的个人信息!
  • 其实他说对了一半,我使用了错误的卖家 ID。我按照集成设置的说明进行操作,现在我正在使用该页面中的“商家 ID”。我现在遇到一个不同的错误,所以我更新了问题
  • 这通常意味着您的帐户有问题。在卖家中心点击“设置”>“账户信息”。在“产品状态”部分,它应该告诉您需要更正的内容。
  • 显示“未激活。您只能在沙盒环境中进行交易。请参考您的帐户验证状态或联系卖家支持。”但是我在沙盒模式下进行测试,它不应该工作吗?
  • 跟进:所以有两个问题 1)我包含错误的卖家 ID 的单个脚本链接 2)“无效帐户状态”问题是一个错误的剪切和粘贴,我是使用生产脚本 URL 而不是沙箱。感谢您的帮助
【解决方案2】:

我搜索了同样的错误,我发现了这个link.

这表明“您需要使用 SandBox 凭证进行 Amazon Payments。”

检查这个link.

【讨论】:

  • 我使用的是沙盒帐户,我将创建另一个测试用户以确保
  • 创建了一个新的测试买家帐户,我得到了同样的错误
  • 我认为您应该尝试从头开始逐步阅读指南或使用示例代码进行测试,以便您了解问题根源。
  • 我从分步指南开始。如果您查看我的代码,它是从 Pay with Amazon - 自动付款部分剪切和粘贴的
猜你喜欢
  • 1970-01-01
  • 2021-11-23
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
相关资源
最近更新 更多