# 推广数据接口

# 一、生成推广素材

# 接口说明

商户通过对接该接口,推广员可以通过以下两种方式推广所绑定的商家小程序: a)小程序卡片:进入小程序后,直接转发商品/活动页面至单聊/群聊,以小程序卡片的形式推广; b)小程序素材:转发通过平台转链接口生成的小程序码、tag等小程序素材,以小程序图片/链接素材的形式推广。 注:推广素材的有效期为30天,素材失效后请重新获取。

# 请求地址

POST https://api.weixin.qq.com/promoter/getsharematerial?access_token=ACCESS_TOKEN

# 请求参数

参数 类型 是否必填 说明
path string 小程序页面path
openid string 推广员的openid或unionid
extra_info string 自定义参数,长度不能超过80个字符
title string 页面名称,长度不能超过20个字符,默认为“推广活动页”
share_type uint32 0:三种分享素材全返回 1、短链 2、带参path 3:小程序码(默认全部返回)
env_version string 默认正式版,develop: 开发版 , trial: 体验版,仅短链支持跳转开发版/体验版

注1:只有商家已声明且推广员已授权才可生成分享素材,否则会返回103006(数据不存在)。 注2:分享素材的有效期为30天,素材失效后请重新获取。 注3:只有短链(share_type=1)支持跳转到开发版/体验版。

# 请求示例

{
  "path": "xxxxx",
  "openid": "xxxxx",
  "extra_info": "xxxxx",
  "title": "xxxxx",
  "share_type": 0,
  "env_version": "trial"
}

# 返回值

属性 类型 说明
share_path string 带参path
qrcode string 小程序码(图片base64)
tag string 短链
errcode int32 错误码
errmsg string 错误信息

# 返回数据示例

{
  "share_path": "xxxxx",
  "qrcode": "xxxxx",
  "tag": "xxxxx",
  "errcode": 0,
  "errmsg": "OK"
}

# 二、分析触达效果

# 接口说明

商家可通过接口查询特定推广员在特定时间内带来的访问用户情况。

# 请求地址

POST https://api.weixin.qq.com/promoter/getrelation?access_token=ACCESS_TOKEN

# 请求参数

参数 类型 是否必填 说明
openid string 推广员的openid或unionid
begin_time uint32 触达时间开始秒级时间戳
end_time uint32 触达时间结束秒级时间戳
scene uint32 触达场景值,枚举值参考场景值列表
path string 触达path,原生分享path里参数可能乱序导致搜不到
start_id string 用于分页时透传,单次拉取上限为1000,超过1000须分页
need_unionid uint32 默认返回openid,填1:返回unionid

# 请求示例

{
  "openid": "xxxxx",
  "begin_time": 1668614400,
  "end_time": 1668666429,
  "scene": 1077,
  "path": "pages/xxxxx",
  "start_id": "123",
  "need_unionid": 1
}

# 返回值

属性 类型 说明
promoter_openid string 推广员的openid或unionid
role_id uint32 角色id
retail_id string 门店id
extra_info string 推广员参数
openid string 触达后访问小程序的用户openid或unionid
create_time uint32 触达时间秒级时间戳
path string 触达path
scene uint32 触达场景值,枚举值参考场景值列表
share_extra_info string 生成分享素材时的自定义参数
total_cnt uint32 拉取的推广员总数
start_id string 用于分页时透传
errcode int32 错误码
errmsg string 错误信息

注:需要分页时把返回的start_id塞到请求里,如果total_cnt小于1000或者返回为空(错误码:103006,数据不存在)表明数据拉取完成。

# 返回数据示例

