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

发送数据

<?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 "信息被篡改,不是原服务器信息"
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值