123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- /**
- *
- * Alipay.php (模型表单生成)
- *
- */
- class Chinabank extends Think {
- public $config = array() ;
- public function __construct($config=array()) {
- $this->config = $config;
- $this->config['gateway_url'] = 'https://www.alipay.com/cooperate/gateway.do?';
- $this->config['gateway_method'] = 'POST';
- $this->config['notify_url'] = return_url('chinabank',1);
- $this->config['return_url'] = return_url('chinabank');
- }
- public function setup(){
- $modules['pay_name'] = L('Chinabank_pay_name');
- $modules['pay_code'] = 'Chinabank';
- $modules['pay_desc'] = L('Chinabank_pay_desc');
- $modules['is_cod'] = '0';
- $modules['is_online'] = '1';
- $modules['author'] = 'Ainaphp';
- $modules['website'] = 'http://www.chinabank.com.cn';
- $modules['version'] = '1.0.0';
- $modules['config'] = array(
- array('name' => 'chinabank_account', 'type' => 'text', 'value' => ''),
- array('name' => 'chinabank_key', 'type' => 'text', 'value' => ''),
- );
- return $modules;
- }
- public function get_code($info,$value){
- $data_vid = trim($this->config['chinabank_account']);
- $data_orderid = $this->config['order_sn'];
- $data_vamount = $this->config['order_amount'];
- $data_vmoneytype = 'CNY';
- $data_vpaykey = trim($this->config['chinabank_key']);
- $data_vreturnurl = $this->config['return_url'];
- $remark1 = $this->config['body'];
- $MD5KEY =$data_vamount.$data_vmoneytype.$data_orderid.$data_vid.$data_vreturnurl.$data_vpaykey;
- $MD5KEY = strtoupper(md5($MD5KEY));
- $def_url = '<span style="clean:both;"><form method=post action="https://pay3.chinabank.com.cn/PayGate" target="_blank">';
- $def_url .= "<input type=HIDDEN name='v_mid' value='".$data_vid."'>";
- $def_url .= "<input type=HIDDEN name='v_oid' value='".$data_orderid."'>";
- $def_url .= "<input type=HIDDEN name='v_amount' value='".$data_vamount."'>";
- $def_url .= "<input type=HIDDEN name='v_moneytype' value='".$data_vmoneytype."'>";
- $def_url .= "<input type=HIDDEN name='v_url' value='".$data_vreturnurl."'>";
- $def_url .= "<input type=HIDDEN name='v_md5info' value='".$MD5KEY."'>";
- $def_url .= "<input type=HIDDEN name='remark1' value='".$remark1."'>";
- $def_url .= "<input type=submit class='button' value='" .L('PAY_NOW'). "'>";
- $def_url .= "</form></span>";
- return $def_url;
- }
- public function respond()
- {
- $v_oid = trim($_POST['v_oid']); //订单编号
- $v_pmode = trim($_POST['v_pmode']); //支付方式
- $v_pstatus = trim($_POST['v_pstatus']); //支付状态 20(表示支付成功)30(表示支付失败)
- $v_pstring = trim($_POST['v_pstring']); //支付结果信息
- $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的值
- */
- $key = $this->config['chinabank_key'];
- $md5string=strtoupper(md5($v_oid.$v_pstatus.$v_amount.$v_moneytype.$key));
- /* 检查秘钥是否正确 */
- if ($v_md5str==$md5string)
- {
- if ($v_pstatus == '20')
- {
- order_pay_status($v_oid,'2');
- return true;
- }
- }
- else
- {
- return false;
- }
- }
- }
- ?>
|