初始化项目
This commit is contained in:
@@ -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' => '请求成功']);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user