diff --git a/Application/Sdk/Controller/WapPayController.class.php b/Application/Sdk/Controller/WapPayController.class.php
index 63fe0860e..129e83a58 100644
--- a/Application/Sdk/Controller/WapPayController.class.php
+++ b/Application/Sdk/Controller/WapPayController.class.php
@@ -53,8 +53,39 @@ class WapPayController extends BaseController{
->setDiscount($discount)
->setSmallId($param['small_user_id'])
->setSmallAccount(get_user_account_by_id($param['small_user_id']));
- return $pay->buildRequestForm($vo);
+ return $pay->buildRequestForm($vo, 0, $param);
}
+
+ /**
+ * 优先扣除绑币 和平台 处理
+ * $request $discountAmount 折扣价格
+ */
+ public function other_price(&$request, $discountAmount=0) {
+ // 优先扣除绑定币平台币
+ $deductionAmount = 0;
+ $user_id = $request['user_id'];
+ $game_id = $request['game_id'];
+ $balance = M ('user', 'tab_')->where (array(
+ 'id' => $user_id
+ ))->getField('balance');
+ $bind_balance = M('user_play', 'tab_')->where(array(
+ 'user_id' => $user_id,
+ 'game_id' => $game_id
+ ))->getField('bind_balance');
+ // 够抵扣的情况 不走这个接口
+ $deductionAmount = $bind_balance + $balance;
+ if ($deductionAmount > $request['price']) {
+ $this->set_message(1089,"fail",$deductionAmount."平台币足够,请关闭支付页面重新支付".$pay_amount);
+ }
+ // 实际支付金额 = 支付总金额 - 折扣抵扣价格 - 绑币和平台币抵扣金额
+ $request['actual_amount'] = round($request['price'] - $discountAmount - $deductionAmount, 2).'';
+ $request['discount_amount'] = round($discountAmount, 2).'';
+ $request['deduction_amount'] = round($deductionAmount, 2).'';
+ $request['price'] = round($request['actual_amount'], 2).'';
+ return $request;
+ //$this->set_message(1089,"fail",$request['price']."新支付".$pay_amount);
+ }
+
/**
*支付宝移动支付
*/
@@ -83,28 +114,9 @@ class WapPayController extends BaseController{
$prefix = $request['code'] == 1 ? "SP_" : "PF_";
$out_trade_no = $prefix.date('Ymd').date('His').sp_random_string(4);
- // 优先扣除绑定币平台币
- $deductionAmount = 0;
- $user_id = $request['user_id'];
- $game_id = $request['game_id'];
- $balance = M ('user', 'tab_')->where (array(
- 'id' => $user_id
- ))->getField('balance');
- $bind_balance = M('user_play', 'tab_')->where(array(
- 'user_id' => $user_id,
- 'game_id' => $game_id
- ))->getField('bind_balance');
- // 够抵扣的情况 不走这个接口
- $deductionAmount = $bind_balance + $balance;
- if ($deductionAmount > $pay_amount) {
- $this->set_message(1089,"fail","平台币足够,请关闭支付页面重新支付");
- }
- // 实际支付金额 = 支付总金额 - 折扣抵扣价格 - 绑币和平台币抵扣金额
- $request['actual_amount'] = $request['price'] - $discountAmount - $deductionAmount;
- $pay_amount = $request['actual_amount'];
- $request['discount_amount'] = $discountAmount;
- $request['deduction_amount'] = $deductionAmount;
-
+ $request = $this->other_price($request);
+Log::write(serialize($request), Log::DEBUG);
+
if(get_zfb_type()==0){
$game_set_data = get_game_set_info($request['game_id']);
@@ -254,9 +266,10 @@ class WapPayController extends BaseController{
if ($payInfo['status'] == 'payed') {
$this->error("订单已支付");
}
+
// 发起支付
if (IS_POST && $param['smsCode']) {
- echo "发起支付==》".time()."
";
+ //echo "发起支付==》".time()."
";
$rsp = $sqpay->shortcut_pay(array(
'merNo' => C('sqpay.partner'),
'merOrderNo' => $payInfo['order_id'],
@@ -270,7 +283,7 @@ class WapPayController extends BaseController{
'smsCode' => $param['smsCode'],
'secret' => C('sqpay.key'),
));
- echo "发起支付==》".time()."
";
+ //echo "发起支付==》".time()."
";
sleep(5);
if ($rsp['responseCode'] == '88') {
redirect(U('Spend/pay_success',array('orderno' => $payInfo['order_id'], 'user_id'=>$param['user_id'],'game_id'=>$param['game_id'])));exit;
@@ -283,7 +296,7 @@ class WapPayController extends BaseController{
// 发送短信
if (IS_POST && !isset($param['smsCode'])) {
// 查看是否签约
- echo "查看是否签约==》".time()."
";
+ //echo "查看是否签约==》".time()."
";
$rcs = $sqpay->contract_status(array(
'merNo' => C('sqpay.partner'),
'custName' => $param['custName'],
@@ -293,7 +306,7 @@ class WapPayController extends BaseController{
'payAmount' => $payInfo['price'],
'secret' => C('sqpay.key'),
));
- echo "查看是否签约==》".time()."
";
+ //echo "查看是否签约==》".time()."
";
if ($rcs['respCode'] == 4) {
$this->error($rcs['respMessage'], '', true);
pp($rcs);
@@ -301,7 +314,7 @@ class WapPayController extends BaseController{
}
// 调用认证 签约
if ($rcs['respCode'] == 1 || $rcs['respCode'] == 2 || $rcs['respCode'] == 3) {
- echo "调用认证 签约==》".time()."
";
+ //echo "调用认证 签约==》".time()."
";
$rsign = $sqpay->sign_contract(array(
'merNo' => C('sqpay.partner'),
'custName' => $param['custName'],
@@ -313,7 +326,7 @@ class WapPayController extends BaseController{
'custType' => '01',
'secret' => C('sqpay.key'),
));
- echo "调用认证 签约==》".time()."
";
+ //echo "调用认证 签约==》".time()."
";
if ($rsign['respCode'] == 'success') { // 认证成功 接着签约
$rauth = $sqpay->sign_contract(array(
'merNo' => C('sqpay.partner'),
@@ -337,7 +350,7 @@ class WapPayController extends BaseController{
}
// 无需签约 发送短信
if ($rcs['respCode'] == 0 || $rcs['respCode'] == 10) {
- echo "发送短信==》".time()."
";
+ //echo "发送短信==》".time()."
";
$ret = $sqpay->protocol_pay_send_sms(array(
'merNo' => C('sqpay.partner'),
'custName' => $param['custName'],
@@ -350,7 +363,7 @@ class WapPayController extends BaseController{
'NotifyURL' => "http://api.wmtxkj.com"."/callback.php?Notify/sq_callback",
'purpose' => 'aaaa'
));
- echo "发送短信==》".time()."
";
+ //echo "发送短信==》".time()."
";
if ($ret['resFlag'] == 'success') {
M('pay_info', 'tab_')->where(array(
'id' => $payInfo['id'],
@@ -470,12 +483,12 @@ class WapPayController extends BaseController{
$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);
- /* $request['user_id'] = 232;
+ $request['user_id'] = 232;
$request['game_id'] = 78;
$request['price'] = 0.02;
$request['code'] = 1;
- $request['extend'] = "SP_52299233958";
- $request['pay_order_number'] = "SP_2452299233958"; */
+ $request['extend'] = "SP_522992339581";
+ $request['pay_order_number'] = "SP_24522992339581";
if (empty($request)) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'登录数据不能为空')));exit;
@@ -511,6 +524,8 @@ class WapPayController extends BaseController{
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'充值金额有误.'.$pay_amount)));exit;
}
+ $this->other_price($request, $request['price']-$pay_amount);
+
//0 官方 1双乾
if (get_shortcut_pay_type() == 0) {
// 暂时只有双乾
@@ -520,23 +535,23 @@ class WapPayController extends BaseController{
'user_id' => $request['user_id'],
'game_id' => $request['game_id'],
'order_id' => $request['pay_order_number'],
- 'price' => $request['price'],
+ 'price' => $request['actual_amount'],
'type' => 'sq_shortcut',
'info' => json_encode($request),
'status' => 'normal',
'create_time' => time(),
));
- if($request['code']==1){
+ /* if($request['code']==1){
$this->add_spend($request,1);
}else{
$this->add_deposit($request);
- }
+ } */
}
- $this->assign("pay_amount", $pay_amount);
+ $this->assign("pay_amount", $request['actual_amount']);
$this->assign("user_id", $request['user_id']);
$this->assign("game_id", $request['game_id']);
- $this->display();
+ $this->display("index");
}
/**
@@ -583,26 +598,8 @@ class WapPayController extends BaseController{
if(!empty($request['scheme'])) {
file_put_contents("./Application/Sdk/Scheme/".$request['game_id'].".txt",$request['scheme']);
}
- $deductionAmount = 0;
- $user_id = $request['user_id'];
- $game_id = $request['game_id'];
- $balance = M ('user', 'tab_')->where (array(
- 'id' => $user_id
- ))->getField('balance');
- $bind_balance = M('user_play', 'tab_')->where(array(
- 'user_id' => $user_id,
- 'game_id' => $game_id
- ))->getField('bind_balance');
- // 够抵扣的情况 不走这个接口
- $deductionAmount = $bind_balance + $balance;
- if ($deductionAmount > $pay_amount) {
- $this->set_message(1089,"fail","平台币足够,请关闭支付页面重新支付");
- }
- // 实际支付金额 = 支付总金额 - 折扣抵扣价格 - 绑币和平台币抵扣金额
- $request['actual_amount'] = $request['price'] - $discountAmount - $deductionAmount;
- $pay_amount = $request['actual_amount'];
- $request['discount_amount'] = $discountAmount;
- $request['deduction_amount'] = $deductionAmount;
+ // 绑币平台币优先处理
+ $this->other_price($request, $discountAmount);
$game_set_data = get_game_set_info($request['game_id']);
//$request['game_name']
@@ -815,8 +812,8 @@ class WapPayController extends BaseController{
* @return [type] [description]
*/
public function jft_wap(){
- #获取SDK上POST方式传过来的数据 然后base64解密 然后将json字符串转化成数组
- $request = json_decode(base64_decode(file_get_contents("php://input")), true);
+ #获取SDK上POST方式传过来的数据 然后base64解密 然后将json字符串转化成数组
+ $request = json_decode(base64_decode(file_get_contents("php://input")), true);
if (empty($request)) {
$this->set_message(1001, "fail", "登录数据不能为空");
}
@@ -824,27 +821,29 @@ class WapPayController extends BaseController{
if($request['price']<0){
$this->set_message(1011,"fail","充值金额有误");
}
- $table = $request['code'] == 1 ? "spend" : "deposit";
- $prefix = $request['code'] == 1 ? "SP_" : "PF_";
- $request['pay_order_number'] = $prefix . date('Ymd') . date('His') . sp_random_string(4);
- $request['pay_way'] = 3;
- $request['pay_status'] = 0;
- $request['spend_ip'] = get_client_ip();
- //折扣
- $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;
+ $table = $request['code'] == 1 ? "spend" : "deposit";
+ $prefix = $request['code'] == 1 ? "SP_" : "PF_";
+ $request['pay_order_number'] = $prefix . date('Ymd') . date('His') . sp_random_string(4);
+ $request['pay_way'] = 3;
+ $request['pay_status'] = 0;
+ $request['spend_ip'] = get_client_ip();
+ //折扣
+ $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;
+ // 绑币平台币处理
+ $this->other_price($request, $request['price']-$pay_amount);
- if($request['code']==1){
- $this->add_spend($request);
- }else{
- $this->add_deposit($request);
- }
- file_put_contents("./Application/Sdk/OrderNo/".$request['user_id']."-".$request['game_id'].".txt",think_encrypt(json_encode($request)));
+ if($request['code']==1){
+ $this->add_spend($request);
+ }else{
+ $this->add_deposit($request);
+ }
+ file_put_contents("./Application/Sdk/OrderNo/".$request['user_id']."-".$request['game_id'].".txt",think_encrypt(json_encode($request)));
- $sss="http://".$_SERVER['HTTP_HOST'].'/sdk.php/Spend/pay_way/user_id/'.$request['user_id'].'/game_id/'.$request['game_id'].'/type/3';
- redirect($sss);
+ $sss="http://".$_SERVER['HTTP_HOST'].'/sdk.php/Spend/pay_way/user_id/'.$request['user_id'].'/game_id/'.$request['game_id'].'/type/3';
+ redirect($sss);
}
/**
@@ -897,6 +896,7 @@ class WapPayController extends BaseController{
if ($pay_amount < 0.01) {
redirect(U('Spend/notice',array('user_id'=>$user_id,'game_id'=>$game_id,'msg'=>'充值金额有误.'.$pay_amount)));exit;
}
+ $this->other_price($request, $request['price']-$pay_amount);
//0 官方 1双乾
if (get_union_pay_type() == 0) {
diff --git a/Application/Sdk/View/default/WapPay/index.html b/Application/Sdk/View/default/WapPay/index.html
new file mode 100644
index 000000000..63d13a9fa
--- /dev/null
+++ b/Application/Sdk/View/default/WapPay/index.html
@@ -0,0 +1,207 @@
+
+
+