易宝网上支付接口的实现
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.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>易宝支付接口测试</title>
<style type="text/css">
* {
padding:0;
margin:0;
}
body {
font-size:12px;
width:960px;
background:#ffe;
font-family:Arial;
margin:0 auto;
}
ul {
list-style-type:none;
}
body h1 {
font-size:14px;
padding:50px 0 20px 150px;
}
body form {
padding:0 0 0 150px;
}
body form ul li {
padding:5px 0 5px 0;
}
body form ul li input.text {
border:1px solid #ccc;
width:220px;
height:22px;
}
body form ul li input.submit {
padding:2px 3px;
cursor:pointer;
}
</style>
</head>
<body>
<?php if(isset($_POST['send'])){
$p0_Cmd='Buy';//业务类型,固定值是'Buy'
$p1_MerId='10001126856';//商户编号
$p2_Order=$_POST['p2_Order'];//商户订单号
$p3_Amt=$_POST['p3_Amt'];//支付金额
$p4_Cur='CNY';//交易币种,固定值是'CNY' 人民币
$p5_Pid='';//商品名称
$p6_Pcat='';//商品种类
$p7_Pdesc='';//商品描述
$p8_Url='http://localhost:8080/test/payback.php';//回调地址
$p9_SAF='0';//送货地址
$pa_MP='';//商品扩展信息
$pd_FrpId=$_POST['pd_FrpId'];//各种银行的支付通道
$pr_NeedResponse='1';//应答机制
switch($pd_FrpId){
case 'CMBCHINA-NET' :
$bank='招商银行';
break;
case 'ICBC-NET' :
$bank='工商银行';
break;
case 'ABC-NET' :
$bank='农业银行';
break;
case 'CCB-NET' :
$bank='建设银行';
break;
}
$data=$data.$p0_Cmd;
$data=$data.$p1_MerId;
$data=$data.$p2_Order;
$data=$data.$p3_Amt;
$data=$data.$p4_Cur;
$data=$data.$p5_Pid;
$data=$data.$p6_Pcat;
$data=$data.$p7_Pdesc;
$data=$data.$p8_Url;
$data=$data.$p9_SAF;
$data=$data.$pa_MP;
$data=$data.$pd_FrpId;
$data=$data.$pr_NeedResponse;
$key='69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl';//商户密钥
$hmac=HmacMd5($data,$key);//mac签名用于验证
?>
<h1>您的订单信息如下:</h1>
<form action="https://www.yeepay.com/app-merchant-proxy/node" method="post">
<input type="hidden" name="p0_Cmd" class="text" value="<?php echo $p0_Cmd;?>" />
<input type="hidden" name="p1_MerId" class="text" value="<?php echo $p1_MerId;?>" />
<input type="hidden" name="p2_Order" class="text" value="<?php echo $p2_Order;?>" />
<input type="hidden" name="p3_Amt" class="text" value="<?php echo $p3_Amt;?>" />
<input type="hidden" name="p4_Cur" class="text" value="<?php echo $p4_Cur;?>" />
<input type="hidden" name="p5_Pid" class="text" value="<?php echo $p5_Pid;?>" />
<input type="hidden" name="p6_Pcat" class="text" value="<?php echo $p6_Pcat;?>" />
<input type="hidden" name="p7_Pdesc" class="text" value="<?php echo $p7_Pdesc;?>" />
<input type="hidden" name="p8_Url" class="text" value="<?php echo $p8_Url;?>" />
<input type="hidden" name="p9_SAF" class="text" value="<?php echo $p9_SAF;?>" />
<input type="hidden" name="pa_MP" class="text" value="<?php echo $pa_MP;?>" />
<input type="hidden" name="pd_FrpId" class="text" value="<?php echo $pd_FrpId;?>" />
<input type="hidden" name="pr_NeedResponse" class="text" value="<?php echo $pr_NeedResponse;?>" />
<input type="hidden" name="hmac" class="text" value="<?php echo $hmac;?>" />
<ul>
<li>您的 订单号:<input type="text" name="p2_Order" class="text" value="<?php echo $p2_Order;?>" /></li>
<li>您支付的金额:<input type="text" name="p3_Amt" class="text" value="<?php echo $p3_Amt;?>" /> 元</li>
<li>要支付的银行:<span><?php echo $bank;?></span></li>
<li><input type="submit" name="send" value="确认支付" class="submit"/></li>
</ul>
</form>
<?php }else{ ?>
<h1>欢迎来到易宝支付平台</h1>
<form action="payment.php" method="post">
<ul>
<li>请输入订单号:<input type="text" name="p2_Order" class="text"/></li>
<li>输入您的金额:<input type="text" name="p3_Amt" class="text"/> 元</li>
<li>请选择要支付的银行:</li>
<li>
<input type="radio" name="pd_FrpId" value="CMBCHINA-NET"/> 招商银行
<input type="radio" name="pd_FrpId" value="ICBC-NET"/> 工商银行
<input type="radio" name="pd_FrpId" value="ABC-NET"/> 农业银行
<input type="radio" name="pd_FrpId" value="CCB-NET"/> 建设银行
</li>
<li><input type="submit" name="send" value="确认支付" class="submit"/></li>
</ul>
</form>
<?php }?>
</body>
</html>
2 这是common.inc.php配置文件
<?php
function HmacMd5($data,$key){
$key=iconv('gb2312','utf-8',$key);
$data=iconv('gb2312','utf-8',$data);
$b=64;
if(strlen($key)>$b){
$key=pack('H*',md5($key));
}
$key=str_pad($key,$b,chr(0x00));
$ipad=str_pad('',$b,chr(0x36));
$opad=str_pad('',$b,chr(0x5c));
$k_ipad=$key^$ipad;
$k_opad=$key^$opad;
return md5($k_opad.pack('H*',md5($k_ipad.$data)));
}
?>
3 回调地址文件payback.php
<?php
echo '恭喜您,支付成功!';
?>