用户信息 /用户信息 /支付后获取 Unionid # 支付后获取 Unionid > 接口应在服务器端调用,详细说明参见[服务端API](https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html)。 > 本接口支持[云调用](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)。需开发者工具版本 >= `1.02.1904090`(最新[稳定版下载](https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html)),`wx-server-sdk` >= `0.4.0` ## 接口说明 ### 接口英文名 getPaidUnionid ### 功能描述 该接口用于在用户支付完成后,获调用本接口前需要用户完成支付,用户支付完成后,取该用户的 UnionId,无需用户授权。本接口支付后的五分钟内有效。 ### 注意事项 - 调用前需要用户完成支付,且在支付后的五分钟内有效。 - 使用微信支付订单号(transaction_id)和微信支付商户订单号和微信支付商户号(out_trade_no 及 mch_id),二选一 ## 调用方式 ### HTTPS 调用 ```text GET https://api.weixin.qq.com/wxa/getpaidunionid?access_token=ACCESS_TOKEN ``` ### 云调用 - 出入参和 HTTPS 调用相同,调用方式可查看[云调用说明文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html) - 接口方法为: openapi.auth.getPaidUnionId ### 第三方调用 - 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同 ### 请求参数 | 属性 | 类型 | 必填 | 说明 | | :------------------------------------ | :----- | :--- | :----------------------------------------------------------- | | access_token / cloudbase_access_token | string | 是 | 接口调用凭证,该参数为 URL 参数,非 Body 参数。access_token和cloudbase_access_token二选一 其中access_token可通过[getAccessToken](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html)接口获得; 如果是第三方代调用请传入[authorizer_access_token](https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/ThirdParty/token/api_authorizer_token.html); cloudbase_access_token可通过[getOpenData](https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/weixin/token.html)接口获得 | | openid | string | 是 | 支付用户唯一标识 | | transaction_id | string | 否 | [微信支付订单号](https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7) | | mch_id | string | 否 | 微信支付分配的[商户号](https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7),和商户订单号配合使用 | | out_trade_no | string | 否 | [微信支付商户订单号](https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7),和商户号配合使用 | ### 返回参数 | 属性 | 类型 | 说明 | | :------ | :----- | :--------------------------- | | unionid | string | 用户唯一标识,调用成功后返回 | | errcode | number | 错误码 | | errmsg | string | 错误信息 | ## 调用示例 > 示例说明: 使用微信支付订单号 ### 请求数据示例 ```text GET https://api.weixin.qq.com/wxa/getpaidunionid?access_token=ACCESS_TOKEN&openid=OPENID&transaction_id=TRANSACTION_ID ``` ### 返回数据示例 ```json { "unionid": "oTmHYjg-tElZ68xxxxxxxxhy1Rgk", "errcode": 0, "errmsg": "ok" } ``` > 示例说明: 使用微信支付商户订单号和微信支付商户号(out_trade_no 及 mch_id) ### 请求数据示例 ```text GET https://api.weixin.qq.com/wxa/getpaidunionid?access_token=ACCESS_TOKEN&openid=OPENID&mch_id=MCH_ID&out_trade_no=OUT_TRADE_NO ``` ### 返回数据示例 ```json { "unionid": "oTmHYjg-tElZ68xxxxxxxxhy1Rgk", "errcode": 0, "errmsg": "ok" } ``` > 示例说明: 云函数示例 ### 请求数据示例 ```text 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 } } ``` ### 返回数据示例 ```json { "unionid": "oTmHYjg-tElZ68xxxxxxxxhy1Rgk", "errCode": 0, "errMsg": "openapi.auth.getPaidUnionId:ok" } ``` ### 错误码 | 错误码 | 错误码取值 | 解决方案 | | :----- | :------------------------------------------------------ | :----------------------------------------------------------- | | 40001 | invalid credential access_token isinvalid or not latest | 获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口 | | 0 | ok | ok | | -1 | system error | 系统繁忙,此时请开发者稍候再试 | | 40003 | invalid openid | 不合法的 OpenID ,请开发者确认 OpenID (该用户)是否已关注公众号,或是否是其他公众号的 OpenID | | 89002 | open not exists | open not exists,该公众号/小程序未绑定微信开放平台帐号。 | | 89300 | invalid trade | 订单无效 | | | | | | :--- | :--- | :--- | | | | | | | | | | | | |