注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天上人间*bobo之家

有阳光的时段,就有他(她)的博客文章。也许天气并非晴空万里,博主的“博物钟”却是

 
 
 

日志

 
 

在线支付接口PHP版  

2009-09-22 14:27:24|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Send.php
<!-- 
 * ====================================================================
 *
 *                Send.php 由网银在线技术支持提供
 *
 *  本页面接收来自上页所有订单信息,并提交支付表单信息到网线在线支付平台....
 *
 *
 * ====================================================================
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>在线支付接口PHP版</title>

<link href="css/index.css" rel="stylesheet" type="text/css">
</head>
<body  onLoad="javascript:document.E_FORM.submit()">
<?php
error_reporting(0);
//****************************************
 $v_mid = '1001';            // 商户号,这里为测试商户号1001,替换为自己的商户号(老版商户号为4位或5位,新版为8位)即可
 $v_url = 'xxxxxxxxx'; // 请填写返回url,地址应为绝对路径,带有http协议
 $key   = '0000000000000000';            // 如果您还没有设置MD5密钥请登陆我们为您提供商户后台,地址:https://merchant3.chinabank.com.cn/
              // 登陆后在上面的导航栏里可能找到“资料管理”,在资料管理的二级导航栏里有“MD5密钥设置”
              // 建议您设置一个16位以上的密钥或更高,密钥最多64位,但设置16位已经足够了
//****************************************

 

 $v_oid = date('Ymd',time())."-".$v_mid."-".date('His',time());//订单号,建议构成格式 年月日-商户号-小时分钟秒


 
 $v_amount = trim($_GET['money']);                   //支付金额                
    $v_moneytype = "CNY";                                            //币种

 $text = $v_amount.$v_moneytype.$v_oid.$v_mid.$v_url.$key;        //md5加密拼凑串,注意顺序不能变
    $v_md5info = strtoupper(md5($text));                             //md5函数加密并转化成大写字母

  $remark1 = trim($_GET['remark1']);      //备注字段1
  $remark2 = "";                    //备注字段2

 

 $v_rcvname   = trim($_GET['username'])  ;  // 收货人
// $v_rcvaddr   = trim($_POST['v_rcvaddr'])  ;  // 收货地址
// $v_rcvtel    = trim($_POST['v_rcvtel'])   ;  // 收货人电话
// $v_rcvpost   = trim($_POST['v_rcvpost'])  ;  // 收货人邮编
// $v_rcvemail  = trim($_POST['v_rcvemail']) ;  // 收货人邮件
// $v_rcvmobile = trim($_POST['v_rcvmobile']);  // 收货人手机号
//
// $v_ordername   = trim($_POST['v_ordername'])  ; // 订货人姓名
// $v_orderaddr   = trim($_POST['v_orderaddr'])  ; // 订货人地址
// $v_ordertel    = trim($_POST['v_ordertel'])   ; // 订货人电话
// $v_orderpost   = trim($_POST['v_orderpost'])  ; // 订货人邮编
// $v_orderemail  = trim($_POST['v_orderemail']) ; // 订货人邮件
// $v_ordermobile = trim($_POST['v_ordermobile']); // 订货人手机号

?>

<!--以下信息为标准的 HTML 格式 + ASP 语言 拼凑而成的 网银在线 支付接口标准演示页面 无需修改-->

<form method="post" name="E_FORM" action="https://pay3.chinabank.com.cn/PayGate">
 <input type="hidden" name="v_mid"         value="<?php echo $v_mid;?>">
 <input type="hidden" name="v_oid"         value="<?php echo $v_oid;?>">
 <input type="hidden" name="v_amount"      value="<?php echo $v_amount;?>">
 <input type="hidden" name="v_moneytype"   value="<?php echo $v_moneytype;?>">
 <input type="hidden" name="v_url"         value="<?php echo $v_url;?>">
 <input type="hidden" name="v_md5info"     value="<?php echo $v_md5info;?>">
 
 <!--以下几项项为网上支付完成后,随支付反馈信息一同传给信息接收页 --> 
 
 <input type="hidden" name="remark1"       value="<?php echo $remark1;?>">
 <input type="hidden" name="remark2"       value="<?php echo $remark2;?>">


<!--以下几项只是用来记录客户信息,可以不用,不影响支付 -->
 <input type="hidden" name="v_rcvname"      value="<?php echo $v_rcvname;?>">
<?php
 $info=explode('|',$remark1);
 $pay_lx=$info[4];
 if($pay_lx==5||$pay_lx==6){
 echo "<input type='hidden' name='pmode_id' value='04'>";
 }
?>

</form>

</body>
</html>

pay-netbank

<?php
class PayAction extends Action
{
 function netbank() {
  //**************************************** //MD5密钥要跟订单提交页相同,如Send.asp里的 key = "test" ,修改""号内 test 为您的密钥
            //如果您还没有设置MD5密钥请登陆我们为您提供商户后台,地址:https://merchant3.chinabank.com.cn/
  $key   = '0000000000000000';      //登陆后在上面的导航栏里可能找到“资料管理”,在资料管理的二级导航栏里有“MD5密钥设置”
            //建议您设置一个16位以上的密钥或更高,密钥最多64位,但设置16位已经足够了
 //****************************************
  
 $v_oid     =trim($_POST['v_oid']);       // 商户发送的v_oid定单编号  
 $v_pmode   =trim($_POST['v_pmode']);    // 支付方式(字符串)  
 $v_pstatus =trim($_POST['v_pstatus']);   //  支付状态 :20(支付成功);30(支付失败)
 $v_pstring =trim($_POST['v_pstring']);   // 支付结果信息 : 支付完成(当v_pstatus=20时);失败原因(当v_pstatus=30时,字符串);
 $v_amount  =trim($_POST['v_amount']);     // 订单实际支付金额
 $v_moneytype  =trim($_POST['v_moneytype']); //订单实际支付币种   
 $remark1   =trim($_POST['remark1' ]);      //备注字段1
 $remark2   =trim($_POST['remark2' ]);     //备注字段2
 $v_md5str  =trim($_POST['v_md5str' ]);   //拼凑后的MD5校验值 
 
 /**
  * 重新计算md5的值
  */
                           
 $md5string=strtoupper(md5($v_oid.$v_pstatus.$v_amount.$v_moneytype.$key));
 
 /**
  * 判断返回信息,如果支付成功,并且支付结果可信,则做进一步的处理
  */
 
 if ($v_md5str==$md5string)
 {
  if($v_pstatus=="20")
  {
   $orderid=$remark1;
   $money=$v_amount;
     }elseif (xxxxxxxxxxxxxxxx){
      $Dao->execute("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
   }
   echo "<script>alert('付款成功''</script>";
   //商户系统的逻辑处理(例如判断金额,判断支付状态,更新订单状态等等)......
 
  }else{
   echo "支付失败";
  }
 
 }else{
  echo "<br>校验失败,数据可疑";
 }
 }
}
?>

  评论这张
 
阅读(1706)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018