XP支付平台

商户 ID 与密钥 需登录后在商户中心 · API 对接查看;V2 还需生成商户 RSA 密钥对。

平台 RSA 公钥(验签 V2 响应与 V2 异步通知):

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoscte24jxeynbfwLHlLwP/OhFvcnYFw4YvC/j5WJSWUEgYIJANuXKNF+utykCylCEK5pl9o27FCtozPDux9jDvEBdoJveJc6/k5/MIAh0UBjzivjtoZ2PhWwrFLnentbjV7lhlVao9BrqLp5t5XaIyhDHlywoRwOtKlKr2HN77hWirZC2tCcTlpdfrHX/yHcTz/cwMMF7j1LCA3loPjsH0q0DkFcVX3GuXkTkGvkEMhDw2f5hFDthjPHzbQ2TQAxketwaV+zwM4nOHOxOqqsG6HyOwGc13Qv0Py5ycs2fzn62M5CuPASLJx/e1/ZITPvKpQY4a8+5AdzxQ5FzaaZJQIDAQAB

V1 页面跳转支付(MD5)

请求地址: https://pay.xiaoil.com/submit.php

请求方式: POST / GET

参数说明必填
pid商户ID
type支付方式 alipay / wxpay / qqpay
out_trade_no商户订单号
notify_url异步通知地址
return_url同步跳转地址
name商品名称
money金额(元)
param自定义参数,回调原样返回
signMD5 签名
sign_type固定值 MD5

V1 API 支付(MD5)· mapi.php

请求地址: https://pay.xiaoil.com/mapi.php

请求方式: POST

返回 JSON:code=1,含 payurl / qrcode / urlscheme / html 之一(V1 格式,无平台 RSA 签名)。

参数说明必填
pid商户ID
type支付方式 alipay / wxpay / qqpay是(scan 除外)
out_trade_no商户订单号
notify_url异步通知地址
return_url同步跳转(可选)
name商品名称
money金额(元)
clientip用户 IP
devicepc / mobile / qq / wechat / alipay / app
methodweb / jump / jsapi / scan
signMD5 签名
sign_type固定值 MD5

V2 接口(RSA)

V2 统一下单、查单、签名规则等请查看独立开发文档:

打开 V2 开发文档

地址:/doc/index.php?page=index(统一下单 /api/pay/create,订单查询 /api/pay/query

签名算法(V1 MD5)

1. 参数按 ASCII 排序 2. 拼接 key=value& 格式(空值和 sign、sign_type 不参与) 3. 去掉末尾 & 后,直接拼接商户密钥 key 4. 对结果做 MD5,得到 sign

异步通知

支付成功后,系统会向 notify_url 发起 GET 请求,携带订单号、金额、签名等参数。

商户服务器校验签名后处理业务,并返回纯文本 success,否则系统将按策略重试通知。

查询接口

V1(MD5,GET): https://pay.xiaoil.com/api.php?act=order&pid=...&key=...&out_trade_no=...

V2 查单见 V2 开发文档 · 订单查询

PHP 示例

$pid = "1000"; $key = "your_merchant_key"; $data = [ "pid" => $pid, "type" => "alipay", "out_trade_no" => date("YmdHis") . rand(1000, 9999), "notify_url" => "https://your.site/notify.php", "return_url" => "https://your.site/return.php", "name" => "测试商品", "money" => "0.01", ]; ksort($data); $signStr = ""; foreach ($data as $k => $v) { if ($v !== "" && $k !== "sign" && $k !== "sign_type") { $signStr .= $k . "=" . $v . "&"; } } $data["sign"] = md5(rtrim($signStr, "&") . $key); $data["sign_type"] = "MD5"; // POST 到 https://pay.xiaoil.com/submit.php