官方下载一个app开发包
下载完成后进入php开发包
php后台在这里的工作是发起对银联的请求,获取到tn 再把tn传递到app客户端,后处理回调页面。
两个重要的地址:https://open.unionpay.com/upload/download/%E5%B9%B3%E5%8F%B0%E6%8E%A5%E5%85%A5%E6%8E%A5%E5%8F%A3%E8%A7%84%E8%8C%83-%E7%AC%AC5%E9%83%A8%E5%88%86-%E9%99%84%E5%BD%95v1.5.pdf 响应吗
https://open.unionpay.com/upload/download/%E7%BD%91%E5%85%B3%E6%94%AF%E4%BB%98%E4%BA%A7%E5%93%81%E6%8E%A5%E5%8F%A3%E8%A7%84%E8%8C%83v1.5.pdf 银联接口说明
0. 注意请把php设置启用openssl。
1. 打开gbk(或utf8,下同)\func\SDKConfig.php,
1) 前台通知、后台通知地址改下,后台通知必须外网,否则会收不到。
2) 证书改下自己本地路径,证书密码测试环境就是000000,生产自己修改。
3)日志打印路径改下自己本地,请先建立好文件夹并确保有文件写入权限。
具体描述参照测试指引。
2.1 wap/网关的消费:调用demo\gbk\Form_6_2_FrontConsume.php,商户号请改为自己的商户号,会跳转银联支付页面。
2.2 控件的消费:调用demo\gbk\Form_6_2_AppConsume.php,商户号请改为自己的商户号,会访问后台获取tn,把tn传给你们手机app。
支付卡:
平安银行借记卡:6216261000000000018
证件号:341126197709218366
手机号:13552535506
密码:123456
姓名:全渠道
短信验证码:123456(wap/控件)111111(PC)
(短信验证码记得点下获取验证码之后再输入)
3. demo\gbk\Form_6_5_Query.php为查询接口,商户号请改为自己的商户号,注意修改txnTime和orderId为被查询交易的txnTime和orderId。
4. demo\gbk\Form_6_3_ConsumeUndo.php和Form_6_4_Refund.php分别为消费撤销接口、退货接口,商户号请改为自己的商户号,注意修改origQryId为自己需要退款的那笔消费的queryId。
5. demo\gbk\FrontReceive.php和BackReceive.php为前后台通知接口,交易完成会自行调用。
6. demo\gbk\Form_6_6_FileTransfer.php为文件下载接口。
文件下载接口注意点:
1) 请使用自己的【真实商户号】测试。开发包的商户号、自助化测试平台申请的商户号都是不能测试文件下载的,会反http状态500,内容为空。如果真实商户号下载提示无文件但确定有交易,一般是商户号没有文件传输类交易的权限,如需要开通请联系业务运营中心[email protected]。
2) 请先建立好文件夹并确保有文件写入权限。
7. 切换生产时请一定看下https://open.unionpay.com/ajweb/help/faq/listByType?faqType=prod中的问题,特别是“切换生产有哪些需要改动的地方”的这个FAQ。
====================
经本人测试,里面所提供的证书等等是在测试环境中是用不了的,一直会提示找不到cartid为【】的证书,所以放弃了测试,直接用开发环境开发。更换后 所有问题完美通过。
99%的问题基本上都是路径的错误,倘若你觉得是路径问题的话,建议 linux直接pwd copty路径到配置文件中,windows中直接用php内置的函数应该不存在路径的错误。
cartid为空的话:证书问题
httpClient.php 这个文件中 最后加个curl获取错误信息
if(curl_exec($ch) === false)
{
echo 'Curl error: ' . curl_error($ch);
}
本人因为
这个问题在这里纠结了很久。最终原因是dns无法解析,更换后即成功。
另外 不得不吐槽下thinkphp 居然会对银联返回的信息进行二次转义,又让本人纠结了许久。