微信自定义交易组件开发步骤(视频号加小程序实现直播带货) 你进来看不懂算我输!

错误状态码查询地址: 官方文档

全量上传商品规则地址: 官方规则文档

第一步:

获取微信调取接口统一凭证,并进行缓存, 有效时长2小时

微信官方文档: 获取全局调用凭证文档

  1. 全局凭证, 有效时长为2小时, 所以定时每两小时请求一次
def get_access_token():
    """
    """
    payload = {
    'grant_type': 'client_credential',
    'appid': APP_ID,
    'secret': APP_SECRET
    }
    # 建立reids连接
    conn = redis.Redis ( connection_pool=POOL )
    # 获取 token
    access_token = conn.get("ACCESS_TOKEN")
    if not access_token:
        req = requests.get('https://api.weixin.qq.com/cgi-bin/token', params=payload, verify=False)
        access_token = req.json().get('access_token')
        # 保存到redis 中, 有效时长7200秒
        conn.set('ACCESS_TOKEN', access_token, ex=7200)

第二步:

获取商品类目(上传商品时有些必填参数,是在调用这个接口后返回的)

微信文档地址: 获取商品类目文档

请求地址: https://api.weixin.qq.com/shop/cat/get?access_token=xxxxx
请求方式: POST

  1. 这里需注意官方文档没有请求参数的示例, 我原本以为没有, 只需要拼接url凭证就好,其实不然, post 请求必须得是JSON 格式.
  2. 该请求后的结果不是常变参数, 所以记得缓存, 我是存在msyql每天定时请求一次更新参数.

请求参数示例:

payload = {
    "access_token": access_token
}

代码示例:

def get_category():
    query_cate_url = "https://api.weixin.qq.com/shop/cat/get?access_token={}".format(access_token)
    requests.packages.urllib3.disable_warnings()
    # 请求类目接口
    data = {
        "access_token":access_token
        }
    res = requests.post(url=query_cate_url, data=json.dumps(data), verify=False)
    c_data = res.json

返回值

{
	'errcode': 0,
	'third_cat_list': [{
		'third_cat_id': 1007,
		'third_cat_name': '漱口水',
		'qualification': '',
		'qualification_type': 0,
		'product_qualification': '',
		'product_qualification_type': 0,
		'first_cat_id': 1001,
		'first_cat_name': '个人护理',
		'second_cat_id': 1002,
		'second_cat_name': '口腔护理'
	}, {
		'third_cat_id': 1154,
		'third_cat_name': '厨房储物器皿',
		'qualification': '',
		'qualification_type': 0,
		'product_qualification': '国产的塑料、密胺或纸质产品需上传《全国工业产品生产许可证》 ',
		'product_qualification_type': 1,
		'first_cat_id': 1142,
		'first_cat_name': '厨具',
		'second_cat_id': 1151,
		'second_cat_name': '厨房配件'
	},]
}

第三步

获取 特殊商品, 以及品牌等, 需要上传品牌信息,以及 类目资质信息

第四步:

商品管理

微信官方文档: 商品管理

注意:

  1. third_cat_id请根据获取类目接口拿到,并确定其qualification_type类目资质是否为必填,若为必填,那么要先调类目资质审核接口进行该third_cat_id的资质审核;

  2. qualification_pics请根据获取类目接口中对应third_cat_id的product_qualification_type为依据,若为必填,那么该字段需要加上该商品的资质图片;

  3. 若需要上传某品牌商品,需要按照微信小商店开通规则开通对应品牌使用权限。微信小商店品牌开通规则:点击跳转,若无品牌可指定无品牌
    (无品牌默认brand_id: 2100000000)

  4. 库存字段stock_num注意如果是0则无法在视频号直播上架该商品,库存和价格字段可以通过免审更新接口更新

  5. 需要注意的是商品更新时都需要product_id, 所以在我们上传商品时,返回的product_id需要存入本地库表


请求方式: POST

请求类型: JSON / application/json;charset=utf-8


添加商品

请求地址: https://api.weixin.qq.com/shop/spu/add?access_token=xxxxxxxxx

更新商品

请求地址: https://api.weixin.qq.com/shop/spu/update?access_token=xxxxxxxxx

更新商品部分字段(免审核)

请求地址: https://api.weixin.qq.com/shop/spu/update_without_audit?access_token=xxxxxxxxx

上架商品

请求地址: https://api.weixin.qq.com/shop/spu/listing?access_token=xxxxxxxxx

下架商品

请求地址: https://api.weixin.qq.com/shop/spu/delisting?access_token=xxxxxxxxx

获取商品

请求地址: https://api.weixin.qq.com/shop/spu/get?access_token=xxxxxxxxx

获取商品列表

请求地址: https://api.weixin.qq.com/shop/spu/get_list?access_token=xxxxxxxxx

删除商品

请求地址: https://api.weixin.qq.com/shop/spu/del?access_token=xxxxxxxxx

请求参数示例官方已经很清楚了, 对应的去做数据填充就好!

请求代码示例:

def add_goodsInfo(access_token):
    access_token = access_token
    query_url = "https://api.weixin.qq.com/shop/spu/update?access_token={}".format(access_token)
    res = requests.post(url=query_url, data=json.dumps(payload), headers=headers, verify=False)

关于同步上商品审核通知怎么看?

请移步: 微信消息回调

关于同步商品时, 通知上传商品中文出现乱码,解决办法?

请移步: 中文乱码

持续更新相关要求信息

  1. 生成订单的ticket全量校验开启,请商家务必提前传入所有商品并通过审核,或取消使用交易组件,否则将导致未上传的商品无法交易
  2. 官方会根据半小时内所提交的商品进行批量抽检, 若过关率高则一致放行,除了没过的, 如果抽检过关率低, 那么则全部打回,重新上传, 所以上传之前提前查看相关规则: 商品名称及详情相关规则

最后更新时间: 2021-02-05

后续会持续更新相关的接口信息, 避免采坑
可联系博主,相互学习交流

你可能感兴趣的:(python,微信小程序,微信视频号)