目录
商户平台产品中心配置
开发配置
-
开通JSAPI支付、Native支付
-
JSAPI支付授权目录(前端项目域名)
-
Native支付回调链接(经过实验,如果支付选的是native支付,这个配置项,配不配都行)
-
appid账号配置
这一步,完成商户与微信公众号关联
账户中心配置
这里的配置,主要是为了拿到商户api的证书、证书私钥(签名)、apiV3密钥(解密),要保管好。
微信公众号配置
微信支付配置
商户平台关联完公众号,在公众号平台,微信支付页面,需要点击确认,完成关联操作。
公众号设置
在公众号设置里配置网页授权域名,目的是微信支付完,微信会回调我们应用程序,告知我们支付结果。所以这个地方配置的是我们应用程序的域名。
我们项目里,微信回调的是后端服务提供的接口,所以这里配置的是后端服务域名。
微信平台证书获取
postman调用https://api.mch.weixin.qq.com/v3/certificates?
具体配置,参考官方文档
postman脚本中关键配置信息如下
const private_key = `-----BEGIN PRIVATE KEY----- {商户的私钥} -----END PRIVATE KEY-----`; const mchid = "{商户号}"; const serialNo = "{商户证书的证书序列号}"; // ....以下省略
不同商户号,获取不同微信平台证书。
解密证书密文
通过postman,调用接口返回的微信平台证书是加密的,需要进行解密
package com.insuresmart.claim.postback; import java.io.IOException; import java.security.GeneralSecurityException; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.SecretKeySpec; public class AesUtil { static final int KEY_LENGTH_BYTE = 32;