官方下载一个app开发包php
下载完成后进入php开发包linux
php后台在这里的工做是发起对银联的请求,获取到tn 再把tn传递到app客户端,后处理回调页面。web
两个重要的地址: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 响应吗thinkphp
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 银联接口说明segmentfault
0. 注意请把php设置启用openssl。windows
1. 打开gbk(或utf8,下同)\func\SDKConfig.php,app
1) 前台通知、后台通知地址改下,后台通知必须外网,不然会收不到。curl
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,内容为空。若是真实商户号下载提示无文件但肯定有交易,通常是商户号没有文件传输类交易的权限,如须要开通请联系业务运营中心operation@unionpay.com。
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 竟然会对银联返回的信息进行二次转义,又让本人纠结了许久。