本文目錄一覽:
- 1、php做銀聯介面(upop)前台操作一切順利,只是後台該如何接收數據,是否還要核對報文,還是是直接處理。
- 2、PHP怎麼做銀聯的支付介面調用
- 3、php網站怎麼整合銀聯網上支付?
- 4、中國銀聯在線支付介面php開發怎麼做
- 5、親,php銀聯在線支付,沒做過,請求幫助
php做銀聯介面(upop)前台操作一切順利,只是後台該如何接收數據,是否還要核對報文,還是是直接處理。
你是做銀聯介面還是用銀聯介面開發程序
一般銀聯會有兩種返回方式
一直是直接postback 另一種是非同步的 可能不是立即傳回 比如每5分鐘把所有訂單傳回來一次
這種方式是為了防止用戶付款完畢沒有等待頁面彈到postback頁面就關閉瀏覽器或者當前頁面了
一般在postback頁面接受銀聯返回數據做處理數據以銀聯返回的為準 存到自己系統的資料庫的另一張表 再check數據 然後更新訂單狀態等 執行其他操作
非同步方式傳回來的再進行一次檢查 補全關閉瀏覽器等原因導致的特殊情況而沒有得到返回的訂單
可以對已經保存的訂單再次檢查 執行過程和之前基本一樣
銀聯一般還會提供一個訂單查詢介面 根據交易訂單號 提交到銀聯的介面得到返回 比如返回xml數據
通過返回結果可以再次確認訂單詳細信息 這個查詢的結果是可以做銀聯對賬的憑據的如果他們返回的信息錯了他們是有責任的.在自己的系統內給客戶做關鍵操作之前最好查詢核對一次..
詳細的方法請仔細看銀聯提供的文檔..
PHP怎麼做銀聯的支付介面調用
PHP怎麼做銀聯的支付介面調用就很簡單了,首先要和銀聯簽合約然後就有現成的技術文檔和代碼,直接集成就可以了
php網站怎麼整合銀聯網上支付?
大概分幾步,
1,你自己的網站把要交易的數據post給銀聯,
2,銀聯處理你post過來的數據,然後用戶輸入一些賬號信息,付款。
3,付款後,銀聯會post交易後的數據給你的網站,(這個地址會在開始你傳給銀聯的的數據裡面)
4,你接受銀聯傳輸回來的數據,自己處理!
注意的是,回調地址有個後台的,還有個前台的,不要搞混亂了!
中國銀聯在線支付介面php開發怎麼做
對方應該有sdk和demo提供的,支付介面的流程都差不多,包括支付寶,網銀,財付通,paypal等流程都一樣。
用戶下單,收集購物車內產品的總價
拼裝支付參數URL跳轉進入支付網關進行支付(這裡會用到支付網關提供的SDK)
支付成功
支付網關伺服器會非同步發送支付成功的通知到你的「通知URL」,你對過來的參數進行有效性驗證,確保是從支付網關發來的,進行業務邏輯處理,比如設置訂單完成標識等操作;
注意這不是「返回URL」,這一步操作前台支付用戶不會看到。
網關一般在完成支付後,會自動返回我們的網站,進入網站後提示用戶完成支付,並跳轉到相應頁面即可。
親,php銀聯在線支付,沒做過,請求幫助
支付介面現在有第三方的支付介面也有銀行的支付介面。這裡就來介紹php版本銀聯支付介面開發的方法。
銀聯支付,首先要注意二重要的部分:
PHP運行環境是5.4.18以上
開了擴展openssl
開發手冊上面的列子只做參考,因為基本都是錯的。你可以試著去官網下一個demo。。。注意現在銀聯開發,沒有測試密鑰提供,只能在正式環境開發
下面是我用ThinkPHP編寫的一個支付類
/**
* 銀聯支付 v0.1
* @auther:Summerdengwz7788@gmail.com;
* @date:20151202
* **/
class NetPayAction extends BaseAction{
//在類初始化方法中,引入相關類庫
public function _initialize() {
header(“Content-type:text/html;charset=utf-8”);
vendor(‘Netpay.util.common’,””,”.php”); //導入加密核心文件夾
vendor(‘Netpay.util.SecssUtil’,””,”.class.php”); //導入加密核心文件夾
vendor(‘Netpay.util.Settings_INI’,””,”.php”); //導入加密核心文件夾
vendor(‘Netpay.util.Settings’,””,”.php”); //導入加密核心文件夾
$this-securityPropFile= $_SERVER[‘DOCUMENT_ROOT’] . “/ThinkPHP/Extend/Vendor/Netpay/config/security.properties”; //誰知道這是啥,反正他們要我加的
$this-b2cPaySend = __APP__.”/Index/NetPay/b2cPaySend”;
$this-b2cRefundSend = __APP__.”/Index/NetPay/b2cRefundSend”;
$this-b2cQuerySend = __APP__.”/Index/NetPay/b2cQuerySend”;
$this-;MerBgUrl = __APP__.”/Index/NetPay/MerBgUrl”;
$this-MerPageUrl = __APP__.”/Index/NetPay/MerPageUrl”;
}
public function index()
{
$paramArray=array (
‘MerId’ = ‘商戶號’,
‘MerOrderNo’ = ‘0000001944663232’,
‘OrderAmt’ = ‘1’,
‘TranDate’ = ‘20151219’,
‘TranTime’ =’171248′,
‘TranType’ = ‘0001’,
‘BusiType’ =’0001′,
‘Version’ = ‘20140728’,
‘CurryNo’ = ‘CNY’,
‘AccessType’ =; ‘0’,
‘CommodityMsg’ = ‘測試商品1號’,
‘MerPageUrl’ = $this-MerBgUrl,
‘MerBgUrl’ =$this-MerPageUrl,
‘MerResv’ = ‘MerResv’,
);
if (count($paramArray) 0) {
$dispatchUrl = $this-b2cPaySend;
$transResvedJson = array();
$cardInfoJson = array();
$sendMap = array();
foreach ($paramArray as $key = $value) {
if (isEmpty($value)) {
continue;
}
if (startWith($key, “trans_”)) {
$key = substr($key, strlen(“trans_”));
$transResvedJson[$key] = $value;
} else
if (startWith($key, “card_”)) {
$key = substr($key, strlen(“card_”));
$cardInfoJson[$key] = $value;
} else {
$sendMap[$key] = $value;
}
}
$transResvedStr = null;
$cardResvedStr = null;
if (count($transResvedJson) 0) {
$transResvedStr = json_encode($transResvedJson);
}
if (count($cardInfoJson) 0) {
$cardResvedStr = json_encode($cardInfoJson);
}
$secssUtil = new SecssUtil();
if (! isEmpty($transResvedStr)) {
$transResvedStr = $secssUtil-decryptData($transResvedStr);
$sendMap[“TranReserved”] = $transResvedStr;
}
if (! isEmpty($cardResvedStr)) {
$cardResvedStr = $secssUtil-decryptData($cardResvedStr);
$sendMap[“card_”] = $cardResvedStr;
}
$securityPropFile = $thissecurityPropFile;
$secssUtil-init($securityPropFile);
$secssUtil-sign($sendMap);
$sendMap[“Signature”] = $secssUtil-getSign();
$_SESSION = $sendMap;
header(“Location:” . $dispatchUrl);
}
}
public function b2cPaySend(){
layout(false);
$settings = new Settings_INI();
$settings-oad($this-securityPropFile);
$pay_url = “”;
$html = “form name=’payment’ action='{$pay_url}’ method=’POST’ target=’_blank’;”;
$params = “TranReserved;MerId;MerOrderNo;OrderAmt;CurryNo;TranDate;SplitMethod;BusiType;MerPageUrl;MerBgUrl;SplitType;MerSplitMsg;PayTimeOut;MerResv;Version;BankInstNo;CommodityMsg;Signature;AccessType;AcqCode;OrderExpiryTime;TranType;RemoteAddr;Referred;TranTime;TimeStamp;CardTranData”;
foreach ($_SESSION as $k =$v) {
if (strstr($params, $k)) {
$html .= “input type=’hidden’ name = ‘” . $k . “‘ value ='” . $v . “‘/”;
}
}
$html .= “nput type=’button’ type=’hidden’ value=’提交訂單’ “;
$html .= “;/from”;
$this-html = $html;
$this-display();
}
public function pgReturn(){
if ($_POST) {
if (count($_POST) 0) {
$secssUtil = new SecssUtil();
$securityPropFile = $thissecurityPropFile;
$secssUtil-init($securityPropFile);
$text = array();
foreach($_POST as $key=$value){
$text[$key] = urldecode($value);
}
if ($secssUtil-verify($text)) {
//支付成功
$_SESSION[“VERIFY_KEY”] = “success”;
} else {
//支付失敗
$_SESSION[“VERIFY_KEY”] = “fail”;
}
}
}
}
}
銀聯支付應該是算比較簡單的!!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/189231.html