小程序怎么发红包?#小程序开发#

分享一种方式供大家参考,使用第三方API红包代发接口。

官方要求:

按微信官方规则,要实现小程序给用户派发红包需要有一个具备相关权限的商户号,再按微信官方接口文档开发对接方可使用。

那么通常商户号具备以下三种接口权限任一一种便可实现小程序派发红包功能,1)小程序红包, 2)现金红包, 3)企业付款到零钱。以上三种接口权限开通条件一样,即时入账且结算周期为T+1的商户,需满足1)入驻满90天,2)连续正常交易30天,3)保持正常健康交易。

小程序红包是微信支付提供给商户在小程序场景下向用户发放红包的营销工具。但是目前小程序红包接口的使用场景有限,仅支持用户微信扫码打开小程序时进行红包领取,其他场景暂不支持。(支持场景值1011,1025,1047,1124) 小程序红包接口倾向于为商户拓展线下营销赋能,使用的局限性较大。

鉴于微信官方相关接口权限准入门槛较高,所以针对有开发能力的用户,API代发红包接口可以满足用户的个性化开发需求。

API红包代发接口指聚合了微信现金红包和企业付款到零钱接口,符合政策法规要求的应用,开发者按接口文档即可对接使用,支持小程序、H5、APP等应用接入。

接口文档:

红包接口使用流程:

两种方式:

第一种,首先由后台通过红包创建接口获取红包ticket,然后使用ticket拼装红包链接,在用户前端上打开领取,领取结果通过回传url显示

第二种,首先通过授权跳转链接获取用户openid,然后在服务器端调用红包直发接口发放红包

配置:

apikey: 参数签名密钥,不超过32字节
对接ip: 调用红包创建接口的服务器IP,可写多个,用逗号分隔
以下配置在第二种方式是在调用授权跳转接口check_user时起作用
是否禁止桌面版微信: 默认为否,选是则桌面版微信不允许领取红包
是否拦截可疑来源: 默认关闭,如果开启,会根据IP地址和终端访问频次拦截疑似刷红包的行为来源。注意:此为辅助功能,并非100%准确
限定活动区域: 限定用户领取红包所处的区域,省份城市,多个可用逗号分隔。IP地址使用阿里云数据库,根据经验,城市误差较大,省份相对准确。注意:此为辅助功能,并非100%准确
限制在指定天数之内每个用户最大领取次数: 指定天数和指定最大领取次数都大于0时此配置生效。注意:此为辅助功能,客户应用的风控逻辑仍需根据需求自行设计。

1.红包创建接口(单红包)

https://www.yaoyaola.net/exapi/hbticket

参数说明(GET):
uid: (必填)客户编号:10000010 (请使用此数字,每个账号唯一)
type: (必填) 红包类型,0使用红包接口,1表示使用企业付款接口
如果使用企业付款,金额可以大于200元
企业付款的通知消息可自定义wishing,不显示title和sendname
money: (必填)红包金额,单位为分,不能低于30
orderid: (必填)自定义订单号,不超过60字节
reqtick: (必填)请求时间戳,单位为秒,与北京标准时间误差不能超过30秒
expire: 红包超时时间,单位为秒,不指定则默认60秒
sign: (必填)参数验证签名 md5(uid+type+orderid+money+reqtick+apikey),共32字节,字母都为小写
title: 红包活动名称(不能超过10个汉字或32个字符)
sendname: 红包发送方名称(不能超过10个汉字或32个字符)
wishing: 红包祝福语
rurl: 红包领取结果跳转url,用于给用户显示客户的自定义页面,通过GET方式传送三个参数(以下三行为平台传给rurl的参数),如果rurl为空,则跳转至系统默认结果页面
ticket: 红包回执
retmoney: 红包领取金额,单位为分,0为领取失败
retmsg: 返回信息
cburl: 服务器通知url,参数形式同rurl,用户红包领取成功时回调此url,失败则不回调,由客户方在红包超时后主动查询确认结果。
PHP示例代码: $apikey = "xxxxxxxxxxxxx";

$uid = 10000010;
$type = 0;
$money = 50;
$orderid = rand(1000,9999).rand(1000,9999).rand(1000,9999);
$reqtick = time();
$signstr = $uid.$type.$orderid.$money.$reqtick.$apikey;
$sign = md5($signstr);

$url = "https://www.yaoyaola.net/exapi/hbticket?uid=".$uid."&type=".$type."&orderid=".$orderid."&money=".$money."&
reqtick=".$reqtick."&expire=3600&sign=".$sign."&title=恭喜发财&sendname=千跃科技&wishing=心想事成";

$result = httpGet($url);
echo $result."\n";

请求示例: https://www.yaoyaola.net/exapi/hbticket?uid=10000010&type=0&orderid=657812195242&money=100&reqtick=1515133732&sign=7ad5e4da870203ed6c15bda5a60d06a4&title=恭喜发财&sendname=千跃科技&wishing=心想事成
返回结果: {"errcode":"0","errmsg":"success","ticket":"a06aba6515bbdb776f83fa74199bd3e9"}

2. 红包领取接口(单红包)

通过上面返回的ticket,拼装出红包领取链接: https://www.yaoyaola.net/exapi/gethb/10000010?ticket=a06aba6515bbdb776f83fa74199bd3e9 ,用户点击后,则立刻领取红包,注意如果没有指定超时时间,此链接有效时间默认为60秒.

如果要在小程序中打开领取,需要做如下操作:

 1. 在小程序后台设置服务域名为www.yaoyaola.net 2. 联系客服,将域名校验文件上传服务器 3. 将上面红包链接协议头http修改为https 

3. 红包查询接口

https://www.yaoyaola.net/exapi/checkhb?uid=10000010&orderid=xxxxxxxxxx&ticket=a06aba6515bbdb776f83fa74199bd3e9

参数说明:若orderid不为空,查询此订单号下所有记录,否则查询指定ticket对应的记录

返还结果:

                参数orderid不为空时返回:{"errcode":"0","orders":[{"ticket":"红包回执","orderid":"用户订单号","mch_billno":"微信支付订单号","openid":"用户openid","money":"金额(分)","status":"状态(0未领取,1已领取,2已退回,3已过期)","hbtype":"红包类型","gotip":"领取红包的IP地址","gottime":"领取时间","fee":"平台扣费(分)","opmsg":"错误信息","recheck":"微信支付确认标志","rechecktime":"微信支付确认时间"},{...}]}参数orderid为空,ticket不为空时返回:{"errcode":"0","ticket":"红包回执","orderid":"用户订单号","mch_billno":"微信支付订单号","openid":"用户openid","money":"金额(分)","status":"状态(0未领取,1已领取,2已退回,3已过期)","hbtype":"红包类型","gotip":"领取红包的IP地址","gottime":"领取时间","fee":"平台扣费(分)","opmsg":"错误信息","recheck":"微信支付确认标志","rechecktime":"微信支付确认时间"} 

4.红包创建接口2(多红包)

https://www.yaoyaola.net/exapi/hbticket2

参数说明(GET)仅列出与hbticket不同的地方:
money: 红包总金额,单位为分,不能低于30
minmoney: 单个红包最小金额,单位为分,不能低于30
maxmoney: 单个红包最大金额,单位为分,不能低于30
hbcount: 红包个数
示例: https://www.yaoyaola.net/exapi/hbticket2?uid=10000010&type=0&orderid=992161232006&money=500&minmoney=30&maxmoney=100&hbcount=10&reqtick=1546927322&expire=3600&sign=a4cf7a516f61391b94f57536e76a03df&title=恭喜发财&sendname=千跃科技&wishing=心想事成

返回结果:

                {"errcode":"0","errmsg":"success","ticketlist":[{"ticket":"7836381fb74b95b1a8f510d737d6e6da","money":"30"},{"ticket":"2540daff7daa39ee1382c83273ce2618","money":"42"},{"ticket":"b3bda284bd94c10225c3b2323f14fd57","money":"64"},{"ticket":"553b8a269df69e017a651fef336e7a5a","money":"43"},{"ticket":"364085f52198df5ed6662b7b1e619c39","money":"37"},{"ticket":"53b6b97ee26819b5011d0e4f4829c539","money":"99"},{"ticket":"847f26e068437346b4e5b2bdd5117ad0","money":"35"},{"ticket":"d8a522b670665791f1b5e85b7dc7e073","money":"30"},{"ticket":"e1735bb134e3ccc5f105c061239acbba","money":"44"},{"ticket":"be317fb4f4900be1997c1e3367eb607e","money":"76"}],"balance":"40689"} 

5. 红包领取接口2(多红包)

通过上面创建的orderid,拼装出红包领取链接: https://www.yaoyaola.net/exapi/gethb2/10000010?orderid=992161232006 用户点击后,则立刻领取红包,每个用户只能在此orderid下领取一次,注意如果没有指定超时时间,此链接有效时间默认为60秒.

6.授权跳转接口

https://www.yaoyaola.net/exapi/check_user/10000010

参数说明(GET):
url: 获取到openid后的跳转url,如果有带参数,可先对整个url做下urlencode编码
flag: 0表示静默获取openid,1表示需要用户授权获取详细信息
示例: https://www.yaoyaola.net/exapi/check_user/10000010?url=https://www.yaoyaola.net/exapi/test.html&flag=0

跳转ulr示例:

test.html?ivtick=1547025023&u_openid=orsKq0c59kFgew2F2xfOWdRLQ-0M&encdata=3aae5867b37028491062d6f34e592772&userinfo=

跳转URL携带参数说明(GET):
ivtick: 当前时间戳
u_openid: 获取到的用户openid
encdata: 签名验证信息,md5(apikey+openid+ivtick)
userinfo: flag=1时返回的用户详细信息,base64编码

7.红包直发接口

https://www.yaoyaola.net/exapi/SendRedPackToOpenid

参数说明(GET):
uid: 客户编号:10000010 (同上)
type: 红包类型,0使用红包接口,1表示使用企业付款接口
如果使用企业付款,金额可以大于200元
企业付款的通知消息只能显示sendname,不能显示活动名称和祝福语
money: 红包金额,单位为分,不能低于30
orderid: 自定义订单号
reqtick: 请求时间戳
openid 用户openid,可通过上面check_user接口获取
sign: 参数验证签名 md5(uid+type+orderid+money+reqtick+openid+apikey)
title: 红包活动名称(不能超过10个汉字或32个字符)
sendname: 红包发送方名称(不能超过10个汉字或32个字符)
wishing: 红包祝福语
示例: https://www.yaoyaola.net/exapi/SendRedPackToOpenid?uid=10000010&type=0&orderid=793174198142&money=50&reqtick=1547025439&openid=orsKq0c59kFgew2F2xfOWdRLQ-0M&sign=a8f2333cd13153702db9b7a9bafc5b2f&title=恭喜发财&sendname=千跃科技&wishing=心想事成
成功返回: {"errcode":"0","errmsg":"","ticket":"f07bb87429ef4f33b9de...","retmoney":"50","retmsg":"发放成功"}
失败返回: {"errcode":"100021","errmsg":"透传微信后台返回的错误信息"}

8.账户信息查询接口

https://www.yaoyaola.net/exapi/accountinfo

参数说明(GET):
uid: 客户编号:10000010 (同上)
示例: https://www.yaoyaola.net/exapi/accountinfo?uid=10000010
返回结果: {"errcode":"0","balance":"10.00","apiexpire":"2019-06-23 18:05:25"}

9.错误码列表

编码 文字描述
0 成功
100001 客户编号uid未指定
100002 时间戳reqtick错误
100003 红包金额money必须大于30(0.3元)
100004 客户编号uid无效
100005 接口服务已过期
100006 接口已手动关闭
100007 未授权的对接IP地址
100008 未设置apikey
100009 MD5签名错误
100010 账户余额不足
100011 指定的orderid已存在
100012 红包总金额不满足最小红包金额
100013 参数不正确(uid为空或orderid,ticket不正确)
100014 根据指定ticket查不到红包记录
100015 根据指定orderid查不到红包记录
100016 openid未指定
100017 指定openid的红包发放请求太频繁
100018 此用户领取次数受限
100019 此用户领取金额受限
100020 系统错误,红包记录未生成
100021 透传微信后台返回的失败原因

