微信个人订阅号实现在线收款

  • 项目简介
  • 环境准备
  • 订阅号设置
  • 核心代码
  • 打赏链接的制作
  • 在线演示
  • 源码下载

项目简介

用计算机六进制从 000000 -111111,即 0到63 来表示易经中的64个卦象,然后根据用户在公众号输入的摇卦数据返回对应的卦象,并实现在线接收用户的打赏。

环境准备

准备好一个域名, 如果没有的话可以用花生壳或者其他工具,网上方法很多,你懂得。
因为微信的服务器会通过你的域名将信息发送到你的应用程序。

订阅号设置

  1. 基础信息配置;
    这里获取 AppId 和 Secret

  2. 服务器配置;

    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

微信个人订阅号简单实现在线收款相关推荐

  1. 微信「订阅号助手」 App 正式上线,请尽情吐槽!

    说了一年,有可能做了更久.现在微信「订阅号助手」 App 终于上线了,结果竟是这个. 打开微信订阅号助手 app,目前有邮箱登录和微信登陆两种方式,对于微信运营者来说,微信登陆无需输入账号密码,无疑是 ...

  2. (一)注册微信个人订阅号

    (一)注册微信个人订阅号1,微信公众帐号注册的第 3 步是选择"类型",它有3个值可供选择"订阅号","服务号","企业号&quo ...

  3. ibm服务器报错代码大全_微信认证订阅号开发者模式服务器配置自定义菜单PHP独立完整版...

    ( 网络配图) 开发微信公众号时可能需要自己对接一些服务,所以会启用微信公众号服务器配置功能,开启后你会发现,公众号的部分基础功能都需要自己配置了,原生的不能使用了,其中就包括公众号底部菜单. 下面主 ...

  4. java微信个人订阅号发信息_微信个人公众号开发-java

    一:申请公众号 无聊的去申请一个个人公众号,试了下微信实现自定义菜单与自定义对话的一些基本功能,如果多花点时间,金钱(= =!)还是有不少功能可以使用,还是蛮有意思的. 废话不多说,先看一下申请的流程 ...

  5. 微信的订阅号和服务号如何区分?

    微信5.0将对账号进行区分,以下为原文: "新版公众账号将分为两类:订阅号和服务号.订阅号每天一条,收拢至订阅号文件夹,不强制推送:服务号每月一条,消息-显示全部 ​ 微信公众平台上线于20 ...

  6. 微信个人订阅号如何发布多篇文章

    大家好,今天我们来水一篇文章,很多小伙伴都不知道个人订阅号如何发布多篇文章的,发布一篇文章有时很鸡肋,今天我们一步步的进行更新! 一:登录微信公众平台mp.weixin.qq.com 二:点击首页的图 ...

  7. 微信订阅号简单开发指引

    在微信开发者平台申请 AppID,AppSecret 搭建认证服务器(心跳) e.g. https://github.com/ATai2/ppx-wx 业务逻辑开发

  8. 头条号个人中心登录_微信个人订阅号开通了创作领域的认证!这是要跟头条看齐了吗?...

    截图 | 大王哥哥 星期五收到了微信公众号可以开通个人认证的通知,到周日我才看到,我就尝试着申请了一下,提示审核中-- 第一遍审核失败,我就想,是不是我填写的信息不规范,所以审核没通过.果然在我睡午觉 ...

  9. 【微信】订阅号配置自定义菜单

    第一步:百度搜索微信---点击微信公众平台---登录,管理员扫码确认登录. 第二步:开发者工具---在线接口调试工具 第三步:选择接口类型和接口列表,输入appid和secret ,获取access_ ...

最新文章

  1. 蚂蚁金服的一次面试你都会吗
  2. Hibernate配置文件,省的到处找了
  3. 【opencv】11.旋转、翻转图片
  4. perl学习4--调用子程序
  5. SmartUpload文件上传组件的使用教程
  6. AI基础:简易数学入门
  7. Oracle SQL语句大全(二)
  8. wumpus java_人工智能经典问题The Wumpus World-简明窗体小游戏
  9. 数据结构与算法--复杂链表的复制
  10. mysql alter event_MYSQL ALTER EVENT介绍
  11. Windows 和 Ubuntu双系统时间同步设置方法
  12. 通过chrome的拓展程序访问其他网页
  13. python安装第三方库出现问题怎么办_关于Python第三方库安装失败问题的解决方案...
  14. 3D MAX 中 CR 渲染较慢?Corona渲染器优化建议来了
  15. 什么是深度卷积神经网络,卷积神经网络怎么学
  16. 微信小游戏是个人尝试做游戏最好的选择
  17. 支付宝获取token 报错signData is Empty
  18. TCP MIN_RTO 辩证考
  19. Android双卡切换监测移动数据状态
  20. 用ArcGIS Server服务Print打印高清大图的关键参数

热门文章

  1. 高级刀片服务器系统,刀片服务器系统
  2. LeetCode(力扣) 刷题注意事项 持续更新 ~ ~
  3. VM虚拟机双网卡配置
  4. C#:查找文件所在位置
  5. VBOX虚拟机连网方案
  6. python数据分析之数据分析(步骤)流程
  7. js面向数据编程(DOP)一点分享(转载)
  8. SpringTask的入门使用
  9. zedboard运行linux,(转载)一步一步学ZedBoard Zynq(六):在ZedBoard上运行linux并编写linux下的应用程序HelloWorld...
  10. pytorch学习笔记-num_workers的设置