阅读(2342) (20)

微信小程序 getPaidUnionId

2020-07-29 09:51:09 更新

auth.getPaidUnionId

本接口应在服务器端调用,详细说明参见服务端API
本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载
wx-server-sdk >= 0.4.0

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

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

调用方式:

  • HTTPS 调用
  • 云调用

HTTPS 调用

请求地址

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

请求参数

属性 类型 默认值 必填 说明
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()
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"
}