因为项目的需求,所以对于支付这块,对接的企业支付宝的电脑网站支付和手机支付。写这篇博客的主要目的就是想把支付这块的对接给详细的说一下其中的知识点。
博客所说的案例demo下载地址:https://pan.baidu.com/s/1qx3kUQh_9U2KlKGNrLqMLQ
使用企业支付宝,分为四步:
- 使用企业身份成为支付宝的用户(蚂蚁金服) 申请地址:https://open.alipay.com/platform/homeRoleSelection.htm.在页面上注册和完善身份。
- 申请接口使用权限
- 创建应用
- 代码整合
我们来看一下支付宝支付的支付原理,当然官网有更合适的图像,我这里只是自己简单的画一下:
在这里我已自己注册的沙箱账户为依据,给大家说明对接的流程:注册成为开发者后,可以申请沙箱账号:
申请完成就可以看到我们的沙箱账号,商家和买家的。
然后我们就可以下载电脑版和手机版的SDK和demo来开始组织我们的代码,这样可以节省我们很多时间。在我们对接之前需要很多参数去申请和填写,主要有appid,商家私钥,支付宝公钥,支付宝网关地址。
appid和网关地址可以找到:
至于商家私钥和支付宝公钥的生成,我简单说一下。点击查看设置应用公钥,会有生成的说明:
然后接下来我们就进入到我们代码中去了:这里我以自己的php为主来说
Aop:支付宝支付的核心的目录
lotusphp_runtime:php的框架
Pagepay:存储支付的demo
config.php:配置文件
index.php:demo的入口文件
notify_url.php:默认的异步接口文件
return_url.php:默认的同步接口文件
接下来我们把代码原封不动的全部放到我们的代码中。并建立一个文件夹来保存,我保存在我的tp3下的extend文件下:
然后在配置文件下配置我们支付宝的参数:
然后就是在控制器中书写我们的方法了。在这里我们遇到的就是两个问题,一个是你需要把demo中需要引入的文件引入到我们控制器中去,二就是命名空间的问题。需要自己对源代码中的部分加入自定义的命名空间。我这里是遇到这样的问题。可能每个人遇到的不一样吧。
接下来就是我书写的方法:我会根据不同的支付方式,引入对应文件夹下的文件,文件里面的代码我都是有加过命名空间的。
电脑端的一些参数
手机版的参数:(其实大体的思路基本都是一致的,配置参数,写好同步和异步方法)
这里我主要写一下电脑端的同步和异步方法,手机版一样的。
同步方法:
异步方法:
之所以在每个方法中引入文件,是因为考虑到手机版,因为多次引入相同的文件,会有方法的重名。在tp3.0中C代表特殊的含义,所以源代码中有一次需要更改函数的名字,就是这个位置:
接下来我们就会有同步和异步的通知了。demo一会我会整合给大家,其实这里还有其他的知识点,比如import的使用,extend文件夹和vendor文件夹存放的各自含义,当然这些都是比较基础的知识,我想的就是大家竟可能的吃透每个知识点,比如同步和一部通知那个会更加好呢,等等。接下来我们看看效果:
与所有程序爱好者共勉......