paypal支付接口准备工作
-
首先去申请一个paypal账号,https://www.paypal.com/。
-
申请完毕并登录,进入https://developer.paypal.com/developer/accounts/。即可看到你申请账号自动配属的两个测试账号,账号类别分别是:BUSINESS和PERSONAL,PERSONAL的账号里面有$9999,测试费用,表激动。
-
下面去给两个账号设置密码,点击账号展开,然后点击Profile,会弹出账号信息框,里面可以设置密码等一堆属性。如果点击账号始终无法展开,请吐槽下paypal,然后F5再点。
-
下面进入https://developer.paypal.com/developer/applications/申请APP,点击REST API apps栏目下面的Create App按钮,写进一个APP名称,然后选择一个测试账户作为此APP绑定的账号,如果你在上一步没有申请新的测试账号,那么这里默认就是选择了BUSINESS账号。
-
然后打开创建的APP,可以看到APP的clientId和clientSecret。
-
paypal的测试环境域名为sandbox.paypal.com,正式域名为www.paypal.com。一下测试均为测试环境。
至此准备工作差不多了,开始动代码。
PayPal-PHP-SDK下载
-
通过composer(composer安装教程)下载PayPal-PHP-SDK,具体的composer.json如下:
{ "require" : { "paypal/rest-api-sdk-php" : "1.7.4" }, "repositories": { "packagist": { "type": "composer", "url": "https://packagist.phpcomposer.com" } }}1234567891011
-
切换至项目目录并执行
composer install
,PayPal-PHP-SDK安装完毕。 -
因为PayPal-PHP-SDK里面的composer.json里面的require有psr/log,所以在在目录vendor下有三个文件夹:composer,paypal和psr。
-
此时项目的目录结构如下,其中的app文件夹是下面实例化创建的文件夹。
PayPal-PHP-SDK支付接口测试
然后就简单了,PayPal-PHP-SDK里面有一个sample项目,里面有各种实例。
打开浏览器,输入http://~/rest-api-sdk-php/sample/index.php,“~”符号改为你自己的路径。
可以看到sample了,如下图:
图中的PayPal Payments - similar to Express Checkout in Classic APIs即为支付接口,对应的代码路径为~/rest-api-sdk-php/sample/payments/CreatePaymentUsingPayPal.php。
PayPal Payments的逻辑大致如下:
-
创建一个支付,发送到paypal服务端
-
paypal服务端返回一个用户授权地址
-
转链到用户授权地址,用户授权
-
用户授权完毕,paypal返回到客户端设置的execute地址,付款实现。
实现如下:
~/rest-api-sdk-php/sample/payments/CreatePaymentUsingPayPal.php有如下代码
// ### Get redirect url// The API response provides the url that you must redirect// the buyer to. Retrieve the url from the $payment->getApprovalLink()// method// 获取到重定向地址$approvalUrl = $payment->getApprovalLink();// NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY// 将重定向地址打印出来ResultPrinter::printResult("Created Payment Using PayPal. Please visit the URL to Approve.".$approvalUrl, "Payment", "<a href='$approvalUrl' >$approvalUrl</a>", $request, $