# 【接入指引】微信小程序:会员订阅

# 【产品介绍】

# 1.  核心能力

● 一次订阅,多次扣费:仅需和用户完成一次签约,后续可持续按周期发起扣费,完成周期会员续费。

● 会员订阅消息:对于有订阅关系的用户,微信开放平台会新增「会员专属」长期订阅消息;详见:会员订阅消息接入指引

*仅支持安卓设备调用

# 2.  用户交互示意

# 3.  接入模式说明

a. 用户首次签约、即扣费

用户签约后,可在签约开始的12个小时内直接发起扣费,首次扣费无需向用户发起预扣费通知

b. 用户首次签约时,不扣款

用户先免费试用,后续再发起扣费,每次扣款、均需在t-2日向用户发送预扣费通知

# 4.  扣费说明

扣费 - 首次(用户签约12小时内):

校验项 业务规则
扣费权限 用户与小程序有签约 & 扣费时签约关系生效
扣费时间 用户签约起12小时内
扣费金额 最低1元,最高为道具价格

扣费 - 非首次(用户签约12小时以外)

校验项 业务规则
扣费权限 用户与小程序有签约 & 扣费时签约关系生效
扣费日期 商户在t-2日向用户发送了预扣费通知,t日可扣费
扣费时间 07:10~21:50
扣费金额 需和当次预扣费金额保持一致

预扣费:

校验项 业务规则
扣费权限 用户与商户有签约 & 扣费时签约关系生效
扣费日期 「首次」发送预扣费通知:无日期限制「非首次」预扣费通知:当前日期 >= 上一个会员周期结束日 - 3日
预扣费时间 07:10~21:50
扣费金额 最低1元,最高为道具价格

# 5.  结算周期、费率

当前开放三种周期的会员:

支付方式 会员周期 结算周期
主动支付 / T+3
会员订阅 单周会员 T+7
双周会员 T+14
月会员 T+31

虚拟支付,技术服务费率:

支付方式 小程序类目 技术服务费率 说明
一次型支付 短剧 10% 政策激励:抽10返5广告金
小说 1% 政策激励:限时优惠费率
其他虚拟类目 1% /
订阅型支付 / 10% /

# 6.  准入标准

● 已接入小程序虚拟支付

● 小程序首次发布时间至今 >= 90天

● 小程序完成认证备案

● 近30天日均dau >= 1万

# 【对接开发】

# 接入流程

步骤 流程 对接方式 api接口名称
初始化配置 开通权限授权 邮件 /
申请代扣模版 邮件 /
配置订阅道具 api start_upload_goodsstart_publish_goods道具价格 = 会员原价(不可以是优惠价)
道具、模版关联 邮件 /
签约、解约 用户签约 api wx.requestSubscribeSign
签约、解约结果通知 api xpay_subscribe_signing_result_notify
商家解约 api cancel_subscribe_contract
查询签约状态 api query_subscribe_contract
发起扣款 预通知扣款 api send_subscribe_pre_payment
发起订阅扣款 api submit_subscribe_pay_order
扣款失败通知 api 事件类型:xpay_subscribe_pay_fail_notify
扣款成功通知 api 事件类型:xpay_goods_deliver_notify
查询扣款订单 api query_order
退款 申请退款 api refund_order
查询退款 api query_order

# 申请开通、配置模版

收件人:wx_virtualpayment@tencent.com

流程 对接方式 前置流程 邮件主题 邮件正文 邮件说明
开通权限授权
(小程序维度)
邮件 已和小程序产品团队确认接入意愿 申请开通小程序会员订阅 - 小程序昵称 - 申请日期 小程序昵称:
小程序appid:
虚拟支付商户号:
小程序主体:
小程序类目:

业务模式:主营业务,小程序dau,交易金额
申请用途:
会员相关产品页面交互:(开通、续费、管理流程,图片jpg、png格式,文件大小不超过2MB)

注意事项:
● 不允许使用拍照图片
● 需把完整的交互都放在一张图片里
● 购买记录页面需要出现客服电话,且客服电话需要完成认证
认证方式

交互示意:
申请代扣模版
(道具维度)
已收到开通权限授权成功邮件
(预计需3个工作日)
申请配置代扣模版 - 小程序昵称 - 申请日期 小程序昵称:
小程序appid:
虚拟支付商户号:
小程序主体:
小程序类目:


