微信支付(p11-p20)
微信支付(p11-p20)
文章目录
- 微信支付(p11-p20)
- 11.Https协议
- 12.总结
- 13.微信APIv3证书
- 14.创建案例项目
- 15.创建SpringBoot项目
- 16.引入Swagger
- 17.统一返回结果
- 18.数据库
- 19.集成Mybatis-plus
- 20.Mybatis-plus补充
11.Https协议
12.总结
13.微信APIv3证书
商户证书:之前已经下载过
- apiclient_cert.p12
- apiclient_cert.pem
- apiclient_key.pem
- 证书使用说明.txt
平台证书:微信支付平台证书是指由微信支付负责申请的,包含微信支付平台标识,公钥信息的证书。商户可以使用平台证书中的公钥进行验签
1.登录网址:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay3_0.shtml
2.文档中心--接口规则--证书密钥使用说明--API接口下载
14.创建案例项目
步骤:
- 创建SpringBoot项目(Java、SpringBoot、SpringMVC、RESTful、json)
- 引入Swagger(接口文档和测试页面生成工具)
- 定义统一结果
- 创建和连接数据库
- 集成Mybatis-Plus
- 搭建前端环境
- 认识Vue.js
15.创建SpringBoot项目
application.yml
server:port: 8090spring:application:name: pay-systemjackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8
ProductController
package com.hengke.controller;@RestController
@RequestMapping("/api/product")
public class ProductController {@GetMapping("/test")public String test(){return "hello";}
}
16.引入Swagger
pom.xml
<dependencies><!-- Swagger --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency><!--Swagger-ui--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version></dependency></dependencies>
Swagger2Config
package com.hengke.config;@Configuration
@EnableSwagger2
public class Swagger2Config {@Beanpublic Docket docket(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder().title("微信支付案例接口文档").build());}
}
package com.hengke.controller;@Api(tags = "商品管理")
@RestController
@RequestMapping("/api/product")
public class ProductController {@ApiOperation("测试接口")@GetMapping("/test")public String test(){return "hello";}
}
17.统一返回结果
引入lombok
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</version>
</dependency>
R
package com.hengke.vo;@Data
public class R<T> implements Serializable {/*** 是否响应成功*/@ApiModelProperty("接口调用是否成功")private Boolean success;/*** 响应状态码*/@ApiModelProperty("状态码")private Integer code;/*** 响应数据*/@ApiModelProperty("响应结果")private T data;/*** 错误信息*/@ApiModelProperty("状态信息")private String message;// 构造器开始/*** 无参构造器(构造器私有,外部不可以直接创建)*/public R() {this.code = 200;this.success = true;}/*** 有参构造器* @param obj*/public R(T obj) {this.code = 200;this.data = obj;this.success = true;}/*** 有参构造器* @param resultCode*/public R(RCode resultCode) {this.success = false;this.code = resultCode.getCode();this.message = resultCode.getMessage();}// 构造器结束/*** 通用返回成功(没有返回结果)* @param <T>* @return*/public static<T> R<T> success(){return new R();}/*** 返回成功(有返回结果)* @param data* @param <T>* @return*/public static<T> R<T> success(T data){return new R<T>(data);}/*** 通用返回失败* @param resultCode* @param <T>* @return*/public static<T> R<T> failure(RCode resultCode){return new R<T>(resultCode);}
}
18.数据库
USE `payment_demo`;/*Table structure for table `t_order_info` */CREATE TABLE `t_order_info` (`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '订单id',`title` varchar(256) DEFAULT NULL COMMENT '订单标题',`order_no` varchar(50) DEFAULT NULL COMMENT '商户订单编号',`user_id` bigint(20) DEFAULT NULL COMMENT '用户id',`product_id` bigint(20) DEFAULT NULL COMMENT '支付产品id',`total_fee` int(11) DEFAULT NULL COMMENT '订单金额(分)',`code_url` varchar(50) DEFAULT NULL COMMENT '订单二维码连接',`order_status` varchar(10) DEFAULT NULL COMMENT '订单状态',`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;/*Table structure for table `t_payment_info` */CREATE TABLE `t_payment_info` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '支付记录id',`order_no` varchar(50) DEFAULT NULL COMMENT '商户订单编号',`transaction_id` varchar(50) DEFAULT NULL COMMENT '支付系统交易编号',`payment_type` varchar(20) DEFAULT NULL COMMENT '支付类型',`trade_type` varchar(20) DEFAULT NULL COMMENT '交易类型',`trade_state` varchar(50) DEFAULT NULL COMMENT '交易状态',`payer_total` int(11) DEFAULT NULL COMMENT '支付金额(分)',`content` text COMMENT '通知参数',`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;/*Table structure for table `t_product` */CREATE TABLE `t_product` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '商品id',`title` varchar(20) DEFAULT NULL COMMENT '商品名称',`price` int(11) DEFAULT NULL COMMENT '价格(分)',`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;/*Data for the table `t_product` */insert into `t_product`(`title`,`price`) values ('Java课程',1);
insert into `t_product`(`title`,`price`) values ('大数据课程',1);
insert into `t_product`(`title`,`price`) values ('前端课程',1);
insert into `t_product`(`title`,`price`) values ('UI课程',1);/*Table structure for table `t_refund_info` */CREATE TABLE `t_refund_info` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '退款单id',`order_no` varchar(50) DEFAULT NULL COMMENT '商户订单编号',`refund_no` varchar(50) DEFAULT NULL COMMENT '商户退款单编号',`refund_id` varchar(50) DEFAULT NULL COMMENT '支付系统退款单号',`total_fee` int(11) DEFAULT NULL COMMENT '原订单金额(分)',`refund` int(11) DEFAULT NULL COMMENT '退款金额(分)',`reason` varchar(50) DEFAULT NULL COMMENT '退款原因',`refund_status` varchar(10) DEFAULT NULL COMMENT '退款状态',`content_return` text COMMENT '申请退款返回参数',`content_notify` text COMMENT '退款结果通知参数',`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
19.集成Mybatis-plus
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope>
</dependency>
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.0</version>
</dependency>
datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql:192.168.0.102:3306/pay?serverTimezone=GMT%2B8&characterEncoding=utf-8username: rootpassword: root
package com.hengke.entity;@Data
public class BaseEntity {/*** 定义主键策略:跟随数据库的主键自增*/@TableId(value = "id",type = IdType.AUTO)private String id;/*** 创建时间*/private Date createTime;/*** 更新时间*/private Date updateTime;
}
package com.hengke.config;@Configuration
@MapperScan("com.hengke.dao") //持久层扫描
@EnableTransactionManagement //启动事务管理
public class MybatisPlusConfig {}
20.Mybatis-plus补充
<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources>
</build>
微信支付(p11-p20)相关推荐
- laravel ajax vue6,详解用vue.js和laravel实现微信支付
注:此项是微信公众号开发,请在往下看之前,先实现网页微信授权登陆功能,具体参看我简书的另一篇文章:https://www.jb51.net/article/117004.htm 1.打开app/con ...
- 【全网唯一】全网唯一能够跑通的,跑不通你来找我~用node.js完成微信支付下单功能,且只需要一个文件wxpay.js就解决业务流程的node.js程序
先吐为敬! 最近心血来潮研究nodejs如何完成微信支付功能,结果网上一搜索,一大堆"代码拷贝党"."留一手"."缺斤少两"."不 ...
- 解决Hbuilder打包的APP微信支付时无法唤起支付,且提示{“code“:-100,“message“:“[payment微信:-1]General errors“}的问题
依次排查: 1.menifest.json中配置了微信的appid是不是微信开放平台(微信开放平台)对应的APP id,包名是否和微信开放平台对应APP的包名一致(com.******.app) 2. ...
- 微信支付invalid total_fee 的报错
因为我的测试商品是0.01的 原因是微信支付的金额是不能带小数点的 直接在提交的时候 乘以 100操作 ,因为里面设置参数的时候是 以分为单位的 [packageParams setObject: p ...
- iOS微信支付集成 SDK1 7 5
最近做了一个新项目,涉及到支付宝和微信支付,支付宝和微信都是业界的老大哥,相信大家都有所觉得文档.SDK都是各种坑吧(纯粹吐槽而已),这是继上篇支付宝支付集成后接着的微信支付集成. 1.微信商户申请步 ...
- mui 微信支付 与springMVC服务器交互
昨天搞定了微信支付,没有想象中的难,主要是官方的demo不全好多东西要自己琢磨,mui端的就不写了支付宝的有了一模一样.上java端的首先是jar包 一个是用来解析xml文件 一个是用来解析json ...
- iOS支付宝(Alipay)接入详细流程,比微信支付更简单,项目实战中的问题分析
最近在项目中接入了微信支付和支付宝支付,总的来说没有那么坑,很多人都说文档不全什么的,确实没有面面 俱到,但是认真一步一步测试下还是妥妥的,再配合懂得后台,效率也是很高的,看了这篇文章,你也只要几分钟 ...
- 使用NATAPP.cn测试微信支付回调接口
个人资源与分享网站:http://xiaocaoshare.com/ 1.在工作中,开发微信支付有点的难度的地方就是微信支付回调接口的测试,现在推荐一款在线调试工具https://natapp.cn ...
- 怎么申请微信支付接口
1.申请微信公众服务号 1 登录微信公众平台,点击右上角注册. 2 设置登录帐号基本信息. 3 査收自己的注册邮箱,点击链接,激活帐号. 4 选择自己对应的选项,进行商户信息登记. 5 确认选择公众号 ...
- 微信支付服务器demo,集成微信支付(附带demo)
首先忽略掉申请AppKey的步骤,直接从集成开始 1.cocopods集成SDK pod 'WechatOpenSDK' 2.添加依赖库 SystemConfiguration.framework, ...
最新文章
- 2010河北职称计算机考试,2010年河北省职称计算机考试试题..doc
- java 模拟时钟_java模拟时钟
- ubuntu下小键盘不能用
- 深度学习:yolo v3训练结果测试
- hdu-1422(简单dp)
- 分页探究--Filter+JSTL
- 求解哈夫曼编码Java实现,用Java实现哈夫曼编码解决方法
- 中国金融家俱乐部秋季论坛聚焦“自贸区将带来什么”展开论道
- Python天天学_03_基础三
- XenCenter为虚拟机C盘扩容
- python写入excel数据教程_python实现数据写入excel表格
- 学习OpenCV3:计算点到直线的距离并画出垂线(含公式和推导)
- sketch ps 快捷键
- Winodws10 system进程占用磁盘100%
- 贪心科技机器学习训练营(六)
- 14年和15年的IT公司排行
- 拿什么产品引流年轻女性?发什么能吸引女粉丝?
- Linux进程中的RSS和VSZ
- Linux内核性能剖析的方法学和主要工具
- 计算机对音乐课堂的帮助,电脑音乐在音乐教学中的应用
热门文章
- 《时代》杂志:元宇宙将如何塑造我们的未来?
- 从专升本到互联网大厂-我的2021
- 【Linux基础】文件及文件权限(图文详解)
- 零基础学java的最佳学习方法
- 2020年中高级Android面试秘籍(Android高级篇-3)
- SQL零基础入门学习(十)
- windows快捷键之打开网络连接
- 阿卜杜拉国王科技大学的计算机,阿卜杜拉国王科技大学(KAUST)探索奖学金项目...
- android app wifi密码,无广告查看wifi密码的软件-WiFi密码查看清爽版app下载V999安卓版-西西软件下载...
- 微信小程序开发——MySQl存储微信昵称的特殊表情