本篇主要介绍微信小程序给用户发现金红包的两种方式,大家可根据自己的实际情况酌情使用。
1,小程序开通了小程序红包的接口,但是目前该接口的的使用场景有限,仅限于场景值1011,1025,1047,1124时,基本为用户扫码打开小程序领取红包,这种方式的优势是有红包封面,有点击拆红包的按钮体验比较好,比较适合线下推广二维码时使用。开发时先后端调用发放红包接口,然后再传参给小程序端,调用领取红包接口wx.sendBizRedPacket方法即可。
打开微信支付官方文档中的小程序红包,公众号appid和用户openid参数描述模糊不清,说得就是微信公众号的appid和用户openid,压根没有提到小程序。
经过多次调试,终于测试通过,小程序红包开通条件和开发过程中需要注意以下几点:
- 小程序需要绑定微信支付,且绑定的微信支付商户号需开通现金红包,如果小程序是用公众号认证的,可以很方便的绑定认证微信公众号时开通的微信支付商户号。
- 文档里公众号appid即小程序的appid,用户openid为用户对小程序的openid,该用户openid需在小程序里调用 wx.login() 获取临时登录凭证code,并回传到开发者服务器。调用auth.code2Session接口,换取用户唯一标识OpenID和会话密钥session_key。
- 调用发放红包接口,https://api.mch.weixin.qq.com/mmpaymkttransfers/sendminiprogramhb 如果不填写'notify_way' => 'MINI_PROGRAM_JSAPI',不返回package,可以直接发现金红包,通知形式为服务通知,用户打开即可领取成功;如果填写notify_way则返回有package,只是package里的参数没有官方给的appid,但是有spid,但是不影响小程序正常领红包,用户依然可能通过领取红包接口成功领取现金红包。下面为带notify_way时请求参数和接口返回结果。
$redpackData = [
'mch_billno' => $mch_billno,
'send_name' => '今日头彩查询',
're_openid' => $miniopenid,
'total_num' => 1, //固定为1,可不传
'total_amount' => $total_amount, //单位为分,不小于100
'wishing' => '天天中头彩',
'scene_id' => 'PRODUCT_1',
'notify_way' => 'MINI_PROGRAM_JSAPI',
'act_name' => '打开有礼',
'remark' => '今日头彩,天天好彩头'];
$result = [
"return_code" => "SUCCESS",
"return_msg" => "发放成功",
"result_code" => "SUCCESS",
"err_code" => "SUCCESS",
"err_code_des" => "发放成功",
"mch_billno" => "1508784931202012171608188656",
"mch_id" => "150878XXX",
"wxappid" => "wxdccaff246b9f9b5c",
"re_openid" => "ogn1H45HCRxVRiEMLbLLuABbXXX",
"total_amount" => "100",
"send_listid" => "1000041701202012173014299105358",
"package" => "sendid=41469f3063dfc421bf3377897711d6f040e096a74ec6cb2a6c138178f67d681f&ver=8&sign=b3ff1X1fa2ba0aeeb6b9006dec2bc75b872ef7ee11d5e8bbb22e8836eaa2e76f090c307ba12452010f57dcaebbdec45a3196bff2d850eb9e9a49eedf483aa061&mchid=100846xxX&spid=150878xxx"];
- 调用小程序领取红包接口成功领取红包,传给前端的参数中特别注意 'timeStamp' => time() . "",//时间戳,必须为字符串,增加.""转为字符串。
- 小程序红包目前仅支持场景值1011,1025,1047,1124,包括扫描二维码,扫描小程序码和扫描一物一码等,具体可参与小程序红包文档。
2,调用微信支付的企业付款到零钱接口,微信支付的文档里是没有专门提到这种方式的,相信很多的开发者都已经在生产环境中大量使用了,这里不再赘述,实际是用小程序的appid和用户之于小程序的openid来调用企业付款到零钱接口,这种方式的优势是现金直接划到用户零钱帐户,很多小程序做红包相关的活动时都是采用此种变通方式实现的。
【今日头彩查询】是一款供彩民订阅和查询福利彩票和体育彩票开奖信息的小程序,里面已经集成了以上两种的发送红包的方式,用户扫码(注意是扫码不是长按识别)打开程序即可体验第一种方式;第二种方式隐藏在转发里,打开小程序后,点击右上角转发按钮转发到微信群或者微信好友,如果你的微信号是经过实名认证并且近期没有违规操作的,会在微信支付收到商家转帐入帐通知。
不会请找我 关注工重号:古吃 就能找到我!!!
商户号有开通小程序红包、现金红包或企业付款到零钱接口,小程序就可以调用相关接口发放,若商户号没有相关权限,可以使用第三方API红包接口借权实现,API红包接口是一个可以被开发者调用的开放接口,聚合了现金红包(type=0)与企业付款到零钱(type=1)接口。开放接口可以帮助你实现更加定制化的开发需求,通过调用开放红包接口可以赋予小程序、H5、APP等应用发放红包的能力。小程序接入,将小程序“校验文件”上传,小程序后台配置webview业务域名,然后按《接口文档》开发对接。附《接口说明》
两种发放方式:
1. 通过红包创建接口获取红包ticket,然后使用ticket拼装生成红包链接,用户在微信端与拼装链接交互,获取用户openid,再通过服务器传输的参数进行红包下发。
2. 在交互过程中嵌入静默授权或用户手动授权获取openid,然后可以随时在服务器端调用红包直发接口下发红包。
不需要签名的吗,请求参数?
比如我是一个做营销工具的 我想调用微信红包 将微信红包作为我营销活动的奖品 这个我该如何调用 是调用微信红包接口 还是微信支付接口