初始化项目

This commit is contained in:
2026-09-01 22:15:50 +08:00
commit b5a26a8848
11217 changed files with 1710987 additions and 0 deletions
@@ -0,0 +1,98 @@
<?php
// +----------------------------------------------------------------------
// | 管理系统
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.zizai.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 自在科技
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\api\controller\syb;
use app\api\controller\Controller;
use app\api\model\Order as OrderModel;
use app\api\model\Order\Record as RecordModel;
use app\common\crypto\Crypto;
use think\facade\Request;
/**
* 加油e卡通通知接口
* Class SybUser
* @package app\api\controller
*/
class SybNotify extends Controller
{
/** 通知接口
* @return array|mixed|string[]
*/
public function notify()
{
// 获取所有 HTTP 请求头
$headers = Request::header();
// 获取 JSON 格式的请求体
$jsonData = Request::instance()->getContent();
$data = json_decode($jsonData, true);
$crypto = new Crypto();
$res = $crypto->processResponse(['header'=>$headers,'encryptData'=>$data]);
// 检查 JSON 解码是否成功
if (!$res) {
return json(['code' => '03', 'message' => '报文解密异常']);
}
// 此处可以根据业务逻辑处理接收到的数据
switch ($headers['method']) {
case "syb.notify.pay.result":
// 二维码交易结果通知
$where = array(
['oilCardNo', '=', $res['oilCardNo']],
['amount', '=', $res['amount']],
);
$field['qrCode'] = $res['qrCode'];
if($res['status'] == 'success'){
$field['order_status'] = 30;
$field['use_status'] = 1;
}else{
$field['use_text'] = $res['errMessage'];
}
OrderModel::orderUpdate($where, $field);
break;
case "syb.notify.oilCard.change":
// 油卡变动通知
$order = OrderModel::detail(['oilCardNo'=>$res['oilCardNo'], 'amount'=>$res['amount']]);
$res['order_id'] = $order['order_id'];
$res['user_id'] = $order['user_id'];
$RecordModel = new RecordModel();
$RecordModel->add($res);
break;
case "syb.notify.oilCard.share":
// 分油结果通知
$where = array(
['oilCardNo', '=', $res['oilCardNo']],
['amount', '=', $res['amount']],
);
$field = ['oil_time' => time()];
if($res['status'] == 'success'){
$field['order_status'] = 20;
$field['oil_status'] = 1;
}else{
$field['order_status'] = 60;
$field['oil_status'] = 0;
$field['oil_text'] = $res['msg'];
}
OrderModel::orderUpdate($where, $field);
break;
default:
return json(['code' => '03', 'message' => '报文解密异常']);
}
// 记录日志等
$this->saveLog($headers['method'].":".json_encode($res,320));
// 返回成功的 JSON 响应
return json(['code' => '00', 'message' => '请求成功']);
}
}