扣费周期:
会员价格(原价):
产品介绍说明url:官方网站,需支持访问
产品价目表:图片jpg、png格式,文件大小不超过2MB
扣费产品介绍:用户操作主路径,会员开通、续费、管理流程,图片jpg、png格式,文件大小不超过2MB
注意事项:
● 每一个模版,需单独说明以下内容
● 价目表需和交互示意搭配,说明优惠价格、原价

价目表示意:
短剧、小说周会员<=25,双周、月<=50,其他行业无此限制


道具、模版管理
(道具维度)
已收到代扣模版配置成功邮件,获取模版ID
(预计需3个工作日)
已通过api创建会员订阅道具
申请代扣模版、会员道具关联 - 小程序昵称 - 申请日期 小程序昵称:
小程序appid:
虚拟支付商户号:
小程序主体:
小程序类目:

代扣模版ID:
会员道具ID:
道具、模版一一对应;
道具价格 = 会员原价;
道具周期 = 会员周期

# 接口调用

# 支付签名

签名算法伪代码为:

paySig = to_hex(hmac_sha256(appKey,uri + '&' + signData))

参数 wx API 服务器API
appKey 可通过小程序MP查看:虚拟支付 -> 基本配置 -> 基础配置中的沙箱AppKey和现网AppKey。注意:订阅制接口调试请走现网环境,env = 0,使用现网AppKey 同理
signData 基础库的signData字段 api的post body
uri 签约接口填:requestSubscribeSign 举例:对于https://api.weixin.qq.com/xpay/query_user_balance来说,uri = /xpay/query_user_balance
# 用户签约wx.requestSubscribeSign

注:该接口返回值不能作为签约成功的判定标准,需以签约结果通知/签约查询为准

字段 类型 说明
signData string json字符串
paySig string 支付签名, 详见签名详解uri:requestSubscribeSign
signature string 用户态签名, 详见签名详解
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用完成的回调函数(调用成功、失败都会执行)

signData 参数

字段 类型 说明
productId string 订阅道具的id
outContractCode string 签约协议号,由商户生成,只能是数字、大小写字母的描述,长度不超过64。如重新发起签约,需更换单号重试,同一用户也需要换单。示例值:100001256(建议以用户纬度生成,避免重复)
contractAccountName string 签约用户的名称,用于页面展示不允许传入以下字符:()'"<>
openid string 用户 openid

返回参数

字段 类型 说明
errcode int 错误码
errmsg string "ERR_SUBSCRIBE_DEVICE_NOT_ALLOWED"(苹果设备暂未开放订阅制)"USER_DATA_ILLEGAL""OPENID_ILLEGAL""OPENID_NOT_MATCH""SIGNATURE_INVALID""EC_PAY_SIG_INVALID""ERR_SUBSCRIBE_OUT_CONTRACT_CODE_ILLEGAL""PRODUCT_ID_NOT_PUBLISH""ERR_CODE_SUBSCIRBE_PRODUCT_NOT_BIND""ERR_SUBSCIRBE_CONTRACT_CODE_REPEAT" "EC_SYS" - (系统错误,联系开发人员排查)
# 配置订阅道具 start_upload_goods

说明

该接口为异步接口,上传后请用query_upload_goods确认

多个道具请分批次上传,一次上传一个

地址

https://api.weixin.qq.com/xpay/start_upload_goods?access_token=xxx&pay_sig=xxx

请求参数

字段 类型 说明
upload_item array 上传的商品列表
env int 0-正式环境 1-沙箱环境

upload_item的每一项内容如下:

字段 类型 说明
id string 道具id,长度(0,64],字符只允许使用字母、数字、'_'、'-'
name string 道具名称,长度(0,1024]
subscribe_period_days int 订阅周期,只能为 7,14,31
price int 道具单价,单位分,需要大于0
remark string 道具备注,长度(0,1024]
item_url string 道具图片的url地址,当前仅支持jpg,png等格式

返回参数

字段 类型 说明
errcode int 错误码
errmsg string 错误信息
# 发布订阅道具 start_publish_goods

说明

该接口为异步接口,发布后请用 query_publish_goods 确认

发布操作格式易错,正确格式参考:{"env":0,"publish_item":[{"id":"100001"},{"id":"100002"},{"id":"100003"}]}

地址

https://api.weixin.qq.com/xpay/start_publish_goods?access_token=xxx&pay_sig=xxx

请求参数

字段 类型 说明
publish_item array 发布的商品列表
env int 0-正式环境 1-沙箱环境

publish_item的每一项内容如下:

字段 类型 说明
id string 道具id

返回参数

字段 类型 说明
errcode int 错误码
errmsg string 错误信息
# 商家解约 cancel_subscribe_contract

地址:https://api.weixin.qq.com/xpay/cancel_subscribe_contract?access_token=xxx&pay_sig=xxx

参数 类型 备注
openid String 用户的openid
termination_reason String 解约原因
product_id String 道具 id,需为订阅制道具
out_contract_code string 签约时传入的协议号

返回值:

参数 类型 备注
errcode Number 错误码
errmsg String 错误信息
# 查询签约关系 query_subscribe_contract

地址:https://api.weixin.qq.com/xpay/query_subscribe_contract?access_token=xxx&pay_sig=xxx

参数 类型 备注
openid String 用户的openid
product_id String 道具 id,需为订阅制道具
out_contract_code string 签约时传入的协议号

返回值:

参数 类型 备注
errcode Number 错误码
errmsg String 错误信息
authorization_state String SIGNED: 签约生效中。TERMINATED: 生效的签约协议已被解约。此时协议已经到达终态,该协议无法再次进行签约;可更换协议号再发起签约。UNBINDUSER: 从未签约过
# 预通知扣款 send_subscribe_pre_payment

地址:https://api.weixin.qq.com/xpay/send_subscribe_pre_payment?access_token=xxx&pay_sig=xxx

参数 类型 备注
openid string 用户的openid
deduct_price int 金额/分,属于 [1,道具价格]
product_id string 道具 id,需为订阅制道具
out_contract_code string 签约时传入的协议号

错误码:

errcode errmsg 原因
-1 "sys error" 非预期系统错误,可重试
690000001 "not allowed to trigger pre payment at this time" 预通知时间不合法 1.  上一单成功支付,且订阅周期到期 T-3 之前 2.  上一单支付失败 or 没有发起支付 or 正在支付中,且在上一单的 T+8 内 3.  发起时间不在 07:10 ~ 21:50
674690001 "product type not support""input deduct_price not valied" 参数错误
690000000 "user not subscribed" 用户未签约
# 发起订阅扣款 submit_subscribe_pay_order

受理后扣款,返回成功仅代表受理成功,不代表扣款成功。扣款成功后再通过xpay_goods_deliver_notify通知

如受理成功后,通知/查询到扣款失败,可在【t日~t+6日】发起重试,同一用户、同一道具,一个小时内仅可以重试一次。

地址:https://api.weixin.qq.com/xpay/submit_subscribe_pay_order?access_token=xxx&pay_sig=xxx

请求参数

字段 类型 必填 说明
openid string 用户的openid
offer_id string 在米大师侧申请的应用 id, mp-支付基础配置中的offerid
buy_quantity number 购买数量,填:1
env number 环境配置, 0 米大师正式环境, 1 米大师沙箱环境, 默认为 0
currency_type string 币种,填:CNY
product_id string 订阅道具ID
deduct_price number 扣款金额(分), 属于 [1,道具价格]
order_id string 业务订单号, 每个订单号只能使用一次, 重复使用会失败(不建议业务强依赖平台对这里的唯一性校验),要求8-32个字符内, 只能是数字、大小写字母、符号 -|*@组成, 不能以下划线()开头,与主动支付的outTradeNo 一样
attach string 透传数据, 发货通知时会透传给开发者

返回参数

字段 类型 说明
errcode int 错误码
errmsg string 错误信息

错误码

错误码 说明
1001 参数错误
-15001 参数错误,具体原因见err_msg
-15002 outTradeNo重复使用,请换新单号重试
-15003 系统错误
-15004 currencyType错误,目前只能填CNY
-15005 用户态签名signature错误
-15006 支付签名paySig错误
-15007 session_key过期
-15008 二级商户进件未完成
-15009 代币未发布
-15010 道具productId未发布
-15011 现网版本的env只能是0,不能填1(沙盒环境)
-15012 调用米大师失败导致关单,请换新单号重试
-15013 goodsPrice道具价格错误
-15014 道具/代币发布未生效,禁止下单,大概10分钟后生效
-15016 signData格式有问题
-15017 此商家涉嫌违规,收款功能已被限制,暂无法支付。商家可以登录微信商户平台/微信支付商家助手小程序查看原因和解决方案
-15018 代币或者道具productId审核不通过
-15019 调微信报商户受限,商家可以登录微信商户平台/微信支付商家助手小程序查看原因和解决方案
-15020 操作过快,请稍候再试
-15021 小程序被限频交易
-15025 不存在预通知单/重复下单
-15026 扣款时间不合法
-15027 扣款价格不合法
# 查询扣款订单 query_order

