您的位置:首页 > 其它

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

2014-11-15 21:34 218 查看
发送数据

<?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_pstatus 20(表示支付成功) 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 "信息被篡改,不是原服务器信息"
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: