asp.net開發(fā)微信派發(fā)現(xiàn)金紅包/H5網(wǎng)頁(yè)搶紅包功能(思路詳解)
臨近節(jié)日,公司里為了給廣大老客戶贈(zèng)福利,以及來一波拉新活動(dòng):搞了一個(gè)營(yíng)銷活動(dòng),大概活動(dòng)規(guī)則如下:
1、老客戶通過網(wǎng)頁(yè)搶紅包,中獎(jiǎng)會(huì)派發(fā)微信支付的紅包;
2、新客戶只要關(guān)注后就可以中獎(jiǎng),持續(xù)關(guān)注x天后再派發(fā)紅包(防止擼羊毛,關(guān)注后立馬取關(guān))。
開發(fā)的思路分析:
一、網(wǎng)頁(yè)版搶紅包功能,
1、前端先做好搶紅包的頁(yè)面;
3、后臺(tái)配置微信公眾號(hào)的appid,appsecret等和 微信支付商戶的mch_id,key,證書等;
3、后端使用微信公眾號(hào)里的網(wǎng)頁(yè)授權(quán)功能,用戶在打開h5網(wǎng)頁(yè)的時(shí)候,拿到openid;
4、根據(jù)設(shè)置的活動(dòng)時(shí)間范圍,紅包金額等限制,判斷是否可以搶紅包;
5、搶紅包符合規(guī)則,則將openid存入數(shù)據(jù)庫(kù);提示用戶搶到紅包了。
6、根據(jù)openid來派發(fā)紅包;
核心代碼如下:
using Senparc.Weixin.MP.TenPayLibV3; string certPath = HttpContext.Current.Server.MapPath(weixinPayModel.certInfoPath); // @"F:\apiclient_cert.p12"; sendNormalRedPackResult = RedPackApi.SendNormalRedPack( weixinModel.AppId, weixinPayModel.mch_id, weixinPayModel.paykey, certPath, //證書物理地址 openid, //接受收紅包的用戶的openId actModel.send_name, //紅包發(fā)送者名稱 "147.114.50.74", //IP hbMoney, //付款金額,單位分 actModel.wishing, //紅包祝福語 actModel.act_name, //活動(dòng)名稱 actModel.remark, //備注信息 out nonceStr, out paySign, null, //場(chǎng)景id(非必填) null, //活動(dòng)信息(非必填) null //資金授權(quán)商戶號(hào),服務(wù)商替特約商戶發(fā)放時(shí)使用(非必填) );
代碼里,我們用到Senparc這個(gè)第3方開源組件,可以非常方便的開發(fā)紅包功能。
二、關(guān)注紅包:
通過關(guān)注時(shí)候觸發(fā)的事件,拿到openid,在根據(jù)活動(dòng)限制判斷是否中獎(jiǎng);中獎(jiǎng)后,提示用戶活動(dòng)紅包;
核心代碼如下:
using Senparc.Weixin.MP.Entities; using Senparc.Weixin.MP.Helpers; using Senparc.Weixin.MP.MessageHandlers; /// <summary> /// 訂閱(關(guān)注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { int apiid = wxcomm.getApiid(); //------印美圖接口 begin------ //threeInterface.weipaiInterface wxcf = new threeInterface.weipaiInterface(); //wxcf.weipaiSubscribe(requestMessage.FromUserName, apiid); //------印美圖接口 end------ xjHongBao xjMgr = new xjHongBao(); string getHongBaoRet= xjMgr.SubscribeHongBao(requestMessage.FromUserName, apiid); if(string.IsNullOrWhiteSpace( getHongBaoRet)) { return EventProcess(6, requestMessage); } else { return EventProcess(100, requestMessage, getHongBaoRet); } }
也用到了Senparc這個(gè)開源組件,其實(shí)相對(duì)比較簡(jiǎn)單。
到此這篇關(guān)于asp.net開發(fā)微信派發(fā)現(xiàn)金紅包/H5網(wǎng)頁(yè)搶紅包功能的文章就介紹到這了,更多相關(guān)asp.net 微信派發(fā)現(xiàn)金紅包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
asp.net下經(jīng)典數(shù)據(jù)庫(kù)記錄分頁(yè)代碼
asp.net下經(jīng)典數(shù)據(jù)庫(kù)記錄分頁(yè)代碼...2007-04-04asp.net實(shí)現(xiàn)DataList與Repeater嵌套綁定的方法
這篇文章主要介紹了asp.net實(shí)現(xiàn)DataList與Repeater嵌套綁定的方法,結(jié)合實(shí)例形式分析了DataList與Repeater的步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-04-04asp.net 按指定模板導(dǎo)出word,pdf實(shí)例代碼
這篇文章介紹了asp.net 按指定模板導(dǎo)出word,pdf實(shí)例代碼,有需要的朋友可以參考一下2013-09-09使用ASP.NET模板生成HTML靜態(tài)頁(yè)面的五種方案
使用ASP.NET模版生成HTML靜態(tài)頁(yè)面并不是難事,主要是使各個(gè)靜態(tài)頁(yè)面間的關(guān)聯(lián)和鏈接如何保持完整。本文介紹了使用ASP.NET模版生成HTML靜態(tài)頁(yè)面的五種方案2011-11-11ASP.NET Core應(yīng)用錯(cuò)誤處理之ExceptionHandlerMiddleware中間件呈現(xiàn)“定制化錯(cuò)誤頁(yè)面”
這篇文章主要給大家介紹了關(guān)于ASP.NET Core應(yīng)用錯(cuò)誤處理之ExceptionHandlerMiddleware中間件呈現(xiàn)“定制化錯(cuò)誤頁(yè)面”的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧2019-01-01利用ASP.NET MVC+Bootstrap搭建個(gè)人博客之打造清新分頁(yè)Helper(三)
這篇文章主要介紹了利用ASP.NET MVC+Bootstrap搭建個(gè)人博客之打造清新分頁(yè)Helper(三)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06