Преглед на файлове

创建订单-修复下单问题

sunxbiao преди 5 месеца
родител
ревизия
87746de85c
променени са 1 файла, в които са добавени 77 реда и са изтрити 74 реда
  1. 77 74
      app/controller/api/Notify.php

+ 77 - 74
app/controller/api/Notify.php

@@ -127,84 +127,86 @@ class Notify
127 127
                             }
128 128
                             break;
129 129
                         case 'pay':
130
-                            /** ************** 定义参数 ************** */
131
-                            // 订单编号
132
-                            $groupOrderSn_Rand = $post_data_str['order_no'];
133
-                            // 订单号
134
-                            $groupOrderSn = $requestId[0];
135
-                            // 随机值
136
-                            $rand = $requestId[1];
137
-                            // 支付人ID
138
-                            $payOpenId = $post_data_str['expend']['open_id'];
139
-                            // 支付撤销方法
140
-                            $paymentReverseFunc = function ($payWX, $payType, $groupOrderSn_Rand, $paymentId, $appId, $orderNo, $reverseAmt, $notifyUrl = '') {
141
-                                if ($payWX == StoreGroupOrderEnum::PAY_WX['TDYL']['code']) {
142
-                                    $key = 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
143
-                                } else {
144
-                                    $key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
130
+                            $group_order = Db::name('store_group_order')->where('group_order_sn', $requestId[0])->find();
131
+                            $uid = $group_order['uid'];
132
+                            if (in_array($uid, [1592, 766, 6, 783, 7, 1166, 4604, 4782])) {
133
+                                /** ************** 定义参数 ************** */
134
+                                // 订单编号
135
+                                $groupOrderSn_Rand = $post_data_str['order_no'];
136
+                                // 订单号
137
+                                $groupOrderSn = $requestId[0];
138
+                                // 随机值
139
+                                $rand = $requestId[1];
140
+                                // 支付人ID
141
+                                $payOpenId = $post_data_str['expend']['open_id'];
142
+                                // 支付撤销方法
143
+                                $paymentReverseFunc = function ($payWX, $payType, $groupOrderSn_Rand, $paymentId, $appId, $orderNo, $reverseAmt, $notifyUrl = '') {
144
+                                    if ($payWX == StoreGroupOrderEnum::PAY_WX['TDYL']['code']) {
145
+                                        $key = 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
146
+                                    } else {
147
+                                        $key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
148
+                                    }
149
+                                    $refundTraits = [
150
+                                        'payment_id' => $paymentId,
151
+                                        'app_id' => $appId,
152
+                                        'order_no' => $orderNo,
153
+                                        'reverse_amt' => $reverseAmt,
154
+                                        'notify_url' => $notifyUrl ?: env('APP_URL') . "/api/hf_notify/reverse_order",
155
+                                    ];
156
+                                    $hfRefundRes = app()->make(StoreRefundOrderRepository::class)->payment_Reverse($refundTraits, $payType == '1' ? 2 : 1, $payWX, $key);
157
+                                    Db::name("log")
158
+                                        ->insert([
159
+                                            'data' => '【订单支付回调】【03】:时间:' . date('Y-m-d H:i:s', time()) . ';订单编号:' . $groupOrderSn_Rand . ';汇付支付撤销请求参数:' . json_encode($refundTraits) . ';汇付支付撤销返回结果:' . json_encode($hfRefundRes)
160
+                                        ]);
161
+                                };
162
+                                /** *************** 定义结束 *************** */
163
+
164
+                                /** 逻辑开始 */
165
+                                // 1、获取订单数据
166
+                                /** @var StoreGroupOrderRepository $storeGroupOrderRepository */
167
+                                $storeGroupOrderRepository = app()->make(StoreGroupOrderRepository::class);
168
+                                // 获取订单组数据
169
+                                $storeGroupOrderEntity = $storeGroupOrderRepository->getStoreGroupOrderEntityByGroupOrderSn($groupOrderSn);
170
+                                if (empty($storeGroupOrderEntity->getGroupOrderId())) {
171
+                                    Db::name("log")
172
+                                        ->insert([
173
+                                            'data' => '【订单支付回调】【01】:时间:' . date('Y-m-d H:i:s', time()) . ';订单编号:' . $groupOrderSn_Rand . ';订单组查询失败'
174
+                                        ]);
175
+                                    break;
176
+                                }
177
+                                /** @var StoreOrderRepository $storeOrderRepository */
178
+                                $storeOrderRepository = app()->make(StoreOrderRepository::class);
179
+                                // 获取订单集合
180
+                                $storeOrderEntityList = $storeOrderRepository->getStoreOrderEntityListByGroupOrderId($storeGroupOrderEntity->getGroupOrderId());
181
+                                if (empty($storeOrderEntityList)) {
182
+                                    Db::name("log")
183
+                                        ->insert([
184
+                                            'data' => '【订单支付回调】【02】:时间:' . date('Y-m-d H:i:s', time()) . ';订单编号:' . $groupOrderSn_Rand . ';订单集合查询失败'
185
+                                        ]);
186
+                                    break;
145 187
                                 }
146
-                                $refundTraits = [
147
-                                    'payment_id' => $paymentId,
148
-                                    'app_id' => $appId,
149
-                                    'order_no' => $orderNo,
150
-                                    'reverse_amt' => $reverseAmt,
151
-                                    'notify_url' => $notifyUrl ?: env('APP_URL') . "/api/hf_notify/reverse_order",
152
-                                ];
153
-                                $hfRefundRes = app()->make(StoreRefundOrderRepository::class)->payment_Reverse($refundTraits, $payType == '1' ? 2 : 1, $payWX, $key);
154
-                                Db::name("log")
155
-                                    ->insert([
156
-                                        'data' => '【订单支付回调】【03】:时间:' . date('Y-m-d H:i:s', time()) . ';订单编号:' . $groupOrderSn_Rand . ';汇付支付撤销请求参数:' . json_encode($refundTraits) . ';汇付支付撤销返回结果:' . json_encode($hfRefundRes)
157
-                                    ]);
158
-                            };
159
-                            /** *************** 定义结束 *************** */
160
-
161
-                            /** 逻辑开始 */
162
-                            // 1、获取订单数据
163
-                            /** @var StoreGroupOrderRepository $storeGroupOrderRepository */
164
-                            $storeGroupOrderRepository = app()->make(StoreGroupOrderRepository::class);
165
-                            // 获取订单组数据
166
-                            $storeGroupOrderEntity = $storeGroupOrderRepository->getStoreGroupOrderEntityByGroupOrderSn($groupOrderSn);
167
-                            if (empty($storeGroupOrderEntity->getGroupOrderId())) {
168
-                                Db::name("log")
169
-                                    ->insert([
170
-                                        'data' => '【订单支付回调】【01】:时间:' . date('Y-m-d H:i:s', time()) . ';订单编号:' . $groupOrderSn_Rand . ';订单组查询失败'
171
-                                    ]);
172
-                                break;
173
-                            }
174
-                            /** @var StoreOrderRepository $storeOrderRepository */
175
-                            $storeOrderRepository = app()->make(StoreOrderRepository::class);
176
-                            // 获取订单集合
177
-                            $storeOrderEntityList = $storeOrderRepository->getStoreOrderEntityListByGroupOrderId($storeGroupOrderEntity->getGroupOrderId());
178
-                            if (empty($storeOrderEntityList)) {
179
-                                Db::name("log")
180
-                                    ->insert([
181
-                                        'data' => '【订单支付回调】【02】:时间:' . date('Y-m-d H:i:s', time()) . ';订单编号:' . $groupOrderSn_Rand . ';订单集合查询失败'
182
-                                    ]);
183
-                                break;
184
-                            }
185 188
 
186
-                            // 2、判断订单是否已经被代付 如果已记录支付人 并且不是自己,则可能有人代付,则将本次的支付撤回
187
-                            foreach ($storeOrderEntityList as $storeOrderEntity) {
188
-                                if (!empty($storeOrderEntity->getPayOpenId())) {
189
-                                    if ($storeOrderEntity->getPayOpenId() != $payOpenId) {
190
-                                        // 如果已经被用户支付 撤回支付
191
-                                        $orderNo = app()->make(StoreRefundOrderRepository::class)->getNewOrderId();
192
-                                        $paymentReverseFunc($storeGroupOrderEntity->getPayWx(), $pay_type, $groupOrderSn_Rand, $post_data_str['id'], $post['app_id'], $orderNo, $post_data_str['pay_amt']);
193
-                                        break 2;
189
+                                // 2、判断订单是否已经被代付 如果已记录支付人 并且不是自己,则可能有人代付,则将本次的支付撤回
190
+                                foreach ($storeOrderEntityList as $storeOrderEntity) {
191
+                                    if (!empty($storeOrderEntity->getPayOpenId())) {
192
+                                        if ($storeOrderEntity->getPayOpenId() != $payOpenId) {
193
+                                            // 如果已经被用户支付 撤回支付
194
+                                            $orderNo = app()->make(StoreRefundOrderRepository::class)->getNewOrderId();
195
+                                            $paymentReverseFunc($storeGroupOrderEntity->getPayWx(), $pay_type, $groupOrderSn_Rand, $post_data_str['id'], $post['app_id'], $orderNo, $post_data_str['pay_amt']);
196
+                                            break 2;
197
+                                        }
198
+                                    } else {
199
+                                        $storeOrderEntity->setPayOpenId($payOpenId);
194 200
                                     }
195
-                                } else {
196
-                                    $storeOrderEntity->setPayOpenId($payOpenId);
197 201
                                 }
198
-                            }
199
-                            // 如果已支付 不做后续处理
200
-                            if ($storeGroupOrderEntity->getPaid() == StoreGroupOrderEnum::PAID['YES']['code']) {
201
-                                break;
202
-                            }
203
-
204
-                            // 3、支付成功 处理逻辑
205
-                            $storeGroupOrderRepository->storeGroupOrderPaySuccess($storeGroupOrderEntity->getGroupOrderId());
202
+                                // 如果已支付 不做后续处理
203
+                                if ($storeGroupOrderEntity->getPaid() == StoreGroupOrderEnum::PAID['YES']['code']) {
204
+                                    break;
205
+                                }
206 206
 
207
-/*
207
+                                // 3、支付成功 处理逻辑
208
+                                $storeGroupOrderRepository->storeGroupOrderPaySuccess($storeGroupOrderEntity->getGroupOrderId());
209
+                            } else {
208 210
                             // 判断代付是否支付过
209 211
                             $group_order = Db::name('store_group_order')->where('group_order_sn', $requestId[0])->find();
210 212
                             $group_order_id = $group_order['group_order_id']??'';
@@ -961,7 +963,8 @@ class Notify
961 963
                             Db::name('store_group_order')->where('group_order_id',$group_order_id)->update(['paid'=>1,'pay_time'=>date('Y-m-d H:i:s')]);
962 964
 
963 965
                             event('pay_success_order', ['order_sn' => $requestId[0],'pay_type'=>$pay_type]);
964
-*/
966
+
967
+                            }
965 968
                             break;
966 969
                         case 'pay_channel':
967 970
                             //渠道商