微信支付(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.创建案例项目

步骤:

  1. 创建SpringBoot项目(Java、SpringBoot、SpringMVC、RESTful、json)
  2. 引入Swagger(接口文档和测试页面生成工具)
  3. 定义统一结果
  4. 创建和连接数据库
  5. 集成Mybatis-Plus
  6. 搭建前端环境
  7. 认识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)相关推荐

  1. laravel ajax vue6,详解用vue.js和laravel实现微信支付

    注:此项是微信公众号开发,请在往下看之前,先实现网页微信授权登陆功能,具体参看我简书的另一篇文章:https://www.jb51.net/article/117004.htm 1.打开app/con ...

  2. 【全网唯一】全网唯一能够跑通的,跑不通你来找我~用node.js完成微信支付下单功能,且只需要一个文件wxpay.js就解决业务流程的node.js程序

    先吐为敬! 最近心血来潮研究nodejs如何完成微信支付功能,结果网上一搜索,一大堆"代码拷贝党"."留一手"."缺斤少两"."不 ...

  3. 解决Hbuilder打包的APP微信支付时无法唤起支付,且提示{“code“:-100,“message“:“[payment微信:-1]General errors“}的问题

    依次排查: 1.menifest.json中配置了微信的appid是不是微信开放平台(微信开放平台)对应的APP id,包名是否和微信开放平台对应APP的包名一致(com.******.app) 2. ...

  4. 微信支付invalid total_fee 的报错

    因为我的测试商品是0.01的 原因是微信支付的金额是不能带小数点的 直接在提交的时候 乘以 100操作 ,因为里面设置参数的时候是 以分为单位的 [packageParams setObject: p ...

  5. iOS微信支付集成 SDK1 7 5

    最近做了一个新项目,涉及到支付宝和微信支付,支付宝和微信都是业界的老大哥,相信大家都有所觉得文档.SDK都是各种坑吧(纯粹吐槽而已),这是继上篇支付宝支付集成后接着的微信支付集成. 1.微信商户申请步 ...

  6. mui 微信支付 与springMVC服务器交互

    昨天搞定了微信支付,没有想象中的难,主要是官方的demo不全好多东西要自己琢磨,mui端的就不写了支付宝的有了一模一样.上java端的首先是jar包 一个是用来解析xml文件 一个是用来解析json ...

  7. iOS支付宝(Alipay)接入详细流程,比微信支付更简单,项目实战中的问题分析

    最近在项目中接入了微信支付和支付宝支付,总的来说没有那么坑,很多人都说文档不全什么的,确实没有面面 俱到,但是认真一步一步测试下还是妥妥的,再配合懂得后台,效率也是很高的,看了这篇文章,你也只要几分钟 ...

  8. 使用NATAPP.cn测试微信支付回调接口

    个人资源与分享网站:http://xiaocaoshare.com/ 1.在工作中,开发微信支付有点的难度的地方就是微信支付回调接口的测试,现在推荐一款在线调试工具https://natapp.cn ...

  9. 怎么申请微信支付接口

    1.申请微信公众服务号 1 登录微信公众平台,点击右上角注册. 2 设置登录帐号基本信息. 3 査收自己的注册邮箱,点击链接,激活帐号. 4 选择自己对应的选项,进行商户信息登记. 5 确认选择公众号 ...

  10. 微信支付服务器demo,集成微信支付(附带demo)

    首先忽略掉申请AppKey的步骤,直接从集成开始 1.cocopods集成SDK pod 'WechatOpenSDK' 2.添加依赖库 SystemConfiguration.framework, ...

最新文章

  1. 2010河北职称计算机考试,2010年河北省职称计算机考试试题..doc
  2. java 模拟时钟_java模拟时钟
  3. ubuntu下小键盘不能用
  4. 深度学习:yolo v3训练结果测试
  5. hdu-1422(简单dp)
  6. 分页探究--Filter+JSTL
  7. 求解哈夫曼编码Java实现,用Java实现哈夫曼编码解决方法
  8. 中国金融家俱乐部秋季论坛聚焦“自贸区将带来什么”展开论道
  9. Python天天学_03_基础三
  10. XenCenter为虚拟机C盘扩容
  11. python写入excel数据教程_python实现数据写入excel表格
  12. 学习OpenCV3:计算点到直线的距离并画出垂线(含公式和推导)
  13. sketch ps 快捷键
  14. Winodws10 system进程占用磁盘100%
  15. 贪心科技机器学习训练营(六)
  16. 14年和15年的IT公司排行
  17. 拿什么产品引流年轻女性?发什么能吸引女粉丝?
  18. Linux进程中的RSS和VSZ
  19. Linux内核性能剖析的方法学和主要工具
  20. 计算机对音乐课堂的帮助,电脑音乐在音乐教学中的应用

热门文章

  1. 《时代》杂志:元宇宙将如何塑造我们的未来?
  2. 从专升本到互联网大厂-我的2021
  3. 【Linux基础】文件及文件权限(图文详解)
  4. 零基础学java的最佳学习方法
  5. 2020年中高级Android面试秘籍(Android高级篇-3)
  6. SQL零基础入门学习(十)
  7. windows快捷键之打开网络连接
  8. 阿卜杜拉国王科技大学的计算机,阿卜杜拉国王科技大学(KAUST)探索奖学金项目...
  9. android app wifi密码,无广告查看wifi密码的软件-WiFi密码查看清爽版app下载V999安卓版-西西软件下载...
  10. 微信小程序开发——MySQl存储微信昵称的特殊表情