微信个人订阅号简单实现在线收款
微信个人订阅号实现在线收款
- 项目简介
- 环境准备
- 订阅号设置
- 核心代码
- 打赏链接的制作
- 在线演示
- 源码下载
项目简介
用计算机六进制从 000000 -111111,即 0到63 来表示易经中的64个卦象,然后根据用户在公众号输入的摇卦数据返回对应的卦象,并实现在线接收用户的打赏。
环境准备
准备好一个域名, 如果没有的话可以用花生壳或者其他工具,网上方法很多,你懂得。
因为微信的服务器会通过你的域名将信息发送到你的应用程序。
订阅号设置
基础信息配置;
这里获取 AppId 和 Secret服务器配置;
URL: http://域名/接口 比如 https://x1p1.xxx.com/wx/trans, 这里 https 是协议,x1p1.xxx.com 是你的域名,wx/trans 是你应用程序和微信的交互接口,即微信会把签名后的消息发送你程序中这个入口。程序在这里完成消息的验证和路由。
Token: 自己随便写了,确保和程序里面 一致,比如我这里是 tokendabaobei
AES: 用于密文传输使用的加密解密字符串,随机生成即可,和用用程序保持一致。
下面是程序中的配置,我用的是SpringBoot开发server:port: 65000 spring:application:name: itg-wx-client-centerthymeleaf:mode: HTMLencoding: UTF-8content-type: text/htmlcache: false wx:mp:appId: 和公众号一致secret: 和公众号一致token: 和公众号一致aesKey: 和公众号一致
到这里配置已经完成了。
核心代码
核心代码就是接收和响应用户通过微信服务器发过来的消息。即上面的 /wx/trans 。
/*** 微信消息入口*/
@RestController
@RequestMapping("/wx/trans")
public class WxMsgTransController {@Autowiredprivate WxMpService mpService; // 开源的 开发包@Autowiredprivate CoreService coreService; // 消息校验和路由@Autowiredprotected WxMpConfigStorage configStorage; // 持久化/** 微信消息统一入口*/@ResponseBody@PostMapping(produces = "application/xml; charset=UTF-8")public void post( @RequestParam("signature") String signature,@RequestParam(name = "encrypt_type", required = false) String encType,@RequestParam(name = "msg_signature", required = false) String msgSignature,@RequestParam("timestamp") String timestamp, @RequestParam("nonce") String nonce,HttpServletResponse response) throws IOException {response.setContentType("text/html;charset=UTF-8");// check signature!if (!mpService.checkSignature(timestamp, nonce, signature)) { response.getWriter().println("Error, IllegelParameter");return;}// 是否密文String encryptType = StringUtils.isBlank(encType) ? "raw" : encType;if ("raw".equals(encryptType)) {WxMpXmlMessage inMessage = WxMpXmlMessage.fromXml(requestBody);// 路由消息到对应的handlerWxMpXmlOutMessage outXml = coreService.route(inMessage);if (outXml == null) {response.getWriter().write("");} else {response.getWriter().write(outXml.toXml());}return;}if ("aes".equals(encryptType)) {WxMpXmlMessage inMessage = WxMpXmlMessage.fromEncryptedXml(requestBody, mpService.getWxMpConfigStorage(), timestamp, nonce, msgSignature);WxMpXmlOutMessage outMessage = coreService.route(inMessage);if (outMessage == null) {response.getWriter().write("");} else {response.getWriter().write(outMessage.toEncryptedXml(configStorage));}return;}response.getWriter().println("不可识别的加密类型");}
}
路由代码:
@Overridepublic void refreshRouter() {final WxMpMessageRouter newRouter = new WxMpMessageRouter(this.wxMpService);// 所有事件的日志newRouter.rule().handler(this.logHandler).next();// 关注事件newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT).event(WxConsts.EventType.SUBSCRIBE).handler(this.subscribeHandler).end();// 取消关注事件newRouter.rule().async(false).msgType(WxConsts.XmlMsgType.EVENT).event(WxConsts.EventType.UNSUBSCRIBE).handler(this.unSubscribeHandler).end();// 默认newRouter.rule().async(false).handler(this.msgHandler).end();this.router = newRouter;}
Handler代码:
/*** 用户关注公众号Handler* <p>*/
@Component
public class SubscribeHandler extends AbstractHandler {@Overridepublic WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context,WxMpService wxMpService, WxSessionManager sessionManager) {// 个人订阅号能操作微信的API很少,权限很少, 不能获取openid,等用户信息return WxMpXmlOutMessage.TEXT().content(StringTable.subscribeMsg).fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser()).build();}
}
这里就完成了一次信息的交互,后面会提供完成代码。
打赏链接的制作
1 申请微信个人商户,这个很简单,拍几张门面照片就可以申请通过,也很快捷。
2 开通好后会有 生成一个微信收款商业版的 链接 如: https://payapp.wechatpay.cn/qrpay/order/home2?key=idc_CHNDVI_GRYyYjNZIWOy.Ykdd1Z8CA–, 点进去如下图:
在我们的消息中加入上面的连接就可以收款了,呵呵。。。
点击: 点此捐赠 到收款
在线演示
可关注 wenwang64 公众号,进行体验。
源码下载
https://download.csdn.net/download/u010209554/86909531
微信个人订阅号简单实现在线收款相关推荐
- 微信「订阅号助手」 App 正式上线,请尽情吐槽!
说了一年,有可能做了更久.现在微信「订阅号助手」 App 终于上线了,结果竟是这个. 打开微信订阅号助手 app,目前有邮箱登录和微信登陆两种方式,对于微信运营者来说,微信登陆无需输入账号密码,无疑是 ...
- (一)注册微信个人订阅号
(一)注册微信个人订阅号1,微信公众帐号注册的第 3 步是选择"类型",它有3个值可供选择"订阅号","服务号","企业号&quo ...
- ibm服务器报错代码大全_微信认证订阅号开发者模式服务器配置自定义菜单PHP独立完整版...
( 网络配图) 开发微信公众号时可能需要自己对接一些服务,所以会启用微信公众号服务器配置功能,开启后你会发现,公众号的部分基础功能都需要自己配置了,原生的不能使用了,其中就包括公众号底部菜单. 下面主 ...
- java微信个人订阅号发信息_微信个人公众号开发-java
一:申请公众号 无聊的去申请一个个人公众号,试了下微信实现自定义菜单与自定义对话的一些基本功能,如果多花点时间,金钱(= =!)还是有不少功能可以使用,还是蛮有意思的. 废话不多说,先看一下申请的流程 ...
- 微信的订阅号和服务号如何区分?
微信5.0将对账号进行区分,以下为原文: "新版公众账号将分为两类:订阅号和服务号.订阅号每天一条,收拢至订阅号文件夹,不强制推送:服务号每月一条,消息-显示全部 微信公众平台上线于20 ...
- 微信个人订阅号如何发布多篇文章
大家好,今天我们来水一篇文章,很多小伙伴都不知道个人订阅号如何发布多篇文章的,发布一篇文章有时很鸡肋,今天我们一步步的进行更新! 一:登录微信公众平台mp.weixin.qq.com 二:点击首页的图 ...
- 微信订阅号简单开发指引
在微信开发者平台申请 AppID,AppSecret 搭建认证服务器(心跳) e.g. https://github.com/ATai2/ppx-wx 业务逻辑开发
- 头条号个人中心登录_微信个人订阅号开通了创作领域的认证!这是要跟头条看齐了吗?...
截图 | 大王哥哥 星期五收到了微信公众号可以开通个人认证的通知,到周日我才看到,我就尝试着申请了一下,提示审核中-- 第一遍审核失败,我就想,是不是我填写的信息不规范,所以审核没通过.果然在我睡午觉 ...
- 【微信】订阅号配置自定义菜单
第一步:百度搜索微信---点击微信公众平台---登录,管理员扫码确认登录. 第二步:开发者工具---在线接口调试工具 第三步:选择接口类型和接口列表,输入appid和secret ,获取access_ ...
最新文章
- Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS
- 剑指offer面试题[37]-两个链表的第一个公共结点
- java 容器类 面试_校招面试之Java容器
- 线性代数学习之行列式
- 各大视频网站下载神器
- 西门子仿真软件(S7-PLCSIM Advanced )与C#通过Profinet读写DB测试总结
- 中国邮政国际挂号信网上查询
- WBS图表概念及绘制
- Scylladb学习笔记
- 链接如何生成二维码?怎样创建一个网址二维码?
- odoo8 openerp 入门
- get 传值 是params
- Database Mirroring
- PASA 全球aleo节点教程(pasa+aleo社区分享)
- 项目管理之项目风险管理
- 乌克兰启动国家政策使加密货币合法化
- Kindle 3截屏
- input输入数字金额
- 博弈论 之 1 什么是博弈论
- 如何形成前端知识体系