我想知道Apple是否有一个API,我们可以使用它来获取与Apple支付帐户相关联的用户电子邮件地址。
仅供参考我使用苹果支付js(ApplePaySession)进行苹果支付。 或者是否有其他方法可以通过JavaScript从Apple pay中获取用户的电子邮件地址。
谢谢!
答案 0 :(得分:0)
用户授权交易后,您将获得 shippingContact 对象,如下所示: -
#include <Array.au3>
$str = "1 foot 1 inch" & @CR & _
"2 feet 2 inches" & @CR & _
"3 feet 3 inches" & @CR & _
"1 inch" & @CR & _
"2 inches" & @CR & _
"3 in" & @CR & _
"2 feet" & @CR & _
"1 foot" & @CR & _
"3 ft"
$rows_A = StringSplit($str, @CR, 2)
;~ _ArrayDisplay($rows_A, 'Rows')
;~ 33.02 centimeters
;~ 66.04 centimeters
;~ 99.06 centimeters
;~ 2.54 centimeters
;~ 5.08 centimeters
;~ 7.62 centimeters
;~ 30.48 centimeters
;~ 60.96 centimeters
;~ 91.44 centimeters
Local $sum = 0
For $i = 0 To UBound($rows_A) - 1
If StringRegExp($rows_A[$i], '(\d.*?\d.*?)', 0) Then
$splitted_row_A = StringRegExp($rows_A[$i], '(\d)\s*(\w+)', 3)
;~ _ArrayDisplay($splitted_row_A)
$sum = 0
For $y = 0 To UBound($splitted_row_A) - 2
If StringInStr($splitted_row_A[$y + 1], 'in') Then
$sum += $splitted_row_A[$y] * 2.54
ElseIf StringInStr($splitted_row_A[$y + 1], 'f') Then
$sum += $splitted_row_A[$y] * 30.48
EndIf
Next
If $sum > 0 Then ConsoleWrite($rows_A[$i] & ' => ' & $sum & @CRLF)
Else
If StringInStr($rows_A[$i], 'in') Then ConsoleWrite($rows_A[$i] & ' = ' & $rows_A[$i] * 2.54 & @CRLF)
If StringInStr($rows_A[$i], 'f') Then ConsoleWrite($rows_A[$i] & ' = ' & $rows_A[$i] * 30.48 & @CRLF)
EndIf
Next
您可以从此对象访问电子邮件ID。
答案 1 :(得分:0)
电子邮件地址在ApplePaySession的onpaymentauthorized
回调中提供。
注意:这是一个继承的属性,因此在您的开发者控制台中找到它可能有些困难(在Chrome中,您必须深入查看事件的__proto__属性)。
您必须在付款申请中添加requiredShippingContactFields
财产,专门询问电子邮件地址:
requiredShippingContactFields: [
'phone',
'email'
]
电子邮件地址将如下:
var session = new ApplePaySession(2, myPaymentRequest);
session.onpaymentauthorized = function(event){
console.log(event.payment.shippingContact.shippingAddress);
};