上传你自己的微信、支付宝、QQ 收款账号,我们负责 7×24 监听订单、匹配金额、把支付结果异步回调到你的系统。钱直接进你自己的账户,平台不代收、不清算、不碰资金。
微信、支付宝、QQ 钱包。全部使用商户自己的收款账号,不共用通道、不经过平台账户。
支持个人收款码 / 经营码 / 商家码,上传后系统自动开始监听,无需申请官方商户号。
从账号监听、金额匹配、异步回调到掉线告警,整条通知链路全自动。
上传你自己的微信 / 支付宝 / QQ 收款账号,系统 7×24 在线监听该账号的到账消息。
监听到到账后立即回调你的系统,失败按阶梯重试,直到你返回 success。
下单金额与到账金额自动比对,同金额多笔订单也能智能区分,避免错单漏单。
同一渠道绑定多个收款账号时自动分流轮询,降低单账号触发风控的概率。
账号掉线、监听中断、回调异常第一时间通知你,不等顾客来投诉才发现。
每笔订单的来源、匹配结果、回调状态全程留痕,按日生成对账记录。
实时成交额、回调成功率、渠道占比、时段分布,一眼看清经营情况。
常见建站系统即插即用,不写代码也能接上自己的收款账号开始监听。
工单 15 分钟响应,专属技术群一对一支持,节假日不打烊。
注册商户账号,按需选择月 / 季 / 年套餐,即时开通。
绑定你自己的微信、支付宝或 QQ 收款账号,系统开始监听。
调用统一下单接口,填写你的回调地址,测试一笔确认签名无误。
顾客扫码后钱进你的账户,系统监听到账并回调通知你的业务系统。
Xarr 码支付是一套收款监听软件,不是支付通道,也不是代收平台。顾客付的钱由支付渠道直接结算到你自己的收款账户,平台只负责把"已到账"这件事告诉你的系统。
不提供任何收款通道,顾客付款的收款方始终是你自己的账号,平台不参与收款环节。
不做资金归集、不做二次结算、不做分账,不存在资金池,也没有提现流程。
平台账户与你的收款账户之间没有任何资金往来,我们只传输"到账通知"这一类消息。
只收软件服务费,你收多少钱都跟我们无关,不存在按笔抽成。套餐到期可随时续费或升级。
| 对比项 | 月套餐 | 季套餐 | 年套餐 |
|---|---|---|---|
| 套餐时长 | 1 个月 | 3 个月 | 12 个月 |
| 套餐价格 | ¥6.8 | ¥18 | ¥68 |
| 折合每月 | ¥6.8 | ¥6 | ¥5.67 |
| 以下权限三档套餐完全一致,均按年套餐标准提供 | |||
| 收款账号数量 | 不限 | ||
| 日订单量 | 不限 | ||
| 支付渠道 | 微信 / 支付宝 / QQ 钱包(全部支持) | ||
| 异步回调 + 回调日志 | |||
| 多账号自动轮询 | |||
| 掉线告警推送 | |||
| 订单对账导出 | |||
| 开放插件 | |||
| 数据看板增强版 | |||
| 独立部署 | |||
| 技术支持 | 1v1 专属 | ||
以上套餐均为软件服务费,不含任何资金结算。三档套餐权限完全一致,仅时长与价格不同;价格与权益为示例占位,请以实际购买页为准。
统一下单接口 + 异步回调验签,文档清晰,示例可直接复制运行。
// Xarr 码支付 · 统一下单(PHP) <?php $params = [ 'pid' => '10001', // 商户ID 'type' => 'wxpay', // wxpay | alipay | qqpay 'out_trade_no' => 'ORDER_' . time(), 'notify_url' => 'https://your.site/notify.php', 'return_url' => 'https://your.site/return.php', 'name' => '会员充值', 'money' => '1.00', ]; ksort($params); $params['sign'] = md5(urldecode(http_build_query($params)) . 'YOUR_KEY'); $params['sign_type'] = 'MD5'; // 展示你自己账号的收款码,资金直达你的账户 header('Location: https://api.xarr.pay/submit.php?' . http_build_query($params));
// Xarr 码支付 · 统一下单(Java) import java.security.MessageDigest; import java.util.*; public class XarrPay { public static void main(String[] args) throws Exception { TreeMap<String, String> p = new TreeMap<>(); p.put("pid", "10001"); p.put("type", "alipay"); p.put("out_trade_no", "ORDER_" + System.currentTimeMillis()); p.put("notify_url", "https://your.site/notify"); p.put("name", "会员充值"); p.put("money", "1.00"); StringBuilder sb = new StringBuilder(); p.forEach((k, v) -> sb.append(k).append("=").append(v).append("&")); sb.setLength(sb.length() - 1); p.put("sign", md5(sb + "YOUR_KEY")); p.put("sign_type", "MD5"); System.out.println("https://api.xarr.pay/submit.php?" + toQuery(p)); } static String md5(String s) throws Exception { byte[] d = MessageDigest.getInstance("MD5").digest(s.getBytes("UTF-8")); StringBuilder r = new StringBuilder(); for (byte b : d) r.append(String.format("%02x", b)); return r.toString(); } static String toQuery(Map<String, String> m) { /* URLEncoder 拼接 */ return ""; } }
# Xarr 码支付 · 统一下单(Python 3) import hashlib, time, urllib.parse, requests params = { "pid": "10001", "type": "wxpay", # wxpay | alipay | qqpay "out_trade_no": "ORDER_" + str(int(time.time())), "notify_url": "https://your.site/notify", "return_url": "https://your.site/return", "name": "会员充值", "money": "1.00", } sign_src = "&".join(k + "=" + str(v) for k, v in sorted(params.items())) params["sign"] = hashlib.md5((sign_src + "YOUR_KEY").encode()).hexdigest() params["sign_type"] = "MD5" url = "https://api.xarr.pay/submit.php?" + urllib.parse.urlencode(params) print(requests.get(url).url) # 返回收银台地址
// Xarr 码支付 · 统一下单(Go) package main import ( "crypto/md5" "encoding/hex" "fmt" "net/url" "sort" "strings" "time" ) func main() { p := map[string]string{ "pid": "10001", "type": "wxpay", "out_trade_no": fmt.Sprintf("ORDER_%d", time.Now().Unix()), "notify_url": "https://your.site/notify", "name": "会员充值", "money": "1.00", } keys := make([]string, 0, len(p)) for k := range p { keys = append(keys, k) } sort.Strings(keys) var sb strings.Builder for i, k := range keys { if i > 0 { sb.WriteString("&") } sb.WriteString(k + "=" + p[k]) } sum := md5.Sum([]byte(sb.String() + "YOUR_KEY")) p["sign"] = hex.EncodeToString(sum[:]) p["sign_type"] = "MD5" q := url.Values{} for k, v := range p { q.Set(k, v) } fmt.Println("https://api.xarr.pay/submit.php?" + q.Encode()) }
// Xarr 码支付 · 统一下单(Node.js 18+) import crypto from 'node:crypto'; const params = { pid: '10001', type: 'alipay', out_trade_no: 'ORDER_' + Date.now(), notify_url: 'https://your.site/notify', return_url: 'https://your.site/return', name: '会员充值', money: '1.00', }; const src = Object.keys(params).sort() .map(k => k + '=' + params[k]).join('&'); params.sign = crypto.createHash('md5').update(src + 'YOUR_KEY').digest('hex'); params.sign_type = 'MD5'; const url = 'https://api.xarr.pay/submit.php?' + new URLSearchParams(params); console.log(url); // 展示收款码页面地址
// 异步回调验签(PHP)—— 务必校验签名并返回 success <?php $data = $_POST ?: $_GET; $sign = $data['sign']; unset($data['sign'], $data['sign_type']); ksort($data); if (md5(urldecode(http_build_query($data)) . 'YOUR_KEY') !== $sign) { exit('sign error'); } if ($data['trade_status'] === 'TRADE_SUCCESS') { // 1. 校验订单金额与本地一致 2. 幂等处理,防重复发货 // handleOrder($data['out_trade_no'], $data['money']); } echo 'success'; // 返回其他内容将触发重试
“最重要的是钱进的是我自己的支付宝,平台碰不到,心里踏实。挂上之后到账就自动回调,不用再手动发货了。”
“接口签名逻辑清楚,回调失败还有重试和日志,联调不到半小时就通了。年套餐比按月买划算不少。”
“之前最担心账号掉线没人管,结果掉线马上推送告警,自动重连也基本能恢复。客服响应比预期快。”
码支付和易支付、代收平台有什么区别?
资金会经过平台吗?我该怎么确认?
需要把账号密码给你们吗?
支持哪些收款渠道?
回调没有收到怎么办?
success。账号掉线了怎么办?
套餐怎么选?到期了怎么办?
有手续费或者按笔抽成吗?
填写邮箱即可注册,5 分钟拿到商户 ID 与密钥,先在沙箱跑通回调,再上传真实收款账号。资金全程直达你的账户。