开通支付权限

登录微信公众平台管理后台,找到“微信支付”一栏,进行开通

Java 实现企业微信获取红包领取记录_微信支付


会跳转到“微信支付商户平台”,根据提示提交相关证明,完成支付权限的开通

开通之后,“微信支付”一栏会显示相关信息,在“开发-接口权限”部分,微信支付功能已经开启

Java 实现企业微信获取红包领取记录_操作系统_02

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

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

为本机安装操作证书

Java 实现企业微信获取红包领取记录_服务号_03

设置API密钥

Java 实现企业微信获取红包领取记录_操作系统_04

下载API证书

Java 实现企业微信获取红包领取记录_服务号_05


需要注意的是,只有管理员有权限下载证书,作者现在是员工身份,所以没有显示下载按钮

API证书需要在电脑上安装,打开apiclient_cert.p12进行安装(这是官方的做法,网上有些小伙伴说不推荐,有更好的方式,大家可以自行搜索比较一下)

Java 实现企业微信获取红包领取记录_服务号_06


Java 实现企业微信获取红包领取记录_服务号_07


至此,电脑可以调用支付接口

充值

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

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

配置白名单

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

Java 实现企业微信获取红包领取记录_Java 实现企业微信获取红包领取记录_08


Java 实现企业微信获取红包领取记录_php_09

配置服务器配置

在微信公众平台管理后台,“开发-基本配置”中

Java 实现企业微信获取红包领取记录_微信支付_10


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接口安全域名,还有网页授权域名

Java 实现企业微信获取红包领取记录_操作系统_11

Coding

思路

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

以口令红包为例

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

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

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