#下单并返回支付短链 payUrl 与它的二维码 qrImageUrl
POST/v1/lm/pay/web-prepare
下单并返回支付短链 payUrl 与它的二维码 qrImageUrl(需带收货地址;idempotencyKey 同键重放返回同一张收款单)
鉴权用户态
出现在消费者 · 下单与支付
平台收款方式(手上有完整收货地址时):返回支付短链 payUrl 与它的二维码 qrImageUrl——在电脑上或对话里优先展示二维码,用户用手机支付宝扫码付款(手机上已登录),否则把 payUrl 交给用户打开付款;付款成功后平台自动下单,失败自动退款。同一 idempotencyKey 重放返回同一张收款单(outTradeNo 不变),内容不同则 409。链接自首次生成起约 23 小时内可付。付款结果以收款单查询为准。
请求体application/json
| 字段 | 类型 | 必填 | 说明 |
|---|
items | object[] | 是 | |
items[].productId | string | 是 | 商品接口返回的 id |
items[].skuId | string | 是 | 商品详情 skus[].skuId,必填 |
items[].qty | integer | 否 | 默认 1。≥ 1 |
receiver | object | 否 | 收货人。地区用行政区划码,先用 GET /v1/divisions 级联查出 |
receiver.receiver | string | 是 | 收货人姓名 |
receiver.receiverPhone | string | 是 | |
receiver.divisionCode | string | 是 | 区县级(四级)区划码,必填。例:330106 |
receiver.townDivisionCode | string | 否 | 乡镇级(五级)区划码,强烈建议带上,缺了上游可能拒单。例:330106001 |
receiver.addressDetail | string | 是 | |
addressId | string | 否 | 与 receiver 二选一,必须给其一 |
idempotencyKey | string | 是 | 你方订单唯一号(同一用户内唯一)。最长 128 |
device | string | 否 | 收银台类型。payUrl 为短链时打开它的设备会自动选择(手机 / 电脑),此参数可不传;未启用短链时决定网关地址的类型(缺省 pc)。可选值:pc / mobile。默认 "pc" |
returnUrl | string | 否 | https,域名须为登记的 callback_url 域名或其子域;不传则停在支付宝成功页 |
remark | string | 否 | |
返回字段
| 字段 | 类型 | 说明 |
|---|
ok | boolean | |
outTradeNo | string | |
money | string | |
payUrl | string | 支付短链(约 60 字符)。打开时按设备生成支付宝收银台(手机 / 电脑),付完回跳 returnUrl;已付 / 已关 / 超时会给出提示页。手机上直接打开即可付款 |
qrImageUrl | string | payUrl 的二维码图片(PNG,几百字节),可直接放进对话或网页让用户用手机支付宝扫码;未配置公网地址时不返回,payUrl 也回落为支付宝网关地址 |
错误
400 EMPTY / SKU_REQUIRED / PRODUCT_NOT_FOUND / SKU_UNAVAILABLE / BAD_RECEIVER / ADDRESS_NOT_FOUND / BAD_IDEMPOTENCY_KEY / BAD_DEVICE / BAD_RETURN_URL / PAY_EXPIRED409 IDEMPOTENCY_CONFLICT / ALREADY_PAID / PAY_CLOSED / IN_PROGRESS503 PAY_NOT_CONFIGURED
调用示例
1curl -X POST "https://api.gowu.net/v1/lm/pay/web-prepare" \2 -H "x-app-key: $GOWU_APP_KEY" \3 -H "x-timestamp: $TS" \4 -H "x-nonce: $NONCE" \5 -H "x-sign-version: 2" \6 -H "x-signature: $SIG" \7 -H "x-open-user: u-001" \8 -H "content-type: application/json" \9 -d '{"items":[{"productId":"…","skuId":"…","quantity":1}],"receiver":{"receiver":"张三","receiverPhone":"138…","divisionCode":"330106","townDivisionCode":"330106001","addressDetail":"…"},"idempotencyKey":"your-order-20261015-0001","device":"pc","returnUrl":"https://your-domain.example.com/pay/done"}'
返回示例
1{2 "ok": true,3 "outTradeNo": "string",4 "money": "string",5 "payUrl": "string",6 "qrImageUrl": "string"7}
#托管结账页:返回 checkoutUrl,用户在页面上核对、填地址后用支付宝付款
POST/v1/lm/checkout/sessions
托管结账页:返回 checkoutUrl,用户在页面上核对、填地址后用支付宝付款(地址可不传;带 idempotencyKey 时同键重试返回同一个结账页)
鉴权用户态
出现在消费者 · 下单与支付
平台收款方式(手上没有完整收货地址时):建结账会话,把 checkoutUrl 交给用户,用户在平台结账页核对商品、补地址,跳浏览器支付宝付款。付款成功后平台自动下单,失败自动退款。checkoutUrl 即付款凭据,只发给对应用户。地址可不传,由用户在页面填写。
请求体application/json
| 字段 | 类型 | 必填 | 说明 |
|---|
items | object[] | 是 | |
items[].productId | string | 是 | 商品接口返回的 id |
items[].skuId | string | 是 | 商品详情 skus[].skuId,必填 |
items[].qty | integer | 否 | 默认 1。≥ 1 |
receiver | object | 否 | 收货人。地区用行政区划码,先用 GET /v1/divisions 级联查出 |
receiver.receiver | string | 是 | 收货人姓名 |
receiver.receiverPhone | string | 是 | |
receiver.divisionCode | string | 是 | 区县级(四级)区划码,必填。例:330106 |
receiver.townDivisionCode | string | 否 | 乡镇级(五级)区划码,强烈建议带上,缺了上游可能拒单。例:330106001 |
receiver.addressDetail | string | 是 | |
idempotencyKey | string | 否 | 幂等键(建议必传,用你的订单号)。同键重试返回同一个结账页(新的 checkoutUrl,旧链接失效),不会出现两个都能付的页面;同键不同内容返回 409 IDEMPOTENCY_CONFLICT,已过期且未付返回 409 SESSION_EXPIRED。最长 128 |
addressId | string | 否 | |
returnUrl | string | 否 | 付完「返回应用」的地址;https,域名须为登记的 callback_url 域名或其子域 |
remark | string | 否 | |
返回字段
| 字段 | 类型 | 说明 |
|---|
ok | boolean | |
sessionId | string | |
checkoutUrl | string | |
expiresAt | string(date-time) | |
money | string | |
错误
400 EMPTY / SKU_REQUIRED / PRODUCT_NOT_FOUND / SKU_UNAVAILABLE / BAD_RECEIVER / ADDRESS_NOT_FOUND / BAD_RETURN_URL503 NOT_CONFIGURED
调用示例
1curl -X POST "https://api.gowu.net/v1/lm/checkout/sessions" \2 -H "x-app-key: $GOWU_APP_KEY" \3 -H "x-timestamp: $TS" \4 -H "x-nonce: $NONCE" \5 -H "x-sign-version: 2" \6 -H "x-signature: $SIG" \7 -H "x-open-user: u-001" \8 -H "content-type: application/json" \9 -d '{"items":[{"productId":"…","skuId":"…","quantity":1}],"idempotencyKey":"your-order-20261015-0001","returnUrl":"https://your-domain.example.com/pay/done"}'
返回示例
1{2 "ok": true,3 "sessionId": "string",4 "checkoutUrl": "string",5 "expiresAt": "2026-11-02T10:00:00+08:00",6 "money": "string"7}
#退货退款:回传退货运单号
POST/v1/lm/pay/refund/return
鉴权用户态
寄回商品后调用。快递公司编码取自收款单详情的 returnInfo.carriers。
请求体application/json
| 字段 | 类型 | 必填 | 说明 |
|---|
outTradeNo | string | 是 | |
logisticsCompany | string | 是 | returnInfo.carriers[].code |
invoiceNo | string | 是 | 退货运单号 |
subOrderId | string | 否 | |
返回字段
| 字段 | 类型 | 说明 |
|---|
ok | boolean | |
status | string | 例:returning |
message | string | |
错误
400 NOT_AWAITING_RETURN / BAD_CARRIER / RETURN_SUBMIT_FAILED 等404 资源不存在,或不归属你的 appKey / 当前用户
调用示例
1curl -X POST "https://api.gowu.net/v1/lm/pay/refund/return" \2 -H "x-app-key: $GOWU_APP_KEY" \3 -H "x-timestamp: $TS" \4 -H "x-nonce: $NONCE" \5 -H "x-sign-version: 2" \6 -H "x-signature: $SIG" \7 -H "x-open-user: u-001" \8 -H "content-type: application/json" \9 -d '{"outTradeNo":"string","logisticsCompany":"string","invoiceNo":"string"}'
返回示例
1{2 "ok": true,3 "status": "returning",4 "message": "string"5}