易宝网上支付平台的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

时间: 2024-10-19 05:53:25

易宝网上支付平台的PHP接口代码的相关文章

易宝网上支付接口的实现

1 这是payment.php文件<?php    //载入配置文件    require_once 'common.inc.php';?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.

玩蛇记之用python实现易宝快速支付接口

玩蛇记之用python实现易宝快速支付接口 现在很多这种快速支付的通道,易宝支持的通道算是很全面的,正好最近需要集成易宝的支付通道到平台中,所以写一贴来记录一下,顺便鄙视一下国内的支付平台,api的支持做得很是差劲,易宝的例子代码居然是错的,这么囧的事情都能出现,可见国内的竞争还是不够激烈啊. 进入主题,今天的任务是要打通支付和支付通知接口,根据一般性规则,通过http协议的支付接口的一般设计都是,通过N个field或者查询参数传递数据,其中一个是验证串,防止篡改数据,每个申请了支付接口的用户都

网上支付平台

? 一.网上支付平台介绍 1.商家和银行直接对接: 优点: 因为直接与银行进行财务结算,交易资金结算比较安全.适合资金流量比较大的企业,这种方案适合于,每月结算金额百万以上的企业. 缺点: 开发工作量比较大,而且银行会不定期升级交易系统,随着银行系统的升级,企业也也需要做相应的改动,所以维护工作量也是比较大的,而且企业每年还需要向银行交纳一定数量的接口使用费用. ? 2.商家和第三方支付平台: ? ? 优点: 开发工作量较少,银行升级系统,不需要企业做相应的修改,除非中间企业的接入规范发生了改变

php网上支付易宝

巴巴运动网是通过易宝向招商银行打钱,这个首先易宝是需要审核巴巴运动网的钱来的是否正当不然易宝就成了一个洗钱的工具,这个是犯法的:因为钱的来路不明!财政部是需要抓起来的!所以钱的流向实际上是用户的招商银行的钱通过易宝这个中间工具,然后把钱打到招商银行,所以易宝肯定不会随随便便将钱打到一个银行去! 返回的时候,根据支付的验证码来确定是不是易宝是不是支付成功,然后如果支付成功那么执行这条语句: if($r9_BType==1){/* //假设我们点卡充值 //order 表 // id status

浅谈第三方电子支付平台测试方法的研究

第三方支付平台的功能和结构特点 在信用方面,第三方支付平台作为中介,在网上交易的商家和消费者之间作一个信用的中转,通过改造支付流程来约束双方的行为,从而在一定程度上缓解彼此对双方信用的猜疑,增加对网上购物的可信度. 在技术层面,第三方支付平台承担安全保障和技术支持的作用,提供一系列的应用接口程序,支持多家银行的多卡种支付,将多家签约银行的支付方式整合到一个界面上,负责交易结算中心与银行的对接.银行与商家通过接入第三方支付平台实现二次结算,并采用国际先进SSL加密模式,在银行.消费者和商家之间传输

【深度解析】第三方支付的分类、接口与支付流程

原标题:[深度解析]第三方支付的分类.接口与支付流程 目录 - - - - - 1. 概述 2. 支付环节 3. 分类 4. 银行接口 如今第三方支付已经发展的非常成熟,但是至今仍未有一个比较权威的定义,下面将根据自己的工作经历说明一下第三方支付,文章有点长. 1 概述 第三方支付是具备一定实力和信誉保障的独立机构,采用与各大银行签约的方式,提供与银行支付结算系统接口的交易支持平台的网络支付方式. 第三方支付平台是指平台提供商通过通信.计算机和信息安全技术,在商家和银行之间建立连接,从而实现消费

【Java EE 学习 21 下】【 使用易宝支付接口实现java网上支付功能】

一.网上支付分为两种情况,一种方法是使用直接和银行的支付接口,另外一种方法是使用第三方支付平台和银行对接完成支付. 1.直接和银行对接. 2.使用第三方支付平台 3.常见的第三方支付平台 二.使用易宝支付接口实现java网上支付功能(农业银行). 1.完整源代码:https://github.com/kdyzm/day21_2_pay 2.实现过程的时序图 3.技术要点 (1)使用GET请求的时候必须将全部参数都带上,参数名称参考开发者文档中的请求参数列表 (2)使用PaymentUtil类实现

【Java EE 学习第21天 使用易宝支付接口实现java网上支付功能】

一.网上支付分为两种情况,一种方法是使用直接和银行的支付接口,另外一种方法是使用第三方支付平台和银行对接完成支付. 1.直接和银行对接. 2.使用第三方支付平台 3.常见的第三方支付平台 二.使用易宝支付接口实现java网上支付功能(农业银行). 1.完整源代码:https://github.com/kdyzm/day21_2_pay 2.实现过程的时序图 3.技术要点 (1)使用GET请求的时候必须将全部参数都带上,参数名称参考开发者文档中的请求参数列表 (2)使用PaymentUtil类实现

【SSH网上商城项目实战21】从Demo中看易宝支付的流程

这一节我们先写一个简单点的Demo来测试易宝支付的流程,熟悉这个流程后,再做实际的开发,因为是一个Demo,所以我没有考虑一些设计模式的东西,就是直接实现支付功能.实现支付功能需要易宝给我们提供的API.那么问题来了,使用第三方支付平台最主要的一件事就是获取该平台的API,我们首先得获取他们的API以及开发文档,然后才可以做进一步的开发. 1. 获取易宝的API 获取API的第一步,要在易宝上注册一个账号,这个账号是商家的账号,后面买家付款后,会将钱款存入该账号中,然后商家自己提取到银行卡,易宝