一休哥头像一休哥 APIDEVELOPER PLATFORM API 服务正常返回平台

API REFERENCE · V1

开发者文档

用一套清楚、稳定的接口完成余额查询、号码获取、验证码轮询与订单管理。

API 基础地址https://api.gynb6666.com/stubs/handler_api.php

01快速开始

注册并登录客户控制台,复制你的 API Key。管理员设置拿货价并充值后即可取号;实际费用会记录在订单与资金流水中。

02身份验证

推荐通过请求头 X-API-Key(或 Bearer Token)传入密钥,避免密钥进入浏览器历史和服务器访问日志。查询参数 api_key 仅用于兼容旧接入。

03查询余额

curl -H "X-API-Key: YOUR_API_KEY" "https://api.gynb6666.com/stubs/handler_api.php?action=getBalance"

成功时直接返回人民币余额,例如 100.00

04获取号码

curl -H "X-API-Key: YOUR_API_KEY" "https://api.gynb6666.com/stubs/handler_api.php?action=getNumber&service=dr&country=187&card_code=YOUR_CARD_CODE&operation_id=YOUR_OPERATION_ID"

使用 country=187 获取美国短期号码,必须同时传入你自己生成的 card_code。目前仅开放美国短期服务。

防止超时重复取号

每次准备取一个新号码前,先生成并保存唯一的 operation_id。长度为 1–120 个字符,只能使用字母、数字、下划线、点、冒号和短横线。

请求超时后重试时,必须使用同一个 operation_id,并保持 card_codeservicecountry 完全一致。客户端请求超时建议设置为至少 75 秒。

成功返回:

ACCESS_NUMBER:订单ID:美国手机号码

05查询卡密额度

curl -H "X-API-Key: YOUR_API_KEY" "https://api.gynb6666.com/stubs/handler_api.php?action=getCardUsage&card_code=YOUR_CARD_CODE"

返回 JSON,包括 totalUsedremaining。同一 API 顾客下,每个 card_code 独立统计。页面打开、请求失败或网络恢复后,都应调用 getCardUsage 重新同步;以此接口返回的额度为准,不要只依赖浏览器本地计数。

06查询验证码

curl -H "X-API-Key: YOUR_API_KEY" "https://api.gynb6666.com/stubs/handler_api.php?action=getStatus&id=订单ID"

等待时返回 STATUS_WAIT_CODE;收到后返回 STATUS_OK:验证码

07完成订单

curl -H "X-API-Key: YOUR_API_KEY" "https://api.gynb6666.com/stubs/handler_api.php?action=setStatus&id=订单ID&status=6"

业务完成后可提交状态 6 结束订单。

08取消订单

curl -H "X-API-Key: YOUR_API_KEY" "https://api.gynb6666.com/stubs/handler_api.php?action=setStatus&id=订单ID&status=8"

未收到验证码且可取消时,费用自动退回账户余额。

09错误状态

返回值 说明
BAD_KEY API Key 不正确或账户已停用
MISSING_CARD_CODE 美国短期取号必须传入 card_code
MISSING_OPERATION_ID 此账户取号时必须传入 operation_id
BAD_OPERATION_ID operation_id 格式不正确
OPERATION_CONFLICT 同一个 operation_id 被用于不同的取号参数
NO_BALANCE 余额不足或拿货价未设置
NO_NUMBERS 当前暂无可用号码
MAX_ACTIVE_ORDERS 进行中的订单已达到上限
EARLY_RATE_LIMIT 请求速度超过限制
ERROR_SERVICE_UNAVAILABLE 对应号码通道暂时不可用
ACCOUNT_PENDING 账户尚未通过管理员审核

长期号码 API

长期号码使用独立的 JSON REST 接口,固定产品为美国 OpenAI Codex。价格由产品接口返回,客户端应以 priceCentsdurationDays 为准,不要在程序中写死金额。

长期号码基础地址https://api.gynb6666.com/api/long-numbers

长期号码客户入口开启后,网页 /long-numbers.html 与本组 REST 才可访问;未开放时,页面与本组 API 均返回 404。入口开放不代表当前可提取或续费,请先读取产品的 salesEnabled

身份验证

浏览器网页使用登录后由服务端设置的 customer_session Cookie,并以同源请求访问;不要手工读取或复制该 Cookie。服务端接入可使用下面任一请求头。三种方式都只代表对应的普通客户账户;若同时发送登录会话与 API Key,两者必须属于同一账户。

X-API-Key: YOUR_API_KEY
Authorization: Bearer YOUR_API_KEY

不要把 API Key 放进 URL。所有 POSTPATCHDELETE 请求都必须发送 Content-Type: application/json;使用登录会话执行修改时还必须是同源请求。

产品

GET /api/long-numbers/product 返回 product,公开字段为 codenameaccountNamespacepriceCentsdurationDaysretentionDayssalesEnabled。每次开通或续费延长 26 天,到期后保留 3 天;保留期内可以续费,但不能接收新验证码。accountNamespace 是当前认证账户的非敏感稳定命名空间,网页用它隔离本地幂等操作记录;调用方不得把它当作认证凭据。当前固定 codeus-openai-codex;只有 salesEnabledtrue 时才应提交新的付费动作。

