易寶網上支付平台的PHP接口代碼,易寶網上支付
本代碼參照自韓順平149講視頻後5講,需要學習的朋友可以參考本代碼
這是測試圖片:

以下是代碼部分:

![]()
1 <?php
2
3
4 function HmacMd5($data, $key)
5 {
6
7 //需要配置環境支撐iconv,否則中文參數不能正常處理
8 $key = iconv("GB2312", "UTF-8", $key);
9 $data = iconv("GB2312", "UTF-8", $data);
10 $b = 64;
11 if (strlen($key) > $b) {
12 $key = pack("H*", md5($key));
13 }
14 $key = str_pad($key, $b, chr(0x00));
15 $ipad = str_pad('', $b, chr(0x36));
16 $opad = str_pad('', $b, chr(0x5c));
17 $k_ipad = $key ^ $ipad;
18 $k_opad = $key ^ $opad;
19 return md5($k_opad . pack("H*", md5($k_ipad . $data)));
20 }
21 //我們把易寶支付要求怎樣生成一個簽名串
22 //把各個請求參數憑借作為$data傳入: $key 就是易寶給商家分配的密鑰
23
24 ?>
common.php

![]()
1 <html>
2 <head>
3 <meta http-equiv="content-type" content="text/html;charset=gb2312" />
4 </head>
5 <form action="payConfirm.php" method="post">
6 <table>
7 <tr>
8 <td colspan="4">
9 訂單號:<input type="text" name="p2_Order" />
10 支付金額:<input type="text" name="p3_Amt" />
11 </td>
12 </tr>
13 <tr>
14 <td colspan="4">請選擇支付銀行</td>
15 </tr>
16 <tr>
17 <td><input type="radio" name="pd_FrpId" value="CMBCHINA-NET-B2C" />招商銀行</td>
18 <td><input type="radio" name="pd_FrpId" value="ICBC-NET-B2C" />工商銀行</td>
19 <td><input type="radio" name="pd_FrpId" value="ABC-NET-B2C" />農業銀行</td>
20 <td><input type="radio" name="pd_FrpId" value="CCB-NET-B2C" />建設銀行</td>
21 </tr>
22 <tr>
23 <td colspan="4"><input type="submit" value="確認支付" /></td>
24 </tr>
25 </table>
26 </form>
27 </html>
pay.php

![]()
1 <html>
2 <head>
3 <meta http-equiv="content-type" content="text/html;charset=gb2312" />
4 </head>
5 <?php
6 include 'common.php';
7 // 這裡我們獲取用戶提交的信息
8
9 // 1.獲取訂單號
10 $p0_Cmd = "Buy";
11 $p1_MerId = "10001126856";
12 $p2_Order = $_REQUEST['p2_Order'];
13 $p3_Amt = $_REQUEST['p3_Amt'];
14 $p4_Cur = "CNY";
15 // 商品名稱
16 $p5_Pid = "";
17 $p6_Pcat = ""; // 商品種類
18 $p7_Pdesc = ""; // 商品介紹
19 // 只是易寶支付成功後,給url返回信息
20 $p8_Url = "http://loaclhost/FUCKPHP/onlinezhifu/res.php";
21 $p9_SAF = "0"; // 送貨地址
22 $pa_MP = ""; // 額外介紹
23 $pd_FrpId = $_REQUEST['pd_FrpId']; // 支付通道
24 $pr_NeedResponse = "1"; // 應答機制
25 // 我們把請求參數一個一個拼接(拼接的時候,順序很重要!!)
26 $data="";
27 $data=$data.$p0_Cmd;
28 $data=$data.$p1_MerId;
29 $data=$data.$p2_Order;
30 $data=$data.$p3_Amt;
31 $data=$data.$p4_Cur;
32 $data=$data.$p5_Pid;
33 $data=$data.$p6_Pcat;
34 $data=$data.$p7_Pdesc;
35 $data=$data.$p8_Url;
36 $data=$data.$p9_SAF;
37 $data=$data.$pa_MP;
38 $data=$data.$pd_FrpId;
39 $data=$data.$pr_NeedResponse;
40
41 $merchantKey ="69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
42 // hmac是簽名串,是用於易寶和商家互相確認的關鍵字
43 // 這裡我們需要使用算法來生成(md5-hmac算法)
44 $hmac = HmacMd5($data,$merchantKey);
45 ?>
46 你的訂單號是:<?php echo $p2_Order; ?>支付的金額是<?php echo $p3_Amt; ?>
47 <!-- 把要提交的數據用隱藏域表示 -->
48 <form action="https://www.yeepay.com/app-merchant-proxy/node" method="post">
49 <input type="hidden" name="p0_Cmd" value="<?php echo $p0_Cmd; ?>"/>
50 <input type="hidden" name="p1_MerId" value="<?php echo $p1_MerId; ?>"/>
51 <input type="hidden" name="p2_Order" value="<?php echo $p2_Order; ?>"/>
52 <input type="hidden" name="p3_Amt" value="<?php echo $p3_Amt; ?>"/>
53 <input type="hidden" name="p4_Cur" value="<?php echo $p4_Cur; ?>"/>
54 <input type="hidden" name="p5_Pid" value="<?php echo $p5_Pid; ?>"/>
55 <input type="hidden" name="p6_Pcat" value="<?php echo $p6_Pcat; ?>"/>
56 <input type="hidden" name="p7_Pdesc" value="<?php echo $p7_Pdesc; ?>"/>
57 <input type="hidden" name="p8_Url" value="<?php echo $p8_Url; ?>"/>
58 <input type="hidden" name="p9_SAF" value="<?php echo $p9_SAF; ?>"/>
59 <input type="hidden" name="pa_MP" value="<?php echo $pa_MP; ?>"/>
60 <input type="hidden" name="pd_FrpId" value="<?php echo $pd_FrpId; ?>"/>
61 <input type="hidden" name="pr_NeedResponse" value="<?php echo $pr_NeedResponse; ?>"/>
62 <input type="hidden" name="hmac" value="<?php echo $hmac; ?>"/>
63 <input type="submit" value="確認網上支付"/>
64 </form>
65 </html>
payConfirm.php

![]()
1 <?php
2 include 'common.php';
3 //獲取從易寶支付網關返回的信息
4 $p1_MerId = "10001126856";
5 $r0_Cmd = $_REQUEST['r0_Cmd'];
6 $r1_Code = $_REQUEST['r1_Code'];
7 $r2_TrxId = $_REQUEST['r2_TrxId'];
8 $r3_Amt = $_REQUEST['r3_Amt'];
9 $r4_Cur = $_REQUEST['r4_Cur'];
10 $r5_Pid = $_REQUEST['r5_Pid'];
11 $r6_Order = $_REQUEST['r6_Order'];
12 $r7_Uid = $_REQUEST['r7_Uid'];
13 $r8_MP = $_REQUEST['r8_MP'];
14 $r9_BType = $_REQUEST['r9_BType'];
15 $hmac = $_REQUEST['hmac'];
16
17 // 拼接
18 $res_src = "";
19 $res_src = $res_src . $p1_MerId;
20 $res_src = $res_src . $r0_Cmd;
21 $res_src = $res_src . $r1_Code;
22 $res_src = $res_src . $r2_TrxId;
23 $res_src = $res_src . $r3_Amt;
24 $res_src = $res_src . $r4_Cur;
25 $res_src = $res_src . $r5_Pid;
26 $res_src = $res_src . $r6_Order;
27 $res_src = $res_src . $r7_Uid;
28 $res_src = $res_src . $r8_MP;
29 $res_src = $res_src . $r9_BType;
30 $merchantKey = "69c1522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4P1";
31 // 對返回的結果進行MD5-hmac加密處理,和返回的hmac簽名串比較
32 if (HmacMd5($res_src, $merchantKey) == $hmac) {
33 if ($r1_Code == 1) {
34 if ($r9_BType == 1) {
35 echo '交易成功!';
36 echo '訂單號為' . $r6_Order . '支付成功!' . '所付金額是' . $r3_Amt . '易寶支付訂單號' . $r2_TrxId;
37 echo '<br/>浏覽器重定向';
38 } elseif ($r9_BType == 2) {
39 echo 'success';
40 echo '<br/>交易成功!';
41 echo '<br/>服務器點對點通訊';
42 }
43 }
44 } else {
45 echo '簽名被篡改了';
46 }
47
48 ?>
res.php