微信红包功能(含示例demo)

开通支付权限

登录微信公众平台管理后台,找到“微信支付”一栏,进行开通
1
会跳转到“微信支付商户平台”,根据提示提交相关证明,完成支付权限的开通
开通之后,“微信支付”一栏会显示相关信息,在“开发-接口权限”部分,微信支付功能已经开启
2

微信支付商户平台的相关配置

在微信支付商户平台,“账户中心-账户设置-API安全”部分

为本机安装操作证书

3

设置API密钥

4

下载API证书

5
需要注意的是,只有管理员有权限下载证书,作者现在是员工身份,所以没有显示下载按钮
API证书需要在电脑上安装,打开apiclient_cert.p12进行安装(这是官方的做法,网上有些小伙伴说不推荐,有更好的方式,大家可以自行搜索比较一下)
6
7
至此,电脑可以调用支付接口

充值

在微信支付商户平台,“交易中心-资金管理-充值”

微信公众平台管理后台的相关配置

配置白名单

在微信公众平台管理后台,“开发-基本配置”中设置IP白名单
8
9

配置服务器配置

在微信公众平台管理后台,“开发-基本配置”中
1
URL需要正确响应微信发送的Token验证,使用盛派SDK,写法如下:

/// <summary>
/// 微信后台验证地址(使用Get)
/// </summary>
/// <returns></returns>
public ActionResult Index(PostModel postModel, string echostr)
{
    if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, token))
    {
        return Content(echostr); //返回随机字符串则表示验证通过
    }
    return Content("failed:" + postModel.Signature + "," + CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, token) + "。" +
                    "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。");
}

服务器可以启用/禁用

当服务器启用时,“功能”中的“自动回复”和“自定义菜单”会失效,需要服务器自行处理

配置功能设置

在微信公众平台管理后台,“公众号设置-功能设置”中
订阅号只有业务域名和JS接口安全域名,服务号除了业务域名和JS接口安全域名,还有网页授权域名
2

Coding

思路

1.先获得用户Openid    
2.向目标用户(根据Openid)发红包     

订阅号发红包

以口令红包为例

1.用户向订阅号发送口令
2.订阅号服务器处理,返回获取红包的链接(自己的页面)
3.提供支付功能的服务号查询用户信息,获得用户针对服务号的openId
4.服务号调用红包接口

注意在查询用户的时候,使用提供支付功能的服务号的appId等相关密钥,不要弄错了,如果openId是针对订阅号的openId则服务号无法发红包
(appId,appSecret,openId是配套的,同一个用户针对不同的公众号openId不同)
用户在自己的页面领取红包之后,需要去微信官方的页面打开红包

如果用户没有关注服务号,通过服务号通知打开红包
如果用户关注了服务号,通过服务号的页面打开红包

示例代码

https://github.com/zLulus/WeChatRedPacketSample

参考资料

https://www.cnblogs.com/wenhx/p/WeChat-RedPacket-Interface.html

官方资料

https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_3&index=2
https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3

相关资料

https://www.jianshu.com/p/c06120bc1f5c
https://www.cnblogs.com/wuhuacong/p/5429958.html
https://www.cnblogs.com/nangong/p/1a2add4356c7bcbab5990c89cbe37d38.html
证书说明:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=4_3
◆ apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。
◆ 商户如果使用.NET环境开发,请确认Framework版本大于2.0,必须在操作系统上双击安装证书apiclient_cert.p12后才能被正常调用
◆ 商户证书调用或安装都需要使用到密码,该密码的值为微信商户号(mch_id)
注意事项:http://blog.csdn.net/Hiking_Tsang/article/details/52816144

原文地址:https://www.cnblogs.com/Lulus/p/8379739.html