|
@@ -1562,11 +1562,11 @@ class WholeController extends Curd
|
|
|
$order->order_status_payment = 'SUCCESS';
|
|
|
}
|
|
|
if (!empty($params['pay_category_constitute']) && in_array('CARD', $params['pay_category_constitute'])) { // 储值卡账户
|
|
|
- foreach ($params['pay_category_constitute_list'] as $constituteList) {
|
|
|
- if ($constituteList['category'] != 'CARD') {
|
|
|
+ foreach ($params['pay_category_constitute_list'] as $constituteList2) {
|
|
|
+ if ($constituteList2['category'] != 'CARD') {
|
|
|
continue;
|
|
|
}
|
|
|
- $cardNbr = $constituteList['card_id'];
|
|
|
+ $cardNbr = $constituteList2['card_id'];
|
|
|
$account = MemberAccount::where('join_account_member_id', $params['join_order_member_id'])
|
|
|
->where('member_account_nbr', $cardNbr)
|
|
|
->where('member_account_status', 'ACTIVED')
|
|
@@ -1576,8 +1576,8 @@ class WholeController extends Curd
|
|
|
return json_fail('账户异常');
|
|
|
}
|
|
|
// 储值卡账户支付金额
|
|
|
- if (isset($constituteList['amount'])) {
|
|
|
- $params['order_amount_pay'] = $constituteList['amount'];
|
|
|
+ if (isset($constituteList2['amount'])) {
|
|
|
+ $params['order_amount_pay'] = $constituteList2['amount'];
|
|
|
$params['pay_category'] = $cardNbr;
|
|
|
}
|
|
|
$amount = $account->member_account_surplus + $account->member_account_added;
|
|
@@ -1588,7 +1588,7 @@ class WholeController extends Curd
|
|
|
$waitToPayAccount[$cardNbr] = [
|
|
|
'group_id' => $params['orderGroupId'],
|
|
|
'member_id' => $params['join_order_member_id'],
|
|
|
- 'amount' => $constituteList['amount'],
|
|
|
+ 'amount' => $constituteList2['amount'],
|
|
|
'nbr' => $cardNbr
|
|
|
];
|
|
|
// 生成支付记录
|
|
@@ -1815,7 +1815,6 @@ class WholeController extends Curd
|
|
|
_syslog("订单", "订单支付成功");
|
|
|
return json_success('支付成功');
|
|
|
} catch (\Exception $e) {
|
|
|
- dump($e->getMessage());
|
|
|
Db::rollBack();
|
|
|
_syslog("订单", "订单支付失败");
|
|
|
return json_fail('支付失败');
|
|
@@ -2793,11 +2792,11 @@ class WholeController extends Curd
|
|
|
$params['order_amount_pay'] = $orderAmountPay;
|
|
|
}
|
|
|
if (!empty($params['pay_category_constitute']) && in_array('CARD', $params['pay_category_constitute'])) { // 储值卡账户
|
|
|
- foreach ($params['pay_category_constitute_list'] as $constituteList) {
|
|
|
- if ($constituteList['category'] != 'CARD') {
|
|
|
+ foreach ($params['pay_category_constitute_list'] as $constituteList2) {
|
|
|
+ if ($constituteList2['category'] != 'CARD') {
|
|
|
continue;
|
|
|
}
|
|
|
- $cardNbr = $constituteList['card_id'];
|
|
|
+ $cardNbr = $constituteList2['card_id'];
|
|
|
$account = MemberAccount::where('join_account_member_id', $params['join_order_member_id'])
|
|
|
->where('member_account_nbr', $cardNbr)
|
|
|
->where('member_account_status', 'ACTIVED')
|
|
@@ -2807,8 +2806,8 @@ class WholeController extends Curd
|
|
|
return json_fail('账户异常');
|
|
|
}
|
|
|
// 储值卡账户支付金额
|
|
|
- if (isset($constituteList['amount'])) {
|
|
|
- $params['order_amount_pay'] = $constituteList['amount'];
|
|
|
+ if (isset($constituteList2['amount'])) {
|
|
|
+ $params['order_amount_pay'] = $constituteList2['amount'];
|
|
|
$params['pay_category'] = $cardNbr;
|
|
|
}
|
|
|
$amount = $account->member_account_surplus + $account->member_account_added;
|
|
@@ -2819,7 +2818,7 @@ class WholeController extends Curd
|
|
|
$params['waitToPayAccount'][$cardNbr] = [
|
|
|
'group_id' => $params['orderGroupId'],
|
|
|
'member_id' => $params['join_order_member_id'],
|
|
|
- 'amount' => $constituteList['amount'],
|
|
|
+ 'amount' => $constituteList2['amount'],
|
|
|
'nbr' => $cardNbr
|
|
|
];
|
|
|
|
|
@@ -4872,12 +4871,14 @@ class WholeController extends Curd
|
|
|
try {
|
|
|
Db::beginTransaction();
|
|
|
$full = '';
|
|
|
+ $payStatus = 'N';
|
|
|
if (in_array('WXPAY', $payDetailType)) {
|
|
|
- $result = Pay::wechat(config('payment.wxpay'))->find($order->order_groupby, 'pos');
|
|
|
- $result = json_decode(json_encode($result), true);
|
|
|
-// $result = '{"return_code":"SUCCESS","return_msg":"OK","result_code":"SUCCESS","mch_id":"1680393367","appid":"wxc6274da7198e3eb4","openid":"o3JAn6Ii_bAlxS-jbNEC4WnPhdwM","is_subscribe":"N","trade_type":"MICROPAY","trade_state":"SUCCESS","bank_type":"OTHERS","total_fee":"3","fee_type":"CNY","cash_fee":"1000","cash_fee_type":"CNY","transaction_id":"4200067718202409250802875650","out_trade_no":"OD24092518408RV7","attach":[],"time_end":"20240925184009","trade_state_desc":"支付成功","nonce_str":"OeGOkjch4eaV5qIt","sign":"6DCB3BFC594EBC018A2BEE2C3DFEA4E3"}';
|
|
|
-// $result = json_decode($result, true);
|
|
|
+ // $result = Pay::wechat(config('payment.wxpay'))->find($order->order_groupby, 'pos');
|
|
|
+ // $result = json_decode(json_encode($result), true);
|
|
|
+ $result = '{"return_code":"SUCCESS","return_msg":"OK","result_code":"SUCCESS","mch_id":"1680393367","appid":"wxc6274da7198e3eb4","openid":"o3JAn6Ii_bAlxS-jbNEC4WnPhdwM","is_subscribe":"N","trade_type":"MICROPAY","trade_state":"SUCCESS","bank_type":"OTHERS","total_fee":"3","fee_type":"CNY","cash_fee":"1000","cash_fee_type":"CNY","transaction_id":"4200067718202409250802875650","out_trade_no":"OD24092518408RV7","attach":[],"time_end":"20240925184009","trade_state_desc":"支付成功","nonce_str":"OeGOkjch4eaV5qIt","sign":"6DCB3BFC594EBC018A2BEE2C3DFEA4E3"}';
|
|
|
+ $result = json_decode($result, true);
|
|
|
if (!empty($result['return_code']) && $result['return_code'] == 'SUCCESS' && !empty($result['result_code']) && $result['result_code'] == 'SUCCESS' && !empty($result['trade_state']) && $result['trade_state'] == 'SUCCESS') {
|
|
|
+ $payStatus = 'Y';
|
|
|
$order->order_status_payment = 'SUCCESS';
|
|
|
if (in_array($order->order_category, ['SERVICE', 'CHNMED', 'CHNNCD', 'PACKAGE'])) {
|
|
|
$order->order_status_system = 'WAITING';
|
|
@@ -4909,22 +4910,18 @@ class WholeController extends Curd
|
|
|
'pay_paytimes' => date('Y-m-d H:i:s'),
|
|
|
'pay_json_response' => json_encode($result)
|
|
|
]);
|
|
|
+ // 除微信外的支付记录
|
|
|
+ PayDetail::where('join_pay_order_id', $order->order_groupby)->where('pay_prepayid','<>', 'WXPAY')->update([
|
|
|
+ 'pay_status' => 'SUCCESS',
|
|
|
+ 'pay_paytimes' => date('Y-m-d H:i:s'),
|
|
|
+ 'pay_json_response' => json_encode(['pay-result'=>'支付成功','result-datetime'=>date('Y-m-d H:i:s')])
|
|
|
+ ]);
|
|
|
// 加销售量
|
|
|
OrderSheetService::addGoodsSales($params['orderId']);
|
|
|
// 优惠券标记使用
|
|
|
$this->changeOrderCouponStatus($discountJson, 'USED');
|
|
|
|
|
|
- Db::commit();
|
|
|
-
|
|
|
- if (in_array($order->order_category, ['SERVICE', 'CHNMED', 'CHNNCD', 'PACKAGE', 'GOODS', 'DISHES', 'MEALS'])) {
|
|
|
- // 给上级提成
|
|
|
- Event::dispatch('commission.order', $params);
|
|
|
- }
|
|
|
- // 收支明细
|
|
|
- $params['inout_category'] = $oldOrderPaymentStatus == 'AWAITING' ? '挂账订单结算' : ($order->order_classify == 'VIP' ? ('购买康养城VIP套餐包' . $full) : '餐饮订单');
|
|
|
- Event::dispatch('statistics.inout.in', $params);
|
|
|
-
|
|
|
- return json_success('success');
|
|
|
+
|
|
|
}
|
|
|
} else if (in_array('ALIPAY', $payDetailType)) {
|
|
|
$result = Pay::alipay(config('payment.alipay'))->find($order->order_groupby);
|
|
@@ -4932,6 +4929,7 @@ class WholeController extends Curd
|
|
|
// $result = '{"code":"10000","msg":"Success","buyer_logon_id":"138******93","buyer_pay_amount":"5.87","fund_bill_list":[{"amount":"5.69","fund_channel":"ALIPAYACCOUNT"},{"amount":"0.18","fund_channel":"COUPON"},{"amount":"0.13","fund_channel":"DISCOUNT"}],"invoice_amount":"5.69","out_trade_no":"OD2409251550Q07A","point_amount":"0.00","receipt_amount":"6.00","send_pay_date":"2024-09-25 15:50:22","total_amount":"6.00","trade_no":"2024092523001439431419750998","trade_status":"TRADE_SUCCESS","buyer_open_id":"04309N2aVhSZz4cKwN_DN2DQa7ekM3z5n8kscQHsmIZOJsf"}';
|
|
|
// $result = json_decode($result, true);
|
|
|
if (!empty($result['code']) && $result['code'] == '10000' && !empty($result['trade_status']) && $result['trade_status'] == 'TRADE_SUCCESS') {
|
|
|
+ $payStatus = 'Y';
|
|
|
$order->order_status_payment = 'SUCCESS';
|
|
|
if (in_array($order->order_category, ['SERVICE', 'CHNMED', 'CHNNCD', 'PACKAGE'])) {
|
|
|
$order->order_status_system = 'WAITING';
|
|
@@ -4966,20 +4964,44 @@ class WholeController extends Curd
|
|
|
OrderSheetService::addGoodsSales($params['orderId']);
|
|
|
// 优惠券标记使用
|
|
|
$this->changeOrderCouponStatus($discountJson, 'USED');
|
|
|
- Db::commit();
|
|
|
+ // Db::commit();
|
|
|
|
|
|
- if (in_array($order->order_category, ['SERVICE', 'CHNMED', 'CHNNCD', 'PACKAGE', 'GOODS', 'DISHES', 'MEALS'])) {
|
|
|
- // 给上级提成
|
|
|
- Event::dispatch('commission.order', $params);
|
|
|
- }
|
|
|
+ // if (in_array($order->order_category, ['SERVICE', 'CHNMED', 'CHNNCD', 'PACKAGE', 'GOODS', 'DISHES', 'MEALS'])) {
|
|
|
+ // // 给上级提成
|
|
|
+ // Event::dispatch('commission.order', $params);
|
|
|
+ // }
|
|
|
|
|
|
- // 收支明细
|
|
|
- $params['inout_category'] = $oldOrderPaymentStatus == 'AWAITING' ? '挂账订单结算' : ($order->order_classify == 'VIP' ? ('购买康养城VIP套餐包' . $full) : '餐饮订单');
|
|
|
- Event::dispatch('statistics.inout.in', $params);
|
|
|
+ // // 收支明细
|
|
|
+ // $params['inout_category'] = $oldOrderPaymentStatus == 'AWAITING' ? '挂账订单结算' : ($order->order_classify == 'VIP' ? ('购买康养城VIP套餐包' . $full) : '餐饮订单');
|
|
|
+ // Event::dispatch('statistics.inout.in', $params);
|
|
|
|
|
|
- return json_success('success');
|
|
|
+ // return json_success('success');
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if ($payStatus == 'Y'){
|
|
|
+ foreach($payDetailType as $item){
|
|
|
+ if (in_array($item,['WXPAY','ALIPAY'])){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $amount = PayDetail::where('join_pay_order_id',$order->order_groupby)
|
|
|
+ ->where('pay_prepayid',$item)
|
|
|
+ ->value('pay_amount');
|
|
|
+ $this->deductAccountOne($order->order_groupby, $item, $amount);
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+
|
|
|
+ if (in_array($order->order_category, ['SERVICE', 'CHNMED', 'CHNNCD', 'PACKAGE', 'GOODS', 'DISHES', 'MEALS'])) {
|
|
|
+ // 给上级提成
|
|
|
+ Event::dispatch('commission.order', $params);
|
|
|
+ }
|
|
|
+ // 收支明细
|
|
|
+ $params['inout_category'] = $oldOrderPaymentStatus == 'AWAITING' ? '挂账订单结算' : ($order->order_classify == 'VIP' ? ('购买康养城VIP套餐包' . $full) : '餐饮订单');
|
|
|
+ Event::dispatch('statistics.inout.in', $params);
|
|
|
+
|
|
|
+ return json_success('success');
|
|
|
+ }
|
|
|
+
|
|
|
Db::rollBack();
|
|
|
return json_fail('没有查询到记录');
|
|
|
} catch (\Exception $e) {
|
|
@@ -5085,25 +5107,34 @@ class WholeController extends Curd
|
|
|
}
|
|
|
}
|
|
|
if ($payStatus == 'Y') {
|
|
|
- // 如果有余额、VIP、福利账户支付
|
|
|
- if (in_array($orders[0]['join_order_member_id'] . '-CASH', $payDetailType)) {
|
|
|
- $cashAmount = PayDetail::where('join_pay_order_id', $groupId)
|
|
|
- ->where('pay_prepayid', $orders[0]['join_order_member_id'] . '-CASH')
|
|
|
- ->sum('pay_amount');
|
|
|
- $this->deductAccountOne($groupId, $orders[0]['join_order_member_id'] . '-CASH', $cashAmount);
|
|
|
- }
|
|
|
- if (in_array($orders[0]['join_order_member_id'] . '-VIP', $payDetailType)) {
|
|
|
- $cashAmount = PayDetail::where('join_pay_order_id', $groupId)
|
|
|
- ->where('pay_prepayid', $orders[0]['join_order_member_id'] . '-VIP')
|
|
|
- ->sum('pay_amount');
|
|
|
- $this->deductAccountOne($groupId, $orders[0]['join_order_member_id'] . '-VIP', $cashAmount);
|
|
|
- }
|
|
|
- if (in_array($orders[0]['join_order_member_id'] . '-WELFARE', $payDetailType)) {
|
|
|
- $cashAmount = PayDetail::where('join_pay_order_id', $groupId)
|
|
|
- ->where('pay_prepayid', $orders[0]['join_order_member_id'] . '-WELFARE')
|
|
|
- ->sum('pay_amount');
|
|
|
- $this->deductAccountOne($groupId, $orders[0]['join_order_member_id'] . 'WELFARE', $cashAmount);
|
|
|
+ foreach($payDetailType as $item){
|
|
|
+ if (in_array($item,['WXPAY','ALIPAY'])){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $amount = PayDetail::where('join_pay_order_id',$order->order_groupby)
|
|
|
+ ->where('pay_prepayid',$item)
|
|
|
+ ->value('pay_amount');
|
|
|
+ $this->deductAccountOne($order->order_groupby, $item, $amount);
|
|
|
}
|
|
|
+ // 如果有余额、VIP、福利账户支付
|
|
|
+ // if (in_array($orders[0]['join_order_member_id'] . '-CASH', $payDetailType)) {
|
|
|
+ // $cashAmount = PayDetail::where('join_pay_order_id', $groupId)
|
|
|
+ // ->where('pay_prepayid', $orders[0]['join_order_member_id'] . '-CASH')
|
|
|
+ // ->sum('pay_amount');
|
|
|
+ // $this->deductAccountOne($groupId, $orders[0]['join_order_member_id'] . '-CASH', $cashAmount);
|
|
|
+ // }
|
|
|
+ // if (in_array($orders[0]['join_order_member_id'] . '-VIP', $payDetailType)) {
|
|
|
+ // $cashAmount = PayDetail::where('join_pay_order_id', $groupId)
|
|
|
+ // ->where('pay_prepayid', $orders[0]['join_order_member_id'] . '-VIP')
|
|
|
+ // ->sum('pay_amount');
|
|
|
+ // $this->deductAccountOne($groupId, $orders[0]['join_order_member_id'] . '-VIP', $cashAmount);
|
|
|
+ // }
|
|
|
+ // if (in_array($orders[0]['join_order_member_id'] . '-WELFARE', $payDetailType)) {
|
|
|
+ // $cashAmount = PayDetail::where('join_pay_order_id', $groupId)
|
|
|
+ // ->where('pay_prepayid', $orders[0]['join_order_member_id'] . '-WELFARE')
|
|
|
+ // ->sum('pay_amount');
|
|
|
+ // $this->deductAccountOne($groupId, $orders[0]['join_order_member_id'] . 'WELFARE', $cashAmount);
|
|
|
+ // }
|
|
|
|
|
|
Db::commit();
|
|
|
|