Skip to content

授权码认证

更新时间:2026/7/26 21:23:52

提供两个接口,均使用 AuthCodeParam

接口地址返回用途
获取认证结果POST /unipay/assist/channel/auth/authResult<AuthResult>通过授权码换取 openId/userId,返回给调用方
获取并设置POST /unipay/assist/channel/auth/auth-and-setResult<Void>换取后直接写入会话(不返回 openId),供后续支付复用

注意响应类型

这两个接口返回的是平台级 Result(字段 message),不是 DaxResult(无 sign/resTime/reqId)。详见 错误码 - 响应结构

AuthCodeParam 请求参数

基础参数同 统一支付 - 基础参数,业务参数:

参数类型必填最大长度描述
authCodestring三方通道 OAuth 授权码(换 openId/userId),亦可直接写入已拿到的 openId
authTypestring32认证类型(多类型通道必填:wechat/alipay/union_pay/douyin
authTokenstring64认证会话码(H5 授权重定向场景下由 生成授权链接 下发,凭此恢复上下文)
productstring32支付产品编码(小程序直连场景无会话码时必传)
capabilitystring32支付能力编码(小程序场景需要)
channelAppIdstring128指定认证应用 AppId(会话码恢复时可空)
accessTokenstringAccessToken(通道直接返回时填入)
unionIdentifierstring云闪付 App 标识(从 UA 的 UnionPay/<版本> <标识> 截取)
queryCodestring查询 Code(用于关联生成授权链接时返回的标识)

接口一:获取认证结果

请求地址

POST /unipay/assist/channel/auth/auth

  • 认证: @PaymentVerify(注意:此接口不验签,依赖网关层防护)
  • 响应:Result<AuthResult>

请求示例

json
{
  "mchNo": "M200000001",
  "appId": "APP001",
  "authCode": "061XYYxxx0xxx",
  "authType": "wechat",
  "authToken": "AT20241201020"
}

响应参数 AuthResult

参数类型描述
openIdstringOpenId(微信场景)
userIdstring用户 ID(支付宝存量商户部分返回)
accessTokenstringAccessToken(微信会返回,用于获取用户信息)
statusstring状态(ChannelAuthStatusEnumwaiting/success/not_exist
returnPathstring来源回跳路径(会话恢复时回填)

响应示例

json
{
  "code": 0,
  "message": "success",
  "data": {
    "openId": "oXxX_xxxxxxxxxxxxx",
    "status": "success",
    "returnPath": "/pay/result"
  }
}

接口二:获取并设置

请求地址

POST /unipay/assist/channel/auth/auth-and-set

  • 认证:无 @PaymentVerify
  • 响应:Result<Void>

与「获取认证结果」入参相同,区别在于:换取后直接写入会话上下文,不返回 openId。适用于前端轮询场景——调用方只关心授权是否完成(HTTP 200 + code=0),openId 由后续支付请求自动复用。

响应示例

json
{
  "code": 0,
  "message": "success",
  "data": null
}

基于 GNU LGPL v3.0 协议开源