|
|
|
@ -323,7 +323,7 @@ class PayH5Controller extends BaseController{
|
|
|
|
|
/**
|
|
|
|
|
*支付宝移动支付
|
|
|
|
|
*/
|
|
|
|
|
public function ali_pay($user_id,$game_id){
|
|
|
|
|
public function ali_pay($user_id, $game_id){
|
|
|
|
|
#获取SDK上POST方式传过来的数据 然后base64解密 然后将json字符串转化成数组
|
|
|
|
|
$request = $this->get_sdk_request($game_id);
|
|
|
|
|
$request['pay_status'] = 0;
|
|
|
|
@ -361,8 +361,17 @@ class PayH5Controller extends BaseController{
|
|
|
|
|
if ($check) {
|
|
|
|
|
echo json_encode(['code'=>1001,'msg'=> "请求发起失效,编号{$request['pay_order_number']},请选择其他支付方式或联系客服"]);exit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->other_price($request);
|
|
|
|
|
|
|
|
|
|
$discount = get_discount($request['game_id'], $request['user_id']);
|
|
|
|
|
$discount = $discount['discount'];
|
|
|
|
|
$discountAmount = 0;
|
|
|
|
|
$request['discount'] = 10;
|
|
|
|
|
if ($discount < 10) {
|
|
|
|
|
$discountAmount = round($request['price'] - ($discount * $request['price'] / 10), 2);
|
|
|
|
|
$request['discount_amount'] = $discountAmount;
|
|
|
|
|
$request['discount'] = $discount;
|
|
|
|
|
}
|
|
|
|
|
$this->other_price($request, $discountAmount);
|
|
|
|
|
|
|
|
|
|
$pay_info = get_payment_config(self::ALI_PAY, $game, $request['user_id']);
|
|
|
|
|
if ($pay_info['code'] != 0) {
|
|
|
|
@ -641,39 +650,38 @@ class PayH5Controller extends BaseController{
|
|
|
|
|
$pay = new \Think\Pay($param['apitype'],C($param['config']));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
$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'])//支付金额
|
|
|
|
|
->setTitle($param['title'])
|
|
|
|
|
->setOrderNo($out_trade_no)
|
|
|
|
|
->setService($param['server'])
|
|
|
|
|
->setSignType($param['signtype'])
|
|
|
|
|
->setPayMethod("wap")
|
|
|
|
|
->setTable($table)
|
|
|
|
|
->setPayWay($param['payway'])
|
|
|
|
|
->setGameId($param['game_id'])
|
|
|
|
|
->setGameName(get_game_name($param['game_id']))
|
|
|
|
|
->setGameAppid($param['game_appid'])
|
|
|
|
|
->setServerId($param['server_id'])
|
|
|
|
|
->setGameplayerId($param['game_player_id'])
|
|
|
|
|
->setCallback($param['callback'])
|
|
|
|
|
->setNotifyUrl($param['notifyurl'])
|
|
|
|
|
->setGameplayerName($param['game_player_name'])
|
|
|
|
|
->setServerName($param['server_name'])
|
|
|
|
|
->setUserId($param['user_id'])
|
|
|
|
|
->setAccount($user['account'])
|
|
|
|
|
->setUserNickName($user['nickname'])
|
|
|
|
|
->setPromoteId($user['promote_id'])
|
|
|
|
|
->setPromoteName($user['promote_account'])
|
|
|
|
|
->setExtend($param['extend'])
|
|
|
|
|
->setSdkVersion($param['sdk_version'])
|
|
|
|
|
->setDiscount($discount)
|
|
|
|
|
->setSmallId($param['small_user_id'])
|
|
|
|
|
->setSmallAccount(get_user_account_by_id($param['small_user_id']));
|
|
|
|
|
->setFee($param['price'])
|
|
|
|
|
->setTitle($param['title'])
|
|
|
|
|
->setDiscount($param['discount_amount'])
|
|
|
|
|
->setOrderNo($out_trade_no)
|
|
|
|
|
->setService($param['server'])
|
|
|
|
|
->setSignType($param['signtype'])
|
|
|
|
|
->setPayMethod("wap")
|
|
|
|
|
->setTable($table)
|
|
|
|
|
->setPayWay($param['payway'])
|
|
|
|
|
->setGameId($param['game_id'])
|
|
|
|
|
->setGameName(get_game_name($param['game_id']))
|
|
|
|
|
->setGameAppid($param['game_appid'])
|
|
|
|
|
->setServerId($param['server_id'])
|
|
|
|
|
->setGameplayerId($param['game_player_id'])
|
|
|
|
|
->setCallback($param['callback'])
|
|
|
|
|
->setNotifyUrl($param['notifyurl'])
|
|
|
|
|
->setGameplayerName($param['game_player_name'])
|
|
|
|
|
->setServerName($param['server_name'])
|
|
|
|
|
->setUserId($param['user_id'])
|
|
|
|
|
->setAccount($user['account'])
|
|
|
|
|
->setUserNickName($user['nickname'])
|
|
|
|
|
->setPromoteId($user['promote_id'])
|
|
|
|
|
->setPromoteName($user['promote_account'])
|
|
|
|
|
->setExtend($param['extend'])
|
|
|
|
|
->setSdkVersion($param['sdk_version'])
|
|
|
|
|
->setSmallId($param['small_user_id'])
|
|
|
|
|
->setSmallAccount(get_user_account_by_id($param['small_user_id']));
|
|
|
|
|
if($param['is_uc']==1){
|
|
|
|
|
return $pay->buildRequestForm($vo,1);
|
|
|
|
|
}else{
|
|
|
|
@ -1195,8 +1203,24 @@ class PayH5Controller extends BaseController{
|
|
|
|
|
$request['pay_way'] = 0;
|
|
|
|
|
$request['spend_ip'] = get_client_ip();
|
|
|
|
|
$user_entity = get_user_entity($request['user_id']);
|
|
|
|
|
$discount_arr = $this->get_discount($request['game_id'], $user_entity['promote_id'], $request['user_id']);
|
|
|
|
|
$discount = $discount_arr['discount'];
|
|
|
|
|
if (isset($request['discount']) && $request['discount'] < 10) {
|
|
|
|
|
$discountInfo = discountInfo($request['game_id']);
|
|
|
|
|
if (!$discountInfo) {
|
|
|
|
|
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>urlencode('折扣无效,请重试!'), 'user_token' => $this->userToken)));exit;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$discount = get_discount($request['game_id'], $request['user_id']);
|
|
|
|
|
$discount = $discount['discount'];
|
|
|
|
|
$discountAmount = 0;
|
|
|
|
|
if ($discount < 10) {
|
|
|
|
|
$discountAmount = round($request['price'] - ($discount * $request['price'] / 10), 2);
|
|
|
|
|
$request['discount_amount'] = $discountAmount;
|
|
|
|
|
}
|
|
|
|
|
$request['actual_amount'] = round($request['price'] - $discountAmount, 2);
|
|
|
|
|
$request['discount_amount'] = $discountAmount;
|
|
|
|
|
$request['cost'] = $request['price'];
|
|
|
|
|
$request['price'] = $request['actual_amount'];
|
|
|
|
|
|
|
|
|
|
$user = M("user", "tab_");
|
|
|
|
|
//添加黑名单
|
|
|
|
|
$check_deposit_money = $this->check_deposit_money($user_entity);
|
|
|
|
@ -1461,15 +1485,17 @@ class PayH5Controller extends BaseController{
|
|
|
|
|
echo json_encode(['code'=>1001,'msg'=> "请求发起失效,编号{$request['pay_order_number']},请选择其他支付方式或联系客服"]);exit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$table = $request['code'] == 1 ? "spend" : "deposit";
|
|
|
|
|
$prefix = $request['code'] == 1 ? "SP_" : "PF_";
|
|
|
|
|
//折扣
|
|
|
|
|
$user = get_user_entity($request['user_id']);
|
|
|
|
|
$discount = $this->get_discount($request['game_id'],$user['promote_id'],$request['user_id']);
|
|
|
|
|
$discount = get_discount($request['game_id'], $request['user_id']);
|
|
|
|
|
$discount = $discount['discount'];
|
|
|
|
|
$pay_amount = $discount * $request['price'] / 10;
|
|
|
|
|
$discountAmount = 0;
|
|
|
|
|
if ($discount < 10) {
|
|
|
|
|
$discountAmount = round($request['price'] - ($discount * $request['price'] / 10), 2);
|
|
|
|
|
$request['discount_amount'] = $discountAmount;
|
|
|
|
|
}
|
|
|
|
|
// 绑币平台币优先处理
|
|
|
|
|
$this->other_price($request);
|
|
|
|
|
$this->other_price($request, $discountAmount);
|
|
|
|
|
$pay_amount = $request['price'];
|
|
|
|
|
|
|
|
|
|
$pay_info = get_payment_config(self::WX_PAY, $game, $request['user_id']);
|
|
|
|
|