# auth.getPaidUnionId

本接口应在服务器端调用,详细说明参见服务端API

本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0

用户支付完成后,获取该用户的 UnionId,无需用户授权。本接口支持第三方平台代理查询

  • 注意:调用前需要用户完成支付,且在支付后的五分钟内有效。

调用方式:

# HTTPS 调用

# 请求地址

GET https://api.weixin.qq.com/wxa/getpaidunionid?access_token=ACCESS_TOKEN&openid=OPENID

# 请求参数

属性 类型 默认值 必填 说明
access_token / cloudbase_access_token string 接口调用凭证
openid string 支付用户唯一标识
transaction_id string 微信支付订单号
mch_id string 微信支付分配的商户号,和商户订单号配合使用
out_trade_no string 微信支付商户订单号,和商户号配合使用

# 返回值

# Object

返回的 JSON 数据包

属性 类型 说明
unionid string 用户唯一标识,调用成功后返回
errcode number 错误码
errmsg string 错误信息

errcode 的合法值

说明 最低版本
-1 系统繁忙,此时请开发者稍候再试
0 请求成功
40003 openid 错误
89002 没有绑定开放平台帐号
89300 订单无效

# 使用说明

以下两种方式任选其一。

  1. 微信支付订单号(transaction_id):
https://api.weixin.qq.com/wxa/getpaidunionid?access_token=ACCESS_TOKEN&openid=OPENID&transaction_id=TRANSACTION_ID
  1. 微信支付商户订单号和微信支付商户号(out_trade_no 及 mch_id):
 https://api.weixin.qq.com/wxa/getpaidunionid?access_token=ACCESS_TOKEN&openid=OPENID&mch_id=MCH_ID&out_trade_no=OUT_TRADE_NO

# 返回数据示例

{
  "unionid": "oTmHYjg-tElZ68xxxxxxxxhy1Rgk",
  "errcode": 0,
  "errmsg": "ok"
}

# 云调用

云调用是微信云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。

# 接口方法

openapi.auth.getPaidUnionId

需在 config.json 中配置 auth.getPaidUnionId API 的权限,详情

# 请求参数

属性 类型 默认值 必填 说明
openid string 支付用户唯一标识
transactionId string 微信支付订单号
mchId string 微信支付分配的商户号,和商户订单号配合使用
outTradeNo string 微信支付商户订单号,和商户号配合使用

# 返回值

# Object

返回的 JSON 数据包

属性 类型 说明
unionid string 用户唯一标识,调用成功后返回
errCode number 错误码
errMsg string 错误信息

errCode 的合法值

说明 最低版本
0 成功

# 异常

# Object

抛出的异常

属性 类型 说明
errCode number 错误码
errMsg string 错误信息

errCode 的合法值

说明 最低版本
-1 系统繁忙,此时请开发者稍候再试
40003 openid 错误
89002 没有绑定开放平台帐号
89300 订单无效

# 请求示例

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.auth.getPaidUnionId({
        "openid": '',
        "transactionId": '',
        "mchId": '',
        "outTradeNo": ''
      })
    return result
  } catch (err) {
    return err
  }
}

# 返回数据示例

{
  "unionid": "oTmHYjg-tElZ68xxxxxxxxhy1Rgk",
  "errCode": 0,
  "errMsg": "openapi.auth.getPaidUnionId:ok"
}