Paypal 验证订单id是否存在

Paypal 验证订单id是否存在,paypal,transactions,Paypal,Transactions,我将用户重定向到一个页面,其中智能支付按钮在URL中传递订单id example.site?orderid=D23F34492211 但是如果用户更改URL,JavaScript将获取一个不存在的id。最终,交易将不会完成,但是,它只会关闭贝宝的灯箱以及信用卡选项,而不会给出任何错误消息 它抛出的错误如下所示: Fatal error: Uncaught PayPalHttp\HttpException: {"name":"RESOURCE_NOT_FOUND&q

我将用户重定向到一个页面,其中智能支付按钮在URL中传递订单id

example.site?orderid=D23F34492211
但是如果用户更改URL,JavaScript将获取一个不存在的id。最终,交易将不会完成,但是,它只会关闭贝宝的灯箱以及信用卡选项,而不会给出任何错误消息

它抛出的错误如下所示:

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调用

这个API调用应该从您的服务器运行,因此如果您想从客户端调用它,您需要在服务器上构建一个中间件端点路由。(同样,这样做没有意义,这将是徒劳的努力)


实际正确的方法是从您的服务器获取订单ID,如前所述:

是的,因为实际上我的设置是:
客户选择产品->客户被重定向到结帐页面(在网站中)->用户继续付款(在那里生成订单ID并将其信息保存到数据库中)->用户被重定向到带有付款按钮的付款页面,订单id->payment按钮将在url中获取此订单id
,因为它实际上已经在工作,我发现这是最简单的方法。我还可以将订单保存到数据库中并进行比较。此外,我是否必须将订单id和付款人id保存到数据库中,还是只保存交易id?因为在支付完成后,我将用户重定向到一个带有订单id、付款人id和交易id的成功页面。例如。site?id=2dndjdj343434payerid=tpxkanananazas&transaction=339djssnnxidf43243交易id是唯一需要保留以用于记账目的的东西。还有一个问题:你说过最好的方法是从服务器获取订单id,但是,在我的情况下,我该怎么做呢?因为在将用户数据保存到数据库并生成订单id后,用户将重定向到以订单id为参数的付款页面。如何从服务器获取它?通常的做法是拥有自己的内部唯一购物车/跟踪/发票id,这是您在URL中传递的内容。单击按钮时,您获取并获得一个新创建的PayPal订单ID,您知道该ID是有效的,因为它是根据需要立即创建的。