程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 易寶網上支付平台的PHP接口代碼,易寶網上支付

易寶網上支付平台的PHP接口代碼,易寶網上支付

編輯:關於PHP編程

易寶網上支付平台的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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved