超级签微信支付

master
zhengchanglong 5 years ago
parent bb0a399ef7
commit 2dc6304ec3

@ -64,7 +64,7 @@ class NotifyController extends BaseController
//获取回调订单信息 //获取回调订单信息
$order_info = $pay->getInfo(); $order_info = $pay->getInfo();
Log::write(serialize($order_info), Log::DEBUG); Log::write(serialize($order_info), Log::DEBUG);
if ($order_info['status']) { if ($order_info['status']) {
$pay_where = substr($order_info['out_trade_no'], 0, 2); $pay_where = substr($order_info['out_trade_no'], 0, 2);
@ -92,21 +92,21 @@ Log::write(serialize($order_info), Log::DEBUG);
case 'TB': case 'TB':
$result = $this->set_balance($order_info); $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; break;
case 'BR': case 'BR':
$result = $this->set_bind_recharge($order_info); $result = $this->set_bind_recharge($order_info);
break; break;
case 'SI': case 'SI':
$result = $this->set_order($order_info); $result = $this->set_order($order_info);
break; break;
case 'SS': // 超级签 case 'SS': // 超级签
$this->supersign_pay_notify(array( $this->supersign_pay_notify(array(
'trade_id' => $order_info['trade_no'], 'trade_id' => $order_info['trade_no'],
'order_id' => $order_info['out_trade_no'] 'order_id' => $order_info['out_trade_no']
)); ));
break; break;
default: default:
exit('accident order data'); exit('accident order data');
@ -120,11 +120,11 @@ Log::write(serialize($order_info), Log::DEBUG);
if (I('get.method') == "return") { if (I('get.method') == "return") {
switch (I('get.model')) { switch (I('get.model')) {
case 'Home': case 'Home':
if($to_balance) { if($to_balance) {
redirect($to_balance); redirect($to_balance);
} else { } else {
redirect('http://' . $_SERVER['HTTP_HOST'] . '/index.php/Home/Charge/agent_pay_list'); redirect('http://' . $_SERVER['HTTP_HOST'] . '/index.php/Home/Charge/agent_pay_list');
} }
break; break;
case 'Media': case 'Media':
redirect('http://' . $_SERVER['HTTP_HOST'] . '/media.php/Member/users_index'); redirect('http://' . $_SERVER['HTTP_HOST'] . '/media.php/Member/users_index');
@ -162,8 +162,8 @@ Log::write(serialize($order_info), Log::DEBUG);
/** /**
*微信回调 *微信回调
*/ */
public function swiftpass_callback(){ public function swiftpass_callback(){
$xml = file_get_contents('php://input'); $xml = file_get_contents('php://input');
$Swiftpass=new Swiftpass(C('weixin_gf.partner'),C('weixin_gf.key')); $Swiftpass=new Swiftpass(C('weixin_gf.partner'),C('weixin_gf.key'));
@ -185,10 +185,10 @@ Log::write(serialize($order_info), Log::DEBUG);
case 'AG': case 'AG':
$result = $this->set_agent($order_info); $result = $this->set_agent($order_info);
break; break;
case 'TB': case 'TB':
$result = $this->set_balance($order_info); $result = $this->set_balance($order_info);
break; break;
case 'SI': case 'SI':
$result = $this->set_order($order_info); $result = $this->set_order($order_info);
break; break;
default: default:
@ -209,6 +209,31 @@ 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';
}
}
/** /**
* 支付宝退款回调 * 支付宝退款回调
@ -381,40 +406,40 @@ Log::write(serialize($order_info), Log::DEBUG);
exit; exit;
} }
@$p7_paychannelnum=$_POST['p7_paychannelnum']; @$p7_paychannelnum=$_POST['p7_paychannelnum'];
if(empty($p7_paychannelnum)) if(empty($p7_paychannelnum))
{ {
$p7_paychannelnum=""; $p7_paychannelnum="";
} }
$signmsg=C('jft.key');//支付秘钥 $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_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)); $md5info_tem= strtoupper(md5($md5info_paramet));
$requestsign=$_REQUEST['p10_sign']; $requestsign=$_REQUEST['p10_sign'];
if ($md5info_tem == $_REQUEST['p10_sign']) if ($md5info_tem == $_REQUEST['p10_sign'])
{ {
$order_info['trade_no'] = $_REQUEST['p5_jtpayorder']; $order_info['trade_no'] = $_REQUEST['p5_jtpayorder'];
$order_info['out_trade_no'] = $_REQUEST['p2_order']; $order_info['out_trade_no'] = $_REQUEST['p2_order'];
$pay_where = substr($_REQUEST['p2_order'], 0, 2); $pay_where = substr($_REQUEST['p2_order'], 0, 2);
switch ($pay_where) { switch ($pay_where) {
case 'SP': case 'SP':
$result = $this->set_spend($order_info); $result = $this->set_spend($order_info);
break; break;
case 'PF': case 'PF':
$result = $this->set_deposit($order_info); $result = $this->set_deposit($order_info);
break; break;
case 'AG': case 'AG':
$result = $this->set_agent($order_info); $result = $this->set_agent($order_info);
break; break;
default: default:
exit('accident order data'); exit('accident order data');
break; break;
} }
//改变订单状态,及其他业务修改 //改变订单状态,及其他业务修改
echo "success"; echo "success";
//接收通知后必须输出”success“代表接收成功。 //接收通知后必须输出”success“代表接收成功。
}else{ }else{
$this->record_logs("竣付通验证失败!!"); $this->record_logs("竣付通验证失败!!");
} }
} }
@ -423,49 +448,49 @@ Log::write(serialize($order_info), Log::DEBUG);
* @return [type] [description] * @return [type] [description]
*/ */
public function sq_callback(){ public function sq_callback(){
$merNo = I('MerNo'); $merNo = I('MerNo');
$amount = I('Amount'); $amount = I('Amount');
$billNo = I('BillNo'); // 平台订单号 $billNo = I('BillNo'); // 平台订单号
$orderNo = I('Orderno'); // 支付平台订单号 $orderNo = I('Orderno'); // 支付平台订单号
$succed = I('Succeed'); $succed = I('Succeed');
$result = I('Result'); $result = I('Result');
$bankOrderNo = I('bankOrderNo'); $bankOrderNo = I('bankOrderNo');
$merRemark = I('MerRemark'); $merRemark = I('MerRemark');
$md5Info = I('MD5info'); $md5Info = I('MD5info');
Log::write(serialize(I()), Log::DEBUG); Log::write(serialize(I()), Log::DEBUG);
// pp(C('sqpay.key')); // pp(C('sqpay.key'));
$secret = strtoupper(md5(C('sqpay.key')));//支付秘钥 $secret = strtoupper(md5(C('sqpay.key')));//支付秘钥
// 参与校验 // 参与校验
$sign = strtoupper(md5("Amount={$amount}&BillNo={$billNo}&MerNo={$merNo}&Succeed={$succed}&{$secret}")); $sign = strtoupper(md5("Amount={$amount}&BillNo={$billNo}&MerNo={$merNo}&Succeed={$succed}&{$secret}"));
if ($md5Info == $sign) if ($md5Info == $sign)
{ {
$order_info['trade_no'] = $orderNo; $order_info['trade_no'] = $orderNo;
$order_info['out_trade_no'] = $billNo; $order_info['out_trade_no'] = $billNo;
$pay_where = substr($billNo, 0, 2); $pay_where = substr($billNo, 0, 2);
switch ($pay_where) { switch ($pay_where) {
case 'SP': case 'SP':
$result = $this->set_spend($order_info); $result = $this->set_spend($order_info);
break; break;
case 'PF': case 'PF':
$result = $this->set_deposit($order_info); $result = $this->set_deposit($order_info);
break; break;
case 'AG': case 'AG':
$result = $this->set_agent($order_info); $result = $this->set_agent($order_info);
break; break;
default: default:
exit('accident order data'); exit('accident order data');
break; break;
} }
//改变订单状态,及其他业务修改 //改变订单状态,及其他业务修改
echo "success"; echo "success";
//接收通知后必须输出”success“代表接收成功。 //接收通知后必须输出”success“代表接收成功。
}else{ }else{
$this->record_logs("双乾验证失败!!"); $this->record_logs("双乾验证失败!!");
} }
} }
@ -599,83 +624,83 @@ Log::write(serialize($order_info), Log::DEBUG);
//验证是否合法 //验证是否合法
if($Sign==$MySign){ if($Sign==$MySign){
$pay_where = substr($jinzhua,0,2); $pay_where = substr($jinzhua,0,2);
$order_info['trade_no']=$OrderID; $order_info['trade_no']=$OrderID;
$order_info['out_trade_no']=$jinzhua; $order_info['out_trade_no']=$jinzhua;
$result = false; $result = false;
switch ($pay_where) { switch ($pay_where) {
case 'SP': case 'SP':
$d=M('spend','tab_')->field('pay_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); $d=M('spend','tab_')->field('pay_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find();
if($d['pay_amount'] != $Money){ if($d['pay_amount'] != $Money){
$this->record_logs("金额验证错误"); $this->record_logs("金额验证错误");
echo '357papiSQLFALSE357papi';//失败 echo '357papiSQLFALSE357papi';//失败
return false; return false;
} }
$result = $this->set_spend($order_info); $result = $this->set_spend($order_info);
break; break;
case 'PF': case 'PF':
$d=M('deposit','tab_')->field('pay_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); $d=M('deposit','tab_')->field('pay_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find();
if($d['pay_amount'] != $Money){ if($d['pay_amount'] != $Money){
$this->record_logs("金额验证错误"); $this->record_logs("金额验证错误");
echo '357papiSQLFALSE357papi';//失败 echo '357papiSQLFALSE357papi';//失败
return false; return false;
} }
$result = $this->set_deposit($order_info); $result = $this->set_deposit($order_info);
break; break;
case 'AG': case 'AG':
$d=M('agent','tab_')->field('real_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); $d=M('agent','tab_')->field('real_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find();
if($d['real_amount'] != $Money){ if($d['real_amount'] != $Money){
$this->record_logs("金额验证错误"); $this->record_logs("金额验证错误");
echo '357papiSQLFALSE357papi';//失败 echo '357papiSQLFALSE357papi';//失败
return false; return false;
} }
$result = $this->set_agent($order_info); $result = $this->set_agent($order_info);
break; break;
case 'BR': case 'BR':
$d=M('bind_recharge','tab_')->field('real_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); $d=M('bind_recharge','tab_')->field('real_amount')->where(['pay_order_number'=>$order_info['out_trade_no']])->find();
if($d['real_amount'] != $Money){ if($d['real_amount'] != $Money){
$this->record_logs("金额验证错误"); $this->record_logs("金额验证错误");
echo '357papiSQLFALSE357papi';//失败 echo '357papiSQLFALSE357papi';//失败
return false; return false;
} }
$result = $this->set_bind_recharge($order_info); $result = $this->set_bind_recharge($order_info);
break; break;
case 'TB': case 'TB':
$d=M('balance','tab_')->field('money')->where(['pay_order_number'=>$order_info['out_trade_no']])->find(); $d=M('balance','tab_')->field('money')->where(['pay_order_number'=>$order_info['out_trade_no']])->find();
if($d['money'] != $Money){ if($d['money'] != $Money){
$this->record_logs("金额验证错误"); $this->record_logs("金额验证错误");
echo '357papiSQLFALSE357papi';//失败 echo '357papiSQLFALSE357papi';//失败
return false; return false;
} }
$result = $this->set_balance($order_info); $result = $this->set_balance($order_info);
break; break;
case 'SI': case 'SI':
$d=M('order','tab_')->field('order_price')->where(['order_number'=>$order_info['out_trade_no']])->find(); $d=M('order','tab_')->field('order_price')->where(['order_number'=>$order_info['out_trade_no']])->find();
if($d['order_price'] != $Money){ if($d['order_price'] != $Money){
$this->record_logs("金额验证错误"); $this->record_logs("金额验证错误");
echo '357papiSQLFALSE357papi';//失败 echo '357papiSQLFALSE357papi';//失败
return false; return false;
} }
$result = $this->set_order($order_info); $result = $this->set_order($order_info);
break; break;
default: default:
exit('accident order data'); exit('accident order data');
break; break;
} }
if($result){ if($result){
echo '357papiSuccess357papi';//成功 echo '357papiSuccess357papi';//成功
return; return;
} }
else{ else{
echo '357papiSQLFALSE357papi';//失败 echo '357papiSQLFALSE357papi';//失败
return; return;
} }
}else{ }else{
echo '357papiAPIFALSE357papi';//失败 echo '357papiAPIFALSE357papi';//失败
@ -719,7 +744,7 @@ Log::write(serialize($order_info), Log::DEBUG);
} }
//判断订单是否存在 //判断订单是否存在
public function order_is_exist($out_trade_no) 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=''){ public function notifySdk($stauts='200',$info=''){
return ""; return "";
} }
@ -817,7 +842,7 @@ Log::write(serialize($order_info), Log::DEBUG);
} }
} }
//判断充值是否存在 //判断充值是否存在
public function bind_recharge_is_exist($out_trade_no) public function bind_recharge_is_exist($out_trade_no)
{ {
$bind_recharge = M('bind_recharge', 'tab_'); $bind_recharge = M('bind_recharge', 'tab_');

@ -1,5 +1,6 @@
<?php <?php
namespace Sdk\Controller; namespace Sdk\Controller;
use Org\WeixinSDK\Weixin;
use Think\Controller; use Think\Controller;
use Org\Ipa365SDK\Ipa365; use Org\Ipa365SDK\Ipa365;
use Mobile\Controller\SsgController; use Mobile\Controller\SsgController;
@ -158,18 +159,21 @@ class Ipa365Controller extends BaseController{
$param['payway'] = 1; $param['payway'] = 1;
$param['title'] = $price; $param['title'] = $price;
$param['body'] = $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['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['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); $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("price", self::signprice);
$this->assign("url", $ret['url']);
$this->assign("order_id", $orderId); $this->assign("order_id", $orderId);
// pp($orderId);
// redirect($ret['url']);
$this->display(); $this->display();
} }
@ -209,12 +213,19 @@ class Ipa365Controller extends BaseController{
$param['payway'] = 1; $param['payway'] = 1;
$param['title'] = $price; $param['title'] = $price;
$param['body'] = $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['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['notifyurl'] = "https://m.wmtxkj.com/callback.php/Notify/notify/apitype/alipay";
$ret = $this->alipay($param); $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']); $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("price", $price);
$this->assign("order_id", $payLog['order_id']); $this->assign("order_id", $payLog['order_id']);
$this->assign("game_id", $payLog['game_id']); $this->assign("game_id", $payLog['game_id']);

@ -79,6 +79,17 @@
<div class="pay-meta">支持支付宝</div> <div class="pay-meta">支持支付宝</div>
</div> </div>
</a> </a>
<!--<a class="order-payinfo-item"
href="#;" onclick="jump('{$wxurl}', '{$order_id}')"
title="支付宝">
<div class="order-payinfo-icon">
<img src="__IMG__/ssg/alipay/zfb-pic.jpg" alt="微信支付">
</div>
<div class="order-payinfo-con">
<div class="pay-title">微信支付</div>
<div class="pay-meta">支持微信支付</div>
</div>
</a>-->
</div> </div>
</div> </div>
<div class="footer-pay"> <div class="footer-pay">

@ -21,8 +21,7 @@ class Weixin
// $data['pay_type'] = "weixin"; // $data['pay_type'] = "weixin";
//使用统一支付接口 //使用统一支付接口
if ($tt == 1 || $tt == 4) { //扫码 || 超级签h5
if ($tt == 1) { //扫码
$notifyy="notify"; $notifyy="notify";
$unifiedOrder = new \UnifiedOrder_pub(C('wei_xin.email'), C('wei_xin.partner'), C('wei_xin.key')); $unifiedOrder = new \UnifiedOrder_pub(C('wei_xin.email'), C('wei_xin.partner'), C('wei_xin.key'));
@ -47,7 +46,11 @@ class Weixin
$unifiedOrder->setParameter("total_fee", $pay_amount * 100);//总金额 $unifiedOrder->setParameter("total_fee", $pay_amount * 100);//总金额
$unifiedOrder->setParameter("notify_url", "http://" . $_SERVER['HTTP_HOST'] . "/callback.php/Notify/wxpay_callback/method/".$notifyy);//通知地址 if($tt==4){
$unifiedOrder->setParameter("notify_url", "http://" . $_SERVER['HTTP_HOST'] . "/callback.php/Notify/supersign_wxpay_notify");//通知地址
}else{
$unifiedOrder->setParameter("notify_url", "http://" . $_SERVER['HTTP_HOST'] . "/callback.php/Notify/wxpay_callback/method/".$notifyy);//通知地址
}
$unifiedOrder->setParameter("trade_type", $trade_type);//交易类型 $unifiedOrder->setParameter("trade_type", $trade_type);//交易类型

Loading…
Cancel
Save