
# EmblemScanner 微信小程序扫码验证模块

## Release notes
- Version 1.0.1: initial release
- Version 1.1.0: sub package support


## 概述

EmblemScanner 是一个专为微信小程序设计的二维码扫描验证模块，集成了先进的 AI 图像识别技术和二维码检测算法，能够快速准确地识别和验证二维码。

## 集成方式和接口

### 调用参数

| 参数 | 说明 | 示例值 |
|------|------|--------|
| return_page | 扫描完成后跳转的页面路径 | `/pages/scan_result/scan_result` |

### 扫描结果

扫描成功后，模块会跳转到指定的 return_page，携带以下参数：
- `ok=1` - 扫描成功
- `qr_code` - 二维码内容
- `serial_code` - 验证序列号（如有）

扫描失败时：
- `ok=0` - 扫描失败

### 依赖要求

- 相机权限
- 网络访问权限（连接 themblem.com API等）

## 使用步骤

### 1. 项目准备
创建 JS 版小程序项目。

### 2. 文件部署
解压 emblemscanner 代码到小程序项目目录。

```
pages/emblemscanner/
├── assets/              # 静态资源
├── emblemscanner.json   # 页面配置
├── emblemscanner.wxml   # 页面结构
├── emblemscanner.wxss   # 样式文件
├── emblemscanner.js     # 主页面逻辑
├── libemblemscanner.js  # 核心库
├── qrprocessor.js       # 二维码处理器
├── qrtool.wx.js         # 二维码工具
├── qrtool.wx.wasm.br    # WebAssembly 二进制
├── upload.js            # 上传模块
└── worker/              # Worker 线程
```

### 3. 项目配置

在 `app.json` 中添加页面和 worker 配置：

```json
{
  "pages": [
    "pages/index/index",
    "pages/emblemscanner/emblemscanner",
    "pages/logs/logs"
  ],
  "workers": "pages/emblemscanner/worker"
}
```

### 4. 域名配置

参考[微信小程序网络配置指南](https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html)，在小程序后台配置合法域名：

- `themblem.com`

### 5. 扫码调用

#### 跳转到扫码页面：
```javascript
navigateToScanner() {
  wx.navigateTo({
    url: '/pages/emblemscanner/emblemscanner?return_page=/pages/scan_result/scan_result'
  })
}
```

#### 处理扫码结果：
```javascript
onLoad(options) {
  var verify_ok = options['ok'];        // ok == 1表示验证通过
  var qr_code = options['qr_code'];     // 二维码内容
  var serial_code = options['serial_code']; // 序列码

  this.setData({
    verify_ok,
    qr_code,
    serial_code,
  })
}
```