乐享充 · 开放平台对接文档

第三方系统 / 九一卡券(阿奇索)可凭本文档将本平台货源接入您的系统实现自动下单(串货)。您的专属凭证(用户ID app_key、密钥 secret、接口地址)请登录代理后台 →「资料信息 / API配置」查看,本页不提供密钥。

下单域名:api.lxchong.com 协议:HTTPS 编码:UTF-8 鉴权:HMAC-SHA256 / MD5

接入流程

1开通权限
联系直属管理员开通API权限,获取用户ID与密钥
2计算签名
按规则用密钥对请求参数 HMAC-SHA256 签名
3调用下单
POST order/create 提交充值订单
4查询/回调
主动查单或接收异步通知获取结果

一、接口地址

所有接口统一前缀:https://api.lxchong.com/api/open
接口方法完整地址
下单POSThttps://api.lxchong.com/api/open/order/create
查单GET / POSThttps://api.lxchong.com/api/open/order/query
余额GEThttps://api.lxchong.com/api/open/balance
产品同步GEThttps://api.lxchong.com/api/open/products

二、鉴权方式

方式一(推荐):通过 HTTP Header 传递鉴权信息:

Header必填说明
X-App-Key您的用户ID(app_key,agk_ 开头),见代理后台「资料信息 → API配置」
X-Timestamp当前 Unix 时间戳(秒),与服务器时差不超过 300 秒(防重放)
X-Sign请求签名(HMAC-SHA256,算法见第三节)

方式二(兼容):不方便设置 Header 时,可将鉴权参数放入请求 Body / Query:

参数必填说明
app_key / userid / appkey用户ID(三种字段名均兼容)
timestamp / timeUnix 时间戳(秒)
sign / signature请求签名

三、签名规则(HMAC-SHA256 / MD5 二选一)

方式A:HMAC-SHA256(推荐,通用第三方平台)

  1. 取请求 Body 全部业务参数,加上 app_keytimestamp
  2. 按参数名 ASCII 升序排序(ksort)
  3. 拼接为 key1=value1&key2=value2&...,数组值用 JSON 编码
  4. 末尾追加 &secret=您的密钥
  5. 对结果做 HMAC-SHA256(密钥为您的 secret),得到的值即 X-Sign

方式B:MD5(九一卡券/阿奇索模式)

  1. 参数按 key ASCII 升序排序(ksort)
  2. 拼接为 key1value1key2value2...无 = 和 & 分隔符
  3. 前后各加您的密钥:md5(密钥 + 拼接串 + 密钥),结果转大写
  4. 平台自动识别两种签名,任选其一即可

PHP 完整示例(下单)

<?php
// ============ 乐享充开放平台 下单示例(PHP)============
// 1. 业务参数
$params = [
    'product_id'   => '1',            // 产品ID(产品信息列表中的数字ID)
    'account'      => '13800138000',  // 充值账号
    'out_trade_no' => 'YOUR_ORDER_123', // 外部订单号(选填,用于幂等)
    // 电费订单额外传:'area' => '广东',
];
$appKey    = '{your_app_key}';      // 您的用户ID(agk_开头)
$appSecret = '{your_secret_key}';   // 您的密钥
$timestamp = (string)time();

// 2. 加入公共参数后按 ASCII 升序排序
$params['app_key']   = $appKey;
$params['timestamp'] = $timestamp;
ksort($params);

// 3. 拼接 key=value(数组值用 JSON 编码),末尾加 &secret=密钥
$parts = [];
foreach ($params as $k => $v) {
    if (is_array($v)) $v = json_encode($v, JSON_UNESCAPED_UNICODE);
    $parts[] = $k . '=' . $v;
}
$raw  = implode('&', $parts) . '&secret=' . $appSecret;

// 4. HMAC-SHA256 签名
$sign = hash_hmac('sha256', $raw, $appSecret);

