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

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

项目简介

用计算机六进制从 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. Windows下配置Hadoop的Java开发环境以及用Java API操作HDFS
  2. 剑指offer面试题[37]-两个链表的第一个公共结点
  3. java 容器类 面试_校招面试之Java容器
  4. 线性代数学习之行列式
  5. 各大视频网站下载神器
  6. 西门子仿真软件(S7-PLCSIM Advanced )与C#通过Profinet读写DB测试总结
  7. 中国邮政国际挂号信网上查询
  8. WBS图表概念及绘制
  9. Scylladb学习笔记
  10. 链接如何生成二维码?怎样创建一个网址二维码?
  11. odoo8 openerp 入门
  12. get 传值 是params
  13. Database Mirroring
  14. PASA 全球aleo节点教程(pasa+aleo社区分享)
  15. 项目管理之项目风险管理
  16. 乌克兰启动国家政策使加密货币合法化
  17. Kindle 3截屏
  18. input输入数字金额
  19. 博弈论 之 1 什么是博弈论
  20. 如何形成前端知识体系

热门文章

  1. MacOS上BeyondCompare无限试用的方法
  2. win10无线显示未连接到服务器,解决win10无线网络已连接但上不了网的方法
  3. Scratch之制作幸运抽奖机
  4. 漫画:什么是IaaS、PaaS、SaaS?
  5. Android获取局域网所有设备的ip地址
  6. Gitee配置静态页面
  7. 2020谷歌学术指标出炉,CVPR成AI学术会议总榜第一名
  8. 【全文】狼叔:如何正确的学习Node.js
  9. 音视频从入门到精通——FFmpeg之swr_convert音频重采样函数分析
  10. 量子计算(十七):量子计算机硬件