时间:2021-07-01 10:21:17 帮助过:7人阅读
这是测试图片:
以下是代码部分:
1 php 2 3 4function HmacMd5($data, $key) 5{ 6 7//需要配置环境支撑iconv,否则中文参数不能正常处理 8$key = iconv("GB2312", "UTF-8", $key); 9$data = iconv("GB2312", "UTF-8", $data); 10$b = 64; 11if (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; 19returnmd5($k_opad . pack("H*", md5($k_ipad . $data))); 20} 21//我们把易宝支付要求怎样生成一个签名串 22 //把各个请求参数凭借作为$data传入: $key 就是易宝给商家分配的密钥2324 ?>common.php
1 2 3 4 5 27pay.php
1 2 3 4 5 php 6include '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; 4041$merchantKey ="69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl"; 42// hmac是签名串,是用于易宝和商家互相确认的关键字 43 // 这里我们需要使用算法来生成(md5-hmac算法)44$hmac = HmacMd5($data,$merchantKey); 45 ?> 46 你的订单号是:echo$p2_Order; ?>支付的金额是echo$p3_Amt; ?> 47 48 65payConfirm.php
1 php 2include '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']; 1617// 拼接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签名串比较32if (HmacMd5($res_src, $merchantKey) == $hmac) { 33if ($r1_Code == 1) { 34if ($r9_BType == 1) { 35echo '交易成功!'; 36echo '订单号为' . $r6_Order . '支付成功!' . '所付金额是' . $r3_Amt . '易宝支付订单号' . $r2_TrxId; 37echo 'res.php
浏览器重定向'; 38 } elseif ($r9_BType == 2) { 39echo 'success'; 40echo '
交易成功!'; 41echo '
服务器点对点通讯'; 42 } 43 } 44 } else { 45echo '签名被篡改了'; 46 } 4748 ?>
以上就介绍了易宝网上支付平台的PHP接口代码,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。