Merge branch 'hotfix/tfandpaynotice' of wmtx/sdk into master

ft包规则及支付通知
master
张谷诚 5 years ago committed by Gogs
commit c0918497cd

@ -178,6 +178,11 @@ class BaseController extends Controller {
$data_save['payed_time'] = time();
$map_s['pay_order_number'] = $data['out_trade_no'];
$r = $spend->where($map_s)->save($data_save);
// spend 记录传给通知cp 不直接读
$pay_data = $d;
$pay_data['pay_status'] = $data_save['pay_status'];
$pay_data['order_number'] = $data_save['order_number'];
$pay_data['payed_time'] = $data_save['payed_time'];
// 更新意向表支付成功记录
$payChannelIntention = new PayChannelIntentionModel();
$payChannelIntention->updatePaySuccess($data['out_trade_no']);
@ -205,7 +210,7 @@ class BaseController extends Controller {
}
$game = new GameApi();
$r = $game->game_pay_notify($data,1);
$r = $game->game_pay_notify($data, 1, 0, $pay_data);
if ($r == 'success') {
// 更新意向表游戏通知成功记录
$payChannelIntention->updateGameNotifySuccess($data['out_trade_no']);

@ -18,11 +18,11 @@ class GameApi {
}
public function game_pay_notify($param=null,$code=1,$is_uc=0, $isIosTest=0){
public function game_pay_notify($param=null,$code=1,$is_uc=0, /* $isIosTest=0, */ $pay_data=0){
Log::write("notice:".serialize($param), Log::DEBUG);
if (!$isIosTest) { // 苹果内购 不判断订单支付成功 正常通知CP
/* if (!$isIosTest) { // 苹果内购 不判断订单支付成功 正常通知CP
$pay_map['pay_status'] = 1;
}
} */
$pay_map['pay_game_status'] = 0;
if($is_uc){
$uc=new Ucservice();
@ -30,7 +30,9 @@ class GameApi {
$pay_data=$uc->uc_spend_find($pay_map['pay_order_number']);
}else{
$pay_map['pay_order_number'] = $param['out_trade_no'];
$pay_data = M("Spend","tab_")->where($pay_map)->find();
if (!$pay_data) {
$pay_data = M("Spend","tab_")->where($pay_map)->find();
}
}
if(empty($pay_data)){

@ -194,17 +194,20 @@ class ExchangeController extends BaseController{
$this->set_message(1089,"fail","订单号重复,请关闭支付页面重新支付");
}
// -----------apple beta版 测试账号走第三方支付
$testUser = ['test11', 'test12', 'test13', 'test142',
'test171','test830','test1003','test1002','test170','test169'];
$istest = false;
if (in_array($request['account'], $testUser)) {
$istest = true;
}
// 是否是beta版苹果内购
$isBeta = false;
$isUSBeta = false;
// 白名单用户一定走第三方支付
$isWhite = M('forbit_ip', 'tab_')->where([
'user_id' => $userId,
'type' => 1
])->find();
// 测试白名单用户一定走内购支付
$testWhite = M('forbit_ip', 'tab_')->where([
'user_id' => $userId,
'type' => 2
])->find();
if (isset($request['app_type']) && $request['app_type'] == 2) {
$isBeta = true;
// 美国IP 贝塔版
@ -212,19 +215,21 @@ class ExchangeController extends BaseController{
// todo: 暂时取消美国IP 后面做白名单
$isUSBeta = ip_is_country($ip);
}
// 美国IP的贝塔包 不管游戏设置怎么设置 都走苹果支付
if (!$isUSBeta && (get_game_appstatus2($request['game_id']) || $istest || !$isBeta/* &&$request['is_create_ordernumer']!=1 */)){ /* 第三方支付 */
$isApplePay = false;
if ($testWhite && $isBeta) {
$isApplePay = true; // 测试白名单+内购包 一定是苹果支付
}
// 美国IP的贝塔包 不管游戏设置怎么设置 都走苹果支付 白名单内的用户一定走第三方支付
if (($isWhite || !$isUSBeta) && !$isApplePay){
$prefix = $request['code'] == 1 ? "SP_" : "PF_"; // SP
$out_trade_no = $prefix.date('Ymd').date('His').sp_random_string(4);
$request['pay_order_number'] = $out_trade_no;
$request['pay_status'] = 0;
$request['spend_ip'] = get_client_ip();
// pp($request);
// file_put_contents("./Application/Sdk/OrderNo/".$request['user_id']."-".$request['game_id'].".txt",think_encrypt(json_encode($request)));
$url = C('PAY_DOMAIN') . '/sdk.php?s=/Spend/'.$payPage.'&user_id='.$request['user_id'].'&game_id='.$request['game_id'].'&type=1'.'&user_token='.$userToken.'&action=pay'.'&extend='.urlencode($request['extend']);
echo base64_encode(json_encode(array('status'=>200,'out_trade_no'=>$out_trade_no,'img'=>$url)));exit;
// 只走第三方支付 不走苹果支付
} elseif ($isUSBeta || (!get_game_appstatus2($request['game_id'] && $isBeta))/* &&$request['is_create_ordernumer']==1 */){ /* 废弃 苹果支付 */
// 只走第三方支付 不走苹果支付 美国ip TF包走苹果内购
} elseif ($isUSBeta || $isApplePay){ /* 苹果支付 */
#获取订单信息
$prefix = $request['code'] == 1 ? "SP_" : "PF_";
@ -732,7 +737,7 @@ class ExchangeController extends BaseController{
$map['pay_order_number'] = $out_trade_no;
$payamountVerify=M('spend','tab_')->field('id,pay_order_number,extend,pay_amount,user_id')->where($map)->find();
$payamountVerify=M('spend','tab_')->field('*')->where($map)->find();
if($payamountVerify['pay_amount']!=$request['price']){
@ -796,10 +801,14 @@ class ExchangeController extends BaseController{
//判断是否开启苹果内购支付通知
if ($isBeta /* && $isUSBeta */) {
$is_white_list = M('forbit_ip', 'tab_')->where(['user_id'=>$payamountVerify['user_id'],'status'=>1])->find();
$is_white_list = M('forbit_ip', 'tab_')->where([
'user_id'=>$payamountVerify['user_id'],
'status'=>1,
'type' => 0
])->find();
if ($is_white_list) {
$game->game_pay_notify($param, 1, 0, 1);
$game->game_pay_notify($param, 1, 0, $payamountVerify);
}
} else {

@ -160,20 +160,27 @@ class GameController extends BaseController{
$this->get_suspend_1();
return ;
}
// if (I('debug') == 1) {
// $data['user_id'] = 1;
// $data['sdk_version'] = 2;
// }
// 美国IP 贝塔版
$ip = get_client_ip();
$isUSIP = ip_is_country($ip);
// $isUSIP = false;
// var_dump($isUSIP);
$isUSIP = ip_is_country($ip);
if(empty($data['user_id'])) {
re_msg(1004, 'fail', '用户不存在');
}
// 白名单用户显示
$isWhite = M('forbit_ip', 'tab_')->where([
'user_id' => $data['user_id'],
'type' => 1
])->find();
// 测试白名单用户一定走内购支付
$testWhite = M('forbit_ip', 'tab_')->where([
'user_id' => $data['user_id'],
'type' => 2
])->find();
$user = M('user','tab_')->field('account,balance')->where(['id' => $data['user_id']])->find();
$user['user_token'] = $data['user_token'];
if (!$user['user_token']) {
@ -212,12 +219,19 @@ class GameController extends BaseController{
}
// var_dump($isUSIP);
//判断是否开启苹果内购beta包美国ip且是否在白名单当中
if (isset($data['app_type']) && $data['app_type'] == 2 && $isUSIP) {
if ($v['name'] == 'gift' || $v['name'] == 'suppersign') {
unset($menus[$k]);
continue;
}
if (isset($data['app_type']) && $data['app_type'] == 2 && $isUSIP && !$isWhite) {
if ($v['name'] == 'gift' || $v['name'] == 'suppersign') {
unset($menus[$k]);
continue;
}
}
// 测试白名单用户不显示
if (isset($data['app_type']) && $data['app_type'] == 2 && $testWhite) {
if ($v['name'] == 'gift' || $v['name'] == 'suppersign') {
unset($menus[$k]);
continue;
}
}
//测试账号苹果审核
@ -262,14 +276,14 @@ class GameController extends BaseController{
}
if(!empty($v['game_status'])) {
$game_status = explode(',', $v['game_status']);
if(in_array($data['game_id'], $game_status)) {
unset($personalMenu[$k]);
continue;
}
if(in_array($data['game_id'], $game_status)) {
unset($personalMenu[$k]);
continue;
}
}
if(isset($v['status']) && $v['status'] == 0) {
unset($personalMenu[$k]);
continue;
continue;
}
//测试账号苹果审核
$game_user = ['test11', 'test12', 'test13', 'test142', 'test171','test830','test1003','test1002','test170','test169'];
@ -279,18 +293,24 @@ class GameController extends BaseController{
continue;
}
}
// 测试白名单用户不显示
if (isset($data['app_type']) && $data['app_type'] == 2 && $testWhite) {
if ($v['name'] == 'gift' || $v['name'] == 'balance') {
unset($personalMenu[$k]);
continue;
}
}
if (isset($data['app_type']) && $data['app_type'] == 2 && $isUSIP) {
if ($v['name'] == 'gift' || $v['name'] == 'balance') {
if (isset($data['app_type']) && $data['app_type'] == 2 && $isUSIP && !$isWhite) {
if ($v['name'] == 'gift' || $v['name'] == 'balance') {
unset($personalMenu[$k]);
continue;
}
}
//测试账号苹果审核
$personalMenu[$k]['icon'] = (substr($v['icon'], 0, 7) == "http://" || substr($v['icon'], 0, 8) == "https://" ) ? $v['icon'] :
C('ADMIN_DOMAIN') . $v['icon'];
// die;
$personalMenu[$k]['icon'] = (substr($v['icon'], 0, 7) == "http://" || substr($v['icon'], 0, 8) == "https://" ) ? $v['icon'] : C('ADMIN_DOMAIN') . $v['icon'];
if($v['type'] != 3){
if (substr($personalMenu[$k]['url'], 0, 7) == "http://" || substr($personalMenu[$k]['url'], 0, 8) == "https://") {
$personalMenu[$k]['url'] = $personalMenu[$k]['url'] . '/user_token/' . $user['user_token']."/game_id/".$data['game_id'].'/sdk_version/'.$data['sdk_version'].'/api_ver/2';
@ -344,8 +364,6 @@ class GameController extends BaseController{
'menus' => $menusArr,
'mine_features' => $personalMenuArr,
];
// if (I('debug') == 1)
// pp(($ret));
re_msg(200,'获取成功',$ret);
}

Loading…
Cancel
Save