我正在使用OffAmazonPayments JS库来允许用户登录他们的亚马逊帐户,访问他们的地址簿,并最终使用他们的亚马逊帐户付款。 AddressBook小部件将让我检索一般地址信息,但没有地址同意令牌,我无法获取街道地址。
这个链接表明我可以在认证后从Button对象中检索地址同意令牌,但是不清楚它是如何工作的;在登录按钮的定义中,有一个" onSignIn"收到orderReference对象的回调,但该对象似乎不包含任何此类令牌。
答案 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>