这里介绍的是微信小程序支付和APP支付

引入的依赖是微信支付第三方jar weixin-java-pay

github:WxJava

     <dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-pay</artifactId><version>3.9.0</version></dependency>

引入这个jar是因为他封装好了统一下单接口,我们只需要注意appid,mchId,mchKey,keyPath,请求的必要参数和格式

这里展示一个简单的一个支付接口步骤

1:配置application-properties

wx.pay.appid=your appid
wx.pay.mchId=your 商户号ID
wx.pay.mchKey=your 商户号的Key
wx.pay.keyPath=证书存放路径

2:写个类获取配置文件配置的信息

 @Data
@ConfigurationProperties(prefix = "wx.pay")
public class WxPayProperties {/*** 设置微信公众号或者小程序等的appid*/private String appId;/*** 微信支付商户号*/private String mchId;/*** 微信支付商户密钥*/private String mchKey;/*** apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定*/private String keyPath;}
3:写个配置类,把配置类配置的东西,注入到wxService里面
@Configuration
@ConditionalOnClass(WxPayService.class)
@EnableConfigurationProperties(WxPayProperties.class)
@AllArgsConstructor
public class WxPayConfig {private WxPayProperties properties;@Bean@ConditionalOnMissingBeanpublic WxPayService wxService() {com.github.binarywang.wxpay.config.WxPayConfig payConfig = new com.github.binarywang.wxpay.config.WxPayConfig();payConfig.setAppId(StringUtils.trimToNull(this.properties.getAppId()));payConfig.setMchId(StringUtils.trimToNull(this.properties.getMchId()));payConfig.setMchKey(StringUtils.trimToNull(this.properties.getMchKey()));payConfig.setKeyPath(StringUtils.trimToNull(this.properties.getKeyPath()));// 可以指定是否使用沙箱环境payConfig.setUseSandboxEnv(false);WxPayService wxPayService = new WxPayServiceImpl();wxPayService.setConfig(payConfig);return wxPayService;}
}

4:这样配置就OK了,使用的话就是

@Api("微信支付")
@RestController
@RequestMapping("/api")
@AllArgsConstructor
public class WxPayController {private WxPayService wxService;@ApiOperation(value = "支付,统一下单-预下单")@PostMapping("/wechat/pay")public RestResponse pay(String sn){//查出订单//设置小程序请求必要参数WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest();wxPayUnifiedOrderRequest.setBody("xxx");//自定wxPayUnifiedOrderRequest.setOutTradeNo(sn);wxPayUnifiedOrderRequest.setSpbillCreateIp(ip);wxPayUnifiedOrderRequest.setTotalFee(total_fee);wxPayUnifiedOrderRequest.setTradeType("JSAPI");wxPayUnifiedOrderRequest.setNotifyUrl(WxPayConfig.APP_NOTIFY_URL_S);//回调地址,这里需要注意的是,这个回调地址不是给前端调用的,这个回调地址是微信那边往这个地址发送支付消息,然后你就可以根据他返回的支付结果来做一些操作
}@ApiOperation(value = "支付回调通知处理")@PostMapping("/notify/order")public String parseOrderNotifyResult(@RequestBody String xmlData) throws WxPayException {final WxPayOrderNotifyResult notifyResult = this.wxService.parseOrderNotifyResult(xmlData);// TODO 根据自己业务场景需要构造返回对象return WxPayNotifyResponse.success("成功");}
}

APP支付就不写出来了,写一下开发的时候需要注意的几点吧

1:APP支付和小程序支付的appid可能不一样的,这样的话我们需要另外配置一个service了
2:APP支付和小程序支付的trade_type不一样 APP–APP ,小程序–JSAPI
3:APP如果验签通过的,依旧拉不起来微信支付,那就要考虑以下三点
①:app打包的时候appid跟后台返回的appid不对
②:app发送请求的参数key是要小写的
③:app打包的报名写错了。

微信支付小程序支付和APP支付相关推荐

  1. 微信上线刷掌支付小程序;扎克伯格谈自家万元 VR 头显:成本价,不学苹果;Fleet推公共预览版|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  2. 微信:禁用小程序跳转 App;华为商城上架 PlayStation 5;币安涉及洗钱被美监管调查

    8 部门联合约谈滴滴.首汽等 10 家交通运输平台企业 腾讯 To B 业务架构再升级,原 360 高管李强加入 搜狐第一季度营收 2.22 亿美元,同比增长 24% 8 部门联合约谈滴滴.首汽等 1 ...

