通过PayPal付款而不离开我的页面并传递唯一的下载ID

时间:2018-03-21 17:40:41

标签: php paypal

我正在编写一个网络应用程序,人们可以在其中下载独有的PDF文件。

我想使用PayPal允许买家在不离开我的页面的情况下输入付款(尽可能全面),然后发送到我的PHP脚本,该脚本将接收ID变量以便提供他们独特的PDF。

为此,我试图弄清楚哪种PayPal技术是合适的。

我得到的印象(可能不正确)" PayPal Express Checkout"支持付款而无需离开我的页面,但我不知道允许通过此方式传递唯一ID变量的辅助技术,以重定向到PDF生成器脚本。我还在审核"直接付款"如果这是相关的。

我有一个PayPal商家帐户,并设置了沙箱帐户。

非常感谢任何一般指导原则。

2 个答案:

答案 0 :(得分:1)

我现在的工作基本上完全相同。是的,快速结账是要走的路;使用快速结账有三种主要方式:https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/set-up-a-payment/

您需要使用服务器端REST设置。在这里https://developer.paypal.com/demo/checkout/#/pattern/server

查看他们的演示页面

简而言之,您要查看的流程是:

1。)用户登陆付款页面

2.)用户点击其中一个付款按钮

3。)#2触发你的php页面,CREATE_URL(参见演示)

4.。)您的CREATE_URL php需要使用paypal REST API来创建payment。您可能希望意图为sale,但有三种选择(销售,授权付款或订单)

5.。)创建付款后,会弹出一个框,允许用户进行付款

6。)如果用户付款(以paypal术语“授权”),则需要执行付款。您的EXECUTE_URL php页面已被触发

7.。)在您的EXECUTE_URL php页面上,您使用paypal的REST API再次执行付款。假设付款成功并且状态=已完成(意味着,资金实际上是从用户的账户转移到您的PayPal业务账户),那么您可以将唯一下载ID返回给客户的浏览器

一些重要的注意事项:

  • 涉及到相当多的错误处理,而paypal文档很可怕。创建付款可能会失败,用户可能无法授权付款,执行付款可能会失败等等。
  • 仅仅因为付款已执行并不意味着资金已转入您的帐户。用户可能使用了可能需要一两天才能完成的eCheck或其他资助工具。您需要检查status的{​​{1}}值以确定此
  • 您还需要设置一个监听网址和一个网络挂钩,以便您收到有关未立即完成的付款的通知

这需要一段时间才能以稳固的方式完成。如果PayPal的文档更好,我会在一天前完成。祝你好运。

答案 1 :(得分:0)

如果您不熟悉php和js如何进行通信,您可以尝试一下(它比服务器端REST更容易设置),虽然我建议雇用一个熟悉Paypal API的开发人员

Paypal Express Checkout - 客户端REST https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/client-side-REST-integration/

当用户完成付款时,代码的第47行将会运行(此演示的第47行:https://developer.paypal.com/demo/checkout/#/pattern/client)当发生这种情况时,您可以使用AJAX调用php脚本;那个php脚本应该返回唯一的id。然后,您可以使用javascript重定向用户。

重要提示 一个非常简单/基本的黑客可以在不付费的情况下访问您的pdf,因为客户端上的javascript中没有任何内容是安全的。