Merge pull request 'feature/discount' (#21) from feature/discount into master

Reviewed-on: http://8.136.139.249:3000/wmtx/sdk/pulls/21
master
廖金灵 4 years ago
commit 0d0024609e

@ -74,7 +74,59 @@ class BaseController extends Controller
$valueDetailLogModel = new \Sdk\Model\ValueDetailLogModel(); $valueDetailLogModel = new \Sdk\Model\ValueDetailLogModel();
if($d['pay_status'] == 0){ if($d['pay_status'] == 0){
// 处理绑币平台币优先处理 // 折扣优先处理
if ($d['discount_amount'] > 0) { // 折扣金额大于0
$balance = M('user', 'tab_')->where(array(
'id' => $d['user_id'],
))->getField('balance');
$di = discountInfo($d['game_id']);
if (!$di || $di['status'] != 1 || $di['start_time'] > time() || $di['end_time'] < time()) {
$this->record_logs($d['discount_amount'] . "折扣失效,退还平台币" . serialize($di));
$createTime = time();
$depositId = M('deposit', "tab_")->add([
'order_number' => $data['trade_no'],
'pay_order_number' => 'PF_' . $data['out_trade_no'],
'user_id' => $d['user_id'],
'user_account' => $d['user_account'],
'user_nickname' => $d['user_nickname'],
'promote_id' => $d['promote_id'],
'promote_account' => $d['promote_account'],
'pay_amount' => $d['pay_amount'],
'pay_status' => 1,
'pay_way' => $d['pay_way'],
'pay_source' => 2, // 0官网 1推广后台 2移动端
'pay_ip' => $d['spend_ip'],
'create_time' => $createTime,
'payed_time' => time(),
'sdk_version' => $d['sdk_version'],
'check_sign' => get_check_sign($d['user_id'], $data['trade_no'], $d['pay_amount'], $createTime),
]);
$valueDetailLogModel->addLog($d['user_id'], 'PF_' . $data['out_trade_no'],
$balance, $d['pay_amount'], $balance + $d['pay_amount'], $valueDetailLogModel::BALANCE, "游戏支付时候折扣失效,增加到平台币", 2);
$user = M("user", "tab_");
$user->where("id=" . $d['user_id'])->setInc("balance", $d['pay_amount']);
$user->where("id=" . $d['user_id'])->setInc("cumulative", $d['pay_amount']);
//APP邀请好友消费奖励平台币
$this->inviteFriendAward($d['user_id'], $d['pay_amount'], 'PF_' . $data['out_trade_no']);
//充值奖励积分
$this->rechargeAwardPoint($d['user_id'], $d['pay_amount']);
// 当天累计充值
$this->payTodayTotal($d['pay_amount'], $d['pay_way']);
$data_save['pay_status'] = 0;
$data_save['order_number'] = $data['trade_no'];
$data_save['payed_time'] = time();
$data_save['pay_time'] = $data_save['payed_time'];
$map_s['pay_order_number'] = $data['out_trade_no'];
$r = $spend->where($map_s)->save($data_save);
return false;
}
}
// 处理绑币平台币
if ($d['deduction_amount'] > 0) { if ($d['deduction_amount'] > 0) {
$bind_balance = M('user_play', 'tab_')->where(array( $bind_balance = M('user_play', 'tab_')->where(array(
@ -120,7 +172,7 @@ class BaseController extends Controller
// 当天累计充值 // 当天累计充值
$this->payTodayTotal($d['pay_amount'], $d['pay_way']); $this->payTodayTotal($d['pay_amount'], $d['pay_way']);
$data_save['pay_status'] = 1; $data_save['pay_status'] = 0;
$data_save['order_number'] = $data['trade_no']; $data_save['order_number'] = $data['trade_no'];
$data_save['payed_time'] = time(); $data_save['payed_time'] = time();
$data_save['pay_time'] = $data_save['payed_time']; $data_save['pay_time'] = $data_save['payed_time'];
@ -135,6 +187,7 @@ class BaseController extends Controller
$out_trade_no = "PF_" . date('Ymd') . date('His') . sp_random_string(4); $out_trade_no = "PF_" . date('Ymd') . date('His') . sp_random_string(4);
$request = $d; $request = $d;
$request['discount_amount'] = 0;
$request['pay_order_number'] = $out_trade_no; $request['pay_order_number'] = $out_trade_no;
$request['price'] = $bind_balance; $request['price'] = $bind_balance;
$request['deduction_amount'] = 0; $request['deduction_amount'] = 0;
@ -186,9 +239,8 @@ class BaseController extends Controller
} }
} }
} }
$data_save['pay_status'] = 1; $data_save['pay_status'] = 1;
$data_save['order_number'] = $data['trade_no']; $data_save['order_number'] = $data['trade_no'];
$data_save['payed_time'] = time(); $data_save['payed_time'] = time();
@ -196,6 +248,7 @@ class BaseController extends Controller
$map_s['pay_order_number'] = $data['out_trade_no']; $map_s['pay_order_number'] = $data['out_trade_no'];
$r = $spend->where($map_s)->save($data_save); $r = $spend->where($map_s)->save($data_save);
// spend 记录传给通知cp 不直接读 // spend 记录传给通知cp 不直接读
$pay_data = $d; $pay_data = $d;
$pay_data['pay_status'] = $data_save['pay_status']; $pay_data['pay_status'] = $data_save['pay_status'];
$pay_data['order_number'] = $data_save['order_number']; $pay_data['order_number'] = $data_save['order_number'];

@ -3216,3 +3216,23 @@ function post_async($url="'http://47.111.118.107:9501/game-event/recharge'", $da
return true; return true;
} }
function discountInfo($gameId, $time=0)
{
if (!$time) $time = time();
$baseGame = M('base_game', 'tab_')->where([
'android_game_id|ios_game_id' => $gameId
])->find();
if (!$baseGame) {
return false;
}
$discount = M('game_discount','tab_')->where([
'base_game_id' => $baseGame['id'],
'start_time' => ['elt', $time],
'end_time' => ['gt', $time],
'status' => 1,
])->find();
return $discount;
}

@ -404,4 +404,55 @@ function juheSmsCode($phone,$tpl_id,$key,$code) {
$return = json_decode(curl_post(C("JUHE_SMSURL"),$post),true); $return = json_decode(curl_post(C("JUHE_SMSURL"),$post),true);
return $return; return $return;
}
/**
* 获取用户折扣
* @param $game_id 游戏ID
* @param $promote_id 渠道ID
* @param $user_id 用户ID
* @return mixed
*/
function get_discount($gameId, $userId)
{
//获取折扣
$res = [
'discount' => 10,
'discount_type' => 0,
];
$baseGame = M('base_game', 'tab_')->where([
'android_game_id|ios_game_id' => $gameId
])->find();
if (!$baseGame) {
return $res;
}
$time = time();
$discount = M('game_discount','tab_')->where([
'base_game_id' => $baseGame['id'],
'start_time' => ['elt', $time],
'end_time' => ['gt', $time],
'status' => 1,
])->find();
if (!$discount) {
return $res;
}
$exists = M('spend','tab_')->where([
'user_id' => $userId,
'pay_status' => 1
])->where("(game_id={$baseGame['android_game_id']} or game_id={$baseGame['ios_game_id']})")->find();
if ($exists) {
$res = [
'discount' => $discount['second_rate'],
'discount_type' => 1,
];
} else {
$res = [
'discount' => $discount['first_rate'],
'discount_type' => 0,
];
}
return $res;
} }

@ -551,7 +551,7 @@ class BaseController extends RestController
$data_spned['order_number'] = $param["order_number"]; $data_spned['order_number'] = $param["order_number"];
$data_spned['pay_order_number'] = $param["pay_order_number"]; $data_spned['pay_order_number'] = $param["pay_order_number"];
$data_spned['props_name'] = $param["title"]; $data_spned['props_name'] = $param["title"];
$data_spned['cost'] = $param["price"];//原价 $data_spned['cost'] = $param["cost"];//原价
$data_spned['deduction_amount'] = $param["deduction_amount"];// 抵扣价格 $data_spned['deduction_amount'] = $param["deduction_amount"];// 抵扣价格
$data_spned['discount_amount'] = $param["discount_amount"];// 折扣价格 $data_spned['discount_amount'] = $param["discount_amount"];// 折扣价格
$data_spned['spend_time'] = NOW_TIME; $data_spned['spend_time'] = NOW_TIME;
@ -569,7 +569,7 @@ class BaseController extends RestController
$data_spned['pay_way'] = $param["pay_way"]; $data_spned['pay_way'] = $param["pay_way"];
if($data_spned['pay_way'] != 7){ if($data_spned['pay_way'] != 7){
$discount = $this->get_discount($param['game_id'],$user_entity['promote_id'],$param['user_id']); $discount = $this->get_discount($param['game_id'],$user_entity['promote_id'],$param['user_id']);
$data_spned['pay_amount'] = $param["price"] * $discount['discount']/10;//实付金额 $data_spned['pay_amount'] = round($param["price"] * $discount['discount']/10, 2);//实付金额
$data_spned['discount_type'] = $discount['discount_type']; $data_spned['discount_type'] = $discount['discount_type'];
}else{//苹果支付不计入折扣 }else{//苹果支付不计入折扣
$data_spned['pay_amount'] = $param["price"]; $data_spned['pay_amount'] = $param["price"];
@ -707,9 +707,9 @@ class BaseController extends RestController
public function add_spend($data,$type=0,$api_ver=2){ public function add_spend($data,$type=0,$api_ver=2){
if ($data["price"] > 999999) { if ($data["price"] > 999999) {
if ($api_ver == 0) { if ($api_ver == 0) {
redirect(U('Spend/notice_v1',array('user_id'=>$ordercheck['user_id'],'game_id'=>$ordercheck['game_id'],'msg'=>'充值金额有误!')));exit; redirect(U('Spend/notice_v1',array('user_id'=>$data['user_id'],'game_id'=>$data['game_id'],'msg'=>'充值金额有误!')));exit;
} else { } else {
redirect(U('Spend/notice',array('user_id'=>$ordercheck['user_id'],'game_id'=>$ordercheck['game_id'],'msg'=>'充值金额有误!')));exit; redirect(U('Spend/notice',array('user_id'=>$data['user_id'],'game_id'=>$data['game_id'],'msg'=>'充值金额有误!')));exit;
} }
} }
$spend = M("spend","tab_"); $spend = M("spend","tab_");
@ -804,7 +804,7 @@ class BaseController extends RestController
* @param $user_id 用户ID * @param $user_id 用户ID
* @return mixed * @return mixed
*/ */
protected function get_discount($game_id,$promote_id,$user_id){ protected function get_discount_old($game_id,$promote_id,$user_id){
//获取折扣 //获取折扣
$map['game_id'] = $game_id; $map['game_id'] = $game_id;
$map['promote_id'] =-1; $map['promote_id'] =-1;
@ -938,6 +938,7 @@ class BaseController extends RestController
$request['actual_amount'] = round($request['price'] - $discountAmount - $deductionAmount, 2).''; $request['actual_amount'] = round($request['price'] - $discountAmount - $deductionAmount, 2).'';
$request['discount_amount'] = round($discountAmount, 2).''; $request['discount_amount'] = round($discountAmount, 2).'';
$request['deduction_amount'] = round($deductionAmount, 2).''; $request['deduction_amount'] = round($deductionAmount, 2).'';
$request['cost'] = $request['price'] - $deductionAmount;
$request['price'] = round($request['actual_amount'], 2).''; $request['price'] = round($request['actual_amount'], 2).'';
return $request; return $request;
//$this->set_message(1089,"fail",$request['price']."新支付".$pay_amount); //$this->set_message(1089,"fail",$request['price']."新支付".$pay_amount);

@ -103,9 +103,17 @@ class ExchangeController extends BaseController{
$out_trade_no = $prefix.date('Ymd').date('His').sp_random_string(4); $out_trade_no = $prefix.date('Ymd').date('His').sp_random_string(4);
if (C('PAY_TEST')) $out_trade_no = $out_trade_no."_test"; if (C('PAY_TEST')) $out_trade_no = $out_trade_no."_test";
$request['pay_order_number'] = $out_trade_no; $request['pay_order_number'] = $out_trade_no;
$user_entity = get_user_entity($request['user_id']); $user_entity = get_user_entity($request['user_id']);
$game_name = isset($request['game_name']) ? $request['game_name'] : M('game', 'tab_')->where(['id' => $request['game_id']])->getField('game_name'); $game_name = isset($request['game_name']) ? $request['game_name'] : M('game', 'tab_')->where(['id' => $request['game_id']])->getField('game_name');
// 折扣
$request['discount'] = 10;
$discount = get_discount($request['game_id'], $request['user_id']);
if (isset($discount['discount']) && $discount['discount'] < 10) {
$request['discount'] = $discount['discount'];
}
M("pay_info", "tab_")->add([ M("pay_info", "tab_")->add([
'user_id' => $request['user_id'], 'user_id' => $request['user_id'],
'game_id' => $request['game_id'], 'game_id' => $request['game_id'],

@ -145,7 +145,7 @@ class FengHuoApi2Controller extends GetInfoBaseController{
$where['is_check'] = 1; $where['is_check'] = 1;
$data = M('spend','tab_') $data = M('spend','tab_')
->field('pay_order_number,promote_account,user_id,game_name,game_player_name,server_name,pay_time,cost,user_account') ->field('pay_order_number,promote_account,user_id,game_name,game_player_name,server_name,pay_time,cost,user_account,discount_amount,pay_amount')
->where($where) ->where($where)
->order($order) ->order($order)
->page($page, $row) ->page($page, $row)

@ -148,7 +148,7 @@ class FengHuoApiController extends Controller{
$where['pay_status'] = array('neq',0); $where['pay_status'] = array('neq',0);
$data = M('spend','tab_') $data = M('spend','tab_')
->field('pay_order_number,promote_account,user_id,game_name,game_player_name,server_name,pay_time,cost,user_account') ->field('pay_order_number,promote_account,user_id,game_name,game_player_name,server_name,pay_time,cost,user_account,discount_amount,pay_amount')
->where($where) ->where($where)
->order($order) ->order($order)
->page($page, $row) ->page($page, $row)

@ -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字符串转化成数组 #获取SDK上POST方式传过来的数据 然后base64解密 然后将json字符串转化成数组
$request = $this->get_sdk_request($game_id); $request = $this->get_sdk_request($game_id);
$request['pay_status'] = 0; $request['pay_status'] = 0;
@ -361,8 +361,17 @@ class PayH5Controller extends BaseController{
if ($check) { if ($check) {
echo json_encode(['code'=>1001,'msg'=> "请求发起失效,编号{$request['pay_order_number']},请选择其他支付方式或联系客服"]);exit; 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']); $pay_info = get_payment_config(self::ALI_PAY, $game, $request['user_id']);
if ($pay_info['code'] != 0) { if ($pay_info['code'] != 0) {
@ -641,39 +650,38 @@ class PayH5Controller extends BaseController{
$pay = new \Think\Pay($param['apitype'],C($param['config'])); $pay = new \Think\Pay($param['apitype'],C($param['config']));
break; 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"; $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 = new \Think\Pay\PayVo();
$vo->setBody("充值") $vo->setBody("充值")
->setFee($param['price'])//支付金额 ->setFee($param['price'])
->setTitle($param['title']) ->setTitle($param['title'])
->setOrderNo($out_trade_no) ->setDiscount($param['discount_amount'])
->setService($param['server']) ->setOrderNo($out_trade_no)
->setSignType($param['signtype']) ->setService($param['server'])
->setPayMethod("wap") ->setSignType($param['signtype'])
->setTable($table) ->setPayMethod("wap")
->setPayWay($param['payway']) ->setTable($table)
->setGameId($param['game_id']) ->setPayWay($param['payway'])
->setGameName(get_game_name($param['game_id'])) ->setGameId($param['game_id'])
->setGameAppid($param['game_appid']) ->setGameName(get_game_name($param['game_id']))
->setServerId($param['server_id']) ->setGameAppid($param['game_appid'])
->setGameplayerId($param['game_player_id']) ->setServerId($param['server_id'])
->setCallback($param['callback']) ->setGameplayerId($param['game_player_id'])
->setNotifyUrl($param['notifyurl']) ->setCallback($param['callback'])
->setGameplayerName($param['game_player_name']) ->setNotifyUrl($param['notifyurl'])
->setServerName($param['server_name']) ->setGameplayerName($param['game_player_name'])
->setUserId($param['user_id']) ->setServerName($param['server_name'])
->setAccount($user['account']) ->setUserId($param['user_id'])
->setUserNickName($user['nickname']) ->setAccount($user['account'])
->setPromoteId($user['promote_id']) ->setUserNickName($user['nickname'])
->setPromoteName($user['promote_account']) ->setPromoteId($user['promote_id'])
->setExtend($param['extend']) ->setPromoteName($user['promote_account'])
->setSdkVersion($param['sdk_version']) ->setExtend($param['extend'])
->setDiscount($discount) ->setSdkVersion($param['sdk_version'])
->setSmallId($param['small_user_id']) ->setSmallId($param['small_user_id'])
->setSmallAccount(get_user_account_by_id($param['small_user_id'])); ->setSmallAccount(get_user_account_by_id($param['small_user_id']));
if($param['is_uc']==1){ if($param['is_uc']==1){
return $pay->buildRequestForm($vo,1); return $pay->buildRequestForm($vo,1);
}else{ }else{
@ -1195,8 +1203,24 @@ class PayH5Controller extends BaseController{
$request['pay_way'] = 0; $request['pay_way'] = 0;
$request['spend_ip'] = get_client_ip(); $request['spend_ip'] = get_client_ip();
$user_entity = get_user_entity($request['user_id']); $user_entity = get_user_entity($request['user_id']);
$discount_arr = $this->get_discount($request['game_id'], $user_entity['promote_id'], $request['user_id']); if (isset($request['discount']) && $request['discount'] < 10) {
$discount = $discount_arr['discount']; $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_"); $user = M("user", "tab_");
//添加黑名单 //添加黑名单
$check_deposit_money = $this->check_deposit_money($user_entity); $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; 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']); $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']; $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_amount = $request['price'];
$pay_info = get_payment_config(self::WX_PAY, $game, $request['user_id']); $pay_info = get_payment_config(self::WX_PAY, $game, $request['user_id']);

@ -522,18 +522,23 @@ class ShortcutController extends BaseController{
//折扣 //折扣
$user = get_user_entity($request['user_id']); $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']; $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;
}
$pay_amount = round($discount * $request['price'] / 10, 2);
if ($pay_amount < 0.01) { if ($pay_amount < 0.01) {
echo json_encode(['code'=>0, 'msg'=> "充值金额有误."]); echo json_encode(['code'=>0, 'msg'=> "充值金额有误."]);
exit; exit;
} }
if (!$is_platform) { if (!$is_platform) {
$this->other_price($request, $request['price']-$pay_amount); $this->other_price($request, $discountAmount);
} }
// 平台币充值 // 平台币充值
if ($is_platform) { if ($is_platform) {
$request['code'] = 0; $request['code'] = 0;
@ -566,6 +571,7 @@ class ShortcutController extends BaseController{
$info['actual_amount'] = $request['actual_amount']; $info['actual_amount'] = $request['actual_amount'];
$info['discount_amount'] = $request['discount_amount']; $info['discount_amount'] = $request['discount_amount'];
$info['price'] = $request['price']; $info['price'] = $request['price'];
$info['cost'] = $request['cost'];
$infosave = json_encode($info); $infosave = json_encode($info);
M('pay_info', 'tab_')->where([ M('pay_info', 'tab_')->where([
'id' => $payInfo['id'] 'id' => $payInfo['id']

@ -72,11 +72,9 @@ class SpendController extends Controller {
'game_id' => $game_id 'game_id' => $game_id
])->order("id desc")->find(); ])->order("id desc")->find();
$request = json_decode($pay_info['info'], true); $request = json_decode($pay_info['info'], true);
/* $file = file_get_contents ( "./Application/Sdk/OrderNo/" . $user_id . "-" . $game_id . ".txt" );
$request = json_decode ( think_decrypt ( $file ), true ); */
$data = array( $data = array(
'coin' => $request ['body'], 'coin' => $request ['body'],
'price' => $request ['price'] + $request['deduction_amount'], 'price' => $request ['price'] + $request['deduction_amount'] + $request['discount_amount'],
'game_name' => $request ['game_name'], 'game_name' => $request ['game_name'],
'code' => $request ['code'] 'code' => $request ['code']
); );
@ -87,32 +85,35 @@ class SpendController extends Controller {
'user_id' => $user_id, 'user_id' => $user_id,
'game_id' => $game_id 'game_id' => $game_id
) )->getField ( 'bind_balance' ); ) )->getField ( 'bind_balance' );
// $data['price'] = 1;
$this->assign ( 'balance', $balance ); $this->assign ( 'balance', $balance );
$this->assign ( 'bind_balance', $bind_balance ); $this->assign ( 'bind_balance', $bind_balance );
$this->assign ( 'data', $data ); $this->assign ( 'data', $data );
$this->assign ( 'game_id', $game_id ); $this->assign ( 'game_id', $game_id );
$this->assign ( 'btncolor', isset($request['btncolor']) ? $request['btncolor'] : '' ); $this->assign ( 'btncolor', isset($request['btncolor']) ? $request['btncolor'] : '' );
if ($balance + $bind_balance > $data['price']) { // 折扣
$apply_money = $data['price']; $discount = get_discount($game_id, $user_id);
$discount_amount = 0;
if ($discount['discount'] < 10) {
$discount_amount = round($data['price'] - $data['price'] * $discount['discount'] / 10, 2);
}
$this->assign('discount', $discount['discount']);
$this->assign('discount_amount', $discount_amount);
if ($balance + $bind_balance > $data['price'] - $discount_amount) {
$apply_money = $data['price'] - $discount_amount;
$this->assign ('pay_price', 0); // 是否第三方支付 $this->assign ('pay_price', 0); // 是否第三方支付
} else { } else {
$apply_money = $balance + $bind_balance; $apply_money = $balance + $bind_balance;
$payPrice = round($data['price'] - $balance - $bind_balance, 2); $payPrice = round($data['price'] - $discount_amount - $balance - $bind_balance, 2);
$this->assign ('pay_price', $payPrice ? $payPrice : 0); $this->assign ('pay_price', $payPrice ? $payPrice : 0);
} }
/* $this->assign ( 'alipayurl', $ret[0]['payURL']);
header("Access-Control-Allow-Origin: *"); */
$data = $request; $data = $request;
//unset($data['md5_sign']);
unset($data['pay_order_number']); unset($data['pay_order_number']);
unset($data['pay_status']); unset($data['pay_status']);
unset($data['spend_ip']); unset($data['spend_ip']);
unset($data['pay_way']); unset($data['pay_way']);
/* if ($request['sdk_version'] == 1) // android 没有 is_create_ordernumer苹果内购
unset($data['is_create_ordernumer']); */
$this->assign('apply_money',$apply_money); //适用平台金额 $this->assign('apply_money',$apply_money); //适用平台金额
$this->assign('sdk_version', $request['sdk_version']); $this->assign('sdk_version', $request['sdk_version']);
$this->assign('small_json', json_encode(array( $this->assign('small_json', json_encode(array(
@ -123,8 +124,7 @@ class SpendController extends Controller {
))); )));
$this->assign('user_token', $user_token); $this->assign('user_token', $user_token);
$this->display(); $this->display();
} }
public function pay_way_v1() { public function pay_way_v1() {

@ -38,6 +38,9 @@
</div> </div>
<div class="documents"> <div class="documents">
<div class="documents_box"> <div class="documents_box">
<if condition="$discount lt 10">
<div><span>折扣:{$discount}折</span> <span>-¥{$discount_amount}</span> </div>
</if>
<div><span>适用平台金额:</span> <span>-¥{$apply_money}</span> </div> <div><span>适用平台金额:</span> <span>-¥{$apply_money}</span> </div>
<div><span>还需支付:</span><span>¥{$pay_price}</span> </div> <div><span>还需支付:</span><span>¥{$pay_price}</span> </div>
</div> </div>
@ -150,6 +153,9 @@
</div> </div>
<div class="documents"> <div class="documents">
<div class="documents_box"> <div class="documents_box">
<if condition="$discount lt 10">
<div><span>折扣:{$discount}折</span> <span>-¥{$discount_amount}</span> </div>
</if>
<div><span>适用平台金额:</span> <span>-¥{$apply_money}</span> </div> <div><span>适用平台金额:</span> <span>-¥{$apply_money}</span> </div>
<div><span>还需支付:</span><span>¥{$pay_price}</span> </div> <div><span>还需支付:</span><span>¥{$pay_price}</span> </div>
</div> </div>

@ -377,12 +377,17 @@ class Pay
$spend_data['selle_ratio'] = getGameSelleRatio($spend_data['promote_id'], $spend_data['game_id']);//$vo->getRatio(); $spend_data['selle_ratio'] = getGameSelleRatio($spend_data['promote_id'], $spend_data['game_id']);//$vo->getRatio();
$spend_data['pay_order_number'] = $vo->getOrderNo(); $spend_data['pay_order_number'] = $vo->getOrderNo();
$spend_data['props_name'] = $vo->getTitle(); $spend_data['props_name'] = $vo->getTitle();
$spend_data['cost'] = $vo->getFee(); $spend_data['cost'] = $param['cost'];
$discount = $vo->getDiscount() == 0 ? 10 : $vo->getDiscount(); //获取折扣 /*$price = $vo->getFee(); //获取原价
$price = $vo->getFee(); //获取原价 $discount = 10;
$pay_amount = $discount * $price / 10; //计算折扣后的价格 $pay_amount = $price;
$vo->setFee($pay_amount);//构造表单 设置金额为折扣后的价格 if ($param['discount'] < 10) {
$spend_data['pay_amount'] = $pay_amount; $discount = $param['discount'];
$pay_amount = round($discount * $price / 10, 2); //计算折扣后的价格
$spend_data['discount_amount'] = round($price - $pay_amount, 2);
}
$vo->setFee($pay_amount);//构造表单 设置金额为折扣后的价格*/
$spend_data['pay_amount'] = $param['actual_amount'];
$spend_data['pay_way'] = $vo->getPayWay(); $spend_data['pay_way'] = $vo->getPayWay();
$spend_data['pay_time'] = 0; $spend_data['pay_time'] = 0;
$spend_data['spend_time'] = NOW_TIME; $spend_data['spend_time'] = NOW_TIME;

Loading…
Cancel
Save