100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信 支付宝支付 微信公众号小程序授权等

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

时间:2019-04-22 22:25:40

相关推荐

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

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

前言微信支付微信授权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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。