2019-05-05

付款码支付(微信)开发流程

前言

五一4天小长假,看了“复联4”,没有然后了。

再见老铁!

零、支付流程

商户后台接入付款码支付

一、准备工作

  • 官方 SDK 与 DEMO
  • 在商户号中开通付款码支付功能,并获取以下参数
  1. appid(微信分配的公众号ID)
  2. mch_id(微信支付分配的商户号)

二、码一码

填充配置类 MyConfig
import com.github.wxpay.sdk.WXPayConfig;
import java.io.*;
public class MyConfig implements WXPayConfig{    

    private byte[] certData;   
    
    public MyConfig() throws Exception {        
        String certPath = "/path/to/apiclient_cert.p12";       
        File file = new File(certPath);        
        InputStream certStream = new FileInputStream(file);        
        this.certData = new byte[(int) file.length()];        
        certStream.read(this.certData);        
        certStream.close();    
    }   
    public String getAppID() {        
        return "wx8888888888888888";   
    }    
    public String getMchID() {        
        return "12888888";    
    }    
    public String getKey() {        
        return "88888888888888888888888888888888";   
    }    
    public InputStream getCertStream() {        
        ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);        
        return certBis;    
    }    
    public int getHttpConnectTimeoutMs() {        
        return 8000;  
    }    
    public int getHttpReadTimeoutMs() {        
        return 10000;    
    }
}
HTTPS请求可选HMAC-SHA256算法和MD5算法签名:`
import com.github.wxpay.sdk.WXPay;
import com.github.wxpay.sdk.WXPayConstants;
public class WXPayExample {    
    public static void main(String[] args) throws Exception { 
        MyConfig config = new MyConfig();        
        WXPay wxpay = new WXPay(config, 
        WXPayConstants.SignType.HMACSHA256);        // ......   
    }
}
若需要使用sandbox环境:
import com.github.wxpay.sdk.WXPay;
mport com.github.wxpay.sdk.WXPayConstants;
public class WXPayExample {    
    public static void main(String[] args) throws Exception {        
        MyConfig config = new MyConfig();        
        WXPay wxpay = new WXPay(config, 
        WXPayConstants.SignType.MD5, true);        // ......    
    }
}

三、坑一坑

前面下载的SDK和demo中一共有8个java文件,我实际上用到的有这几个:

  1. WxPay.java 实现发送请求数据的字符串拼接,以及http请求接口
  2. WXPayConstants.java 初始化appidmch_idsub_mch_idwx_key等参数
    a. appid: 公众号id
    b. mch_id: 商户id
    c. sub_mch_id: 子商户id
    d. wx_key: 签名sign(自定义)
  3. WXPayUtil.java 实现数据签名

快乐的拿出付款码扫码付款吧!!
码运昌隆

你可能感兴趣的:(2019-05-05)