V1 旧版接口文档
目录
协议规则
- 请求数据格式:
application/x-www-form-urlencoded - 返回数据格式:
JSON - 签名算法:
MD5 - 字符编码:
UTF-8
页面跳转支付
此接口可用于用户前台直接发起支付,使用 form 表单跳转或拼接成 URL 跳转。
URL 地址: https://api.okopay.cn/submit.php
请求方式: POST 或 GET(推荐 POST,不容易被劫持或屏蔽)
请求参数说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户 ID | pid | 是 | Int | 1001 | |
| 支付方式 | type | 否 | String | alipay | 支付方式列表 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
| 异步通知地址 | notify_url | 是 | String | http://www.pay.com/notify_url.php | 服务器异步通知地址 |
| 跳转通知地址 | return_url | 是 | String | http://www.pay.com/return_url.php | 页面跳转通知地址 |
| 商品名称 | name | 是 | String | VIP会员 | 如超过 127 个字节会自动截取 |
| 商品金额 | money | 是 | String | 1.00 | 单位:元,最大 2 位小数 |
| 业务扩展参数 | param | 否 | String | 没有请留空 | 支付后原样返回 |
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | MD5 签名算法 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为 MD5 |
说明: 支付方式(type)不传会跳转到收银台支付。API接口支付
此接口可用于服务器后端发起支付请求,会返回支付二维码链接或支付跳转 URL。
URL 地址: https://api.okopay.cn/mapi.php
请求方式: POST
请求参数说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户 ID | pid | 是 | Int | 1001 | |
| 支付方式 | type | 是 | String | alipay | 支付方式列表 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
| 异步通知地址 | notify_url | 是 | String | http://www.pay.com/notify_url.php | 服务器异步通知地址 |
| 跳转通知地址 | return_url | 否 | String | http://www.pay.com/return_url.php | 页面跳转通知地址 |
| 商品名称 | name | 是 | String | VIP会员 | 如超过 127 个字节会自动截取 |
| 商品金额 | money | 是 | String | 1.00 | 单位:元,最大 2 位小数 |
| 用户 IP 地址 | clientip | 是 | String | 192.168.1.100 | 用户发起支付的 IP 地址 |
| 设备类型 | device | 否 | String | pc | 根据用户浏览器 UA 判断;设备类型列表;默认为 pc |
| 业务扩展参数 | param | 否 | String | 没有请留空 | 支付后原样返回 |
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | MD5 签名算法 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为 MD5 |
返回结果(JSON)
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1 为成功,其它值为失败 |
| 返回信息 | msg | String | 失败时返回原因 | |
| 订单号 | trade_no | String | 20160806151343349 | 支付订单号 |
| 支付跳转 URL | payurl | String | https://api.okopay.cn/pay/wxpay/202010903/ | 若返回该字段,则直接跳转到该 URL 支付 |
| 二维码链接 | qrcode | String | weixin://wxpay/bizpayurl?pr=04IPMKM | 若返回该字段,则根据该 URL 生成二维码 |
| 小程序跳转 URL | urlscheme | String | weixin://dl/business/?ticket=xxx | 若返回该字段,则使用 JS 跳转,可发起微信小程序支付 |
说明:payurl、qrcode、urlscheme三个参数只会返回其中一个。
支付结果通知
通知类型: 服务器异步通知(notify_url)、页面跳转通知(return_url)
请求方式: GET
请求参数说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户 ID | pid | 是 | Int | 1001 | |
| 平台订单号 | trade_no | 是 | String | 20160806151343349021 | 支付系统侧订单号 |
| 商户订单号 | out_trade_no | 是 | String | 20160806151343349 | 商户系统内部的订单号 |
| 支付方式 | type | 是 | String | alipay | 支付方式列表 |
| 商品名称 | name | 是 | String | VIP会员 | |
| 商品金额 | money | 是 | String | 1.00 | |
| 支付状态 | trade_status | 是 | String | TRADE_SUCCESS | 只有 TRADE_SUCCESS 表示成功 |
| 业务扩展参数 | param | 否 | String | ||
| 签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | MD5 签名算法 |
| 签名类型 | sign_type | 是 | String | MD5 | 默认为 MD5 |
说明: 收到异步通知后,需返回 success 以表示服务器接收到了订单通知。MD5 签名算法
- 将发送或接收到的所有参数按照参数名 ASCII 码从小到大排序(a-z),
sign、sign_type和空值不参与签名。 - 将排序后的参数拼接成 URL 键值对格式,例如
a=b&c=d&e=f,参数值不要进行 URL 编码。 - 再将拼接好的字符串与商户密钥
KEY进行 MD5 加密得出sign签名参数:sign = md5( 拼接字符串 + KEY )(注意:+为各语言的拼接符,不是字符!),md5 结果为小写。 - 具体签名与发起支付的示例代码可下载 SDK 查看(见文末 SDK 下载)。
支付方式列表
| 调用值 | 描述 |
|---|---|
| alipay | 支付宝 |
| wxpay | 微信支付 |
| qqpay | QQ 钱包 |
| bank | 银联支付 |
| jdpay | 京东支付 |
| paypal | PayPal |
| douyinpay | 抖音支付 |
设备类型列表
| 调用值 | 描述 |
|---|---|
| pc | 电脑浏览器 |
| mobile | 手机浏览器 |
| 手机 QQ 内浏览器 | |
| 微信内浏览器 | |
| alipay | 支付宝客户端 |
| douyin | 抖音 APP |
| jump | 仅返回支付跳转 URL |
API:查询商户信息
URL 地址:
https://api.okopay.cn/api.php?act=query&pid={商户ID}&key={商户密钥}
请求参数说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | query | 此 API 固定值 |
| 商户 ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i |
返回结果
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1 为成功,其它值为失败 |
| 商户 ID | pid | Int | 1001 | |
| 商户密钥 | key | String(32) | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | |
| 商户状态 | active | Int | 1 | 1 为正常,0 为封禁 |
| 商户余额 | money | String | 0.00 | 商户所拥有的余额 |
| 结算方式 | type | Int | 1 | 1:支付宝,2:微信,3:QQ,4:银行卡 |
| 结算账号 | account | String | admin@pay.com | 结算账号 |
| 结算姓名 | username | String | 张三 | 结算姓名 |
| 订单总数 | orders | Int | 30 | 订单总数统计 |
| 今日订单 | order_today | Int | 15 | 今日订单数量 |
| 昨日订单 | order_lastday | Int | 15 | 昨日订单数量 |
API:查询结算记录
URL 地址:
https://api.okopay.cn/api.php?act=settle&pid={商户ID}&key={商户密钥}
请求参数说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | settle | 此 API 固定值 |
| 商户 ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i |
返回结果
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1 为成功 |
| 返回信息 | msg | String | 查询结算记录成功! | |
| 结算记录 | data | Array | 结算记录列表 |
API:查询单个订单
URL 地址:
https://api.okopay.cn/api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号}
(也可使用 trade_no 传系统订单号,见下表。)
请求参数说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | order | 此 API 固定值 |
| 商户 ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | |
| 系统订单号 | trade_no | 选择 | String | 20160806151343312 | |
| 商户订单号 | out_trade_no | 选择 | String | 20160806151343349 |
提示: 系统订单号与商户订单号二选一传入即可;若都传入,以系统订单号为准。
返回结果
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1 为成功,其它值为失败 |
| 返回信息 | msg | String | 查询订单号成功! | |
| 平台订单号 | trade_no | String | 2016080622555342651 | 支付系统侧订单号 |
| 商户订单号 | out_trade_no | String | 20160806151343349 | 商户系统内部的订单号 |
| 第三方订单号 | api_trade_no | String | 20160806151343349 | 支付宝、微信等接口方订单号 |
| 支付方式 | type | String | alipay | 支付方式列表 |
| 商户 ID | pid | Int | 1001 | 发起支付的商户 ID |
| 创建订单时间 | addtime | String | 2016-08-06 22:55:52 | |
| 完成交易时间 | endtime | String | 2016-08-06 22:55:52 | |
| 商品名称 | name | String | VIP会员 | |
| 商品金额 | money | String | 1.00 | |
| 支付状态 | status | Int | 0 | 1 为支付成功,0 为未支付 |
| 业务扩展参数 | param | String | 默认留空 | |
| 支付者账号 | buyer | String | 默认留空 |
API:批量查询订单
URL 地址:
https://api.okopay.cn/api.php?act=orders&pid={商户ID}&key={商户密钥}
请求参数说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 操作类型 | act | 是 | String | orders | 此 API 固定值 |
| 商户 ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | |
| 查询订单数量 | limit | 否 | Int | 20 | 最大 50 |
| 页码 | page | 否 | Int | 1 | 当前查询的页码 |
返回结果
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 1 | 1 为成功 |
| 返回信息 | msg | String | 查询结算记录成功! | |
| 订单列表 | data | Array | 订单列表 |
API:提交订单退款
注意: 需要先在商户后台开启「订单退款 API」开关,才能调用该接口发起订单退款。
URL 地址: https://api.okopay.cn/api.php?act=refund
请求方式: POST
请求参数说明
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 商户 ID | pid | 是 | Int | 1001 | |
| 商户密钥 | key | 是 | String | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | |
| 平台订单号 | trade_no | 特殊可选 | String | 20160806151343349021 | 与 out_trade_no 不能同时为空;都传时以 trade_no 为准 |
| 商户订单号 | out_trade_no | 特殊可选 | String | 20160806151343349 | 下单时传入的商户订单号,须在商家系统中唯一 |
| 退款金额 | money | 是 | String | 1.50 | 少数通道需要与原订单金额一致 |
返回结果
| 字段名 | 变量名 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|
| 返回状态码 | code | Int | 0 | 0 为成功,其它为失败 |
| 返回信息 | msg | String | 退款成功 |
SDK下载
版本:V1.3
