www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > plugins/payment/pay.twv.php
<?php require('paymentPlugin.php'); class pay_twv extends paymentPlugin{ var $name = '台湾里网上支付';//台湾里网上支付 var $logo = 'TWV'; var $version = 20070902; var $charset = 'big5'; var $submitUrl = 'https://www.twv.com.tw/openpay/pay.php'; var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##需要完善的地方 var $supportCurrency = array("TWD"=>"TWD"); var $supportArea = array("AREA_TWD"); var $desc = '台湾里网上支付'; var $orderby = 37; var $cur_trading = true; //支持真实的外币交易 function toSubmit($payment){ $merId = $this->getConf($payment['M_OrderId'], 'member_id'); $ikey = $this->getConf($payment['M_OrderId'], 'PrivateKey'); //$order->M_Language = "tchinese"; $payment["M_Language"] = "tchinese";// //$order->M_Amount = Floor($order->M_Amount); //$verify = md5($ikey."|".$merId."|".$order->M_OrderId."|".$order->M_Amount."|".$this->getConf('SecondPrivateKey')); $payment["M_Amount"] = Floor($payment["M_Amount"]); $verify = md5($ikey."|".$merId."|".$payment["M_OrderId"]."|".$payment["M_Amount"]."|".$this->getConf($payment['M_OrderId'], 'SecondPrivateKey')); $return["mid"] = $merId; $return["ordernum"] = $payment["M_OrderId"];//$order->M_OrderId; $return["txid"] = $payment["M_OrderId"];//$order->M_OrderId; $return["iid"] = "0"; $return["amount"] = $payment["M_Amount"];//$order->M_Amount; $return["cname"] = $payment["R_Name"];//$order->R_Name; $return["caddress"] = $payment["R_Address"];//$order->R_Address; $return["language"] = $payment["M_Language"];//$order->M_Language; $return["version"] = "1.0"; $return["return_url"] = $this->callbackUrl; $return["verify"] = $verify; return $return; } function callback($in,&$paymentId,&$money,&$message){ $merid = $in["merid"]; $payid = $in["txid"]; $amount = $in["amount"]; $succ = $in["status"]; $ordid = $in["tid"]; $pay_type = $in["pay_type"]; $error_code = $in["error_code"]; $msg = $in["error_desc"]; $md5string = $in["verify"]; $paymentId = $payid; $money = $amount; $md5key = $this->getConf($payid, 'PrivateKey'); //content为用来验证签名的消息内容,包括账单号、金额、交易日旗、成功与否标志位 $content="2efdd6e617bc0114866c89e911a4e3de|".$payid.$amount.$pay_type.$succ.$ordid.$PAY_KEY["TWV"]; //验证 if ($md5string = md5($content)){ switch ($succ){ //成功支付 case "1": return PAY_SUCCESS; break; //支付失败 case "2": $message = '支付失败,请立即与商店管理员联系'; return PAY_FAILED; break; case "3": $message = '支付失败,请立即与商店管理员联系'; return PAY_FAILED; break; } }else{ $message = '签名认证失败,请立即与商店管理员联系'; return PAY_ERROR; } #mt_srand((double)microtime()*1000000); #$randval = mt_rand(10000000,99999999); #$signstr = substr(hexdec(md5($tmp_orderno.$state.mktime().$randval)), 0, 10); #$Order->updateOrderSign($tmp_orderno, $signstr); } function getfields(){ return array( 'member_id'=>array( 'label'=>'客户号', 'type'=>'string' ), 'PrivateKey'=>array( 'label'=>'私钥', 'type'=>'string' ), 'SecondPrivateKey'=>array( 'label'=>'第二私钥', 'type'=>'string' ) ); } } ?>