电商系统前后端开发(Vue+Springboot)(23) - 微信支付

1 微信支付

https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1

  • 下载 SDK
    电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第1张图片

2 微信支付工程

电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第2张图片

  • MyWXPayDomain
package com.github.wxpay.sdk;

public class MyWXPayDomain implements IWXPayDomain {
    public void report(String domain, long elapsedTimeMillis, Exception ex) {

    }

    /**
     * 返回微信的域名
     * @param config 配置
     * @return
     */
    public DomainInfo getDomain(WXPayConfig config) {
        DomainInfo domainInfo = new DomainInfo("api.mch.weixin.qq.com",true);
        return domainInfo;
    }
}

  • MyWXPayConfig
package com.github.wxpay.sdk;

import com.github.wxpay.sdk.WXPayConfig;

import java.io.InputStream;

public class MyWXPayConfig extends WXPayConfig {

    String getAppID() {
        return "wx632c8f211f8122c6";
    }

    /**
     * 商户 id
     * @return
     */
    String getMchID() {
        return "1497984412";
    }

    String getKey() {
        return "sbNCm1JnevqI36LrEaxFwcaT0hkGxFnC";
    }

    InputStream getCertStream() {
        return null;
    }

    IWXPayDomain getWXPayDomain() {
        MyWXPayDomain myWXPayDomain = new MyWXPayDomain();
        return myWXPayDomain;
    }
}

2.1 单元测试

package com.tzb.pay;

import com.github.wxpay.sdk.MyWXPayConfig;
import com.github.wxpay.sdk.WXPay;

import java.util.HashMap;
import java.util.Map;

public class TestWXPay {

    public static void main(String[] args) throws Exception {
        MyWXPayConfig config = new  MyWXPayConfig();

        // 创建支付对象
        WXPay wxpay = new WXPay(config);

        Map<String, String> data = new HashMap<String, String>();
        data.put("body", "腾讯充值中心-QQ会员充值");
        data.put("out_trade_no", "2020090710595900000012");
        data.put("device_info", "");
        data.put("fee_type", "CNY"); // 货币单位,分
        data.put("total_fee", "1"); // 1 分

        // 此 ip 地址会被记录
        data.put("spbill_create_ip", "123.12.12.123");

        // 需要一个回调接口,获取此次微信支付的信息
        data.put("notify_url", "http://www.example.com/wxpay/notify");
        data.put("trade_type", "NATIVE");  // 此处指定为扫码支付
        data.put("product_id", "12");

        try {
            Map<String, String> resp = wxpay.unifiedOrder(data);
            System.out.println(resp);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在这里插入图片描述
电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第3张图片

3 微信支付流程

电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第4张图片

电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第5张图片

3.1 编写回调接口

  • 搭建 springboot 项目
    电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第6张图片
    电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第7张图片
    电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第8张图片
    电商系统前后端开发(Vue+Springboot)(23) - 微信支付_第9张图片

你可能感兴趣的:(#,vue,springboot,微信支付)