|
|
@@ -10,6 +10,8 @@ namespace app\common\repositories\movie;
|
|
10
|
10
|
use app\common\dao\movie\order\MovieOrderDao;
|
|
11
|
11
|
use app\common\repositories\BaseRepository;
|
|
12
|
12
|
use app\common\repositories\store\order\StoreOrderRepository;
|
|
|
13
|
+use crmeb\services\ApiResponseService;
|
|
|
14
|
+use think\exception\ValidateException;
|
|
13
|
15
|
use think\facade\Db;
|
|
14
|
16
|
use think\facade\Log;
|
|
15
|
17
|
|
|
|
@@ -115,7 +117,7 @@ class MovieRepository extends BaseRepository
|
|
115
|
117
|
|
|
116
|
118
|
$order_price = round($params['number'] * $params['price'], 2);
|
|
117
|
119
|
$submitOrder = DouHuoMallFilmApiRequest::submitOrder($userinfo->phone, $params['channel_type'], $params['sched_sign'], $order_sn, $order_price);
|
|
118
|
|
- if (!empty($submitOrder) && isset($submitOrder['code']) && ($submitOrder['code'] == 200) && isset($submitOrder['data']['plat_order'])){
|
|
|
120
|
+ if (!empty($submitOrder) && isset($submitOrder['code']) && ($submitOrder['code'] == 200) && isset($submitOrder['data']['plat_order'])) {
|
|
119
|
121
|
$_order = [
|
|
120
|
122
|
'uid' => $userinfo->uid,
|
|
121
|
123
|
'mobile' => $userinfo->phone,
|
|
|
@@ -149,7 +151,7 @@ class MovieRepository extends BaseRepository
|
|
149
|
151
|
|
|
150
|
152
|
$group = Db::transaction(function () use ($userinfo, $_order) {
|
|
151
|
153
|
$_order = $this->dao->create($_order);
|
|
152
|
|
- if ($_order) return static::pay();
|
|
|
154
|
+ if ($_order) return static::pay($_order['pay_type']);
|
|
153
|
155
|
|
|
154
|
156
|
|
|
155
|
157
|
});
|
|
|
@@ -159,166 +161,166 @@ class MovieRepository extends BaseRepository
|
|
159
|
161
|
}
|
|
160
|
162
|
}
|
|
161
|
163
|
|
|
162
|
|
- private static function pay($payType,$code,$groupOrder,$title,$notify_url,$pay_mode=null,$appid=''){
|
|
|
164
|
+ private static function pay($payType, $code, $groupOrder, $title, $notify_url, $pay_mode = null, $appid = '')
|
|
|
165
|
+ {
|
|
163
|
166
|
|
|
164
|
167
|
$order_no = $groupOrder['group_order_sn'] ?? $groupOrder['order_no'];
|
|
165
|
168
|
|
|
166
|
169
|
|
|
|
170
|
+ if ($payType == 'wx') {
|
|
167
|
171
|
|
|
168
|
|
- if($payType == 'wx'){
|
|
169
|
|
-
|
|
170
|
|
- if(!$code || $code == '' || $code =='undefined')
|
|
|
172
|
+ if (!$code || $code == '' || $code == 'undefined')
|
|
171
|
173
|
return "授权失败,code为空";
|
|
172
|
|
- if($appid == '') {
|
|
|
174
|
+ if ($appid == '') {
|
|
173
|
175
|
|
|
174
|
176
|
|
|
175
|
177
|
$pay_wx = systemConfig('pay_wx');
|
|
176
|
178
|
|
|
177
|
|
- if ($pay_wx == 2){
|
|
|
179
|
+ if ($pay_wx == 2) {
|
|
178
|
180
|
$appid = env('WECHAT_MP.APPID');
|
|
179
|
181
|
$new_secret = env('WECHAT_MP.SECRET');
|
|
180
|
182
|
|
|
181
|
|
- $app_id='app_0827b960-b932-45ec-b800-4e850091b419';
|
|
182
|
|
- $key='api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
|
|
|
183
|
+ $app_id = 'app_0827b960-b932-45ec-b800-4e850091b419';
|
|
|
184
|
+ $key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
|
|
183
|
185
|
|
|
184
|
|
- }elseif ($pay_wx == 3){
|
|
|
186
|
+ } elseif ($pay_wx == 3) {
|
|
185
|
187
|
$appid = env('WECHAT_TDYL.APPID');
|
|
186
|
188
|
$new_secret = env('WECHAT_TDYL.SECRET');
|
|
187
|
189
|
|
|
188
|
190
|
|
|
189
|
|
- Db::name('log')->insert(['data'=>'appid---'.$appid]);
|
|
190
|
|
- Db::name('log')->insert(['data'=>'new_secret---'.$new_secret]);
|
|
191
|
|
- $app_id='app_383a75dd-c03d-44ab-8f58-92c60fe9b9d0';
|
|
192
|
|
- $key='api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
|
|
|
191
|
+ Db::name('log')->insert(['data' => 'appid---' . $appid]);
|
|
|
192
|
+ Db::name('log')->insert(['data' => 'new_secret---' . $new_secret]);
|
|
|
193
|
+ $app_id = 'app_383a75dd-c03d-44ab-8f58-92c60fe9b9d0';
|
|
|
194
|
+ $key = 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
|
|
193
|
195
|
|
|
194
|
196
|
}
|
|
195
|
197
|
|
|
196
|
|
- }else{
|
|
197
|
|
- $app_id='app_0827b960-b932-45ec-b800-4e850091b419';
|
|
198
|
|
- $key='api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
|
|
|
198
|
+ } else {
|
|
|
199
|
+ $app_id = 'app_0827b960-b932-45ec-b800-4e850091b419';
|
|
|
200
|
+ $key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
|
|
199
|
201
|
$new_secret = "c8cbe24fa3b83f77a88b79554b3aeab4";
|
|
200
|
202
|
}
|
|
201
|
203
|
|
|
202
|
|
- $url = "https://api.weixin.qq.com/sns/jscode2session?appid=".$appid."&secret=".$new_secret."&js_code=".$code."&grant_type=authorization_code";
|
|
|
204
|
+ $url = "https://api.weixin.qq.com/sns/jscode2session?appid=" . $appid . "&secret=" . $new_secret . "&js_code=" . $code . "&grant_type=authorization_code";
|
|
203
|
205
|
$get = curlGet($url);
|
|
204
|
|
- Db::name('log')->insert(['data'=>'pay_wx---'.$pay_wx]);
|
|
205
|
|
- Db::name('log')->insert(['data'=>'code---'.$code]);
|
|
206
|
|
- Db::name('log')->insert(['data'=>'url---'.$url]);
|
|
207
|
|
- Db::name('log')->insert(['data'=>'open_id---'.json_encode($get)]);
|
|
208
|
|
- if(!isset($get['openid']) || empty($get['openid'])){
|
|
|
206
|
+ Db::name('log')->insert(['data' => 'pay_wx---' . $pay_wx]);
|
|
|
207
|
+ Db::name('log')->insert(['data' => 'code---' . $code]);
|
|
|
208
|
+ Db::name('log')->insert(['data' => 'url---' . $url]);
|
|
|
209
|
+ Db::name('log')->insert(['data' => 'open_id---' . json_encode($get)]);
|
|
|
210
|
+ if (!isset($get['openid']) || empty($get['openid'])) {
|
|
209
|
211
|
return '授权失败';
|
|
210
|
212
|
}
|
|
211
|
213
|
$openid = $get['openid'];
|
|
212
|
214
|
|
|
213
|
|
- $member_id=0;
|
|
214
|
|
- $type='2';
|
|
215
|
|
- $pay_channel='wx_lite';
|
|
|
215
|
+ $member_id = 0;
|
|
|
216
|
+ $type = '2';
|
|
|
217
|
+ $pay_channel = 'wx_lite';
|
|
216
|
218
|
|
|
217
|
|
- $expend=[
|
|
218
|
|
- 'open_id'=>$openid,
|
|
219
|
|
- 'wx_app_id'=> $appid
|
|
|
219
|
+ $expend = [
|
|
|
220
|
+ 'open_id' => $openid,
|
|
|
221
|
+ 'wx_app_id' => $appid
|
|
220
|
222
|
];
|
|
221
|
223
|
|
|
222
|
224
|
|
|
223
|
|
- if ($groupOrder['order_type'] = "marketing"){
|
|
|
225
|
+ if ($groupOrder['order_type'] = "marketing") {
|
|
224
|
226
|
|
|
225
|
|
- db::name("test_log")->insert(["note"=>"pay_huifu" . json_encode($groupOrder)]);
|
|
|
227
|
+ db::name("test_log")->insert(["note" => "pay_huifu" . json_encode($groupOrder)]);
|
|
226
|
228
|
// 创富宝 分账
|
|
227
|
229
|
//创富宝
|
|
228
|
|
- $cfb = sprintf("%01.2f",round(bcmul($groupOrder['pay_price'],'0.094',5),2));//9.4%的分账
|
|
|
230
|
+ $cfb = sprintf("%01.2f", round(bcmul($groupOrder['pay_price'], '0.094', 5), 2));//9.4%的分账
|
|
229
|
231
|
|
|
230
|
232
|
$cfb_member = "jsdk_member_1680162243019";
|
|
231
|
233
|
// 平台
|
|
232
|
|
- $cxb = sprintf("%01.2f",round(bcsub($groupOrder['pay_price'],$cfb,5),2));//剩下的归平台
|
|
|
234
|
+ $cxb = sprintf("%01.2f", round(bcsub($groupOrder['pay_price'], $cfb, 5), 2));//剩下的归平台
|
|
233
|
235
|
|
|
234
|
|
- $div_members=[
|
|
|
236
|
+ $div_members = [
|
|
235
|
237
|
[
|
|
236
|
|
- 'member_id'=>$member_id,
|
|
237
|
|
- 'amount'=>$cxb,
|
|
238
|
|
- 'fee_flag'=>'Y'
|
|
|
238
|
+ 'member_id' => $member_id,
|
|
|
239
|
+ 'amount' => $cxb,
|
|
|
240
|
+ 'fee_flag' => 'Y'
|
|
239
|
241
|
],
|
|
240
|
242
|
[
|
|
241
|
|
- 'member_id'=>$cfb_member,
|
|
242
|
|
- 'amount'=>$cfb,
|
|
243
|
|
- 'fee_flag'=>'N'
|
|
|
243
|
+ 'member_id' => $cfb_member,
|
|
|
244
|
+ 'amount' => $cfb,
|
|
|
245
|
+ 'fee_flag' => 'N'
|
|
244
|
246
|
]
|
|
245
|
247
|
];
|
|
246
|
|
- }else{
|
|
247
|
|
- $div_members=[
|
|
|
248
|
+ } else {
|
|
|
249
|
+ $div_members = [
|
|
248
|
250
|
[
|
|
249
|
|
- 'member_id'=>$member_id,
|
|
250
|
|
- 'amount'=>$groupOrder['pay_price'],
|
|
251
|
|
- 'fee_flag'=>'Y'
|
|
|
251
|
+ 'member_id' => $member_id,
|
|
|
252
|
+ 'amount' => $groupOrder['pay_price'],
|
|
|
253
|
+ 'fee_flag' => 'Y'
|
|
252
|
254
|
]
|
|
253
|
255
|
];
|
|
254
|
256
|
}
|
|
255
|
257
|
|
|
256
|
|
- $params=[
|
|
257
|
|
- 'order_no'=>$order_no."_".rand(1000,9999),
|
|
258
|
|
- 'app_id'=>$app_id,
|
|
259
|
|
- 'pay_channel'=>$pay_channel,
|
|
260
|
|
- 'pay_amt'=>(string)$groupOrder['pay_price'],
|
|
261
|
|
- 'goods_title'=> strlen($title) > 64 ? mb_substr($title, 0, 64,'utf-8') : $title,// 解决因为太长不能支付问题
|
|
262
|
|
- 'goods_desc' => strlen($title) > 42 ? mb_substr($title, 0, 127,'utf-8') : $title,// 解决因为太长不能支付问题
|
|
263
|
|
- 'device_info'=>[
|
|
264
|
|
- 'device_ip'=>app('request')->ip()
|
|
|
258
|
+ $params = [
|
|
|
259
|
+ 'order_no' => $order_no . "_" . rand(1000, 9999),
|
|
|
260
|
+ 'app_id' => $app_id,
|
|
|
261
|
+ 'pay_channel' => $pay_channel,
|
|
|
262
|
+ 'pay_amt' => (string)$groupOrder['pay_price'],
|
|
|
263
|
+ 'goods_title' => strlen($title) > 64 ? mb_substr($title, 0, 64, 'utf-8') : $title,// 解决因为太长不能支付问题
|
|
|
264
|
+ 'goods_desc' => strlen($title) > 42 ? mb_substr($title, 0, 127, 'utf-8') : $title,// 解决因为太长不能支付问题
|
|
|
265
|
+ 'device_info' => [
|
|
|
266
|
+ 'device_ip' => app('request')->ip()
|
|
265
|
267
|
// 'device_ip'=>'115.171.134.68'
|
|
266
|
268
|
],
|
|
267
|
269
|
|
|
268
|
|
- 'expend'=>json_encode($expend),
|
|
269
|
|
- 'div_members'=>json_encode($div_members),
|
|
270
|
|
- 'fee_mode'=>'I',
|
|
271
|
|
- 'notify_url'=>$notify_url
|
|
|
270
|
+ 'expend' => json_encode($expend),
|
|
|
271
|
+ 'div_members' => json_encode($div_members),
|
|
|
272
|
+ 'fee_mode' => 'I',
|
|
|
273
|
+ 'notify_url' => $notify_url
|
|
272
|
274
|
];
|
|
273
|
|
- if($pay_mode == 'delay'){
|
|
|
275
|
+ if ($pay_mode == 'delay') {
|
|
274
|
276
|
$params['pay_mode'] = 'delay';
|
|
275
|
277
|
unset($params['div_members']);
|
|
276
|
278
|
unset($params['fee_mode']);
|
|
277
|
279
|
}
|
|
278
|
|
- return $this->Payment_create_traits_b($params,$type,$key);
|
|
279
|
|
- }elseif($payType=='ALI'){
|
|
|
280
|
+ return $this->Payment_create_traits_b($params, $type, $key);
|
|
|
281
|
+ } elseif ($payType == 'ALI') {
|
|
280
|
282
|
// throw new AuthException('支付宝正在升级,请使用微信支付');
|
|
281
|
|
- $member_id=0;
|
|
282
|
|
- $type='1';
|
|
283
|
|
- $pay_channel='alipay_qr';
|
|
|
283
|
+ $member_id = 0;
|
|
|
284
|
+ $type = '1';
|
|
|
285
|
+ $pay_channel = 'alipay_qr';
|
|
284
|
286
|
// 天地博爱科技通道
|
|
285
|
|
- $app_id='app_44108546-d27a-48ee-88c1-84b45b75114f';
|
|
286
|
|
- $key='api_live_b23537ed-64b8-45d6-832e-fb228aa9e0a9';
|
|
|
287
|
+ $app_id = 'app_44108546-d27a-48ee-88c1-84b45b75114f';
|
|
|
288
|
+ $key = 'api_live_b23537ed-64b8-45d6-832e-fb228aa9e0a9';
|
|
287
|
289
|
// 天地博爱通道
|
|
288
|
290
|
// $app_id='app_0827b960-b932-45ec-b800-4e850091b419';
|
|
289
|
291
|
// $key='api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
|
|
290
|
292
|
|
|
291
|
|
- $div_members=[
|
|
|
293
|
+ $div_members = [
|
|
292
|
294
|
[
|
|
293
|
|
- 'member_id'=>$member_id,
|
|
294
|
|
- 'amount'=>$groupOrder['pay_price'],
|
|
295
|
|
- 'fee_flag'=>'Y'
|
|
|
295
|
+ 'member_id' => $member_id,
|
|
|
296
|
+ 'amount' => $groupOrder['pay_price'],
|
|
|
297
|
+ 'fee_flag' => 'Y'
|
|
296
|
298
|
]
|
|
297
|
299
|
];
|
|
298
|
300
|
|
|
299
|
|
- $params=[
|
|
300
|
|
- 'order_no'=>$order_no."_".rand(1000,9999),
|
|
301
|
|
- 'app_id'=>$app_id,
|
|
302
|
|
- 'pay_channel'=>$pay_channel,
|
|
303
|
|
- 'pay_amt'=>(string)$groupOrder['pay_price'],
|
|
304
|
|
- 'goods_title'=> strlen($title) > 64 ? mb_substr($title, 0, 64,'utf-8') : $title,// 解决因为太长不能支付问题
|
|
305
|
|
- 'goods_desc' => strlen($title) > 42 ? mb_substr($title, 0, 127,'utf-8') : $title,// 解决因为太长不能支付问题
|
|
306
|
|
- 'device_info'=>[
|
|
307
|
|
- 'device_ip'=>app('request')->ip()
|
|
|
301
|
+ $params = [
|
|
|
302
|
+ 'order_no' => $order_no . "_" . rand(1000, 9999),
|
|
|
303
|
+ 'app_id' => $app_id,
|
|
|
304
|
+ 'pay_channel' => $pay_channel,
|
|
|
305
|
+ 'pay_amt' => (string)$groupOrder['pay_price'],
|
|
|
306
|
+ 'goods_title' => strlen($title) > 64 ? mb_substr($title, 0, 64, 'utf-8') : $title,// 解决因为太长不能支付问题
|
|
|
307
|
+ 'goods_desc' => strlen($title) > 42 ? mb_substr($title, 0, 127, 'utf-8') : $title,// 解决因为太长不能支付问题
|
|
|
308
|
+ 'device_info' => [
|
|
|
309
|
+ 'device_ip' => app('request')->ip()
|
|
308
|
310
|
// 'device_ip'=>'115.171.134.68'
|
|
309
|
311
|
],
|
|
310
|
312
|
|
|
311
|
313
|
// 'expend'=>json_encode($expend),
|
|
312
|
|
- 'div_members'=>json_encode($div_members),
|
|
313
|
|
- 'fee_mode'=>'I',
|
|
314
|
|
- 'notify_url'=>$notify_url
|
|
|
314
|
+ 'div_members' => json_encode($div_members),
|
|
|
315
|
+ 'fee_mode' => 'I',
|
|
|
316
|
+ 'notify_url' => $notify_url
|
|
315
|
317
|
];
|
|
316
|
|
- if($pay_mode == 'delay'){
|
|
|
318
|
+ if ($pay_mode == 'delay') {
|
|
317
|
319
|
$params['pay_mode'] = 'delay';
|
|
318
|
320
|
unset($params['div_members']);
|
|
319
|
321
|
unset($params['fee_mode']);
|
|
320
|
322
|
}
|
|
321
|
|
- return $this->Payment_create_traits_a($params,$type,$key);
|
|
|
323
|
+ return $this->Payment_create_traits_a($params, $type, $key);
|
|
322
|
324
|
}
|
|
323
|
325
|
|
|
324
|
326
|
}
|
|
|
@@ -334,11 +336,17 @@ class MovieRepository extends BaseRepository
|
|
334
|
336
|
}
|
|
335
|
337
|
|
|
336
|
338
|
/**
|
|
337
|
|
- * @param $third_order
|
|
|
339
|
+ * @param $userinfo
|
|
|
340
|
+ * @param $order_sn
|
|
338
|
341
|
* @return mixed|string
|
|
339
|
342
|
*/
|
|
340
|
|
- public function getOrderInfo($third_order)
|
|
|
343
|
+ public function getOrderInfo($userinfo, $order_sn)
|
|
341
|
344
|
{
|
|
342
|
|
- return DouHuoMallFilmApiRequest::getOrderInfo($third_order);
|
|
|
345
|
+ $orderinfo = $this->dao->getWhere(['order_sn' => $order_sn, 'uid' => $userinfo->uid])->find();
|
|
|
346
|
+ if (empty($orderinfo)) throw new ValidateException('订单不存在');
|
|
|
347
|
+
|
|
|
348
|
+ $result = DouHuoMallFilmApiRequest::getOrderInfo($order_sn);
|
|
|
349
|
+ if (!empty($result) && ($result['code'] == ApiResponseService::DEFAULT_SUCCESS_CODE)) return $result['data'];
|
|
|
350
|
+ throw new ValidateException('订单不存在');
|
|
343
|
351
|
}
|
|
344
|
352
|
}
|