🌉 什么是支付网关?
支付网关是连接商户系统和金融机构的中介服务,负责处理在线支付交易、验证交易信息、管理支付流程。它为商户提供统一的API接口,屏蔽了不同银行和支付系统的复杂性。
学习主流支付网关技术和集成方案
支付网关是连接商户系统和金融机构的中介服务,负责处理在线支付交易、验证交易信息、管理支付流程。它为商户提供统一的API接口,屏蔽了不同银行和支付系统的复杂性。
中国最大的第三方支付平台,持续引领支付技术创新。
基于微信生态的超级应用支付解决方案。
全球领先的金融基础设施平台,持续扩展支付生态系统。
全球领先的数字支付平台,持续增强跨境支付能力。
中国央行数字货币,已在全国范围普及。
区块链原生支付解决方案,逐渐主流化。
主流的分期付款解决方案。
在支付网关平台注册商户账号,完成企业认证和资质审核。
所需材料:营业执照、法人身份证、银行账户信息、商户照片等
在商户后台获取 API 密钥、商户 ID 等必要信息。
关键信息:商户 ID(Partner ID)、API 密钥(API Key)、应用 ID(App ID)、公钥/私钥对
根据业务类型选择合适的 SDK,集成到系统中。
SDK 类型:服务端 SDK(后端集成)、客户端 SDK(移动端)、Web SDK(网站端)、小程序 SDK
使用沙箱环境进行测试,验证支付流程是否正常。
测试要点:下单接口调用、支付回调处理、退款流程测试、异常场景处理
接口说明:商户系统调用此接口创建支付订单,获取支付凭证。
请求方式:POST
请求URL:/api/payment/create
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| merchant_id | String | 是 | 商户ID |
| out_trade_no | String | 是 | 商户订单号,唯一 |
| total_amount | Decimal | 是 | 订单金额,单位:元 |
| currency | String | 否 | 币种,默认CNY |
| subject | String | 是 | 订单标题 |
| body | String | 否 | 订单描述 |
| pay_type | String | 是 | 支付类型:alipay/wechat/unionpay |
| notify_url | String | 是 | 异步通知地址 |
| return_url | String | 否 | 同步跳转地址 |
| timestamp | Long | 是 | 请求时间戳 |
| sign | String | 是 | 签名 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | String | 响应码:SUCCESS/FAIL |
| msg | String | 响应消息 |
| trade_no | String | 平台交易号 |
| out_trade_no | String | 商户订单号 |
| pay_url | String | 支付链接或二维码内容 |
| prepay_id | String | 预支付交易会话标识(微信) |
| timestamp | Long | 响应时间戳 |
| sign | String | 签名 |
接口说明:商户主动查询订单支付状态。
请求方式:POST
请求URL:/api/payment/query
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| merchant_id | String | 是 | 商户ID |
| out_trade_no | String | 是 | 商户订单号 |
| timestamp | Long | 是 | 请求时间戳 |
| sign | String | 是 | 签名 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | String | 响应码 |
| msg | String | 响应消息 |
| trade_status | String | 交易状态:WAIT_PAY/SUCCESS/CLOSED/REFUND |
| trade_no | String | 平台交易号 |
| out_trade_no | String | 商户订单号 |
| total_amount | Decimal | 订单金额 |
| receipt_amount | Decimal | 实收金额 |
| pay_time | String | 支付时间 |
| sign | String | 签名 |
接口说明:商户申请退款。
请求方式:POST
请求URL:/api/payment/refund
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| merchant_id | String | 是 | 商户ID |
| out_trade_no | String | 是 | 商户订单号 |
| refund_amount | Decimal | 是 | 退款金额 |
| refund_reason | String | 是 | 退款原因 |
| timestamp | Long | 是 | 请求时间戳 |
| sign | String | 是 | 签名 |
返回参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | String | 响应码 |
| msg | String | 响应消息 |
| refund_no | String | 退款单号 |
| out_trade_no | String | 商户订单号 |
| refund_status | String | 退款状态:SUCCESS/PROCESSING/FAIL |
| sign | String | 签名 |
接口说明:支付平台主动调用商户接口通知支付结果。
请求方式:POST
请求URL:商户提供的notify_url
通知参数:
| 参数名 | 类型 | 说明 |
|---|---|---|
| merchant_id | String | 商户ID |
| trade_no | String | 平台交易号 |
| out_trade_no | String | 商户订单号 |
| trade_status | String | 交易状态 |
| total_amount | Decimal | 订单金额 |
| receipt_amount | Decimal | 实收金额 |
| pay_time | String | 支付时间 |
| timestamp | Long | 通知时间戳 |
| sign | String | 签名 |
响应参数:
签名算法选择:
签名生成规则:
1. 将所有参数按字典序排序
2. 拼接成字符串:key1=value1&key2=value2&key3=value3
3. 在字符串末尾追加商户密钥
4. 使用指定算法进行加密,得到签名
签名验证流程:
1. 接收请求,提取所有参数
2. 去除sign参数
3. 按同样规则生成签名
4. 对比生成的签名与接收的签名
5. 验证签名类型(防止算法替换攻击)
1. 金额使用Decimal类型,避免浮点数精度问题
2. 统一使用"元"作为单位,内部转换"分"
3. 比较金额时使用精确比较,不能使用==
4. 显示金额时保留2位小数
1. 格式:商户ID + 时间戳 + 随机数
2. 示例:M1001202410281234567890ABCDEF
3. 特点:全局唯一、可追溯、不易冲突
4. 长度:建议32-64位
1. 使用唯一订单号作为幂等键
2. 创建订单前检查订单是否已存在
3. 已存在订单直接返回原结果
4. 使用数据库唯一索引保证并发安全
请求 → 检查订单号 →
订单存在?→ 是 → 返回原订单信息
↓
否 → 创建订单 → 返回新订单信息
1. 首次通知:立即发送
2. 重试间隔:2分钟、10分钟、30分钟、1小时、2小时、6小时、12小时
3. 重试次数:最多重试7次
4. 超时时间:24小时内未成功则停止
1. 接收通知
2. 验证签名(安全第一)
3. 检查订单号是否存在
4. 检查订单状态
5. 状态未支付?→ 更新为已支付 → 处理业务逻辑
6. 状态已支付?→ 直接返回success(幂等性)
7. 返回响应:success/fail
| 状态 | 说明 | 可转换状态 |
|---|---|---|
| CREATED | 订单已创建 | WAIT_PAY, CLOSED |
| WAIT_PAY | 等待支付 | SUCCESS, CLOSED, REFUND |
| SUCCESS | 支付成功 | REFUND, CLOSED |
| REFUND | 已退款 | - |
| CLOSED | 订单关闭 | - |
1. 设置订单超时时间(如30分钟)
2. 使用定时任务扫描超时订单
3. 自动关闭超时未支付订单
4. 释放库存、优惠券等资源
5. 通知用户订单已关闭
| 错误码 | 错误信息 | 处理建议 |
|---|---|---|
| 1001 | 参数错误 | 检查请求参数 |
| 1002 | 签名验证失败 | 检查签名算法和密钥 |
| 1003 | 订单不存在 | 检查订单号 |
| 1004 | 订单状态异常 | 检查订单状态 |
| 1005 | 余额不足 | 提示用户充值 |
| 1006 | 系统繁忙 | 稍后重试 |
AI风控系统能够在毫秒级完成风险评估,实时识别可疑交易。
| 评估维度 | AI应用 | 效果 |
|---|---|---|
| 设备指纹 | 机器学习识别设备特征 | 识别虚拟机、模拟器、Root设备 |
| 行为模式 | 深度学习分析用户行为 | 识别异常操作模式 |
| 地理位置 | AI分析位置合理性 | 识别位置异常、跨国交易 |
| 交易金额 | 异常检测算法 | 识别异常大额交易 |
| 时间模式 | 时间序列分析 | 识别非正常时间交易 |
| 关系网络 | 图神经网络(GNN) | 识别团伙欺诈、洗钱网络 |
AI客服能够自动处理大部分用户咨询,提升用户体验。
| 服务类型 | AI能力 | 处理效率 |
|---|---|---|
| 支付咨询 | 自然语言理解、知识库检索 | 90%自动处理 |
| 问题排查 | 智能诊断、自动分析 | 85%自动解决 |
| 退款申请 | 自动审核、快速处理 | 80%自动审批 |
| 投诉处理 | 情感分析、智能分类 | 75%自动处理 |
| 风险提醒 | 主动预警、安全建议 | 实时监控 |
AI根据用户习惯和场景,推荐最优支付方式。
| 推荐维度 | AI分析 | 推荐结果 |
|---|---|---|
| 用户习惯 | 分析历史支付偏好 | 推荐常用支付方式 |
| 场景分析 | 识别支付场景类型 | 推荐场景最佳方式 |
| 优惠活动 | 匹配可用优惠券 | 推荐优惠力度最大方式 |
| 额度管理 | 分析信用额度 | 推荐分期方案 |
| 风险控制 | 评估支付风险 | 推荐安全支付方式 |
AI分析用户行为,实现精准营销和个性化推荐。
AI自动化处理运营任务,提升运营效率。
| 运营场景 | AI应用 | 效率提升 |
|---|---|---|
| 商户审核 | 自动审核资质、风险评估 | 提升10倍 |
| 异常监控 | 实时监控、自动告警 | 24小时监控 |
| 数据分析 | 自动分析、生成报告 | 实时分析 |
| 对账处理 | 自动对账、异常检测 | 准确率99.9% |
| 合规检查 | 自动检查、风险预警 | 100%覆盖 |
AI能够检测和防范深度伪造攻击。
AI通过用户行为特征进行身份验证。
AI预测用户支付行为,优化支付体验。
AI自动化处理合规检查和风险控制。
| 趋势 | 描述 | 预期时间 |
|---|---|---|
| 全面智能化 | 支付全流程AI化 | 2025-2026 |
| 无感支付 | AI实现无感支付 | 2026-2027 |
| 预测性支付 | AI预测并自动支付 | 2027-2028 |
| 个性化支付 | 完全个性化的支付体验 | 2028-2029 |
| 自适应风控 | AI自适应风控策略 | 持续发展 |