2017-10-29 76 views
0

我正在使用贝宝通过我的网站接受付款。我正在查看智能付款按钮选项。如果付款成功,我需要更新我的网站数据库中的内容。我如何确定付款是否成功?我无法看到任何API文档。验证付款是成功还是失败

我还需要保留带有PHP会话ID的用户上下文。我如何将它传递到贝宝网站并确保它与成功/失败指示符一起返回?

回答

1

使用Paypal IPN接收付款通知。设置服务器端点以响应IPN请求并更新您的数据库等...

要保持状态,您需要在名称为custom的智能付款按钮中包含一个隐藏的输入字段,并提供您选择的值(会话ID)。

设置一个IPN端点,例如:/ checkout/ipn,接收贝宝通知。用$ _POST ['custom']捕获会话ID;

+0

感谢Scriptonomy。 IPN可能是一个有用的选择。我仍然不清楚如何通过付款发送客户ID,然后从IPN中提取相同的客户ID。同样,我不确定发布到付款页面的隐藏输入字段将如何与付款结果一起返回。 (我认为PayPal文档的这个方面并不是很好)。我可能会放弃使用Braintree API的简单PayPal按钮方法。它返回付款Nonce与客户端JavaScript,然后我可以验证从PayPal服务器与我的服务器端代码一次付款成功。 –

+0

就失去用户会话而言,我可以看到其他用户也遇到了麻烦。由于PayPal按钮将您带到一个全新的URL,因此很容易丢失会话上下文。这就是为什么我认为客户端js和服务器端代码(通过Braintree API)组合最好。否则,你不得不求助于像这个解决方案的cookie https://stackoverflow.com/questions/31069675/paypal-payment-destroys-session-on-return?rq=1 –