地址

https://api.weixin.qq.com/xpay/query_order?access_token=xxx&pay_sig=xxx

请求参数

字段 类型 说明
openid string 用户的openid
env int 0-正式环境 1-沙箱环境
order_id string 创建的订单号
wx_order_id string 微信内部单号(与order_id二选一)

返回参数

字段 类型 说明
errcode int 错误码
errmsg string 错误信息
order object 订单信息

其中order的内容如下:

字段 类型 说明
order_id string 订单号
create_time int 创建时间
update_time int 更新时间
status int 当前状态 0-订单初始化(未创建成功,不可用于支付)1-订单创建成功 2-订单已经支付,待发货 3-订单发货中 4-订单已发货 5-订单已经退款 6-订单已经关闭(不可再使用) 7-订单退款失败 8-用户退款完成 9-回收广告金完成 10-分账回退完成
biz_type int 业务类型0-短剧
order_fee int 订单金额,单位分
coupon_fee int 订单优惠金额,单位分(暂无此字段)
paid_fee int 用户支付金额
order_type int 订单类型0-支付单 1-退款单
refund_fee int 当类型为退款单时表示退款金额,单位分
paid_time int 支付/退款时间,unix秒级时间戳
provide_time int 发货时间
biz_meta string 订单创建时传的信息
env_type int 环境类型1-现网 2-沙箱
token string 下单时米大师返回的token
left_fee int 支付单类型时表示此单经过退款还剩余的金额,单位分
wx_order_id string 微信内部单号
channel_order_id string 渠道单号,为用户微信支付详情页面上的商户单号
wxpay_order_id string 微信支付交易单号,为用户微信支付详情页面上的交易单号
sett_time int 结算时间的秒级时间戳,大于0表示结算成功
sett_state int 结算状态0-未开始结算 1-结算中 2-结算成功 3-待结算(与0相同)
platform_fee_fen int 虚拟支付技术服务费,单位为分;sett_state = 2时返回
cps_fee_fen int 公众号、视频号平台的cps服务费,单位为分;sett_state = 2时返回
# 申请退款 refund_order

说明

对使用jsapi接口下的单进行退款,此接口只是启动退款任务成功,启动后需要调用query_order接口来查询退款单状态,等状态变成退款完成后即为最终成功

地址

https://api.weixin.qq.com/xpay/refund_order?access_token=xxx&pay_sig=xxx

请求参数

字段 类型 说明
openid string 下单时的用户openid
order_id string 下单时的单号,即jsapi接口传入的OutTradeNo,与wx_order_id字段二选一
wx_order_id string 支付单对应的微信侧单号,与order_id字段二选一
refund_order_id string 本次退款时需要传的单号,长度为[8,32],字符只允许使用字母、数字、'_'、'-'
left_fee int 当前单剩余可退金额,单位分,可以通过调用query_order接口查到
refund_fee int 本次退款金额,单位分,需要(0,left_fee]
biz_meta string 商家自定义数据,传入后可在query_order接口查询时原样返回,长度需要[0,1024]
refund_reason string 退款原因,当前仅支持以下值 0-暂无描述 1-产品问题,影响使用或效果不佳 2-售后问题,无法满足需求 3-意愿问题,用户主动退款 4-价格问题 5:其他原因
req_from string 退款来源,当前仅支持以下值 1-人工客服退款,即用户电话给客服,由客服发起退款流程 2-用户自己发起退款流程 3-其它
env int 0-正式环境 1-沙箱环境

返回参数

字段 类型 说明
errcode int 错误码
errmsg string 错误信息
refund_order_id string 退款单号
refund_wx_order_id string 退款单的微信侧单号
pay_order_id string 该退款单对应的支付单单号
pay_wx_order_id string 该退款单对应的支付单微信侧单号
# 签约、解约结果通知 xpay_subscribe_signing_result_notify

说明:

1.  建议通过 query_subscribe_contract 接口查询订单兜底

2.  按正确格式回复该通知

请求参数

基础字段

字段 类型 备注
ToUserName String 小程序原始ID
FromUserName String 该事件消息的openid,道具发货场景固定为微信官方的openid
CreateTime Number 消息发送时间
MsgType String 消息类型,固定为:event
Event String 事件类型xpay_subscribe_signing_result_notify

特殊字段

