The PHP interface code of Yibao online payment platform, Yibao online payment
This code refers to the last 5 lectures from Han Shunping 149 video. Friends who need to learn can refer to this code
This is a test picture:

The following is the code part:

1 php
2
3
4 function HmacMd5(
$data,
$key)
5 {
6
7 //The environment needs to be configured to support iconv, otherwise Chinese parameters cannot be processed normally
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 //We asked Yibao payment how to generate a signature string
22 //Pass each request parameter in as $data: $key is the key assigned by Yibao to the merchant
23
24 ?>
common.php

1
2
3
4
5
27
pay.php

1
2
3
4
5 php
6 include 'common.php'
;
7 // Here we get the information submitted by the user
8
9 // 1. Get the order number
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 // Product Name
16 $p5_Pid = ""
;
17 $p6_Pcat = "";
// Product Type
18 $p7_Pdesc = "";
// Product introduction
19 // Just after Yibao payment is successful, information will be returned to the url
20 $p8_Url = "http://loaclhost/FUCKPHP/onlinezhifu/res.php"
;
21 $p9_SAF = "0";
// Shipping Address
22 $pa_MP = "";
// Additional introduction
23 $pd_FrpId =
$_REQUEST['pd_FrpId'];
// Payment Channel
24 $pr_NeedResponse = "1";
// Response mechanism
25 // We splice the request parameters one by one (the order is very important when splicing!!)
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 你的订单号是:echo
$p2_Order; ?>支付的金额是echo
$p3_Amt; ?>
47
48
65
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 '
浏览器重定向'
;
38 }
elseif (
$r9_BType == 2
) {
39 echo 'success'
;
40 echo '
交易成功!'
;
41 echo '
服务器点对点通讯'
;
42 }
43 }
44 }
else {
45 echo '签名被篡改了'
;
46 }
47
48 ?>
res.php
http://www.bkjia.com/PHPjc/1010337.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1010337.htmlTechArticle易宝网上支付平台的PHP接口代码,易宝网上支付 本代码参照自韩顺平149讲视频后5讲,需要学习的朋友可以参考本代码 这是测试图片: 以下...