# 网站应用调用 PC 微信能力

# 1、功能介绍

考虑到部分场景下网站应用需要使用 PC 微信能力来承载服务,为此提供 PC OpenSDK ,支持网站应用调用 PC 微信的能力。

# 2、准备工作

在进行网站应用接口调用之前,需在微信开放平台注册开发者账号,拥有一个已审核通过的网站应用,配置业务域名,并开通能力权限(拉起PC小程序、分享PC小程序),获得相应的 AppID 和 AppSecret,可开始接入流程。

# 3、接口调用流程说明

请在已申请网站应用、已获取 access_token 的情况下,按照如下流程调用网站应用接口。

# 第一步:获取 ticket

第三方使用网站应用接口前需提前获取 ticket。请在业务后台向微信后台 POST 请求以下地址(补充 access_token):

https://api.weixin.qq.com/cgi-bin/pcopensdk/ticket?access_token=TOKEN

请求 body 格式为 JSON。PC OpenSDK 场景,固定为:

{"ticket_type": "pcopensdk"}

参数说明

参数 是否必须 说明
ticket_type 授权的票据类型,此处固定为"pcopensdk"

返回说明

返回结果 说明
ticket 获取到的一次性接口调用票据,5 分钟内有效,仅可调用一次网站应用接口

# 第二步:在页面内嵌入 OpenSDK

在应用 appid 所属的网页中,通过 script 标签引用如下 JS 文件(需 https):

https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxopensdk.js

注意事项:

  1. OpenSDK 的技术实现需嵌入一个 https://open.weixin.qq.com 源的 iframe,请确保 frame-src 等设置满足要求。
  2. 请确保没有开启全局代理配置,否则可能会导致接口调用失败。

# 第三步:调用网页 OpenSDK 接口

获取到 ticket 后,携带 ticket 参数,调用 wxopensdk 下挂载的方法发起拉起请求。 此处需等待 wxopensdk 加载完成再发起请求。此处使用拉起 PC 小程序能力进行举例:

function dosomething() {
  wxopensdk.launchMiniProgram({
    appid: "网站应用appid",
    userName: "需拉起的小程序 userName",
    path: "",
    ticket: "申请到的 ticket",
  });
}

if (wxopensdk.ready) {
  dosomething();
} else {
  wxopensdk.onReady = dosomething;
}

# 4、接口说明

# 返回值格式定义

接口均会返回 Promise,Promise 对象中包含以下参数:

名称 类型 说明
errcode number 错误码
errmsg string 错误说明

# errcode 说明

code 描述
0 正常触发操作
1 当前 sdk 运行环境不合法
2 网络错误
3 ticket 错误
4 请求参数格式错误
5 后台异常
6 操作超时
7 未知错误
8 超过频率限制
-11028 接口名错误
-11029 ticket 错误
-11032 请求域名错误,请检查业务域名是否已在 open 登记
-11033 需要 https 页面
-11034 当前接口无权限,请检查是否已在 open 开通相关功能权限
-11035 当前接口请求类型错误
-11036 当前微信客户端版本不支持该接口

# 接口频率限制

OpenSDK 的所有接口,共享频率限制,以保障用户体验。目前限制规则:

  1. 每秒钟只允许调用 1 次 OpenSDK 接口。
  2. 每分钟内,只允许调用 5 次 OpenSDK 接口。

超过限制将会返回特定 errmsg。