{
  "relation_list":
  [
    {
      "promoter_openid": "xxxxx",
      "role_id": 1,
      "retail_id": "xxxxx",
      "extra_info": "xxxxx",
      "openid": "xxxxx",
      "create_time": 1668667349,
      "path": "pages/xxxxx",
      "scene": 1077,
      "share_extra_info": "xxxxx"
    },
    {
      "promoter_openid": "xxxxx",
      "role_id": 1,
      "retail_id": "xxxxx",
      "extra_info": "xxxxx",
      "openid": "xxxxx",
      "create_time": 1668667349,
      "path": "pages/xxxxx",
      "scene": 1077,
      "share_extra_info": "xxxxx"
    }
  ],
  "total_cnt": 2,
  "start_id": "2",
  "errcode": 0,
  "errmsg": "OK"
}

# 三、查询推广订单

# 接口说明

本接口所查询的订单将归因给 订单产生前最后触达用户(触达:用户通过推广素材进入小程序)的推广员,若商家有其他诉求(比如订单应当归属于用户所绑定的推广员,而与推广员触达用户的先后无关),可以考虑基于推广员对用户的触达效果(参考「第二节」)、结合自身的订单数据做推广订单的归因。

# 请求地址

POST https://api.weixin.qq.com/promoter/getorder?access_token=ACCESS_TOKEN

# 请求参数

参数 类型 是否必填 说明
openid string 推广员的openid或unionid
mch_id string 商户号
trade_no string 微信支付订单号
out_trade_no string 商户订单号
status uint32 订单状态 1:支付完成 2:退款受理
start_id string 用于分页时透传,单次拉取上限为1000,超过1000须分页
need_unionid uint32 默认返回openid,填1:返回unionid
date uint32 订单支付日期,格式为yyyyMMdd,例如20230801

# 请求示例

{
  "openid": "xxxxx",
  "mch_id": "xxxxx",
  "trade_no": "xxxxx",
  "out_trade_no": "xxxxx",
  "status": 1,
  "start_id": "123",
  "need_unionid": 1
}

# 返回值

属性 类型 说明
promoter_openid string 推广员的openid或unionid
role_id uint32 角色id
retail_id string 门店id
extra_info string 推广员参数
openid string 付款用户的openid或unionid
create_time uint32 触达时间秒级时间戳
path string 触达path
scene uint32 触达场景值,枚举值参考场景值列表
share_extra_info string 生成分享素材时的自定义参数
mch_id string 商户号
trade_no string 微信支付订单号
out_trade_no string 商户订单号
status uint32 订单状态 1:支付完成 2:退款受理
paid_amount uint32 用户支付金额,单位为分
paid_time uint32 支付完成时间
refunded_time uint32 退款创建时间
total_cnt uint32 拉取的推广员总数
start_id string 用于分页时透传
errcode int32 错误码
errmsg string 错误信息

注:需要分页时把返回的start_id塞到请求里,如果total_cnt小于1000或者返回为空(错误码:103006,数据不存在)表明数据拉取完成。

# 返回数据示例

{
  "order_list":
  [
    {
      "promoter_openid": "xxxxx",
      "role_id": 1,
      "retail_id": "xxxxx",
      "extra_info": "xxxxx",
      "openid": "xxxxx",
      "create_time": 1668667349,
      "path": "pages/xxxxx",
      "scene": 1077,
      "share_extra_info": "xxxxx",
      "mch_id": "xxxxx",
      "trade_no": "xxxxx",
      "out_trade_no": "xxxxx",
      "status": 1,
      "paid_amount": 150,
      "paid_time": 1668667360
    },
    {
      "promoter_openid": "xxxxx",
      "role_id": 1,
      "retail_id": "xxxxx",
      "extra_info": "xxxxx",
      "openid": "xxxxx",
      "create_time": 1668667349,
      "path": "pages/xxxxx",
      "scene": 1077,
      "share_extra_info": "xxxxx",
      "mch_id": "xxxxx",
      "trade_no": "xxxxx",
      "out_trade_no": "xxxxx",
      "status": 2,
      "paid_amount": 150,
      "paid_time": 1668667360,
      "paid_time": 1668668000
    }
  ],
  "total_cnt": 2,
  "start_id": "2",
  "errcode": 0,
  "errmsg": "OK"
}