我对PayPal集成很陌生。我在node.js中有一个应用程序,我的客户要求PayPal集成。我到目前为止所做的事:
问题:钱没有给商人。有时他们是从我的卡,并在几分钟后,他们被送回来的信息:商人取消您的交易。有时候钱不是从我的卡里拿出来的。我正在使用一个实时的client_id和秘密。
有人有这个问题吗?
发布于 2022-07-06 11:21:41
我想一切都很好
你是这样想的,但是这个过程还没有完成。付款人批准了订单,但在您捕获订单之前不会进行付款。您错过了捕获API步骤。在使用这种重定向集成时,您的"success_url“(正如您所称的那样,尽管API参数是"redirect_url")应该显示一个订单评审页面,当最终确认给您系统时,您的系统应该执行v2/checkout/orders capture API调用,以完成支付,并显示此捕获API调用的成功(谢谢)或失败(有错误)结果。
此外,从您的网站重定向是一个旧的PayPal集成流程,对旧网站。当前PayPal检出积分不使用重定向。完全没有。
相反,在您的服务器上创建两个路由(url路径),一个用于“创建订单”,另一个用于“捕获顺序”。这两条路线都应该只返回JSON数据(不返回HTML或文本)。在第二条路由中,当捕获API成功时,您应该验证金额是正确的,并将其结果的支付细节存储在数据库中(特别是purchase_units[0].payments.captures[0].id,即PayPal事务ID),并在将返回JSON转发给前端调用方之前执行任何必要的业务逻辑(例如发送确认邮件或保留产品)。如果出现错误,也会转发JSON的详细信息,因为前端必须处理这些情况。
将这两条路径与这个前端审批流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server。(如果您需要从客户端向服务器发送任何其他数据,如items数组或所选选项,请将body参数添加到具有JSON字符串或对象值的fetch中)
由于您使用的是节点,第一个链接在节点中有一个完整的堆栈示例。只需确保使用完整的客户端错误处理(请参阅第二个链接)扩展onApprove函数,因为节点示例目前不包括该级别的细节。
https://stackoverflow.com/questions/72882112
复制相似问题