asp.net開(kāi)發(fā)微信派發(fā)現(xiàn)金紅包/H5網(wǎng)頁(yè)搶紅包功能(思路詳解)
臨近節(jié)日,公司里為了給廣大老客戶贈(zèng)福利,以及來(lái)一波拉新活動(dòng):搞了一個(gè)營(yíng)銷活動(dòng),大概活動(dòng)規(guī)則如下:
1、老客戶通過(guò)網(wǎng)頁(yè)搶紅包,中獎(jiǎng)會(huì)派發(fā)微信支付的紅包;
2、新客戶只要關(guān)注后就可以中獎(jiǎng),持續(xù)關(guān)注x天后再派發(fā)紅包(防止擼羊毛,關(guān)注后立馬取關(guān))。
開(kāi)發(fā)的思路分析:
一、網(wǎng)頁(yè)版搶紅包功能,
1、前端先做好搶紅包的頁(yè)面;

3、后臺(tái)配置微信公眾號(hào)的appid,appsecret等和 微信支付商戶的mch_id,key,證書等;
3、后端使用微信公眾號(hào)里的網(wǎng)頁(yè)授權(quán)功能,用戶在打開(kāi)h5網(wǎng)頁(yè)的時(shí)候,拿到openid;
4、根據(jù)設(shè)置的活動(dòng)時(shí)間范圍,紅包金額等限制,判斷是否可以搶紅包;
5、搶紅包符合規(guī)則,則將openid存入數(shù)據(jù)庫(kù);提示用戶搶到紅包了。
6、根據(jù)openid來(lái)派發(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, //紅包祝福語(yǔ)
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方開(kāi)源組件,可以非常方便的開(kāi)發(fā)紅包功能。
二、關(guān)注紅包:
通過(guò)關(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è)開(kāi)源組件,其實(shí)相對(duì)比較簡(jiǎn)單。
到此這篇關(guān)于asp.net開(kāi)發(fā)微信派發(fā)現(xiàn)金紅包/H5網(wǎng)頁(yè)搶紅包功能的文章就介紹到這了,更多相關(guān)asp.net 微信派發(fā)現(xiàn)金紅包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
.net core 6.0 通過(guò)依賴注入注冊(cè)和使用上下文服務(wù)的教程
在.NET Core 6.0 中,獲取上下文的方式取決于您使用的技術(shù)棧和具體的應(yīng)用程序類型,這篇文章主要介紹了.net core 6.0 通過(guò)依賴注入注冊(cè)和使用上下文服務(wù)的教程,需要的朋友可以參考下2023-12-12
Visual Studio 2019 使用 Live Share的教程圖解
Visual Studio 2019 在今天發(fā)布(北京時(shí)間)了,這次帶來(lái)了一個(gè)比較有趣的 Live Share 功能,使用它可以進(jìn)行更好的協(xié)作開(kāi)發(fā)。這篇文章主要介紹了Visual Studio 2019 使用 Live Share的教程,需要的朋友可以參考下2019-04-04
MVC+EasyUI+三層新聞網(wǎng)站建立 實(shí)現(xiàn)登錄功能(四)
這篇文章主要為大家詳細(xì)介紹了MVC+EasyUI+三層新聞網(wǎng)站建立的第四篇,教大家實(shí)現(xiàn)登錄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07
如何在一個(gè).NET?Core項(xiàng)目中使用RabbitMQ進(jìn)行即時(shí)消息管理
本文提供了在.NETCore項(xiàng)目中使用RabbitMQ進(jìn)行即時(shí)消息管理的詳細(xì)操作指南,包括安裝Erlang和RabbitMQ,配置RabbitMQ,以及在.NETCore項(xiàng)目中編寫代碼和調(diào)試,操作步驟詳盡,感興趣的朋友一起看看吧2024-09-09
ASP.NET中Web API的簡(jiǎn)單實(shí)例
Web API框架是一個(gè)面向Http協(xié)議的通信框架,Web API 框架是一個(gè)面向Http協(xié)議的通信框架。Web API 框架目前支持兩種數(shù)據(jù)格式的序列化:Json 及 Xml。在不做任何配置的情況下,則 Web API 會(huì)自動(dòng)把數(shù)據(jù)使用xml進(jìn)行序列化,否則使用 json 序列化,需要的朋友可以參考下2015-10-10
asp.NET開(kāi)發(fā)中正則表達(dá)式中BUG分析
又發(fā)現(xiàn)了一個(gè) .net的bug!最近在使用正則表達(dá)式的時(shí)候發(fā)現(xiàn):在忽略大小寫的時(shí)候,匹配值從 0xff 到 0xffff 之間的所有字符,正則表達(dá)式竟然也能匹配兩個(gè) ASCII 字符:i(code: 0x69) 和 I(code: 0x49);但是仍然不能匹配其他的 ASCII 字母和數(shù)字。2008-10-10
SignalR Self Host+MVC等多端消息推送服務(wù)(一)
這篇文章主要為大家詳細(xì)介紹了SignalR Self Host+MVC等多端消息推送服務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

