开发文档

V2 新接口与 V1 旧版接口统一接入说明,包含签名、支付、通知、订单、退款与 SDK。

文档入口已统一:V2 与 V1 文档集中在本页;首页、用户中心及其他页面的“开发文档”统一指向 /doc.html。

接口说明及规范

项目说明
提交数据格式application/x-www-form-urlencoded
返回数据格式JSON
字符编码UTF-8
签名算法SHA256WithRSA

协议规则

V2 接口采用 RSA 签名方式,接口请求和返回数据均按 JSON 规范处理;时间戳用于校验请求有效时间。

V2升级说明

  1. V2接口全面使用 RSA 签名算法;V1接口使用 MD5 签名算法。
  2. V2接口改用全新的接口地址,支持退款、代付等功能;V1接口使用 submit.php 和 mapi.php 提交订单。
  3. V2接口新增 timestamp 入参和返回值,用于校验时间戳。

获取RSA密钥

在 商户后台 → 个人资料 → API信息 页面,点击【生成商户RSA密钥】,生成后注意保存【商户私钥】。

对接接口时只需要用到【平台公钥】与【商户私钥】。

进入用户中心生成 RSA 密钥 →

V1 旧版接口文档

以下为原有 V1 接口内容,继续保留供已有商户对接使用。


接口总览

接口名称URL地址请求方式用途
页面跳转支付https://xianxiaoxi.top/submit.phpPOST / GET用户前台直接发起支付
API接口支付https://xianxiaoxi.top/mapi.phpPOST服务器后端发起支付
查询商户信息https://xianxiaoxi.top/api.php?act=queryGET查询商户基本信息
查询结算记录https://xianxiaoxi.top/api.php?act=settleGET查询结算记录列表
查询单个订单https://xianxiaoxi.top/api.php?act=orderGET按订单号查询单笔订单
批量查询订单https://xianxiaoxi.top/api.php?act=ordersGET分页查询订单列表
提交订单退款https://xianxiaoxi.top/api.php?act=refundPOST发起订单退款

V1协议规则

项目说明
请求数据格式application/x-www-form-urlencoded
返回数据格式JSON
签名算法MD5
字符编码UTF-8

页面跳转支付

此接口可用于用户前台直接发起支付,使用form表单跳转或拼接成url跳转。

项目说明
URL地址https://xianxiaoxi.top/submit.php
请求方式POST 或 GET(推荐POST,不容易被劫持或屏蔽)

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001
支付方式type否Stringalipay支付方式列表
商户订单号out_trade_no是String20160806151343349
异步通知地址notify_url是Stringhttp://www.pay.com/notify_url.php服务器异步通知地址
跳转通知地址return_url是Stringhttp://www.pay.com/return_url.php页面跳转通知地址
商品名称name是StringVIP会员如超过127个字节会自动截取
商品金额money是String1.00单位:元,最大2位小数
业务扩展参数param否String没有请留空支付后原样返回
签名字符串sign是String202cb962ac59075b964b07152d234b70签名算法点此查看
签名类型sign_type是StringMD5默认为MD5

支付方式(type)不传会跳转到收银台支付

API接口支付

此接口可用于服务器后端发起支付请求,会返回支付二维码链接或支付跳转url。

项目说明
URL地址https://xianxiaoxi.top/mapi.php
请求方式POST

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001
支付方式type是Stringalipay支付方式列表
商户订单号out_trade_no是String20160806151343349
异步通知地址notify_url是Stringhttp://www.pay.com/notify_url.php服务器异步通知地址
跳转通知地址return_url否Stringhttp://www.pay.com/return_url.php
商品名称name是StringVIP会员如超过127个字节会自动截取
商品金额money是String1.00单位:元,最大2位小数
用户IP地址clientip是String192.168.1.100用户发起支付的IP地址
设备类型device否Stringpc默认为pc;设备类型列表
业务扩展参数param否String没有请留空支付后原样返回
签名字符串sign是String202cb962ac59075b964b07152d234b70签名算法点此查看
签名类型sign_type是StringMD5默认为MD5

返回结果(json):

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString失败时返回原因
订单号trade_noString20160806151343349支付订单号
支付跳转urlpayurlStringhttps://xianxiaoxi.top/pay/wxpay/202010903/直接跳转到该url支付
二维码链接qrcodeStringweixin://wxpay/bizpayurl?pr=04IPMKM根据该url生成二维码
小程序跳转urlurlschemeStringweixin://dl/business/?ticket=xxx可发起微信小程序支付

注:payurl、qrcode、urlscheme 三个参数只会返回其中一个

支付结果通知

项目说明
通知类型服务器异步通知(notify_url)、页面跳转通知(return_url)
请求方式GET

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001
平台订单号trade_no是String20160806151343349021西瓜聚合支付平台订单号
商户订单号out_trade_no是String20160806151343349商户系统内部的订单号
支付方式type是Stringalipay支付方式列表
商品名称name是StringVIP会员
商品金额money是String1.00
支付状态trade_status是StringTRADE_SUCCESS只有TRADE_SUCCESS是成功
业务扩展参数param否String
签名字符串sign是String202cb962ac59075b964b07152d234b70签名算法点此查看
签名类型sign_type是StringMD5默认为MD5

