# 扫码接口

小程序开发者工具是对微信客户端的模拟，受限于桌面设备同移动设备的差异，以及微信的一些特有数据，同时考虑到开发的便捷性，部分 API 在工具和微信中有所不同。

## 扫码接口

同手机端直接调用摄像头来扫码不同，在 PC 或者 Mac 上调用摄像头来扫码完成调试是一个低效的行为，所以在开发工具上调用二维码扫码 API 后，开发者可以选择一个本地的图片来进行后续的逻辑调试，而不是真正的启用摄像头来扫码，流程有所不同，但是接口的输入和输出是一致的。

## 微信支付

最新版本的开发者工具已经支持微信支付的调试，但是为了兼顾到安全，同手机上直接调用微信支付有所不同：

- 新绑定的开发者需要 24 小时后才有权限进行微信支付的调试
- 开发者在工具上调用微信支付的 API 后，开发工具会出现一个二维码，开发者必须使用当前开发所使用的微信号扫码后在手机上完成支付的流程
- 工具会同步移动端微信支付的回包到工具中，开发者自行进行后续的操作

使用的交互有所不同，但是接口的输入输出工具同客户端是保持一致的。

## 启动使用自定义参数

在日常使用中，用户可以通过扫码、分享打开一个小程序，这时候会依据设置的启动页面：`path` 跳转到对应的小程序页面（不一定是首页）并且可以携带参数：`query`。在开发者工具中，开发者同样可以通过自定义编译条件的方式来达到调试不同启动页面和启动参数的目的。

例如下图是选择进入页面是 `page/API/index`，参数 是 `name=can`

![args](https://res8.wxqcloud.qq.com.cn/wxdoc/b8080a91-9d64-41b7-a28d-3156391024a3.png)

## 进入场景值

在微信客户端中，用户可能在各个场景下打开小程序 [详情](/miniprogram/dev/framework/app-service/scene.md#场景值) ，然而在开发者工具中是没有真实的环境去模拟这些场景的。开发者可以通过条件编译的方式来达到调试不同场景的目的。

![sence](https://res8.wxqcloud.qq.com.cn/wxdoc/7f93234d-3293-4637-b2c9-f9ae6fd8640a.png)

## 普通的转发

开发者工具上调用转发是一个模拟的行为，并不会真实的转发给用户，开发可以通过这个模拟行为判断是否正确的调用了转发 API。

## 带群信息的转发
在开发者工具调试 [wx.getGroupEnterInfo](/miniprogram/dev/api/open-api/group/wx.getGroupEnterInfo.md) 接口，需要设置当前小程序的场景值为群聊的场景即可，如 `1158 群工具打开小程序` 的场景值。

可在开发者工具新增编译模式，设置进入的场景值为群聊的场景值如 1158，以及选择模拟进入的群。使用该模式加载进入小程序，即可调试调用 [wx.getGroupEnterInfo](/miniprogram/dev/api/open-api/group/wx.getGroupEnterInfo.md) 接口。
![](https://res8.wxqcloud.qq.com.cn/wxdoc/a19f0cce-3d26-4884-bc9c-094964564a1b.png)

### 示例代码
```js
wx.getGroupEnterInfo({
  success: (result) => {
    console.log('success', result)
  },
  fail: (result) => {
    console.log('fail', result)
  },
})
```
## 带 shareTicket 的转发

带 `shareTicket` 的转发可以获取到更多的转发信息，例如群聊的名称以及群的标识 `openGId`。在小程序开发者工具上，开发者可以通过以下方式来调试带 `shareTicket` 的转发。

调用 [wx.showShareMenu](/miniprogram/dev/api/share/wx.showShareMenu.md) 的参数 `withShareTicket` 为 `true` 时，点击模拟器右上角菜单后出现的转发按钮，会出现一个测试群列表，如图：

![withShareTicket](https://res8.wxqcloud.qq.com.cn/wxdoc/9ebdcc61-6011-453b-b727-348624a8484b.png)

开发者点击选取任何一个群，可以通过接口的回包获取到 `shareTicket` ，通过调用 [wx.getShareInfo](/miniprogram/dev/api/share/wx.getShareInfo.md) 可以获取到相关转发的信息

当开发者需要调试从某一个群点开，并且带有 `shareTicket` 的场景时，可以使用自定义编译中的 `1044:群聊会话中的小程序消息卡片（带 shareTicket）` 同时可以选择任一模拟测试群，如图

![withShareTicket](https://res8.wxqcloud.qq.com.cn/wxdoc/8c60417b-e4e1-422f-b364-6327d5b7034b.png)

## 预览使用自定义编译条件

同 **启动使用自定义参数** 相同，提交预览时，开发者可以通过自定义预览的方式来达到在移动设备上调试不同启动页面和启动参数 的目的。我们可以选择已经创建好的自定义编译条件进行预览。

## 跳转小程序调试支持

小程序跳转开发调试可以分为两个部分

### 调试小程序是否能够正确的跳转

出于小程序代码的安全考虑，在工具上调用 [wx.navigateToMiniProgram](/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.md) 的时候，开发者工具不会真实的打开和跳转到另外的小程序，但是工具会判断当前小程序与需要跳转的小程序之间的绑定关系，输出相关信息给到开发者。开发者可以根据成功或者失败的回调函数来判断调用是否成功。

### 调试被打开的小程序时候正确的接收参数

选择 **自定义编译** 进入场景选择 **1037 从小程序进入** 可以调试小程序被打开时候是否接收到了正确的参数并做了相关处理。

![navigateToMiniProgram](https://res8.wxqcloud.qq.com.cn/wxdoc/abde99ee-15e5-4850-9fa0-ecce28bfd7fa.png)

选择 **自定义编译** 进入场景选择  **1038 从小程序返回** 可以调试小程序返回时候是否接收到了正确的参数并做了相关处理。

![navigateToMiniProgram](https://res8.wxqcloud.qq.com.cn/wxdoc/e6487747-f3b6-4561-95d6-754334e274e6.png)

## 小程序链接相关的调试处理

小程序链接包含 [URL Scheme](/miniprogram/dev/framework/open-ability/url-scheme.md)、[URL  Link](/miniprogram/dev/framework/open-ability/url-link.md)、[Short Link](/miniprogram/dev/framework/open-ability/shortlink.md)。要调试点击了这些链接进入小程序的情况或者调试链接本身携带的路径、参数是否正确，可以按如下方法调试。

添加编译模式的时候，可以选择 **添加方式**，可以选择解析「URL Scheme」、「URL Link」、「Short Link」或者小程序二维码

![](https://res8.wxqcloud.qq.com.cn/wxdoc/325262d8-29f6-495e-b578-8be815afc323.png)

解析具体的小程序链接可以获得链接所包含的具体的页面路径和参数，同时也会自动填上相应的场景值供开发者调试。 **注意，填入的链接指向的小程序appid需要和当前开发调试的小程序appid一致，否则会解析失败。**

![](https://res8.wxqcloud.qq.com.cn/wxdoc/33404483-b45e-4148-a5b1-0d46b52ed768.png)

## 聊天工具调试
最新版本的开发者工具已经支持聊天工具的调试，具体方式为选择聊天工具的页面之后选择聊天工具的小程序模式

![](https://res8.wxqcloud.qq.com.cn/wxdoc/a4a75a49-a308-40e9-b0d8-479c1c36d7cd.png)
