开发自己的网上支付案例代码(易宝支付php)

1.简单的图解(如上所示)

易宝支付与支付宝是不一样的,但也有类似之处,支付宝是专门为淘宝软件开发的一套机制,资金会在中间支付公司(支付宝)停留,等待顾客确认,当顾客确认后,才会真正扣钱。而易宝支付时,资金不会在中间公司停留,这是两者最大的区别。

如果有什么不懂的,可以去查看 “易宝支付产品通用接口帮助文档”。

注:这些参数在使用时是固定的,是各大银行规定好的,使用时不可改变。

***webpay1.php

<html>
<head>
<meta http-equiv="content-type"content="text/html charset=utf-8"/>
</head>
<form action="webpay2.php"method="POST">
<table>
<tr>
<td colspan="4">
订单号:<input type="text"name="p2_Order"/>
支付金额:<input type="text"name="p3_Amt"/>
</td>
</tr>
<tr>
<td colspan="4">
请选择支付方式:
</td>
</tr>
<tr>
<td>
<input type="radio"name="pd_FrpId" value="CMBCHINA-NET"/>招商银行
</td>
<td>
<input type="radio"name="pd_FrpId"value="ICBC-NET"/>工商银行
</td>
<td>
<input type="radio"name="pd_FrpId"value="ABC-NET"/>农业银行
</td>
<td>
<input type="radio"name="pd_FrpId"value="CCB-NET"/>建设银行
</td>
</tr>
<tr>
<td colspan="4">
<input type="submit"value="确认支付"/>
</td>
</tr>
</table>
</form>
</html>

webpay2.php

<html>
<head>
<meta http-equiv="content-type"content="text/html charset=utf-8"/>
</head>
<?php
include_once "common.php";
$p0_Cmd="Buy";
$p1_MerId="10001126856";
$p2_Order=$_REQUEST['p2_Order'];
$p3_Amt=$_REQUEST['p3_Amt'];
$p4_Cur="CNY";
$p5_Pid="";
$p6_Pcat="";
$p7_Pdesc="";
//网易支付成功后,给url返回信息
$p8_Url="http://localhost:80/res.php";
$p9_SAF="0";
$pa_MP="";
$pr_NeedResponse="1";
$pd_FrpId=$_REQUEST['pd_FrpId'];
注:以上13个参数是易宝支付规定好的,顺序也必须一致,顺序错了会引起下一步的密码生成错误,将无法开发成功。需要去查手册。

$data="";
$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;

//这是易宝为商务提供的接口,也是固定不变的,不可以随意更改。

//建议:使用时主义其中 “1”和“l”的区别,在本页中你可以区分的很清楚,但在ide中很难区分,我就是因为这个问题出错,整整查了一两个小时的错误,却无从查起。查的人都要崩溃了。
$merchantKey="69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
$hmac=HmacMd5($data,$merchantKey);
?>

您的订单号是<?php echo $p2_Order;?>支付的金额是<?php  echo $p3_Amt; ?>
<form action="https://www.yeepay.com/app-merchant-proxy/node"method="post">
<input type="hidden"name="p0_Cmd"value="<?php  echo $p0_Cmd;?>"/>
<input type="hidden"name="p1_MerId"value="<?php  echo $p1_MerId;?>"/>
<input type="hidden"name="p2_Order"value="<?php  echo $p2_Order;?>"/>
<input type="hidden"name="p3_Amt"value="<?php  echo $p3_Amt;?>"/>
<input type="hidden"name="p4_Cur"value="<?php  echo $p4_Cur;?>"/>
<input type="hidden"name="p5_Pid"value="<?php  echo $p5_Pid;?>"/>
<input type="hidden"name="p6_Pcat"value="<?php  echo $p6_Pcat;?>"/>
<input type="hidden"name="p7_Pdesc"value="<?php  echo $p7_Pdesc;?>"/>
<input type="hidden"name="p8_Url"value="<?php  echo $p8_Url;?>"/>
<input type="hidden"name="p9_SAF"value="<?php  echo $p9_SAF;?>"/>
<input type="hidden"name="pa_MP"value="<?php  echo $pa_MP;?>"/>
<input type="hidden"name="pd_FrpId"value="<?php  echo $pd_FrpId;?>"/>
<input type="hidden"name="pr_NeedResponse"value="<?php  echo $pr_NeedResponse;?>"/>
<input type="hidden"name="hmac"value="<?php  echo $hmac;?>"/>
<input type="submit"value="确认网上支付">
</form>
</html>

common.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)));
}

/*$merchantKey="69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl";
echo "val=".HmacMd5("hello",$merchantKey);*/
?>

res.php

<?php
echo "支付成功";
?>

注运行截图:

 

 

 

 

 

 

注:这次开发是我个人亲自实验过的,所以尝试时请注意输入的支付金额,是真的会扣除,不要随意尝试哟!否则如果你不听话,瞬间成为无产阶级,请不要怪我!!!!!!!!

本篇分享到此结束。

革命尚未成功,同志仍需努力!

转载于:https://www.cnblogs.com/aasu/p/9126095.html

1.文件列表说明 |-----------YeePayCommon.php(共通函数文件,不需要进行任何修改) |-----------merchantProperties.php(商家属性文件,商家可以在此文件中修改商家的ID和密钥和支付返回地址等信息) |-----------req.php (支付请求文件,通过此文件发起支付请求,商家可以在此文件中写入自己的订单信息等,然后把请求提交给易宝支付) |-----------callback.php(支付结果返回文件,通过此文件商家判断对应订单的支付成功状态,并且根据结果修改自己数据库中的订单状态) |-----------QueryOrder.php (易宝支付查询接口主程序) |-----------HttpClient.class.php (共通函数文件,用于服务器通讯) 2.商家测试可以先用易宝支付的测试商家测试成功再在merchantProperties.php文件中修改成自己的商家ID和密钥信息 $p1_MerId = "10001126856"; $merchantKey = "69cl522AV6q613Ii4W6u8K6XuW8vM1N6bFgyv769220IuYe9u37N4y7rI4Pl"; 商家ID和密钥需要同时修改才有效 3.支付成功的返回URL请在merchantProperties.php文件中进行修改 $merchantCallbackURL = "http://localhost/callback.php"; 商家正式运行时,必须把自己的服务器部署在公网上的服务器上,这样支付成功后易宝支付的服务器才能支付结果及时返回给商家 为了商家技术工程师开发的方便,如果测试服务器在工程师自己的服务器上,可以把URL设定为localhost的方式,浏览器可以正式返回。 4.共通文件采用服务器包含的方式进行处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值