这次呢是开发小程序的支付功能。因为没有做过,特此记录,做一个小总结,以便以后使用以及给小伙伴们提供一个像我一样的小白一个参考,我也是一点一点摸索过来的,此文只针对开发支付流程而言以及出现的问题,其它则会略过,只讲解实际动手开发过程 ,
名词和实际开发API看 开发文档
而我用的是普通模式
前期准备
1.开通微信支付平台 成为普通商户,上传商户所需信息(这个不用我多说)
2.配置小程序,获取appId (小程序项目也和支付无关,只需小程序的appId ,其它不表)
3.小程序appId 关联绑定商户支付平台 ,如图:
4.微信支付平台(简称平台)设置密钥,(密钥就是签名时要用的 key) 如图:
然后进入正题,首先服务器后端项目需要加入依赖:
<!-- 微信支付API -->
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
以上的依赖官方已经封装了支付的方法及工具,使用起来很是方便,完全不用从基础一步一步根据API 封装实现。省了我们不少麻烦和繁琐。
也可以从支付平台下载SDK和demo对比,查看具体的内容, 其内容和依赖是一样的。
如图:
现在开始看代码,虽然封装了一些方法,但是项目还是需要配置一下自己的东西,比如appid 、商户号以及key 的配置,
package com.xn.weixin.common;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import com.github.wxpay.sdk.WXPayConfig;
// 需要实现一下支付基本的配置,方便调用
public class MyPayConfig implements WXPayConfig{
private byte[] certData;
public void MyConfig() throws Exception {
//此处暂时用不到,这里是读取证书的地方
}
public String getAppID() {
return "这里是你的appid";
}
public String getMchID() {
//申请普通商户时分配给你的商户号
return "这里是你的商户号";
}
public String getKey() {
//这里的key 就是你在支付平台设置的API密钥
return "这是就是你的Key了";
}
public InputStream getCertStream() {
ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
return certBis;
}
public int getHttpConnectTimeoutMs() {
return 8000;
}
public int getHttpReadTimeoutMs() {
return 10000;
}
}
接下来下一步,我们看API 文档中有下面几点:
商户系统和微信支付系统主要交互:
1、小程序内调用登录接口,获取到用户的openid,api参见公共api【小程序登录API】
2、商户server调用支付统一下单,api参见公共api【统一下单API】
3、商户server调用再次签名,api参见公共api【再次签名】
4、商户server接收支付通知,api参见公共api【