微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何获得 EC_v1 版本的 Apple Pay PaymentToken

如何解决我如何获得 EC_v1 版本的 Apple Pay PaymentToken

我正在尝试将 Apple Pay 集成到我的应用程序中。遵循在线文档和一些 SO 帮助,我设法显示了 Apple Pay 付款对话框,并且所有回调都已配置。

Apple Pay 返回的响应是这样的

{
"version": "RSA_v1","signature": "somestring","data": "DP...A=","header": {
    "wrappedKey": "MF...5g==","publicKeyHash": "kd...l4=","transactionId": "a5...3e"
    }
}

但我的要求是在 ephemeralPublicKey 对象下获取 header。根据 Apple Pay Payment Token Format Reference ,返回的对象是正确的,因为它的 RSA_v1 version 不会有 ephemeralPublicKey 但有 wrappedKey。现在我的问题是如何获取返回的令牌对象的 EC_v1 version

可能是我在文档中遗漏了一些东西,但请有人指出我正确的方向。任何帮助表示赞赏。

解决方法

这是从 Apple Pay 网关服务器获取此返回响应的方法。您无法直接在控制台中看到此响应。仅当您使用 ajax 请求将其记录在服务器上时,您才能看到此响应。请参阅下面的示例 URL 和我的源代码。

初学者的完整文档 https://gist.github.com/jagdeepsingh/c538e21f3839f65732a5932e35809d60

session.onpaymentauthorized = (event) => {

    $("#paymentMethodVal").val("apple-pay");
    $form = $("#reservation-form");

    console.log($form.serialize());
    callRequest({
        url: '/reserve/init-apple-pay',method: 'POST',data: {
            token: event.payment.token,reservationData: $form.serialize()
        },beforeRequest: function(e) {},afterRequest: function(response) {
            response = JSON.parse(response);
            if(response.status){
               toastr.success(response.message);
               session.completePayment(ApplePaySession.STATUS_SUCCESS);
            }else{
                toastr.error(response.message.split(/\r\n|\r|\n/g).join('<br/>'));
                session.completePayment(ApplePaySession.STATUS_FAILURE);
            }
        }
    });
};

token: event.payment.token, 行是您的答案,这会将数据直接发送到服务器,您可以在那里记录数据。

{
 "version": "RSA_v1","signature": "somestring","data": "DP...A=","header": {
   "wrappedKey": "MF...5g==","publicKeyHash": "kd...l4=","transactionId": "a5...3e"
 }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。