// 5. 发起请求
$ch = curl_init('https://api.lxchong.com/api/open/order/create');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query($params),
    CURLOPT_HTTPHEADER => [
        'X-App-Key: ' . $appKey,
        'X-Timestamp: ' . $timestamp,
        'X-Sign: ' . $sign,
    ],
    CURLOPT_RETURNTRANSFER => true,
]);
$resp = curl_exec($ch);
echo $resp;

Python 完整示例(下单)

# ============ 乐享充开放平台 下单示例(Python)============
import time, hmac, hashlib, requests

app_key    = "{your_app_key}"
app_secret = "{your_secret_key}"
timestamp  = str(int(time.time()))

params = {
    "product_id": "1",
    "account": "13800138000",
    "out_trade_no": "YOUR_ORDER_123",
    "app_key": app_key,
    "timestamp": timestamp,
}
# 按 key 升序拼接 k=v&k=v,末尾加 &secret=密钥
raw = "&".join(f"{k}={params[k]}" for k in sorted(params)) + "&secret=" + app_secret
sign = hmac.new(app_secret.encode(), raw.encode(), hashlib.sha256).hexdigest()

resp = requests.post("https://api.lxchong.com/api/open/order/create", data=params, headers={
    "X-App-Key": app_key,
    "X-Timestamp": timestamp,
    "X-Sign": sign,
})
print(resp.json())

四、接口详情

1. 创建订单(下单)

POST https://api.lxchong.com/api/open/order/create

请求参数:

参数必填类型说明
product_idstring产品ID(见「产品信息」列表中的纯数字ID,如移动100元=对应数字ID)
accountstring充值账号:话费填手机号,电费填电费户号
out_trade_nostring您的外部订单号,用于幂等:同一 out_trade_no 重复提交不会重复下单
area电费必填string省份名称(电费订单必填,如「广东」「江苏」)
citystring地级市(电费订单可选,部分地区需要)
notify_urlstring异步回调地址;不传则使用您在 API配置 中预设的回调地址

返回示例:

{
  "code": 0,
  "message": "ok",
  "data": {
    "order_no": "20260703xxxxxx",
    "out_trade_no": "YOUR_ORDER_123",
    "product_id": "1",
    "account": "13800138000",
    "face_value": 100.00,
    "amount": 95.00,
    "status": 1,
    "status_text": "pending",
    "created_at": "2026-07-03 12:00:00",
    "complete_at": null
  }
}

返回字段说明:

字段类型说明
order_nostring平台订单号
out_trade_nostring您的外部订单号(下单时传入的)
product_idstring产品ID
accountstring充值账号
face_valuenumber产品面值(单位:元,两位小数)
amountnumber实际扣款金额(单位:元)
statusint订单状态码(见状态码表)
status_textstring状态英文标识:pending/processing/success/failed/refunded
created_atstring下单时间
complete_atstring完成时间(未完成为 null)
话费/电费区别:话费订单 account 填手机号即可;电费订单必须额外传 area(省份,如「广东」),account 填电费户号。
运营商匹配(话费):系统会自动识别下单手机号所属运营商(移动 / 联通 / 电信 / 广电),必须与该商品支持的运营商一致才能下单。例如商品仅支持「移动、联通」,提交电信或广电号码会下单失败,返回 code:50001 并在 message 中提示「该号码为XX号码,本商品仅支持XX」。请在下单前根据号码运营商选择对应商品(各商品支持的运营商见「产品列表」接口返回的 carrier 字段,多网用逗号分隔如 CM,CU:CM=移动、CU=联通、CT=电信、GD=广电)。

2. 查询订单

GET / POST https://api.lxchong.com/api/open/order/query

请求参数(order_no 与 out_trade_no 二选一):

参数必填类型说明
order_no二选一string平台订单号(下单返回的 order_no)
out_trade_no二选一string您的外部订单号

