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