簡介
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代碼。