返回结构与下单一致(含 status / status_text / amount 等),订单不存在返回 code:40400

3. 查询余额

GET https://api.lxchong.com/api/open/balance

{ "code": 0, "message": "ok", "data": { "balance": 100.00, "balance_fen": 10000 } }

balance 单位元,balance_fen 单位分。用代理 app_key(agk_ 前缀)对接时查的是代理账户余额(同系统串货场景),非租户余额。

4. 产品同步

GET https://api.lxchong.com/api/open/products

拉取上游平台全部上架产品,供同步/一键导入到自己产品库。无业务参数(仍需签名头)。

{
  "code": 0, "message": "ok",
  "data": [
    { "product_id": "own1_c11_304", "name": "移动 联通 电信50元充值",
      "type": 1, "type_text": "话费快充", "carrier": "CM,CU,CT",
      "face_value": 50.00, "sell_price": 46.75 }
  ]
}

拿到 product_id 后即可用于下单接口的 product_id 参数。carrier 为该商品支持的运营商(多网逗号分隔):CM=移动、CU=联通、CT=电信、GD=广电;话费下单时手机号运营商必须在此范围内。

五、异步回调通知

订单到达终态(成功/失败/退款)时,平台会向您配置的 notify_url 推送通知(POST JSON)。验签方式与请求签名相同。

// 平台 → 您的 notify_url(POST,Content-Type: application/json)
{
  "app_key": "{your_app_key}",
  "order_no": "20260703xxxxxx",
  "out_trade_no": "YOUR_ORDER_123",
  "product_id": "1",
  "account": "13800138000",
  "face_value": 100.00,
  "amount": 95.00,
  "status": 3,
  "status_text": "success",
  "complete_at": "2026-07-03 12:00:00",
  "timestamp": "1782xxxxxx",
  "sign": "..."   // 验签方式同请求签名
}
// 收到后请返回包含 success 的文本,否则平台按 30s/120s/300s 递增重试(默认最多3次)

回调验签示例(PHP)

<?php
// ============ 回调验签示例(PHP)============
$body = json_decode(file_get_contents('php://input'), true);
$sign = $body['sign'] ?? '';
unset($body['sign']);
ksort($body);
$parts = [];
foreach ($body as $k => $v) {
    if (is_array($v)) $v = json_encode($v, JSON_UNESCAPED_UNICODE);
    $parts[] = $k . '=' . $v;
}
$raw = implode('&', $parts) . '&secret=' . '{your_secret_key}';
$expect = hash_hmac('sha256', $raw, '{your_secret_key}');

if (hash_equals($expect, $sign)) {
    // 验签通过:按 status 更新您的订单
    echo 'success';   // 必须返回含 success 的文本
} else {
    echo 'sign error';
}

六、订单状态码

statusstatus_text含义
1pending待处理(已受理,尚未提交上游)
2processing充值中(已提交上游,等待结果)
3success充值成功
4failed充值失败(可能被压单等待人工,见下方说明)
5refunded已退款(失败后自动退回额度)
压单说明:status=4 有两种情形——若同时 is_final=false 表示暂时失败被压单等待人工处理/重试,请勿据此判定最终失败并退款;只有 is_final=true(或状态变为 5 已退款)才是最终失败。建议以 status=5 或 is_final=true 作为退款依据。

七、错误码

code说明
0成功
40001参数错误(缺少 product_id/account 等)
40101缺少鉴权参数 X-App-Key / X-Timestamp / X-Sign
40102请求已过期(时间戳偏差超过300秒)
40103app_key 无效
40104未开通 API 权限,请联系直属管理员分配
40105账户已停用
40107未配置 secret_key(密钥)
40108签名校验失败
40400订单不存在(查单时)
50001下单失败(余额不足/产品不可用/号码运营商与商品不符等,详见 message)
乐享充开放平台 · 对接文档  |  专属凭证请登录代理后台「资料信息 / API配置」查看