美文网首页
2019-05-05

2019-05-05

作者: 打扰了233 | 来源:发表于2019-05-05 16:00 被阅读0次

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

    前言

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

    再见老铁!

    零、支付流程

    商户后台接入付款码支付

    一、准备工作

    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

          本文链接:https://www.haomeiwen.com/subject/dfdhoqtx.html