如何使用JavaScript从Apple Pay获取与Apple Pay帐户关联的用户电子邮件地址

时间:2018-01-04 14:58:01

标签: applepayjs

我想知道Apple是否有一个API,我们可以使用它来获取与Apple支付帐户相关联的用户电子邮件地址。

仅供参考我使用苹果支付js(ApplePaySession)进行苹果支付。 或者是否有其他方法可以通过JavaScript从Apple pay中获取用户的电子邮件地址。

谢谢!

2 个答案:

答案 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);
};