微信支付

微信支付

支付产品介绍

https://pay.weixin.qq.com/static/product/product_index.shtml#payment_product

1.1 付款码支付

用户展示微信钱包内的“付款码”给商家,商家扫描后直接完成支付,适用于线下面对面收银的场景。

1.2 JSAPI支付

线下场所:商户展示一个支付二维码,用户使用微信扫描二维码后,输入需要支付的金额,完成支 付。

公众号场景:用户在微信内进入商家公众号,打开某个页面,选择某个产品,完成支付。

PC网站场景:在网站中展示二维码,用户使用微信扫描二维码,输入需要支付的金额,完成支付。

特点:用户在客户端输入支付金额

1.3 小程序支付

在微信小程序平台内实现支付的功能。

1.4 Native支付

Native支付是指商户展示支付二维码,用户再用微信“扫一扫”完成支付的模式。这种方式适用于PC网 站。

特点:商家预先指定支付金额

1.5 APP支付 商户通过在移动端独立的APP应用程序中集成微信支付模块,完成支付。

1.6 刷脸支付

用户在刷脸设备前通过摄像头刷脸、识别身份后进行的一种支付方式

JSAPI支付 vs Native支付

JSAPI支付是由 用户 输入支付金额,Native支付是由 商家 生成支付金额。

商户管理后台首页

商户号:商户平台 >> 账户中心 >> 登录账号就是商户号

APPID:注册一个公众号:可以获取appid

API密钥:APIv2版本的接口需要此秘钥

APIv3密钥:APIv3版本的接口需要此秘钥

申请API证书:如果是V3接口,则所有接口中都需要有API证书

获取微信平台证书:可以预下载,可以变成获取。建议编程下载,因为微信平台证书会定期更换。

获取开发中的密钥和证书:

商户平台 >> 左侧的 API 安全 : API密钥(针对v2版本的密钥) APIv3密钥 API证书

参考文档:

https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_1.shtml

API证书:

获取微信平台证书:针对商户的证书,微信平台的API证书

所需参数:

商户号 appid api密钥 apiv3密钥 商户的证书

机密性

对称加密算法:

AES加密算法,密钥长度128、192或256,安全强度很高,性能很好 •

加密分组模式:将明文分组加密,微信支付中使用 AEAD_AES_256_GCM

非对称加密:

使用公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密

RSA加密算法:最著名的非对称加密算法

MD5 SHA1 被证明不具有强的抗碰撞性,SHA2(SHA224 SHA256 SHA384)有强抗碰撞性

Bob 写完信后,使用摘要算法计算出摘要,然后使用私钥对摘要进行签名,将签名附加在信上。

Pat 收到信后,使用公钥对签名解密,得到摘要信息,然后对原文进行进行摘要运算,得到原文的摘要信息,然后比对两个摘要是否一致。

公钥加密,私钥解密的作用是加密信息

私钥加密,公钥解密的作用是身份认证

基础支付APIv3

支付参数:appid 商户号 api密钥 数字证书等

商户私钥:商户向微信平台发送请求时,需要使用私钥签名

微信平台证书:微信平台向商户发送请求,使用微信平台的私钥。微信平台的公钥从微信的数字证书中获取。

1
2
3
4
5
<dependency>
   <groupId>com.github.wechatpay-apiv3</groupId>
   <artifactId>wechatpay-apache-httpclient</artifactId>
   <version>0.3.0</version>
</dependency>

APIv3证书与密钥使用说明

微信支付-开发者文档 (qq.com)

API列表:

API列表-Native支付 | 微信支付商户平台文档中心 (qq.com)

https://pay.weixin.qq.com/

SDK,工具 | 微信支付商户平台文档中心 (qq.com)