字段 类型 备注
Action String contract_notify(签约通知)/cancel_contract_notify(解约通知)
UserOpenid String 发起签约时的 openid
OpenorcloseTime Number 时间戳,签约/解约时间
ProductId String 道具 id
OutContractCode String 商户签约协议号
ContractWxAppid String 签约 appid

返回参数

字段 类型 备注
ErrCode Number 发送状态。0:成功,其他:失败
ErrMsg String (非必填)错误原因,用于调试。在errcode非0 的情况下返回

返回格式参考消息推送文档:消息推送 | 微信开放文档

XML 示例:

"\

0\ success\

"

# 扣款失败结果通知 xpay_subscribe_pay_fail_notify

注:

1.  建议通过 query_order 接口查询订单兜底,状态为 13 则为扣款失败

2.  按正确格式回复该通知

请求参数

基础字段

字段 类型 备注
ToUserName String 小程序原始ID
FromUserName String 该事件消息的openid,道具发货场景固定为微信官方的openid
CreateTime Number 消息发送时间
MsgType String 消息类型,固定为:event
Event String 事件类型xpay_subscribe_pay_fail_notify

特殊字段

字段 类型 备注
OpenId String 用户openid
OutTradeNo String 业务订单号
Env Number 环境配置 0:现网环境(也叫正式环境) 1:沙箱环境
WeChatPayInfo Object 微信支付信息 非微信支付渠道可能没有
GoodsInfo Object 道具参数信息
ContractWxAppid String 签约 appid

WeChatPayInfo内容

字段 类型 备注
MchOrderNo String 微信支付商户单号
TransactionId String 交易单号(微信支付订单号)
PaidTime Number 用户支付时间,Linux秒级时间戳

GoodsInfo内容

字段 类型 备注
ProductId String 道具ID
Quantity Number 数量
OrigPrice Number 物品原始价格 (单位:分)
ActualPrice Number 物品实际支付价格(单位:分)
Attach String 透传信息
SubscribePeriodDays Number 订阅周期

返回参数

字段 类型 备注
ErrCode Number 发送状态。0:成功
ErrMsg String (非必填)错误原因,用于调试。在errcode非0 的情况下可以返回

返回格式参考消息推送文档:消息推送 | 微信开放文档

XML 示例:

"\

0\ success\

"

# 扣款成功通知 xpay_goods_deliver_notify

请求参数

字段 类型 说明
ToUserName String 小程序原始ID
FromUserName String 该事件消息的openid,道具发货场景固定为微信官方的openid
CreateTime Number 消息发送时间
MsgType String 消息类型,固定为:event
Event String 事件类型 xpay_goods_deliver_notify
OpenId String 用户openid
OutTradeNo String 业务订单号
Env Number 环境配置 0:现网环境(也叫正式环境) 1:沙箱环境
WeChatPayInfo Object 微信支付信息 非微信支付渠道可能没有
GoodsInfo Object 道具参数信息
TeamInfo Object 拼团信息

WeChatPayInfo内容如下:

字段 类型 说明
MchOrderNo String 微信支付商户单号
TransactionId String 交易单号(微信支付订单号)
PaidTime Number 用户支付时间,Linux秒级时间戳

GoodsInfo内容如下:

字段 类型 说明
ProductId String 道具ID
Quantity Number 数量
OrigPrice Number 物品原始价格 (单位:分)
ActualPrice Number 物品实际支付价格(单位:分)
Attach String 透传信息

TeamInfo内容如下:

字段 类型 说明
ActivityId String 活动id
TeamId String 团id
TeamType Number 团类型1-支付全部,拼成退款
TeamAction 0-创团 1-参团

返回参数

字段 类型 是否必填 说明
ErrCode Number 发送状态。0:成功,其他:失败 todo
ErrMsg String 错误原因,用于调试。在errcode非0 的情况下可以返回

# 【运营规范】

为响应工业和信息化部相关通知,增强用户在签约流程中的感知及交易保障,保障用户账户权益,维护良好的信息消费环境,现微信开放平台针对小程序自动续费订阅会员能力的使用,推进以下的运营相关规范:

# 用户签约前

1.  开发者申请自动续费订阅会员能力时,必须明确在服务详情中说明优惠结束后,每个周期扣款的原始金额为多少元,不得用小字、不得做模糊描述处理,须用户明确感知。

2.  自动续费订阅会员能力为开发者提供自定义扣款金额能力,但是扣款金额不得超过申请委托代扣模板的上限,不得低于平台规定的最低下限。

