OrderLink 商户接入 Demo

使用前请先完成配置:
1) 复制 config.example.phpconfig.php,填写 ORDERLINK_API_URLORDERLINK_APP_IDORDERLINK_APP_SECRETORDERLINK_NOTIFY_URL
2) 确保当前 PHP 环境开启 curljsonmbstring 扩展;
3) ORDERLINK_API_URL 指向你的 OrderLink 后端(本地可用 http://localhost:8080)。

快速开始

1. 商户下单(创建订单)

向平台发起一笔交易订单,平台返回 交易中转页 URL,将该 URL 交给终端用户即可。

order_create.php →

2. 订单查询

根据平台订单号查询订单状态(CREATED / MATCHED / SUCCESS / FAILED / EXPIRED / CANCELED)。

order_query.php →

3. 订单关闭

主动关闭尚未完成的订单(状态为 CREATED / MATCHED)。

order_cancel.php →

4. 代付申请

发起代付申请,平台撮合代付商承接,返回 代付中转页 URL 交给终端用户。

pay_create.php →

5. 代付查询

根据平台代付单号查询代付状态。

pay_query.php →

6. 代付关闭

主动关闭尚未完成的代付单。

pay_cancel.php →

7. 回调接收示例

平台在交易/代付完成后会 POST 到你在后台配置的 notifyUrl。本文件演示如何接收与记录。

callback_sample.php →

注意:生产环境的回调地址必须外网可达,且务必校验签名与 IP 白名单。

签名公式(与后端 OpenApiAuthServiceImpl 一致)

bodyString  = json_encode($body, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)
signString  = appId + "\n" + timestamp + "\n" + nonce + "\n" + bodyString
sign        = hash_hmac('sha256', signString, appSecret)

请求头:
  X-App-Id:     {appId}
  X-Timestamp:  {timestamp (秒)}
  X-Nonce:      {随机串}
  X-Sign:       {sign}
  Content-Type: application/json

响应结构

{
  "code": "SUCCESS",          // 成功;失败时为错误码见文档 §7.4
  "message": "ok",
  "data": { ... },
  "traceId": "..."
}

主要错误码

目录结构

demo/
├── config.example.php      # 配置模板(复制为 config.php 后填写)
├── config.php              # 实际配置(不要提交到版本库)
├── orderlink.php           # 签名 + HTTP 请求封装(公共库)
├── order_create.php        # 商户下单
├── order_query.php         # 订单查询
├── order_cancel.php        # 订单关闭
├── pay_create.php          # 代付申请
├── pay_query.php           # 代付查询
├── pay_cancel.php          # 代付关闭
└── callback_sample.php     # 回调接收示例

OrderLink 商户接入 Demo · v1.0 · 2026-09-06