*微信支付

微信支付

需要开通微信支付

微信公众平台:负责:小程序、公众号、服务号:登录、支付、分享:APPID、APP_SECRET(小程序ID、小程序密钥)

微信开放平台:第三方APP开发相关:支付、登录,需要在这里注册账号

企业认证:

企业认证开通:300元/年

开通微信支付:

前提:必须通过企业认证

微信商户平台:商家的流水以及银行账户

(收费的)

商户id:mch_id

商户key:key

支付证书:cert(相当于一个密钥,在微信商户平台上获取,是极其保密的东西)

扫码支付:扫码枪

JSAPI支付:微信内的网页支付:公众号

小程序支付:小程序内使用的支付

Native支付:二维码支付,应用在web网页内,二维码扫码支付

app支付:微信之外的第三方APP内发起的微信支付

刷脸支付:设备中的刷脸支付

商品名称、商品价格---》统一下单接口---》返回,预支付信息;支付标识()

目前不同微信版本写代码调的方法不同

V2版本与V3版本的区别

V2版本----比较适用于测试的开发者

协议:http

交互方式:xml格式

<name>火箭</name>

证书:支付的时候不需要,退款的时候需要

V3版本

协议:https

交互方式:json

证书:支付退款都需要支付证书

非对称加密:公钥、私钥

公钥:通过私钥加密的东西只能用公钥解密 同样通过公钥加密的也只能用私钥解密

*公钥是放在浏览器上的,私钥是自己保存的,要放在比较隐秘的地方
https也是使用的非对称加密

支付时序图

创建支付的微服务

创建配置文件

application.yml

spring:

  application:

    name: service-payment

  profiles:

    active: dev

  cloud:

    nacos:

      discovery:

        server-addr: localhost:8848

application-dev.yml

server:

  port: 8210

mybatis-plus:

  type-enums-package: com.atguigu.ssyx.enums

  configuration:

    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  mapper-locations: classpath:mapper/*.xml

feign:

  sentinel:

    enabled: true

  client:

    config:

      default:   #配置全局的feign的调用超时时间  如果 有指定的服务配置 默认的配置不会生效

        connectTimeout: 30000 # 指定的是 消费者 连接服务提供者的连接超时时间 是否能连接  单位是毫秒

        readTimeout: 50000  # 指定的是调用服务提供者的 服务 的超时时间()  单位是毫秒

spring:

  main:

    allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册

  rabbitmq:

    host: 192.168.56.101

    port: 5672

    username: guest

    password: guest

    publisher-confirm-type: CORRELATED

    publisher-returns: true

    listener:

      simple:

        prefetch: 1

        concurrency: 3

        acknowledge-mode: manual

  redis:

    host: localhost

    port: 6379

    database: 0

    timeout: 1800000

    password:

    lettuce:

      pool:

        max-active: 20 #最大连接数

        max-wait: -1    #最大阻塞等待时间(负数表示没限制)

        max-idle: 5    #最大空闲

        min-idle: 0     #最小空闲

  datasource:

    type: com.zaxxer.hikari.HikariDataSource

    driver-class-name: com.mysql.cj.jdbc.Driver

    url: jdbc:mysql://localhost:3306/shequ-order?characterEncoding=utf-8&useSSL=false

    username: root

    password: root

    hikari:

      connection-test-query: SELECT 1

      connection-timeout: 60000

      idle-timeout: 500000

      max-lifetime: 540000

      maximum-pool-size: 5

      minimum-idle: 3

      pool-name: GuliHikariPool

  jackson:

    date-format: yyyy-MM-dd HH:mm:ss

    time-zone: GMT+8

# 微信

weixin:

  #小程序微信公众平台appId

  appid: wxcc651fcbab275e33

  partner: 1481962542

  partnerkey: MXb72b9RfshXZD4FRGV5KLqmv5bx9LT9

  notifyurl: http://gmall-prod.atguigu.cn/api/payment/weixin/notify

  cert: D:\yygh_work\yygh_parent\service\service-order\src\main\resources\apiclient_cert.p12

创建启动类

package com.atguigu.ssyx;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication

@EnableDiscoveryClient

@EnableFeignClients

public class ServicePaymentApplication {

    public static void main(String[] args) {

        SpringApplication.run(ServicePaymentApplication.class, args);

    }

}

添加controller

引入依赖

<!--导入微信支付sdk-->

<dependency>

    <groupId>com.github.wxpay</groupId>

    <artifactId>wxpay-sdk</artifactId>

    <version>0.0.3</version>

</dependency>

提交订单问题处理:
1.redisson要求所有的服务都必须加入redis配置
2提交订单成功之后,获取订单详情接口
orderInfo.getParam().put("orderStatusName",orderInfo.getOrderStatus() .getComment());


3.获取用户昵称的时候,不能使用Thread Local中取,因为没有存,需要根据userId取redis中取
4.优惠总金额以及优惠券总金额获取,要判空
BigDecimalactivity Amount=activityAmoundDetail.containsKey("activity:total")?activityAmoundDetail.get("activity:total"): new BigDecimal(0);
BigDecimalcoupanAmount=activityAmoundDetail.containsKey("coupon:total")?activityAmoundDetail.get("coupon:total"):new BigDecimal(e):
5.锁定库存的时候, 需要使用@Update注解

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值