getFile(), $e->getLine(), $e->getMessage() ])); self::setError($e->getMessage()); return $e->getMessage(); } } /** * @notes 零售回调 * @param $orderSn * @param array $extra * @author 段誉 * @date 2023/2/27 15:28 */ public static function cashierclass($orderSn, $extra = []) { $order = Cashierclass::where('number', $orderSn)->findOrEmpty(); if ($order->isEmpty() || $order->paid == PayEnum::ISPAID) { return true; } $order->money = bcdiv($extra['amount']['payer_total'], 100, 2); $order->paid = 1; $order->status = 1; if ($order->pay_type == 9) { $order->status = 2; } $order->save(); if ($order['cart_id']) { if (!is_array($order['cart_id'])) { $cart_arr = explode(',', $order['cart_id']); Cart::whereIn('cart_id', $cart_arr)->update(['is_pay' => 1]); } else { Cart::whereIn('cart_id', $order['cart_id'])->update(['is_pay' => 1]); } } if ($order->pay_type != 9) { //用户支出流水 $record[] = [ 'financial_record_sn' => $extra['transaction_id'], 'order_id' => $order['id'], 'number_sn' => $order['number'], 'user_id' => $order['uid'], 'financial_type' => OrderEnum::USER_ORDER_PAY, 'financial_pm' => OrderEnum::EXPENDITURE, 'number' => $order['actual'], 'status' => 1, 'type' => OrderEnum::USER, 'mer_id' => $order['merchant'], ]; //商户获得流水 $record[] = [ 'financial_record_sn' => $extra['transaction_id'], 'order_id' => $order['id'], 'number_sn' => $order['number'], 'user_id' => $order['uid'], 'financial_type' => OrderEnum::MERCHANT_ORDER_OBTAINS, 'financial_pm' => OrderEnum::INCOME, 'number' => $order['actual'], 'status' => 0, 'type' => OrderEnum::MERCHANT, 'mer_id' => $order['merchant'], ]; (new FinancialRecord())->saveAll($record); } if ($order->pay_type == 9) { $extra['create_time']=$order['create_time']; PushService::push('store_merchant_' . $order['merchant'], $order['merchant'], ['type'=>'cash_register','msg'=>'您有一笔订单已支付','data'=>$extra]); } else { PushService::push('store_merchant_' . $order['merchant'], $order['merchant'], ['type'=>'store_merchant','msg'=>'您有一笔新的订单']); } if (!empty($extra['payer']['openid']) && $order->pay_type != 9) { Redis::send('push-delivery', ['order_id' => $orderSn, 'openid' => $extra['payer']['openid']], 5); } return true; } /** * 采购订单支付成功 */ public static function opurchaseclass($orderSn, $extra = []) { $order = Opurchaseclass::where('number', $orderSn)->findOrEmpty(); $order_arr=explode(',',$order['order_arr']); (new FinancialRecord())->where('order_id','in',$order_arr)->update(['status' => 1]); $time=time(); //商户支出流水 $record[] = [ 'financial_record_sn' => $time, 'order_id' => $order['id'], 'number_sn' => $order['number'], 'user_id' => $order['uid'], 'financial_type' => OrderEnum::MERCHANT_ORDER_PAY, 'financial_pm' => OrderEnum::EXPENDITURE, 'number' => $order['actual'], 'status' => 1, 'type' => OrderEnum::MERCHANT, 'mer_id' => $order['merchant'], ]; //平台获得流水 $record[] = [ 'financial_record_sn' => $time, 'order_id' => $order['id'], 'number_sn' => $order['number'], 'user_id' => $order['uid'], 'financial_type' => OrderEnum::PLATFORM_ORDER_OBTAINS, 'financial_pm' => OrderEnum::INCOME, 'number' => $order['actual'], 'status' => 1, 'type' => OrderEnum::PLATFORM, 'mer_id' => $order['merchant'], ]; (new FinancialRecord())->saveAll($record); } }