简介
php银联支付
流程
1、注册 银联 - 技术开发平台和商户服务平台
注意:注册时建议使用IE浏览器,之前注册时插件老是用不了,使用IE10以下浏览器,另外当时使用的时候老是出现问题,原来是在刚好在维护。有什么不明白的可以问问客服。
2、下载demo
https://open.unionpay.com/tjweb/acproduct/list?apiservId=448
demo下载完毕,查看说明文件
将PHP Version SDK 下的 upacp_demo_b2c 目录复制到PHP环境
修改配置文件 ...\\upacp_demo_b2c\\sdk\\acp_sdk.ini
//主要修改服务器证书地址和证书密码
acpsdk.signCert.path=D:/certs/acp_test_sign.pfx
acpsdk.encryptCert.path=d:/certs/acp_test_enc.cer
acpsdk.middleCert.path=D:/certs/acp_test_middle.cer
acpsdk.rootCert.path=D:/certs/acp_test_root.cer
acpsdk.signCert.pwd=000000
//测试的话,如果时windows,直接把
...\\upacp_demo_b2c\\assets\\测试环境证书 目录复制到 d盘 重命名\'certs\' 即可
3、 我要测试
有需要demo测试的参数信息以及支付的测试账号
4、执行demo
将demo放置php环境中
执行 ...\\upacp_demo_b2c\\index_01_gateway.php
填写测试参数中的信息,跳转到银联支付页面,支付成功后有回调
拿网关支付为例:
index_01_gateway.php只是页面,点击按钮后执行的是
upacp_demo_b2c\\demo\\api_01_gateway\\Form_6_2_FrontConsume.php
里面是请求银联支付,
请求需要提供回调地址即支付后完成的动作,需要外网能访问,详细见代码。
说明
说说如何放置项目中
1、复制到项目中第三方类库目录中 如 libs 等
2、可以封装一个银联支付类
拿网关支付为例:
将 upacp_demo_b2c\\demo\\api_01_gateway\\Form_6_2_FrontConsume.php
改写为银联支付类的一个支付方法
其它检查支付状态等 也一样,参考demo 改写为类的一个方法
3、修改配置
acp_sdk.ini //配置文件
SDKConfig.php //返回配置信息的类
可以改 acp_sdk.ini 中的证书路径, 将路径改为相对路径
让后再 SDKConfig.php 中拼接
#acp_sdk.ini
acpsdk.signCert.path=/certs/acp_test_sign.pfx
acpsdk.encryptCert.path=/certs/acp_test_enc.cer
acpsdk.middleCert.path=/certs/acp_test_middle.cer
acpsdk.rootCert.path=/certs/acp_test_root.cer
#SDKConfig.php
$UnionPath = \'.../libs/UnionPay\';//定义银联支付扩展目录
$ini_array = parse_ini_file(\'.../acp_sdk.ini\', true);//读取配置-acp_sdk.ini
$sdk_array = $ini_array["acpsdk"];
this->signCertPath = $UnionPath .(array_key_exists("acpsdk.signCert.path", $sdk_array)?$sdk_array["acpsdk.signCert.path"]:\'\');//拼接证书路径
//类似 this->signCertPath = ... ...
#银联支付类中
//加载配置文件
//获取到配置信息
//请求银联支付
//实现回调动作
//回调的话,分析支付完成后需要做什么,数据库操作,同步等等,可以参考:
...\\upacp_demo_b2c\\demo\\api_01_gateway\\BackReceive.php
...\\upacp_demo_b2c\\demo\\api_01_gateway\\FrontReceive.php
以上就是对银联支付的一个总结,更多明细建议阅读demo代码。