diff --git a/Application/Common/Common/extend.php b/Application/Common/Common/extend.php index dd34d75a..94558cd0 100644 --- a/Application/Common/Common/extend.php +++ b/Application/Common/Common/extend.php @@ -1782,15 +1782,15 @@ function get_wx_type(){ if(MODULE_NAME=='Media'||MODULE_NAME=='Media2'||MODULE_NAME=='Home'){ $map['name']=array('in',array('wei_xin','weixin','weixin_gf')); }elseif(MODULE_NAME=='Sdk'){ - $map['name']=array('in',array('wei_xin_app','weixin','weixin_gf','jft_wap','goldpig')); + $map['name']=array('in',array('heepay','wei_xin_app','weixin','weixin_gf','jft_wap','goldpig' )); }elseif(MODULE_NAME=='App'){ $map['name']=array('in',array('wei_xin_apps','weixin_app')); } $type=M('Tool','tab_')->where($map)->select(); foreach ($type as $k => $v) { - if($v['status']==1){ - $name=$v['name']; - } + if($v['status']==1){ + $name=$v['name']; + } } if($name=="weixin"){ return 1; @@ -1800,6 +1800,8 @@ function get_wx_type(){ return 2; }elseif($name=="goldpig" && C('goldpig.wx')){ return 3; + }elseif($name=="heepay" && C('heepay.wxpay')){ + return 4; }else{ return 0; } @@ -1969,14 +1971,14 @@ function get_shortcut_pay_type(){ //获取微信支付类型 0官方 1金猪wap 2双乾 function get_zfb_type($game_id=0, $user_id=0){ - if ($game_id) { + /* if ($game_id) { $game = M('game', 'tab_')->where(['id' => $game_id])->find(); if ($game && $game['pay_config']) { $payConf = json_decode($game['pay_config'], true); if ($payConf['zfb'] == 'gf') return 0; if ($payConf['zfb'] == 'sq') return 2; } - } + } */ if(C('alipay.status') == 1) {return 0;} $map['name']='goldpig'; @@ -1989,6 +1991,10 @@ function get_zfb_type($game_id=0, $user_id=0){ $map['name']='sqpay'; $type=M('Tool','tab_')->field('status')->where($map)->find(); if($type['status']==1 && C('sqpay.zfb')) return 2; // 双乾支付 + + $map['name']='heepay'; + $type=M('Tool','tab_')->field('status')->where($map)->find(); + if($type['status']==1 && C('heepay.alipay')) return 4; // 汇付宝 return 0; } diff --git a/Application/Sdk/Controller/PayH5Controller.class.php b/Application/Sdk/Controller/PayH5Controller.class.php index 9bbd0da3..416b1396 100644 --- a/Application/Sdk/Controller/PayH5Controller.class.php +++ b/Application/Sdk/Controller/PayH5Controller.class.php @@ -160,6 +160,49 @@ class PayH5Controller extends BaseController{ //echo json_encode(['code'=>0,'msg'=>$ret[0]['respMess'],'wap'=>1]); //exit; } + } elseif(get_zfb_type($game_id, $user_id) == 4) { // 汇付宝 + + $request['pay_way'] = C('PAY_WAY.WFT_PAY'); + $request['pay_status'] = 0; + $request['spend_ip'] = get_client_ip(); + + $this->add_deposit($request, 1); + + $pay['agent_id'] = C('heepay.partner');//商户号 + $pay['order_no'] = $request['pay_order_number']; + $pay['time'] = date('YmdHis', time()); + $pay['pay_type'] = 22; + $pay['amount'] = $request['price']; + $pay['user_ip'] = get_client_ip(); + $pay['sign_key'] = C('heepay.key');//密钥 + $pay['payerName'] = iconv("UTF-8", "gb2312//IGNORE", "万盟天下"); + $pay['number'] = 1; + $pay['goods_note']= "消费-".$request["pay_order_number"]; + $pay['device'] = "wap"; + $pay['bank_card_type'] = 0; + $pay['return_url'] = C('PAY_DOMAIN')."sdk.php/Spend/paycallback/orderno/{$request['pay_order_number']}/user_token/".$this->userToken."/paytype/weixinpay/game_id/{$game_id}"; + $pay['notifyurl'] = C('PAY_DOMAIN')."/callback.php/Notify/heepay_callback";//通知 + $heepay = new Heepay(); + $json_data = $heepay->alih5_pay($pay); + +// pp($json_data); + if($json_data['ret_code'] == "0000"){ + $json_data['url'] = $json_data['url']/* . "?tx_client=hideopen" */; + // 存入pay_url 继续支付 + M("deposit", "tab_")->where([ + 'extend' => $request['extend'], + 'game_id' => $request['game_id'], + 'pay_order_number' => $request["pay_order_number"] + ])->save([ + 'pay_url' => $json_data['url'] + ]); + $orderno = $request['pay_order_number']; + + } else { + echo json_encode(['code'=>1001,'msg'=> "请求发起失败【{$json_data['ret_msg']}】,请选择其他支付方式或联系客服"]);exit; + + // redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>$ret[0]['respMess'], 'user_token' => $this->userToken)));exit; + } } else{ // 支付宝第三方 if( empty(C('goldpig.partner'))||empty(C('goldpig.wooolid'))){ // $this->set_message(1009, "fail", "支付参数未配置"); @@ -423,6 +466,55 @@ class PayH5Controller extends BaseController{ echo json_encode(['code'=>0,'msg'=>$ret[0]['respMess'],'wap'=>1]); exit; } + } elseif(get_zfb_type($game_id, $user_id) == 4) { // 汇付宝 + + $request['pay_way'] = C('PAY_WAY.WFT_PAY'); + $request['pay_status'] = 0; + $request['spend_ip'] = get_client_ip(); + + $ordercheck = M("spend","tab_")->where(array('pay_order_number'=>$request["pay_order_number"]))->find(); + if ($ordercheck) { + $returl = U('Spend/notice',array('user_id'=>$ordercheck['user_id'],'game_id'=>$ordercheck['game_id'],'msg'=>'订单已经存在,请刷新充值页面重新下单!')); + echo json_encode(['code'=>0,'msg'=>'订单已经存在,请刷新充值页面重新下单!','wap'=>1]); + exit; + } + $this->add_spend($request,1); + + $pay['agent_id'] = C('heepay.partner');//商户号 + $pay['order_no'] = $request['pay_order_number']; + $pay['time'] = date('YmdHis', time()); + $pay['pay_type'] = 22; + $pay['amount'] = $request['price']; + $pay['user_ip'] = get_client_ip(); + $pay['sign_key'] = C('heepay.key');//密钥 + $pay['payerName'] = iconv("UTF-8", "gb2312//IGNORE", "万盟天下"); + $pay['number'] = 1; + $pay['goods_note']= "消费-".$request["pay_order_number"]; + $pay['device'] = "wap"; + $pay['bank_card_type'] = 0; + $pay['return_url'] = C('PAY_DOMAIN')."sdk.php/Spend/paycallback/orderno/{$request['pay_order_number']}/user_token/".$this->userToken."/paytype/weixinpay/game_id/{$game_id}"; + $pay['notifyurl'] = C('PAY_DOMAIN')."/callback.php/Notify/heepay_callback";//通知 + $heepay = new Heepay(); + $json_data = $heepay->alih5_pay($pay); + + if($json_data['ret_code'] == "0000"){ + $json_data['url'] = $json_data['url']/* . "?tx_client=hideopen" */; + // 存入pay_url 继续支付 + M("spend", "tab_")->where([ + 'extend' => $request['extend'], + 'game_id' => $request['game_id'], + 'pay_order_number' => $request["pay_order_number"] + ])->save([ + 'pay_url' => $json_data['url'] + ]); + $orderno = $request['pay_order_number']; + + } else { + echo json_encode(['code'=>1001,'msg'=> "请求发起失败【{$json_data['ret_msg']}】,请选择其他支付方式或联系客服"]);exit; + + // redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>$ret[0]['respMess'], 'user_token' => $this->userToken)));exit; + } + } else{ // 支付宝第三方 if( empty(C('goldpig.partner'))||empty(C('goldpig.wooolid'))){ // $this->set_message(1009, "fail", "支付参数未配置"); @@ -669,7 +761,7 @@ ADD COLUMN `pay_url` text NULL AFTER `check_sign`; jsonOutput(0, "支付失败"); // redirect(U('Spend/notice',array('user_id'=>$user_id, 'is_platform' => 1,'game_id'=>$game_id,'msg'=>'支付失败', 'user_token' => $this->userToken)));exit; } - }elseif(get_wx_pay_type() == 1){ + }elseif(get_wx_pay_type() == 1){ // 汇付宝 $request['pay_way'] = C('PAY_WAY.WFT_PAY'); // 威富通wx $pay['agent_id'] = C('heepay.partner');//商户号 @@ -750,9 +842,9 @@ ADD COLUMN `pay_url` text NULL AFTER `check_sign`; $pay['amount'] = $request['price']; $pay['user_ip'] = get_client_ip(); $pay['sign_key'] = C('heepay.key');//密钥 - $pay['payerName'] = "cs"; + $pay['payerName'] = ""; $pay['number'] = 1; - $pay['goods_note']="cs"; + $pay['goods_note']="游戏充值"; $pay['device'] = "wap"; $pay['bank_card_type'] = 0; $pay['return_url'] ='http://' . $_SERVER ['HTTP_HOST'] . "/sdk.php/Spend/pay_success/orderno/".$pay['order_no'].'/game_id/'.$request['game_id']; @@ -1396,10 +1488,15 @@ ADD COLUMN `pay_url` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL AFTER $pay['return_url'] = C('PAY_DOMAIN')."sdk.php/Spend/paycallback/orderno/{$request['pay_order_number']}/user_token/".$this->userToken."/paytype/weixinpay/game_id/{$game_id}"; $pay['notify_url'] = C('PAY_DOMAIN')."/callback.php/Notify/heepay_callback"; $heepay = new Heepay(); - $url = $heepay->wxh5_pay($pay); - $request['pay_url'] = $url/* ."&tx_client=hideopen" */; + $json_data = $heepay->wxh5_pay($pay); + if($json_data['ret_code'] == "0000"){ + $request['pay_url'] = $json_data['url'] . "&tx_client=hideopen"; + $this->add_spend($request,1); + } else { + echo json_encode(['code'=>0,'msg'=> '支付失败,请重试']); + exit; + } - $this->add_spend($request,1); }elseif(get_wx_pay_type() == 2){ if($request['code']==1){ diff --git a/Application/Sdk/View/default/Spend/pay_way.html b/Application/Sdk/View/default/Spend/pay_way.html index 67457bbe..234aba5e 100644 --- a/Application/Sdk/View/default/Spend/pay_way.html +++ b/Application/Sdk/View/default/Spend/pay_way.html @@ -65,7 +65,7 @@