diff --git a/Application/Callback/Controller/NotifyController.class.php b/Application/Callback/Controller/NotifyController.class.php index e0612e4d9..3f6688633 100644 --- a/Application/Callback/Controller/NotifyController.class.php +++ b/Application/Callback/Controller/NotifyController.class.php @@ -64,7 +64,7 @@ class NotifyController extends BaseController //获取回调订单信息 $order_info = $pay->getInfo(); -Log::write(serialize($order_info), Log::DEBUG); + Log::write(serialize($order_info), Log::DEBUG); if ($order_info['status']) { $pay_where = substr($order_info['out_trade_no'], 0, 2); @@ -92,21 +92,21 @@ Log::write(serialize($order_info), Log::DEBUG); case 'TB': $result = $this->set_balance($order_info); - $to_balance = 'http://' . $_SERVER['HTTP_HOST'] . '/index.php/Home/PromoteCoin/lists'; + $to_balance = 'http://' . $_SERVER['HTTP_HOST'] . '/index.php/Home/PromoteCoin/lists'; break; case 'BR': - $result = $this->set_bind_recharge($order_info); - break; - case 'SI': - $result = $this->set_order($order_info); - break; - case 'SS': // 超级签 - $this->supersign_pay_notify(array( - 'trade_id' => $order_info['trade_no'], - 'order_id' => $order_info['out_trade_no'] - )); - break; + $result = $this->set_bind_recharge($order_info); + break; + case 'SI': + $result = $this->set_order($order_info); + break; + case 'SS': // 超级签 + $this->supersign_pay_notify(array( + 'trade_id' => $order_info['trade_no'], + 'order_id' => $order_info['out_trade_no'] + )); + break; default: exit('accident order data'); @@ -120,11 +120,11 @@ Log::write(serialize($order_info), Log::DEBUG); if (I('get.method') == "return") { switch (I('get.model')) { case 'Home': - if($to_balance) { - redirect($to_balance); - } else { - redirect('http://' . $_SERVER['HTTP_HOST'] . '/index.php/Home/Charge/agent_pay_list'); - } + if($to_balance) { + redirect($to_balance); + } else { + redirect('http://' . $_SERVER['HTTP_HOST'] . '/index.php/Home/Charge/agent_pay_list'); + } break; case 'Media': redirect('http://' . $_SERVER['HTTP_HOST'] . '/media.php/Member/users_index'); @@ -136,7 +136,7 @@ Log::write(serialize($order_info), Log::DEBUG); redirect('http://' . $_SERVER['HTTP_HOST'] . '/media.php/Member/users_index'); break; } - + } else { $pay->notifySuccess(); } @@ -162,8 +162,8 @@ Log::write(serialize($order_info), Log::DEBUG); /** - *微信回调 - */ + *微信回调 + */ public function swiftpass_callback(){ $xml = file_get_contents('php://input'); $Swiftpass=new Swiftpass(C('weixin_gf.partner'),C('weixin_gf.key')); @@ -183,13 +183,13 @@ Log::write(serialize($order_info), Log::DEBUG); $result = $this->set_deposit($order_info); break; case 'AG': - $result = $this->set_agent($order_info); + $result = $this->set_agent($order_info); break; - case 'TB': - $result = $this->set_balance($order_info); + case 'TB': + $result = $this->set_balance($order_info); break; - case 'SI': - $result = $this->set_order($order_info); + case 'SI': + $result = $this->set_order($order_info); break; default: exit('accident order data'); @@ -197,7 +197,7 @@ Log::write(serialize($order_info), Log::DEBUG); } echo 'success'; exit(); - + }else{ echo 'failure'; exit(); @@ -208,7 +208,32 @@ Log::write(serialize($order_info), Log::DEBUG); } - + + /** + *超级签微信充值回调 + */ + public function supersign_wxpay_notify(){ + $xml = file_get_contents('php://input'); + $Swiftpass=new Swiftpass(C('wei_xin.partner'), C('wei_xin.key')); + $Swiftpass->resHandler->setContent($xml); + $Swiftpass->resHandler->setKey( C('wei_xin.key')); + if($Swiftpass->resHandler->isTenpaySign()){ + if($Swiftpass->resHandler->getParameter('status') == 0 && $Swiftpass->resHandler->getParameter('result_code') == 0){ + $trade_no=$Swiftpass->resHandler->getParameter('transaction_id'); + $out_trade_no = $Swiftpass->resHandler->getParameter('out_trade_no'); + $this->supersign_pay_notify(array( + 'trade_id' => $trade_no, + 'order_id' => $out_trade_no + )); + echo 'success'; + }else{ + echo 'failure'; + } + }else{ + echo 'failure'; + } + + } /** * 支付宝退款回调 @@ -232,7 +257,7 @@ Log::write(serialize($order_info), Log::DEBUG); $date['tui_time'] = time(); M('refund_record', 'tab_')->where($map)->save($date); file_put_contents(dirname(__FILE__)."/as.txt", json_encode(M('refund_record','tab_')->getlastsql())); - + $map_spend['pay_order_number'] = get_refund_pay_order_number($batch_no); $spen_date['sub_status']=1; $spen_date['settle_check']= 1; @@ -381,92 +406,92 @@ Log::write(serialize($order_info), Log::DEBUG); exit; } @$p7_paychannelnum=$_POST['p7_paychannelnum']; - if(empty($p7_paychannelnum)) - { - $p7_paychannelnum=""; - } + if(empty($p7_paychannelnum)) + { + $p7_paychannelnum=""; + } $signmsg=C('jft.key');//支付秘钥 @$md5info_paramet = $_REQUEST['p1_usercode']."&".$_REQUEST['p2_order']."&".$_REQUEST['p3_money']."&".$_REQUEST['p4_status']."&".$_REQUEST['p5_jtpayorder']."&".$_REQUEST['p6_paymethod']."&".$_REQUEST['p7_paychannelnum']."&".$_REQUEST['p8_charset']."&".$_REQUEST['p9_signtype']."&".$signmsg; $md5info_tem= strtoupper(md5($md5info_paramet)); $requestsign=$_REQUEST['p10_sign']; - if ($md5info_tem == $_REQUEST['p10_sign']) - { - $order_info['trade_no'] = $_REQUEST['p5_jtpayorder']; - $order_info['out_trade_no'] = $_REQUEST['p2_order']; - $pay_where = substr($_REQUEST['p2_order'], 0, 2); - switch ($pay_where) { - case 'SP': - $result = $this->set_spend($order_info); - break; - case 'PF': - $result = $this->set_deposit($order_info); - break; - case 'AG': - $result = $this->set_agent($order_info); - break; - default: - exit('accident order data'); - break; - } + if ($md5info_tem == $_REQUEST['p10_sign']) + { + $order_info['trade_no'] = $_REQUEST['p5_jtpayorder']; + $order_info['out_trade_no'] = $_REQUEST['p2_order']; + $pay_where = substr($_REQUEST['p2_order'], 0, 2); + switch ($pay_where) { + case 'SP': + $result = $this->set_spend($order_info); + break; + case 'PF': + $result = $this->set_deposit($order_info); + break; + case 'AG': + $result = $this->set_agent($order_info); + break; + default: + exit('accident order data'); + break; + } - //改变订单状态,及其他业务修改 - echo "success"; - //接收通知后必须输出”success“代表接收成功。 - }else{ - $this->record_logs("竣付通验证失败!!"); - } + //改变订单状态,及其他业务修改 + echo "success"; + //接收通知后必须输出”success“代表接收成功。 + }else{ + $this->record_logs("竣付通验证失败!!"); + } } - + /** * 双乾回调 * @return [type] [description] */ public function sq_callback(){ - $merNo = I('MerNo'); - $amount = I('Amount'); - $billNo = I('BillNo'); // 平台订单号 - $orderNo = I('Orderno'); // 支付平台订单号 - $succed = I('Succeed'); - $result = I('Result'); - $bankOrderNo = I('bankOrderNo'); - $merRemark = I('MerRemark'); - $md5Info = I('MD5info'); - - Log::write(serialize(I()), Log::DEBUG); - + $merNo = I('MerNo'); + $amount = I('Amount'); + $billNo = I('BillNo'); // 平台订单号 + $orderNo = I('Orderno'); // 支付平台订单号 + $succed = I('Succeed'); + $result = I('Result'); + $bankOrderNo = I('bankOrderNo'); + $merRemark = I('MerRemark'); + $md5Info = I('MD5info'); + + Log::write(serialize(I()), Log::DEBUG); + // pp(C('sqpay.key')); - $secret = strtoupper(md5(C('sqpay.key')));//支付秘钥 - // 参与校验 - $sign = strtoupper(md5("Amount={$amount}&BillNo={$billNo}&MerNo={$merNo}&Succeed={$succed}&{$secret}")); - - if ($md5Info == $sign) - { - $order_info['trade_no'] = $orderNo; - $order_info['out_trade_no'] = $billNo; - $pay_where = substr($billNo, 0, 2); - switch ($pay_where) { - case 'SP': - $result = $this->set_spend($order_info); - break; - case 'PF': - $result = $this->set_deposit($order_info); - break; - case 'AG': - $result = $this->set_agent($order_info); - break; - default: - exit('accident order data'); - break; - } - - //改变订单状态,及其他业务修改 - echo "success"; - //接收通知后必须输出”success“代表接收成功。 - }else{ - $this->record_logs("双乾验证失败!!"); - } - + $secret = strtoupper(md5(C('sqpay.key')));//支付秘钥 + // 参与校验 + $sign = strtoupper(md5("Amount={$amount}&BillNo={$billNo}&MerNo={$merNo}&Succeed={$succed}&{$secret}")); + + if ($md5Info == $sign) + { + $order_info['trade_no'] = $orderNo; + $order_info['out_trade_no'] = $billNo; + $pay_where = substr($billNo, 0, 2); + switch ($pay_where) { + case 'SP': + $result = $this->set_spend($order_info); + break; + case 'PF': + $result = $this->set_deposit($order_info); + break; + case 'AG': + $result = $this->set_agent($order_info); + break; + default: + exit('accident order data'); + break; + } + + //改变订单状态,及其他业务修改 + echo "success"; + //接收通知后必须输出”success“代表接收成功。 + }else{ + $this->record_logs("双乾验证失败!!"); + } + } public function heepay_callback() @@ -599,83 +624,83 @@ Log::write(serialize($order_info), Log::DEBUG); //验证是否合法 if($Sign==$MySign){ - $pay_where = substr($jinzhua,0,2); - $order_info['trade_no']=$OrderID; - $order_info['out_trade_no']=$jinzhua; - $result = false; + $pay_where = substr($jinzhua,0,2); + $order_info['trade_no']=$OrderID; + $order_info['out_trade_no']=$jinzhua; + $result = false; - switch ($pay_where) { - case 'SP': - $d=M('spend','tab_')->field('pay_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); - if($d['pay_amount'] != $Money){ - $this->record_logs("金额验证错误"); - echo '357papiSQLFALSE357papi';//失败 - return false; - } + switch ($pay_where) { + case 'SP': + $d=M('spend','tab_')->field('pay_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); + if($d['pay_amount'] != $Money){ + $this->record_logs("金额验证错误"); + echo '357papiSQLFALSE357papi';//失败 + return false; + } - $result = $this->set_spend($order_info); - break; - case 'PF': - $d=M('deposit','tab_')->field('pay_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); - if($d['pay_amount'] != $Money){ - $this->record_logs("金额验证错误"); - echo '357papiSQLFALSE357papi';//失败 - return false; - } + $result = $this->set_spend($order_info); + break; + case 'PF': + $d=M('deposit','tab_')->field('pay_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); + if($d['pay_amount'] != $Money){ + $this->record_logs("金额验证错误"); + echo '357papiSQLFALSE357papi';//失败 + return false; + } - $result = $this->set_deposit($order_info); - break; - case 'AG': - $d=M('agent','tab_')->field('real_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); - if($d['real_amount'] != $Money){ - $this->record_logs("金额验证错误"); - echo '357papiSQLFALSE357papi';//失败 - return false; - } - $result = $this->set_agent($order_info); - break; - case 'BR': - $d=M('bind_recharge','tab_')->field('real_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); - if($d['real_amount'] != $Money){ - $this->record_logs("金额验证错误"); - echo '357papiSQLFALSE357papi';//失败 - return false; - } - $result = $this->set_bind_recharge($order_info); - break; - case 'TB': - $d=M('balance','tab_')->field('money')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); - if($d['money'] != $Money){ - $this->record_logs("金额验证错误"); - echo '357papiSQLFALSE357papi';//失败 - return false; - } - $result = $this->set_balance($order_info); - break; - case 'SI': - $d=M('order','tab_')->field('order_price')->where(['order_number'=>$order_info['out_trade_no']])->find(); - if($d['order_price'] != $Money){ - $this->record_logs("金额验证错误"); - echo '357papiSQLFALSE357papi';//失败 - return false; - } - - $result = $this->set_order($order_info); - break; - default: - exit('accident order data'); - break; - } - + $result = $this->set_deposit($order_info); + break; + case 'AG': + $d=M('agent','tab_')->field('real_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); + if($d['real_amount'] != $Money){ + $this->record_logs("金额验证错误"); + echo '357papiSQLFALSE357papi';//失败 + return false; + } + $result = $this->set_agent($order_info); + break; + case 'BR': + $d=M('bind_recharge','tab_')->field('real_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); + if($d['real_amount'] != $Money){ + $this->record_logs("金额验证错误"); + echo '357papiSQLFALSE357papi';//失败 + return false; + } + $result = $this->set_bind_recharge($order_info); + break; + case 'TB': + $d=M('balance','tab_')->field('money')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); + if($d['money'] != $Money){ + $this->record_logs("金额验证错误"); + echo '357papiSQLFALSE357papi';//失败 + return false; + } + $result = $this->set_balance($order_info); + break; + case 'SI': + $d=M('order','tab_')->field('order_price')->where(['order_number'=>$order_info['out_trade_no']])->find(); + if($d['order_price'] != $Money){ + $this->record_logs("金额验证错误"); + echo '357papiSQLFALSE357papi';//失败 + return false; + } - if($result){ + $result = $this->set_order($order_info); + break; + default: + exit('accident order data'); + break; + } + + + if($result){ echo '357papiSuccess357papi';//成功 return; - } - else{ + } + else{ echo '357papiSQLFALSE357papi';//失败 return; - } + } }else{ echo '357papiAPIFALSE357papi';//失败 @@ -718,8 +743,8 @@ Log::write(serialize($order_info), Log::DEBUG); } } - - //判断订单是否存在 + + //判断订单是否存在 public function order_is_exist($out_trade_no) { @@ -797,8 +822,8 @@ Log::write(serialize($order_info), Log::DEBUG); } /** - *WAP支付成功后 通知SDK - */ + *WAP支付成功后 通知SDK + */ public function notifySdk($stauts='200',$info=''){ return ""; } @@ -817,7 +842,7 @@ Log::write(serialize($order_info), Log::DEBUG); } } - //判断充值是否存在 + //判断充值是否存在 public function bind_recharge_is_exist($out_trade_no) { $bind_recharge = M('bind_recharge', 'tab_'); diff --git a/Application/Home/Controller/CoinOrderController.class.php b/Application/Home/Controller/CoinOrderController.class.php index 2e26ab44c..6a854903c 100644 --- a/Application/Home/Controller/CoinOrderController.class.php +++ b/Application/Home/Controller/CoinOrderController.class.php @@ -270,7 +270,8 @@ class CoinOrderController extends BaseController //官方 header("Content-type:text/html;charset=utf-8"); Vendor("WxPayPubHelper.WxPayPubHelper"); - $unifiedOrder = new \UnifiedOrder_pub("wx0ba5be5c8bb9f1b7", "1555280551","wDst6e8d0nGUh4hcwBgv8caJmDE1Mxql"); + //$unifiedOrder = new \UnifiedOrder_pub("wx0ba5be5c8bb9f1b7", "1555280551","wDst6e8d0nGUh4hcwBgv8caJmDE1Mxql"); + $unifiedOrder = new \UnifiedOrder_pub(C("wei_xin.email"), C("wei_xin.partner"),C("wei_xin.key")); // $des='平台币充值'; $unifiedOrder->setParameter("body", $title);//商品描述 //自定义订单号,此处仅作举例 diff --git a/Application/Sdk/Controller/Ipa365Controller.class.php b/Application/Sdk/Controller/Ipa365Controller.class.php index eb894bb8b..645fe19bc 100644 --- a/Application/Sdk/Controller/Ipa365Controller.class.php +++ b/Application/Sdk/Controller/Ipa365Controller.class.php @@ -1,5 +1,6 @@ $gameId, 'pay_status' => 0 ))->find(); + + $gameInfo = M('game', 'tab_')->field('game_name,supersign_token')->where(array( + 'id' => $gameId, + ))->find(); + if ($payLog) { $orderId = $payLog['order_id']; } else { $orderId = "SS_" . date('Ymd') . date('His') . sp_random_string(4); // 超级签 - - $gameInfo = M('game', 'tab_')->field('supersign_token')->where(array( - 'id' => $gameId, - ))->find(); if (!$gameInfo['supersign_token']) { $this->error("超级签token未填写!"); } @@ -158,17 +160,22 @@ class Ipa365Controller extends BaseController{ $param['payway'] = 1; $param['title'] = $price; $param['body'] = $price; - $param['callback'] = "https://m.wmtxkj.com/sdk.php/Ipa365/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; - $param['notifyurl'] = "https://m.wmtxkj.com/callback.php/Notify/notify/apitype/alipay"; - + //$param['callback'] = "https://m.wmtxkj.com/sdk.php/Ipa365/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; + //$param['notifyurl'] = "https://m.wmtxkj.com/callback.php/Notify/notify/apitype/alipay"; + + $param['callback'] = "https://".$_SERVER['HTTP_HOST']."/sdk.php/Ipa365/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; + $param['notifyurl'] = "https://".$_SERVER['HTTP_HOST']."/callback.php/Notify/notify/apitype/alipay"; $ret = $this->alipay($param); + $this->assign("url", $ret['url']); + + $weixn = new Weixin(); + $wx_pay = json_decode($weixn->weixin_pay('超级签消费', $orderId, $price, 'MWEB', 4), true); + $this->assign("wxurl", $wx_pay['mweb_url']); $this->assign("price", self::signprice); - $this->assign("url", $ret['url']); - $this->assign("order_id", $orderId); - -// pp($orderId); -// redirect($ret['url']); + $this->assign("order_id", $orderId); + $this->assign("game_name",$gameInfo['game_name']); + $this->assign("callback",$param['callback']); $this->display(); } @@ -209,12 +216,19 @@ class Ipa365Controller extends BaseController{ $param['payway'] = 1; $param['title'] = $price; $param['body'] = $price; - $param['callback'] = "https://m.wmtxkj.com/sdk.php/Ipa365/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; - $param['notifyurl'] = "https://m.wmtxkj.com/callback.php/Notify/notify/apitype/alipay"; + //$param['callback'] = "https://m.wmtxkj.com/sdk.php/Ipa365/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; + //$param['notifyurl'] = "https://m.wmtxkj.com/callback.php/Notify/notify/apitype/alipay"; + + $param['callback'] = "https://".$_SERVER['HTTP_HOST']."/sdk.php/Ipa365/install_show/user_id/{$userId}/game_id/{$gameId}/order_id/{$orderId}"; + $param['notifyurl'] = "https://".$_SERVER['HTTP_HOST']."/callback.php/Notify/notify/apitype/alipay"; $ret = $this->alipay($param); - $this->assign("url", $ret['url']); + + $weixn = new Weixin(); + $wx_pay = json_decode($weixn->weixin_pay('超级签消费', $orderId, $price, 'MWEB', 4), true); + $this->assign("wxurl", $wx_pay['mweb_url']); + $this->assign("price", $price); $this->assign("order_id", $payLog['order_id']); $this->assign("game_id", $payLog['game_id']); @@ -393,7 +407,7 @@ class Ipa365Controller extends BaseController{ ->setUserId($param['user_id']) ->setSdkVersion($param['sdk_version']); $pay_['url']= $pay->buildRequestForm($vo); - $pay_['out_trade_no']= $out_trade_no; + //$pay_['out_trade_no']= $out_trade_no; return $pay_; } diff --git a/Application/Sdk/View/default/Ipa365/pay.html b/Application/Sdk/View/default/Ipa365/pay.html index 1be7645e4..bda09e4d3 100644 --- a/Application/Sdk/View/default/Ipa365/pay.html +++ b/Application/Sdk/View/default/Ipa365/pay.html @@ -40,8 +40,8 @@ body{ -->