You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PayPal Checkout JavaScript SDK:CreateOrder响应返回问题排查

问题解答

1. JavaScript SDK的createOrder函数需要返回什么?

只需要返回订单ID字符串(比如7MF03646UY937942N),不需要返回完整的PayPal订单响应。你也可以返回包含id属性的对象,但最直接的方式是返回纯ID字符串。

2. 后端应如何正确返回数据?

你的后端目前把PayPal的订单响应转成字符串后,额外包装了{"d": "..."}的结构,这就是问题根源——前端解析后拿到的order对象里并没有id属性,真正的订单ID藏在order.d这个字符串里,导致PayPal SDK找不到订单ID报错。

正确的处理方式:

  • 后端调用PayPal的/v2/orders/create接口后,直接把PayPal返回的原始JSON响应(也就是你现在放在d里的那个对象)作为自身接口的响应返回,不要做任何额外的字符串转义或包装。
  • 确保后端响应的Content-Type头设置为application/json,这样前端的response.json()才能正确将响应解析为JSON对象。

举个例子,后端应该返回的内容是:

{"id":"7MF03646UY937942N","status":"PAYER_ACTION_REQUIRED","payment_source":{"paypal":{}},"links":[{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/7MF03646UY937942N","rel":"self","method":"GET"},{"href":"https://www.sandbox.paypal.com/checkoutnow?token=7MF03646UY937942N","rel":"payer-action","method":"GET"}]}

调整后,你的前端代码then((order) => order.id)就能正确拿到订单ID,PayPal SDK就不会再报错了。

内容的提问来源于stack exchange,提问作者John W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:37:47