小程序怎么发红包?api接口指南相关推荐

  1. android红包功能程序,微信小程序实现发红包功能

    本文实例为大家分享了微信小程序实现发红包的具体代码,供大家参考,具体内容如下 目前此功能尚在内测,无法申请.此博文仅示例. 流程效果图: 图片1触发wx.sendBizRedPacket({})吊起图 ...

  2. 后台接收数组_微信小程序如何与后台api接口进行数据交互(微信报修小程序源码讲解七)...

    完成用户授权登录逻辑后,接下来的开发工作大部分都是与后台 api 接口的交互,本节我们详细讲解一下小程序如何与 api 进行交互 . 小程序如何发送 http/https 请求到后台? 小程序请求 h ...

  3. 小程序api 分享scene_网课查题题库接口API-在线免费授权,微信小程序网课答案api接口...

    网课查题题库接口API-在线免费授权,微信小程序网课答案api接口更多相关问题 支持员工实现绩效目标.促进员工自身发展的能力标准的目标是().A.组织目标B.部门目标C.发展目标B.化肝煎合左金丸C. ...

  4. 微信小程序如何发红包?

    敲重点:若商户号有开通商家转账到零钱(原企业付款到零钱)接口权限的,推荐小程序可以直接调用此接口变通实现红包功能,若开发者无法提供含(小程序红包.现金红包.商家转账到零钱)任一接口权限的商户号,可以使 ...

  5. 微信小程序如何发红包

    文章开头先提一点,如果小程序可以开通企业支付接口,那推荐直接使用企业支付接口来实现红包的功能,小程序链接公众号通过公众号的红包接口来实现是非常坑爹的一件事. 微信企业支付接口:https://pay. ...

  6. web api接口开发实例_小程序开发如何调用 API 接口,以豆瓣电影为例

    API 调用是开发者在小程序开发过程中经常会遇到的问题,本期我们以为调用豆瓣电影 API 为例具体来看 API 的调用过程以及常见的一些问题. 测试用到的小程序是「电影周周看」,内容来自清华大学软件学 ...

  7. 小程序与云服务器api接口,小程序云函数调用http api进行对云数据库的操作

    小程序http api 的云数据库操作接口需在服务器端调用,利用云开发后台的话,可以云函数中调用相应的接口可以实现对云数据库的操作.以下是新增集合的一个代码段,以供参考. 需要注意的是,安装got模块 ...

  8. 关于微信小程序新版头像昵称API 接口处理

    根据微信官方文档的说法,2022年10月之后,原本的获取昵称和头像的api,也就是wx.getUserProfile和wx.getUserInfo将停止支持,在那之后发布和更新的小程序必须停止使用这两 ...

  9. 2022小程序无水印解析API接口分享-最新可用

    支持平台:支持各大热门短视频平台 请求方式:HTTP GET 返回格式:JSON 请求示例:https://www.345api.com/api/jiexi/get?key=key&url=短 ...

最新文章

  1. 洛谷 P2749 [USACO5.1]【夜空繁星Starry Night】
  2. 苹果真要开发无线充电外壳 已要求联发科提供芯片样品
  3. 一年拿下软考中高级+PMP是一种怎样的体验?
  4. 电脑能上网,手机连上wifi不能上网
  5. 【git】【eclipse】记住密码/密码保存在哪里?
  6. 函数模板(参考《C++ Templates 英文版第二版》)
  7. Mysql数据库---约束类型_mysql数据库的数据类型及约束
  8. Flink 里程碑版本即将发布,快点入手
  9. 力扣 746 使用最小化花费爬楼梯
  10. HG255D 刷机备忘
  11. WPS广告弹窗永久关闭
  12. VRRP——VRRP讲解
  13. php经典实例博客管理,PHP经典项目案例-(一)博客管理系统2
  14. ngx_lua常用变量参数
  15. MySQL数据清理有技巧,这么破
  16. 聊一聊推荐系统中ExploitExplore算法
  17. 张柏芝、谢霆锋、陈冠希近半年行踪关系图,这个图很厉害,可以作为思维导图的工具...
  18. ol xyz 加载天地图_Openlayers3 加载百度地图,天地图
  19. 当谈论工程师文化时我们在谈些什么
  20. 电视剧植入式广告的植入方式有哪些

热门文章

  1. Everything下载安装和使用
  2. 【python】牛顿迭代法求解多元函数的最小值--以二元函数为例
  3. postgresql支持唯一约束吗_PostgreSQL 唯一约束
  4. 在jupyter notebook使用latex编辑数学公式
  5. 逸仙电商在美上市:高瓴资本、真格基金持股,被指疫情期非法裁员
  6. 局域网文件服务器怎么备份数据,局域网文件备份软件的使用教程
  7. 深度解析 React useRef Hook 的使用
  8. MySQL sql语句获取当前日期|时间|时间戳
  9. 日志易日志平台使用了什么开源软件
  10. 511遇见易语言基础命令组件和算法