POST/xgh/createOrder开放/回调

湘工惠-新增订单 · createOrder 推断名·方法名推断

开放与对接 / 湘工惠· XghController#createOrder

基本信息

  • 接口状态前端在用 置信度 高 免鉴权
  • 接口URLPOSThttps://dscp-dev.hn12301.net/open-api/xgh/createOrder
  • 请求方式POST
  • Content-Typeapplication/json
  • 暴露渠道开放/回调 前缀 /open-api
  • 名称来源方法名推断 补 javadoc 后自动转正
  • 调用方已确认在用 · 湘工惠商城(1 个前端)
  • 需求上下文湘工惠接口:下单、支付、退款及2个回调接口
  • 维护人 / 最后改动liuxu 2025-04-08 最近提交:湘工惠接口:下单、支付、退款及2个回调接口
  • 读写数据表order_goods、member、card、promotion_coupon、order_operatelog、openapi_channel_rule、card_model_rule 反查该表全部接口 →
  • 控制器com.jxxx.dscp.api.controller.openapi.XghController#createOrder
  • 源码位置jxxx-dscp/dscp-service-business/src/main/java/com/jxxx/dscp/api/controller/openapi/XghController.java:143
  • 判定依据1 个调用点:xghmall/common/http.api.js

请求参数

Header 请求参数

参数名参数值是否必填参数类型描述说明
无(渠道统一鉴权头见《认证方式》)

Query 请求参数

参数名参数值是否必填参数类型描述说明
无

路径参数及说明

参数名参数值是否必填参数类型描述说明
无

Body 请求参数

Body 类型 ChannelCreateOrderRequest
参数名参数值是否必填参数类型描述说明
cardModleId…是Long
buyNum…是Integer购买份数 → order.buy_num
skuId…是LongSKUID
mobile…是String → member.mobile
couponId…否Long券id */
userId…否String → promotion_coupon.user_id
certNo…否String
realName…否String
phone…否String → card.phone
certId…否String

认证方式

免鉴权:@Route(auth = false) —— 该接口不校验登录态,改动前确认调用方与签名校验。

响应参数

data 类型 ChannelPrePayResponse
参数名参数值是否必填参数类型描述说明
outTradeNo…否String我方交易号
tradeNo…否String第三方交易号
flag…否Boolean
payUrl…否String
extendMap…否Map<String, String>

响应示例

成功响应示例 code=0

{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "outTradeNo": "\"string\"",
    "tradeNo": "\"string\"",
    "flag": "false",
    "payUrl": "\"string\"",
    "extendMap": "…"
  }
}

失败响应示例

{
  "data": null,
  "可能返回": [
    {
      "errcode": "99999",
      "errmsg": "服务内部错误"
    },
    {
      "errcode": "20011",
      "errmsg": "旅游卡已无分配资源"
    }
  ]
}
示例来自源码/导出内容,仅结构参考,非线上真实数据。

附录 · 实现细节

调用链 / 数据表 / 调用点证据 / 源码注释 / 逻辑摘要
涉及数据表:order_goods、member、card、promotion_coupon、order_operatelog、openapi_channel_rule、card_model_rule 反查全部引用接口 →
  • XghController#createOrder
  • XghService#createOrder(XghServiceImpl)
  • OrderService#queryList(OrderServiceImpl)
  • OrderMapper#queryList
  • OrderGoodsService#queryList(OrderGoodsServiceImpl)
  • OrderGoodsMapper#queryList
  • MemberService#update(MemberServiceImpl)
  • MemberMapper#update
  • CardService#addCardOrder(CardServiceImpl)
  • LockService#tryLock
  • OrderService#maxOrderId(OrderServiceImpl)
  • PromotionCouponService#getCoupon(PromotionCouponServiceImpl)
  • PromotionCouponService#useCoupon(PromotionCouponServiceImpl)
  • LockService#unlock
  • BeanUtils.map → OrderOperatelog ⇒ 表 order_operatelog
  • OrderService#update(OrderServiceImpl)
  • OrderMapper#update
其它依赖:ChaosTransactionTemplate.execute
逻辑摘要:调用 canOrderOrOperate(DateUtils.canOrderOrOperate);调用 canOrderOrOperateMsg(DateUtils.canOrderOrOperateMsg);创建(xghService.createOrder)
源码内联注释(旧站解析结果)
  • throw ChaosRes.SYS_FAIL.toException("制卡中");
  • }
  • if (!DateUtils.canOrderOrOperate()) {
  • throw ChaosRes.SYS_FAIL.toException(DateUtils.canOrderOrOperateMsg());
  • throw ChaosRes.SYS_FAIL.toException("系统升级中,预计22:00完成。请稍后再试!");
旧站环境备注:pro:(仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
调用点证据
  • xghmall/common/http.api.js:8 湘工惠商城 · createOrderUrl
可能抛出的业务码:99999 服务内部错误、20011 旅游卡已无分配资源 错误码字典 →
由 tools/build.py 从 data/apis.json 生成 · 生成时间 2026-09-12 19:49 · 数据口径见说明 · 本页数字非手写,均来自同一份数据