官方下載一個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 竟然會對銀聯返回的信息進行二次轉義,又讓本人糾結了許久。