/b2b/plugins/payment/pay.99bill.php
PHP | 171 lines | 149 code | 6 blank | 16 comment | 9 complexity | ac7a0c161777e0f00881941e178296be MD5 | raw file
- <?php
- require('paymentPlugin.php');
- class pay_99bill extends paymentPlugin{
- var $name = '??????';//??????
- var $logo = '99BILL';
- var $version = 20070902;
- var $charset = 'utf8';
- var $applyUrl = '';
- //var $submitUrl = 'https://www.99bill.com/webapp/receiveMerchantInfoAction.do';
- var $submitUrl = 'https://www.99bill.com/gateway/recvMerchantInfoAction.htm';
- var $submitButton = 'http://img.alipay.com/pimg/button_alipaybutton_o_a.gif'; ##???????
- var $supportCurrency = array("CNY"=>"1");
- var $supportArea = array("AREA_CNY");
- var $desc = '??????????????????????EMAIL???????????????????????27???????????????????????????????';
- var $intro = '??????????????????????EMAIL???????????????????????27???????????????????????????????';
- var $orderby = 7;
- function toSubmit($payment){
- $merId = $this->getConf($payment['M_OrderId'], 'member_id');
- $ikey = $this->getConf($payment['M_OrderId'], 'PrivateKey');//????????99BILL????????
- $payment['M_Amount']=ceil($payment['M_Amount'] * 100);
- $orderTime = date('YmdHis',$payment['M_Time']?$payment['M_Time']:time());
- $return['inputCharset']="1";
- $return['bgUrl'] = $this->callbackUrl;
- $return['version'] = "v2.0";
- $return['language']="1";
- $return['signType']="1";
- $return['merchantAcctId'] = $merId;
- $return['payerName']=$payment['P_Name'];
- $return['payerContactType']="1";//?????????.???????????????
- $return['payerContact']=$payment['P_Email'];//???????
- $return['orderId']= $payment['M_OrderId'];
- $return['orderAmount'] = $payment['M_Amount'];
- $return['orderTime'] = $orderTime;
- // ???? 2009-10-09 13:23 wubin
- if(is_array($payment['M_OrderNO'])) {
- $return['productName'] = $payment['M_OrderId'];
- } else {
- $return['productName'] = $payment['M_OrderNO'];
- }
- $return['productNum'] = "1";
- $return['productId'] = "";
- $return['productDesc'] = $payment['M_Remark'];
- $return['ext1']= "";
- $return['ext2'] = "";
- $return['payType'] = "00";
- $return['redoFlag'] = 1;//???????????
- $return['pid'] = "";//??ID
- foreach($return as $k=>$v){
- if ($v)
- $str.=$k."=".$v."&";
- }
- $signMsg=strtoupper(md5(substr($str,0,strlen($str)-1)."&key=".$ikey));
- $return['signMsg']=$signMsg;
- return $return;
- }
- function callback($in,&$paymentId,&$money,&$message,&$tradeno){
- $system = &$GLOBALS['system'];
- $url = $system->mkUrl('paycenter',$act='result');
- $merchantAcctId=trim($in['merchantAcctId']);
- $version=trim($in['version']);
- $language=trim($in['language']);
- $signType=trim($in['signType']);
- $payType=trim($in['payType']);
- $orderId=trim($in['orderId']);
- $orderTime=trim($in['orderTime']);
- $bankId = trim($in['bankId']);
- //????????
- ///?????????????????
- ///??2 ???0.02?
- $orderAmount=trim($in['orderAmount']);
- $dealId=trim($in['dealId']); //????????????
- $bankDealId=trim($in['bankDealId']); //????????????????????????????????
- $dealTime=trim($in['dealTime']);
- //????????
- ///????
- ///?? 2 ???0.02?
- $payAmount=trim($in['payAmount']);
- //???????
- ///????
- ///?? 2 ???0.02?
- $fee=trim($in['fee']);
- //??????
- ///10?? ??; 11?? ??
- ///00?? ???????????????????;01?? ???????????????????
- $payResult=trim($in['payResult']);
- $errCode=trim($in['errCode']);
- $signMsg=trim($in['signMsg']); //???????
-
- $key=$this->getConf($orderId,'PrivateKey');
- //???????????????
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"merchantAcctId",$merchantAcctId);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"version",$version);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"language",$language);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"signType",$signType);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"payType",$payType);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"bankId",$bankId);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"orderId",$orderId);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"orderTime",$orderTime);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"orderAmount",$orderAmount);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"dealId",$dealId);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"bankDealId",$bankDealId);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"dealTime",$dealTime);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"payAmount",$payAmount);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"fee",$fee);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"ext1",$ext1);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"ext2",$ext2);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"payResult",$payResult);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"errCode",$errCode);
- $merchantSignMsgVal=$this->appendParam($merchantSignMsgVal,"key",$key);
- $merchantSignMsg= md5($merchantSignMsgVal);
- $paymentId=$orderId;
- $money = $payAmount/100;
- $tradeno = $dealId;
- $system = &$GLOBALS['system'];
- $sUrl = $system->base_url();
- $url = $system->mkUrl('paycenter',$act='result');
- ///???????????
- if(strtoupper($signMsg) == strtoupper($merchantSignMsg)){
- switch($payResult){
- case "10":
- $rtnOk=1;
- $rtnUrl=$sUrl.$url."?payment_id=".$orderId;
- echo "<result>".$rtnOk."</result><redirecturl>".$rtnUrl."</redirecturl>";
- return PAY_SUCCESS;
- break;
- default:
- $rtnOk=1;
- $rtnUrl=$sUrl.$url."?payment_id=".$orderId;
- echo "<result>".$rtnOk."</result><redirecturl>".$rtnUrl."</redirecturl>";
- return PAY_FAIL;
- break;
- }
- }else{
- $message="???????";
- $rtnOk=1;
- $rtnUrl=$sUrl.$url."?payment_id=".$orderId;
- echo "<result>".$rtnOk."</result><redirecturl>".$rtnUrl."</redirecturl>";
- return PAY_ERROR;
- }
- }
- function getfields(){
- return array(
- 'member_id'=>array(
- 'label'=>'???',
- 'type'=>'string'
- ),
- 'PrivateKey'=>array(
- 'label'=>'??',
- 'type'=>'string'
- )
- );
- }
- function appendParam($returnStr,$paramId,$paramValue){
- if($returnStr != ""){
- if($paramValue != ""){
- $returnStr.="&".$paramId."=".$paramValue;
- }
- }else{
- If($paramValue!=""){
- $returnStr=$paramId."=".$paramValue;
- }
- }
- return $returnStr;
- }
- }
- ?>