宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產(chǎn)品動態(tài)
精選推薦

蘇寧開放平臺商品詳情接口實戰(zhàn):多維度數(shù)據(jù)獲取與結(jié)構(gòu)化處理(附核心代碼 + 避坑指南)

管理 管理 編輯 刪除


在電商數(shù)據(jù)對接場景中,蘇寧開放平臺商品詳情接口的核心優(yōu)勢在于能一次性獲取商品基礎(chǔ)信息、價格體系、庫存狀態(tài)、服務(wù)承諾、營銷活動等多維度數(shù)據(jù) —— 相比其他平臺,其返回的 “服務(wù)列表”“售后說明” 等字段更貼合線下零售場景需求。本文從技術(shù)落地角度,拆解接口從認證到數(shù)據(jù)結(jié)構(gòu)化的完整流程,提供可直接復(fù)用的代碼工具類與高頻問題解決方案,幫開發(fā)者避開簽名失敗、QPS 超限等常見坑。


一、接口基礎(chǔ)認知:關(guān)鍵信息與合規(guī)前提

先理清接口的核心參數(shù)、調(diào)用限制與合規(guī)要點,避免因基礎(chǔ)信息錯配導(dǎo)致對接卡殼。


1. 核心技術(shù)參數(shù)(必記)


類別關(guān)鍵信息
接口名稱商品詳情查詢(單商品)、商品批量查詢(多商品)
請求地址單商品:https://open.suning.com/api/mpp/{version}/product/get(version 當(dāng)前為 v1.3.0)批量:https://open.suning.com/api/mpp/{version}/product/batchGet
請求方式HTTP POST(表單提交,Content-Type 為 application/x-www-form-urlencoded)
權(quán)限要求個人 / 企業(yè)開發(fā)者認證(需在開放平臺完成實名認證 + 應(yīng)用權(quán)限審核)
調(diào)用限制單應(yīng)用 QPS=5(每秒最多 5 次請求)、日調(diào)用上限 5 萬次;批量接口單次最多傳 30 個商品編碼
響應(yīng)格式JSON(固定 format=json)

2. 典型應(yīng)用場景(落地價值)

  • 商品詳情頁搭建:解析picUrls(主圖)、detailModule(詳情圖)、parameters(參數(shù)),快速構(gòu)建自有平臺商品頁;
  • 價格監(jiān)控:跟蹤price(原價)、promotionPrice(促銷價)變化,捕捉限時折扣活動;
  • 庫存預(yù)警:通過stockFlag(庫存狀態(tài))、limitBuyNum(限購數(shù)量),避免超賣或庫存積壓;
  • 競品分析:對比多商品的salesVolume(銷量)、averageScore(評分)、serviceList(服務(wù)),定位自身優(yōu)勢短板。

3. 合規(guī)要點(避免賬號風(fēng)險)

  • 嚴格遵守《蘇寧開放平臺服務(wù)協(xié)議》,不超 QPS / 日調(diào)用限額;
  • 商品信息展示需保留 “蘇寧來源” 標(biāo)識(如商品頁標(biāo)注 “數(shù)據(jù)來自蘇寧開放平臺”);
  • 價格、庫存數(shù)據(jù)需實時同步(建議緩存不超過 6 小時),不展示過期信息;
  • 禁止將接口數(shù)據(jù)用于惡意比價、虛假宣傳等競爭行為。

二、參數(shù)與響應(yīng)解析:抓準(zhǔn)核心字段,避免數(shù)據(jù)冗余

蘇寧接口返回字段豐富,需針對性篩選參數(shù)、解析響應(yīng),減少無效數(shù)據(jù)傳輸。


1. 請求參數(shù)拆解(分兩類)


(1)公共請求參數(shù)(所有接口必傳)


