第三方支付平台--网银在线

来源:互联网 发布:shell 编程 编辑:程序博客网 时间:2024/04/26 05:57

发送数据

<?php//这里发送6个必须的信息到第三方支付平台$v_mid = '1009001';//第三方支付平台提供的账号,商户编号$v_oid = 'sn'.uniqid();//订单编号,随机生成$v_amount= $_POST['money'];//支付金额,在上个页面获得$v_moneytype = "CNY";//人民币支付$v_url = "http://localhost/payonline/Receive.php";//返回结果处理页面$action = "http://localhost/payonline/index.php";//第三方支付平台的服务器//MD5校验串生成方法:当消费者在商户端生成最终订单的时候,//将订单中的v_amount v_moneytype v_oid v_mid v_url key六个参数的value值拼成一个无间隔的字符串(顺序不要改变)。//参数key是商户的MD5密钥(该密匙可在登陆商户管理界面后自行更改。)$key  = '#(%#WU)(UFGDKJGNDFG';//密钥,第三方支付平台提供的密码//需要全部大写$v_md5info = strtoupper(md5($v_amount.$v_moneytype.$v_oid.$v_mid.$v_url.$key));?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"><head><title>新建网页</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="description" content="" /><meta name="keywords" content="" /><script type="text/javascript"></script><style type="text/css"></style></head><body><form method=post action="<?php echo $action;?>"><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="submit" value="确认支付"/></form></body></html>

接收第三方响应处理

<?php//返回post数据如下 var_dump($_POST);// array(9) {//   ["v_oid"]=>             订单编号v_oid商户发送的v_oid定单编号。//   string(15) "sn54673adf48247"//   ["v_pstatus"]=>    支付状态v_pstatus20(表示支付成功) 30(表示支付失败)//   string(2) "20"//   ["v_pstring"]=>    支付结果信息v_pstring支付完成//   string(12) "支付完成"//   ["v_pmode"]=>      支付银行v_pmode支付银行,例如工商银行//   string(12) "工商银行"//   ["v_md5str"]=>     订单MD5校验码v_md5str//   string(32) "F6291971A44A26E054B24960C83AE0CA"//   ["v_amount"]=>     订单总金额v_amount订单实际支付金额//   string(4) "12.9"//   ["v_moneytype"]=>   币种v_moneytype订单实际支付币种//   string(3) "CNY"//   ["remark1"]=>      备注1//   string(0) ""//   ["remark2"]=>备注2//   string(0) ""// }$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校验值$key = '#(%#WU)(UFGDKJGNDFG';//密钥,第三方支付平台提供的密码/** * 重新计算md5的值 */ $md5string=strtoupper(md5($v_oid.$v_pstatus.$v_amount.$v_moneytype.$key));/** * 判断返回信息,如果支付成功,并且支付结果可信,则做进一步的处理 */if ($v_md5str==$md5string){if($v_pstatus=="20"){echo "OK";//支付成功,可进行逻辑处理!//商户系统的逻辑处理(例如判断金额,判断支付状态,更新订单状态等等)......}else{echo "支付失败";}}else{echo "信息被篡改,不是原服务器信息"}


0 0
原创粉丝点击