|
|
@@ -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
|
//渠道商
|