我正在开发一个可以接受 Paypal 付款的项目。我使用的顺序如下:
我目前开发网站的付款步骤:
- 用户访问我的网站,
- 选择支付某物,
- 重定向到 paypal,
- 在paypal上完成支付,
- 然后用户被重定向回我的网站成功 url。
这很好用,因为当 paypal 决定确认 promise 的付款并相应地通知用户时,我使用 IPN 监听器在后台更新我的数据库。
然而,前几天,我自己在网上购物,用paypal支付。我注意到当我付款时,我被重定向到 paypal,我在那里登录并看到了 paypal 发票。我点击了确认,然后我被重定向回卖家网站,在那里我做了一个总结并被告知要进行购买!!!
基本上,顺序是这样的:
我在不同卖家网站的购物体验:
- 我想为这些元素付款,
- 我被重定向到 paypal,
- 我是发票并确认付款,
- 我被重定向到卖家网站,
- 我看到了订单确认信息并被要求付款,
- 我 promise 付款并被告知订单已经完成。
不同之处在于,我的网站在 paypal 网站上进行购买,我使用他们的 IPN 系统收听 paypal 的响应,但是第二个网站似乎在卖家的实际网站上进行付款。
我想,哇,从用户体验的角度来看,这让人安心多了。
这是怎么做到的?
最佳答案
听起来您目前正在使用 Payments Standard你想要 Express Checkout .
Express Checkout 与 Standard 非常相似,不同之处在于它是基于 API 的,并且用户会在完成付款之前返回到您的网站。
它由 3 个 API 调用组成...
1) SetExpressCheckout - 从 PayPal 取回一个 token ,您将其附加到重定向 URL 的末尾,该 URL 将用户发送到 PayPal 以登录并查看付款。
2) GetExpressCheckoutDetails - 这允许您将付款人详细信息(姓名、电话、送货地址等)从 PayPal 拉回您的应用程序。这是一个可选步骤。
3) DoExpressCheckoutPayament - 这样就完成了付款。在此 API 调用发生之前,不会移动任何资金,当然,直到用户已经返回您的网站并再次进入您自己的应用程序流程中,它才会发生。
您仍然可以按原样使用 IPN,但您也可以直接在流程中进行操作,因为您可以从 API 获得即时响应,并且可以根据需要设置自己的审核。
关于php - 在卖家网站上 promise 付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991139/