支付宝账号验证
签约接口
私钥生成
1. 拼凑订单
1.1 拼装订单
1.2 私钥签名
2. 服务器端处理
2.1 支付宝处理流程图
主要参考文档:https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103563&docType=1
3. 代码实现
3.1 开启CURL
3.2 填写配置
3.3 订单签名
4. 验签
1.1 私钥生成
私钥可以使用支付宝提供的RSA私钥生成工具。
1.2 将生成的公钥上传到支付宝
在签约管理处,点击查看PID | Key。输入支付密码之后既可以查看相关的公钥。
上传公钥
![](https://i-blog.csdnimg.cn/blog_migrate/9cea798722dc8e63d119ab4d2a45772e.png)
之后再添加密钥处复制自己的公钥(我的已经添加过了,此处显示为查看)
注意:
此处是上传密钥,而不是上传私钥,私钥千万不能泄露出去,切记,在这里把自己的公钥公布给支付宝就行,让支付宝能够验证你的签名。
要在合作伙伴密钥管理这里添加公钥。而不是下面的开放平台密钥管理的地方
上传公钥
![](https://i-blog.csdnimg.cn/blog_migrate/bf3909e1195e981a9244b5005d840669.png)
2. 服务器端处理
2.1 支付宝处理流程图
业务流程图
![](https://i-blog.csdnimg.cn/blog_migrate/6ceb54bb34a2ed962d790488339a8a7e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0f2da4e6c9ca435cdc50217597bce462.png)
简单来说
1.客户端发起支付请求,在自己的服务器端生成订单并且使用私钥给订单签名
2.客户端使用拿到服务器端生成的字符串(订单字符串+签名字符串)交给支付宝SDK进行支付
3.支付宝会回调我们的服务器端,根据订单信息中传递的回调地址来访问我们的服务器,并且将订单信息和支付宝的签名字符串发送过来,我们可以在这个时候验证支付是否成功。
3.代码实现
根据上面的流程写具体代码即可。
首先导入支付宝的PHP SDK,下载地址
在支付宝文档中心下载移动支付(SDK&DEMO下载)
解压之后打开服务端demo->readme.txt。几乎所有的东西都在这个文档里了。
3.1 开启CURL
1、必须开启curl服务
(1)使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"即可
(2)文件夹中cacert.pem文件请务必放置到商户网站平台中(如:服务器上),并且保证其路径有效,提供的代码demo中的默认路径是当前文件夹下——getcwd().'\\cacert.pem'
3.2 填写配置
2、需要配置的文件是:
alipay.config.phpkey文件夹
alipay.config.php.打开这个文件之后,里面所有的配置信息都有相应的中文注释,按照注释填写即可。
3.3 订单签名
首先在你的支付类中引入lib\alipay_notify.class.php文件。
签名实现工具,需要的时候调用这个方法,传递需要参数,然后将字符串返回给客户端即可。
4.验签
根据上面加签时候填写的回调地址,写支付宝验签代码
自此,支付宝完成了一次完整的支付。
demo,未进行完整测试,主要提供一种思路