目录
Native支付 (适用于PC网页场景)
选择接入模式
直连模式
信息、资金流:微信支付—>直连商户
直连模式,商户自行申请入驻微信支付,无需服务商协助。(商户平台申请)成为直连商户
接入前的准备
-
申请参数
申请APPID(基于公众号)
申请mchid(申请mchid和APPID的操作互不影响,可以并行操作,申请地址如下: 商户号申请平台
绑定APPID及mchid
-
配置API key(参考官方文档)
-
下载并配置商户证书(参考官方文档),用于生成微信支付请求的签名
-
配置支付授权目录和设置授权域名(参考官方文档)
开发指引 (开发指引-Native支付 | 微信支付服务商平台文档中心 (qq.com)
-
引入wechatpay-java工程
-
加载商户私钥、平台证书,初始化httpClient
@Before public void setup() throws IOException { // 加载商户私钥(privateKey:私钥字符串) PrivateKey merchantPrivateKey = PemUtil .loadPrivateKey(new ByteArrayInputStream(privateKey.getBytes("utf-8"))); // 加载平台证书(mchId:商户号,mchSerialNo:商户证书序列号,apiV3Key:V3密钥) AutoUpdateCertificatesVerifier verifier = new AutoUpdateCertificatesVerifier( new WechatPay2Credentials(mchId, new PrivateKeySigner(mchSerialNo, merchantPrivateKey)),apiV3Key.getBytes("utf-8")); // 初始化httpClient httpClient = WechatPayHttpClientBuilder.create() .withMerchant(mchId, mchSerialNo, merchantPrivateKey) .withValidator(new WechatPay2Validator(verifier)).build(); } @After public void after() throws IOException { httpClient.close(); }
-
签名生成:商户系统访问微信支付系统时需要加上签名,此时生成签名,比如Native下单接口
-
签名验证:微信支付系统回调商户系统时需要验签,比如支付结果通知接口
-
敏感信息加解密:为了保证通信过程中敏感信息字段(如用户的住址、银行卡号、手机号码等)的机密性,微信支付API v3要求商户对上送的敏感信息字段进行加密。与之相对应,微信支付会对下行的敏感信息字段进行加密,商户需解密后方能得到原文。敏感信息加解密-接口规则 | 微信支付服务商平台文档中心 (qq.com)。比如支付结果通知接口的通知报文参数需要解密