基础支付
JSAPI支付
APP支付
H5支付
Native支付
小程序支付
合单支付
付款码支付
经营能力
微信支付分(公共API)
微信支付分(免确认预授权模式)
微信支付分(需确认模式)
支付即服务
行业方案
智慧商圈
微信支付分停车服务
电子发票
营销工具
代金券
商家券
委托营销
支付有礼
小程序发券插件
H5发券
图片上传(营销专用)
现金红包
资金应用
商家转账到零钱
分账
风险合规
消费者投诉2.0
其他能力
清关报关
图片上传
视频上传
微信支付平台证书

小程序发券插件API

最新更新时间:2023.06.06 版本说明


支持商户在小程序场景内,向指定用户发放指定批次的支付券或商家券。

接口说明

适用对象:直连商户

接口规则: 本接口使用V2版本接口规则,详见V2接口规则内容

小程序接入插件操作


插件版本号:1.4.13(更新时间 2021/06/23)

【推荐】如希望每次默认使用最新版本,可在app.json 文件配置"version": "1.4.13";

如需指定版本,可点击查看更新记录选择版本

1、添加插件配置(引入插件包)

在小程序配置app.json 文件中加入如下配置:


{
  "plugins": {
    "sendCoupon": {
      "version": "1.4.13",
      "provider": "wxf3f436ba9bd4be7b"
    }
  }
} 

2、在小程序页面中引入发券插件

  1)在小程序页面配置文件中加入如下配置,引入send-coupon组件:


{
  "usingComponents": {
    "send-coupon": "plugin://sendCoupon/send-coupon"
  }
} 

  2)在小程序页面的WXML模板中加入如下代码,并填入相关字段,字段说明参见小程序发券插件字段说明表

//page.wxml
<send-coupon
    bind:sendcoupon="getcoupon"
    bind:userconfirm="redirectuser"
    send_coupon_params="{{send_coupon_params}}"
    sign="{{sign}}"
    send_coupon_merchant="{{send_coupon_merchant}}"
    suggest_immediate_use="{{suggest_immediate_use}}"
  >
    <!-- 内部为自定义代码,按钮点击部分的代码写在这里 -->
    <!-- [[以下为示例代码 -->
    <view class="text">领券</view>
    <!-- 以上为示例代码 ]] -->
  </send-coupon>

3、在小程序页面对应的JS逻辑中,获取插件实例并执行初始化操作


javascript
//page.js
Page({
  // 此函数名称可以自定义,跟bindcustomevent绑定的保持一致
  getcoupon: function(params) {
    // 插件返回信息在params.detail
    console.log('getcoupon', params)
  }
})
                            

如果事件绑定正确,在用户点击领券后,会触发领券事件,得到返回之后会调用getcoupon函数。

返回处理

从回调函数参数detail中,获取参数。


参数名 变量 类型[长度限制] 必填 描述
外层错误码 errcode string[1,32] 返回整体错误码
错误信息 msg string[1,128] 返回整体错误信息
+发券结果 send_coupon_result object 发券结果,包含需要发放的每张券的结果信息,是否成功或失败原因
参数名 变量 类型[长度限制] 必填 描述
返回状态码 code string[1,16] 单张券错误码
返回信息 message string[1,128] 单张券错误信息
批次号 stock_id string[1,20] 微信支付券批次id
券code coupon_code string[1,128] 券的唯一标识
发券凭证 out_request_no string[1,64] 发券凭证,可包含英文字母,数字,|,_,*,-等内容,不允许出现其他不合法符号,需在单个批次单个用户下确保唯一性

返回示例


javascript
//获取代码示例
Page({
  data: {
    // ...
  },
  onLoad: function() {
    // ...
  },
  getcoupon: function(params) {
    console.log('getcoupon', params)
    console.log('detail', params.detail)
  }
})

错误码

Detail中errcode返回错误码


错误码 描述 解决方案
OK 调用成功 接口调用成功,具体发券结果(是否发券成功)需查看发券结果(send_coupon_result)中的参数
PARAM_ERROR 参数错误 参数错误,请开发者查看msg中具体的错误信息并进行修复处理
USER_NOT_EXISTS 登录态获取失效 引导用户重试
USER_GET_FAILED 登录态获取失败 报错,提示用户稍后操作
SIGN_ERROR 签名错误 请开发者检查签名正确性
SYSTEMERROR 发券超时 提示报错,提示用户稍后操作
FREQUENCY_LIMITED 发券频率过高 提示报错,引导用户稍后操作。例如“活动太过火爆,请稍后再领取”

发券结果(send_coupon_result)中的错误码


错误码 描述 解决方案
SUCCESS 该张券发券成功 提示用户领取成功/改变前端领券按钮状态
FAILED 该张券发券失败,查看message中的具体错误信息 提示用户领券失败,请开发者查看message中具体的错误信息并进行修复处理
NOTENOUGH 总预算用完 提示用户领券失败,请增加批次预算
DAYLIMIT 用户达到单天限领 提示用户领券失败,如需继续发放,可调整该批次单天发放上限
NATURELIMIT 用户自然人限领 提示用户领券失败,可提示用户检查其所有微信号领券情况,并请商户留意刷单风险
MAXQUOTA 用户领取张数达到上限 提示用户领券失败,该用户领取数量已达上限
DUPREQUEST 已通过该发券凭证给用户发券 提示用户领取成功/改变前端领券按钮状态
NOTRUNNING 批次状态非运营中 提示用户领券失败,并检查批次状态

  1. 如果批次是暂停状态,需重启后方可发放
  2. 如果批次已过期,请更换批次
EXPIRED 该批次已过期 请更换在有效期内的批次,再进行发放
NOTMONEY 账户余额不足 请联系制券商户进行充值
USERLIMIT 用户已超限领额度 提示用户已超限领额度
FREQUENCYLIMIT 超过频率限制 可稍后重试


技术咨询

文档反馈