小程序如何发红包
咳咳,直入主題。敲黑板,請(qǐng)看下面一段對(duì)話。
產(chǎn)品:我想要小程序發(fā)紅包這個(gè)功能
程序員:目前不支持啊
產(chǎn)品:我不管!
程序員:做不到啊,這。。。
產(chǎn)品:我不管!我不管!你們程序員都是大豬蹄子!哼(¬︿??¬☆)
程序員:我。。。TM,一櫻桃MX BAORD機(jī)械鍵盤砸死你
在目前的小程序版本尚不支持發(fā)紅包這個(gè)功能,開發(fā)者們表面笑嘻嘻,心里媽賣批!
在這里,提供一種已經(jīng)實(shí)踐過的解決思路
詳細(xì)解析,就是下面的幾個(gè)步驟
- 首先是在小程序里面的領(lǐng)紅包入口
- 點(diǎn)擊后跳轉(zhuǎn)webview, 附帶當(dāng)前的小程序的token給webview驗(yàn)證,webview 的src 指向具備付款能力的服務(wù)號(hào)的一個(gè)獲取openid頁面,根據(jù)附加的token來判斷用戶是否可以領(lǐng)取紅包,此時(shí)用戶擁有兩個(gè)openid,一個(gè)是相對(duì)于小程序的openid,一個(gè)是相對(duì)于服務(wù)號(hào)的用來發(fā)紅包的openid,如下面?zhèn)未a // 偽代碼weixinApi.angerPay.sendRedPacket({total_num: 1,mch_billno: '1000000',send_name: '測(cè)試標(biāo)題',re_openid: 'xaxadsadas', // 獲取到的openidtotal_amount: 100,wishing: '恭喜發(fā)財(cái),大吉大利',act_name: '掃碼領(lǐng)紅包',remark: '備注信息',client_ip: '127.0.0.1',scene_id: 'PRODUCT_2'}, (err, result) => {console.log(err, result)});
- 返回領(lǐng)取結(jié)果
注意事項(xiàng)
- 跳轉(zhuǎn)的webview的src要添加到小程序業(yè)務(wù)域名
- 鏈接必須是 https 協(xié)議的
未來的接口
在不久的將來,會(huì)開放一個(gè)發(fā)紅包的接口,就是
wx.sendBizRedPacket,用法實(shí)例。 wx.sendBizRedPacket({timeStamp: e.timeStamp,nonceStr: e.nonceStr,package: e.package,signType: e.signType,paySign: e.paySign,success: function (res) {console.log('紅包success')let url = config.HTTP_Prize_URL '/v1/sign_tmp/sendSuccess.do';let data = {minipid: that.data.minipid,date: that.data.date}console.log('紅包成功以后接口請(qǐng)求參數(shù)數(shù)據(jù):' JSON.stringify(data))util.request(url, 'post', data, '正在加載數(shù)據(jù)', function (res) {console.log('紅包成功以后接口返回結(jié)果:' JSON.stringify(res.data))})wx.reLaunch({url: '../my_prize/my_prize_2?reward=' res.data.body.reward,})},fail: function (res) {console.log('紅包fail')},complete: function (res) {console.log('紅包c(diǎn)omplete')// wx.showModal({// title: '紅包c(diǎn)omplete',// content: '紅包c(diǎn)omplete',// })}})歡迎關(guān)注個(gè)人微信公眾號(hào),推送更多干貨
github
https://github.com/Jon-Millent
總結(jié)
- 上一篇: h5渲染性能一瞥
- 下一篇: 前后台分离之数据模拟