国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - php版銀聯(lián)支付接口開(kāi)發(fā)簡(jiǎn)明教程

php版銀聯(lián)支付接口開(kāi)發(fā)簡(jiǎn)明教程

2021-03-11 16:20lanve PHP教程

這篇文章主要介紹了php版銀聯(lián)支付接口開(kāi)發(fā)的方法,結(jié)合實(shí)例形式分析了php銀聯(lián)支付接口開(kāi)發(fā)的具體流程與相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了php銀聯(lián)支付接口開(kāi)發(fā)的方法。分享給大家供大家參考,具體如下:

支付接口現(xiàn)在有第三方的支付接口也有銀行的支付接口。這里就來(lái)介紹php版本銀聯(lián)支付接口開(kāi)發(fā)的方法。

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

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

開(kāi)了擴(kuò)展openssl

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

下面是我用ThinkPHP編寫的一個(gè)支付類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/**
* 銀聯(lián)支付 v0.1
* @auther:Summer<dengwz7788@gmail.com>;
* @date:20151202
* **/
class NetPayAction extends BaseAction{
//在類初始化方法中,引入相關(guān)類庫(kù)
public function _initialize() {
 header("Content-type:text/html;charset=utf-8");
 vendor('Netpay.util.common',"",".php"); //導(dǎo)入加密核心文件夾
 vendor('Netpay.util.SecssUtil',"",".class.php"); //導(dǎo)入加密核心文件夾
 vendor('Netpay.util.Settings_INI',"",".php"); //導(dǎo)入加密核心文件夾
 vendor('Netpay.util.Settings',"",".php"); //導(dǎo)入加密核心文件夾
 $this-&gt;securityPropFile= $_SERVER['DOCUMENT_ROOT'] . "/ThinkPHP/Extend/Vendor/Netpay/config/security.properties"; //誰(shuí)知道這是啥,反正他們要我加的
 $this->b2cPaySend = __APP__."/Index/NetPay/b2cPaySend";
 $this-&gt;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' => '商戶號(hào)',
   'MerOrderNo' => '0000001944663232',
   'OrderAmt' => '1',
   'TranDate' => '20151219',
  'TranTime' =>'171248',
  'TranType' => '0001',
  'BusiType' =>'0001',
  'Version' => '20140728',
  'CurryNo' => 'CNY',
  'AccessType' =>; '0',
  'CommodityMsg' => '測(cè)試商品1號(hào)',
  'MerPageUrl' => $this-&gt;MerBgUrl,
  'MerBgUrl' =>$this-&gt;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) &gt; 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";
   }
  }
  }
 }
}

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

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色国产 | 一本一道久久久a久久久精品91 | 欧美一区二区三区在线视频 | 日韩精品成人 | 在线欧美亚洲 | 中文字幕久久精品 | 91电影在线 | 不卡一二三区 | 爱色av | 久久精品国产免费 | 一区免费看 | 久久一二区| 国产高清在线不卡 | 国产精品高清在线 | 一级毛片免费 | 日韩欧美精品 | 久操色 | 精品电影| 亚洲日本va在线观看 | 国产高清精品在线 | 久久大陆| 成人精品二区 | 久久久亚洲国产美女国产盗摄 | 成人在线一级片 | 99亚洲| 亚洲欧美一区二区三区久久 | 欧美日韩在线免费观看 | 在线精品一区 | 亚洲精品h | 国产成人精品久久二区二区 | 欧洲精品视频在线观看 | 欧美成年网站 | 欧美日韩在线精品 | 成人h动漫精品一区二区器材 | 蜜桃国精产品二三三区视频 | 国产精品国产三级国产aⅴ中文 | 毛片免费看电影 | 成人精品网站在线观看 | 久久久久久国产精品美女 | 中国精品一区二区 | 久久久精品影院 |