1. 程式人生 > >php銀聯支付

php銀聯支付

簡介

PHP銀聯支付

流程

1、註冊 銀聯 - 技術開發平臺和商戶服務平臺

https://open.unionpay.com

注意:註冊時建議使用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程式碼。