Skip to content

Open Payment Specification

Open Payment Specification(OPS)是风梨规范库为易支付类平台整理的开放支付规范。它面向已经在野外长期运行的易支付接口,目标不是推翻现有实现,而是在兼容现有平台的基础上,统一配置发现、字段语义、签名方式、支付方式声明、通知验签和版本演进。

设计目标

  • 兼容主流易支付平台的提交页、接口下单、查询、异步通知和同步跳转。
  • 保留 pidtypeout_trade_nonamemoneynotify_urlreturn_urlsignsign_type 等常见字段。
  • 通过固定发现地址暴露平台能力,避免接入方手工猜测提交地址、签名方式和支付方式。
  • 允许平台逐步扩展 HMAC、RSA、JSON API、退款、关闭订单和更严格的安全能力。

发现地址

兼容 OPS 的支付平台必须在以下路径暴露配置:

txt
/.well-known/openpayment-configuation

openpayment-configuation 的拼写是本规范固定路径。实现方可以额外提供 /.well-known/openpayment-configuration 作为别名,但客户端不能只依赖别名。

兼容层级

OPS 将易支付平台兼容能力分为三个层级。

层级名称要求
OPS-EPAY-1传统易支付兼容支持表单提交、MD5 签名、异步通知、同步返回和订单查询
OPS-CORE-1标准发现兼容支持 .well-known 配置发现,并声明接口、签名、字段别名和支付方式
OPS-EXT-1扩展能力兼容支持 HMAC/RSA、JSON API、退款、关闭订单、时间戳、随机串和密钥轮换

平台只要满足 OPS-EPAY-1 与 OPS-CORE-1,就可以被视为 OPS 基础兼容平台。

核心页面

基础术语

术语说明
平台提供支付网关能力的易支付服务端
商户接入支付平台的业务系统
平台订单号支付平台生成的唯一订单号,常见字段为 trade_no
商户订单号商户生成的唯一订单号,常见字段为 out_trade_no
异步通知平台向商户 notify_url 发起的服务器端支付结果通知
同步返回用户支付后浏览器跳转到商户 return_url 的结果页面
支付方式平台支持的通道标识,例如 alipaywxpayqqpay

最小接入流程

  1. 客户端请求 /.well-known/openpayment-configuation 获取平台能力。
  2. 根据配置选择提交地址、支付方式、签名方式和字段别名。
  3. 商户生成订单并按签名规范提交支付请求。
  4. 平台创建订单并引导用户完成支付。
  5. 平台向商户 notify_url 发送异步通知。
  6. 商户验签、校验金额和订单状态后返回 success
  7. 商户必要时调用查询接口进行状态补偿。

展示可发现、可实现、可兼容的开放规范。