參數(shù)名類型說明
appKeyString應(yīng)用唯一標(biāo)識(在蘇寧開放平臺 “應(yīng)用管理” 中獲?。?/td>
versionString接口版本,固定為 v1.3.0
timestampString時間戳,格式y(tǒng)yyyMMddHHmmss(如 20241001143000),與服務(wù)器時間偏差≤5 分鐘
signString簽名結(jié)果(核心,下文附算法實現(xiàn))
formatString響應(yīng)格式,固定為 json

(2)業(yè)務(wù)請求參數(shù)(單 / 批量接口差異)


接口類型參數(shù)名類型說明是否必傳
單商品查詢productCodeString蘇寧商品編碼(從商品詳情頁 URL 提?。?/td>
批量查詢productCodesString商品編碼列表,用逗號分隔(如 1000123,1000124)
通用fieldsString需返回的字段(空表示全返,建議按需篩選)
避坑點:批量查詢時productCodes最多傳 30 個編碼,超量會直接返回 “參數(shù)錯誤”,需手動分批處理。

2. 響應(yīng)字段結(jié)構(gòu)化(按業(yè)務(wù)維度分組)

接口返回字段多,按 “基礎(chǔ) - 價格 - 庫存 - 媒體 - 服務(wù) - 營銷” 分組解析,更易落地:


(1)基礎(chǔ)信息組


字段名說明落地用途
productCode商品編碼(唯一標(biāo)識)數(shù)據(jù)關(guān)聯(lián)、緩存 key
productName商品名稱頁面展示、搜索匹配
brandName品牌名品牌篩選、競品分類
shopCode/shopName店鋪編碼 / 名稱多店鋪管理、供應(yīng)商區(qū)分

(2)核心業(yè)務(wù)組(影響運營決策)


字段組關(guān)鍵字段說明避坑點
價格price/promotionPrice原價 / 促銷價(均為字符串,需轉(zhuǎn) float)注意memberPrice(會員價)需單獨判斷是否有會員權(quán)限
庫存stockFlag/stockDesc庫存狀態(tài)標(biāo)識 / 描述(1 = 有貨,0 = 缺貨)不要只看stockFlag,需結(jié)合stockDesc確認(部分場景 “無貨” 可能是區(qū)域缺貨)
服務(wù)serviceList服務(wù)列表(如 “7 天無理由”“上門安裝”)需提取serviceName字段,過濾無效服務(wù)編碼
營銷promotionList/couponList促銷活動 / 優(yōu)惠券列表注意startTime/endTime,過濾已過期活動

(3)媒體資源組(前端展示)


字段名說明處理建議
picUrls主圖 URL 列表(部分無協(xié)議頭,如 //img...)補全為 https 協(xié)議,避免混合內(nèi)容警告
videoUrl商品視頻 URL(部分商品無)前端需判斷是否為空,避免加載報錯
detailModule詳情圖模塊(type=img 時為詳情圖)遍歷提取content字段,按順序排列

三、核心代碼實現(xiàn):可復(fù)用工具類(附避坑注釋)

這部分是實戰(zhàn)核心 —— 提供簽名、客戶端、緩存 3 個工具類,均標(biāo)注關(guān)鍵避坑點,復(fù)制后替換自身appKey即可用。


1. 簽名工具類(解決 90% 的簽名失敗問題)

蘇寧簽名用 SHA256 算法,核心是 “過濾空值→ASCII 排序→拼接密鑰”,需注意參數(shù)編碼:


import hashlibimport timeimport jsonfrom urllib.parse import urlencodeclass SuningAuthUtil:    """蘇寧接口簽名與時間戳工具類(避坑版)"""    @staticmethod    def generate_sign(params, app_secret):        """        生成蘇寧簽名(關(guān)鍵步驟:空值過濾+ASCII排序)        :param params: 參數(shù)字典(含公共參數(shù)+業(yè)務(wù)參數(shù))        :param app_secret: 應(yīng)用密鑰(開放平臺獲?。?       :return: 簽名字符串(大寫)        """        try:            # 避坑1:過濾空值/空字符串參數(shù)(蘇寧會因空參數(shù)導(dǎo)致簽名失?。?           valid_params = {k: v for k, v in params.items() if v is not None and v != ""}            # 避坑2:嚴格按參數(shù)名ASCII升序排序(不能自定義順序)            sorted_params = sorted(valid_params.items(), key=lambda x: x[0])            # 避坑3:用urlencode拼接(自動處理特殊字符編碼,如中文)            param_str = urlencode(sorted_params)            # 拼接密鑰并SHA256加密            sign_str = f"{param_str}{app_secret}"            return hashlib.sha256(sign_str.encode('utf-8')).hexdigest().upper()        except Exception as e:            print(f"簽名生成失?。ǔR娫颍簠?shù)類型錯誤/密鑰為空):{str(e)}")            return None    @staticmethod    def get_timestamp():        """生成符合蘇寧格式的時間戳(避坑:精確到秒,與服務(wù)器時間差≤5分鐘)"""        return time.strftime("%Y%m%d%H%M%S")

2. 接口客戶端類(控制 QPS + 批量查詢)

內(nèi)置 QPS 限流(單應(yīng)用 5 次 / 秒)、批量查詢拆分,避免觸發(fā)接口限制:


import requestsimport timefrom threading import Lockfrom SuningAuthUtil import SuningAuthUtil  # 引入上文簽名工具類class SuningProductClient:    """蘇寧商品詳情接口客戶端(含QPS控制)"""    def __init__(self, app_key, app_secret):        self.app_key = app_key        self.app_secret = app_secret        self.base_url = "https://open.suning.com/api/mpp"        self.version = "v1.3.0"        self.timeout = 15  # 超時時間(避免卡請求)        self.qps_limit = 5  # 蘇寧QPS限制        self.last_request_time = 0        self.request_lock = Lock()  # 線程鎖控制并發(fā)    def _check_qps(self):        """避坑:控制QPS,避免超限被臨時限制IP"""        with self.request_lock:            current_time = time.time()            min_interval = 1.0 / self.qps_limit  # 每次請求最小間隔            elapsed = current_time - self.last_request_time            if elapsed < min_interval:                time.sleep(min_interval - elapsed)  # 不足間隔則等待            self.last_request_time = time.time()    def get_single_product(self, product_code, fields=None):        """獲取單個商品詳情"""        self._check_qps()        # 1. 構(gòu)造請求URL與參數(shù)        url = f"{self.base_url}/{self.version}/product/get"        biz_params = {"productCode": product_code}        if fields:            biz_params["fields"] = fields  # 按需篩選字段,減少數(shù)據(jù)量        # 2. 組裝公共參數(shù)        common_params = {            "appKey": self.app_key,            "version": self.version,            "timestamp": SuningAuthUtil.get_timestamp(),            "format": "json",            "paramJson": json.dumps(biz_params, ensure_ascii=False)  # 業(yè)務(wù)參數(shù)轉(zhuǎn)JSON        }        # 3. 生成簽名        common_params["sign"] = SuningAuthUtil.generate_sign(common_params, self.app_secret)        # 4. 發(fā)送請求        try:            response = requests.post(                url,                data=common_params,                headers={"Content-Type": "application/x-www-form-urlencoded;charset=utf-8"},                timeout=self.timeout            )            response.raise_for_status()  # 捕獲4xx/5xx錯誤            result = response.json()            # 5. 處理響應(yīng)            if result.get("code") == "0000":                return self._parse_response(result["result"])  # 結(jié)構(gòu)化解析            else:                raise Exception(f"接口錯誤:{result.get('msg')}(錯誤碼:{result.get('code')})")        except Exception as e:            print(f"單商品查詢失?。ㄉ唐肪幋a:{product_code}):{str(e)}")            return None    def get_batch_products(self, product_codes, fields=None):        """批量獲取商品詳情(避坑:最多30個編碼/次)"""        if len(product_codes) > 30:            raise ValueError("批量查詢最多支持30個商品編碼,需分批處理")        self._check_qps()        # 1. 構(gòu)造參數(shù)(類似單商品,業(yè)務(wù)參數(shù)為productCodes)        url = f"{self.base_url}/{self.version}/product/batchGet"        biz_params = {"productCodes": ",".join(product_codes)}        if fields:            biz_params["fields"] = fields        # 2. 組裝公共參數(shù)+簽名(同單商品邏輯)        common_params = {            "appKey": self.app_key,            "version": self.version,            "timestamp": SuningAuthUtil.get_timestamp(),            "format": "json",            "paramJson": json.dumps(biz_params, ensure_ascii=False)        }        common_params["sign"] = SuningAuthUtil.generate_sign(common_params, self.app_secret)        # 3. 發(fā)送請求并解析        try:            response = requests.post(url, data=common_params, timeout=self.timeout)            response.raise_for_status()            result = response.json()            if result.get("code") == "0000":                product_list = result["result"].get("productList", [])                return [self._parse_response(p) for p in product_list]  # 批量解析            else:                raise Exception(f"批量查詢錯誤:{result.get('msg')}(錯誤碼:{result.get('code')})")        except Exception as e:            print(f"批量查詢失?。ň幋a列表:{product_codes[:3]}...):{str(e)}")            return None    def _parse_response(self, raw_data):        """將原始響應(yīng)解析為結(jié)構(gòu)化數(shù)據(jù)(方便前端/數(shù)據(jù)庫使用)"""        if not raw_data:            return None        # 1. 價格信息(轉(zhuǎn)float,避免字符串計算錯誤)        price_info = {            "original_price": float(raw_data.get("price", 0)),            "promotion_price": float(raw_data.get("promotionPrice", 0)),            "member_price": float(raw_data.get("memberPrice", 0))        }        # 2. 庫存信息(結(jié)構(gòu)化判斷是否可購)        stock_info = {            "stock_flag": raw_data.get("stockFlag"),            "stock_desc": raw_data.get("stockDesc"),            "can_buy": raw_data.get("stockFlag") in ["1", "3"],  # 1=有貨,3=預(yù)售可購            "limit_buy": int(raw_data.get("limitBuyNum", 0)) > 0        }        # 3. 媒體資源(補全圖片URL協(xié)議頭)        media_info = {            "main_images": [f"https:{url}" if url.startswith("http://") else url                            for url in raw_data.get("picUrls", [])],            "detail_images": [f"https:{m['content']}" for m in raw_data.get("detailModule", [])                               if m.get("type") == "img"],            "video_url": raw_data.get("videoUrl")        }        # 4. 服務(wù)信息(提取關(guān)鍵服務(wù)名)        service_info = [s["serviceName"] for s in raw_data.get("serviceList", [])]        # 5. 整合返回        return {            "product_code": raw_data.get("productCode"),            "product_name": raw_data.get("productName"),            "brand": raw_data.get("brandName"),            "shop_name": raw_data.get("shopName"),            "price": price_info,            "stock": stock_info,            "media": media_info,            "services": service_info,            "sales": int(raw_data.get("salesVolume", 0)),            "score": float(raw_data.get("averageScore", 0)),            "update_time": raw_data.get("updateTime")        }

3. 緩存工具類(減少重復(fù)調(diào)用,提升效率)

利用 SQLite 實現(xiàn)本地緩存,避免頻繁請求接口(尤其適合商品數(shù)據(jù)變動不頻繁的場景):


import osimport jsonimport sqlite3from datetime import datetime, timedeltafrom SuningProductClient import SuningProductClientclass SuningProductCache:    """蘇寧商品詳情緩存管理器(減少接口調(diào)用次數(shù))"""    def __init__(self, app_key, app_secret, cache_dir="./suning_cache"):        self.client = SuningProductClient(app_key, app_secret)        self.cache_dir = cache_dir        self.db_path = os.path.join(cache_dir, "product_cache.db")        self._init_db()  # 初始化緩存數(shù)據(jù)庫    def _init_db(self):        """創(chuàng)建緩存表(首次使用自動初始化)"""        if not os.path.exists(self.cache_dir):            os.makedirs(self.cache_dir)        conn = sqlite3.connect(self.db_path)        cursor = conn.cursor()        cursor.execute('''            CREATE TABLE IF NOT EXISTS product (                product_code TEXT PRIMARY KEY,                data TEXT,                cache_time TEXT,                expire_time TEXT            )        ''')        conn.commit()        conn.close()    def get_product(self, product_code, fields=None, cache_ttl=3600):        """獲取商品(優(yōu)先讀緩存,過期則調(diào)用接口)"""        # 1. 嘗試讀緩存        cached_data = self._get_cached(product_code, cache_ttl)        if cached_data:            return cached_data        # 2. 緩存過期,調(diào)用接口        fresh_data = self.client.get_single_product(product_code, fields)        if fresh_data:            self._save_cache(product_code, fresh_data, cache_ttl)  # 保存新緩存        return fresh_data    def _get_cached(self, product_code, cache_ttl):        """從緩存獲取數(shù)據(jù)(判斷是否過期)"""        conn = sqlite3.connect(self.db_path)        cursor = conn.cursor()        cursor.execute(            "SELECT data, cache_time FROM product WHERE product_code = ?",            (product_code,)        )        result = cursor.fetchone()        conn.close()        if not result:            return None        # 判斷緩存是否過期        data_str, cache_time = result        cache_time_obj = datetime.strptime(cache_time, "%Y-%m-%d %H:%M:%S")        if (datetime.now() - cache_time_obj).total_seconds() > cache_ttl:            return None  # 過期返回空        return json.loads(data_str)    def _save_cache(self, product_code, data, cache_ttl):        """保存數(shù)據(jù)到緩存"""        data_str = json.dumps(data, ensure_ascii=False)        cache_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")        expire_time = (datetime.now() + timedelta(seconds=cache_ttl)).strftime("%Y-%m-%d %H:%M:%S")        conn = sqlite3.connect(self.db_path)        cursor = conn.cursor()        # 插入或更新緩存(避免重復(fù)數(shù)據(jù))        cursor.execute('''            INSERT OR REPLACE INTO product             (product_code, data, cache_time, expire_time)            VALUES (?, ?, ?, ?)        ''', (product_code, data_str, cache_time, expire_time))        conn.commit()        conn.close()    def clean_expired_cache(self, max_age=86400):        """清理過期緩存(默認保留24小時內(nèi)數(shù)據(jù))"""        expire_time = (datetime.now() - timedelta(seconds=max_age)).strftime("%Y-%m-%d %H:%M:%S")        conn = sqlite3.connect(self.db_path)        cursor = conn.cursor()        cursor.execute("DELETE FROM product WHERE cache_time < ?", (expire_time,))        deleted_count = cursor.rowcount        conn.commit()        conn.close()        print(f"清理過期緩存:共刪除{deleted_count}條記錄")        return deleted_count

四、實戰(zhàn)示例:從調(diào)用到落地(2 個常用場景)

提供 “單商品查詢”“批量對比” 兩個示例,復(fù)制后替換appKey和product_code即可運行。


1. 單商品詳情查詢(適合商品頁搭建)


def single_product_demo():    # 替換為你的蘇寧開放平臺應(yīng)用信息    APP_KEY = "your_app_key"    APP_SECRET = "your_app_secret"    # 初始化緩存管理器(兼顧效率與實時性)    cache_manager = SuningProductCache(APP_KEY, APP_SECRET)    # 要查詢的商品編碼(從蘇寧商品頁URL提取,如https://product.suning.com/0000000000/1000123456.html中的1000123456)    product_code = "1000123456"    # 按需篩選字段(只獲取需要的,減少傳輸量)    fields = "productCode,productName,price,promotionPrice,stockFlag,stockDesc,picUrls,detailModule,serviceList"        # 獲取商品詳情(緩存1小時)    product = cache_manager.get_product(product_code, fields=fields, cache_ttl=3600)    if product:        print(f"===== 商品詳情:{product['product_name']} =====")        print(f"商品編碼:{product['product_code']}")        print(f"品牌:{product['brand']}")        print(f"價格:原價¥{product['price']['original_price']} | 促銷價¥{product['price']['promotion_price']}")        print(f"庫存:{product['stock']['stock_desc']}(可購:{'是' if product['stock']['can_buy'] else '否'})")        print(f"服務(wù)保障:{'; '.join(product['services'])}")        print(f"主圖數(shù)量:{len(product['media']['main_images'])} | 詳情圖數(shù)量:{len(product['media']['detail_images'])}")        # 清理24小時前的過期緩存    cache_manager.clean_expired_cache()if __name__ == "__main__":    single_product_demo()

2. 批量商品對比(適合競品分析)


def batch_product_compare():    APP_KEY = "your_app_key"    APP_SECRET = "your_app_secret"    client = SuningProductClient(APP_KEY, APP_SECRET)    # 要對比的商品編碼列表(不超過30個)    product_codes = ["1000123456", "1000123457", "1000123458", "1000123459"]        # 批量獲取商品詳情    products = client.get_batch_products(product_codes)    if not products:        print("批量查詢失敗")        return        # 對比核心維度(價格、銷量、服務(wù))    print("===== 商品批量對比結(jié)果 =====")    for idx, p in enumerate(products, 1):        if not p:            continue        print(f"\n{idx}. 商品:{p['product_name']}(編碼:{p['product_code']})")        print(f"   價格:¥{p['price']['promotion_price']}(原價¥{p['price']['original_price']})")        print(f"   銷量:30天{p['sales']}件 | 評分:{p['score']}分")        print(f"   核心服務(wù):{'; '.join(p['services'][:3])}")  # 只顯示前3個服務(wù)if __name__ == "__main__":    batch_product_compare()

五、高頻問題避坑指南(技術(shù)論壇用戶常問)

整理對接中最容易卡殼的問題,附解決方案:


1. 簽名失敗(錯誤碼 1002)


常見原因解決方案
參數(shù)含空值 / 空字符串用valid_params過濾空值(參考簽名工具類中的邏輯)
時間戳格式錯誤 / 偏差超 5 分鐘用SuningAuthUtil.get_timestamp()生成格式,服務(wù)器同步阿里云 NTP(ntp.aliyun.com)
參數(shù)未按 ASCII 排序用sorted()函數(shù)強制排序,不要手動調(diào)整參數(shù)順序
AppSecret 錯誤登錄蘇寧開放平臺 “應(yīng)用管理”,確認密鑰是否與應(yīng)用匹配(注意區(qū)分測試 / 正式環(huán)境)

2. 調(diào)用超限(錯誤碼 429)

  • 原因:單應(yīng)用 QPS 超 5 次 / 秒,或日調(diào)用超 5 萬次;
  • 解決方案:
    1. 用_check_qps()方法控制請求間隔(參考客戶端類);
    2. 批量查詢優(yōu)先用get_batch_products(減少請求次數(shù));
    3. 非實時需求用緩存(如常規(guī)商品緩存 1-6 小時);
    4. 大促期間提前申請臨時提額(需在開放平臺提交申請)。

3. 庫存數(shù)據(jù)不準(zhǔn)(顯示有貨但實際無貨)

  • 原因:stockFlag只表示總庫存,部分 SKU(如顏色 / 尺碼)可能缺貨;
  • 解決方案:
    1. 需額外獲取specificationList字段(含 SKU 庫存);
    2. 解析specificationList中的stock字段,判斷具體 SKU 是否有貨;
    3. 前端展示時需標(biāo)注 “部分規(guī)格有貨”,避免用戶誤解。

4. 圖片加載失敗

  • 原因:picUrls返回的 URL 無協(xié)議頭(如 //img.suning.cn/...);
  • 解決方案:用_parse_response()中的邏輯,補全為https:協(xié)議頭。

結(jié)尾互動

在蘇寧接口對接中,你是否遇到過 “簽名調(diào)了半天通不了”“批量查詢超 30 個就報錯”“庫存數(shù)據(jù)和頁面對不上” 的問題?歡迎評論區(qū)說下你的具體卡殼場景,我會針對性拆解解決方案;也可以直接私聊,相互交流學(xué)習(xí)呀


請登錄后查看

我是一只魚 最后編輯于2025-09-18 10:00:58

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認正序 回復(fù)倒序 點贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
83
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產(chǎn)品動態(tài) 精選推薦 首頁頭條 首頁動態(tài) 首頁推薦
取 消 確 定
回復(fù)
回復(fù)
問題:
問題自動獲取的帖子內(nèi)容,不準(zhǔn)確時需要手動修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認打賞

微信登錄/注冊

切換手機號登錄

{{ bind_phone ? '綁定手機' : '手機登錄'}}

{{codeText}}
切換微信登錄/注冊
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服