www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > plugins/payment/pay.tenpaytrad.server.php
<?PHP require('paymentPlugin.php'); class pay_tenpaytrad extends paymentPlugin{ function pay_tenpaytrad_callback($in,&$paymentId,&$money,&$message,&$tradeno){ $cmdno = $in["cmdno"]; $version = $in["version"]; $retcode = $in["retcode"]; $status = $in["status"]; $seller = $in["seller"]; $total_fee = $in["total_fee"]; $trade_price = $in["trade_price"]; $transport_fee = $in["transport_fee"]; $buyer_id = $in["buyer_id"]; $chnid = $in["chnid"]; $cft_tid = $in["cft_tid"]; $smch_vno = $in["mch_vno"]; $attach = $in["attach"]; $version = $in["version"]; $sign = $in["sign"]; $ikey = $this->getConf($smch_vno,"PrivateKey"); $buffer = $this->AddParameter($buffer, "attach", $attach); $buffer = $this->AddParameter($buffer, "buyer_id", $buyer_id); $buffer = $this->AddParameter($buffer, "cft_tid", $cft_tid); $buffer = $this->AddParameter($buffer, "chnid", $chnid); $buffer = $this->AddParameter($buffer, "cmdno", $cmdno); $buffer = $this->AddParameter($buffer, "mch_vno", $mch_vno); $buffer = $this->AddParameter($buffer, "retcode", $retcode); $buffer = $this->AddParameter($buffer, "seller", $seller); $buffer = $this->AddParameter($buffer, "status", $status); $buffer = $this->AddParameter($buffer, "total_fee", $total_fee); $buffer = $this->AddParameter($buffer, "trade_price", $trade_price); $buffer = $this->AddParameter($buffer, "transport_fee", $transport_fee); $buffer = $this->AddParameter($buffer, "version", $version); $strLocalSign = strtoupper(md5($buffer."&key=".$ikey)); $tradeno = $in['cft_tid']; //$pObj=$this->system->loadModel("trading/payment"); //$bill=$pObj->getPaymentIdByOrderNO($smch_vno); $paymentId=$attach; $money=$total_fee; if ($strLocalSign == $sign ) { //验证MD5签名成功 if ($retcode == "0") { //支付成功,在这里处理业务逻辑注意判断订单是否重复的逻辑,注意订单金额为分 echo "<meta name=\"TENCENT_ONLINE_PAYMENT\" content=\"China TENCENT\">"; switch(($status)){ case 1: //交易创建 break; case 2: //收获地址填写完毕 break; case 3: //将订单置为已付款 /* $order=newclass("Order"); $order->getPayidByOrderno($mch_vno); $arr_paytime = getUnixtime($date); //支付时间 $Order->onlinePayed($arr_paytime[0], $arr_paytime[1]); $Order->getPayresult($mch_vno,$INC_SHOPID,true);*/ return PAY_SUCCESS; break; case 4: //卖家发货成功 break; case 5: //买家收货确认,交易成功 break; case 6: //交易关闭,未完成超时关闭 break; case 7: //修改交易价格成功 break; case 8: //买家发起退款 break; case 9: //退款成功 break; case 10: //退款关闭 break; default: //error return PAY_ERROR; break; } //echo $retcode; } else { //支付失败,请根据retcode进行错误逻辑处理 $message = $retcode; return PAY_FAIL; } } else{ $message = "qianming"; return PAY_ERROR; //签名失败,请进行非法操作的逻辑处理 } } function AddParameter($buffer,$parameterName,$parameterValue) { if ($parameterValue=="") return $buffer; if (empty($buffer)) $buffer = $parameterName . "=". $parameterValue; else $buffer = $buffer . "&" . $parameterName . "=" .$parameterValue; return $buffer; } } ?>