2021-08-30 15:35:19

java微信支付

发布日期:2021/8/20

maven依赖

<dependency>
    <groupId>cn.felord</groupId>
    <artifactId>payment-spring-boot-starter</artifactId>
    <version>1.0.11.RELEASE</version>
</dependency>

api地址

代码

package com.demo.controller.pay;

import cn.felord.payment.autoconfigure.EnableMobilePay;
import cn.felord.payment.wechat.v3.WechatApiProvider;
import cn.felord.payment.wechat.v3.WechatDirectPayApi;
import cn.felord.payment.wechat.v3.WechatResponseEntity;
import cn.felord.payment.wechat.v3.model.Amount;
import cn.felord.payment.wechat.v3.model.H5Info;
import cn.felord.payment.wechat.v3.model.PayParams;
import cn.felord.payment.wechat.v3.model.SceneInfo;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author lc
 * @since 2021/8/20
 */
@RestController
@RequestMapping("pay")
@EnableMobilePay
public class PayController {


    @Autowired
    private WechatApiProvider wechatApiProvider;

    @GetMapping("createOrder")
    public Object createOrder(){
        WechatDirectPayApi api = wechatApiProvider.directPayApi("h5");
        PayParams params = new PayParams();
        params.setDescription("测试v3");
        params.setOutTradeNo(DateUtil.date().toString(DatePattern.PURE_DATETIME_MS_PATTERN));
        params.setNotifyUrl("https://www.baidu.com");
        //金额
        Amount amount = new Amount();
        amount.setTotal(1);
        params.setAmount(amount);

        SceneInfo info = new SceneInfo();
        info.setPayerClientIp("14.23.150.211");
        H5Info h5Info = new H5Info();
        h5Info.setType(H5Info.H5SceneType.Android);
        info.setH5Info(h5Info);
        params.setSceneInfo(info);

        WechatResponseEntity<ObjectNode> pay = api.h5Pay(params);

        return pay.getBody();
    }

}

yml配置

server:
  shutdown: graceful
wechat:
  pay:
    v3:
      h5: #此处对应 wechatApiProvider.directPayApi("h5");
        app-id: //支付APPID(微信公众号或者微信开放平台的)(微信公众号不支持APP支付)
        app-v3-secret: //微信商户apiv3秘钥
        mch-id: 商户id
        domain: https://felord.cn #微信配置的回调域名
        cert-path: apiclient_cert.p12 # resources 放置在resources目录下即可

本文链接:https://blog.kingxues.com/post/wxpays.html

-- EOF --

Comments