1. 程式人生 > >開發自己的網上支付案例代碼(易寶支付)

開發自己的網上支付案例代碼(易寶支付)

代碼 http text clu 輸入 成功 改變 mon 崩潰

技術分享圖片

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 "支付成功";
?>

註運行截圖:

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

註:這次開發是我個人親自實驗過的,所以嘗試時請註意輸入的支付金額,是真的會扣除,不要隨意嘗試喲!否則如果你不聽話,瞬間成為無產階級,請不要怪我!!!!!!!!

本篇分享到此結束。

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

開發自己的網上支付案例代碼(易寶支付)