微信支付 unionid

调用本接口前需要用户完成支付,用户支付完成后,第三方平台可以代理小程序获取该用户的 unionid,无需用户授权。本接口支付后的五分钟内有效。使用过程中如遇到问题,可在开放平台服务商专区发帖交流。

# 请求地址

以下两种方式任选其一:

  1. 微信订单号:

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

  1. 商户订单号:

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

# 请求参数说明

参数类型必填说明
access_token String 第三方平台接口调用令牌authorizer_access_token
openid String 支付用户唯一标识
transaction_id String 微信订单号
mch_id String 商户号,和商户订单号配合使用
out_trade_no String 商户订单号,和商户号配合使用

# 返回参数说明

参数类型说明
unionid String 用户唯一标识,调用成功后返回
errcode Number 返回码

# 返回码说明

说明
0 请求成功
-1 系统错误
40003 openid 错误
89002 没有绑定开放平台账号
89300 订单无效
其他错误码 请查看全局错误码

调试工具

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

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

# 接口说明

# 接口英文名

getPaidUnionid

# 功能描述

该接口用于在用户支付完成后,获调用本接口前需要用户完成支付,用户支付完成后,取该用户的 UnionId,无需用户授权。本接口支付后的五分钟内有效。

# 注意事项

  • 调用前需要用户完成支付,且在支付后的五分钟内有效。
  • 使用微信支付订单号(transaction_id)和微信支付商户订单号和微信支付商户号(out_trade_no 及 mch_id),二选一

# 调用方式

# HTTPS 调用

# 云调用

  • 出入参和 HTTPS 调用相同,调用方式可查看云调用说明文档

  • 接口方法为: openapi.auth.getPaidUnionId

# 第三方调用

  • 调用方式以及出入参和 HTTPS 相同,仅是调用的 token 不同

# 请求参数

# 返回参数

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

# 调用示例

示例说明: 使用微信支付订单号

# 请求数据示例

# 返回数据示例

示例说明: 使用微信支付商户订单号和微信支付商户号(out_trade_no 及 mch_id)

# 请求数据示例

# 返回数据示例

示例说明: 云函数示例

# 请求数据示例

# 返回数据示例

# 错误码

错误码错误码取值解决方案
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 订单无效

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

# UnionID获取途径

绑定了开发者帐号的小程序,可以通过以下途径获取 UnionID。

  1. 开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户授权。

  2. 小程序端调用云函数时,可在云函数中通过 Cloud.getWXContext 获取 UnionID。

  3. 用户在小程序(暂不支持小游戏)中支付完成后,开发者可以直接通过getPaidUnionId接口获取该用户的 UnionID,无需用户授权。注意:本接口仅在用户支付完成后的5分钟内有效,请开发者妥善处理。

# 微信开放平台绑定小程序流程

登录微信开放平台 — 管理中心 — 小程序 — 绑定小程序

微信支付 unionid

背景描述:

目前我们官网平台(PC/APP/小程序端都有绑定在同一个微信开放平台账号下)为了保证用户账号统一性都是使用unionid方式来授权登录的;

请教解答问题:

1、例如小程序接入微信支付是,只看到openid方式,没有看到 unionid方式?

因为现在官网各渠道都是使用unionid方式保证统一微信登录账号统一性,现在这样接入微信支付如何使用unionid方式接入?

另外,微信支付的其他几种方式(扫码支付、H5端支付、公众号支付、APP支付)也一样只看到openid方式。是否有统一的方法获取unionid?

https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1

2、微信支付和账号是否打通疑问:

就是目前我们在接入微信支付商户平台时,这个平台有个类似应用APPID的值叫

商户号 mch_id

,如果在没有绑定统一的微信开放平台账号下,如果同一个微信账号登录官网,然后进入支付阶段会不会产生不一样账号?导致用户最后支付账号不一致的情况?

登录调用的开放平台的openid和商户支付平台返回的openid是同一个吗???