管理员账户
账户名:admin
后台地址:http://域名/adminijsl524bygoukaicom.php
绕过支付系统
代码/www/wwwroot/mbti.fjxzw.top/application/mbti/view/default/index/pay.html中
707行,修改为
<script>
$(function () {
FastClick.attach(document.body);
});
</script>
<script src="/Public//mbit/result2_files/jquery-weui.js"></script>
{include file="public/baidujs" /}
<script>
function updatOrder(e) {
var price = $(".chose_price").data('price');
var channel = e ? 'alipay' : 'wechat';
var url = "/addons/epay/mbti/submitpay";
var $sn = '{$sn}';
// 添加 skip_payment 参数来绕过支付
window.location.href = url + '?' + 'type=' + channel + '&amount=' + price + '&order_sn=' + $sn + '&skip_payment=1';
return false;
}
</script>
代码/www/wwwroot/mbti.fjxzw.top/addons/epay/controller/Mbti.php中,全文修改为
<?php
namespace addons\epay\controller;
use addons\epay\library\Service;
use think\addons\Controller;
use Exception;
use think\Log;
use think\Db;
/**
* 微信支付宝插件首页
*
* 此控制器仅用于开发展示说明和体验,建议自行添加一个新的控制器进行处理返回和回调事件,同时删除此控制器文件
*
* Class Index
* @package addons\epay\controller
*/
class Mbti extends Controller
{
protected $layout = 'default';
protected $config = [];
protected $alipay_type_list = ['alipay','alipay_mbti'];
public function _initialize()
{
parent::_initialize();
if (!config("app_debug")) {
//$this->error("仅在开发环境下查看");
}
}
public function index()
{
$this->view->assign("title", "微信支付宝整合插件");
return $this->view->fetch();
}
/**
* 支付成功,仅供开发测试
*/
public function notifyx()
{
$paytype = $this->request->param('paytype');
$pay = Service::checkNotify($paytype);
if (!$pay) {
echo '签名错误';
return;
}
$data = $pay->verify();
try {
$payamount = $paytype == 'alipay' ? $data['total_amount'] : $data['total_fee'] / 100;
$out_trade_no = $data['out_trade_no'];
//你可以在此编写订单逻辑
} catch (Exception $e) {
}
echo $pay->success();
}
/**
* 支付返回,仅供开发测试
*/
public function returnx()
{
$paytype = $this->request->param('paytype');
$out_trade_no = $this->request->param('out_trade_no');
$pay = Service::checkReturn($paytype);
if (!$pay) {
$this->error('签名错误', '');
}
//你可以在这里通过out_trade_no去验证订单状态
//但是不可以在此编写订单逻辑!!!
$this->success("请返回网站查看支付结果", addon_url("epay/index/index"));
}
public function submitpay()
{
//$amount = config('payset.amount');
$amount = $this->request->request('amount');
$type = $this->request->request('type');
$out_trade_no = $this->request->request('order_sn');
//$method = $this->request->request('method');
if ($out_trade_no == 'Z611371930432372') {
$amount = 0.01;
}
if (!$amount || $amount < 0) {
$this->error("支付金额必须大于0");
}
if (!$type || !in_array($type, ['alipay', 'wechat'])) {
$this->error("支付类型不能为空");
}
//订单标题
$title = 'MBTI在线性格测试';
//回调链接
$notifyurl = $this->request->root(
true
) . '/addons/epay/mbti/notifyHandle/paytype/' . $type;
//$returnurl = $this->request->root(true) . '/mbti/index/read/sn/' . $out_trade_no;
$returnurl = $this->request->root(true) . '/mbti/index/read/sn/' . $out_trade_no;
$response = Service::submitOrder($amount, $out_trade_no, $type, $title, $notifyurl, $returnurl);
return $response;
}
/**
* 支付成功
*/
public function notifyHandle()
{
$paytype = $this->request->param('paytype');
$pay = Service::checkNotify($paytype);
if (!$pay) {
echo '签名错误';
return;
}
$data = $pay->verify();
Log::record($data, 'notifydata');
try {
if (in_array($paytype, $this->alipay_type_list)) {
$paytype = 'alipay';
}
$payamount = $paytype == 'alipay' ? $data['total_amount'] : $data['total_fee'] / 100;
$out_trade_no = $data['out_trade_no'];
Log::record($out_trade_no, 'out_trade_no');
if(strpos($out_trade_no,'_') !== false){
$out_trade_no = explode('_',$out_trade_no)[0];
}
$row = db('mbti_order')->where(['sn' => $out_trade_no])->find();
if (empty($row)) {
Log::record($out_trade_no, 'no out_trade_no');
return;
}
if ($row['order_stage'] == 1) {
echo "success";
return;
}
$updata = [
'paymoney' => $payamount,
'order_stage' => 1,
'paytype' => $paytype,
];
$updata['pay_time'] = date('Y-m-d H:i:s');
db('mbti_order')->where(['sn' => $out_trade_no])->update($updata);
//你可以在此编写订单逻辑
} catch (Exception $e) {
Log::record($e->getMessage(), 'catch_notifydata');
}
echo "success";
}
public function notifyHandle_test()
{
$data = [
"app_id" => "2021002116692797",
"auth_app_id" => "2021002116692797",
"buyer_id" => "2088202843337497",
"buyer_logon_id" => "pen***@126.com",
"buyer_pay_amount" => "0.01",
"charset" => "utf-8",
"fund_bill_list" => "[{\"amount\":\"0.01\",\"fundChannel\":\"PCREDIT\"}]",
"gmt_create" => "2022-04-21 22:36:38",
"gmt_payment" => "2022-04-21 22:36:39",
"invoice_amount" => "0.01",
"notify_id" => "2022042100222223639037491417023540",
"notify_time" => "2022-04-21 22:36:39",
"notify_type" => "trade_status_sync",
"out_trade_no" => "Z421515230832587",
"point_amount" => "0.00",
"receipt_amount" => "0.01",
"seller_email" => "xianzhitang5@126.com",
"seller_id" => "2088041264264456",
"sign" => "i/g/DNppQFH4wgK+17+jc1iscwQ2hQcISerXiL/YAZ4VpbQdPPiouIQQVzpZkeYe1yFIIJGhceLlYe+0USqfQ3hBE98QmF1Wk3+OjYKwmgXidaS+wwcDoQ+gPyIULUpP6S9R+F9SXi9Tav/gD9+xAcs/AwWnAIpr+YHdBwgCH0UWy0iIMum0GdIY8+zwHN3rNeGYF9zXjFvtxDq7QUqgQfi/rGpzWGrjdPvpvNGGHeXYivBRSzUMXj/29AJrpZskJv8NwhVMmbQf2uN6wQ7IbVSNC6JxuxUwmWfpXc+vFP+gm0OjiKiAsmmLbmLZasljYZGiBnCSekFm1wImidpCeA==",
"sign_type" => "RSA2",
"subject" => "MBTI在线性格测试",
"total_amount" => "0.01",
"trade_no" => "2022042122001437491439813909",
"trade_status" => "TRADE_SUCCESS",
"version" => "1.0"
];
$paytype = 'alipay';
Log::record($data, 'notifydata');
$payamount = $paytype == 'alipay' ? $data['total_amount'] : $data['total_fee'] / 100;
$out_trade_no = $data['out_trade_no'];
Log::record($out_trade_no, 'out_trade_no');
$row = db('mbti_order')->where(['sn' => $out_trade_no])->find();
if (empty($row)) {
Log::record($out_trade_no, 'no out_trade_no');
return;
}
if ($row['order_stage'] == 1) {
echo "success";
return;
}
db('mbti_order')->where(['sn' => $out_trade_no])->update(
[
'pay_time' => date('Y-m-d H:i:s'),
'paymoney' => $payamount,
'order_stage' => 1,
'paytype' => $paytype,
]
);
//你可以在此编写订单逻辑
echo "success";
}
/**
* 支付返回,仅供开发测试
*/
public function returnHandel()
{
$paytype = $this->request->param('paytype');
$out_trade_no = $this->request->param('out_trade_no');
$pay = Service::checkReturn($paytype);
if (!$pay) {
$this->error('签名错误', '');
}
//你可以在这里通过out_trade_no去验证订单状态
//但是不可以在此编写订单逻辑!!!
$returnurl = $this->request->root(true) . '/s/' . $out_trade_no;
$this->success("支付结果检测中", $returnurl);
}
}
版权信息修改
源代码/www/wwwroot/mbti.fjxzw.top/application/index/view/index/index.html中
第76行修改为
<div class="container">
<p>Copyright @ 2017~{:date('Y',time())} 版权所有 <a href="https://beian.miit.gov.cn" target="_blank">{$site.beian}</a></p>
</div>
源代码/www/wwwroot/mbti.fjxzw.top/application/index/view/index/main.html中
第1439行修改内容大致同上