Просмотр исходного кода

fix(payment): 修复支付通知中open_id访问的安全性问题

- 修改了支付人ID获取逻辑,避免直接访问可能不存在的数组键
- 添加了isset检查确保expend.open_id存在后再进行赋值
- 防止因数组键不存在导致的潜在错误或警告
- 提高了代码的健壮性和错误处理能力
shichen месяцев назад: 3
Родитель
Сommit
148c1abaee
1 измененных файлов с 4 добавлено и 1 удалено
  1. 4 1
      app/controller/api/Notify.php

+ 4 - 1
app/controller/api/Notify.php

@@ -135,7 +135,10 @@ class Notify
135
                             // 随机值
135
                             // 随机值
136
                             $rand = $requestId[1];
136
                             $rand = $requestId[1];
137
                             // 支付人ID
137
                             // 支付人ID
138
-                            $payOpenId = $post_data_str['expend']['open_id'] ?: '';
138
+                            $payOpenId = '';
139
+                            if (isset($post_data_str['expend']['open_id'])) {
140
+                                $payOpenId = $post_data_str['expend']['open_id'];
141
+                            }
139
                             // 支付撤销方法
142
                             // 支付撤销方法
140
                             $paymentReverseFunc = function ($payWX, $payType, $groupOrderSn_Rand, $paymentId, $appId, $orderNo, $reverseAmt, $notifyUrl = '') {
143
                             $paymentReverseFunc = function ($payWX, $payType, $groupOrderSn_Rand, $paymentId, $appId, $orderNo, $reverseAmt, $notifyUrl = '') {
141
                                 if ($payWX == StoreGroupOrderEnum::PAY_WX['TDYL']['code']) {
144
                                 if ($payWX == StoreGroupOrderEnum::PAY_WX['TDYL']['code']) {