3.  申请自动续费订阅会员能力时,为保障用户权益,开发者需缴纳相应金额的交易保证金,保证金按照《小程序交易保证金管理规定》进行管理

4.  开发者申请自动续费订阅会员能力时,必须提供《会员自动续费服务协议》供平台审核,平台将合理判断是否有滥用能力、侵犯消费者合法权益等行为,审核通过后方可开放自动续费订阅会员能力。

a.  须在《会员自动续费服务协议》中明确展示订阅会员服务所包含的内容、服务周期、计费周期以及其他法律要求的等内容。

b.  须在《会员自动续费服务协议》中明确展示自动续费服务的退订方式。明确指引iOS用户、安卓用户在不同的支付平台的退订路径,该流程不得只在常见问题等类似界面展示。

c.  建议在《会员自动续费服务协议》中明确展示关于补扣款的条款内容,因为在扣费日期有可能因为网络、用户账户问题或余额不足导致不能正常扣费续费,在用户未主动明确取消服务前,平台将根据此前开发者与用户达成的委托在扣费日期继续发出续费代扣指令,一旦扣款成功,小程序将继续为用户开通下一个计费周期的连续服务。但由于用户对于补充扣费过程无感知,通常会带来用户投诉问题。因此建议开发者在用户服务协议中明确补扣款的条款内容,确保用户在阅读和签署协议时有接收到醒目的提示。

# 用户签约中

1.  在用户支付场景时,小程序需要提供单次付费的商品,不得只提供自动续费商品,并强制用户绑定使用。

2.  用户在发起自动续费订阅会员能力签约时,须明确感知到当前的订阅优惠金额、未来续费金额、订阅周期以及订阅包含的服务

3.  在用户首次支付时醒目展示下一次周期的扣款时间。建议开发者在会员产品相关页面,加粗或高亮展示下一次服务周期的扣款时间。尤其在首次会员价格有设置营销策略时,通常第一个服务周期非常规周期。不可使用“到期前”“次月”等模糊字眼,不建议用灰色小字体表达。建议明确展示下个周期履约的第一天的具体日期,使小程序用户清晰接收到下一个扣款时间信息

4.  用户在发起自动续费订阅会员能力签约时,小程序需要提供《会员自动续费服务协议》勾选操作,且不得做默认勾选。醒目展示《会员自动续费服务协议》,并强化提醒用户主动勾选。建议开发者高亮展示《会员自动续费服务协议》文案,更好的做法是二次弹窗强化展示,让用户做二次确认。可以降低用户对于“被动签署协议、不明所以就签署了协议”的负向体验和解约诉求。

5.  小程序内的委托代扣商品前端展示时必须有自动续费订阅会员扣款模式的明显描述,如连续包周、连续包月等。

# 用户签约后

1.  开发者针对用户的营销策略必须在用户签约时确认,用户确认后商家不得在签约后擅自修改已签约的优惠以及原本金额。服务内容变更需提前7日公示,重要变更需用户再次确认

2.  根据法律法规要求,自动续费服务在发起正式周期扣款之前必须通过有效手段提前 5 日提醒用户,包括不限于短信、邮件、消息推送等方式。基于用户体验,平台提供了预扣费通知能力,在小程序自动续费前2天将通知用户,且服务通知中说明的扣费金额必须与实际扣款金额相符。

3.  小程序内需要为用户提供客服服务如微信客服、在线IM客服,400电话等,以便用户能够直接联系到小程序开发者并进行相关的使用问题咨询与处理。

4.  如因开发者经营原因,出现周期代扣能力相关的客诉和资金风险等问题,或平台合理判断有滥用能力、侵犯消费者合法权益等情形,平台将进行相应治理处罚,包括但不限于限制小程序发版、回收周期代扣能力、限制结算和限制支付能力、下架小程序等。

5.  开发者须要支持在小程序内的订阅会员退款,应存在简洁清晰的用户退款界面和退款路径

6.  开发者收到投诉后须在24小时内处理投诉以及协商退款事宜,若在24小时内未处理,平台将主动介入处理客诉

7.  开发者应做好未成年消费引导,避免出现未成年人冲动/大额消费等问题,未成年人交易退款依照未成年人退款流程处理

8.  需在小程序内展示自动续费服务的退订解约方式。明确指引iOS用户、安卓用户在不同的支付平台的退订路径,该流程不得只在常见问题等类似界面展示;安卓端微信内退订路径:打开微信 - 我 - 服务 - 钱包 - 支付设置 - 自动续费 - 关闭相关小程序自动续费