打开微信支付官方文档中的小程序红包,公众号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,包括扫描二维码,扫描小程序码和扫描一物一码等,具体可参与小程序红包文档。
本文为big4ever.com原创文章,转载无需和我联系,但请注明来自www.big4ever.com
最新评论