|
|
<?php
|
|
|
namespace Sdk\Controller;
|
|
|
use Think\Controller;
|
|
|
use Common\Api\GameApi;
|
|
|
use Org\SqpaySDK\Sqpay;
|
|
|
use Qiniu\json_decode;
|
|
|
use Think\Log;
|
|
|
use Org\YeepaySDK\Yeepay;
|
|
|
use Sdk\Model\PayLimitConfModel;
|
|
|
use Sdk\Model\PayChannelIntentionModel;
|
|
|
class ShortcutController extends BaseController{
|
|
|
|
|
|
// public function test() {
|
|
|
//
|
|
|
// dump(juheSmsCode('13067381027',C('juhedata.tpl_id'),C('juhedata.key'),'123456'));
|
|
|
//
|
|
|
// }
|
|
|
|
|
|
// 签约处理
|
|
|
public function sign_contract() {
|
|
|
|
|
|
$sqpay = new Sqpay();
|
|
|
$param = I("request.");
|
|
|
// $param['signCode'] = 357926;
|
|
|
// pp($param);
|
|
|
if (IS_POST && !$param['signCode']) {
|
|
|
//echo "调用认证 签约==》".time()."<br>"; 发送短信
|
|
|
$rsign = $sqpay->sign_contract(array(
|
|
|
'merNo' => C('sqpay.partner'),
|
|
|
'custName' => $param['custName'],
|
|
|
'phoneNo' => $param['phoneNo'],
|
|
|
'cardNo' => $param['cardNo'],
|
|
|
'idNo' => $param['idNo'],
|
|
|
'reqMsgId' => date('YmdHis').rand(0, 9999),
|
|
|
'authMsg' => '',
|
|
|
'custType' => '01', // 认证 发短信
|
|
|
'secret' => C('sqpay.key'),
|
|
|
));
|
|
|
|
|
|
//echo "调用认证 签约==》".time()."<br>";
|
|
|
if ($rsign['respCode'] == 'success') { // 认证成功发送短信
|
|
|
$this->success('签约短信发送成功', '', true);
|
|
|
} else {
|
|
|
if (strlen($rsign['respMessage']) > 100) {
|
|
|
$this->error('填写信息有误,请核对!', '', true);
|
|
|
} else {
|
|
|
$this->error($rsign['respMessage'], '', true);
|
|
|
}
|
|
|
}
|
|
|
// var_dump($rsign);
|
|
|
exit();
|
|
|
}
|
|
|
|
|
|
if (IS_POST && $param['signCode']) {
|
|
|
$rauth = $sqpay->sign_contract(array(
|
|
|
'merNo' => C('sqpay.partner'),
|
|
|
'custName' => $param['custName'],
|
|
|
'phoneNo' => $param['phoneNo'],
|
|
|
'cardNo' => $param['cardNo'],
|
|
|
'idNo' => $param['idNo'],
|
|
|
'reqMsgId' => date('YmdHis').rand(0, 9999),
|
|
|
'authMsg' => $param['signCode'],
|
|
|
'custType' => '02', // 签约
|
|
|
'secret' => C('sqpay.key'),
|
|
|
));
|
|
|
if ($rauth['respCode'] == 'success') { // 签约成功
|
|
|
$this->success('签约成功', '', true);
|
|
|
$signContract = true;
|
|
|
} else {
|
|
|
$this->error($rauth['respMessage'], '', true);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
/**\
|
|
|
* 快捷支付'merNo' => $data['merNo'],
|
|
|
'merOrderNo' => $data['merOrderNo'],
|
|
|
'cardNo' => $data['cardNo'],
|
|
|
'custName' => $data['custName'],
|
|
|
'idType' => '0',
|
|
|
'idNo' => $data['idNo'],
|
|
|
'phone' => $data['phoneNo'],
|
|
|
'purpose' => $data['purpose'],
|
|
|
'payAmount' => $data['payAmount'],
|
|
|
'bankCode' => $bankInfo['bank'],
|
|
|
'payType' => 'XYPAY',
|
|
|
'NotifyURL' => $data['NotifyURL'],
|
|
|
'txnTime' => $data['txnTime'],
|
|
|
'smsCode' => $data['smsCode'],
|
|
|
*/
|
|
|
public function shortcut_pay() {
|
|
|
$sqpay = new Sqpay();
|
|
|
$param = I("request.");
|
|
|
|
|
|
$signContract = false; // 签约标记
|
|
|
|
|
|
if (!$param['user_id'] || !$param['game_id']) {
|
|
|
$this->error("参数有误", '', true);
|
|
|
}
|
|
|
|
|
|
// 支付验证 是否让支付
|
|
|
$payCheck = pay_check($param['user_id']);
|
|
|
if (!$payCheck['code']) {
|
|
|
$this->set_message(1088, "fail", $payCheck['msg']);
|
|
|
}
|
|
|
|
|
|
$w = array(
|
|
|
'user_id' => $param['user_id'],
|
|
|
'game_id' => $param['game_id'],
|
|
|
);
|
|
|
if ($param['extend']) $w['extend'] = $param['extend'];
|
|
|
if ($param['order_id']) $w['order_id'] = $param['order_id'];
|
|
|
$payInfo = M('pay_info', 'tab_')->where($w)->order('id desc')->find();
|
|
|
if (!$payInfo) {
|
|
|
$this->error("数据有误..", '', true);
|
|
|
}
|
|
|
// $info = json_decode($payInfo['info'], true);
|
|
|
$deductionAmount = 0;
|
|
|
if ($payInfo['type'] == 'sq_shortcut') {
|
|
|
$spend = M('spend', 'tab_')->where([
|
|
|
'pay_order_number' => $payInfo['order_id']
|
|
|
])->find();
|
|
|
$orderPrice = round($spend['pay_amount']+$spend['deduction_amount'], 2);
|
|
|
$deductionAmount = $spend['deduction_amount'];
|
|
|
} else {
|
|
|
$deposit = M('deposit', 'tab_')->where([
|
|
|
'pay_order_number' => $payInfo['order_id']
|
|
|
])->find();
|
|
|
$orderPrice = $deposit['pay_amount'];
|
|
|
}
|
|
|
|
|
|
// if ($orderPrice != $payInfo['price']) {
|
|
|
// $this->error($orderPrice."数据有误.".$payInfo['price'], '', true);
|
|
|
// }
|
|
|
$payInfo['price'] = round($payInfo['price'] - $deductionAmount, 2);
|
|
|
if ($payInfo['type'] == 'sq_shortcut_platform' && $payInfo['price'] < 1) {
|
|
|
$this->error("数据有误", '', true);
|
|
|
}
|
|
|
if ($payInfo['status'] == 'payed') {
|
|
|
$this->error("订单已支付");
|
|
|
}
|
|
|
|
|
|
// 发起支付
|
|
|
if (IS_POST && $param['smsCode']) {
|
|
|
//echo "发起支付==》".time()."<br>";
|
|
|
$rsp = $sqpay->shortcut_pay(array(
|
|
|
'merNo' => C('sqpay.partner'),
|
|
|
'merOrderNo' => $payInfo['order_id'],
|
|
|
'custName' => $param['custName'],
|
|
|
'phoneNo' => $param['phoneNo'],
|
|
|
'cardNo' => $param['cardNo'],
|
|
|
'idNo' => $param['idNo'],
|
|
|
'purpose' => 'purpose',
|
|
|
'payAmount' => $payInfo['price'],
|
|
|
'txnTime' => $payInfo['txnTime'],
|
|
|
'smsCode' => $param['smsCode'],
|
|
|
'secret' => C('sqpay.key'),
|
|
|
'NotifyURL' => C('PAY_DOMAIN')."/callback.php/Notify/sq_callback",//通知
|
|
|
));
|
|
|
//echo "发起支付==》".time()."<br>";
|
|
|
if ($rsp['responseCode'] == '88') {
|
|
|
// sleep(5);
|
|
|
echo json_encode([
|
|
|
'status' => 1,
|
|
|
'info' => '请求成功',
|
|
|
'url' => U('Spend/shortcut_notice',array('status'=> 1, 'orderno' => $payInfo['order_id'], 'user_id'=>$param['user_id'],'game_id'=>$param['game_id'])),
|
|
|
]);
|
|
|
exit();
|
|
|
// redirect(U('Spend/shortcut_notice',array('status'=> 1, 'orderno' => $payInfo['order_id'], 'user_id'=>$param['user_id'],'game_id'=>$param['game_id'])));exit;
|
|
|
} else {
|
|
|
// 支付失败
|
|
|
echo json_encode([
|
|
|
'status' => 0,
|
|
|
'info' => $rsp['resMess']
|
|
|
]);
|
|
|
exit();
|
|
|
// redirect(U('Spend/pay_success',array('status'=> 0, 'orderno' => $payInfo['order_id'], 'user_id'=>$param['user_id'],'game_id'=>$param['game_id'])));exit;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 发送短信
|
|
|
if (IS_POST && !isset($param['smsCode'])) {
|
|
|
// 查看是否签约
|
|
|
//echo "查看是否签约==》".time()."<br>";
|
|
|
$rcs = $sqpay->contract_status(array(
|
|
|
'merNo' => C('sqpay.partner'),
|
|
|
'custName' => $param['custName'],
|
|
|
'phoneNo' => $param['phoneNo'],
|
|
|
'cardNo' => $param['cardNo'],
|
|
|
'idNo' => $param['idNo'],
|
|
|
'payAmount' => $payInfo['price'],
|
|
|
'secret' => C('sqpay.key'),
|
|
|
));
|
|
|
// pp($rcs);
|
|
|
//echo "查看是否签约==》".time()."<br>";
|
|
|
if ($rcs['respCode'] == 4) {
|
|
|
$this->error($rcs['respMessage'], '', true);
|
|
|
pp($rcs);
|
|
|
pp($rcs['respMessage']);
|
|
|
}
|
|
|
|
|
|
if ($rcs['respCode'] == 1 || $rcs['respCode'] == 2 || $rcs['respCode'] == 3) {
|
|
|
echo json_encode([
|
|
|
'status' => 2, //
|
|
|
'info' => '未签约'
|
|
|
]);
|
|
|
exit();
|
|
|
}
|
|
|
|
|
|
/* // 调用认证 签约 6222031402001028203 500236199608024075
|
|
|
if ($rcs['respCode'] == 1 || $rcs['respCode'] == 2 || $rcs['respCode'] == 3) {
|
|
|
//echo "调用认证 签约==》".time()."<br>"; 发送短信
|
|
|
$rsign = $sqpay->sign_contract(array(
|
|
|
'merNo' => C('sqpay.partner'),
|
|
|
'custName' => $param['custName'],
|
|
|
'phoneNo' => $param['phoneNo'],
|
|
|
'cardNo' => $param['cardNo'],
|
|
|
'idNo' => $param['idNo'],
|
|
|
'reqMsgId' => date('YmdHis').rand(0, 9999),
|
|
|
'authMsg' => 'ok',
|
|
|
'custType' => '01',
|
|
|
'secret' => C('sqpay.key'),
|
|
|
));
|
|
|
|
|
|
//echo "调用认证 签约==》".time()."<br>";
|
|
|
if ($rsign['respCode'] == 'success') { // 认证成功 接着签约
|
|
|
$rauth = $sqpay->sign_contract(array(
|
|
|
'merNo' => C('sqpay.partner'),
|
|
|
'custName' => $param['custName'],
|
|
|
'phoneNo' => $param['phoneNo'],
|
|
|
'cardNo' => $param['cardNo'],
|
|
|
'idNo' => $param['idNo'],
|
|
|
'reqMsgId' => date('YmdHis').rand(0, 9999),
|
|
|
'authMsg' => $rsign['authMsg'],
|
|
|
'custType' => '02',
|
|
|
'secret' => C('sqpay.key'),
|
|
|
));
|
|
|
pp($rauth);
|
|
|
if ($rauth['respCode'] == 'success') {
|
|
|
$signContract = true;
|
|
|
} else {
|
|
|
$this->error($rauth['respMessage'], '', true);
|
|
|
}
|
|
|
} else {
|
|
|
$this->error($r['respMessage'], '', true);
|
|
|
}
|
|
|
}*/
|
|
|
// 无需签约 发送短信
|
|
|
if ($rcs['respCode'] == 0 || $rcs['respCode'] == 10) {
|
|
|
//echo "发送短信==》".time()."<br>";
|
|
|
$ret = $sqpay->protocol_pay_send_sms(array(
|
|
|
'merNo' => C('sqpay.partner'),
|
|
|
'custName' => $param['custName'],
|
|
|
'phoneNo' => $param['phoneNo'],
|
|
|
'cardNo' => $param['cardNo'],//'6214855913999401',
|
|
|
'idNo' => $param['idNo'],
|
|
|
'payAmount' => $payInfo['price'],
|
|
|
'secret' => C('sqpay.key'),
|
|
|
'merOrderNo' => $payInfo['order_id'],
|
|
|
'NotifyURL' => C("PAY_DOMAIN")."/callback.php/Notify/sq_callback",
|
|
|
'purpose' => '消费-'.$payInfo['order_id']
|
|
|
));
|
|
|
//echo "发送短信==》".time()."<br>";
|
|
|
if ($ret['resFlag'] == 'success') {
|
|
|
M('pay_info', 'tab_')->where(array(
|
|
|
'id' => $payInfo['id'],
|
|
|
))->save(array(
|
|
|
'txn_time' => $ret['txnTime']
|
|
|
));
|
|
|
$this->success('发送成功', '', true);
|
|
|
} else {
|
|
|
$this->error($ret['resMess'], '', true);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$this->display();
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* android获取 支付url
|
|
|
*/
|
|
|
public function android_shortcut_pay() {
|
|
|
$request = json_decode(base64_decode(file_get_contents("php://input")), true);
|
|
|
file_put_contents("./Application/Sdk/OrderNo/".$request['user_id']."-".$request['game_id'].".txt",think_encrypt(json_encode($request)));
|
|
|
|
|
|
// 支付验证 是否让支付
|
|
|
$payCheck = pay_check($request['user_id']);
|
|
|
if (!$payCheck['code']) {
|
|
|
$this->set_message(1088, "fail", $payCheck['msg']);
|
|
|
}
|
|
|
$user_id = $request['user_id'];
|
|
|
$game_id = $request['game_id'];
|
|
|
$data = array(
|
|
|
'status' => 200,
|
|
|
"url" => 'http://' . $_SERVER ['HTTP_HOST'] ."/sdk.php/WapPay/wap_shortcut_pay/user_id/{$user_id}/game_id/{$game_id}",
|
|
|
"html" => '',
|
|
|
"return_msg" => '',
|
|
|
"paytype" => 'shortcut',
|
|
|
);
|
|
|
|
|
|
echo base64_encode(json_encode($data));
|
|
|
exit();
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 快捷支付 用户点击
|
|
|
*/
|
|
|
public function wap_shortcut_pay($user_id,$game_id) {
|
|
|
// $file=file_get_contents("./Application/Sdk/OrderNo/".$user_id."-".$game_id.".txt");
|
|
|
// $request = json_decode(think_decrypt($file),true);
|
|
|
// Log::write(serialize($request), Log::DEBUG);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// $is_platform = 0;
|
|
|
// if (I('request.code') == 0 && I('request.type') == 'platform') {
|
|
|
// $is_platform = 1; // 平台币充值
|
|
|
// }
|
|
|
//
|
|
|
// //$prefix = ($is_platform == 1) ? 'PF_' : 'SP_';
|
|
|
// //$request['pay_order_number'] = $prefix . date('Ymd') . date('His') . sp_random_string(4);
|
|
|
// $request['game_id'] = I('request.game_id');
|
|
|
// $game_id = $request['game_id'];
|
|
|
// $request['user_id'] = I('request.user_id');
|
|
|
// $user_id = $request['user_id'];
|
|
|
// $request['code'] = I('request.code');
|
|
|
//
|
|
|
// $payInfo = M('pay_info', 'tab_')->where([
|
|
|
// 'user_id' => I('user_id'),
|
|
|
// 'game_id' => I('game_id'),
|
|
|
// 'extend' => I('extend'),
|
|
|
// ])->order('id desc')->find();
|
|
|
// $request['price'] = $payInfo['price'];
|
|
|
//
|
|
|
// $userToken = I('request.user_token');
|
|
|
//
|
|
|
// if (empty($request)) {
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'登录数据不能为空', 'user_token' => $userToken)));exit;
|
|
|
// }
|
|
|
// // 支付验证 是否让支付
|
|
|
// $payCheck = pay_check($request['user_id']);
|
|
|
// if (!$payCheck['code']) {
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>$payCheck['msg'], 'user_token' => $userToken)));exit;
|
|
|
// }
|
|
|
//
|
|
|
// $game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
|
|
|
// if($game['pay_status'] == 0){
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'该游戏暂时无法充值,请联系客服!', 'user_token' => $userToken)));exit;
|
|
|
// }
|
|
|
// if($request['price']*1<=0){
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'充值金额有误', 'user_token' => $userToken)));exit;
|
|
|
// }
|
|
|
//
|
|
|
// C(api('Config/lists'));
|
|
|
//
|
|
|
// if (!$is_platform) {
|
|
|
// $request['extend'] = I('request.extend');
|
|
|
// $extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'game_id'=>$request['game_id']))->find();
|
|
|
// if($extend_data){
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>$request['game_id'].'订单号重复,请关闭支付页面重新支付'.$request['extend'], 'user_token' => $userToken)));exit;
|
|
|
// }
|
|
|
// }
|
|
|
//
|
|
|
// //折扣
|
|
|
// $user = get_user_entity($request['user_id']);
|
|
|
// $discount = $this->get_discount($request['game_id'],$user['promote_id'],$request['user_id']);
|
|
|
// $discount = $discount['discount'];
|
|
|
// $pay_amount = $discount * $request['price'] / 10;
|
|
|
// if ($pay_amount < 0.01) {
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform, 'msg'=>'充值金额有误.'.$pay_amount, 'user_token' => $userToken)));exit;
|
|
|
// }
|
|
|
//
|
|
|
// if (!$is_platform) {
|
|
|
// $this->other_price($request, $request['price']-$pay_amount);
|
|
|
// }
|
|
|
//
|
|
|
// // 平台币充值
|
|
|
// if ($is_platform) {
|
|
|
// $request['code'] = 0;
|
|
|
// $request['user_id'] = I('request.user_id');
|
|
|
// $request['price'] = intval(I('request.price'));
|
|
|
// $request['game_id'] = I('request.game_id');
|
|
|
// $request['pay_way'] = C("PAY_WAY.SQ_SHORTCUT"); // 支付方式(-1绑币 0:平台币,1:支付宝,2:微信(扫码)3微信app 4 威富通 5聚宝云 6竣付通 7苹果支付8金猪支付 9双乾支付-支付宝 10双乾支付-银联 15双乾支付-快捷
|
|
|
// $request['pay_status'] = 0;
|
|
|
// $request['spend_ip'] = get_client_ip();
|
|
|
// $payInfo = M('pay_info', 'tab_')->where([
|
|
|
// 'user_id' => I('user_id'),
|
|
|
// 'game_id' => I('game_id'),
|
|
|
// 'extend' => I('extend'),
|
|
|
// ])->order('id desc')->find();
|
|
|
// $request['pay_order_number'] = $payInfo['order_id'];
|
|
|
//
|
|
|
// if (!$payInfo) {
|
|
|
// return ;
|
|
|
// }
|
|
|
// } else { // 游戏充值
|
|
|
// $request['code'] = 1;
|
|
|
// $payInfo = M('pay_info', 'tab_')->where([
|
|
|
// 'user_id' => I('user_id'),
|
|
|
// 'game_id' => I('game_id'),
|
|
|
// 'extend' => I('extend'),
|
|
|
// ])->order('id desc')->find();
|
|
|
// if ($payInfo) {
|
|
|
// $info = json_decode($payInfo['info'], true);
|
|
|
// $info['deduction_amount'] = $request['deduction_amount'];
|
|
|
// $info['actual_amount'] = $request['actual_amount'];
|
|
|
// $info['discount_amount'] = $request['discount_amount'];
|
|
|
// $info['price'] = $request['price'];
|
|
|
// $infosave = json_encode($info);
|
|
|
// M('pay_info', 'tab_')->where([
|
|
|
// 'id' => $payInfo['id']
|
|
|
// ])->save([
|
|
|
// 'type' => 'sq_shortcut', // 游戏充值
|
|
|
// //'order_id' => $request['pay_order_number'],
|
|
|
// //'price' => $request['actual_amount'] ? $request['actual_amount'] : $request['price'],
|
|
|
// 'info' => $infosave
|
|
|
// ]);
|
|
|
// $info['code'] = $request['code'];
|
|
|
// $info['pay_order_number'] = $request['pay_order_number'];
|
|
|
// $request = $info;
|
|
|
// $request['pay_way'] = C("PAY_WAY.SQ_SHORTCUT");
|
|
|
// $request['pay_status'] = 0;
|
|
|
// $request['spend_ip'] = get_client_ip();
|
|
|
// $request['pay_order_number'] = $payInfo['order_id'];
|
|
|
// }
|
|
|
// }
|
|
|
//
|
|
|
// //0 官方 1双乾
|
|
|
// if (get_shortcut_pay_type() == 0) {
|
|
|
// // 暂时只有双乾
|
|
|
// }elseif(get_shortcut_pay_type() == 1){
|
|
|
// if($request['code']==1){
|
|
|
// $this->add_spend($request,1);
|
|
|
// }else{
|
|
|
// $this->add_deposit($request,1);
|
|
|
// }
|
|
|
// }
|
|
|
//
|
|
|
// $this->assign("pay_amount", $request['actual_amount']?$request['actual_amount']:$request['price']);
|
|
|
// $this->assign("user_id", $request['user_id']);
|
|
|
// $this->assign("game_id", $request['game_id']);
|
|
|
// $this->assign("user_token", $userToken);
|
|
|
// $this->assign("extend", I('extend'));
|
|
|
// $this->assign("order_id", $request['pay_order_number']);
|
|
|
// $this->display();
|
|
|
|
|
|
|
|
|
$this->sq_pay_step1();
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
// 快捷---易宝支付
|
|
|
public function yee_pay($user_id,$game_id) {
|
|
|
|
|
|
$is_platform = 0;
|
|
|
if (I('request.code') == 0 && I('request.type') == 'platform') {
|
|
|
$is_platform = 1; // 平台币充值
|
|
|
}
|
|
|
|
|
|
$request['game_id'] = I('request.game_id');
|
|
|
$game_id = $request['game_id'];
|
|
|
$request['user_id'] = I('request.user_id');
|
|
|
$user_id = $request['user_id'];
|
|
|
$request['code'] = I('request.code');
|
|
|
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => I('request.user_id'),
|
|
|
'game_id' => I('request.game_id'),
|
|
|
'extend' => I('request.extend', ''),
|
|
|
])->order('id desc')->find();
|
|
|
$request['price'] = $payInfo['price'];
|
|
|
|
|
|
$userToken = I('request.user_token');
|
|
|
|
|
|
if (empty($request)) {
|
|
|
echo json_encode(['code'=>0, 'msg'=> '登录数据不能为空']);
|
|
|
exit;
|
|
|
}
|
|
|
// 支付验证 是否让支付
|
|
|
$payCheck = pay_check($request['user_id']);
|
|
|
if (!$payCheck['code']) {
|
|
|
echo json_encode(['code'=>0, 'msg'=> $payCheck['msg']]);
|
|
|
exit;
|
|
|
}
|
|
|
|
|
|
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('id, game_type_id, pay_status')->find();
|
|
|
if($game['pay_status'] == 0){
|
|
|
echo json_encode(['code'=>0, 'msg'=> "该游戏暂时无法充值,请联系客服!"]);
|
|
|
exit;
|
|
|
}
|
|
|
if($request['price']*1<=0){
|
|
|
echo json_encode(['code'=>0, 'msg'=> "充值金额有误"]);
|
|
|
exit;
|
|
|
}
|
|
|
|
|
|
$payLimitConf = new PayLimitConfModel();
|
|
|
// 先判断意向记录支付请求情况
|
|
|
$check = $payLimitConf->check($request['user_id'], $request['price'], $payLimitConf::PAY_TYPE_YEEPAY, $payInfo['order_id']);
|
|
|
// 在更新历史支付请求订单提交情况
|
|
|
$payChannelInterntion = new PayChannelIntentionModel();
|
|
|
$payChannelInterntion->paySubmit($payInfo['order_id']);
|
|
|
if ($check) {
|
|
|
echo json_encode(['code'=>1001,'msg'=> "请求发起失效,编号{$payInfo['order_id']},请选择其他支付方式或联系客服"]);exit;
|
|
|
}
|
|
|
|
|
|
C(api('Config/lists'));
|
|
|
|
|
|
if (!$is_platform) {
|
|
|
$request['extend'] = I('request.extend');
|
|
|
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'game_id'=>$request['game_id']))->find();
|
|
|
if($extend_data){
|
|
|
echo json_encode(['code'=>0, 'msg'=> "订单号重复,请关闭支付页面重新支付."]);
|
|
|
exit;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//折扣
|
|
|
$user = get_user_entity($request['user_id']);
|
|
|
$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;
|
|
|
}
|
|
|
$pay_amount = round($discount * $request['price'] / 10, 2);
|
|
|
if ($pay_amount < 0.01) {
|
|
|
echo json_encode(['code'=>0, 'msg'=> "充值金额有误."]);
|
|
|
exit;
|
|
|
}
|
|
|
|
|
|
if (!$is_platform) {
|
|
|
$this->other_price($request, $discountAmount);
|
|
|
}
|
|
|
|
|
|
// 平台币充值
|
|
|
if ($is_platform) {
|
|
|
$request['code'] = 0;
|
|
|
$request['user_id'] = I('request.user_id');
|
|
|
$request['price'] = intval(I('request.price'));
|
|
|
$request['game_id'] = I('request.game_id');
|
|
|
$request['pay_way'] = C("PAY_WAY.YEEPAY"); // 支付方式(-1绑币 0:平台币,1:支付宝,2:微信(扫码)3微信app 4 威富通 5聚宝云 6竣付通 7苹果支付8金猪支付 9双乾支付-支付宝 10双乾支付-银联 15双乾支付-快捷
|
|
|
$request['pay_status'] = 0;
|
|
|
$request['spend_ip'] = get_client_ip();
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => I('request.user_id'),
|
|
|
'game_id' => I('request.game_id'),
|
|
|
'extend' => I('request.extend', ''),
|
|
|
])->order('id desc')->find();
|
|
|
$request['pay_order_number'] = $payInfo['order_id'];
|
|
|
|
|
|
if (!$payInfo) {
|
|
|
return ;
|
|
|
}
|
|
|
} else { // 游戏充值
|
|
|
$request['code'] = 1;
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => I('request.user_id'),
|
|
|
'game_id' => I('request.game_id'),
|
|
|
'extend' => I('request.extend'),
|
|
|
])->order('id desc')->find();
|
|
|
if ($payInfo) {
|
|
|
$info = json_decode($payInfo['info'], true);
|
|
|
$info['deduction_amount'] = $request['deduction_amount'];
|
|
|
$info['actual_amount'] = $request['actual_amount'];
|
|
|
$info['discount_amount'] = $request['discount_amount'];
|
|
|
$info['price'] = $request['price'];
|
|
|
$info['cost'] = $request['cost'];
|
|
|
$infosave = json_encode($info);
|
|
|
M('pay_info', 'tab_')->where([
|
|
|
'id' => $payInfo['id']
|
|
|
])->save([
|
|
|
'type' => 'yee_shortcut', // 游戏充值
|
|
|
//'order_id' => $request['pay_order_number'],
|
|
|
//'price' => $request['actual_amount'] ? $request['actual_amount'] : $request['price'],
|
|
|
'info' => $infosave
|
|
|
]);
|
|
|
$info['code'] = $request['code'];
|
|
|
$info['pay_order_number'] = $request['pay_order_number'];
|
|
|
$request = $info;
|
|
|
$request['pay_way'] = C("PAY_WAY.YEEPAY");
|
|
|
$request['pay_status'] = 0;
|
|
|
$request['spend_ip'] = get_client_ip();
|
|
|
$request['pay_order_number'] = $payInfo['order_id'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$pay_info = get_payment_config(PayH5Controller::EXPRESS_PAY, $game, I('request.user_id'));
|
|
|
if ($pay_info['code'] != 0) {
|
|
|
echo json_encode(['code'=>1010,'msg'=> $pay_info['msg']]);
|
|
|
exit;
|
|
|
}
|
|
|
$request['main_id'] = $pay_info['data']['main_id'];
|
|
|
$pay_conf = json_decode($pay_info['data']['config'], true);
|
|
|
$pay_info = $pay_info['data'];
|
|
|
$pay_conf['id'] = $pay_info['id'];
|
|
|
$request['merchant_id'] = $pay_info['id'];
|
|
|
$request['merchant_way'] = PayH5Controller::EXPRESS_PAY;
|
|
|
|
|
|
$yeepay = new Yeepay();
|
|
|
$data['appKey'] = $pay_conf['key'];//C('yeepay.key');
|
|
|
$data['privateKey'] = $pay_conf['private_key'];//C('yeepay.private_key');
|
|
|
$data['parentMerchantNo'] = $pay_conf['parent_merchant'];//C('yeepay.parent_merchant');
|
|
|
$data['merchantNo'] = $pay_conf['partner'];//C('yeepay.partner');
|
|
|
$data['orderId'] = $request['pay_order_number'];
|
|
|
$data['orderAmount'] = $request['price'];
|
|
|
$data['notifyUrl'] = C('PAY_DOMAIN')."/callback.php/Notify/yeepay_callback";
|
|
|
$data['goodsParamExt'] = '{"goodsName":"游戏充值","goodsDesc":"充值"}';
|
|
|
$data['userNo'] = $request['user_id'];
|
|
|
$data['userType'] = "USER_ID";
|
|
|
$data['memo'] = "游戏充值-{$request['pay_order_number']}";
|
|
|
if ($is_platform) {
|
|
|
$data['redirectUrl'] = C('PAY_DOMAIN').U('Spend/shortcut_payed',array('status'=> 1, 'orderno' => $payInfo['order_id'], 'user_id'=>I('user_id'),'game_id'=>I('game_id'), 'user_token' => I('request.user_token')));
|
|
|
} else {
|
|
|
$data['redirectUrl'] = C('PAY_DOMAIN').U('Spend/shortcut_notice',array('status'=> 1, 'orderno' => $payInfo['order_id'], 'user_id'=>I('user_id'),'game_id'=>I('game_id'), 'user_token' => I('request.user_token')));
|
|
|
}
|
|
|
|
|
|
$data['paymentParamExt'] = '{}';
|
|
|
$yeeData = $yeepay->yee_pay($data);
|
|
|
// var_dump($data, $yeeData);//die;
|
|
|
if ($yeeData['data']['result']['code'] != 'OPR00000') {
|
|
|
echo json_encode(['code'=>0, 'msg'=> '支付参数有误,请重试'.$yeeData['data']['result']['code']]);
|
|
|
exit;
|
|
|
}
|
|
|
$request['pay_url'] = $yeeData['url'];
|
|
|
if($request['code']==1){
|
|
|
$this->add_spend($request,1);
|
|
|
}else{
|
|
|
$this->add_deposit($request,1);
|
|
|
}
|
|
|
$returl = html_entity_decode($yeeData['url']);
|
|
|
echo json_encode(['code'=>200, 'url'=> $returl]);
|
|
|
return ;
|
|
|
}
|
|
|
|
|
|
public function sq_pay_step1() {
|
|
|
$is_platform = 0;
|
|
|
if (I('request.code') == 0 && I('request.type') == 'platform') {
|
|
|
$is_platform = 1; // 平台币充值
|
|
|
}
|
|
|
|
|
|
//$prefix = ($is_platform == 1) ? 'PF_' : 'SP_';
|
|
|
//$request['pay_order_number'] = $prefix . date('Ymd') . date('His') . sp_random_string(4);
|
|
|
$request['game_id'] = I('request.game_id');
|
|
|
$game_id = $request['game_id'];
|
|
|
$request['user_id'] = I('request.user_id');
|
|
|
$user_id = $request['user_id'];
|
|
|
$request['code'] = I('request.code');
|
|
|
|
|
|
$extend = I('request.extend');
|
|
|
|
|
|
if (!$user_id) {
|
|
|
echo json_encode(['code'=>0,'msg'=>'用户id为空,请退出支付界面重新进入']);exit;
|
|
|
}
|
|
|
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => $user_id,
|
|
|
'game_id' => $game_id,
|
|
|
'extend' => $extend,
|
|
|
])->order('id desc')->find();
|
|
|
|
|
|
$request['price'] = $payInfo['price'];
|
|
|
|
|
|
$userToken = I('request.user_token');
|
|
|
|
|
|
if (empty($request)) {
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'登录数据不能为空', 'user_token' => $userToken)));
|
|
|
echo json_encode(['code'=>0,'msg'=>'登录数据不能为空']);
|
|
|
exit;
|
|
|
}
|
|
|
// 支付验证 是否让支付
|
|
|
$payCheck = pay_check($request['user_id']);
|
|
|
if (!$payCheck['code']) {
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>$payCheck['msg'], 'user_token' => $userToken)));
|
|
|
echo json_encode(['code'=>0,'msg'=>$payCheck['msg']]);
|
|
|
exit;
|
|
|
}
|
|
|
|
|
|
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
|
|
|
if($game['pay_status'] == 0){
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'该游戏暂时无法充值,请联系客服!', 'user_token' => $userToken)));
|
|
|
echo json_encode(['code'=>0,'msg'=>'该游戏暂时无法充值,请联系客服!']);
|
|
|
exit;
|
|
|
}
|
|
|
if($request['price']*1<=0){
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'充值金额有误', 'user_token' => $userToken)));
|
|
|
echo json_encode(['code'=>0,'msg'=>'充值金额有误']);
|
|
|
exit;
|
|
|
}
|
|
|
|
|
|
$payLimitConf = new PayLimitConfModel();
|
|
|
// 先判断意向记录支付请求情况
|
|
|
$check = $payLimitConf->check($request['user_id'], $request['price'], $payLimitConf::PAY_TYPE_SQPAY, $payInfo['order_id']);
|
|
|
// 在更新历史支付请求订单提交情况
|
|
|
$payChannelInterntion = new PayChannelIntentionModel();
|
|
|
$payChannelInterntion->paySubmit($payInfo['order_id']);
|
|
|
if ($check) {
|
|
|
echo json_encode(['code'=>1001,'msg'=> "请求发起失效,编号{$payInfo['order_id']},请选择其他支付方式或联系客服"]);exit;
|
|
|
}
|
|
|
|
|
|
C(api('Config/lists'));
|
|
|
|
|
|
if (!$is_platform) {
|
|
|
$request['extend'] = I('request.extend');
|
|
|
$extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'game_id'=>$request['game_id']))->find();
|
|
|
if($extend_data){
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>$request['game_id'].'订单号重复,请关闭支付页面重新支付'.$request['extend'], 'user_token' => $userToken)));
|
|
|
echo json_encode(['code'=>0,'msg'=>$request['game_id'].'订单号重复,请关闭支付页面重新支付'.$request['extend']]);
|
|
|
exit;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//折扣
|
|
|
$user = get_user_entity($request['user_id']);
|
|
|
$discount = $this->get_discount($request['game_id'],$user['promote_id'],$request['user_id']);
|
|
|
$discount = $discount['discount'];
|
|
|
$pay_amount = $discount * $request['price'] / 10;
|
|
|
if ($pay_amount < 0.01) {
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform, 'msg'=>'充值金额有误.'.$pay_amount, 'user_token' => $userToken)));
|
|
|
echo json_encode(['code'=>0,'msg'=>'充值金额有误.'.$pay_amount]);
|
|
|
exit;
|
|
|
}
|
|
|
|
|
|
if (!$is_platform) {
|
|
|
$this->other_price($request, $request['price']-$pay_amount);
|
|
|
}
|
|
|
|
|
|
// 平台币充值
|
|
|
if ($is_platform) {
|
|
|
$request['code'] = 0;
|
|
|
$request['user_id'] = I('request.user_id');
|
|
|
$request['price'] = intval(I('request.price'));
|
|
|
$request['game_id'] = I('request.game_id');
|
|
|
$request['pay_way'] = C("PAY_WAY.SQ_SHORTCUT"); // 支付方式(-1绑币 0:平台币,1:支付宝,2:微信(扫码)3微信app 4 威富通 5聚宝云 6竣付通 7苹果支付8金猪支付 9双乾支付-支付宝 10双乾支付-银联 15双乾支付-快捷
|
|
|
$request['pay_status'] = 0;
|
|
|
$request['spend_ip'] = get_client_ip();
|
|
|
|
|
|
// $payInfo['info'] = json_decode($payInfo['info'],true);
|
|
|
$request['goods_info'] = '平台币充值';
|
|
|
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => I('user_id'),
|
|
|
'game_id' => I('game_id'),
|
|
|
'extend' => I('extend'),
|
|
|
])->order('id desc')->find();
|
|
|
$request['pay_order_number'] = $payInfo['order_id'];
|
|
|
|
|
|
if (!$payInfo) {
|
|
|
return ;
|
|
|
}
|
|
|
} else { // 游戏充值
|
|
|
$request['code'] = 1;
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => I('user_id'),
|
|
|
'game_id' => I('game_id'),
|
|
|
'extend' => I('extend'),
|
|
|
])->order('id desc')->find();
|
|
|
if ($payInfo) {
|
|
|
$info = json_decode($payInfo['info'], true);
|
|
|
$info['deduction_amount'] = $request['deduction_amount'];
|
|
|
$info['actual_amount'] = $request['actual_amount'];
|
|
|
$info['discount_amount'] = $request['discount_amount'];
|
|
|
$info['price'] = $request['price'];
|
|
|
$infosave = json_encode($info);
|
|
|
|
|
|
$info['code'] = $request['code'];
|
|
|
$info['pay_order_number'] = $request['pay_order_number'];
|
|
|
$request = $info;
|
|
|
$request['pay_way'] = C("PAY_WAY.SQ_SHORTCUT");
|
|
|
$request['pay_status'] = 0;
|
|
|
$request['spend_ip'] = get_client_ip();
|
|
|
$request['pay_order_number'] = $payInfo['order_id'];
|
|
|
$payInfo['info'] = json_decode($payInfo['info'],true);
|
|
|
$request['goods_info'] = $payInfo['info']['game_name'].$payInfo['info']['title'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if ($_REQUEST['sign']) {
|
|
|
|
|
|
echo json_encode(['code'=>200,'msg'=>'success']);
|
|
|
exit;
|
|
|
|
|
|
}
|
|
|
|
|
|
//0 官方 1双乾
|
|
|
if (get_shortcut_pay_type() == 0) {
|
|
|
// 暂时只有双乾
|
|
|
}elseif(get_shortcut_pay_type() == 1){
|
|
|
if($request['code']==1){
|
|
|
$this->add_spend($request,1);
|
|
|
}else{
|
|
|
$this->add_deposit($request,1);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$this->assign("type", $is_platform ? "platform" : "");
|
|
|
$this->assign("code", $request['code']);
|
|
|
$this->assign("pay_amount", $request['actual_amount']?$request['actual_amount']:$request['price']);
|
|
|
$this->assign("user_id", $request['user_id']);
|
|
|
$this->assign("game_id", $request['game_id']);
|
|
|
$this->assign("user_token", $userToken);
|
|
|
$this->assign("extend", I('extend'));
|
|
|
$this->assign("order_id", $request['pay_order_number']);
|
|
|
$this->assign('goods_info',$request['goods_info']);
|
|
|
|
|
|
$this->display('yee_step1');
|
|
|
|
|
|
}
|
|
|
|
|
|
public function sq_pay_step2() {
|
|
|
$is_platform = 0;
|
|
|
$code = I('request.code', 0);
|
|
|
if ($code == 0 && I('request.type') == 'platform') {
|
|
|
$is_platform = 1; // 平台币充值
|
|
|
}
|
|
|
$userId = I('request.user_id');
|
|
|
$gameId = I('request.game_id');
|
|
|
$extend = I('request.extend', '');
|
|
|
|
|
|
//$prefix = ($is_platform == 1) ? 'PF_' : 'SP_';
|
|
|
//$request['pay_order_number'] = $prefix . date('Ymd') . date('His') . sp_random_string(4);
|
|
|
$request['game_id'] = $gameId;
|
|
|
$game_id = $request['game_id'];
|
|
|
$request['user_id'] = $userId;
|
|
|
$user_id = $request['user_id'];
|
|
|
$request['code'] = I('request.code');
|
|
|
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => $userId,
|
|
|
'game_id' => $gameId,
|
|
|
'extend' => $extend,
|
|
|
])->order('id desc')->find();
|
|
|
|
|
|
$request['price'] = $payInfo['price'];
|
|
|
|
|
|
$userToken = I('request.user_token');
|
|
|
|
|
|
if (empty($request)) {
|
|
|
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'登录数据不能为空', 'user_token' => $userToken)));exit;
|
|
|
}
|
|
|
// 支付验证 是否让支付
|
|
|
$payCheck = pay_check($request['user_id']);
|
|
|
if (!$payCheck['code']) {
|
|
|
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>$payCheck['msg'], 'user_token' => $userToken)));exit;
|
|
|
}
|
|
|
|
|
|
$game = M('Game','tab_')->where(['id'=>$request['game_id']])->field('pay_status')->find();
|
|
|
if($game['pay_status'] == 0){
|
|
|
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'该游戏暂时无法充值,请联系客服!', 'user_token' => $userToken)));exit;
|
|
|
}
|
|
|
if($request['price']*1<=0){
|
|
|
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>'充值金额有误', 'user_token' => $userToken)));exit;
|
|
|
}
|
|
|
|
|
|
C(api('Config/lists'));
|
|
|
|
|
|
// if (!$is_platform) {
|
|
|
// $request['extend'] = I('request.extend');
|
|
|
// $extend_data = M('spend','tab_')->where(array('extend'=>$request['extend'],'game_id'=>$request['game_id']))->find();
|
|
|
// if($extend_data){
|
|
|
// redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform,'msg'=>$request['game_id'].'订单号重复,请关闭支付页面重新支付'.$request['extend'], 'user_token' => $userToken)));exit;
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
//折扣
|
|
|
$user = get_user_entity($request['user_id']);
|
|
|
$discount = $this->get_discount($request['game_id'],$user['promote_id'],$request['user_id']);
|
|
|
$discount = $discount['discount'];
|
|
|
$pay_amount = $discount * $request['price'] / 10;
|
|
|
if ($pay_amount < 0.01) {
|
|
|
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'is_platform'=> $is_platform, 'msg'=>'充值金额有误.'.$pay_amount, 'user_token' => $userToken)));exit;
|
|
|
}
|
|
|
|
|
|
if (!$is_platform) {
|
|
|
$this->other_price($request, $request['price']-$pay_amount);
|
|
|
}
|
|
|
|
|
|
// 平台币充值
|
|
|
if ($is_platform) {
|
|
|
$request['code'] = 0;
|
|
|
$request['user_id'] = $user_id;
|
|
|
$request['game_id'] = $game_id;
|
|
|
$request['pay_way'] = C("PAY_WAY.SQ_SHORTCUT"); // 支付方式(-1绑币 0:平台币,1:支付宝,2:微信(扫码)3微信app 4 威富通 5聚宝云 6竣付通 7苹果支付8金猪支付 9双乾支付-支付宝 10双乾支付-银联 15双乾支付-快捷
|
|
|
$request['pay_status'] = 0;
|
|
|
$request['spend_ip'] = get_client_ip();
|
|
|
|
|
|
// $payInfo['info'] = json_decode($payInfo['info'],true);
|
|
|
$request['goods_info'] = "平台币充值";
|
|
|
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => $user_id,
|
|
|
'game_id' => $game_id,
|
|
|
'extend' => $extend,
|
|
|
])->order('id desc')->find();
|
|
|
$request['pay_order_number'] = $payInfo['order_id'];
|
|
|
|
|
|
if (!$payInfo) {
|
|
|
return ;
|
|
|
}
|
|
|
} else { // 游戏充值
|
|
|
$request['code'] = 1;
|
|
|
$payInfo = M('pay_info', 'tab_')->where([
|
|
|
'user_id' => $user_id,
|
|
|
'game_id' => $game_id,
|
|
|
'extend' => $extend,
|
|
|
])->order('id desc')->find();
|
|
|
if ($payInfo) {
|
|
|
$info = json_decode($payInfo['info'], true);
|
|
|
$info['deduction_amount'] = $request['deduction_amount'];
|
|
|
$info['actual_amount'] = $request['actual_amount'];
|
|
|
$info['discount_amount'] = $request['discount_amount'];
|
|
|
$info['price'] = $request['price'];
|
|
|
$infosave = json_encode($info);
|
|
|
M('pay_info', 'tab_')->where([
|
|
|
'id' => $payInfo['id']
|
|
|
])->save([
|
|
|
'type' => 'sq_shortcut', // 游戏充值
|
|
|
//'order_id' => $request['pay_order_number'],
|
|
|
//'price' => $request['actual_amount'] ? $request['actual_amount'] : $request['price'],
|
|
|
'info' => $infosave
|
|
|
]);
|
|
|
$info['code'] = $request['code'];
|
|
|
$info['pay_order_number'] = $request['pay_order_number'];
|
|
|
$request = $info;
|
|
|
$request['pay_way'] = C("PAY_WAY.SQ_SHORTCUT");
|
|
|
$request['pay_status'] = 0;
|
|
|
$request['spend_ip'] = get_client_ip();
|
|
|
$request['pay_order_number'] = $payInfo['order_id'];
|
|
|
$payInfo['info'] = json_decode($payInfo['info'],true);
|
|
|
$request['goods_info'] = $payInfo['info']['game_name'].$payInfo['info']['body'];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//0 官方 1双乾
|
|
|
// if (get_shortcut_pay_type() == 0) {
|
|
|
// // 暂时只有双乾
|
|
|
// }elseif(get_shortcut_pay_type() == 1){
|
|
|
// if($request['code']==1){
|
|
|
// $this->add_spend($request,1);
|
|
|
// }else{
|
|
|
// $this->add_deposit($request,1);
|
|
|
// }
|
|
|
// }
|
|
|
// var_dump($request['goods_info']);die();
|
|
|
$this->assign("pay_amount", $request['actual_amount']?$request['actual_amount']:$request['price']);
|
|
|
$this->assign("user_id", $request['user_id']);
|
|
|
$this->assign("game_id", $request['game_id']);
|
|
|
$this->assign("user_token", $userToken);
|
|
|
$this->assign("extend", $extend);
|
|
|
$this->assign("order_id", $request['pay_order_number']);
|
|
|
$this->assign('goods_info',$request['goods_info']);
|
|
|
|
|
|
$bank_info = $this->checkBankCard();
|
|
|
|
|
|
$this->assign('bank_info',$bank_info);
|
|
|
$this->assign('cardNo',I('request.card_no'));
|
|
|
// var_dump($request);
|
|
|
$this->display('yee_step2');
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
//返回银行卡信息
|
|
|
public function checkBankCard() {
|
|
|
|
|
|
$card_no = I('card_no');
|
|
|
// var_dump(preg_match('/^([1-9]{1})\d{10,19}$/', $card_no));die();
|
|
|
|
|
|
if (!preg_match('/^([1-9]{1})\d{10,19}$/', $card_no)) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
$card_list = include(APP_PATH . "/Sdk/Conf/bankList.php");
|
|
|
|
|
|
$bank_info = '';
|
|
|
|
|
|
for($i = 3; $i <= 9; $i++) {
|
|
|
|
|
|
$back_no = substr($card_no,0,$i);
|
|
|
|
|
|
if ($card_list[$back_no]) {
|
|
|
$bank_info = $card_list[$back_no];
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$info['bank_info'] = substr($bank_info,0,strpos($bank_info,"-"));
|
|
|
$info['card_info'] = substr($bank_info,strripos($bank_info,"-")+1);
|
|
|
$info['end_num'] = substr($card_no,strlen($card_no)-4,strlen($card_no));
|
|
|
$info['image'] = $this->getBankImage($info['bank_info']);
|
|
|
|
|
|
return $info;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
//返回银行图标
|
|
|
public function getBankImage($bankName) {
|
|
|
|
|
|
$image = '';
|
|
|
|
|
|
if ($bankName == '工商银行') {
|
|
|
$image = 'bank1.png';
|
|
|
} else if($bankName == '农业银行') {
|
|
|
$image = 'bank2.png';
|
|
|
} else if($bankName == '中国银行') {
|
|
|
$image = 'bank3.png';
|
|
|
} else if($bankName == '建设银行') {
|
|
|
$image = 'bank4.png';
|
|
|
} else if($bankName == '招商银行') {
|
|
|
$image = 'bank5.png';
|
|
|
} else if($bankName == '交通银行') {
|
|
|
$image = 'bank6.png';
|
|
|
} else if($bankName == '中信银行') {
|
|
|
$image = 'bank7.png';
|
|
|
} else if($bankName == '光大银行') {
|
|
|
$image = 'bank8.png';
|
|
|
} else if($bankName == '兴业银行') {
|
|
|
$image = 'bank9.png';
|
|
|
} else if($bankName == '邮政银行') {
|
|
|
$image = 'bank10.png';
|
|
|
} else if($bankName == '平安银行') {
|
|
|
$image = 'bank11.png';
|
|
|
} else if($bankName == '浦发银行') {
|
|
|
$image = 'bank12.png';
|
|
|
} else if($bankName == '广发银行') {
|
|
|
$image = 'bank13.png';
|
|
|
} else if($bankName == '华夏银行') {
|
|
|
$image = 'bank14.png';
|
|
|
} else if($bankName == '民生银行') {
|
|
|
$image = 'bank15.png';
|
|
|
} else if($bankName == '北京银行') {
|
|
|
$image = 'bank16.png';
|
|
|
} else if($bankName == '上海银行') {
|
|
|
$image = 'bank17.png';
|
|
|
} else if($bankName == '恒丰银行') {
|
|
|
$image = 'bank18.png';
|
|
|
} else if($bankName == '渤海银行') {
|
|
|
$image = 'bank19.png';
|
|
|
} else if($bankName == '浙商银行') {
|
|
|
$image = 'bank20.png';
|
|
|
}
|
|
|
|
|
|
return $image;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|