data; $supplier_id = $post_data['supplier_id']; if (isset($post_data['pifa']) && $post_data['pifa']) { $address = json_decode($post_data['address_data'], true); $spu = []; foreach ($post_data['goods_list'] as $goods) { if (!is_array($goods['attr'])) { $goods['attr'] = json_decode($goods['attr'], true); } if ((int)$goods['stbz_goods_id'] !== 0) { $spu[] = [ 'number' => $goods['num'], 'sku' => $goods['attr']['no'], ]; } } $params = [ 'spu' => $spu, 'address' => [ 'consignee' => $post_data['name'], 'phone' => $post_data['mobile'], 'province' => $address['province'], 'city' => $address['city'], 'area' => $address['district'], 'street' => '', 'description' => $address['address'], ] ]; } else { $address_data = []; $orderTransit = \app\models\OrderTransit::findOne(['cloud_order_id' => $post_data['id']]); if ($orderTransit) { $order = \app\models\Order::findOne($orderTransit->order_id); if ($order) { if ($order->is_offline && $order->md_id) { $province_name = ''; $city_name = ''; $district_name = ''; $address = ''; $md = \app\models\Md::findOne($order->md_id); if ($md) { $province_name = \app\models\District::findOne($md->province)->name; $city_name = \app\models\District::findOne($md->city)->name; $district_name = \app\models\District::findOne($md->district)->name; $address = $md->address; } } else { $province_name = \app\models\District::findOne($order->province_id)->name; $city_name = \app\models\District::findOne($order->city_id)->name; $district_name = \app\models\District::findOne($order->district_id)->name; $address = $order->address; } $address_data = [ 'province' => $province_name, 'city' => $city_name ?? '', 'district' => $district_name ?? '', 'address' => $address ?? '' ]; } } $spu = []; foreach ($post_data['goods_list'] as $goods) { if ((int)$goods['stbz_goods_id'] !== 0) { $spu[] = [ 'number' => $goods['num'], 'sku' => $goods['attr']['no'], ]; } } $params = [ 'spu' => $spu, 'address' => [ 'consignee' => $post_data['name'], 'phone' => $post_data['mobile'], 'province' => $post_data['province'] ?: ($address_data['province'] ?? ''), 'city' => $post_data['city'] ?: ($address_data['city'] ?? ''), 'area' => $post_data['district'] ?: ($address_data['district'] ?? ''), 'street' => '', 'description' => $post_data['address'] ?: ($address_data['address'] ?? ''), ] ]; } debug_log('胜天半子商品信息' . json_encode($params)); $checkData = \stbz_client()->getApiResponse('post', '/v2/order/beforeCheck', $params); $checkData = \json_decode($checkData, true); debug_log('胜天半子下单检测' . json_encode($checkData)); if ($checkData['code'] != 1) { throw new \Exception($checkData['msg']); } $params['orderSn'] = $post_data['order_no']; $data = \stbz_client()->getApiResponse('post', '/v2/order', $params); $data = \json_decode($data, true); debug_log('胜天半子下单检测' . json_encode($data)); if ($data['code'] != 1) { throw new \Exception($data['msg']); } //获取订单信息 $order_url = "/cloud/supplier/supplierSetStbzOrderStatus"; $order_data['order_id'] = $post_data['id']; $order_data['status'] = 1; $order_data['access_token'] = get_supplier_token($supplier_id); $orderNoHead = substr($post_data['order_no'], 0, 2); if ($orderNoHead === 'PO') { $order_data['order_type'] = 1; } elseif ($orderNoHead === 'OR') { $order_data['order_type'] = 2; } $order_data['status'] = 1; $domain = (new OptionSetting)->getCloudDomainName(); $orderInfo = cloud_post($domain. $order_url, $order_data); debug_log('胜天半子更改订单状态' . json_encode($orderInfo)); } catch (\Exception $e) { debug_log('胜天半子自动转单----'. json_encode($e->getFile() . $e->getMessage() . $e->getLine())); } } }