auth.getPaidUnionId

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

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

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

注意

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

调用方式:

1. HTTPS 调用
2. 云调用

HTTPS 调用

请求地址 api_wxa

GET getpaidunionid
Synopsis

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

Query Parameters
  • access_token (string) – 必选 接口调用凭证

  • openid (string) – 必选 支付用户唯一标识

  • transaction_id (string) – 非比选 微信支付订单号

  • mch_id (string) – 非必选 微信支付分配的商户号,和商户订单号配合使用

  • out_trade_no (string) – 非必选 微信支付商户订单号,和商户号配合使用

Response JSON Object
  • unionid (string) – 用户唯一标识,调用成功后返回

  • serrcode (number) –

    错误码, 合法值如下

    • -1 系统繁忙,此时请开发者稍候再试

    • 0 请求成功

    • 40003 openid 错误

    • 89002 没有绑定开放平台帐号

    • 89300 订单无效

  • errmsg (string) – 错误信息

使用说明

以下两种方式任选其一。

微信支付订单号(transaction_id):

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

微信支付商户订单号和微信支付商户号(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({openid[, transactionId][, mchId][, outTradeNo]})

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

参数
  • openid (string()) – 是 支付用户唯一标识

  • transactionId (string()) – 否 微信支付订单号

  • mchId (string()) – 否 微信支付分配的商户号,和商户订单号配合使用

  • outTradeNo (string()) – 否 微信支付商户订单号,和商户号配合使用

返回类型

Object

返回

返回的 JSON 数据包

  • unionid string 用户唯一标识,调用成功后返回

  • errCode number 错误码

    • 0 成功

  • errMsg string 错误信息

抛出

SomeError()

异常 Object 抛出的异常

  • errCode number 错误码

    • -1 系统繁忙,此时请开发者稍候再试

    • 40003 openid 错误

    • 89002 没有绑定开放平台帐号

    • 89300 订单无效

  • errMsg string 错误信息

请求示例
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.auth.getPaidUnionId({
      openid: '',
      transactionId: '',
      mchId: '',
      outTradeNo: ''
    })
    console.log(result)
    return result
  } catch (err) {
    console.log(err)
    return err
  }
}
返回示例
{
  "unionid": "oTmHYjg-tElZ68xxxxxxxxhy1Rgk",
  "errCode": 0,
  "errMsg": "openapi.auth.getPaidUnionId:ok"
}