收到异步通知后,需返回success以表示服务器接收到了订单通知

MD5签名算法

步骤操作说明
第1步将发送或接收到的所有参数按照参数名ASCII码从小到大排序(a-z),sign、sign_type、和空值不参与签名!
第2步将排序后的参数拼接成URL键值对的格式,例如 a=b&c=d&e=f,参数值不要进行url编码。
第3步再将拼接好的字符串与商户密钥KEY进行MD5加密得出sign签名参数:sign = md5 ( a=b&c=d&e=f + KEY )(+ 为各语言的拼接符,不是字符!),md5结果为小写。
第4步具体签名与发起支付的示例代码可下载SDK查看。

支付方式列表

调用值描述
alipay支付宝

设备类型列表

调用值描述
pc电脑浏览器
mobile手机浏览器
qq手机QQ内浏览器
wechat微信内浏览器
alipay支付宝客户端
jump仅返回支付跳转url

[API]查询商户信息

项目说明
URL地址https://xianxiaoxi.top/api.php?act=query&pid={商户ID}&key={商户密钥}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型act是Stringquery此API固定值
商户IDpid是Int1001
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
商户IDpidInt1001商户ID
商户密钥keyString(32)89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i商户密钥
商户状态activeInt11为正常,0为封禁
商户余额moneyString0.00商户所拥有的余额
结算方式typeInt11:支付宝,2:微信,3:QQ,4:银行卡
结算账号accountStringadmin@pay.com结算的支付宝账号
结算姓名usernameString张三结算的支付宝姓名
订单总数ordersInt30订单总数统计
今日订单order_todayInt15今日订单数量
昨日订单order_lastdayInt15昨日订单数量

[API]查询结算记录

项目说明
URL地址https://xianxiaoxi.top/api.php?act=settle&pid={商户ID}&key={商户密钥}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型act是Stringsettle此API固定值
商户IDpid是Int1001
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString查询结算记录成功!
结算记录dataArray结算记录列表

[API]查询单个订单

项目说明
URL地址https://xianxiaoxi.top/api.php?act=order&pid={商户ID}&key={商户密钥}&out_trade_no={商户订单号}
提示系统订单号 和 商户订单号 二选一传入即可,如果都传入以系统订单号为准!

请求参数说明:

字段名变量名必填类型示例值描述
操作类型act是Stringorder此API固定值
商户IDpid是Int1001
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
系统订单号trade_no选择String20160806151343312
商户订单号out_trade_no选择String20160806151343349

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString查询订单号成功!
平台订单号trade_noString2016080622555342651西瓜聚合支付平台订单号
商户订单号out_trade_noString20160806151343349商户系统内部的订单号
第三方订单号api_trade_noString20160806151343349支付宝微信等接口方订单号
支付方式typeStringalipay支付方式列表
商户IDpidInt1001发起支付的商户ID
创建订单时间addtimeString2016-08-06 22:55:52
完成交易时间endtimeString2016-08-06 22:55:52
商品名称nameStringVIP会员
商品金额moneyString1.00
支付状态statusInt01为支付成功,0为未支付
业务扩展参数paramString默认留空
支付者账号buyerString默认留空

[API]批量查询订单

项目说明
URL地址https://xianxiaoxi.top/api.php?act=orders&pid={商户ID}&key={商户密钥}

请求参数说明:

字段名变量名必填类型示例值描述
操作类型act是Stringorders此API固定值
商户IDpid是Int1001
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
查询订单数量limit否Int20返回的订单数量,最大50
页码page否Int1当前查询的页码

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt11为成功,其它值为失败
返回信息msgString查询结算记录成功!
订单列表dataArray订单列表

[API]提交订单退款

项目说明
前置条件需要先在商户后台开启订单退款API接口开关,才能调用该接口发起订单退款
URL地址https://xianxiaoxi.top/api.php?act=refund
请求方式POST
注trade_no、out_trade_no 不能同时为空,如果都传了以trade_no为准

请求参数说明:

字段名变量名必填类型示例值描述
商户IDpid是Int1001
商户密钥key是String89unJUB8HZ54Hj7x4nUj56HN4nUzUJ8i
平台订单号trade_no特殊可选String20160806151343349021平台订单号
商户订单号out_trade_no特殊可选String20160806151343349订单支付时传入的商户订单号
退款金额money是String1.50少数通道需要与原订单金额一致

返回结果:

字段名变量名类型示例值描述
返回状态码codeInt00为成功,其它值为失败
返回信息msgString退款成功

SDK下载

如果你需要快速接入,可以直接下载当前版本的 SDK。

西瓜聚合支付 SDK 当前版本 V1.3 · ZIP 压缩包
下载 SDK