微信支付的接入需要根据具体的支付场景(如扫码支付、H5支付、JSAPI支付、小程序支付等)选择不同的接入方式。以下是微信支付接入的详细步骤概述,具体以微信支付官方文档为准。
### 1. 注册和认证
#### 注册微信商户账号
- 访问 [微信支付官网](https://pay.weixin.qq.com/) 注册商户账号。
- 提交企业资质信息,包括营业执照、开户许可证等。
- 完成账户认证和审核。
#### 获取商户号和API密钥
- 登录商户平台,获取商户号(MchID)。
- 在商户平台设置API密钥。
### 2. 开通接口权限
确保已开通需要使用的支付场景权限(如扫码支付、JSAPI支付等)。这通常需要在商户平台提交申请。
---
### 3. 技术准备
#### SDK或工具
微信支付提供多种语言的官方SDK(如Java、PHP、Python等)。也可直接调用API。
#### 安装数字证书
- 登录商户平台,下载API证书(apiclient_cert.pem 和 apiclient_key.pem)。
- 安装并配置证书,部分接口(如退款、转账等)需要使用证书。
---
### 4. 接口接入流程
#### 通用步骤
1. **签名机制**:
- 所有请求参数需要按照指定方式签名(MD5或HMAC-SHA256)。
- 签名的关键参数包括`appid`(公众号/小程序ID)、`mch_id`(商户号)、`nonce_str`(随机字符串)等。
2. **统一下单接口**:
- 调用`/pay/unifiedorder`接口生成预支付订单。
- 请求参数包括`body`(商品描述)、`out_trade_no`(商户订单号)、`total_fee`(订单金额,单位为分)、`spbill_create_ip`(用户终端IP)等。
3. **支付通知**:
- 微信支付会异步通知支付结果。
- 商户服务器需接收并验证通知内容,返回成功确认。
---
#### 不同场景接入指南
1. **扫码支付(Native支付)**:
- 适用于PC端、线下支付场景。
- 商户后台调用统一下单接口,生成支付二维码,用户扫码完成支付。
2. **H5支付**:
- 适用于移动端浏览器。
- 调用统一下单接口,获取支付跳转链接。
3. **JSAPI支付**:
- 适用于公众号/小程序。
- 获取用户`openid`后,调用统一下单接口,生成支付参数并调用微信支付JS接口。
4. **小程序支付**:
- 与JSAPI支付类似,需要先获取用户`openid`,然后发起支付。
5. **APP支付**:
- 在移动App中集成微信支付SDK。
- 调用统一下单接口,获取支付参数后调用微信支付。
---
### 5. 安全注意事项
- **签名校验**:所有请求和响应都需验证签名。
- **防重放攻击**:通过`nonce_str`和时间戳避免重复请求。
- **数据加密**:敏感数据(如银行卡号、退款信息)需加密处理。
---
### 6. 官方文档与工具
- **官方开发文档**: [微信支付开发者文档](https://pay.weixin.qq.com/wiki/doc/apiv3/welcome.shtml)
- **API工具**:商户平台提供API调试工具,可用于测试接口。