都说微信支付坑,Emmm确实挺坑。一开始我也不喜欢看他那个文档。但是没办法人家的写的东西,你必须看文档。静下心来大致看一下文档。 然后去网上找DEOM 看着DEOM,对着文档。我感觉更容易明白。
首先你需要准备的东西,到微信开放平台--管理中心--去创建应用,不详细描述了。审核通过了 是这个样子
点击查看看到你有没有获得微信支付能力:
微信支付所需要的参数有以下内容:
AppID、商户号、商家秘钥(注意商家秘钥不是AppSecret,而是你在微信商家平台,app中设置的32位随机kay)、服务器IP、
回调地址、交易类型。
还有就是证书文件大概张这个样子
准备好这些东西看着文档,大致意思就是,你封装他统一支付所需的参数,去请求统一下单的接口地址;
1、在pom文件中加入:
<!--微信支付依赖-->
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
2、微信参数配置文件:
import com.github.wxpay.sdk.WXPayConfig;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
public class WXConfigUtil implements WXPayConfig {
private byte[] certData;
public static final String APP_ID = ""; //app Id
public static final String KEY = "";//秘钥
public static final String MCH_ID = ""; //商户号
public WXConfigUtil() throws Exception {
String certPath = "D:\\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();
}
@Override
public String getAppID() {
return APP_ID;
}
//parnerid,商户号
@Override
public String getMchID() {
return MCH_ID;
}
@Override
public String getKey() {
return KEY;
}
@Override
public InputStream getCertStream() {
ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
return certBis;
}
@Override
public int getHttpConnectTimeoutMs() {
return 8000;
}
@Override
public int getHttpReadTimeoutMs() {
return 10000;
}
}
3、service层:
import java.util.Map;
public interface WXservice {
//统一下单
Map dounifiedOrder(String user_id,String total_fee,String oid) throws Exception;
//回调
String payBack(String notifyData);
}
4、ServiceImpl实现层: