java - 如何在 PayPal 支付网关中集成 3D Secure 身份验证?
问题描述
祝大家有美好的一天。我目前正在我的一个项目中集成 PayPal 支付网关(后端)。这是我第一次在支付网关工作。我想使用贝宝的 Orders API 集成 3D 安全身份验证。任何人都可以告诉我使用 3D 安全身份验证集成 Paypal 的 API 流程吗?
例如:我已经使用 POSTMAN 测试了没有 3D Secure 身份验证的正常流程。流程如下所示。
- 我从前端获取金额和货币。
- 我使用从公司数据库收到的 clientID 和密钥创建访问令牌。
- 然后我使用https://api.sandbox.paypal.com/v2/checkout/orders API创建一个订单。
- 我从https://www.paypal.com/checkoutnow?token=5O190127TN364715T之类的响应中获得了结帐链接
- 我将用户重定向到此链接,该链接将用户重定向到 Paypal 页面以进行付款。完成付款后,我将用户重定向到成功/失败 URL,该 URL 还包含令牌和付款人 ID。
- 然后我使用https://api-m.paypal.com/v2/checkout/orders/ <token/orderID>/capture 完成支付。
现在我想为其添加 3D Secure 身份验证。从集成 3D Secure 的文档中,我发现我需要在其中添加支付源,并在 Card 对象中添加SCA_ALWAYS作为验证属性。但是我怎样才能让支付源作为请求在正文中提供?(仅供参考,我不应该使用 PayPal 的任何库作为公司政策)
解决方案
当重定向到https://www.paypal.com/checkoutnow?token=5O190127TN364715T
您的示例中的 PayPal 结帐页面时(或者为了更好的用户体验,永远不要重定向,而是使用保持您的网站加载的上下文弹出窗口),不需要实施 3D 安全。如果需要,PayPal 将提供任何 3D 安全流程,这将取决于买家账户及其所在国家和所使用的信用卡,并且可能仅在第一次使用该卡时发生。
实施 3D 安全仅适用于直接卡集成,例如高级信用卡和借记卡(带或不带托管字段)或Braintree 网关。
推荐阅读
- angular - 使用IONIC框架的角度未定义变量
- javascript - 在 Chrome 扩展程序中使用 Gmail API 发送电子邮件时获取 401 状态
- c# - asp.net / EntityFramework - 为什么我的应用程序池崩溃?
- npm - 如何防止在 node_modules 中嵌套 node_modules
- linux - 意外标记 `$'in\r' 附近的语法错误
- android - 如何在 Firebase 控制台上为 http v1 推送消息设置默认声音
- c# - 在 C# 易失性对象上实现 IDisposable
- .net - .NET - Selenium chromeOptions 为 devtools 设置首选项
- version - Rancher私有目录版是什么意思?
- jquery - 如何根据用户站点位置遍历树以将“活动”类添加到按钮上的菜单中?