国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php版銀聯支付接口開發簡明教程

2024-05-04 23:51:02
字體:
來源:轉載
供稿:網友

本文實例講述了php版銀聯支付接口開發的方法。分享給大家供大家參考,具體如下:

支付接口現在有第三方的支付接口也有銀行的支付接口。這里就來介紹php版本銀聯支付接口開發的方法。

銀聯支付,首先要注意二重要的部分:

PHP運行環境是5.4.18以上

開了擴展openssl

開發手冊上面的列子只做參考,因為基本都是錯的。你可以試著去官網下一個demo。。。注意現在銀聯開發,沒有測試密鑰提供,只能在正式環境開發

下面是我用ThinkPHP編寫的一個支付類

/*** 銀聯支付 v0.1* @auther:Summer<dengwz7788@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 = $this>securityPropFile;  $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 = "https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0";  $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 = $this>securityPropFile;    $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";   }  }  } }}

銀聯支付應該是算比較簡單的!!

 

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 永泰县| 保山市| 永靖县| 岑溪市| 许昌县| 贡山| 中牟县| 阿克| 都昌县| 白银市| 乐业县| SHOW| 宁南县| 化德县| 花垣县| 青阳县| 浦县| 昭平县| 达州市| 苗栗市| 望城县| 康平县| 崇州市| 南郑县| 许昌市| 广灵县| 涪陵区| 武宁县| 睢宁县| 确山县| 台东县| 五台县| 博白县| 铅山县| 托克逊县| 海口市| 胶州市| 庐江县| 敦化市| 江北区| 亳州市|