1
<?php
2
/*
3
+-----------------------------------------------------------------------+
4
| 作者: 一天空一
5
| Q Q: 31769416,[url=http://www.176k.cn]www.176k.cn[/url]
6
| 时间:2006-12-16
7
| 功能:网银在线支付接口封装类(2.0)
8
+-----------------------------------------------------------------------+
9
*/
10
class Chinabank
11
{
12
//发送参数
13
private $v_mid; // 商户号
14
private $v_url; //返回url
15
private $key; //密钥
16
public $v_amount; //支付金额
17
private $v_m; //支付币种
18
private $v_md5info; //md5加密后的字符串
19
public $remark1; //备注字段1
20
public $remark2; //备注字段2
21
public $v_oid; //定单号
22
//接收参数
23
private $v_pmode; // 支付方式(字符串)
24
private $v_pstatus; // 支付状态 :20(支付成功);30(支付失败)
25
private $v_pstring; // 支付结果信息
26
private $v_md5str; //返回后的md5
27
28
function __construct($v_mid,$v_url,$key)
29
{
30
$this->v_mid = $v_mid;
31
$this->v_url = $v_url;
32
$this->key = $key;
33
}
34
35
/*设置支付金额*/
36
public function amount($amount=0)
37
{
38
$this->v_amount=floatval($amount);
39
}
40
41
/*设置备注*/
42
public function memol($memo1="",$memo2="")
43
{
44
$this->remark1=$memo1;
45
$this->remark2=$memo2;
46
}
47
48
/*生成发送校验码*/
49
private function send_verify()
50
{
51
$this->v_oid=date('Ymd',time())."-".$this->v_mid."-".date('His',time());
52
$text=$this->v_amount.$this->v_moneytype.$this->v_oid.$this->v_mid.$this->v_url.$this->key;
53
$this->v_md5info=strtoupper(trim(md5($text)));
54
$this->v_md5info=strtoupper(trim(md5($text)));
55
}
56
57
/*生成接收校验码*/
58
private function incept_verify()
59
{
60
$text=$this->v_oid.$this->v_pstatus.$this->v_amount.$this->v_moneytype.$this->key;
61
return strtoupper(trim(md5($text)));
62
}
63
64
/*提交支付请求*/
65
public function pay_send()
66
{
67
$this->send_verify();
68
$result="
69
<FORM name=re METHOD=post ACTION='https://pay.chinabank.com.cn/select_bank'>
70
<input type='hidden' name='v_md5info' value='{$this->v_md5info}'>
71
<input type='hidden' name='v_mid' value='{$this->v_mid}'>
72
<input type='hidden' name='v_oid' value='{$this->v_oid}'>
73
<input type='hidden' name='v_amount' value='{$this->v_amount}'>
74
<input type='hidden' name='v_moneytype' value='{$this->v_moneytype}'>
75
<input type='hidden' name='v_url' value='{$this->v_url}'>
76
<input type='hidden' name='remark1' value='{$this->remark1}'>
77
<input type='hidden' name='remark2' value='{$this->remark2}'>
78
</FORM>
79
<SCRIPT>re.submit();</SCRIPT>
80
";
81
$result=trim($result);
82
echo $result;
83
}
84
85
/*提交返回处理*/
86
public function pay_receive()
87
{
88
$this->v_oid = trim($_POST['v_oid']);
89
$this->v_pmode = trim($_POST['v_pmode']);
90
$this->v_pstatus = trim($_POST['v_pstatus']);
91
$this->v_pstring = trim($_POST['v_pstring']);
92
$this->v_amount = trim($_POST['v_amount']);
93
$this->v_moneytype = trim($_POST['v_moneytype']);
94
$this->remark1 = trim($_POST['remark1']);
95
$this->remark2 = trim($_POST['remark2']);
96
$this->v_md5str = trim($_POST['v_md5str']);
97
}
98
99
/*判断返回是否有效信息*/
100
public function check_pay_receive()
101
{
102
if ($this->v_md5str==$this->incept_verify()) {
103
return true;
104
} else {
105
return false;
106
}
107
}
108
109
/*判断返回是否提交成功*/
110
public function check_pay()
111
{
112
if($this->v_pstatus=='20'){
113
return true;
114
} else {
115
return false;
116
}
117
}
118
119
}
<?php2
/*3
+-----------------------------------------------------------------------+4
| 作者: 一天空一5
| Q Q: 31769416,[url=http://www.176k.cn]www.176k.cn[/url]6
| 时间:2006-12-167
| 功能:网银在线支付接口封装类(2.0) 8
+-----------------------------------------------------------------------+9
*/10
class Chinabank 11
{12
//发送参数13
private $v_mid; // 商户号14
private $v_url; //返回url15
private $key; //密钥16
public $v_amount; //支付金额17
private $v_m; //支付币种18
private $v_md5info; //md5加密后的字符串19
public $remark1; //备注字段120
public $remark2; //备注字段221
public $v_oid; //定单号22
//接收参数23
private $v_pmode; // 支付方式(字符串)24
private $v_pstatus; // 支付状态 :20(支付成功);30(支付失败)25
private $v_pstring; // 支付结果信息26
private $v_md5str; //返回后的md527
28
function __construct($v_mid,$v_url,$key)29
{30
$this->v_mid = $v_mid;31
$this->v_url = $v_url;32
$this->key = $key;33
}34
35
/*设置支付金额*/36
public function amount($amount=0)37
{38
$this->v_amount=floatval($amount);39
}40
41
/*设置备注*/42
public function memol($memo1="",$memo2="")43
{44
$this->remark1=$memo1;45
$this->remark2=$memo2;46
}47
48
/*生成发送校验码*/49
private function send_verify()50
{51
$this->v_oid=date('Ymd',time())."-".$this->v_mid."-".date('His',time());52
$text=$this->v_amount.$this->v_moneytype.$this->v_oid.$this->v_mid.$this->v_url.$this->key;53
$this->v_md5info=strtoupper(trim(md5($text)));54
$this->v_md5info=strtoupper(trim(md5($text))); 55
}56
57
/*生成接收校验码*/58
private function incept_verify()59
{60
$text=$this->v_oid.$this->v_pstatus.$this->v_amount.$this->v_moneytype.$this->key;61
return strtoupper(trim(md5($text)));62
}63
64
/*提交支付请求*/65
public function pay_send() 66
{67
$this->send_verify();68
$result="69
<FORM name=re METHOD=post ACTION='https://pay.chinabank.com.cn/select_bank'>70
<input type='hidden' name='v_md5info' value='{$this->v_md5info}'>71
<input type='hidden' name='v_mid' value='{$this->v_mid}'>72
<input type='hidden' name='v_oid' value='{$this->v_oid}'>73
<input type='hidden' name='v_amount' value='{$this->v_amount}'>74
<input type='hidden' name='v_moneytype' value='{$this->v_moneytype}'>75
<input type='hidden' name='v_url' value='{$this->v_url}'>76
<input type='hidden' name='remark1' value='{$this->remark1}'>77
<input type='hidden' name='remark2' value='{$this->remark2}'>78
</FORM>79
<SCRIPT>re.submit();</SCRIPT>80
";81
$result=trim($result);82
echo $result;83
}84
85
/*提交返回处理*/86
public function pay_receive()87
{88
$this->v_oid = trim($_POST['v_oid']);89
$this->v_pmode = trim($_POST['v_pmode']);90
$this->v_pstatus = trim($_POST['v_pstatus']);91
$this->v_pstring = trim($_POST['v_pstring']);92
$this->v_amount = trim($_POST['v_amount']);93
$this->v_moneytype = trim($_POST['v_moneytype']);94
$this->remark1 = trim($_POST['remark1']);95
$this->remark2 = trim($_POST['remark2']);96
$this->v_md5str = trim($_POST['v_md5str']);97
}98
99
/*判断返回是否有效信息*/100
public function check_pay_receive() 101
{102
if ($this->v_md5str==$this->incept_verify()) {103
return true;104
} else {105
return false;106
}107
}108
109
/*判断返回是否提交成功*/110
public function check_pay() 111
{112
if($this->v_pstatus=='20'){113
return true;114
} else {115
return false;116
}117
}118
119
}120
?>
1
调用:
2
发送:
3
$pay_num =0.01;
4
$v_mid = 1234578995 ;
5
$v_url = "http://59.57.64.168/zl/index.php/Block/disposal";
6
$key = '#$%%45454235243&*';
7
$pay = new Chinabank($v_mid,$v_url,$key);
8
$pay->amount($pay_num);
9
$pay->pay_send();
调用:2
发送:3
$pay_num =0.01; 4
$v_mid = 1234578995 ;5
$v_url = "http://59.57.64.168/zl/index.php/Block/disposal";6
$key = '#$%%45454235243&*';7
$pay = new Chinabank($v_mid,$v_url,$key);8
$pay->amount($pay_num); 9
$pay->pay_send();
1
返回处理
2
$v_mid = 1234578995 ;
3
$v_url = "http://59.57.64.168/zl/index.php/Block/disposal";
4
$key = '#$%%45454235243&*';
5
$pay = new Chinabank($v_mid,$v_url,$key);
6
$pay->pay_receive();
7
if ($pay->check_pay_receive()) {
8
if ($pay->check_pay()) {
9
//成功处理..
10
} esle {
11
echo "支付流程出现问题";
12
}
13
14
}else {
15
echo Md5校验码错误";
16
}
返回处理2
$v_mid = 1234578995 ;3
$v_url = "http://59.57.64.168/zl/index.php/Block/disposal";4
$key = '#$%%45454235243&*';5
$pay = new Chinabank($v_mid,$v_url,$key);6
$pay->pay_receive();7
if ($pay->check_pay_receive()) {8
if ($pay->check_pay()) {9
//成功处理..10
} esle {11
echo "支付流程出现问题";12
}13
14
}else {15
echo Md5校验码错误";16
}
浙公网安备 33010602011771号