diff --git a/Application/Sdk/Controller/PayH5Controller.class.php b/Application/Sdk/Controller/PayH5Controller.class.php index df9dc41e..d6e52166 100644 --- a/Application/Sdk/Controller/PayH5Controller.class.php +++ b/Application/Sdk/Controller/PayH5Controller.class.php @@ -238,7 +238,7 @@ class PayH5Controller extends BaseController{ /** *支付宝移动支付 */ - public function apple_alipay_pay($user_id,$game_id){ + public function ali_pay($user_id,$game_id){ #获取SDK上POST方式传过来的数据 然后base64解密 然后将json字符串转化成数组 //echo json_encode(['code'=>0,'msg'=> $user_id."game:".$game_id]);exit; $file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt"); @@ -290,10 +290,11 @@ class PayH5Controller extends BaseController{ $request['body']=$request['price']; //$request['callback'] = 'http://'.$_SERVER['HTTP_HOST']. "/sdk.php/Spend/pay_success/orderno/".$request['pay_order_number'].'/game_id/'.$request['game_id']; //$request['notifyurl'] = 'http://'.$_SERVER['HTTP_HOST']. "/callback.php/Notify/notify/apitype/alipay/method/notify"; + $pay_url=$this->pay($request); - //echo $pay_url['url'];die; - //redirect($pay_url['url']); - echo json_encode(['code'=>200,'msg'=>'','data'=>['url'=>$pay_url['url'],'wap'=>1]]);exit; + $request['pay_url'] = $pay_url['url']; + $orderno = $pay_url['out_trade_no']; +// echo json_encode(['code'=>200,'msg'=>'','data'=>['url'=>$pay_url['url'],'wap'=>1]]);exit; } else {/* app */ $game_set_data = get_game_set_info($request['game_id']); $request['apitype'] = "alipay"; @@ -305,9 +306,18 @@ class PayH5Controller extends BaseController{ $data = $this->alipay_app_pay($request); $md5_sign = $this->encrypt_md5(base64_encode($data['arg']), $game_set_data["access_key"]); $data = array("orderInfo" => base64_encode($data['arg']), "out_trade_no" => $data['out_trade_no'], "order_sign" => $data['sign'], "md5_sign" => $md5_sign); - - echo json_encode(['code'=>200,'msg'=>'','data'=>['url'=>json_encode($data),'wap'=>0]]);exit; + $request['pay_url'] = json_encode($data); + $orderno = $data['out_trade_no']; +// echo json_encode(['code'=>200,'msg'=>'','data'=>['url'=>json_encode($data),'wap'=>0]]);exit; } + // 存入pay_url 继续支付 + M("spend", "tab_")->where([ + 'extend' => $request['extend'], + 'game_id' => $request['game_id'], + 'pay_order_number' => $pay_url['out_trade_no'] + ])->save([ + 'pay_url' => $request['pay_url'] + ]); }elseif(get_zfb_type() == 2) { // 双乾 @@ -392,6 +402,14 @@ class PayH5Controller extends BaseController{ echo json_encode(['code'=>200,'msg'=>'','data'=>['url'=>$pay_url['msg'],'wap'=>1]]);exit; } } + + redirect(U('spend/paycallback', array( + 'sdk_version' => $request['sdk_version'], + 'paytype' => 'alipay', + 'orderno' => $orderno, + 'game_id' => $game_id, + 'gopay' => 1 // 立即支付 + ))); } private function alipay_app_pay($param = array()) @@ -411,6 +429,8 @@ class PayH5Controller extends BaseController{ } $discount = $this->get_discount($param['game_id'], $user['promote_id'], $param['user_id']); $discount = $discount['discount']; + $param['callback'] = C('PAY_DOMAIN')."/sdk.php/Spend/paycallback/orderno/".$out_trade_no.'/game_id/'.$param['game_id']."/paytype/alipay"; + // if(!is_check_apply_promote($param['game_id'],$user['promote_id'])){ // $user['promote_id']=0; // $user['promote_account']="自然注册"; @@ -463,6 +483,8 @@ class PayH5Controller extends BaseController{ } $discount = $this->get_discount($param['game_id'],$user['promote_id'],$param['user_id']); $discount = $discount['discount']; + $param['callback'] = C('PAY_DOMAIN')."/sdk.php/Spend/paycallback/orderno/".$out_trade_no.'/game_id/'.$param['game_id']."/paytype/alipay"; + $vo = new \Think\Pay\PayVo(); $vo->setBody("充值") ->setFee($param['price'])//支付金额 @@ -495,6 +517,7 @@ class PayH5Controller extends BaseController{ if($param['is_uc']==1){ return $pay->buildRequestForm($vo,1); }else{ + $pay_['url']= $pay->buildRequestForm($vo, 0, $param); $pay_['out_trade_no']= $out_trade_no; return $pay_; @@ -1161,7 +1184,7 @@ ADD COLUMN `pay_url` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL AFTER if($is_pay['status']==1){ if($request['code']==1){ - $json_data['url'] = $is_pay['mweb_url'].'&redirect_url='.C('PAY_DOMAIN')."sdk.php/Spend/paycallback/orderno/{$request['pay_order_number']}/game_id/{$request['game_id']}"; + $json_data['url'] = $is_pay['mweb_url'].'&redirect_url='.urlencode(C('PAY_DOMAIN')."sdk.php/Spend/paycallback/orderno/{$request['pay_order_number']}/game_id/{$request['game_id']}/paytype/weixinpay"); $request['pay_url'] = $json_data['url']; $this->add_spend($request,1); @@ -1291,6 +1314,7 @@ ADD COLUMN `pay_url` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL AFTER } } redirect(U('spend/paycallback', array( + 'sdk_version' => $request['sdk_version'], 'paytype' => 'weixinpay', 'orderno' => $request['pay_order_number'], 'game_id' => $game_id, diff --git a/Application/Sdk/Controller/SpendController.class.php b/Application/Sdk/Controller/SpendController.class.php index 5976b7f4..8ea51023 100644 --- a/Application/Sdk/Controller/SpendController.class.php +++ b/Application/Sdk/Controller/SpendController.class.php @@ -6,6 +6,7 @@ use Think\Controller; use Org\JtpaySDK\Jtpay; use Org\SqpaySDK\Sqpay; use Think\Log; +use Qiniu\json_decode; class SpendController extends Controller { @@ -286,8 +287,13 @@ ADD COLUMN `pay_url` varchar(255) NOT NULL DEFAULT '' AFTER `check_sign`; // if ($result['pay_way'] == C('PAY_WAY.ALIPAY') || $result['pay_way'] == C('PAY_WAY.SQ_ALIPAY')) // $gopayUrl = "/sdk.php/PayH5/platform_alipay_pay/pay_order_number/{$result['pay_order_number']}/game_id/{$result['game_id']}/user_token/{$userToken}"; } -// pp($gopayUrl); - + // 如果是json格式 且是alipay 则 alipay app + if (json_decode($gopayUrl) && $paytype == 'alipay') { + $this->assign("aliapp", 1); + } else { + $this->assign("aliapp", 0); + } +// pp($orderno); $this->assign("orderno", $orderno); $this->assign("paytype", $paytype); $this->assign ('pay_url', $result['pay_url']); diff --git a/Application/Sdk/Controller/UserController.class.php b/Application/Sdk/Controller/UserController.class.php index 9c30b6e5..dca5a34b 100644 --- a/Application/Sdk/Controller/UserController.class.php +++ b/Application/Sdk/Controller/UserController.class.php @@ -927,7 +927,7 @@ class UserController extends BaseController } if(strlen($nickname_len) > 16){ - $this -> set_message(1027, "fail", "昵称过长"); + $this -> new_set_message(1027, "昵称过长"); } $nk = M('User', 'tab_') -> field('id,account,nickname') -> where(['nickname' => $user['nickname']]) -> find(); if (!empty($nk) && is_array($nk) && $user['user_id'] != $nk['id']) { @@ -937,7 +937,7 @@ class UserController extends BaseController break; case 'pwd': if(!preg_match('/^(?![^a-zA-Z]+$)(?!\D+$).{6,15}$/', $user['password'])){ - $this -> set_message(1027, "fail", "密码必须6-15位字母和数字组合"); + $this -> new_set_message(1027, "密码必须6-15位字母和数字组合"); } if ($user['old_password'] == $user['password']) { diff --git a/Application/Sdk/View/default/Spend/pay_way.html b/Application/Sdk/View/default/Spend/pay_way.html index 2b80706d..249966f8 100644 --- a/Application/Sdk/View/default/Spend/pay_way.html +++ b/Application/Sdk/View/default/Spend/pay_way.html @@ -169,7 +169,7 @@