接口一览

接口用途
GET /api/long-numbers/product读取产品、当前开通价格与有效期
POST /api/long-numbers/orders开通一个长期号码并开启首次 15 分钟收码窗口
GET /api/long-numbers/orders?view=current&page=1分页查询等待首码的订单
GET /api/long-numbers/orders?view=mine&page=1分页查询已经绑定的有效号码
GET /api/long-numbers/orders?view=history&page=1分页查询当前账户尚可见的记录;不等同于仅查询终态
GET /api/long-numbers/orders/{orderId}读取一个属于当前账户的订单及验证码
POST /api/long-numbers/orders/{orderId}/cancel首码前取消符合条件的订单;退款由服务端处理
POST /api/long-numbers/orders/{orderId}/receive为有效号码开启一个 15 分钟收码窗口
POST /api/long-numbers/orders/{orderId}/receive/cancel取消当前收码窗口
POST /api/long-numbers/orders/{orderId}/renew支付当前价格并延长 26 天
POST /api/long-numbers/orders/{orderId}/release释放已绑定的长期号码;剩余有效期不退款
PATCH /api/long-numbers/orders/{orderId}/note保存不超过 100 字的订单备注
DELETE /api/long-numbers/records从当前账户的历史视图隐藏指定记录;不释放或改变有效号码

开通号码

每一次新开通都要由调用方生成并持久保存唯一的 operationId,并把刚从产品接口读取的 priceCents 原样作为 expectedPriceCents 提交。请求超时、断网或返回结果待确认时,同一次提取或续费重试必须复用同一个 operationId 和确认价格,不能生成新值;价格已经变化时,应先刷新产品再由用户重新确认。

curl -X POST "https://api.gynb6666.com/api/long-numbers/orders" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operationId":"create:YOUR_UNIQUE_ID","expectedPriceCents":400}'

成功响应为 JSON,包含 ok 与当前账户可见的 order。手机号、订单和验证码始终按认证所对应的账户隔离。

查询订单与验证码

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.gynb6666.com/api/long-numbers/orders?view=current&page=1"

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.gynb6666.com/api/long-numbers/orders/ORDER_ID"

view=current 返回 statuswaiting 的订单;view=mine 返回 statussuccess 的订单;view=history 返回当前账户尚可见且未从历史视图隐藏的记录。列表接口返回 orderspagepageSizetotaltotalPages

订单公开字段包括 idproductCodephonestatuslifecyclechargedPriceCentsrefundCentsexpiresAtretentionEndsAtnotemessageCountlatestCodelastMessageAtreceive。详情接口还返回 messages;未收到验证码时 latestCodelastMessageAtnullmessages 为空。验证码正文默认只保留24小时:到期后 messages 仍保留时间与事件元数据,但 codenull。删除历史记录会立即清除该订单已交付的验证码正文,不会释放仍有效的号码。

statuswaitingsuccesscancelledfailedreleasedlifecyclewaitingactiverenewal_dueretentionreconciliationcancelledfailedreleased。是否可取消、开窗或续费应分别读取 canCancelcanReceivecanRenew,不要只按状态文字推断。

收码、取消、续费、释放与记录

# 开启或取消当前 15 分钟收码窗口
POST /api/long-numbers/orders/{orderId}/receive
POST /api/long-numbers/orders/{orderId}/receive/cancel

# 续费;operationId 与 expectedPriceCents 规则均与开通相同
POST /api/long-numbers/orders/{orderId}/renew
{"operationId":"renew:YOUR_UNIQUE_ID","expectedPriceCents":400}

# 释放号码;释放后无法恢复,剩余有效期不退款
POST /api/long-numbers/orders/{orderId}/release

# 备注与隐藏历史记录
PATCH /api/long-numbers/orders/{orderId}/note
{"note":"我的备注"}
DELETE /api/long-numbers/records
{"ids":["ORDER_ID"]}

首码前且订单允许取消时,可调用 POST /api/long-numbers/orders/{orderId}/cancel;成功退款会记入账户余额与资金流水。只有 canReleasetrue 时才能释放号码,释放后无法恢复且剩余有效期不退款。绑定到期后会进入保留期,最终释放状态以订单查询结果为准。

状态码与安全重试

HTTP 状态处理方式
400请求字段或格式错误;修正请求后再提交
401API Key 缺失或无效
403账户未开通或无权访问该资源
404订单不存在、无权查看,或长期服务当前关闭
405该路径不支持当前请求方法
409状态已变化或幂等键与原请求冲突;先重新查询订单
413JSON 请求体超过服务允许的大小
415修改请求未使用 application/json
429连续超时后的冷却期尚未结束
503服务已安全停止当前动作;保留原 operationId 并先查询订单

错误响应仍为 JSON:{"ok":false,"error":"..."}。若同时返回 reconciliationRequired: true,表示结果尚未确认,请勿自动重试或更换 operationId;请先查询订单,仍未恢复时联系技术支持。只有响应明确返回 operationTerminal: true 时,才可结束该 operationId 的重试周期。