1)注册个人账号登陆 https://developer.paypal.com/
2)点右上角个人账号->Dashboard仪表板
3)Sandbox(沙盒)建立测试用的Paypal虚拟帐号(至少应该建立一个Business的和一个Personal的)
这种账号注册方法和Paypal的流程一样,信息可以是假的,包括银行帐号、信用卡(其实PaypalSandbox会自动生成一些随机的号码
4)接下来需要**Paypal Sandbox的虚拟帐号
注意,这里不管你在PaypalSanbox注册时填什么邮件地址,有任何发送到虚拟帐号所填邮箱的邮件都存会在开发帐号的管理界面中的Email页(导航栏上有)中
5)登录Sandbox的虚拟Paypal环境,还需要验证虚拟帐号的银行,这里可以随便填,然后通过AddFunds来给账户充值(想填多少填多少)
6)还需要**IPN的选项,在Business的那个账户的Profile设置页面中,点击,然后点击Edit按钮,打开IPN,这里如果你使用的是固定的https://test.xxx.com/paypal/ipn,可以直接将地址填入
7)我们测试的时候,应该将Paypal接口的地址设置为https://www.sandbox.paypal.com/cgi-bin/webscr

 

https://developer.paypal.com/developer/applications

magento2配置PayPal Sandbox 在线支付开发测试环境

 

Email ID:
[email protected]
Username:
sb-gbz3y3042070_api1.business.example.com
Password:
X5RKV92BZFJF6ZXZ
Signature:
AX6G-qgltyY1xMup.ofRv4xiZbfAAJarCHIgPBvVGOfRm7WZ1za92QWJ
PayPal商家号6V3WGN7J8HV5G

沙箱账号登陆:
https://www.sandbox.paypal.com/businessmanage/account/accountAccess
Email ID:
[email protected]
system passwd:
Sq?/,6Q/


Card Type: Visa
Card Number: 4032036939821300
Expiration Date: 03/2024
CVV: 907

---------------------------
个人paypal测试账号 支付时要用
[email protected]
94='Vd7_

 

测试账号登陆地址

https://www.sandbox.paypal.com/

magento2配置PayPal Sandbox 在线支付开发测试环境

最后基本的流程为:
1)用户在我们的网站上选择商品、放入购物车,然后检查准备支付
2)网站根据购物车中的商品,生成Paypal的支付表单(也是提交到上面IPN用的Paypal接口地址),包含了此次交易的一些信息(下次会专门找机会解释一下)。并在自己的数据库中生成一张订单记录。
3)Paypal在Session中记录下这些交易信息
4)用户用Paypal账户登录Paypal(Sandbox用Sandbox的虚拟帐号),复查明细,点击Pay按钮
5)Paypal进行交易处理,如果我们的Paypal收款帐号在接受帐款上没有什么问题(没有特别的需要在界面上“Accept”的地方),交易完成,那么Paypal会发送一个IPN,并发送提示邮件。
6)我们IPN Handler接受到信息,首先向Paypal进行校验,如果信息正确,然后根据信息和自己数据库中进行比对,如果无误,可以将支付信息保存,并修改订单状态。
7)然后Paypal会显示一个界面表示交易完成,此时如果用户点击“Return”按钮,Paypal会将用户送回我们网站指定地点。
8)我们网站迎接用户回来,向用户表示感谢,并进行提醒,给出订单号等等。

整个流程基本如下,不过其中有很多要注意的地方:

我们看到了,接口地址是https开头的,也就是要求使用SSL进行连接,其实Paypal Sandbox可以使用http,但是最后实际的Paypal接口,不支持http协议,所以如果你用PHP写IPNHandler脚本的话,在验证信息的代码部分,如果简简单单使用fopen、HTTP_Request之类的工具是没用的,PHP的socks库不支持SSL,应该使用curl,有两种方法,一个是使用PHP扩展中的libcurl,Paypal官方发布的SDK中便是使用的这个方法,但Paypal的SDK非常复杂,如果想自己写,可以使用Snoopy,一个简单实用的PHP请求库(它自己说是模拟了浏览器的行为),而它使用的是Curl的可执行文件,通过管道获得结果,而非php的libcurl,所以自己cURL的主页上下载一个支持SSL的编译版本,可能还需要安装OpenSSL,不过对于Linux系统,可能应该会都带。
在支付表单中,可以自己设置notify_url字段,来指定此次交易的信息应该发送到哪个地方,这样就可以覆盖在Profile中我们的设置,另外,这个字段要进行urlencode。
我们得到的IPN信息中,status对应的便是交易状态,如Complete表示完成,首字母大写,而验证结果则是VERIFIEY或者INVALID,全部大写,具体的内容,可以查看Paypal官方的文档订单管理整合指南。

相关文章:

  • 2022-01-02
  • 2022-12-23
  • 2021-04-07
  • 2021-11-20
  • 2022-12-23
  • 2022-12-23
  • 2021-10-12
猜你喜欢
  • 2022-12-23
  • 2022-01-02
  • 2022-12-23
  • 2022-12-23
  • 2021-11-14
相关资源
相似解决方案