我将用户重定向到带有智能支付按钮的页面,并在 URL 中传递订单 ID
example.site?orderid=D23F34492211
但是如果用户更改 URL,JavaScript 将获取不存在的 ID。最终,交易不会完成,但是,它只会关闭 PayPal 的灯箱以及信用卡选项,而不会给出任何错误消息。
它抛出的错误如下:
Fatal error: Uncaught PayPalHttp\HttpException: {"name":"RESOURCE_NOT_FOUND","details":[{"issue":"INVALID_RESOURCE_ID","description":"Specified resource ID does not exist. Please check the resource ID and try again."}],"message":"The specified resource does not exist.","debug_id":"9d62d83a871b8","links":
有没有办法以 JSON 形式获取此响应或从 API 获取错误代码并向用户显示错误消息?如果不存在,验证订单 ID 是否存在的最佳方法是什么?
最佳答案
您不应该通过 URL 传递订单 ID,而应该从您的服务器获取它。然后您就会知道它是有效的。
无论如何,您的问题是通过 API 调用验证订单 ID 的状态。没有必要这样做。您不必这样做。但如果您坚持这样做,可以使用 API 调用。 https://developer.paypal.com/docs/api/orders/v2/#orders_get
此 API 调用应从您的服务器运行,因此如果您想从客户端调用它,则需要在服务器上构建中间件端点路由。 (再次强调,这样做是没有意义的,而且会浪费精力)
实际正确的做法是从您的服务器获取订单 ID,如前所述:https://developer.paypal.com/demo/checkout/#/pattern/server
关于paypal - 验证订单id是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61457630/