  3. 微信小程序与传统APP十大优劣对比

    随着微信公众平台的开放,微信端小程序涌现市场,带来很很多便利和简单的原生操作,询:微信端小程序是否会替代传统的APP应用?两者的优劣如何?我们一起来看看传统APP与微信端小程序十大优劣对比       ...

  4. 微信支付(小程序,H5,公众号,扫码,App)

    一.支付模式 微信提供付款码支付.Native支付.JSAPI支付.APP支付.H5支付.小程序支付.刷脸支付共7种支付模式,其中Native支付是指生成支付二维码扫码支付,JSAPI支付是用户在微信 ...

  5. 微信小程序服务商下子商户支付下单接口

    微信小程序服务商下子商户支付下单流程 调用方法 <?php namespace app\index\controller; class WeixinPay extends Base { prot ...

  6. jsapi支付签名_微信支付小程序支付全流程

    点击蓝色字关注我们! 一个努力中的公众号 长的好看的人都关注了 本文给大家讲解微信小程序支付全流程,以及相关功能源代码,项目不开放,带来不便尽请谅解.小程序支付主要包含如下几步骤,1.预下单-调用微信 ...

  7. 微信支付-小程序支付全流程

    点击蓝色字关注我们! 一个努力中的公众号 长的好看的人都关注了 本文给大家讲解微信小程序支付全流程,以及相关功能源代码,项目不开放,带来不便尽请谅解.小程序支付主要包含如下几步骤,1.预下单-调用微信 ...

  8. 微信小程序中使用JSAPI支付

    微信小程序中使用JSAPI支付 在微信小程序中使用微信支付api[wx.requestPayment]需要传递以下字段 如何获取支付所需要的值 在微信小程序中使用微信支付api[wx.requestP ...

  9. 微信支付(小程序)使用通联扣款通道

    微信支付(小程序)使用通联扣款通道 前言 具体步骤 前言 之前公司的小程序的微信支付使用的是微信自己的扣款通道,现在觉得费率太高想更换,通联那边工作人员说是可以支持,但是问他怎么跟现有微信支付打通确说 ...

  10. python 微信支付 小程序红包 发放红包接口

    python 微信支付 小程序红包 发放红包接口 文章目录 python 微信支付 小程序红包 发放红包接口 前言 一.官方文档 二.使用步骤 1.引入,直接复制粘贴以下代码,新建wx_pay.py ...

最新文章

  1. 数据蒋堂 | 时序数据从分表到分库
  2. python 內建数据类型
  3. navicat连接本地MySQL8.0.19报1251错误的解决办法
  4. 【代码规范】常见命名规范
  5. Unix安装BerkeleyDB
  6. ORACLE设置自动递增的方法
  7. java版本号分段比较_java比较版本号大小
  8. 注册csdn博客步骤
  9. pkr车牌识别系统服务器,交安通PKR停车场车牌识别管理系统
  10. Adadelta理解
  11. 极化码理论及算法研究4-巴氏参数、GA算法以及matlab仿真
  12. c#打包安装程序[VS2010]
  13. 欧美优秀博客集锦 注:(私人收藏而已)
  14. iOS TestFlight Beta版本测试
  15. Java核心技术(进阶)
  16. 双击启动PS软件界面不显示、PS无法打开,解决方法
  17. 前端ppt\word等等文件实现在线预览功能
  18. 如果配置计算机硬件设备,客户端医保定点计算机设备硬件配置要求
  19. mac下的c语言贪吃蛇
  20. java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password‘.

热门文章

  1. 古籍、中国通史、诗经、辞、、四书五经、诸子百家、四大名著、唐诗、宋词、明清小说、四库全书
  2. 深度解析高通RF360移动射频前端解决方案
  3. 由于之前的错误,Context[]启动失败(SSM)
  4. 计算机组成及原理ppt课件,计算机组成原理第五章课件.ppt
  5. hadoop - hadoop2.6 伪分布式 示例 wordcount 分词 和 hdfs常用操作命令
  6. SpringBoot 接口数据加解密
  7. ios键盘横屏_iOS 强制横屏、部分横屏等功能实践
  8. 贴一个之前写的阴阳师源码,供各位学习
  9. [1.2.0新功能系列:二] Apache Doris 1.2.0 JDBC外表 及 Mutil Catalog
  10. 2018年蓝桥杯A组C/C++决赛题解