支付接口介绍
使用此接口可以实现支付宝、QQ钱包、微信支付与财付通的即时到账,免签约,无需企业认证。接口API地址是:
本文阅读对象:商户系统(在线购物平台、人工收银系统、自动化智能收银系统或其他)集成站点名称涉及的技术架构师,研发工程师,测试工程师,系统运维工程师。
接口申请方式
共有两种接口模式:
(一)普通支付商户
可以获得一个支付商户。请进行注册申请,申请之后会将商户ID和商户KEY给你!
协议规则
传输方式:HTTP
数据格式:JSON
签名算法:MD5
字符编码:UTF-8
[API]查询商户信息与结算规则
URL地址:api.php?act=query&pid={商户ID}&sign={签名字符串}
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
操作类型 | act | 是 | String | query | 此API固定值 |
商户ID | pid | 是 | Int | 1001 | |
签名字符串 | sign | 是 | String | 67d12af9ddbe38d9c7b0931ad102ca3c | 签名算法与支付宝签名算法相同 |
返回结果:
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
商户ID | pid | Int | 1001 | 所创建的商户ID |
商户密钥 | key | String(32) | 89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i | 所创建的商户密钥 |
商户类型 | type | Int | 1 | 此值暂无用 |
商户状态 | active | Int | 1 | 1为正常,0为封禁 |
商户余额 | money | String | 0.00 | 商户所拥有的余额 |
结算账号 | account | String | 1070077170@qq.com | 结算的支付宝账号 |
结算姓名 | username | String | 张三 | 结算的支付宝姓名 |
满多少自动结算 | settle_money | String | 30 | 此值为系统预定义 |
手动结算手续费 | settle_fee | String | 1 | 此值为系统预定义 |
每笔订单分成比例 | money_rate | String | 98 | 此值为系统预定义 |
[API]查询结算记录
URL地址:api.php?act=settle&pid={商户ID}&sign={签名字符串}
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
操作类型 | act | 是 | String | settle | 此API固定值 |
商户ID | pid | 是 | Int | 1001 | |
签名字符串 | sign | 是 | String | 67d12af9ddbe38d9c7b0931ad102ca3c | 签名算法与支付宝签名算法相同 |
返回结果:
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
返回信息 | msg | String | 查询结算记录成功! | |
结算记录 | data | Array | 结算记录列表 |
[API]查询单个订单
URL地址:api.php?act=order&pid={商户ID}&out_trade_no={商户订单号}&sign={签名字符串}
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
操作类型 | act | 是 | String | order | 此API固定值 |
商户ID | pid | 是 | Int | 1001 | |
商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
签名字符串 | sign | 是 | String | 67d12af9ddbe38d9c7b0931ad102ca3c | 签名算法与支付宝签名算法相同 |
返回结果:
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
返回信息 | msg | String | 查询订单号成功! | |
易支付订单号 | trade_no | String | 2016080622555342651 | 站点名称订单号 |
商户订单号 | out_trade_no | String | 20160806151343349 | 商户系统内部的订单号 |
支付方式 | type | String | alipay | alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付 |
商户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为未支付 |
[API]批量查询订单
URL地址:api.php?act=orders&pid={商户ID}&sign={签名字符串}
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
操作类型 | act | 是 | String | orders | 此API固定值 |
商户ID | pid | 是 | Int | 1001 | |
查询订单数量 | limit | 否 | Int | 20 | 返回的订单数量,最大50 |
签名字符串 | sign | 是 | String | 67d12af9ddbe38d9c7b0931ad102ca3c | 签名算法与支付宝签名算法相同 |
返回结果:
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
返回信息 | msg | String | 查询结算记录成功! | |
订单列表 | data | Array | 订单列表 |
[API]支付订单退款
URL地址:api.php?act=refund&pid={商户ID}&out_trade_no={商户订单号}&sign={签名字符串}
只支持微信官方、QQ钱包官方、当面付退款
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
操作类型 | act | 是 | String | refund | 此API固定值 |
商户ID | pid | 是 | Int | 1001 | |
商户订单号 | out_trade_no | 是 | Int | 1000 | |
退款原因 | desc | 否 | String | ||
退款金额 | money | 否 | Double | 20.00 | 不填默认退全款 |
签名字符串 | sign | 是 | String | 67d12af9ddbe38d9c7b0931ad102ca3c | 签名算法与支付宝签名算法相同 |
返回结果:
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
返回信息 | msg | String | 退款成功! |
[API]会员余额结算
URL地址:api.php?act=withdraw&pid={商户ID}&money={结算金额}&withdraw_type={收款方式}&withdraw_name={收款名字}&withdraw_account={收款账号}&sign={签名字符串}
只支持微信官方、QQ钱包官方、当面付退款
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
操作类型 | act | 是 | String | withdraw | 此API固定值 |
商户ID | pid | 是 | Int | 1001 | |
结算金额 | money | 是 | Double | 100.00 | |
收款方式 | withdraw_type | 是 | String | 支付宝 | 收款方式只支持4种,支付宝 、微信 、QQ钱包 、银行卡 |
收款名字 | withdraw_name | 是 | String | 张三 | 收款方名字 |
收款账号 | withdraw_account | 是 | String | 15188888888 | 收款方账号 |
开户银行 | withdraw_yh | 否 | String | 农行 | 收款方式为银行卡时必填 |
开户行 | withdraw_h | 否 | String | 深圳福海支行 | 收款方式为银行卡时必填 |
所属省份 | withdraw_sf | 否 | String | 广东 | 收款方式为银行卡时必填 |
所属市 | withdraw_s | 否 | String | 深圳市 | 收款方式为银行卡时必填 |
签名字符串 | sign | 是 | String | 67d12af9ddbe38d9c7b0931ad102ca3c | 签名算法与支付宝签名算法相同 |
返回结果:
字段名 | 变量名 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
返回状态码 | code | Int | 1 | 1为成功,其它值为失败 |
返回信息 | msg | String | 结算成功 |
发起支付请求
URL地址:submit.php?pid={商户ID}&type={支付方式}&out_trade_no={商户订单号}¬ify_url={服务器异步通知地址}&return_url={页面跳转通知地址}&name={商品名称}&money={金额}&sitename={网站名称}&sign={签名字符串}&sign_type=MD5
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户ID | pid | 是 | Int | 1001 | |
支付方式 | type | 是 | String | alipay | alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付 |
商户订单号 | out_trade_no | 是 | String | 20160806151343349 | |
异步通知地址 | notify_url | 是 | String | http://域名/notify_url.php | 服务器异步通知地址 |
跳转通知地址 | return_url | 是 | String | http://域名/return_url.php | 页面跳转通知地址 |
商品名称 | name | 是 | String | VIP会员 | |
商品金额 | money | 是 | String | 1.00 | |
网站名称 | sitename | 否 | String | 某某某平台 | |
签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 签名算法与支付宝签名算法相同 |
签名类型 | sign_type | 是 | String | MD5 | 默认为MD5 |
支付结果通知
通知类型:服务器异步通知(notify_url)、页面跳转通知(return_url)
请求方式:GET
特别说明:回调成功之后请输出 SUCCESS
字符串,如果没有收到商户响应的SUCCESS
字符串,系统将通过策略重新通知5次,通知频率为15s/60s/3m/30m/1h
请求参数说明:
字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
商户ID | pid | 是 | Int | 1001 | |
易支付订单号 | trade_no | 是 | String | 20160806151343349021 | 站点名称订单号 |
商户订单号 | out_trade_no | 是 | String | 20160806151343349 | 商户系统内部的订单号 |
支付方式 | type | 是 | String | alipay | alipay:支付宝,tenpay:财付通, qqpay:QQ钱包,wxpay:微信支付 |
商品名称 | name | 是 | String | VIP会员 | |
商品金额 | money | 是 | String | 1.00 | |
支付状态 | trade_status | 是 | String | TRADE_SUCCESS | |
签名字符串 | sign | 是 | String | 202cb962ac59075b964b07152d234b70 | 签名算法与支付宝签名算法相同 |
签名类型 | sign_type | 是 | String | MD5 | 默认为MD5 |
签名算法
请对参数按照键名进行降序排序(a-z)sign sign_type 和空值不进行签名!。
排序后请操作参数生成或拼接一个url请求字符串 例如 a=b&c=d&e=f
(Url值不能携带参数!不要进行urlencode)
再将拼接好的请求字符串与平台生成的Key进行MD5加密得出sign签名参数 MD5 ( a=b&c=d&e=f + KEY )
(注意:+ 为各语言的拼接符!不是字符!)