超级签微信支付

master
zhengchanglong 5 years ago
parent bb0a399ef7
commit 2dc6304ec3

@ -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');
@ -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'));
@ -185,10 +185,10 @@ Log::write(serialize($order_info), Log::DEBUG);
case 'AG':
$result = $this->set_agent($order_info);
break;
case 'TB':
case 'TB':
$result = $this->set_balance($order_info);
break;
case 'SI':
case 'SI':
$result = $this->set_order($order_info);
break;
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;
}
@$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("竣付通验证失败!!");
}
}
@ -423,49 +448,49 @@ Log::write(serialize($order_info), Log::DEBUG);
* @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("双乾验证失败!!");
}
}
@ -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_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_order($order_info);
break;
default:
exit('accident order data');
break;
}
if($result){
if($result){
echo '357papiSuccess357papi';//成功
return;
}
else{
}
else{
echo '357papiSQLFALSE357papi';//失败
return;
}
}
}else{
echo '357papiAPIFALSE357papi';//失败
@ -719,7 +744,7 @@ 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_');

@ -1,5 +1,6 @@
<?php
namespace Sdk\Controller;
use Org\WeixinSDK\Weixin;
use Think\Controller;
use Org\Ipa365SDK\Ipa365;
use Mobile\Controller\SsgController;
@ -158,18 +159,21 @@ 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->display();
}
@ -209,12 +213,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";
$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']);
$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']);

@ -79,6 +79,17 @@
<div class="pay-meta">支持支付宝</div>
</div>
</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 class="footer-pay">

@ -21,8 +21,7 @@ class Weixin
// $data['pay_type'] = "weixin";
//使用统一支付接口
if ($tt == 1) { //扫码
if ($tt == 1 || $tt == 4) { //扫码 || 超级签h5
$notifyy="notify";
$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("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);//交易类型

Loading…
Cancel
Save