【类 型】:

【主	题】:
【描	述】:
	[原因]:
	[过程]:
	[影响]:
【结	束】

# 类型 包含:
# feat:新功能(feature)
# fix:修补bug
# docs:文档(documentation)
# style: 格式(不影响代码运行的变动)
# refactor:重构(即不是新增功能,也不是修改bug的代码变动)
# test:增加测试
# chore:构建过程或辅助工具的变动
This commit is contained in:
tk 2024-06-28 12:49:21 +08:00
parent 3c2429c10f
commit 388991acb1

View File

@ -55,7 +55,11 @@ class PayController extends PublicController
// 总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
$this->isPower();
// post参数检查
if ($_REQUEST['refund_price'] && $_REQUEST['order_sn'] && $_REQUEST['shop_id'] && ($_REQUEST['refundType'] == 'buyer' || $_REQUEST['refundType'] == 'seller')) {
echo json_encode(array('status' => 0, 'msg' => '退款参数有误'));
exit();
}
// 获取订单信息
$where['shop_id'] = $_REQUEST['shop_id'];
$where['order_sn'] = $_REQUEST['order_sn'];
@ -107,23 +111,28 @@ class PayController extends PublicController
try {
// 实例化 Yansongda Pay 并处理回调
$result = Pay::wechat($this->config)->callback();
$outRefundNo = $result['resource']['ciphertext']['out_refund_no'];
$refundType = substr($outRefundNo, strrpos($outRefundNo, '_') + 1);
$this->publish("demo", $refundType);
// 验证成功,处理业务逻辑
if ($result['resource']['ciphertext']['refund_status'] == 'SUCCESS') {
$where['order_sn'] = $result['resource']['ciphertext']['out_trade_no']; // 获取订单号
$orderDb = D('order'); // 实例化订单模型
$data['main_status'] = '已退款'; // 更新订单状态为已退款
$data['main_status'] = "已退款"; // 更新订单状态为已退款
$data['refund_time'] = time(); // 标记退款时间
$data['refund_sn'] = $result['resource']['ciphertext']['refund_id']; // 退款单号
$data['refund_price'] = $result['resource']['ciphertext']['amount']['refund'] / 100; // 退款金额,单位:元
$outRefundNo = $result['resource']['ciphertext']['out_refund_no'];
$refundType = substr($outRefundNo, strrpos($outRefundNo, '_') + 1); //截取退款类型
if ($refundType == "buyer") { //买家申请
$data['refund_status'] = "已同意";
} elseif ($refundType == "seller") { //卖家主动退
$data['refund_status'] = "主动退";
}
// 更新订单
$orderDb->where($where)->data($data)->save();
}
// 构建发布主题 并向地面终端提示刷新信息
$topic = 'refreshQuestList/' . $result['resource']['ciphertext']['shop_id'];
$field = array('shop_id');
$shop_id = $orderDb->where($where)->field($field)->find();
$topic = 'refreshQuestList/' . $shop_id;
$this->publish($topic, 1);
} catch (\Exception $e) {
// 捕获并记录可能的异常