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

首頁 > 開發(fā) > PHP > 正文

php版本銀聯(lián)支付接口開發(fā)實(shí)例

2024-05-04 21:50:37
字體:
供稿:網(wǎng)友

銀聯(lián)支付,首先要注意二重要的部分:

PHP運(yùn)行環(huán)境是5.4.18以上

開了擴(kuò)展openss

開發(fā)手冊上面的列子只做參考,因?yàn)榛径际清e的。你可以試著去官網(wǎng)下一個demo。。。注意現(xiàn)在銀聯(lián)開發(fā),沒有測試密鑰提供,只能在正式環(huán)境開發(fā)【20151219】

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

  1. /** 
  2. * 銀聯(lián)支付 v0.1 
  3. * @auther:Summer<dengwz7788@gmail.com>; 
  4. * @date:20151202 
  5. * **/ 
  6.  
  7. class NetPayAction extends BaseAction{ 
  8. //在類初始化方法中,引入相關(guān)類庫 
  9. public function _initialize() { 
  10.   header("Content-type:text/html;charset=utf-8"); 
  11.   vendor('Netpay.util.common',"",".php"); //導(dǎo)入加密核心文件夾 
  12.   vendor('Netpay.util.SecssUtil',"",".class.php"); //導(dǎo)入加密核心文件夾 
  13.   vendor('Netpay.util.Settings_INI',"",".php"); //導(dǎo)入加密核心文件夾 
  14.   vendor('Netpay.util.Settings',"",".php"); //導(dǎo)入加密核心文件夾 
  15.   $this-&gt;securityPropFile= $_SERVER['DOCUMENT_ROOT'] . "/ThinkPHP/Extend/Vendor/Netpay/config/security.properties"//誰知道這是啥,反正他們要我加的 
  16.   $this->b2cPaySend = __APP__."/Index/NetPay/b2cPaySend"
  17.   $this-&gt;b2cRefundSend = __APP__."/Index/NetPay/b2cRefundSend"
  18.   $this->b2cQuerySend = __APP__."/Index/NetPay/b2cQuerySend"
  19.   $this->;MerBgUrl = __APP__."/Index/NetPay/MerBgUrl"
  20.   $this->MerPageUrl = __APP__."/Index/NetPay/MerPageUrl"
  21.  
  22. public function index() 
  23.   $paramArray=array ( 
  24.      'MerId' => '商戶號'
  25.      'MerOrderNo' => '0000001944663232'
  26.      'OrderAmt' => '1'
  27.      'TranDate' => '20151219'
  28.     'TranTime' =>'171248'
  29.     'TranType' => '0001'
  30.     'BusiType' =>'0001'
  31.     'Version' => '20140728'
  32.     'CurryNo' => 'CNY'
  33.     'AccessType' =>; '0'
  34.     'CommodityMsg' => '測試商品1號'
  35.     'MerPageUrl' => $this-&gt;MerBgUrl, 
  36.     'MerBgUrl' =>$this-&gt;MerPageUrl, 
  37.     'MerResv' => 'MerResv'
  38.  ); 
  39.    
  40.  if (count($paramArray) >0) { 
  41.     $dispatchUrl = $this->b2cPaySend; 
  42.     $transResvedJson = array(); 
  43.     $cardInfoJson = array(); 
  44.     $sendMap = array(); 
  45.      foreach ($paramArray as $key => $value) { 
  46.       if (isEmpty($value)) { 
  47.         continue
  48.      } 
  49.      if (startWith($key"trans_")) { 
  50.           $key = substr($keystrlen("trans_")); 
  51.                 $transResvedJson[$key] = $value
  52.      } else 
  53.          if (startWith($key"card_")) { 
  54.               $key = substr($keystrlen("card_")); 
  55.               $cardInfoJson[$key] = $value
  56.          } else { 
  57.               $sendMap[$key] = $value
  58.          } 
  59.    } 
  60.  
  61.    $transResvedStr = null; 
  62.    $cardResvedStr = null; 
  63.    if (count($transResvedJson) >0) { 
  64.       $transResvedStr = json_encode($transResvedJson); 
  65.    } 
  66.    if (count($cardInfoJson) &gt; 0) { 
  67.       $cardResvedStr = json_encode($cardInfoJson); 
  68.    } 
  69.  
  70.   $secssUtil = new SecssUtil(); 
  71.   if (! isEmpty($transResvedStr)) { 
  72.     $transResvedStr = $secssUtil->decryptData($transResvedStr); 
  73.     $sendMap["TranReserved"] = $transResvedStr
  74.    } 
  75.   if (! isEmpty($cardResvedStr)) { 
  76.      $cardResvedStr = $secssUtil->decryptData($cardResvedStr); 
  77.      $sendMap["card_"] = $cardResvedStr
  78.    } 
  79.    $securityPropFile = $this>securityPropFile; 
  80.    $secssUtil->init($securityPropFile); 
  81.    $secssUtil->sign($sendMap); 
  82.  
  83.    $sendMap["Signature"] = $secssUtil->getSign(); 
  84.    $_SESSION = $sendMap
  85.    header("Location:" . $dispatchUrl); 
  86.  } 
  87.  
  88. public function b2cPaySend(){ 
  89.    layout(false); 
  90.    $settings = new Settings_INI(); 
  91.    $settings->oad($this->securityPropFile); 
  92.    $pay_url = "https://payment.chinapay.com/CTITS/service/rest/page/nref/000000000017/0/0/0/0/0"
  93.    $html = "<form name='payment' action='{$pay_url}' method='POST' target='_blank'>;"
  94.    $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"
  95.    foreach ($_SESSION as $k =>$v) { 
  96.       if (strstr($params$k)) { 
  97.          $html .= "<input type='hidden' name = '" . $k . "' value ='" . $v . "'/>"
  98.       } 
  99.    } 
  100.  
  101.         $html .= "<nput type='button' type='hidden' value='提交訂單' >"
  102.         $html .= "<;/from>"
  103.         $this->html = $html
  104.         $this->display(); 
  105.  
  106. public function pgReturn(){ 
  107.   if ($_POST) { 
  108.       if (count($_POST) > 0) { 
  109.        $secssUtil = new SecssUtil(); 
  110.        $securityPropFile = $this>securityPropFile; 
  111.        $secssUtil->init($securityPropFile); 
  112.        $text = array(); 
  113.        foreach($_POST as $key=>$value){ 
  114.            $text[$key] = urldecode($value); 
  115.         } 
  116.  
  117.       if ($secssUtil->verify($text)) { 
  118.                        //支付成功 
  119.           $_SESSION["VERIFY_KEY"] = "success"
  120.      } else { //Vevb.com 
  121.        //支付失敗 
  122.          $_SESSION["VERIFY_KEY"] = "fail"
  123.      } 
  124.     } 
  125.    } 
  126.  } 

銀聯(lián)支付應(yīng)該是算比較簡單的!!

感覺銀聯(lián)的支付接口比支付寶的還簡單好用了,當(dāng)然每個考慮到的東西不一樣哦,上面只是開個玩笑的哦.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 四会市| 东阳市| 河津市| 漳州市| 宁南县| 台南市| 广灵县| 梧州市| 吐鲁番市| 龙山县| 藁城市| 金塔县| 来宾市| 莱芜市| 汝城县| 南澳县| 新余市| 凤城市| 高雄县| 岗巴县| 桃源县| 湖南省| 中牟县| 绍兴县| 精河县| 内乡县| 五指山市| 五原县| 怀远县| 廊坊市| 慈利县| 奉新县| 贡觉县| 贵德县| 上高县| 玛纳斯县| 五莲县| 巴南区| 龙游县| 忻城县| 江口县|