使用智能按钮创建 PayPal 订单 - (React/NodeJS)
Posted
技术标签:
【中文标题】使用智能按钮创建 PayPal 订单 - (React/NodeJS)【英文标题】:PayPal Order Creation with Smart Button - (React/NodeJS) 【发布时间】:2020-06-23 21:51:23 【问题描述】:[React/NodeJS] 我在寻找关于这个主题的适当文档方面遇到了巨大的困难——我希望在我的网站上实施 PayPal,限制是在我们的离线服务完成后向客户收费(有可变成本,但考虑到某种解决方案,如果我可以“授权”一个等于我们最大成本的金额,我们就可以了)。我最初的研究表明,PayPal 订单至少在有效程度上满足了这一愿望,即。在我们授权收费之前,下单并且资金不会被搁置,最好是在离线服务完成之后(来源:https://developer.paypal.com/docs/integration/direct/payments/orders/#order-response)。经过进一步检查,我发现在实现文档中大力提倡使用 PayPal 智能按钮的集成路径,并且似乎与订单 API 兼容(来源:https://developer.paypal.com/docs/checkout/)。
我开始着手实现该软件,按照之前链接的智能按钮实现,并按照说明使用服务器端 api 调用来处理支付(来源:https://developer.paypal.com/docs/checkout/integrate/ 和 https://developer.paypal.com/docs/checkout/reference/server-integration/set-up-transaction/)。继续前进,我使用订单 API 明确地创建订单(可能是错误?),并使用了 v2 订单 api 的文档和 paypal 文档中引用的 nodeJs sdk 包的文档(paypal/checkout-server-sdk using the github文档)。我设置了集成,但沙盒帐户显示正在收取费用,这与我希望在授权完成之前不暂停费用的愿望相矛盾。后端返回的状态一直保持在“created”,所以我一开始是乐观的,但是收费放置很不幸。
我正在努力寻找下一步。由于 checkout-server-sdk 同时使用了支付/v2 和订单/v2(来源:https://www.npmjs.com/package/@paypal/checkout-server-sdk),我相信我也可以使用这些 API 端点,但找不到调用支付的显式函数checkout-server-sdk 中有问题的 api,我相信我需要更改订单意图才能创建订单(来源:https://developer.paypal.com/docs/integration/direct/payments/orders/),但也注意到这些文档(直接从文档页面链接为活动我相信贝宝——https://developer.paypal.com/docs/)发布到已被弃用的付款/v1(来源:https://developer.paypal.com/docs/integration/direct/payments/orders/)。长话短说,我现在迷路了,非常感谢一些关于我误入歧途的地方、参考哪些文档、是否仍然支持此实现以及下一步可能是什么的指导。如果我使用了不正确的措辞或有一些明显的逻辑跳跃对我不利,我很想知道,因为我对整个开发人员的工作还很陌生。提前谢谢!
【问题讨论】:
【参考方案1】:您不预先设置临时保留的用例需要intent:order
,并且只有 v1/orders API 具有此功能。 v2/* API 没有。
intent:authorize
保留通常会在大约 3 天后从卡中清除(即使它可以在第 29 天之前被捕获),因此如果可行,我建议使用 v2 API。但如果不这样做很重要,那么可以使用 v1/orders。 API 不会消失,人们正在使用它。毕竟,具有类似 PAYMENTACTION=ORDER 功能的更古老的 Classic API 仍在大量使用。
【讨论】:
以上是关于使用智能按钮创建 PayPal 订单 - (React/NodeJS)的主要内容,如果未能解决你的问题,请参考以下文章
PayPal 智能按钮和 REST Checkout SDK - SyntaxError:JSON 输入意外结束或期望传递订单 ID
使用 Ruby on Rails form_for 和控制器/方法绑定 PayPal 智能按钮?