php - 在卖家网站上 promise 付款

标签 php paypal paypal-ipn paypal-adaptive-payments

我正在开发一个可以接受 Paypal 付款的项目。我使用的顺序如下:

我目前开发网站的付款步骤:

  1. 用户访问我的网站,
  2. 选择支付某物,
  3. 重定向到 paypal,
  4. 在paypal上完成支付,
  5. 然后用户被重定向回我的网站成功 url。

这很好用,因为当 paypal 决定确认 promise 的付款并相应地通知用户时,我使用 IPN 监听器在后台更新我的数据库。

然而,前几天,我自己在网上购物,用paypal支付。我注意到当我付款时,我被重定向到 paypal,我在那里登录并看到了 paypal 发票。我点击了确认,然后我被重定向回卖家网站,在那里我做了一个总结并被告知要进行购买!!!

基本上,顺序是这样的:

我在不同卖家网站的购物体验:

  1. 我想为这些元素付款,
  2. 我被重定向到 paypal,
  3. 我是发票并确认付款,
  4. 我被重定向到卖家网站,
  5. 我看到了订单确认信息并被要求付款,
  6. 我 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/

相关文章:

javascript - 禁用按钮上的页面背景提交点击

asp.net - Paypal支付安全

php - 从 youtube channel 获取 3 最后一个视频

php - PayPal Rest-api-sdk-php 与 Laravel 4

Javascript AES 加密返回太多字符

paypal - 从我的应用程序用户那里使用 PayPal 发送付款

servlets - 为什么 Java servlet 不能每次都获取 Paypal IPN 消息?

php - 重定向到 div 元素 php

php - mysql多个唯一键与重复键引用