支付这东西,说容易也容易,说难也难

代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档

十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付

(api文档真的是给人类看的么 手动滑稽)

支付宝h5支付

一、申请支付宝企业账户

涉及各种材料 详情去支付宝的注册页看 支付宝注册

二、创建应用  添加功能

我这边h5支付 所以选择了

java 对接支付宝支付 公钥 私钥_h5

注意此处有坑

需要先签约各种功能才能正式开通并添加  支付宝签约地址

(2018年9月30日起产品大全里“单笔转账到支付宝账户接口”的签约入口暂时关闭 )

到此 应用创建成功 等待审核就行了

三、配置开发设置

java 对接支付宝支付 公钥 私钥_异步通知_02

支付宝相当贴心的准备好了工具 也支持各种秘钥的互转 

java 对接支付宝支付 公钥 私钥_php_03

 

生成 测试 配置完成就行了

此处有坑 

更新某些秘钥时 总是提醒我要先绑定手机号

但是我明明已经绑定过了 所以建议最好使用支付密码来修改 开发完成再修改就行了

java 对接支付宝支付 公钥 私钥_php_04

 

java 对接支付宝支付 公钥 私钥_支付宝_05

 

 四、测试环境(沙箱环境配置)

支付宝的秘钥工具生成的需要妥善保管

java 对接支付宝支付 公钥 私钥_php_06

新生成貌似会覆盖的旧的

五、支付宝sdk

博主主要是Php的sdk 不得不说 支付宝的sdk还是很良心 也很臃肿的 各种功能都包含里面 文件也异常的多

涉及到h5支付的文件主要是这两个

java 对接支付宝支付 公钥 私钥_php_07

提交起来也很方便 回调时的验签也很方便都是封装好的

 

此处我走的坑

配置支付参数时

商户私钥,您的原始格式RSA私钥

支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。

支付宝网关https://openapi.alipaydev.com/gateway.do

沙箱网关https://openapi.alipay.com/gateway.do

 

六、回调相关

支付宝回调回来的post数据中的

voucher_detail_list

会有点问题 验签之前需要使用反斜线引用字符串

addslashes

 (PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默认是 on, 实际上所有的 GET、POST 和 COOKIE 数据都用被 addslashes() 了。 不要对已经被magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。 遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。)

验签成功 就可以处理其他数据了

 

七、回调多次

  • 当商户收到服务器异步通知并打印出success时,服务器异步通知参数notify_id才会失效。也就是说在支付宝发送同一条异步通知时(包含商户并未成功打印出success导致支付宝重发数次通知),服务器异步通知参数notify_id是不变的。

所以完成验证之后记得 打印出success 就能结束回调了

 

echo 'success';
exit;

就行了

 

支付宝的坑不算太多 认真阅读官方文档就可以了 

暂时就这么多 想起来再补充