微信,支付宝支付,微信公众号小程序授权等

  • 前言
  • 微信支付
  • 微信授权
  • maven依赖(更新)

前言

最近在公司也做了很多移动端项目,如今微信公众号,小程序又特别火爆,免不了要接触支付,授权这类的业务需求,所以在工作之余对支付宝支付,微信支付与授权重新梳理,独立出来分享到maven中央仓库,方便大家简单使用!

微信支付

支付宝相关API就比较简单了,我这边对应支付宝官方文档对appid,公钥秘钥做了简单封装,基本步骤和微信支付一样,就不贴代码了。

微信支付这边,当时封装为了方便就按心情起了别名,这边稍微解释一下,后面的其他API调用就大致清晰明了了,每个平台的参数初始化配置都需要设置相应商户号和商户秘钥,因为可能有的客户可能开放平台绑定一个商户号,公众平台绑定一个商户号,所有这边就要一一区分开来。

前缀wxOp–open platform 开放平台
前缀wxPp–public platform 公众平台
前缀wxSp–small program 小程序

整个调用过程也比较简单,java后台就3步操作:

1.初始化参数
2.生成统一下单预支付参数

public static void main(String[] args) {WxConfig wxConfig=new WxConfig();wxConfig.setNotifyUrl("微信异步通知回调地址");//开发平台wxConfig.setWxOpAppId("开放平台APPID");wxConfig.setWxOpSecrect("开放平台秘钥");wxConfig.setWxOpMchId("商户号");wxConfig.setWxOpMchKey("商户秘钥");wxConfig.setWxOpCertPath("证书地址路径【退款,企业转账功能需要该参数】");//公众平台wxConfig.setWxPpAppId("公众平台APPID");wxConfig.setWxPpSecrect("公众平台秘钥");wxConfig.setWxPpMchId("商户号");wxConfig.setWxPpMchKey("商户秘钥");wxConfig.setWxPpCertPath("证书地址路径【退款,企业转账功能需要该参数】");//小程序wxConfig.setWxSpAppId("小程序APPID");wxConfig.setWxSpSecrect("小程序");wxConfig.setWxSpMchId("商户号");wxConfig.setWxSpMchKey("商户秘钥");wxConfig.setWxSpCertPath("证书地址路径【退款,企业转账功能需要该参数】");WxPayService wxPayService=new WxPayServiceImpl();wxPayService.setWxConfigStorage(wxConfig);//网页支付NATIVE模式返回支付二维码链接,用于生成二维码进行扫码支付System.out.println(wxPayService.wxWebPay("支付单号",0.01));        System.out.println(wxPayService.wxAppPay("支付单号",0.01));System.out.println(wxPayService.wxPpPay("支付单号",0.01,"公众号获取的openId"));System.out.println(wxPayService.wxSpPay("支付单号",0.01,"小程序获取的openId"));}

3.接收微信异步通知结果

    @PostMapping(value = "/wechat/notify")public String wechatNotify(HttpServletRequest request) {String result ="";try {Map<String, String> map = XMLUtil.wxPayNotify(request);if ("SUCCESS".equals(map.get("return_code")) && "SUCCESS".equals(map.get("result_code"))) {//签名校验-取绑定对应平台的商户秘钥if (IdentityUtil.inspectionSign(map, wxConfig.getWxSpMchKey())) {//调起支付所传入的支付流水号String outTradeNo = map.get("out_trade_no");//业务逻辑处理--校验签名,支付单号,还可以校验金额这里自由发挥result = XMLUtil.setWechatXml("SUCCESS", "OK");} else {return XMLUtil.setWechatXml("FAIL", "验签失败");}  }} catch (Exception e) {e.printStackTrace();log.info("---------------------------回调通知异常!!!-------------------------------");result = XMLUtil.setWechatXml("FAIL", "回调通知异常");} finally {return result;}}

微信授权

授权这边主要调用WxAuthService接口

也是对应别名区分不同平台 参数的初始化和微信支付一样,只需要传入对应平台的appid和secrect,不需要商户号的配置信息–开发业务流程需要对照微信开发文档业务流程,这边我就不一一阐述了。

微信公众平台技术文档


public interface WxAuthService extends WxService {/*** 公众号授权获取code** @param redirectUrl 授权后重定向链接* @param scope       应用作用域* @param state       重定向后会带上的参数(最多128字节)* @return 微信客户端链接*/String wxPpOAuth2CodeAuthorizationUrl(String redirectUrl, String scope, String state);/*** 微信开放平台获取code** @param redirectUrl 授权后重定向链接* @param state       重定向后会带上的参数(最多128字节)* @return 微信网页链接*/String wxOpOAuth2CodeAuthorizationUrl(String redirectUrl, String state);/*** 微信开放平台获取AccessToken** @param code 微信临时票据* @return 返回微信授权的access_token, openid等* @throws Exception*/WxOAuth2Info wxOpOAuth2AccessToken(String code) throws Exception;/*** 微信公众平台获取AccessToken** @param code 微信临时票据* @return 返回微信授权的access_token, openid等, 当且网站应用已获取该用户的userinfo授权时, 会返回unionid* @throws Exception*/WxOAuth2Info wxPpOAuth2AccessToken(String code) throws Exception;/*** 微信小程序获取AccessToken** @param code 微信临时票据* @return* @throws Exception*/WxOAuth2Info wxSpOAuth2AccessToken(String code) throws Exception;/*** 微信获取用户信息** @param accessToken 接口调用凭证* @param openId      授权用户唯一标识* @return* @throws Exception*/WxUserInfo wxOAuth2getUserInfo(String accessToken, String openId) throws Exception;/*** 微信公众号扫一扫获取AccessToken** @return 接口调用凭证* @throws Exception*/WxOAuth2Info wxPpOAuth2ScanAccessToken() throws Exception;/*** 微信公众号生成扫一扫的签名** @param url         调起扫一扫的链接* @param accessToken 接口调用凭证* @return 返回扫一扫签名* @throws Exception*/WxScanSign wxPpOAuth2ScanSign(String url, String accessToken) throws Exception;/*** 获取用户基本信息(包括UnionID机制)** @param accessToken 接口调用凭证* @param openId      授权用户唯一标识* @return* @throws Exception*/WxUnionUserInfo wxPpGetUnionUserInfo(String accessToken, String openId) throws Exception;
}

maven依赖(更新)

因为写的赶,大部分接口注释暂时没有补上,后续会持续更新。(觉得好用可以点个赞哟)

     <dependency><groupId>com.github.liujiebang</groupId><artifactId>pay</artifactId><version>1.5.7</version></dependency>

微信,支付宝支付,微信公众号小程序授权等相关推荐

  1. 微信公众号小程序外卖返利分销系统美团饿了么外卖cps软件源码

    饿了么美团外卖返利程序对接公众号发单机器人分销系统返利源码 美团/饿了么外卖CPS联盟返利公众号小程序裂变核心源码 源代码地址 http://y.mybei.cn 成品展示 截图 步骤 下载以上源代码 ...

  2. .NET Core 微信公众号小程序6种获取UnionID方法,你知道哪几种?

    前言 获取UnionID是开发微信公众号/小程序中很有必要的一个环节,特别是针对一个公司拥有多个公众号小程序而推出的机制,实现打通账户一体化,用UnionID来区分多平台的唯一性. 官方的解释:如果开 ...

  3. crmeb打通版开源微信公众号小程序商城框架源码

    crmeb是什么? crmeb是一套客户管理加电商营销系统,基于ThinkPhp6.0+Vue采用前后端分离模式开发,前后台都具有非常标准的API接口,是一款非常优秀的开源微信端及小程序商城框架,能够 ...

  4. 微信公众号 小程序 开放平台是什么鬼

    三个东西,公众号,小程序,微信开放平台 公众号,小程序,微信开放平台都要申请及认证 1)公众号申请需要填写企业详情,对公小额转帐验证会退回,不要钱,审核营业资质.最后认证费用300  2)如果你要开通 ...

  5. 最新在线客服系统php代码微信软件公众号小程序app二维码聊天网站源码

    最新在线客服系统php代码微信软件公众号小程序app二维码聊天网站源码 管理界面 独家长期更新日志(欢迎反馈BUG) 1.添加手机端前后台声音提示 2.添加后台客户管理显示在线离线 3.添加清空当前对 ...

  6. 微信公众号/小程序注册认证

    本篇文章主要从注册微信小程序的角度讲如何注册小程序账号. 作为一名小程序开发者,可能您不用操心注册账号和微信认证的事情,这种事情一般可以交由客户去注册. 但当您的客户需要您自己去注册账号时,您可能需要 ...

  7. python爬虫爬取微信公众号小程序信息

    python爬虫爬取微信公众号小程序信息 爬取内容 某汽车维修信息提供的维修店名称,地点以及电话(手机)号码 爬取步骤 啥也别管,先抓包看看,在这里,博主使用的抓包软件是charles 抓包:将网络传 ...

  8. 如何对接微信公众号/小程序的在线客服

    第一步:下载在线客服软件 二.开启微信客服功能并扫码绑定 第一次登进后默认是没有微信客服项目的,需要在左边先找到"微信客服"模块,然后"开启客服功能"(点击按钮 ...

  9. 微云二手车运营版 公众号+小程序v1.1.20+微信小程序+抖音端源码安装教程

    系统包括PC+公众号+小程序v1.1.20+微信小程序+抖音小程序前端,使用前先在后台初始化下数据.播播资源网技术小编看了下说明是带PC端功能,但后台没找到设置的地方,不过公众号+小程序+抖音也够用了 ...

最新文章

  1. JVM 垃圾收集器CMS相关参数
  2. mysql 故障案例_mysql故障案例
  3. python编写程序输出诗句_Python学习笔记(一)-- print语句
  4. 《零基础》MySQL 选择数据库(七)
  5. 函数式编程 -- 函数是一等公民、高阶函数、闭包
  6. 谈谈Objective-C的警告 (转)
  7. 什么,容器太多操作不过来?我选择Docker Compose梭哈
  8. 【测试】软件测试分类体系系统学习
  9. Exchange Server 2013系列五:虚拟化部署
  10. csu 1812: 三角形和矩形 凸包
  11. Gliffy Diagrams 安装问题
  12. 墨者学院 - IIS写权限漏洞分析溯源
  13. AI学习路线和书籍分享
  14. oracle 11g RAC 修改scan port 一例
  15. 七大江河水系--珠江
  16. Socket通信实例详解
  17. 第五届“强网”拟态防御国际精英挑战赛——线上预选赛火热开赛!
  18. TDA4 J721 EVM开发板开发学习
  19. InnoSetup 使用
  20. loadrunner入门教程(11)--回放脚本

热门文章

  1. PHP字符串函数strlen(获取字符串长度)
  2. 笔记本重装windows系统,office全家桶消失的解决方案
  3. SRT视频字幕的解析与同步原理
  4. QR code二维码简介及Qrencode库的移植与使用
  5. win32com操作excel 包含常用api等等
  6. 疲劳检测——眨眼检测
  7. ununtun学习系列1--- sudo update与upgrade区别
  8. 第三方应用调用高德地图
  9. 剪辑视频的方法有哪些
  10. utf8一个汉字最多需要多少个byte