www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > plugins/payment/pay.ips3.php
<?php require('paymentPlugin.php'); class pay_ips3 extends paymentPlugin{ var $name = '环讯IPS网上支付3.0';//环讯IPS网上支付3.0 var $logo = 'IPS3'; var $version = 20070615; var $charset = 'gb2312'; var $submitUrl = 'http://pay.ips.com.cn/ipayment.aspx'; // https://pay.ips.com.cn/ipayment.aspx 测试地址 var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方 var $supportCurrency = array("CNY"=>"01", "USD"=>"02"); var $supportArea = array('AREA_CNY','AREA_USD'); var $desc = ''; var $M_Language = "1"; var $orderby = 16; var $head_charset = "gb2312"; var $cur_trading = true; //支持真实的外币交易 function toSubmit($payment){ //$this->submitUrl='http://pay.ips.com.cn/merchant_new.asp'; $merid=$this->getConf($payment['M_OrderId'],'member_id'); $ikey = $this->getConf($payment['M_OrderId'],'PrivateKey'); $tmp_url = $this->callbackUrl; $tmp_urlserver = $this->serverCallbackUrl; //todo: 服务器端的对话须商定 $orderdate = date("Ymd",$payment["M_Time"]); $billNo = $merid.$payment["M_OrderId"];//; $StrMd5 = md5($billNo.$payment["M_Amount"].$orderdate."RMB".$ikey); switch('zh_CN'){//todo: $this->getConf('system.shoplang'); case "zh_CN": $lang = 'GB'; break; case "zh_TW": $lang = 'BIG5'; break; default: $lang = 'EN'; } $return['Mer_code'] = $merid; $return['Billno'] = $payment["M_OrderId"];//$order->M_OrderId; $return['Amount'] = $payment["M_Amount"];//$order->M_Amount; $return['Date'] = $orderdate; $return['Currency_Type'] = 'RMB'; $return['Gateway_Type'] = $payment["M_Currency"];//$order->M_Currency; $return['Lang'] = $lang; $return['Merchanturl'] = $tmp_url; $return['FailUrl'] = $tmp_url; $return['DispAmount'] = ''; //todo:需要在订单生成的时候做转换,主要用于外币支付时,紧做显示用不参与交易 $return['OrderEncodeType'] = "1"; $return['RetEncodeType'] = "12"; $return['Rettype'] = "1"; $return['ServerUrl'] = $tmp_urlserver; $return['SignMD5'] = $StrMd5; return $return; } function callback($in,&$orderId,&$money,&$message,&$tradeno){ $billno=$in['billno']; $amount=$in['amount']; $mydate=$in['date']; $succ=$in['succ']; $msg=$in['msg']; $attach=$in['attach']; $ipsbillno=$in['ipsbillno']; $retEncodeType=$in['retencodetype']; $currency_type=$in['Currency_type']; $signature=$in['signature']; $money=$amount; $orderId = $billno; $tradeno = $in['ipsbillno']; if ($succ=="Y"){ $content=$billno . $amount . $mydate . $succ . $ipsbillno .$currency_type; #在该字段中放置商户登陆merchant.ips.com.cn的网站中的证书# $cert=$this->getConf($billno, 'PrivateKey'); //Md5摘要认证 if ($content=="" || $cert=="") $signature1=""; else $signature_1ocal=md5($content.$cert); if ($signature_1ocal==$signature){ return PAY_SUCCESS; }else{ $message = '交易异常,Md5摘要认证错误'; return PAY_ERROR;# 交易异常,Md5摘要认证错误 } }else{ $message = '交易失败'; return PAY_FAILED;# 交易失败 } } function getfields(){ return array( 'member_id'=>array( 'label'=>'客户号', 'type'=>'string' ), 'PrivateKey'=>array( 'label'=>'私钥', 'type'=>'string' ) ); } } ?>