微信支付小程序支付和APP支付
这里介绍的是微信小程序支付和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支付相关推荐
- 微信上线刷掌支付小程序;扎克伯格谈自家万元 VR 头显:成本价,不学苹果;Fleet推公共预览版|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- 微信:禁用小程序跳转 App;华为商城上架 PlayStation 5;币安涉及洗钱被美监管调查
8 部门联合约谈滴滴.首汽等 10 家交通运输平台企业 腾讯 To B 业务架构再升级,原 360 高管李强加入 搜狐第一季度营收 2.22 亿美元,同比增长 24% 8 部门联合约谈滴滴.首汽等 1 ...
- 微信小程序与传统APP十大优劣对比
随着微信公众平台的开放,微信端小程序涌现市场,带来很很多便利和简单的原生操作,询:微信端小程序是否会替代传统的APP应用?两者的优劣如何?我们一起来看看传统APP与微信端小程序十大优劣对比 ...
- 微信支付(小程序,H5,公众号,扫码,App)
一.支付模式 微信提供付款码支付.Native支付.JSAPI支付.APP支付.H5支付.小程序支付.刷脸支付共7种支付模式,其中Native支付是指生成支付二维码扫码支付,JSAPI支付是用户在微信 ...
- 微信小程序服务商下子商户支付下单接口
微信小程序服务商下子商户支付下单流程 调用方法 <?php namespace app\index\controller; class WeixinPay extends Base { prot ...
- jsapi支付签名_微信支付小程序支付全流程
点击蓝色字关注我们! 一个努力中的公众号 长的好看的人都关注了 本文给大家讲解微信小程序支付全流程,以及相关功能源代码,项目不开放,带来不便尽请谅解.小程序支付主要包含如下几步骤,1.预下单-调用微信 ...
- 微信支付-小程序支付全流程
点击蓝色字关注我们! 一个努力中的公众号 长的好看的人都关注了 本文给大家讲解微信小程序支付全流程,以及相关功能源代码,项目不开放,带来不便尽请谅解.小程序支付主要包含如下几步骤,1.预下单-调用微信 ...
- 微信小程序中使用JSAPI支付
微信小程序中使用JSAPI支付 在微信小程序中使用微信支付api[wx.requestPayment]需要传递以下字段 如何获取支付所需要的值 在微信小程序中使用微信支付api[wx.requestP ...
- 微信支付(小程序)使用通联扣款通道
微信支付(小程序)使用通联扣款通道 前言 具体步骤 前言 之前公司的小程序的微信支付使用的是微信自己的扣款通道,现在觉得费率太高想更换,通联那边工作人员说是可以支持,但是问他怎么跟现有微信支付打通确说 ...
- python 微信支付 小程序红包 发放红包接口
python 微信支付 小程序红包 发放红包接口 文章目录 python 微信支付 小程序红包 发放红包接口 前言 一.官方文档 二.使用步骤 1.引入,直接复制粘贴以下代码,新建wx_pay.py ...
最新文章
- 数据蒋堂 | 时序数据从分表到分库
- python 內建数据类型
- navicat连接本地MySQL8.0.19报1251错误的解决办法
- 【代码规范】常见命名规范
- Unix安装BerkeleyDB
- ORACLE设置自动递增的方法
- java版本号分段比较_java比较版本号大小
- 注册csdn博客步骤
- pkr车牌识别系统服务器,交安通PKR停车场车牌识别管理系统
- Adadelta理解
- 极化码理论及算法研究4-巴氏参数、GA算法以及matlab仿真
- c#打包安装程序[VS2010]
- 欧美优秀博客集锦	注:(私人收藏而已)
- iOS TestFlight Beta版本测试
- Java核心技术(进阶)
- 双击启动PS软件界面不显示、PS无法打开,解决方法
- 前端ppt\word等等文件实现在线预览功能
- 如果配置计算机硬件设备,客户端医保定点计算机设备硬件配置要求
- mac下的c语言贪吃蛇
- java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password‘.
热门文章
- 古籍、中国通史、诗经、辞、、四书五经、诸子百家、四大名著、唐诗、宋词、明清小说、四库全书
- 深度解析高通RF360移动射频前端解决方案
- 由于之前的错误,Context[]启动失败(SSM)
- 计算机组成及原理ppt课件,计算机组成原理第五章课件.ppt
- hadoop - hadoop2.6 伪分布式 示例 wordcount 分词 和 hdfs常用操作命令
- SpringBoot 接口数据加解密
- ios键盘横屏_iOS 强制横屏、部分横屏等功能实践
- 贴一个之前写的阴阳师源码,供各位学习
- [1.2.0新功能系列:二] Apache Doris 1.2.0 JDBC外表 及 Mutil Catalog
- 2018年蓝桥杯A组C/C++决赛题解