getWeappConfig($site_id); $weapp_config = $weapp_config["data"]["value"]; if (isset($weapp_config['is_authopen']) && addon_is_exit('wxoplatform')) { $plateform_config_model = new WxOplatformConfigModel(); $plateform_config = $plateform_config_model->getOplatformConfig(); $plateform_config = $plateform_config["data"]["value"]; $config = [ 'app_id' => $plateform_config["appid"] ?? '', 'secret' => $plateform_config["secret"] ?? '', 'token' => $plateform_config["token"] ?? '', 'aes_key' => $plateform_config["aes_key"] ?? '', 'log' => [ 'level' => 'debug', 'permission' => 0777, 'file' => 'runtime/log/wechat/oplatform.logs', ], ]; $open_platform = Factory::openPlatform($config); $this->app = $open_platform->miniProgram($weapp_config['authorizer_appid'], $weapp_config['authorizer_refresh_token']); } else { $config = [ 'app_id' => $weapp_config["appid"] ?? '', 'secret' => $weapp_config["appsecret"] ?? '', 'response_type' => 'array', 'log' => [ 'level' => 'debug', 'permission' => 0777, 'file' => 'runtime/log/wechat/easywechat.logs', ], ]; $this->app = Factory::miniProgram($config); } } /** * 导入或更新物品信息 */ public function importProduct($goods_ids) { if (!empty($goods_ids)) { $data = [ 'product_list' => [] ]; $goods_list = model('goods')->getList([['goods_id', 'in', explode(',', $goods_ids)]], 'goods_id,goods_name,introduction,goods_image,sku_id,category_id,goods_attr_format'); if (!empty($goods_list)) { try { foreach ($goods_list as $goods_item) { $sku_list = model('goods_sku')->getList([['goods_id', '=', $goods_item['goods_id']]], 'sku_id,discount_price,price,goods_state,stock'); $goods_data = [ "item_code" => $goods_item['goods_id'], "title" => $goods_item['goods_name'], "desc" => $goods_item['introduction'], "category_list" => [], "image_list" => array_map(function ($value) { return img($value); }, explode(',', $goods_item['goods_image'])), "src_wxapp_path" => "/pages/goods/detail?sku_id=" . $goods_item['sku_id'], "sku_list" => [], "attr_list" => [] ]; if (!empty($goods_item['category_id'])) { $category_id = trim($goods_item['category_id'], ','); $goods_category = model('goods_category')->getList([['category_id', 'in', explode(',', $category_id)]], 'category_name'); if (!empty($goods_category)) { foreach ($goods_category as $item) { array_push($goods_data["category_list"], $item['category_name']); } } } if (!empty($goods_item['goods_attr_format'])) { $goods_attr = json_decode($goods_item['goods_attr_format'], true); foreach ($goods_attr as $attr_item) { $attr_data = [ "name" => $attr_item['attr_name'], "value" => $attr_item['attr_value_name'] ]; array_push($goods_data["attr_list"], $attr_data); } } foreach ($sku_list as $sku_item) { $sku_data = [ "sku_id" => $sku_item['sku_id'], "price" => $sku_item['discount_price'] * 100, "original_price" => $sku_item['price'] * 100 ]; $sku_data['status'] = $sku_item['goods_state'] == 1 ? 1 : 2; if ($sku_item['stock'] == 0) $sku_data['status'] = 3; array_push($goods_data["sku_list"], $sku_data); } array_push($data['product_list'], $goods_data); } $result = $this->app->mall->product->import($data); if (isset($result['errcode']) && $result['errcode'] == 0) { return $this->success(); } else { return $this->error('', $result['errmsg']); } } catch (\Exception $e) { return $this->error('', $e->getMessage()); } } } } /** * 导入订单每次最大10条 * @param $order_id * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \GuzzleHttp\Exception\GuzzleException */ public function importOrder($order_ids) { if (!empty($order_ids)) { $data = [ 'order_list' => [] ]; $order_join = [ ['member m', 'm.member_id = o.member_id', 'left'] ]; $order_list = model('order')->getList([['order_id', 'in', explode(',', $order_ids)]], 'o.order_id,o.order_no,o.goods_money,o.pay_money,o.delivery_money,o.create_time,o.pay_time,o.buyer_message,o.pay_type,o.order_status_name,m.weapp_openid', '', 'o', $order_join, '', 10); if (!empty($order_list)) { try { foreach ($order_list as $order_item) { $order_data = [ 'order_id' => $order_item['order_id'], 'create_time' => $order_item['create_time'], 'pay_finish_time' => $order_item['pay_time'], 'desc' => $order_item['buyer_message'], 'fee' => $order_item['pay_money'], 'trans_id' => $order_item['order_no'], 'ext_info' => [ 'product_info' => [ 'item_list' => [] ], 'express_info' => [ 'price' => $order_item['delivery_money'] ], 'brand_info' => [ 'contact_detail_page' => [ 'path' => '/pages/index/index' ] ], 'payment_method' => $order_item['pay_type'] == 'wechatpay' ? 1 : 2, 'user_open_id' => $order_item['weapp_openid'], 'order_detail_page' => [ 'path' => '/pages_rush/order/detail?order_id=' . $order_item['order_id'] ], 'total_fee' => $order_item['goods_money'] ] ]; switch ($order_item['order_status_name']) { case '待发货': $order_data['status'] = 3; break; case '已发货': $order_data['status'] = 4; break; case '已完成': $order_data['status'] = 100; break; } $order_goods_join = [ ['goods g', 'og.goods_id = g.goods_id', 'left'] ]; $order_goods_list = model('order_goods')->getList([['order_id', '=', $order_item['order_id']]], 'og.goods_id,og.sku_id,og.num,og.goods_money,og.sku_image,og.sku_name,og.price,g.category_id', '', 'og', $order_goods_join); foreach ($order_goods_list as $goods_item) { $goods_data = [ 'item_code' => $goods_item['goods_id'], 'sku_id' => $goods_item['sku_id'], 'amount' => $goods_item['num'], 'total_fee' => $goods_item['goods_money'] * 100, 'thumb_url' => img($goods_item['sku_image']), 'title' => $goods_item['sku_name'], 'unit_price' => $goods_item['price'], 'original_price' => $goods_item['price'], 'category_list' => [], 'item_detail_page' => [ 'path' => '/pages/goods/detail?sku_id=' . $goods_item['sku_id'] ] ]; if (!empty($goods_item['category_id'])) { $category_id = trim($goods_item['category_id'], ','); $goods_category = model('goods_category')->getList([['category_id', 'in', explode(',', $category_id)]], 'category_name'); if (!empty($goods_category)) { foreach ($goods_category as $item) { array_push($goods_data["category_list"], $item['category_name']); } } } array_push($order_data['ext_info']['product_info']['item_list'], $goods_data); } array_push($data['order_list'], $order_data); } $result = $this->app->mall->order->add($data); if (isset($result['errcode']) && $result['errcode'] == 0) { return $this->success(); } else { return $this->error('', $result['errmsg']); } } catch (\Exception $e) { return $this->error('', $e->getMessage()); } } } } }