我如何获得"地址同意令牌#34;亚马逊登录后?

时间:2015-05-08 20:09:10

标签: amazon-web-services

我正在使用OffAmazonPayments JS库来允许用户登录他们的亚马逊帐户,访问他们的地址簿,并最终使用他们的亚马逊帐户付款。 AddressBook小部件将让我检索一般地址信息,但没有地址同意令牌,我无法获取街道地址。

http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetOrderReferenceDetails.html

这个链接表明我可以在认证后从Button对象中检索地址同意令牌,但是不清楚它是如何工作的;在登录按钮的定义中,有一个" onSignIn"收到orderReference对象的回调,但该对象似乎不包含任何此类令牌。

1 个答案:

答案 0 :(得分:2)

请参阅Amazon Payments文档..特别是此页面:https://payments.amazon.com/documentation/lpwa/201953150

正如您在下面的代码片段中所看到的(从所述页面中获取),您可以从“amazon.Login.authorize(...)”函数中检索令牌。

注意:您首先必须在“scope”参数“payments:shipping_address”中添加作为您的范围之一才能获得“地址同意令牌”。下面我将包括其他范围,以便您可以看到如何列出多个范围。

CAPS字/参数将替换为您自己想要的参数。

<script type="text/javascript">


  var authRequest;
  var addressConsentToken;
  OffAmazonPayments.Button("AmazonPayButton", "YOUR_SELLER_ID", {
    type:  "ENTER_TYPE_PARAMETER",
    color: "ENTER_COLOR_PARAMETER",
    size:  "ENTER_SIZE_PARAMETER",
    language: "ENTER_LANGUAGE_PARAMETER",

    authorization: function() {
      loginOptions = {scope: "profile payments:widget payments:shipping_address", 
                      popup: "ENTER_POPUP_PARAMETER"};
      authRequest = amazon.Login.authorize (loginOptions,
        function(response) {
          addressConsentToken = response.access_token;
        });
    },
    onSignIn: function (orderReference) {
      var referenceId = orderReference.getAmazonOrderReferenceId();

      if (!referenceId) {
        errorHandler(new Error('referenceId missing'));
      } else {
        window.location = "YOUR_REDIRECT_URL" + '?referenceId=' + 
          orderReference.getAmazonOrderReferenceId() + 
          "&access_token=" + addressConsentToken;
      }
    },
    onError:errorHandler || function(error) {
      // your error handling code
    }
  });
</script>