付款码支付(微信)开发流程
前言
再见老铁!五一4天小长假,看了“复联4”,没有然后了。
零、支付流程
商户后台接入付款码支付一、准备工作
- 官方 SDK 与 DEMO
- 在商户号中开通付款码支付功能,并获取以下参数
-
appid
(微信分配的公众号ID) -
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文件,我实际上用到的有这几个:
-
WxPay.java
实现发送请求数据的字符串拼接,以及http请求接口 -
WXPayConstants.java
初始化appid
、mch_id
、sub_mch_id
、wx_key
等参数
a. appid: 公众号id
b. mch_id: 商户id
c. sub_mch_id: 子商户id
d. wx_key: 签名sign(自定义) -
WXPayUtil.java
实现数据签名
网友评论