diff --git a/codes/agent/game-docker/.env.example b/codes/agent/game-docker/.env.example index cd44c0f..65dda7b 100644 --- a/codes/agent/game-docker/.env.example +++ b/codes/agent/game-docker/.env.example @@ -106,7 +106,7 @@ DLWEB_PORT=8082 # 所有子域名由 docker-compose.yml 从 ROOT_DOMAIN 自动拼接,无需单独配置: # api.ROOT_DOMAIN API 服务 # dlapi.ROOT_DOMAIN 代理管理后台 -# wxapi.ROOT_DOMAIN 微信小程序 +# api.ROOT_DOMAIN API 服务(含 wxserver /wx/ 路由) # api2.ROOT_DOMAIN API2 服务 # sdk.ROOT_DOMAIN SDK 域名 # open.ROOT_DOMAIN 活动/图片资源 diff --git a/codes/agent/game-docker/.gitattributes b/codes/agent/game-docker/.gitattributes index 47a5fb6..c29a205 100644 --- a/codes/agent/game-docker/.gitattributes +++ b/codes/agent/game-docker/.gitattributes @@ -1,17 +1,17 @@ -# Docker 项目中所有脚本和配置文件必须使用 LF 行尾符,否则容器中无法正常工作 -*.sh text eol=lf -*.php text eol=lf -*.conf text eol=lf -*.yml text eol=lf -*.yaml text eol=lf -*.env text eol=lf -*.sql text eol=lf -*.ini text eol=lf -*.json text eol=lf -*.js text eol=lf -*.html text eol=lf -*.css text eol=lf -*.xml text eol=lf -*.htaccess text eol=lf -Dockerfile text eol=lf -docker-compose*.yml text eol=lf +# Docker 项目中所有脚本和配置文件必须使用 LF 行尾符,否则容器中无法正常工作 +*.sh text eol=lf +*.php text eol=lf +*.conf text eol=lf +*.yml text eol=lf +*.yaml text eol=lf +*.env text eol=lf +*.sql text eol=lf +*.ini text eol=lf +*.json text eol=lf +*.js text eol=lf +*.html text eol=lf +*.css text eol=lf +*.xml text eol=lf +*.htaccess text eol=lf +Dockerfile text eol=lf +docker-compose*.yml text eol=lf diff --git a/codes/agent/game-docker/README.md b/codes/agent/game-docker/README.md index 68f80eb..39c90b9 100644 --- a/codes/agent/game-docker/README.md +++ b/codes/agent/game-docker/README.md @@ -1,1484 +1,1659 @@ -# YouleGames Docker 部署版 - -> 原项目 `codes/agent/game` 的 Docker 化改造,所有硬编码域名/IP/密码已外部化为环境变量,通过单一 `.env` 文件控制所有配置。 - ---- - -## 目录结构 - -``` -game-docker/ -├── .env.example # 环境变量模板(部署时复制为 .env) -├── docker-compose.yml # Docker Compose 编排(8 个服务) -├── deploy.sh # 一键部署脚本 -├── init-ssl.sh # SSL 证书首次申请脚本 -├── env_config.php # PHP 环境变量加载器(api/ 和 dlweb/ 共用) -├── api/ # 网站1: 游戏核心 API 服务源码 -├── dlweb/ # 网站2: 代理管理后台源码 -├── wxserver_daoqi/ # 网站3: 微信小程序后端源码 -├── docker/ -│ ├── nginx/ -│ │ ├── default.conf.template # Nginx 配置模板(envsubst 动态域名注入) -│ │ └── ssl-params.conf # SSL 安全参数 -│ ├── api/ -│ │ ├── Dockerfile # API 镜像(PHP 8.1 + Apache) -│ │ └── docker-entrypoint.sh # 启动时 sed 替换 JS 中硬编码域名 -│ ├── dlweb/ -│ │ ├── Dockerfile # DLWEB 镜像(PHP 8.1 + Apache + Redis ext) -│ │ └── docker-entrypoint.sh # 启动时 sed 替换 JS/HTML 中硬编码域名 -│ ├── wxserver/ -│ │ └── Dockerfile # wxserver 镜像(Node.js 18 Alpine) -│ ├── syncjob/ -│ │ └── sync.sh # Synchronize.php 轮询脚本(每 30s) -│ ├── cronjob/ -│ │ ├── entrypoint.sh # cron 容器入口 -│ │ └── daily-task.sh # 每日定时任务(替代 autorun.cmd) -│ └── certbot/ # SSL 证书相关 -└── game/ # 原始未修改代码备份(不参与部署) -``` - ---- - -## 整体架构 - -``` - 互联网 - │ - ┌──────┴──────┐ - │ Nginx │ ← SSL 终端 + 域名路由 - │ :80 :443 │ 域名通过 .env 注入 - └──┬───┬───┬─┘ - ┌───────────┤ │ ├───────────┐ - ▼ ▼ │ ▼ │ - ┌────────────┐ ┌────────┴──┐ ┌──────────┐ - │ API │ │ DLWEB │ │ wxserver │ - │ PHP 8.1 │ │ PHP 8.1 │ │ Node.js │ - │ Apache │ │ Apache │ │ :3000 │ - └─────┬──────┘ └─────┬─────┘ └──────────┘ - │ │ - │ ┌─────────┤ Docker 内网 (youle-net) - │ │ │ - │ ▼ │ - │ ┌──────────┐ │ ┌───────────┐ ┌───────────┐ - │ │ syncjob │◄┼────►│ cronjob │ │ certbot │ - │ │ 每30s轮询 │ │ │ 每日4:00 │ │ 12h续签 │ - │ └──────────┘ │ └───────────┘ └───────────┘ - │ │ - ▼ ▼ - ┌──────────────────────────┐ ┌──────────┐ - │ MySQL (阿里云 RDS) │ │ Redis │ - │ 多实例:agent_db / │ │ :6379 │ - │ game_db / grade_db │ └──────────┘ - └──────────────────────────┘ -``` - -### 服务清单(8 个容器) - -| 容器名 | 镜像 | 作用 | 端口 | -|--------|------|------|------| -| `youle-nginx` | nginx:alpine | SSL 终端 + 域名路由反向代理 | 80, 443 | -| `youle-api` | php:8.1-apache (自定义) | 游戏核心 API(登录/支付/SDK) | 8081 (内部) | -| `youle-dlweb` | php:8.1-apache (自定义) | 代理管理后台 | 8082 (内部) | -| `youle-wxserver` | node:18-alpine (自定义) | 微信小程序后端 | 3000 (内部) | -| `youle-syncjob` | alpine:3.19 | 每 30s POST `Synchronize.php`(数据同步) | 无 | -| `youle-cronjob` | alpine:3.19 | 每日凌晨 4:00 执行报表同步 | 无 | -| `youle-redis` | redis:7-alpine | 缓存服务(可选) | 6379 (内部) | -| `youle-certbot` | certbot/certbot | Let's Encrypt SSL 证书自动续签 | 无 | - ---- - -## 快速部署 - -### 前置要求 - -- Linux 服务器(推荐 Ubuntu 22.04 / CentOS 8+,最低 2C 2G) -- 域名已解析到服务器 IP(3 个域名:API / DLWEB / wxserver) -- 服务器 80 和 443 端口可用 -- Docker 和 Docker Compose(如未安装,`deploy.sh` 会自动安装并配置国内镜像加速) - ---- - -### 0. 配置 SSH 密钥认证(必须) - -`sync.ps1` 每次执行会调用多次 `scp` / `ssh`,如果未配置密钥认证,每条命令都会弹出密码提示导致脚本中断。以下步骤在 **Windows PowerShell** 中完成(Windows 10/11 内置 OpenSSH 客户端,无需额外安装)。 - -#### 第一步:检查是否已有 SSH 密钥 - -```powershell -# 默认密钥路径 -Test-Path "$env:USERPROFILE\.ssh\id_ed25519" -# 输出 True 表示已有密钥,可跳到第三步 -``` - -如果已有 RSA 旧密钥(`id_rsa`),同样可用,把下面命令中的 `id_ed25519` 替换为 `id_rsa`。 - -#### 第二步:生成密钥对 - -```powershell -# 生成 Ed25519 密钥(更安全、更短) -ssh-keygen -t ed25519 -C "youle-deploy" -f "$env:USERPROFILE\.ssh\id_ed25519" -# 提示 passphrase 时直接回车两次(不设密码,脚本才能自动运行) -``` - -执行后生成两个文件: - -| 文件 | 说明 | -|------|------| -| `~/.ssh/id_ed25519` | **私钥**,绝不上传服务器,本地保管 | -| `~/.ssh/id_ed25519.pub` | **公钥**,要发给服务器 | - -#### 第三步:将公钥上传到服务器 - -> 此步骤会要求输入一次密码,之后不再需要。 - -```powershell -# 一行命令:读取公钥 → 追加到服务器 authorized_keys -cat "$env:USERPROFILE\.ssh\id_ed25519.pub" | ssh root@47.98.203.17 ` - "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys" -``` - -#### 第四步:验证免密登录 - -```powershell -# 直接登录,不弹密码提示则成功 -ssh root@47.98.203.17 "echo 'SSH key auth OK'" -``` - -输出 `SSH key auth OK` 即表示配置成功,`sync.ps1` 可正常使用。 - -#### 可选:配置 SSH 别名(简化命令) - -在 `C:\Users\<你的用户名>\.ssh\config`(文件不存在则新建)中添加: - -``` -Host youle - HostName 47.98.203.17 - User root - IdentityFile ~/.ssh/id_ed25519 - ServerAliveInterval 60 -``` - -配置后可使用短名称操作: - -```powershell -ssh youle # 直接登录 -# sync.ps1 使用别名 -.\sync.ps1 -Server youle -``` - -#### 可选:多台电脑共用同一台服务器 - -把每台电脑生成的 `id_ed25519.pub` 内容都追加到服务器的 `~/.ssh/authorized_keys`(一行一个),不需要删除旧的公钥: - -```powershell -# 在第二台电脑上执行同样的上传命令即可(>> 追加而不是覆盖) -cat "$env:USERPROFILE\.ssh\id_ed25519.pub" | ssh root@47.98.203.17 ` - "cat >> ~/.ssh/authorized_keys" -``` - ---- - -### 1. 上传项目到服务器 - -将 `game-docker` 目录上传到服务器 `/opt/youle/` 下: - -```powershell -# 推荐:使用 sync.ps1(tar 压缩单连接,比 scp -r 快约 10-50 倍) -# 首次部署用 full 模式,上传全部文件(约 10 MB 压缩包) -.\sync.ps1 -Mode full - -# 日常代码更新用 app 模式(排除文档/测试,约 7 MB) -.\sync.ps1 - -# 仅更新 Docker 配置文件(docker-compose.yml、deploy.sh 等,不到 1 MB) -.\sync.ps1 -Mode config -``` - -> **前提:** 已完成步骤 0 的 SSH 密钥认证配置,否则 `sync.ps1` 会反复弹密码提示。 - -`sync.ps1` 会自动在服务器上创建 `/opt/youle/game-docker/` 目录(如不存在)。 - -如不使用 `sync.ps1`,也可手动上传: - -```bash -# 从 Git 仓库拉取 -ssh root@your-server-ip -mkdir -p /opt/youle -cd /opt/youle -git clone <仓库地址> game-docker -``` - -上传后服务器上的目录结构: - -``` -/opt/youle/game-docker/ -├── .env.example -├── docker-compose.yml -├── deploy.sh -├── init-ssl.sh -├── api/ -├── dlweb/ -├── wxserver_daoqi/ -└── docker/ -``` - -### 2. 准备环境变量 - -```bash -cd /opt/youle/game-docker -cp .env.example .env -vim .env -``` - -**必须修改的关键配置:** - -```bash -# 父域名(三个子域名自动推导,无需单独配置) -# 将自动生成: api. dlapi. wxapi. -ROOT_DOMAIN=yourdomain.com - -# 数据库(各服务数据库连接) -API_DB_HOST=your-rds-host -API_DB_PASSWORD=your-password -DLWEB_DB_HOST=your-rds-host -DLWEB_DB_PASSWORD=your-password -# ... 其他数据库配置 - -# 微信配置 -WX_MINI_APPID=your-appid -WX_MINI_APPSECRET=your-secret -WX_PAY_MCHID=your-mchid -WX_PAY_KEY=your-key - -# SSL 邮箱 -SSL_EMAIL=your-email@example.com -``` - -### 3. 首次申请 SSL 证书 - -```bash -chmod +x deploy.sh init-ssl.sh - -# 先测试(不真正申请,验证域名解析是否正确) -./deploy.sh ssl-init --dry-run - -# 正式申请 -./deploy.sh ssl-init -``` - -### 4. 启动所有服务 - -```bash -./deploy.sh up -``` - -启动后验证: - -```bash -# 查看所有容器状态 -./deploy.sh status - -# 查看特定服务日志 -./deploy.sh logs api -./deploy.sh logs dlweb -./deploy.sh logs syncjob -./deploy.sh logs cronjob -``` - -### 5. 部署命令速查 - -| 命令 | 说明 | -|------|------| -| `./deploy.sh up` | 构建并启动所有服务 | -| `./deploy.sh down` | 停止并移除所有容器 | -| `./deploy.sh restart` | 重启所有服务 | -| `./deploy.sh rebuild` | 无缓存重建所有镜像 | -| `./deploy.sh rebuild api` | 只重建指定服务 | -| `./deploy.sh logs [service]` | 查看日志(支持 `-f` 实时跟踪) | -| `./deploy.sh status` | 查看容器运行状态 | -| `./deploy.sh ssl-init` | 首次申请 SSL 证书 | -| `./deploy.sh ssl-init --staging` | 用 Let's Encrypt 测试环境申请 | -| `./deploy.sh ssl-renew` | 手动续签证书 | -| `./deploy.sh ssl-status` | 查看证书到期时间 | - ---- - -## 定时任务说明 - -Docker 部署包含两个定时任务容器,替代原 Windows 环境的 `HttpRequestService.exe` 和 `autorun.cmd`。 - -### syncjob — 实时同步任务 - -**替代:** Windows `HttpRequestService.exe`(通过 `HttpRequest.exe.json` 配置) - -**作用:** 每 30 秒 POST 请求 `dlweb/ext/Synchronize.php`,从游戏数据库 `ct_user_process_log` 表消费未处理日志,将玩家/代理数据同步到代理后台数据库。 - -**运行方式:** 通过 Docker 内网直连 `http://dlweb/ext/Synchronize.php`,不经过公网域名,零流量消耗。 - -**可配置项(`.env`):** - -```bash -# 轮询间隔(秒),默认 30 -SYNC_INTERVAL=30 - -# 每次处理的日志条数,默认 200 -SYNC_PROCESSCOUNT=200 -``` - -**查看同步日志:** - -```bash -./deploy.sh logs syncjob -# 或实时查看 -docker logs -f youle-syncjob -``` - -### cronjob — 每日定时任务 - -**替代:** Windows 计划任务调用的 `tools-docker/autorun.cmd` - -**作用:** 每日凌晨 4:00 执行以下流程(与原 `autorun.cmd` 完全一致): - -| 步骤 | 原 autorun.cmd | Docker cronjob | -|------|---------------|----------------| -| 1. 停止同步服务 | `net stop HttpRequestService` | 创建 `/shared/syncjob.pause` 信号文件 | -| 2. 等待当前请求完成 | (Windows 服务立即停止) | `sleep 5` | -| 3. 同步报表数据 | `HttpRequest.exe POST SynchronizeReportData.php` | `curl POST http://dlweb/ext/SynchronizeReportData.php` | -| 4. 恢复同步服务 | `net start HttpRequestService` | 删除 `/shared/syncjob.pause` 信号文件 | - -> **暂停机制:** `syncjob` 和 `cronjob` 通过共享 Docker volume(`shared-signal`)通信。`cronjob` 创建 `/shared/syncjob.pause` 文件时,`syncjob` 会自动跳过轮询,报表同步完成后删除该文件恢复。 - -**可配置项(`.env`):** - -```bash -# cron 表达式,默认凌晨 4:00 -CRON_SCHEDULE=0 4 * * * -``` - -**修改执行时间示例:** - -```bash -# 凌晨 3:30 执行 -CRON_SCHEDULE=30 3 * * * - -# 每天凌晨 2:00 和 14:00 各执行一次 -CRON_SCHEDULE=0 2,14 * * * -``` - -**查看执行日志:** - -```bash -./deploy.sh logs cronjob -# 或实时查看 -docker logs -f youle-cronjob -``` - -**手动触发(测试用):** - -```bash -docker exec youle-cronjob /bin/sh /app/daily-task.sh -``` - ---- - -## 环境变量说明 - -所有硬编码的域名、数据库地址、密钥都已外部化为环境变量。**修改配置不再需要改代码,只需改 `.env` 文件。** - -### 变量分组总览 - -| 变量分组 | 说明 | -|---------|------| -| `API_DB_*` | 游戏核心 API 数据库 | -| `DLWEB_DB_*` | 代理后台主库 | -| `DLWEB_SLAVE_DB_*` | 代理后台从库 | -| `EXT_GAME_DB_*` | 外部游戏数据库(Synchronize / SynchronizeReportData) | -| `EXT_GRADE_DB_*` | 战绩数据库(game.php) | -| `EXT_DEV_DB_*` | 开发数据库(DEBUG 模式) | -| `REDIS_*` | Redis 配置 | -| `WX_MINI_*` | 微信小程序 AppID / Secret | -| `WX_OA_*` | 微信公众号 AppID / Secret | -| `WX_PAY_*` | 微信支付商户配置 | -| `REMOTE_CONFIG_*` | 远程配置(Gitee) | -| `ROOT_DOMAIN` | 父域名(自动推导 3 个子域名 + 所有派生 URL) | -| `SITE_*` | PHP 后端各站点域名 | -| `DLWEB_*_URL` | 前端 JS/HTML 硬编码域名替换 | -| `SYNC_INTERVAL` / `SYNC_PROCESSCOUNT` | syncjob 同步参数 | -| `CRON_SCHEDULE` | cronjob 执行时间 | -| `GAME_SERVER_QUERY_URL` | 游戏服务器查询地址 | -| `INTERNAL_WHITELIST` | IP 白名单(逗号分隔) | - -### 域名配置关系 - -``` -.env 配置 │ 自动推导结果 -─────────────────────┼────────────────────────────────────────────────────── -ROOT_DOMAIN │ API_DOMAIN = api. → Nginx 网站1 -(唯一必填) │ DLWEB_DOMAIN = dlapi. → Nginx 网站2 - │ WX_DOMAIN = wxapi. → Nginx 网站3 - │ SITE_API_URL = https://api. - │ SITE_PAY_NOTIFY_URL = https://api. - │ SITE_OPEN_URL = http://open. - │ DLWEB_DL_API_V3_URL = https://dlapi. -``` - -> 推导由 `docker-compose.yml` 的 `environment:` 块完成,容器内所有派生变量均无需手动配置。如子域名不符合 `<前缀>.` 规律,可在 `.env` 中单独覆盖对应变量。 - ---- - -## 环境变量加载机制 - -### PHP 服务(env_config.php) - -所有 PHP 文件通过 `env($key, $default)` 函数读取配置: - -```php -// 优先读 OS 环境变量(Docker 场景),回退读 .env 文件 -$host = env('API_DB_HOST', 'localhost'); -``` - -加载优先级:Docker 容器环境变量(`docker-compose env_file`)> `.env` 文件 > 代码默认值。 - -### Node.js 服务(wxserver_daoqi) - -直接使用 `process.env.VARIABLE_NAME`,由 `docker-compose env_file` 注入。 - -### 前端 JS / HTML - -前端静态文件无法读取环境变量,通过 Docker entrypoint 脚本在容器启动时用 `sed` 替换硬编码域名: - -- `docker/api/docker-entrypoint.sh` — 替换 API 服务中的 JS 文件 -- `docker/dlweb/docker-entrypoint.sh` — 替换 DLWEB 服务中的 30+ 个 JS/HTML 文件 - -### Nginx 域名注入 - -`default.conf.template` 使用 `${API_DOMAIN}` / `${DLWEB_DOMAIN}` / `${WX_DOMAIN}` 占位符,Nginx 容器启动时通过 `envsubst` 自动替换。 - ---- - -## SSL 证书管理 - -使用 Let's Encrypt 免费证书,由 `certbot` 容器自动管理。 - -```bash -# 首次申请(必须先确保域名已解析) -./deploy.sh ssl-init - -# 用测试环境验证(不消耗申请限额) -./deploy.sh ssl-init --staging - -# 手动续签 -./deploy.sh ssl-renew - -# 查看证书状态 -./deploy.sh ssl-status -``` - -`certbot` 容器每 12 小时自动检查续签,证书到期前 30 天自动更新,无需人工干预。 - ---- - -## 数据持久化 - -以下 Docker volume 用于持久化存储: - -| Volume | 挂载点 | 说明 | -|--------|--------|------| -| `api-logs` | /var/www/html/logs | API 服务日志 | -| `api-source-logs` | /var/www/html/source/logs | API source 模块日志 | -| `dlweb-logs` | /var/www/html/api/logs | DLWEB 服务日志 | -| `dlweb-debug` | /var/www/html/api/ext/debug | DLWEB 同步/报表调试日志 | -| `redis-data` | /data | Redis 持久化数据 | -| `shared-signal` | /shared | syncjob ↔ cronjob 暂停信号文件 | -| `certbot-webroot` | /var/www/certbot | ACME 域名验证文件 | -| `certbot-certs` | /etc/letsencrypt | SSL 证书文件 | - ---- - -## 与原版(Windows 部署)的区别 - -| 项目 | 原版 Windows | Docker 版 | -|------|-------------|-----------| -| 环境 | Windows + Apache/XAMPP + Node.js | Docker 容器化 | -| 配置方式 | 硬编码在 PHP/JS/HTML 中 | 统一 `.env` 文件 | -| 域名切换 | 需改 30+ 个文件 | 只改 `.env` 的 3 个域名变量 | -| 数据库密码 | 明文散布在多个配置文件 | 集中在 `.env`(不进版本库) | -| SSL | 手动申请/部署证书 | certbot 自动申请 + 12h 自动续签 | -| Synchronize 轮询 | `HttpRequestService.exe`(Windows 服务) | `syncjob` 容器(Alpine + curl) | -| 每日定时任务 | Windows 计划任务 → `autorun.cmd` | `cronjob` 容器(Alpine crond) | -| 内网请求 | `localhost:80`(同机 Apache) | Docker 内网 `http://dlweb`(零公网流量) | -| PHP 环境变量 | `env_config.php` `env()` 函数 | `env()` 优先读容器环境变量,回退 `.env` 文件 | -| 微信支付配置 | 硬编码在 `WxPay.Config.php` | `define()` + class const,由 `env()` 动态读取 | -| 游戏服务器列表 | 硬编码在 `game.config.php` | 支持外部 JSON 文件覆盖(`GAME_SERVERS_CONFIG_FILE`) | - ---- - -## 常见运维操作 - -### 场景一:更换域名 - -当需要将服务迁移到新域名时(例如 `daoqijuyou.cn` → `newdomain.com`),只需改一个变量: - -**1. 修改 `.env` 中的 `ROOT_DOMAIN`** - -```bash -vim .env -``` - -```bash -# 改成新父域名,三个子域名自动跟随 -ROOT_DOMAIN=newdomain.com -``` - -`docker-compose.yml` 将自动推导: - -| 推导变量 | 结果 | -|---------|------| -| `API_DOMAIN` | `api.newdomain.com` | -| `DLWEB_DOMAIN` | `dlapi.newdomain.com` | -| `WX_DOMAIN` | `wxapi.newdomain.com` | -| `SITE_API_URL` | `https://api.newdomain.com` | -| `SITE_PAY_NOTIFY_URL` | `https://api.newdomain.com` | -| `SITE_OPEN_URL` | `http://open.newdomain.com` | -| `DLWEB_DL_API_V3_URL` | `https://dlapi.newdomain.com` | - -> **子域名不符合标准规律时**(如使用完全不同的前缀),在 `.env` 中单独覆盖对应变量即可,优先级高于自动推导: -> ```bash -> DLWEB_DOMAIN=dl-manage.newdomain.com # 覆盖单个子域名 -> ``` - -> **其他独立 URL 变量**(`DLWEB_SETTLE_URL`、`DLWEB_PROXY_URL`、`QQ_CALLBACK_URL` 等)仍需在 `.env` 中手动配置,详见 `.env.example` 中的注释。 - -**2. DNS 解析** - -确保新域名已指向服务器 IP: - -```bash -# 验证 DNS 解析 -nslookup api.newdomain.com -nslookup dlapi.newdomain.com -nslookup wxapi.newdomain.com -``` - -**3. 重新申请 SSL 证书** - -```bash -# 测试验证(不消耗申请限额) -./deploy.sh ssl-init --staging - -# 正式申请 -./deploy.sh ssl-init -``` - -**4. 重启所有服务** - -```bash -./deploy.sh restart -``` - -重启时会自动完成: -- Nginx 使用新域名的 `server_name` 和 SSL 证书 -- `docker-entrypoint.sh` 用新域名替换 JS/HTML 中的硬编码 URL -- PHP `env()` 读取新的环境变量值 - -**5. 更新微信后台配置** - -| 微信后台 | 配置项 | 新值 | -|---------|--------|------| -| 小程序后台 | request 合法域名 | `https://wxapi.newdomain.com` | -| 小程序后台 | 业务域名 | `wxapi.newdomain.com` | -| 公众号后台 | 业务域名 / JS接口安全域名 | `api.newdomain.com` | -| 公众号后台 | 网页授权域名 | `wxapi.newdomain.com` | -| 微信支付后台 | 支付授权目录 | `https://dlapi.newdomain.com/` | - ---- - -### 场景二:更换数据库地址 - -当数据库实例迁移(例如 RDS 升级、切换区域)时: - -**1. 修改 `.env` 中对应的数据库变量** - -```bash -vim .env -``` - -按数据库分组: - -| 数据库 | 需修改的变量 | 使用者 | -|--------|-------------|--------| -| API 主库 | `API_DB_HOST`, `API_DB_PORT`, `API_DB_USER`, `API_DB_PASSWORD` | api 服务 | -| 代理后台主库 | `DLWEB_DB_HOST`, `DLWEB_DB_PORT`, `DLWEB_DB_USER`, `DLWEB_DB_PASSWORD` | dlweb 服务 | -| 代理后台从库 | `DLWEB_SLAVE_DB_HOST`, `DLWEB_SLAVE_DB_PORT`, `DLWEB_SLAVE_DB_USER`, `DLWEB_SLAVE_DB_PASSWORD` | dlweb 读操作 | -| 外部游戏库 | `EXT_GAME_DB_HOST`, `EXT_GAME_DB_PORT`, `EXT_GAME_DB_USER`, `EXT_GAME_DB_PASSWORD` | Synchronize.php / SynchronizeReportData.php | -| 战绩库 | `EXT_GRADE_DB_HOST`, `EXT_GRADE_DB_PORT`, `EXT_GRADE_DB_USER`, `EXT_GRADE_DB_PASSWORD` | game.php 查询战绩 | -| 开发库 | `EXT_DEV_DB_HOST`, `EXT_DEV_DB_PORT`, `EXT_DEV_DB_USER`, `EXT_DEV_DB_PASSWORD` | DEBUG 模式 | - -**2. 重启受影响的服务** - -```bash -# 如果只改了 API 数据库 -docker compose restart api - -# 如果只改了 DLWEB 数据库 -docker compose restart dlweb - -# 如果改了外部游戏库(影响同步任务) -docker compose restart dlweb syncjob cronjob - -# 如果改了多个,直接全部重启 -./deploy.sh restart -``` - -**3. 验证连接** - -```bash -# 查看 API 日志是否有数据库连接错误 -docker logs --tail 20 youle-api - -# 查看 DLWEB 日志 -docker logs --tail 20 youle-dlweb - -# 查看同步任务是否正常 -docker logs --tail 10 youle-syncjob -``` - -> **提示:** 如果新数据库有 IP 白名单限制,需要将 Docker 宿主机的公网 IP 加入 RDS 白名单。 - ---- - -### 场景三:更换服务器(整体迁移) - -将整个 Docker 部署迁移到新服务器: - -**1. 打包项目文件** - -```bash -# 在旧服务器上 -cd /path/to/game-docker -# 排除不必要文件 -tar czf game-docker.tar.gz --exclude='.env' --exclude='game/' . -``` - -**2. 传输到新服务器** - -```bash -scp game-docker.tar.gz newserver:/opt/ -``` - -**3. 在新服务器上部署** - -```bash -cd /opt -tar xzf game-docker.tar.gz -C game-docker -cd game-docker - -# 复制并修改配置(新服务器 IP 可能不同) -cp .env.example .env -vim .env -``` - -**4. 确认修改项** - -| 检查项 | 是否需要改 | 说明 | -|--------|-----------|------| -| 域名(`*_DOMAIN`) | 域名不变则不改 | DNS 需指向新服务器 IP | -| 数据库地址(`*_DB_HOST`) | 通常不改 | RDS 地址不变,但需将新服务器 IP 加入白名单 | -| Redis 地址 | 不改 | Docker 内置 Redis,随容器迁移 | -| 微信/支付配置 | 不改 | AppID/Secret 与服务器无关 | -| 游戏服务器查询地址 | 看情况 | `GAME_SERVER_QUERY_URL` 如果游戏服务器也迁移了需改 | -| IP 白名单 | 可能需改 | `INTERNAL_WHITELIST` 加入新 IP | - -**5. 启动服务** - -```bash -chmod +x deploy.sh init-ssl.sh - -# 域名未变:DNS 改指向后直接启动 -./deploy.sh ssl-init # 新服务器需重新申请证书 -./deploy.sh up - -# 域名变了:参照「场景一:更换域名」 -``` - -**6. 验证所有服务** - -```bash -# 容器状态 -./deploy.sh status - -# 各服务健康检查 -curl -k https://api.yourdomain.com/ -curl -k https://dlapi.yourdomain.com/ -curl -k https://wxapi.yourdomain.com/ - -# 定时任务运行正常 -docker logs --tail 5 youle-syncjob -docker logs --tail 5 youle-cronjob -``` - ---- - -### 场景四:仅更改 Redis 配置 - -```bash -vim .env -# 修改以下变量: -# REDIS_HOST=new-redis-host -# REDIS_PORT=6379 -# REDIS_PASSWORD=new-password - -# 重启受影响的服务 -docker compose restart dlweb redis -``` - -> **注意:** 如果使用 Docker 内置 Redis(默认),`REDIS_HOST` 应设为 `redis`(Docker 服务名),不是 `localhost`。 - ---- - -### 场景五:单独开启 / 关闭特定服务 - -所有服务均可独立启停,不影响其他运行中的容器。 - -#### 服务清单与依赖关系 - -| 服务名 | 容器名 | 说明 | 依赖 | -|--------|--------|------|------| -| `nginx` | `youle-nginx` | 反向代理 + SSL | api / dlweb / wxserver | -| `api` | `youle-api` | 游戏核心 API | — | -| `dlweb` | `youle-dlweb` | 代理管理后台 | redis | -| `wxserver` | `youle-wxserver` | 微信小程序后端 | — | -| `syncjob` | `youle-syncjob` | 每 30s 数据同步 | dlweb(内网) | -| `cronjob` | `youle-cronjob` | 每日凌晨报表任务 | dlweb(内网) | -| `redis` | `youle-redis` | 缓存 | — | -| `certbot` | `youle-certbot` | 证书自动续签 | — | - -#### 开启单个服务 - -```bash -cd /opt/youle/game-docker - -# 启动某个服务(若镜像不存在会自动构建) -docker compose up -d api -docker compose up -d dlweb -docker compose up -d wxserver -docker compose up -d syncjob -docker compose up -d cronjob -docker compose up -d redis -docker compose up -d nginx -docker compose up -d certbot -``` - -#### 关闭单个服务 - -```bash -# 停止并移除容器(数据 volume 不受影响) -docker compose stop api -docker compose stop syncjob -docker compose stop cronjob - -# 或者 stop + 移除容器(等效于 stop + rm) -docker compose rm -sf syncjob -``` - -> **注意:** `stop` 只停止容器,不删除;`rm -sf` 停止并删除容器(下次 `up` 会重新创建)。两种方式均不会丢失数据 volume。 - -#### 常见场景 - -**临时关闭同步任务(维护数据库时):** -```bash -docker compose stop syncjob cronjob -# 维护完成后恢复 -docker compose up -d syncjob cronjob -``` - -**只重建并重启某个业务服务(代码更新后):** -```bash -# 重新构建镜像并重启,其他服务不受影响 -docker compose up -d --build api -docker compose up -d --build dlweb -docker compose up -d --build wxserver -``` - -**关闭 certbot 自动续签(调试期间避免请求频率限制):** -```bash -docker compose stop certbot -# 调试完毕后恢复 -docker compose up -d certbot -``` - -**仅重启 nginx(修改配置后生效):** -```bash -docker compose restart nginx -# 或热重载(不中断连接) -docker exec youle-nginx nginx -s reload -``` - -**查看所有服务当前状态:** -```bash -docker compose ps -# 或 -./deploy.sh status -``` - ---- - -### 操作速查表 - -| 变更内容 | 修改 `.env` 中的变量 | 重启命令 | 额外操作 | -|---------|---------------------|---------|---------| -| 更换域名 | `ROOT_DOMAIN`(子域名不标准时单独覆盖) | `./deploy.sh ssl-init && ./deploy.sh restart` | DNS 解析 + 微信后台 | -| API 数据库 | `API_DB_*` | `docker compose restart api` | RDS 白名单 | -| DLWEB 数据库 | `DLWEB_DB_*` | `docker compose restart dlweb` | RDS 白名单 | -| 游戏数据库 | `EXT_GAME_DB_*` | `docker compose restart dlweb syncjob cronjob` | RDS 白名单 | -| 战绩数据库 | `EXT_GRADE_DB_*` | `docker compose restart dlweb` | RDS 白名单 | -| Redis | `REDIS_*` | `docker compose restart dlweb redis` | — | -| 微信密钥 | `WX_*` | `docker compose restart api dlweb wxserver` | 微信后台 | -| 整体迁移 | 视情况 | `./deploy.sh ssl-init && ./deploy.sh up` | DNS + RDS 白名单 | - -### 场景七:查看日志 - -本项目日志分为两类:**Docker 容器标准输出日志**(`docker logs`)和**业务调试日志**(写入 Docker Volume 的文件)。 - -#### 日志位置总览 - -| 日志类型 | 来源容器 | 查看方式 | 说明 | -|---------|---------|---------|------| -| Nginx 访问/错误日志 | `youle-nginx` | `docker logs` | HTTP 请求记录、SSL 错误 | -| API Apache 错误日志 | `youle-api` | `docker logs` | PHP Fatal Error、Apache 500 | -| API PHP 错误日志 | `youle-api` | `docker logs` | PHP Warning/Notice(写入 Apache 错误流)| -| API 业务日志 | `youle-api` | Volume 文件 | `/var/www/html/logs/YYYY-MM-DD.log` | -| API source 模块日志 | `youle-api` | Volume 文件 | `/var/www/html/source/logs/` | -| DLWEB Apache 错误日志 | `youle-dlweb` | `docker logs` | PHP Fatal Error、Apache 500 | -| DLWEB 业务日志 | `youle-dlweb` | Volume 文件 | `/var/www/html/api/logs/` | -| 同步任务调试日志 | `youle-dlweb` | Volume 文件 | `/var/www/html/api/ext/debug/synchronize/YYYY-MM-DD.log` | -| 报表同步调试日志 | `youle-dlweb` | Volume 文件 | `/var/www/html/api/ext/debug/SynchronizeReportData/YYYY-MM-DD.log` | -| 自动任务调试日志 | `youle-dlweb` | Volume 文件 | `/var/www/html/api/ext/debug/autotask/YYYY-MM-DD.log` | -| syncjob 运行日志 | `youle-syncjob` | `docker logs` | curl 请求结果,每 30s 一条 | -| cronjob 调度日志 | `youle-cronjob` | `docker logs` | cron 触发记录 | -| wxserver 运行日志 | `youle-wxserver` | `docker logs` | Node.js 标准输出 | - ---- - -#### 1. 查看容器标准输出日志(docker logs) - -```bash -# 查看最近 50 行(快速概览) -docker logs --tail 50 youle-nginx -docker logs --tail 50 youle-api -docker logs --tail 50 youle-dlweb -docker logs --tail 50 youle-syncjob -docker logs --tail 50 youle-cronjob -docker logs --tail 50 youle-wxserver - -# 实时跟踪日志(Ctrl+C 退出) -docker logs -f youle-api -docker logs -f youle-syncjob - -# 查看最近 100 行并实时跟踪 -docker logs --tail 100 -f youle-dlweb - -# 查看带时间戳的日志 -docker logs -t --tail 50 youle-nginx - -# 查看某时间段之后的日志(ISO 8601 格式) -docker logs --since 2026-04-13T10:00:00 youle-api -docker logs --since 1h youle-syncjob # 最近 1 小时 -``` - -> **提示:** `docker logs` 查看的是容器的 stdout/stderr 输出,PHP Fatal Error 和 Apache 错误均会出现在这里。 - ---- - -#### 2. 查看业务调试日志文件(Volume 文件) - -业务调试日志写入 Docker Volume,按日期分文件(`YYYY-MM-DD.log`)。 - -```bash -# --- API 业务日志 --- - -# 列出所有日志文件 -docker exec youle-api ls -lh /var/www/html/logs/ - -# 查看今天的 API 业务日志(末尾 50 行) -docker exec youle-api tail -50 /var/www/html/logs/$(date +%Y-%m-%d).log - -# 实时跟踪今天的 API 日志 -docker exec youle-api tail -f /var/www/html/logs/$(date +%Y-%m-%d).log - -# 查看完整内容 -docker exec youle-api cat /var/www/html/logs/$(date +%Y-%m-%d).log - -# --- API source 模块日志 --- -docker exec youle-api ls -lhR /var/www/html/source/logs/ -docker exec youle-api tail -50 /var/www/html/source/logs/$(date +%Y-%m-%d).log - - -# --- DLWEB 业务日志 --- - -# 列出所有日志文件 -docker exec youle-dlweb ls -lh /var/www/html/api/logs/ - -# 查看今天的 DLWEB 业务日志 -docker exec youle-dlweb tail -50 /var/www/html/api/logs/$(date +%Y-%m-%d).log - - -# --- 同步任务调试日志(Synchronize.php)--- - -# 列出日志文件 -docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/synchronize/ - -# 查看今天的同步日志(最近 50 行) -docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log - -# 实时跟踪同步日志(每 30s 刷新) -docker exec youle-dlweb tail -f /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log - - -# --- 报表同步调试日志(SynchronizeReportData.php)--- - -docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/SynchronizeReportData/ -docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/SynchronizeReportData/$(date +%Y-%m-%d).log - - -# --- 自动任务调试日志(autotask)--- - -docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/autotask/ -docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/autotask/$(date +%Y-%m-%d).log -``` - ---- - -#### 3. 一键查看所有关键日志(汇总命令) - -```bash -# 快速健康检查:同时查看 syncjob 状态 + 今天的同步调试日志末尾 -echo '=== syncjob 容器日志(最近20行)===' -docker logs --tail 20 youle-syncjob -echo -echo '=== 同步调试日志(最近20行)===' -docker exec youle-dlweb tail -20 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log -echo -echo '=== API 业务日志(最近20行)===' -docker exec youle-api tail -20 /var/www/html/logs/$(date +%Y-%m-%d).log -``` - ---- - -#### 4. 查看 Nginx 访问日志(请求排查) - -```bash -# Nginx 访问日志(最近 100 条请求) -docker logs --tail 100 youle-nginx - -# 过滤 HTTP 500 错误 -docker logs youle-nginx 2>&1 | grep ' 500 ' - -# 过滤特定 IP 的请求 -docker logs youle-nginx 2>&1 | grep '客户端IP地址' - -# 过滤 SSL/TLS 握手错误(客户端发送了非 HTTPS 请求到 80 端口) -docker logs youle-nginx 2>&1 | grep 'SSL_do_handshake\|no required SSL' -``` - ---- - -#### 5. 使用 deploy.sh 快捷查看 - -```bash -# 等效于 docker logs --tail 100 + 实时跟踪 -./deploy.sh logs api -./deploy.sh logs dlweb -./deploy.sh logs syncjob -./deploy.sh logs cronjob -./deploy.sh logs nginx -./deploy.sh logs wxserver - -# 加 -f 实时跟踪 -./deploy.sh logs -f api -./deploy.sh logs -f syncjob -``` - -### 调整同步频率 - -```bash -# 修改 .env -SYNC_INTERVAL=15 # 15 秒一次 -SYNC_PROCESSCOUNT=500 # 每次处理 500 条 - -# 重启 syncjob -docker compose restart syncjob -``` - -### 调整每日任务执行时间 - -```bash -# 修改 .env -CRON_SCHEDULE=30 3 * * * # 改为凌晨 3:30 - -# 重启 cronjob -docker compose restart cronjob -``` - ---- - -### 场景六:卸载和清理 - -根据需求选择卸载范围,操作不可逆,请提前备份重要数据。 - -#### 卸载前:备份关键数据 - -```bash -cd /opt/youle/game-docker - -# 1. 备份 .env(包含所有密钥,不在版本库中) -cp .env ~/youle-env-backup.env - -# 2. 备份 Redis 数据(如有业务数据存储在 Redis 中) -docker exec youle-redis redis-cli -a "${REDIS_PASSWORD}" BGSAVE -# 或直接备份 volume -docker run --rm -v game-docker_redis-data:/data -v ~/:/backup alpine \ - tar czf /backup/redis-data-backup.tar.gz /data - -# 3. 备份日志(按需) -docker cp youle-api:/var/www/html/logs ~/api-logs-backup -docker cp youle-dlweb:/var/www/html/api/logs ~/dlweb-logs-backup -``` - ---- - -#### 仅停止所有容器(保留镜像和数据,可随时恢复) - -```bash -cd /opt/youle/game-docker -docker compose stop - -# 验证 -docker compose ps -``` - -恢复运行: - -```bash -docker compose start -``` - ---- - -#### 停止并删除容器(保留镜像、volumes 和项目文件) - -```bash -cd /opt/youle/game-docker -docker compose down - -# 验证容器已删除 -docker ps -a | grep youle -``` - -> 此操作不会删除数据 volume 和已构建的镜像,再次 `docker compose up -d` 可快速恢复,无需重新构建。 - ---- - -#### 完全卸载(删除容器 + volumes + 镜像) - -> **警告:** 以下操作将删除 Redis 缓存和所有日志数据,不可恢复。 - -```bash -cd /opt/youle/game-docker - -# 停止并删除容器 + 所有相关 volumes -docker compose down -v - -# 删除本项目构建的镜像 -docker rmi game-docker-api game-docker-dlweb game-docker-wxserver 2>/dev/null || true - -# 验证 -docker volume ls | grep game-docker -docker images | grep game-docker -``` - ---- - -#### 彻底清理(删除容器 + volumes + 镜像 + 项目目录 + SSL 证书) - -> **警告:** SSL 证书删除后需重新申请(Let's Encrypt 有频率限制,每 7 天最多 5 次)。 - -```bash -cd /opt/youle/game-docker - -# 1. 停止并删除容器 + volumes -docker compose down -v - -# 2. 删除构建镜像 -docker rmi game-docker-api game-docker-dlweb game-docker-wxserver 2>/dev/null || true - -# 3. 清理 Docker 悬空资源(可选) -docker system prune -f - -# 4. 删除 SSL 证书(Let's Encrypt) -docker run --rm -v game-docker_certbot-certs:/etc/letsencrypt certbot/certbot delete \ - --cert-name "${API_DOMAIN}" --non-interactive 2>/dev/null || true -docker run --rm -v game-docker_certbot-certs:/etc/letsencrypt certbot/certbot delete \ - --cert-name "${DLWEB_DOMAIN}" --non-interactive 2>/dev/null || true -docker run --rm -v game-docker_certbot-certs:/etc/letsencrypt certbot/certbot delete \ - --cert-name "${WX_DOMAIN}" --non-interactive 2>/dev/null || true -# 或直接删除证书 volume -docker volume rm game-docker_certbot-certs game-docker_certbot-webroot 2>/dev/null || true - -# 5. 删除项目目录 -rm -rf /opt/youle/game-docker -``` - ---- - -#### 删除单个服务的容器和镜像 - -```bash -cd /opt/youle/game-docker - -# 以 dlweb 为例 -docker compose stop dlweb -docker compose rm -sf dlweb -docker rmi game-docker-dlweb - -# 下次启动时会重新构建 -docker compose up -d --build dlweb -``` - ---- - -#### 清理定时任务残留 - -```bash -# 停止并删除 syncjob / cronjob 容器 -docker compose stop syncjob cronjob -docker compose rm -sf syncjob cronjob - -# 清理共享信号 volume(如有残留暂停文件) -docker run --rm -v game-docker_shared-signal:/shared alpine rm -f /shared/syncjob.pause - -# 如需完全删除共享 volume -docker volume rm game-docker_shared-signal -``` - ---- - -#### 卸载操作速查 - -| 目标 | 命令 | 保留内容 | -|------|------|----------| -| 临时停止(可恢复) | `docker compose stop` | 容器 / 镜像 / volumes / 文件 | -| 删除容器 | `docker compose down` | 镜像 / volumes / 文件 | -| 删除容器 + volumes | `docker compose down -v` | 镜像 / 文件 | -| 删除容器 + volumes + 镜像 | `docker compose down -v` + `docker rmi ...` | 文件 | -| 完全清理 | 上述全部 + `rm -rf /opt/youle/game-docker` | 无 | - ---- - -### 场景八:清除日志 - -> **说明:** Volume 文件日志(业务调试日志)和 Docker 容器日志(stdout)需要分别清理。清理前建议先备份或确认不再需要这些日志。 - -#### 1. 清除 Docker 容器日志(stdout/stderr) - -Docker 容器的标准输出日志存储在宿主机 `/var/lib/docker/containers/<容器ID>/<容器ID>-json.log`,直接清空该文件即可。 - -```bash -# 清空单个容器的 docker logs(容器保持运行,不中断服务) -truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-syncjob) -truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-api) -truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-dlweb) -truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-nginx) -truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-cronjob) -truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-wxserver) - -# 一键清空所有 youle-* 容器的 docker logs -for name in youle-nginx youle-api youle-dlweb youle-wxserver youle-syncjob youle-cronjob youle-redis youle-certbot; do - logpath=$(docker inspect --format='{{.LogPath}}' $name 2>/dev/null) - [ -n "$logpath" ] && truncate -s 0 "$logpath" && echo "Cleared: $name" -done -``` - -> **注意:** `truncate -s 0` 清空文件内容,不删除文件,容器无需重启,后续日志正常写入。 - ---- - -#### 2. 清除业务调试日志文件(Volume 内的按日期文件) - -```bash -# --- 清除 API 业务日志 --- - -# 删除所有历史日志(保留今天) -docker exec youle-api sh -c " - find /var/www/html/logs/ -name '*.log' ! -name '$(date +%Y-%m-%d).log' -delete -" - -# 清空今天的日志文件(保留文件,清空内容) -docker exec youle-api truncate -s 0 /var/www/html/logs/$(date +%Y-%m-%d).log - -# 删除全部日志文件(含今天) -docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log' - - -# --- 清除 DLWEB 业务日志 --- - -# 删除所有历史日志(保留今天) -docker exec youle-dlweb sh -c " - find /var/www/html/api/logs/ -name '*.log' ! -name '$(date +%Y-%m-%d).log' -delete -" - -# 删除全部日志文件 -docker exec youle-dlweb sh -c 'rm -f /var/www/html/api/logs/*.log' - - -# --- 清除同步任务调试日志 --- - -# 删除 30 天前的旧日志 -docker exec youle-dlweb find /var/www/html/api/ext/debug/ -name '*.log' -mtime +30 -delete - -# 删除所有历史日志(保留今天) -docker exec youle-dlweb sh -c " - find /var/www/html/api/ext/debug/ -name '*.log' ! -name '$(date +%Y-%m-%d).log' -delete -" - -# 清空今天的同步日志(保留文件) -docker exec youle-dlweb truncate -s 0 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log - -# 删除全部调试日志(所有子目录) -docker exec youle-dlweb sh -c ' - rm -f /var/www/html/api/ext/debug/synchronize/*.log - rm -f /var/www/html/api/ext/debug/SynchronizeReportData/*.log - rm -f /var/www/html/api/ext/debug/autotask/*.log -' -``` - ---- - -#### 3. 一键清理所有日志(docker logs + 业务日志) - -> **警告:** 以下脚本将清空所有容器日志和全部业务日志文件,执行前请确认不需要保留现有日志。 - -```bash -#!/bin/bash -# 一键清理所有日志(在服务器 /opt/youle/game-docker/ 目录下执行) - -echo '=== 清空 Docker 容器日志 ===' -for name in youle-nginx youle-api youle-dlweb youle-wxserver youle-syncjob youle-cronjob youle-redis youle-certbot; do - logpath=$(docker inspect --format='{{.LogPath}}' $name 2>/dev/null) - if [ -n "$logpath" ] && [ -f "$logpath" ]; then - truncate -s 0 "$logpath" - echo " Cleared docker log: $name" - fi -done - -echo '=== 清空业务日志文件 ===' -# API 业务日志 -docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log /var/www/html/source/logs/*.log 2>/dev/null; echo " Cleared api logs"' - -# DLWEB 业务日志 + 调试日志 -docker exec youle-dlweb sh -c ' - rm -f /var/www/html/api/logs/*.log 2>/dev/null - rm -f /var/www/html/api/ext/debug/synchronize/*.log 2>/dev/null - rm -f /var/www/html/api/ext/debug/SynchronizeReportData/*.log 2>/dev/null - rm -f /var/www/html/api/ext/debug/autotask/*.log 2>/dev/null - echo " Cleared dlweb logs" -' - -echo '=== 完成 ===' -``` - -将以上内容保存为服务器上的 `/opt/youle/game-docker/clear-logs.sh`,赋予执行权限后使用: - -```bash -chmod +x /opt/youle/game-docker/clear-logs.sh -/opt/youle/game-docker/clear-logs.sh -``` - ---- - -#### 4. 日志清理速查 - -> 以下命令在 **SSH 登录服务器后**直接执行(无需 `ssh root@...` 前缀)。 - -**查看日志** - -| 目标 | 命令 | -|------|------| -| nginx 访问日志(末尾50行) | `docker logs --tail 50 youle-nginx` | -| nginx 访问日志(实时跟踪) | `docker logs -f youle-nginx` | -| wxserver 日志(末尾50行) | `docker logs --tail 50 youle-wxserver` | -| wxserver 日志(实时跟踪) | `docker logs -f youle-wxserver` | -| API PHP 错误日志(末尾50行) | `docker exec youle-api tail -50 /var/log/apache2/php_errors.log` | -| API 业务日志_今天(末尾50行) | `docker exec youle-api tail -50 /var/www/html/logs/$(date +%Y-%m-%d).log` | -| API 业务日志_今天(完整) | `docker exec youle-api cat /var/www/html/logs/$(date +%Y-%m-%d).log` | -| API 业务日志_今天(实时跟踪) | `docker exec youle-api tail -f /var/www/html/logs/$(date +%Y-%m-%d).log` | -| 列出 API 业务日志文件 | `docker exec youle-api ls -lh /var/www/html/logs/` | -| 同步调试日志_今天(末尾50行) | `docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log` | -| 同步调试日志_今天(实时跟踪) | `docker exec youle-dlweb tail -f /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log` | -| 列出同步调试日志文件 | `docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/synchronize/` | -| syncjob 任务日志(末尾50行) | `docker logs --tail 50 youle-syncjob` | -| cronjob 任务日志(末尾50行) | `docker logs --tail 50 youle-cronjob` | - -**清理日志** - -| 目标 | 命令 | -|------|------| -| 清空 nginx docker logs | `truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-nginx)` | -| 清空 wxserver docker logs | `truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-wxserver)` | -| 清空 API docker logs | `truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-api)` | -| 清空 dlweb docker logs | `truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-dlweb)` | -| 清空所有容器 docker logs | `for n in youle-nginx youle-api youle-dlweb youle-wxserver youle-syncjob youle-cronjob youle-redis youle-certbot; do truncate -s 0 $(docker inspect --format='{{.LogPath}}' $n 2>/dev/null) 2>/dev/null; done` | -| 清空今天 API 业务日志 | `docker exec youle-api truncate -s 0 /var/www/html/logs/$(date +%Y-%m-%d).log` | -| 清空今天同步调试日志 | `docker exec youle-dlweb truncate -s 0 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log` | -| 删除 API 全部历史日志 | `docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log'` | -| 删除调试日志 30 天前旧文件 | `docker exec youle-dlweb find /var/www/html/api/ext/debug/ -name '*.log' -mtime +30 -delete` | -| 删除调试日志全部文件 | `docker exec youle-dlweb sh -c 'rm -f /var/www/html/api/ext/debug/synchronize/*.log /var/www/html/api/ext/debug/SynchronizeReportData/*.log /var/www/html/api/ext/debug/autotask/*.log'` | -| 一键清理全部日志 | `/opt/youle/game-docker/clear-logs.sh` | -``` - ---- - -### 场景九:从 Windows 本地查看和删除业务日志 - -> 以下命令在 **Windows PowerShell** 中执行,通过 SSH 直接读取服务器上的业务日志文件。 -> 日志来源目录(本地代码映射到容器的 Volume): -> - `api/logs/` → 容器内 `/var/www/html/logs/` -> - `dlweb/api/ext/debug/` → 容器内 `/var/www/html/api/ext/debug/` - ---- - -#### 查看日志 - -```powershell -# ── 获取今天的日期字符串 ────────────────────────────────────────── -$today = (Get-Date -Format "yyyy-MM-dd") - -# ── api/logs ───────────────────────────────────────────────────── - -# 列出所有日志文件 -ssh root@47.98.203.17 "docker exec youle-api ls -lh /var/www/html/logs/" - -# 查看今天的 API 业务日志(末尾 50 行) -ssh root@47.98.203.17 "docker exec youle-api tail -50 /var/www/html/logs/$today.log" - -# 查看今天的 API 业务日志(完整内容) -ssh root@47.98.203.17 "docker exec youle-api cat /var/www/html/logs/$today.log" - -# 实时跟踪今天的 API 业务日志(Ctrl+C 停止) -ssh root@47.98.203.17 "docker exec youle-api tail -f /var/www/html/logs/$today.log" - - -# ── dlweb/api/ext/debug/synchronize ────────────────────────────── - -# 列出所有同步调试日志文件 -ssh root@47.98.203.17 "docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/synchronize/" - -# 查看今天的同步调试日志(末尾 50 行) -ssh root@47.98.203.17 "docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/synchronize/$today.log" - -# 查看今天的同步调试日志(完整内容) -ssh root@47.98.203.17 "docker exec youle-dlweb cat /var/www/html/api/ext/debug/synchronize/$today.log" - -# 实时跟踪同步调试日志(Ctrl+C 停止) -ssh root@47.98.203.17 "docker exec youle-dlweb tail -f /var/www/html/api/ext/debug/synchronize/$today.log" - - -# ── dlweb/api/ext/debug/SynchronizeReportData ──────────────────── - -ssh root@47.98.203.17 "docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/SynchronizeReportData/" -ssh root@47.98.203.17 "docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/SynchronizeReportData/$today.log" - - -# ── dlweb/api/ext/debug/autotask ───────────────────────────────── - -ssh root@47.98.203.17 "docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/autotask/" -ssh root@47.98.203.17 "docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/autotask/$today.log" - - -# ── 一键汇总:同时查看两个目录今天的日志末尾 ───────────────────── - -$today = (Get-Date -Format "yyyy-MM-dd") -ssh root@47.98.203.17 @" -echo '=== api/logs/$today.log ===' -docker exec youle-api tail -30 /var/www/html/logs/$today.log -echo -echo '=== synchronize/$today.log ===' -docker exec youle-dlweb tail -30 /var/www/html/api/ext/debug/synchronize/$today.log -echo -echo '=== SynchronizeReportData/$today.log ===' -docker exec youle-dlweb tail -30 /var/www/html/api/ext/debug/SynchronizeReportData/$today.log -"@ -``` - ---- - -#### 删除日志 - -```powershell -# ── 获取今天的日期字符串 ────────────────────────────────────────── -$today = (Get-Date -Format "yyyy-MM-dd") - -# ── api/logs ───────────────────────────────────────────────────── - -# 清空今天的 API 业务日志(保留文件,清空内容) -ssh root@47.98.203.17 "docker exec youle-api truncate -s 0 /var/www/html/logs/$today.log" - -# 删除今天的 API 业务日志文件 -ssh root@47.98.203.17 "docker exec youle-api rm -f /var/www/html/logs/$today.log" - -# 删除所有 API 业务日志(保留今天) -ssh root@47.98.203.17 "docker exec youle-api sh -c `"find /var/www/html/logs/ -name '*.log' ! -name '$today.log' -delete`"" - -# 删除全部 API 业务日志(含今天) -ssh root@47.98.203.17 "docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log'" - - -# ── dlweb/api/ext/debug ────────────────────────────────────────── - -# 清空今天的同步调试日志(保留文件,清空内容) -ssh root@47.98.203.17 "docker exec youle-dlweb truncate -s 0 /var/www/html/api/ext/debug/synchronize/$today.log" - -# 删除今天的同步调试日志文件 -ssh root@47.98.203.17 "docker exec youle-dlweb rm -f /var/www/html/api/ext/debug/synchronize/$today.log" - -# 删除 30 天前的旧调试日志(三个子目录) -ssh root@47.98.203.17 "docker exec youle-dlweb find /var/www/html/api/ext/debug/ -name '*.log' -mtime +30 -delete" - -# 删除所有调试日志(保留今天,三个子目录) -ssh root@47.98.203.17 "docker exec youle-dlweb sh -c `"find /var/www/html/api/ext/debug/ -name '*.log' ! -name '$today.log' -delete`"" - -# 删除全部调试日志(含今天,三个子目录) -ssh root@47.98.203.17 @" -docker exec youle-dlweb sh -c ' - rm -f /var/www/html/api/ext/debug/synchronize/*.log - rm -f /var/www/html/api/ext/debug/SynchronizeReportData/*.log - rm -f /var/www/html/api/ext/debug/autotask/*.log -' -"@ - - -# ── 一键清理:api/logs + dlweb/api/ext/debug 全部日志 ──────────── - -ssh root@47.98.203.17 @" -docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log' -docker exec youle-dlweb sh -c ' - rm -f /var/www/html/api/ext/debug/synchronize/*.log - rm -f /var/www/html/api/ext/debug/SynchronizeReportData/*.log - rm -f /var/www/html/api/ext/debug/autotask/*.log -' -echo "Done" -"@ -``` - ---- - -#### 快捷速查表 - -| 操作 | PowerShell 命令 | -|------|----------------| -| 查看 api/logs 今天日志 | `ssh root@47.98.203.17 "docker exec youle-api cat /var/www/html/logs/$(Get-Date -Format 'yyyy-MM-dd').log"` | -| 查看同步调试日志 | `ssh root@47.98.203.17 "docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/synchronize/$(Get-Date -Format 'yyyy-MM-dd').log"` | -| 实时跟踪同步日志 | `ssh root@47.98.203.17 "docker exec youle-dlweb tail -f /var/www/html/api/ext/debug/synchronize/$(Get-Date -Format 'yyyy-MM-dd').log"` | -| 清空 api/logs 今天日志 | `ssh root@47.98.203.17 "docker exec youle-api truncate -s 0 /var/www/html/logs/$(Get-Date -Format 'yyyy-MM-dd').log"` | -| 清空同步调试日志 | `ssh root@47.98.203.17 "docker exec youle-dlweb truncate -s 0 /var/www/html/api/ext/debug/synchronize/$(Get-Date -Format 'yyyy-MM-dd').log"` | -| 删除全部调试日志 | `ssh root@47.98.203.17 "docker exec youle-dlweb sh -c 'rm -f /var/www/html/api/ext/debug/synchronize/*.log /var/www/html/api/ext/debug/SynchronizeReportData/*.log /var/www/html/api/ext/debug/autotask/*.log'"` | +# YouleGames Docker 部署版 + +> 原项目 `codes/agent/game` 的 Docker 化改造,所有硬编码域名/IP/密码已外部化为环境变量,通过单一 `.env` 文件控制所有配置。 + +--- + +## 目录结构 + +``` +game-docker/ +├── .env.example # 环境变量模板(部署时复制为 .env) +├── docker-compose.yml # Docker Compose 编排(8 个服务) +├── deploy.sh # 一键部署脚本 +├── init-ssl.sh # SSL 证书首次申请脚本 +├── env_config.php # PHP 环境变量加载器(api/ 和 dlweb/ 共用) +├── api/ # 网站1: 游戏核心 API 服务源码 +├── dlweb/ # 网站2: 代理管理后台源码 +├── wxserver_daoqi/ # 网站3: 微信小程序后端源码 +├── docker/ +│ ├── nginx/ +│ │ ├── default.conf.template # Nginx 配置模板(envsubst 动态域名注入) +│ │ └── ssl-params.conf # SSL 安全参数 +│ ├── api/ +│ │ ├── Dockerfile # API 镜像(PHP 8.1 + Apache) +│ │ └── docker-entrypoint.sh # 启动时 sed 替换 JS 中硬编码域名 +│ ├── dlweb/ +│ │ ├── Dockerfile # DLWEB 镜像(PHP 8.1 + Apache + Redis ext) +│ │ └── docker-entrypoint.sh # 启动时 sed 替换 JS/HTML 中硬编码域名 +│ ├── wxserver/ +│ │ └── Dockerfile # wxserver 镜像(Node.js 18 Alpine) +│ ├── syncjob/ +│ │ └── sync.sh # Synchronize.php 轮询脚本(每 30s) +│ ├── cronjob/ +│ │ ├── entrypoint.sh # cron 容器入口 +│ │ └── daily-task.sh # 每日定时任务(替代 autorun.cmd) +│ └── certbot/ # SSL 证书相关 +└── game/ # 原始未修改代码备份(不参与部署) +``` + +--- + +## 整体架构 + +``` + 互联网 + │ + ┌──────┴──────┐ + │ Nginx │ ← SSL 终端 + 域名路由 + │ :80 :443 │ 域名通过 .env 注入 + └──┬───┬───┬─┘ + ┌───────────┤ │ ├───────────┐ + ▼ ▼ │ ▼ │ + ┌────────────┐ ┌────────┴──┐ ┌──────────┐ + │ API │ │ DLWEB │ │ wxserver │ + │ PHP 8.1 │ │ PHP 8.1 │ │ Node.js │ + │ Apache │ │ Apache │ │ :3000 │ + └─────┬──────┘ └─────┬─────┘ └──────────┘ + │ │ + │ ┌─────────┤ Docker 内网 (youle-net) + │ │ │ + │ ▼ │ + │ ┌──────────┐ │ ┌───────────┐ ┌───────────┐ + │ │ syncjob │◄┼────►│ cronjob │ │ certbot │ + │ │ 每30s轮询 │ │ │ 每日4:00 │ │ 12h续签 │ + │ └──────────┘ │ └───────────┘ └───────────┘ + │ │ + ▼ ▼ + ┌──────────────────────────┐ ┌──────────┐ + │ MySQL (阿里云 RDS) │ │ Redis │ + │ 多实例:agent_db / │ │ :6379 │ + │ game_db / grade_db │ └──────────┘ + └──────────────────────────┘ +``` + +### 服务清单(8 个容器) + +| 容器名 | 镜像 | 作用 | 端口 | +|--------|------|------|------| +| `youle-nginx` | nginx:alpine | SSL 终端 + 域名路由反向代理 | 80, 443 | +| `youle-api` | php:8.1-apache (自定义) | 游戏核心 API(登录/支付/SDK) | 8081 (内部) | +| `youle-dlweb` | php:8.1-apache (自定义) | 代理管理后台 | 8082 (内部) | +| `youle-wxserver` | node:18-alpine (自定义) | 微信小程序后端 | 3000 (内部) | +| `youle-syncjob` | alpine:3.19 | 每 30s POST `Synchronize.php`(数据同步) | 无 | +| `youle-cronjob` | alpine:3.19 | 每日凌晨 4:00 执行报表同步 | 无 | +| `youle-redis` | redis:7-alpine | 缓存服务(可选) | 6379 (内部) | +| `youle-certbot` | certbot/certbot | Let's Encrypt SSL 证书自动续签 | 无 | + +--- + +## 快速部署 + +### 前置要求 + +- Linux 服务器(推荐 Ubuntu 22.04 / CentOS 8+,最低 2C 2G) +- 域名已解析到服务器 IP(3 个域名:API / DLWEB / wxserver) +- 服务器 80 和 443 端口可用 +- Docker 和 Docker Compose(如未安装,`deploy.sh` 会自动安装并配置国内镜像加速) + +--- + +### 0. 配置 SSH 密钥认证(必须) + +`sync.ps1` 每次执行会调用多次 `scp` / `ssh`,如果未配置密钥认证,每条命令都会弹出密码提示导致脚本中断。以下步骤在 **Windows PowerShell** 中完成(Windows 10/11 内置 OpenSSH 客户端,无需额外安装)。 + +#### 第一步:检查是否已有 SSH 密钥 + +```powershell +# 默认密钥路径 +Test-Path "$env:USERPROFILE\.ssh\id_ed25519" +# 输出 True 表示已有密钥,可跳到第三步 +``` + +如果已有 RSA 旧密钥(`id_rsa`),同样可用,把下面命令中的 `id_ed25519` 替换为 `id_rsa`。 + +#### 第二步:生成密钥对 + +```powershell +# 生成 Ed25519 密钥(更安全、更短) +ssh-keygen -t ed25519 -C "youle-deploy" -f "$env:USERPROFILE\.ssh\id_ed25519" +# 提示 passphrase 时直接回车两次(不设密码,脚本才能自动运行) +``` + +执行后生成两个文件: + +| 文件 | 说明 | +|------|------| +| `~/.ssh/id_ed25519` | **私钥**,绝不上传服务器,本地保管 | +| `~/.ssh/id_ed25519.pub` | **公钥**,要发给服务器 | + +#### 第三步:将公钥上传到服务器 + +> 此步骤会要求输入一次密码,之后不再需要。 + +```powershell +# 一行命令:读取公钥 → 追加到服务器 authorized_keys +cat "$env:USERPROFILE\.ssh\id_ed25519.pub" | ssh root@47.98.203.17 ` + "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys" +``` + +#### 第四步:验证免密登录 + +```powershell +# 直接登录,不弹密码提示则成功 +ssh root@47.98.203.17 "echo 'SSH key auth OK'" +``` + +输出 `SSH key auth OK` 即表示配置成功,`sync.ps1` 可正常使用。 + +#### 可选:配置 SSH 别名(简化命令) + +在 `C:\Users\<你的用户名>\.ssh\config`(文件不存在则新建)中添加: + +``` +Host youle + HostName 47.98.203.17 + User root + IdentityFile ~/.ssh/id_ed25519 + ServerAliveInterval 60 +``` + +配置后可使用短名称操作: + +```powershell +ssh youle # 直接登录 +# sync.ps1 使用别名 +.\sync.ps1 -Server youle +``` + +#### 可选:多台电脑共用同一台服务器 + +把每台电脑生成的 `id_ed25519.pub` 内容都追加到服务器的 `~/.ssh/authorized_keys`(一行一个),不需要删除旧的公钥: + +```powershell +# 在第二台电脑上执行同样的上传命令即可(>> 追加而不是覆盖) +cat "$env:USERPROFILE\.ssh\id_ed25519.pub" | ssh root@47.98.203.17 ` + "cat >> ~/.ssh/authorized_keys" +``` + +--- + +### 1. 检查并修复行尾符(LF) + +> **为什么需要这步?** Windows 的 Git 默认 `core.autocrlf=true`,可能将脚本文件写成 CRLF。CRLF 格式的 shell 脚本在 Linux 容器中会报 `not found` / `syntax error` 错误,导致容器无法启动。 + +在上传前运行 `fix-lf.ps1`,自动扫描所有关键文件并修复: + +```powershell +.\fix-lf.ps1 +``` + +> **根本修复(一次性,之后无需再跑):** 执行以下命令让 `.gitattributes` 永久接管行尾符,此后任何机器 clone 均自动生效: +> ```powershell +> git config core.autocrlf false +> git add --renormalize . +> git commit -m "fix: normalize all line endings to LF" +> git push +> ``` + +--- + +### 2. 上传项目到服务器 + +将 `game-docker` 目录上传到服务器 `/opt/youle/` 下: + +```powershell +# 推荐:使用 sync.ps1(tar 压缩单连接,比 scp -r 快约 10-50 倍) +# 首次部署用 full 模式,上传全部文件(约 10 MB 压缩包) +.\sync.ps1 -Mode full + +# 日常代码更新用 app 模式(排除文档/测试,约 7 MB) +.\sync.ps1 + +# 仅更新 Docker 配置文件(docker-compose.yml、deploy.sh 等,不到 1 MB) +.\sync.ps1 -Mode config +``` + +> **前提:** 已完成步骤 0 的 SSH 密钥认证配置,否则 `sync.ps1` 会反复弹密码提示。 + +`sync.ps1` 会自动在服务器上创建 `/opt/youle/game-docker/` 目录(如不存在)。 + +如不使用 `sync.ps1`,也可手动上传: + +```bash +# 从 Git 仓库拉取 +ssh root@your-server-ip +mkdir -p /opt/youle +cd /opt/youle +git clone <仓库地址> game-docker +``` + +上传后服务器上的目录结构: + +``` +/opt/youle/game-docker/ +├── .env.example +├── docker-compose.yml +├── deploy.sh +├── init-ssl.sh +├── api/ +├── dlweb/ +├── wxserver_daoqi/ +└── docker/ +``` + +### 3. 准备环境变量 + +```bash +cd /opt/youle/game-docker +cp .env.example .env +vim .env +``` + +**必须修改的关键配置:** + +```bash +# 父域名(三个子域名自动推导,无需单独配置) +# 将自动生成: api. dlapi. +ROOT_DOMAIN=yourdomain.com + +# 数据库(各服务数据库连接) +API_DB_HOST=your-rds-host +API_DB_PASSWORD=your-password +DLWEB_DB_HOST=your-rds-host +DLWEB_DB_PASSWORD=your-password +# ... 其他数据库配置 + +# 微信配置 +WX_MINI_APPID=your-appid +WX_MINI_APPSECRET=your-secret +WX_PAY_MCHID=your-mchid +WX_PAY_KEY=your-key + +# SSL 邮箱 +SSL_EMAIL=your-email@example.com +``` + +### 4. 首次申请 SSL 证书 + +```bash +chmod +x deploy.sh init-ssl.sh + +# 先测试(不真正申请,验证域名解析是否正确) +./deploy.sh ssl-init --dry-run + +# 正式申请 +./deploy.sh ssl-init +``` + +### 5. 启动所有服务 + +```bash +./deploy.sh up +``` + +启动后验证: + +```bash +# 查看所有容器状态 +./deploy.sh status + +# 查看特定服务日志 +./deploy.sh logs api +./deploy.sh logs dlweb +./deploy.sh logs syncjob +./deploy.sh logs cronjob +``` + +### 6. 部署命令速查 + +| 命令 | 说明 | +|------|------| +| `./deploy.sh up` | 构建并启动所有服务 | +| `./deploy.sh down` | 停止并移除所有容器 | +| `./deploy.sh restart` | 重启所有服务 | +| `./deploy.sh rebuild` | 无缓存重建所有镜像 | +| `./deploy.sh rebuild api` | 只重建指定服务 | +| `./deploy.sh logs [service]` | 查看日志(支持 `-f` 实时跟踪) | +| `./deploy.sh status` | 查看容器运行状态 | +| `./deploy.sh ssl-init` | 首次申请 SSL 证书 | +| `./deploy.sh ssl-init --staging` | 用 Let's Encrypt 测试环境申请 | +| `./deploy.sh ssl-renew` | 手动续签证书 | +| `./deploy.sh ssl-status` | 查看证书到期时间 | + +--- + +## 定时任务说明 + +Docker 部署包含两个定时任务容器,替代原 Windows 环境的 `HttpRequestService.exe` 和 `autorun.cmd`。 + +### syncjob — 实时同步任务 + +**替代:** Windows `HttpRequestService.exe`(通过 `HttpRequest.exe.json` 配置) + +**作用:** 每 30 秒 POST 请求 `dlweb/ext/Synchronize.php`,从游戏数据库 `ct_user_process_log` 表消费未处理日志,将玩家/代理数据同步到代理后台数据库。 + +**运行方式:** 通过 Docker 内网直连 `http://dlweb/ext/Synchronize.php`,不经过公网域名,零流量消耗。 + +**可配置项(`.env`):** + +```bash +# 轮询间隔(秒),默认 30 +SYNC_INTERVAL=30 + +# 每次处理的日志条数,默认 200 +SYNC_PROCESSCOUNT=200 +``` + +**查看同步日志:** + +```bash +./deploy.sh logs syncjob +# 或实时查看 +docker logs -f youle-syncjob +``` + +### cronjob — 每日定时任务 + +**替代:** Windows 计划任务调用的 `tools-docker/autorun.cmd` + +**作用:** 每日凌晨 4:00 执行以下流程(与原 `autorun.cmd` 完全一致): + +| 步骤 | 原 autorun.cmd | Docker cronjob | +|------|---------------|----------------| +| 1. 停止同步服务 | `net stop HttpRequestService` | 创建 `/shared/syncjob.pause` 信号文件 | +| 2. 等待当前请求完成 | (Windows 服务立即停止) | `sleep 5` | +| 3. 同步报表数据 | `HttpRequest.exe POST SynchronizeReportData.php` | `curl POST http://dlweb/ext/SynchronizeReportData.php` | +| 4. 恢复同步服务 | `net start HttpRequestService` | 删除 `/shared/syncjob.pause` 信号文件 | + +> **暂停机制:** `syncjob` 和 `cronjob` 通过共享 Docker volume(`shared-signal`)通信。`cronjob` 创建 `/shared/syncjob.pause` 文件时,`syncjob` 会自动跳过轮询,报表同步完成后删除该文件恢复。 + +**可配置项(`.env`):** + +```bash +# cron 表达式,默认凌晨 4:00 +CRON_SCHEDULE=0 4 * * * +``` + +**修改执行时间示例:** + +```bash +# 凌晨 3:30 执行 +CRON_SCHEDULE=30 3 * * * + +# 每天凌晨 2:00 和 14:00 各执行一次 +CRON_SCHEDULE=0 2,14 * * * +``` + +**查看执行日志:** + +```bash +./deploy.sh logs cronjob +# 或实时查看 +docker logs -f youle-cronjob +``` + +**手动触发(测试用):** + +```bash +docker exec youle-cronjob /bin/sh /app/daily-task.sh +``` + +--- + +## 环境变量说明 + +所有硬编码的域名、数据库地址、密钥都已外部化为环境变量。**修改配置不再需要改代码,只需改 `.env` 文件。** + +### 变量分组总览 + +| 变量分组 | 说明 | +|---------|------| +| `API_DB_*` | 游戏核心 API 数据库 | +| `DLWEB_DB_*` | 代理后台主库 | +| `DLWEB_SLAVE_DB_*` | 代理后台从库 | +| `EXT_GAME_DB_*` | 外部游戏数据库(Synchronize / SynchronizeReportData) | +| `EXT_GRADE_DB_*` | 战绩数据库(game.php) | +| `EXT_DEV_DB_*` | 开发数据库(DEBUG 模式) | +| `REDIS_*` | Redis 配置 | +| `WX_MINI_*` | 微信小程序 AppID / Secret | +| `WX_OA_*` | 微信公众号 AppID / Secret | +| `WX_PAY_*` | 微信支付商户配置 | +| `REMOTE_CONFIG_*` | 远程配置(Gitee) | +| `ROOT_DOMAIN` | 父域名(自动推导 3 个子域名 + 所有派生 URL) | +| `SITE_*` | PHP 后端各站点域名 | +| `DLWEB_*_URL` | 前端 JS/HTML 硬编码域名替换 | +| `SYNC_INTERVAL` / `SYNC_PROCESSCOUNT` | syncjob 同步参数 | +| `CRON_SCHEDULE` | cronjob 执行时间 | +| `GAME_SERVER_QUERY_URL` | 游戏服务器查询地址 | +| `INTERNAL_WHITELIST` | IP 白名单(逗号分隔) | + +### 域名配置关系 + +``` +.env 配置 │ 自动推导结果 +─────────────────────┼────────────────────────────────────────────────────── +ROOT_DOMAIN │ API_DOMAIN = api. → Nginx 网站1(含 wxserver /wx/ 路由) +(唯一必填) │ DLWEB_DOMAIN = dlapi. → Nginx 网站2 + │ SITE_API_URL = https://api. + │ SITE_PAY_NOTIFY_URL = https://api. + │ SITE_OPEN_URL = http://open. + │ DLWEB_DL_API_V3_URL = https://dlapi. +``` + +> 推导由 `docker-compose.yml` 的 `environment:` 块完成,容器内所有派生变量均无需手动配置。如子域名不符合 `<前缀>.` 规律,可在 `.env` 中单独覆盖对应变量。 + +--- + +## 环境变量加载机制 + +### PHP 服务(env_config.php) + +所有 PHP 文件通过 `env($key, $default)` 函数读取配置: + +```php +// 优先读 OS 环境变量(Docker 场景),回退读 .env 文件 +$host = env('API_DB_HOST', 'localhost'); +``` + +加载优先级:Docker 容器环境变量(`docker-compose env_file`)> `.env` 文件 > 代码默认值。 + +### Node.js 服务(wxserver_daoqi) + +直接使用 `process.env.VARIABLE_NAME`,由 `docker-compose env_file` 注入。 + +### 前端 JS / HTML + +前端静态文件无法读取环境变量,通过 Docker entrypoint 脚本在容器启动时用 `sed` 替换硬编码域名: + +- `docker/api/docker-entrypoint.sh` — 替换 API 服务中的 JS 文件 +- `docker/dlweb/docker-entrypoint.sh` — 替换 DLWEB 服务中的 30+ 个 JS/HTML 文件 + +### Nginx 域名注入 + +`default.conf.template` 使用 `${API_DOMAIN}` / `${DLWEB_DOMAIN}` 占位符,Nginx 容器启动时通过 `envsubst` 自动替换。wxserver 不独立占用域名,通过 `api.xxx/wx/*` 路由接入。 + +--- + +## SSL 证书管理 + +使用 Let's Encrypt 免费证书,由 `certbot` 容器自动管理。 + +```bash +# 首次申请(必须先确保域名已解析) +./deploy.sh ssl-init + +# 用测试环境验证(不消耗申请限额) +./deploy.sh ssl-init --staging + +# 手动续签 +./deploy.sh ssl-renew + +# 查看证书状态 +./deploy.sh ssl-status +``` + +`certbot` 容器每 12 小时自动检查续签,证书到期前 30 天自动更新,无需人工干预。 + +--- + +## 数据持久化 + +以下 Docker volume 用于持久化存储: + +| Volume | 挂载点 | 说明 | +|--------|--------|------| +| `api-logs` | /var/www/html/logs | API 服务日志 | +| `api-source-logs` | /var/www/html/source/logs | API source 模块日志 | +| `dlweb-logs` | /var/www/html/api/logs | DLWEB 服务日志 | +| `dlweb-debug` | /var/www/html/api/ext/debug | DLWEB 同步/报表调试日志 | +| `redis-data` | /data | Redis 持久化数据 | +| `shared-signal` | /shared | syncjob ↔ cronjob 暂停信号文件 | +| `certbot-webroot` | /var/www/certbot | ACME 域名验证文件 | +| `certbot-certs` | /etc/letsencrypt | SSL 证书文件 | + +--- + +## 与原版(Windows 部署)的区别 + +| 项目 | 原版 Windows | Docker 版 | +|------|-------------|-----------| +| 环境 | Windows + Apache/XAMPP + Node.js | Docker 容器化 | +| 配置方式 | 硬编码在 PHP/JS/HTML 中 | 统一 `.env` 文件 | +| 域名切换 | 需改 30+ 个文件 | 只改 `.env` 的 3 个域名变量 | +| 数据库密码 | 明文散布在多个配置文件 | 集中在 `.env`(不进版本库) | +| SSL | 手动申请/部署证书 | certbot 自动申请 + 12h 自动续签 | +| Synchronize 轮询 | `HttpRequestService.exe`(Windows 服务) | `syncjob` 容器(Alpine + curl) | +| 每日定时任务 | Windows 计划任务 → `autorun.cmd` | `cronjob` 容器(Alpine crond) | +| 内网请求 | `localhost:80`(同机 Apache) | Docker 内网 `http://dlweb`(零公网流量) | +| PHP 环境变量 | `env_config.php` `env()` 函数 | `env()` 优先读容器环境变量,回退 `.env` 文件 | +| 微信支付配置 | 硬编码在 `WxPay.Config.php` | `define()` + class const,由 `env()` 动态读取 | +| 游戏服务器列表 | 硬编码在 `game.config.php` | 支持外部 JSON 文件覆盖(`GAME_SERVERS_CONFIG_FILE`) | + +--- + +## 常见运维操作 + +### 场景一:更换域名 + +当需要将服务迁移到新域名时(例如 `daoqijuyou.cn` → `newdomain.com`),只需改一个变量: + +**1. 修改 `.env` 中的 `ROOT_DOMAIN`** + +```bash +vim .env +``` + +```bash +# 改成新父域名,三个子域名自动跟随 +ROOT_DOMAIN=newdomain.com +``` + +`docker-compose.yml` 将自动推导: + +| 推导变量 | 结果 | +|---------|------| +| `API_DOMAIN` | `api.newdomain.com` | +| `DLWEB_DOMAIN` | `dlapi.newdomain.com` | +| `SITE_API_URL` | `https://api.newdomain.com` | +| `SITE_PAY_NOTIFY_URL` | `https://api.newdomain.com` | +| `SITE_OPEN_URL` | `http://open.newdomain.com` | +| `DLWEB_DL_API_V3_URL` | `https://dlapi.newdomain.com` | + +> **子域名不符合标准规律时**(如使用完全不同的前缀),在 `.env` 中单独覆盖对应变量即可,优先级高于自动推导: +> ```bash +> DLWEB_DOMAIN=dl-manage.newdomain.com # 覆盖单个子域名 +> ``` + +> **其他独立 URL 变量**(`DLWEB_SETTLE_URL`、`DLWEB_PROXY_URL`、`QQ_CALLBACK_URL` 等)仍需在 `.env` 中手动配置,详见 `.env.example` 中的注释。 + +**2. DNS 解析** + +确保新域名已指向服务器 IP: + +```bash +# 验证 DNS 解析 +nslookup api.newdomain.com +nslookup dlapi.newdomain.com +``` + +**3. 重新申请 SSL 证书** + +```bash +# 测试验证(不消耗申请限额) +./deploy.sh ssl-init --staging + +# 正式申请 +./deploy.sh ssl-init +``` + +**4. 重启所有服务** + +```bash +./deploy.sh restart +``` + +重启时会自动完成: +- Nginx 使用新域名的 `server_name` 和 SSL 证书 +- `docker-entrypoint.sh` 用新域名替换 JS/HTML 中的硬编码 URL +- PHP `env()` 读取新的环境变量值 + +**5. 更新微信后台配置** + +更换域名后,必须同步更新微信三个后台的域名白名单,否则对应功能会直接报错或静默失败。 + +> **关键路由说明:** Nginx 在 `api.newdomain.com` 上配置了 `/wx/` 前缀路由——以 `/wx/` 开头的请求会被反向代理到 wxserver(Node.js),其余请求仍由 PHP API 处理。wxserver 所有接口(包括小程序登录、公众号 OAuth)均通过 `api.newdomain.com/wx/*` 访问。 + +--- + +#### 5.1 微信小程序后台 + +> **入口:** [mp.weixin.qq.com](https://mp.weixin.qq.com) → 开发 → 开发管理 → 开发设置 → 服务器域名 + +| 配置项 | 作用 | 新值 | 不更新时的现象 | +|--------|------|------|--------------| +| **request 合法域名** | 小程序调用 `wx.request()` 请求 wxserver 后端接口 | `https://api.newdomain.com` | `wx.request` 直接报 `invalid url`,所有网络请求失败 | +| **业务域名** | 小程序 `` 组件加载公众号授权页(获取永久头像流程) | `api.newdomain.com` | 打开 web-view 时提示"不在业务域名列表中",授权页无法加载 | + +> **注意:** 小程序域名配置每月只能修改 5 次,且每项域名必须已备案并启用 HTTPS。 + +--- + +#### 5.2 微信公众号后台 + +> **入口:** [mp.weixin.qq.com](https://mp.weixin.qq.com) → 设置与开发 → 公众号设置 → 功能设置 + +**① 业务域名** + +| 配置值 | 用途 | +|--------|------| +| `api.newdomain.com` | 在公众号内打开的网页所在域名 | + +用户在微信内置浏览器中打开的游戏支付页(`api.newdomain.com`)必须在业务域名列表内,否则页面会被提示"域名不合法"或无法正常访问。 + +> **验证文件:** 添加业务域名时,微信要求在该域名根目录放置 `.txt` 验证文件。将微信提供的文件(如 `MP_verify_xxx.txt`)放入 `api/` 根目录,然后 `./deploy.sh rebuild api`。 + +--- + +**② 网页授权域名(最重要)** + +| 配置值 | 用途 | +|--------|------| +| `api.newdomain.com` | 公众号 OAuth2 授权回调域名 | + +**为什么是 `api.newdomain.com`:** +小程序内嵌 web-view 跳转到 `https://api.newdomain.com/wx/auth/oa/login`,Nginx `/wx/` 路由将此请求反向代理到 wxserver 的 `/auth/oa/login`,wxserver 再把用户重定向到微信授权页,`redirect_uri` 为 `https://api.newdomain.com/wx/auth/oa/callback`(通过 `WX_OA_REDIRECT_DOMAIN` 环境变量控制)。微信要求 `redirect_uri` 的域名必须在公众号后台的授权域名列表内,所以填 `api.newdomain.com`。 + +不更新的后果:授权跳转时微信直接拦截,显示 "redirect_uri 域名与后台配置不一致" 错误,永久头像获取功能完全不可用。 + +> **⚠️ 远程配置也需要同步修改:** `WX_OA_REDIRECT_DOMAIN` 未配置时,wxserver 会从远程配置文件读取 `minipro_api_url` key 作为回调域名(见 `wxserver_daoqi/config/index.js`)。即使 `.env` 中已正确填写 `WX_OA_REDIRECT_DOMAIN`,仍建议同步更新远程配置,避免环境变量配置丢失时出现静默回退至旧域名的问题。 +> +> 远程配置文件地址(Gitee Raw):`https://gitee.com/daoqijuyou/config/raw/master/update_jsonv2.txt` +> 找到 `minipro_api_url` 字段,更新值为:`api.newdomain.com/wx`(不含 `https://`,wxserver 会自动补充) + +> **验证文件:** 添加授权域名时,微信要求在该域名根目录放置一个 `.txt` 验证文件。将微信提供的验证文件(如 `MP_verify_xxx.txt`)直接放入 `api/` 根目录,然后重建 api 镜像使其生效: +> ```bash +> ./deploy.sh rebuild api +> ``` + +--- + +**② JS 接口安全域名** + +| 配置值 | 用途 | +|--------|------| +| `api.newdomain.com` | 微信 JS-SDK(`wx.config()`)页面所在域名 | + +**为什么是 `api.newdomain.com`:** +API 服务(`youle-api`)的 PHP 页面使用 jsapi_ticket 签名,生成 `wx.config()` 参数,使用微信 JS-SDK 调起支付(`WeixinJSBridge.invoke(getBrandWCPayRequest)`)。微信要求调用 JS-SDK 的页面所在域名必须在安全域名列表内。 + +不更新的后果:`wx.config()` 签名验证失败,微信支付按钮无法唤起支付界面,用户点击支付无反应。 + +--- + +#### 5.3 微信支付商户后台 + +> **入口:** [pay.weixin.qq.com](https://pay.weixin.qq.com) → 账户中心 → 商户信息 → 支付配置 → JSAPI 支付授权目录 + +| 配置值 | 用途 | +|--------|------| +| `https://api.newdomain.com/` | JSAPI 支付页面所在目录(必须包含末尾斜杠) | + +**为什么是 `api.newdomain.com`:** +JSAPI 支付页面(`api/source/apis/pay.php`)运行在 `api.newdomain.com` 域名下,统一下单时的 `notify_url`(支付回调通知地址)也由 `SITE_PAY_NOTIFY_URL`(默认值 `https://api.newdomain.com`)指定。微信支付要求发起支付的页面域名必须在授权目录白名单内。 + +不更新的后果:下单时提示"当前URL未注册",JSAPI 支付彻底无法使用。 + +--- + +#### 配置清单汇总 + +| 平台 | 入口页面 | 配置项 | 填写值 | +|------|---------|--------|--------| +| **微信小程序后台** | 开发 → 开发管理 → 开发设置 → 服务器域名 | request 合法域名 | `https://api.newdomain.com` | +| **微信小程序后台** | 开发 → 开发管理 → 开发设置 → 服务器域名 | 业务域名 | `api.newdomain.com` | +| **微信公众号后台** | 设置与开发 → 公众号设置 → 功能设置 | 业务域名 | `api.newdomain.com` | +| **微信公众号后台** | 设置与开发 → 公众号设置 → 功能设置 | 网页授权域名 | `api.newdomain.com` | +| **微信公众号后台** | 设置与开发 → 公众号设置 → 功能设置 | JS 接口安全域名 | `api.newdomain.com` | +| **微信支付商户后台** | 账户中心 → 商户信息 → 支付配置 | JSAPI 支付授权目录 | `https://api.newdomain.com/` | + +--- + +### 场景二:更换数据库地址 + +当数据库实例迁移(例如 RDS 升级、切换区域)时: + +**1. 修改 `.env` 中对应的数据库变量** + +```bash +vim .env +``` + +按数据库分组: + +| 数据库 | 需修改的变量 | 使用者 | +|--------|-------------|--------| +| API 主库 | `API_DB_HOST`, `API_DB_PORT`, `API_DB_USER`, `API_DB_PASSWORD` | api 服务 | +| 代理后台主库 | `DLWEB_DB_HOST`, `DLWEB_DB_PORT`, `DLWEB_DB_USER`, `DLWEB_DB_PASSWORD` | dlweb 服务 | +| 代理后台从库 | `DLWEB_SLAVE_DB_HOST`, `DLWEB_SLAVE_DB_PORT`, `DLWEB_SLAVE_DB_USER`, `DLWEB_SLAVE_DB_PASSWORD` | dlweb 读操作 | +| 外部游戏库 | `EXT_GAME_DB_HOST`, `EXT_GAME_DB_PORT`, `EXT_GAME_DB_USER`, `EXT_GAME_DB_PASSWORD` | Synchronize.php / SynchronizeReportData.php | +| 战绩库 | `EXT_GRADE_DB_HOST`, `EXT_GRADE_DB_PORT`, `EXT_GRADE_DB_USER`, `EXT_GRADE_DB_PASSWORD` | game.php 查询战绩 | +| 开发库 | `EXT_DEV_DB_HOST`, `EXT_DEV_DB_PORT`, `EXT_DEV_DB_USER`, `EXT_DEV_DB_PASSWORD` | DEBUG 模式 | + +**2. 重启受影响的服务** + +```bash +# 如果只改了 API 数据库 +docker compose restart api + +# 如果只改了 DLWEB 数据库 +docker compose restart dlweb + +# 如果改了外部游戏库(影响同步任务) +docker compose restart dlweb syncjob cronjob + +# 如果改了多个,直接全部重启 +./deploy.sh restart +``` + +**3. 验证连接** + +```bash +# 查看 API 日志是否有数据库连接错误 +docker logs --tail 20 youle-api + +# 查看 DLWEB 日志 +docker logs --tail 20 youle-dlweb + +# 查看同步任务是否正常 +docker logs --tail 10 youle-syncjob +``` + +> **提示:** 如果新数据库有 IP 白名单限制,需要将 Docker 宿主机的公网 IP 加入 RDS 白名单。 + +--- + +### 场景三:更换服务器(整体迁移) + +将整个 Docker 部署迁移到新服务器: + +**1. 打包项目文件** + +```bash +# 在旧服务器上 +cd /path/to/game-docker +# 排除不必要文件 +tar czf game-docker.tar.gz --exclude='.env' --exclude='game/' . +``` + +**2. 传输到新服务器** + +```bash +scp game-docker.tar.gz newserver:/opt/ +``` + +**3. 在新服务器上部署** + +```bash +cd /opt +tar xzf game-docker.tar.gz -C game-docker +cd game-docker + +# 复制并修改配置(新服务器 IP 可能不同) +cp .env.example .env +vim .env +``` + +**4. 确认修改项** + +| 检查项 | 是否需要改 | 说明 | +|--------|-----------|------| +| 域名(`*_DOMAIN`) | 域名不变则不改 | DNS 需指向新服务器 IP | +| 数据库地址(`*_DB_HOST`) | 通常不改 | RDS 地址不变,但需将新服务器 IP 加入白名单 | +| Redis 地址 | 不改 | Docker 内置 Redis,随容器迁移 | +| 微信/支付配置 | 不改 | AppID/Secret 与服务器无关 | +| 游戏服务器查询地址 | 看情况 | `GAME_SERVER_QUERY_URL` 如果游戏服务器也迁移了需改 | +| IP 白名单 | 可能需改 | `INTERNAL_WHITELIST` 加入新 IP | + +**5. 启动服务** + +```bash +chmod +x deploy.sh init-ssl.sh + +# 域名未变:DNS 改指向后直接启动 +./deploy.sh ssl-init # 新服务器需重新申请证书 +./deploy.sh up + +# 域名变了:参照「场景一:更换域名」 +``` + +**6. 验证所有服务** + +```bash +# 容器状态 +./deploy.sh status + +# 各服务健康检查 +curl -k https://api.yourdomain.com/ +curl -k https://dlapi.yourdomain.com/ +curl -k https://api.yourdomain.com/wx/api/login # wxserver 健康检查 + +# 定时任务运行正常 +docker logs --tail 5 youle-syncjob +docker logs --tail 5 youle-cronjob +``` + +--- + +### 场景四:仅更改 Redis 配置 + +```bash +vim .env +# 修改以下变量: +# REDIS_HOST=new-redis-host +# REDIS_PORT=6379 +# REDIS_PASSWORD=new-password + +# 重启受影响的服务 +docker compose restart dlweb redis +``` + +> **注意:** 如果使用 Docker 内置 Redis(默认),`REDIS_HOST` 应设为 `redis`(Docker 服务名),不是 `localhost`。 + +--- + +### 场景五:单独开启 / 关闭特定服务 + +所有服务均可独立启停,不影响其他运行中的容器。 + +#### 服务清单与依赖关系 + +| 服务名 | 容器名 | 说明 | 依赖 | +|--------|--------|------|------| +| `nginx` | `youle-nginx` | 反向代理 + SSL | api / dlweb / wxserver | +| `api` | `youle-api` | 游戏核心 API | — | +| `dlweb` | `youle-dlweb` | 代理管理后台 | redis | +| `wxserver` | `youle-wxserver` | 微信小程序后端 | — | +| `syncjob` | `youle-syncjob` | 每 30s 数据同步 | dlweb(内网) | +| `cronjob` | `youle-cronjob` | 每日凌晨报表任务 | dlweb(内网) | +| `redis` | `youle-redis` | 缓存 | — | +| `certbot` | `youle-certbot` | 证书自动续签 | — | + +#### 开启单个服务 + +```bash +cd /opt/youle/game-docker + +# 启动某个服务(若镜像不存在会自动构建) +docker compose up -d api +docker compose up -d dlweb +docker compose up -d wxserver +docker compose up -d syncjob +docker compose up -d cronjob +docker compose up -d redis +docker compose up -d nginx +docker compose up -d certbot +``` + +#### 关闭单个服务 + +```bash +# 停止并移除容器(数据 volume 不受影响) +docker compose stop api +docker compose stop syncjob +docker compose stop cronjob + +# 或者 stop + 移除容器(等效于 stop + rm) +docker compose rm -sf syncjob +``` + +> **注意:** `stop` 只停止容器,不删除;`rm -sf` 停止并删除容器(下次 `up` 会重新创建)。两种方式均不会丢失数据 volume。 + +#### 常见场景 + +**临时关闭同步任务(维护数据库时):** +```bash +docker compose stop syncjob cronjob +# 维护完成后恢复 +docker compose up -d syncjob cronjob +``` + +**只重建并重启某个业务服务(代码更新后):** +```bash +# 重新构建镜像并重启,其他服务不受影响 +docker compose up -d --build api +docker compose up -d --build dlweb +docker compose up -d --build wxserver +``` + +**关闭 certbot 自动续签(调试期间避免请求频率限制):** +```bash +docker compose stop certbot +# 调试完毕后恢复 +docker compose up -d certbot +``` + +**仅重启 nginx(修改配置后生效):** +```bash +docker compose restart nginx +# 或热重载(不中断连接) +docker exec youle-nginx nginx -s reload +``` + +**查看所有服务当前状态:** +```bash +docker compose ps +# 或 +./deploy.sh status +``` + +--- + +### 操作速查表 + +| 变更内容 | 修改 `.env` 中的变量 | 重启命令 | 额外操作 | +|---------|---------------------|---------|---------| +| 更换域名 | `ROOT_DOMAIN`(子域名不标准时单独覆盖) | `./deploy.sh ssl-init && ./deploy.sh restart` | DNS 解析 + 微信后台 | +| API 数据库 | `API_DB_*` | `docker compose restart api` | RDS 白名单 | +| DLWEB 数据库 | `DLWEB_DB_*` | `docker compose restart dlweb` | RDS 白名单 | +| 游戏数据库 | `EXT_GAME_DB_*` | `docker compose restart dlweb syncjob cronjob` | RDS 白名单 | +| 战绩数据库 | `EXT_GRADE_DB_*` | `docker compose restart dlweb` | RDS 白名单 | +| Redis | `REDIS_*` | `docker compose restart dlweb redis` | — | +| 微信密钥 | `WX_*` | `docker compose restart api dlweb wxserver` | 微信后台 | +| 整体迁移 | 视情况 | `./deploy.sh ssl-init && ./deploy.sh up` | DNS + RDS 白名单 | + +--- + +### 场景:修改本地文件后如何生效 + +不同文件在镜像中的处理方式不同,决定了改完代码后需要执行哪种操作。 + +#### 文件 → 操作对照表 + +| 文件路径 | 所属容器 | 载入方式 | 修改后需要执行的操作 | +|---------|---------|---------|-------------------| +| `api/**` | `youle-api` | `COPY` 进镜像 | `./deploy.sh rebuild api` 重建镜像 | +| `dlweb/**` | `youle-dlweb` | `COPY` 进镜像 | `./deploy.sh rebuild dlweb` 重建镜像 | +| `wxserver_daoqi/**` | `youle-wxserver` | `COPY` 进镜像 | `./deploy.sh rebuild wxserver` 重建镜像 | +| `env_config.php` | `youle-api` / `youle-dlweb` | `COPY` 进镜像 | `./deploy.sh rebuild api dlweb` 重建两个镜像 | +| `docker/api/Dockerfile` | `youle-api` | 构建定义 | `./deploy.sh rebuild api` | +| `docker/api/docker-entrypoint.sh` | `youle-api` | `COPY` 进镜像 | `./deploy.sh rebuild api` | +| `docker/dlweb/Dockerfile` | `youle-dlweb` | 构建定义 | `./deploy.sh rebuild dlweb` | +| `docker/dlweb/docker-entrypoint.sh` | `youle-dlweb` | `COPY` 进镜像 | `./deploy.sh rebuild dlweb` | +| `docker/wxserver/Dockerfile` | `youle-wxserver` | 构建定义 | `./deploy.sh rebuild wxserver` | +| `docker/nginx/default.conf.template` | `youle-nginx` | volume 挂载(`:ro`) | `scp` 上传 → `docker restart youle-nginx` | +| `docker/nginx/ssl-params.conf` | `youle-nginx` | volume 挂载(`:ro`) | `scp` 上传 → `docker restart youle-nginx` | +| `docker/syncjob/sync.sh` | `youle-syncjob` | volume 挂载(`:ro`) | `scp` 上传 → `docker restart youle-syncjob` | +| `docker/cronjob/entrypoint.sh` | `youle-cronjob` | volume 挂载(`:ro`) | `scp` 上传 → `docker restart youle-cronjob` | +| `docker/cronjob/daily-task.sh` | `youle-cronjob` | volume 挂载(`:ro`) | `scp` 上传 → `docker restart youle-cronjob` | +| `docker-compose.yml` | 所有容器 | compose 编排 | `docker compose up -d`(有变动的容器自动重建) | +| `.env` | 所有容器 | compose `env_file` | `docker compose up -d`(重新注入环境变量) | + +> **COPY vs 挂载的区别:** +> - **`COPY` 进镜像** — 文件被打进 Docker 镜像层,修改后必须重新 build 才能生效,容器内的文件是镜像的副本 +> - **volume 挂载** — 容器启动时直接挂载宿主机文件,只需 `scp` 传到服务器后重启容器即可,**无需重建镜像** + +#### 操作命令速查 + +```bash +# ── 需要重建镜像的操作(修改源码/Dockerfile/entrypoint 等 COPY 文件)── + +# 重建单个服务(无缓存,约 1-5 分钟) +./deploy.sh rebuild api # 只重建 API +./deploy.sh rebuild dlweb # 只重建 DLWEB +./deploy.sh rebuild wxserver # 只重建 wxserver +./deploy.sh rebuild api dlweb # 同时重建多个 + +# 重建所有服务 +./deploy.sh rebuild + + +# ── 只需 scp + 重启的操作(修改 volume 挂载文件,秒级生效)── + +# Nginx 配置 +scp docker/nginx/ssl-params.conf root@47.98.203.17:/opt/youle/game-docker/docker/nginx/ssl-params.conf +scp docker/nginx/default.conf.template root@47.98.203.17:/opt/youle/game-docker/docker/nginx/default.conf.template +ssh root@47.98.203.17 "docker restart youle-nginx" + +# syncjob 脚本 +scp docker/syncjob/sync.sh root@47.98.203.17:/opt/youle/game-docker/docker/syncjob/sync.sh +ssh root@47.98.203.17 "docker restart youle-syncjob" + +# cronjob 脚本 +scp docker/cronjob/entrypoint.sh root@47.98.203.17:/opt/youle/game-docker/docker/cronjob/entrypoint.sh +scp docker/cronjob/daily-task.sh root@47.98.203.17:/opt/youle/game-docker/docker/cronjob/daily-task.sh +ssh root@47.98.203.17 "docker restart youle-cronjob" + + +# ── .env / docker-compose.yml 变更 ── + +ssh root@47.98.203.17 "cd /opt/youle/game-docker && docker compose up -d" +# compose 会对比配置差异,只重启有变更的容器 +``` + +--- + +### 场景七:查看日志 + +本项目日志分为两类:**Docker 容器标准输出日志**(`docker logs`)和**业务调试日志**(写入 Docker Volume 的文件)。 + +#### 日志位置总览 + +| 日志类型 | 来源容器 | 查看方式 | 说明 | +|---------|---------|---------|------| +| Nginx 访问/错误日志 | `youle-nginx` | `docker logs` | HTTP 请求记录、SSL 错误 | +| API Apache 错误日志 | `youle-api` | `docker logs` | PHP Fatal Error、Apache 500 | +| API PHP 错误日志 | `youle-api` | `docker logs` | PHP Warning/Notice(写入 Apache 错误流)| +| API 业务日志 | `youle-api` | Volume 文件 | `/var/www/html/logs/YYYY-MM-DD.log` | +| API source 模块日志 | `youle-api` | Volume 文件 | `/var/www/html/source/logs/` | +| DLWEB Apache 错误日志 | `youle-dlweb` | `docker logs` | PHP Fatal Error、Apache 500 | +| DLWEB 业务日志 | `youle-dlweb` | Volume 文件 | `/var/www/html/api/logs/` | +| 同步任务调试日志 | `youle-dlweb` | Volume 文件 | `/var/www/html/api/ext/debug/synchronize/YYYY-MM-DD.log` | +| 报表同步调试日志 | `youle-dlweb` | Volume 文件 | `/var/www/html/api/ext/debug/SynchronizeReportData/YYYY-MM-DD.log` | +| 自动任务调试日志 | `youle-dlweb` | Volume 文件 | `/var/www/html/api/ext/debug/autotask/YYYY-MM-DD.log` | +| syncjob 运行日志 | `youle-syncjob` | `docker logs` | curl 请求结果,每 30s 一条 | +| cronjob 调度日志 | `youle-cronjob` | `docker logs` | cron 触发记录 | +| wxserver 运行日志 | `youle-wxserver` | `docker logs` | Node.js 标准输出 | + +--- + +#### 1. 查看容器标准输出日志(docker logs) + +```bash +# 查看最近 50 行(快速概览) +docker logs --tail 50 youle-nginx +docker logs --tail 50 youle-api +docker logs --tail 50 youle-dlweb +docker logs --tail 50 youle-syncjob +docker logs --tail 50 youle-cronjob +docker logs --tail 50 youle-wxserver + +# 实时跟踪日志(Ctrl+C 退出) +docker logs -f youle-api +docker logs -f youle-syncjob + +# 查看最近 100 行并实时跟踪 +docker logs --tail 100 -f youle-dlweb + +# 查看带时间戳的日志 +docker logs -t --tail 50 youle-nginx + +# 查看某时间段之后的日志(ISO 8601 格式) +docker logs --since 2026-04-13T10:00:00 youle-api +docker logs --since 1h youle-syncjob # 最近 1 小时 +``` + +> **提示:** `docker logs` 查看的是容器的 stdout/stderr 输出,PHP Fatal Error 和 Apache 错误均会出现在这里。 + +--- + +#### 2. 查看业务调试日志文件(Volume 文件) + +业务调试日志写入 Docker Volume,按日期分文件(`YYYY-MM-DD.log`)。 + +```bash +# --- API 业务日志 --- + +# 列出所有日志文件 +docker exec youle-api ls -lh /var/www/html/logs/ + +# 查看今天的 API 业务日志(末尾 50 行) +docker exec youle-api tail -50 /var/www/html/logs/$(date +%Y-%m-%d).log + +# 实时跟踪今天的 API 日志 +docker exec youle-api tail -f /var/www/html/logs/$(date +%Y-%m-%d).log + +# 查看完整内容 +docker exec youle-api cat /var/www/html/logs/$(date +%Y-%m-%d).log + +# --- API source 模块日志 --- +docker exec youle-api ls -lhR /var/www/html/source/logs/ +docker exec youle-api tail -50 /var/www/html/source/logs/$(date +%Y-%m-%d).log + + +# --- DLWEB 业务日志 --- + +# 列出所有日志文件 +docker exec youle-dlweb ls -lh /var/www/html/api/logs/ + +# 查看今天的 DLWEB 业务日志 +docker exec youle-dlweb tail -50 /var/www/html/api/logs/$(date +%Y-%m-%d).log + + +# --- 同步任务调试日志(Synchronize.php)--- + +# 列出日志文件 +docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/synchronize/ + +# 查看今天的同步日志(最近 50 行) +docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log + +# 实时跟踪同步日志(每 30s 刷新) +docker exec youle-dlweb tail -f /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log + + +# --- 报表同步调试日志(SynchronizeReportData.php)--- + +docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/SynchronizeReportData/ +docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/SynchronizeReportData/$(date +%Y-%m-%d).log + + +# --- 自动任务调试日志(autotask)--- + +docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/autotask/ +docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/autotask/$(date +%Y-%m-%d).log +``` + +--- + +#### 3. 一键查看所有关键日志(汇总命令) + +```bash +# 快速健康检查:同时查看 syncjob 状态 + 今天的同步调试日志末尾 +echo '=== syncjob 容器日志(最近20行)===' +docker logs --tail 20 youle-syncjob +echo +echo '=== 同步调试日志(最近20行)===' +docker exec youle-dlweb tail -20 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log +echo +echo '=== API 业务日志(最近20行)===' +docker exec youle-api tail -20 /var/www/html/logs/$(date +%Y-%m-%d).log +``` + +--- + +#### 4. 查看 Nginx 访问日志(请求排查) + +```bash +# Nginx 访问日志(最近 100 条请求) +docker logs --tail 100 youle-nginx + +# 过滤 HTTP 500 错误 +docker logs youle-nginx 2>&1 | grep ' 500 ' + +# 过滤特定 IP 的请求 +docker logs youle-nginx 2>&1 | grep '客户端IP地址' + +# 过滤 SSL/TLS 握手错误(客户端发送了非 HTTPS 请求到 80 端口) +docker logs youle-nginx 2>&1 | grep 'SSL_do_handshake\|no required SSL' +``` + +--- + +#### 5. 使用 deploy.sh 快捷查看 + +```bash +# 等效于 docker logs --tail 100 + 实时跟踪 +./deploy.sh logs api +./deploy.sh logs dlweb +./deploy.sh logs syncjob +./deploy.sh logs cronjob +./deploy.sh logs nginx +./deploy.sh logs wxserver + +# 加 -f 实时跟踪 +./deploy.sh logs -f api +./deploy.sh logs -f syncjob +``` + +### 调整同步频率 + +```bash +# 修改 .env +SYNC_INTERVAL=15 # 15 秒一次 +SYNC_PROCESSCOUNT=500 # 每次处理 500 条 + +# 重启 syncjob +docker compose restart syncjob +``` + +### 调整每日任务执行时间 + +```bash +# 修改 .env +CRON_SCHEDULE=30 3 * * * # 改为凌晨 3:30 + +# 重启 cronjob +docker compose restart cronjob +``` + +--- + +### 场景六:卸载和清理 + +根据需求选择卸载范围,操作不可逆,请提前备份重要数据。 + +#### 卸载前:备份关键数据 + +```bash +cd /opt/youle/game-docker + +# 1. 备份 .env(包含所有密钥,不在版本库中) +cp .env ~/youle-env-backup.env + +# 2. 备份 Redis 数据(如有业务数据存储在 Redis 中) +docker exec youle-redis redis-cli -a "${REDIS_PASSWORD}" BGSAVE +# 或直接备份 volume +docker run --rm -v game-docker_redis-data:/data -v ~/:/backup alpine \ + tar czf /backup/redis-data-backup.tar.gz /data + +# 3. 备份日志(按需) +docker cp youle-api:/var/www/html/logs ~/api-logs-backup +docker cp youle-dlweb:/var/www/html/api/logs ~/dlweb-logs-backup +``` + +--- + +#### 仅停止所有容器(保留镜像和数据,可随时恢复) + +```bash +cd /opt/youle/game-docker +docker compose stop + +# 验证 +docker compose ps +``` + +恢复运行: + +```bash +docker compose start +``` + +--- + +#### 停止并删除容器(保留镜像、volumes 和项目文件) + +```bash +cd /opt/youle/game-docker +docker compose down + +# 验证容器已删除 +docker ps -a | grep youle +``` + +> 此操作不会删除数据 volume 和已构建的镜像,再次 `docker compose up -d` 可快速恢复,无需重新构建。 + +--- + +#### 完全卸载(删除容器 + volumes + 镜像) + +> **警告:** 以下操作将删除 Redis 缓存和所有日志数据,不可恢复。 + +```bash +cd /opt/youle/game-docker + +# 停止并删除容器 + 所有相关 volumes +docker compose down -v + +# 删除本项目构建的镜像 +docker rmi game-docker-api game-docker-dlweb game-docker-wxserver 2>/dev/null || true + +# 验证 +docker volume ls | grep game-docker +docker images | grep game-docker +``` + +--- + +#### 彻底清理(删除容器 + volumes + 镜像 + 项目目录 + SSL 证书) + +> **警告:** SSL 证书删除后需重新申请(Let's Encrypt 有频率限制,每 7 天最多 5 次)。 + +```bash +cd /opt/youle/game-docker + +# 1. 停止并删除容器 + volumes +docker compose down -v + +# 2. 删除构建镜像 +docker rmi game-docker-api game-docker-dlweb game-docker-wxserver 2>/dev/null || true + +# 3. 清理 Docker 悬空资源(可选) +docker system prune -f + +# 4. 删除 SSL 证书(Let's Encrypt) +docker run --rm -v game-docker_certbot-certs:/etc/letsencrypt certbot/certbot delete \ + --cert-name "${API_DOMAIN}" --non-interactive 2>/dev/null || true +docker run --rm -v game-docker_certbot-certs:/etc/letsencrypt certbot/certbot delete \ + --cert-name "${DLWEB_DOMAIN}" --non-interactive 2>/dev/null || true +# 或直接删除证书 volume +docker volume rm game-docker_certbot-certs game-docker_certbot-webroot 2>/dev/null || true + +# 5. 删除项目目录 +rm -rf /opt/youle/game-docker +``` + +--- + +#### 删除单个服务的容器和镜像 + +```bash +cd /opt/youle/game-docker + +# 以 dlweb 为例 +docker compose stop dlweb +docker compose rm -sf dlweb +docker rmi game-docker-dlweb + +# 下次启动时会重新构建 +docker compose up -d --build dlweb +``` + +--- + +#### 清理定时任务残留 + +```bash +# 停止并删除 syncjob / cronjob 容器 +docker compose stop syncjob cronjob +docker compose rm -sf syncjob cronjob + +# 清理共享信号 volume(如有残留暂停文件) +docker run --rm -v game-docker_shared-signal:/shared alpine rm -f /shared/syncjob.pause + +# 如需完全删除共享 volume +docker volume rm game-docker_shared-signal +``` + +--- + +#### 卸载操作速查 + +| 目标 | 命令 | 保留内容 | +|------|------|----------| +| 临时停止(可恢复) | `docker compose stop` | 容器 / 镜像 / volumes / 文件 | +| 删除容器 | `docker compose down` | 镜像 / volumes / 文件 | +| 删除容器 + volumes | `docker compose down -v` | 镜像 / 文件 | +| 删除容器 + volumes + 镜像 | `docker compose down -v` + `docker rmi ...` | 文件 | +| 完全清理 | 上述全部 + `rm -rf /opt/youle/game-docker` | 无 | + +--- + +### 场景八:清除日志 + +> **说明:** Volume 文件日志(业务调试日志)和 Docker 容器日志(stdout)需要分别清理。清理前建议先备份或确认不再需要这些日志。 + +#### 1. 清除 Docker 容器日志(stdout/stderr) + +Docker 容器的标准输出日志存储在宿主机 `/var/lib/docker/containers/<容器ID>/<容器ID>-json.log`,直接清空该文件即可。 + +```bash +# 清空单个容器的 docker logs(容器保持运行,不中断服务) +truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-syncjob) +truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-api) +truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-dlweb) +truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-nginx) +truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-cronjob) +truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-wxserver) + +# 一键清空所有 youle-* 容器的 docker logs +for name in youle-nginx youle-api youle-dlweb youle-wxserver youle-syncjob youle-cronjob youle-redis youle-certbot; do + logpath=$(docker inspect --format='{{.LogPath}}' $name 2>/dev/null) + [ -n "$logpath" ] && truncate -s 0 "$logpath" && echo "Cleared: $name" +done +``` + +> **注意:** `truncate -s 0` 清空文件内容,不删除文件,容器无需重启,后续日志正常写入。 + +--- + +#### 2. 清除业务调试日志文件(Volume 内的按日期文件) + +```bash +# --- 清除 API 业务日志 --- + +# 删除所有历史日志(保留今天) +docker exec youle-api sh -c " + find /var/www/html/logs/ -name '*.log' ! -name '$(date +%Y-%m-%d).log' -delete +" + +# 清空今天的日志文件(保留文件,清空内容) +docker exec youle-api truncate -s 0 /var/www/html/logs/$(date +%Y-%m-%d).log + +# 删除全部日志文件(含今天) +docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log' + + +# --- 清除 DLWEB 业务日志 --- + +# 删除所有历史日志(保留今天) +docker exec youle-dlweb sh -c " + find /var/www/html/api/logs/ -name '*.log' ! -name '$(date +%Y-%m-%d).log' -delete +" + +# 删除全部日志文件 +docker exec youle-dlweb sh -c 'rm -f /var/www/html/api/logs/*.log' + + +# --- 清除同步任务调试日志 --- + +# 删除 30 天前的旧日志 +docker exec youle-dlweb find /var/www/html/api/ext/debug/ -name '*.log' -mtime +30 -delete + +# 删除所有历史日志(保留今天) +docker exec youle-dlweb sh -c " + find /var/www/html/api/ext/debug/ -name '*.log' ! -name '$(date +%Y-%m-%d).log' -delete +" + +# 清空今天的同步日志(保留文件) +docker exec youle-dlweb truncate -s 0 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log + +# 删除全部调试日志(所有子目录) +docker exec youle-dlweb sh -c ' + rm -f /var/www/html/api/ext/debug/synchronize/*.log + rm -f /var/www/html/api/ext/debug/SynchronizeReportData/*.log + rm -f /var/www/html/api/ext/debug/autotask/*.log +' +``` + +--- + +#### 3. 一键清理所有日志(docker logs + 业务日志) + +> **警告:** 以下脚本将清空所有容器日志和全部业务日志文件,执行前请确认不需要保留现有日志。 + +```bash +#!/bin/bash +# 一键清理所有日志(在服务器 /opt/youle/game-docker/ 目录下执行) + +echo '=== 清空 Docker 容器日志 ===' +for name in youle-nginx youle-api youle-dlweb youle-wxserver youle-syncjob youle-cronjob youle-redis youle-certbot; do + logpath=$(docker inspect --format='{{.LogPath}}' $name 2>/dev/null) + if [ -n "$logpath" ] && [ -f "$logpath" ]; then + truncate -s 0 "$logpath" + echo " Cleared docker log: $name" + fi +done + +echo '=== 清空业务日志文件 ===' +# API 业务日志 +docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log /var/www/html/source/logs/*.log 2>/dev/null; echo " Cleared api logs"' + +# DLWEB 业务日志 + 调试日志 +docker exec youle-dlweb sh -c ' + rm -f /var/www/html/api/logs/*.log 2>/dev/null + rm -f /var/www/html/api/ext/debug/synchronize/*.log 2>/dev/null + rm -f /var/www/html/api/ext/debug/SynchronizeReportData/*.log 2>/dev/null + rm -f /var/www/html/api/ext/debug/autotask/*.log 2>/dev/null + echo " Cleared dlweb logs" +' + +echo '=== 完成 ===' +``` + +将以上内容保存为服务器上的 `/opt/youle/game-docker/clear-logs.sh`,赋予执行权限后使用: + +```bash +chmod +x /opt/youle/game-docker/clear-logs.sh +/opt/youle/game-docker/clear-logs.sh +``` + +--- + +#### 4. 日志清理速查 + +> 以下命令在 **SSH 登录服务器后**直接执行(无需 `ssh root@...` 前缀)。 + +**查看日志** + +| 目标 | 命令 | +|------|------| +| nginx 访问日志(末尾50行) | `docker logs --tail 50 youle-nginx` | +| nginx 访问日志(实时跟踪) | `docker logs -f youle-nginx` | +| wxserver 日志(末尾50行) | `docker logs --tail 50 youle-wxserver` | +| wxserver 日志(实时跟踪) | `docker logs -f youle-wxserver` | +| API PHP 错误日志(末尾50行) | `docker exec youle-api tail -50 /var/log/apache2/php_errors.log` | +| API 业务日志_今天(末尾50行) | `docker exec youle-api tail -50 /var/www/html/logs/$(date +%Y-%m-%d).log` | +| API 业务日志_今天(完整) | `docker exec youle-api cat /var/www/html/logs/$(date +%Y-%m-%d).log` | +| API 业务日志_今天(实时跟踪) | `docker exec youle-api tail -f /var/www/html/logs/$(date +%Y-%m-%d).log` | +| 列出 API 业务日志文件 | `docker exec youle-api ls -lh /var/www/html/logs/` | +| 同步调试日志_今天(末尾50行) | `docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log` | +| 同步调试日志_今天(实时跟踪) | `docker exec youle-dlweb tail -f /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log` | +| 列出同步调试日志文件 | `docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/synchronize/` | +| syncjob 任务日志(末尾50行) | `docker logs --tail 50 youle-syncjob` | +| cronjob 任务日志(末尾50行) | `docker logs --tail 50 youle-cronjob` | + +**清理日志** + +| 目标 | 命令 | +|------|------| +| 清空 nginx docker logs | `truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-nginx)` | +| 清空 wxserver docker logs | `truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-wxserver)` | +| 清空 API docker logs | `truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-api)` | +| 清空 dlweb docker logs | `truncate -s 0 $(docker inspect --format='{{.LogPath}}' youle-dlweb)` | +| 清空所有容器 docker logs | `for n in youle-nginx youle-api youle-dlweb youle-wxserver youle-syncjob youle-cronjob youle-redis youle-certbot; do truncate -s 0 $(docker inspect --format='{{.LogPath}}' $n 2>/dev/null) 2>/dev/null; done` | +| 清空今天 API 业务日志 | `docker exec youle-api truncate -s 0 /var/www/html/logs/$(date +%Y-%m-%d).log` | +| 清空今天同步调试日志 | `docker exec youle-dlweb truncate -s 0 /var/www/html/api/ext/debug/synchronize/$(date +%Y-%m-%d).log` | +| 删除 API 全部历史日志 | `docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log'` | +| 删除调试日志 30 天前旧文件 | `docker exec youle-dlweb find /var/www/html/api/ext/debug/ -name '*.log' -mtime +30 -delete` | +| 删除调试日志全部文件 | `docker exec youle-dlweb sh -c 'rm -f /var/www/html/api/ext/debug/synchronize/*.log /var/www/html/api/ext/debug/SynchronizeReportData/*.log /var/www/html/api/ext/debug/autotask/*.log'` | +| 一键清理全部日志 | `/opt/youle/game-docker/clear-logs.sh` | +``` + +--- + +### 场景九:从 Windows 本地查看和删除业务日志 + +> 以下命令在 **Windows PowerShell** 中执行,通过 SSH 直接读取服务器上的业务日志文件。 +> 日志来源目录(本地代码映射到容器的 Volume): +> - `api/logs/` → 容器内 `/var/www/html/logs/` +> - `dlweb/api/ext/debug/` → 容器内 `/var/www/html/api/ext/debug/` + +--- + +#### 查看日志 + +```powershell +# ── 获取今天的日期字符串 ────────────────────────────────────────── +$today = (Get-Date -Format "yyyy-MM-dd") + +# ── api/logs ───────────────────────────────────────────────────── + +# 列出所有日志文件 +ssh root@47.98.203.17 "docker exec youle-api ls -lh /var/www/html/logs/" + +# 查看今天的 API 业务日志(末尾 50 行) +ssh root@47.98.203.17 "docker exec youle-api tail -50 /var/www/html/logs/$today.log" + +# 查看今天的 API 业务日志(完整内容) +ssh root@47.98.203.17 "docker exec youle-api cat /var/www/html/logs/$today.log" + +# 实时跟踪今天的 API 业务日志(Ctrl+C 停止) +ssh root@47.98.203.17 "docker exec youle-api tail -f /var/www/html/logs/$today.log" + + +# ── dlweb/api/ext/debug/synchronize ────────────────────────────── + +# 列出所有同步调试日志文件 +ssh root@47.98.203.17 "docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/synchronize/" + +# 查看今天的同步调试日志(末尾 50 行) +ssh root@47.98.203.17 "docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/synchronize/$today.log" + +# 查看今天的同步调试日志(完整内容) +ssh root@47.98.203.17 "docker exec youle-dlweb cat /var/www/html/api/ext/debug/synchronize/$today.log" + +# 实时跟踪同步调试日志(Ctrl+C 停止) +ssh root@47.98.203.17 "docker exec youle-dlweb tail -f /var/www/html/api/ext/debug/synchronize/$today.log" + + +# ── dlweb/api/ext/debug/SynchronizeReportData ──────────────────── + +ssh root@47.98.203.17 "docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/SynchronizeReportData/" +ssh root@47.98.203.17 "docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/SynchronizeReportData/$today.log" + + +# ── dlweb/api/ext/debug/autotask ───────────────────────────────── + +ssh root@47.98.203.17 "docker exec youle-dlweb ls -lh /var/www/html/api/ext/debug/autotask/" +ssh root@47.98.203.17 "docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/autotask/$today.log" + + +# ── 一键汇总:同时查看两个目录今天的日志末尾 ───────────────────── + +$today = (Get-Date -Format "yyyy-MM-dd") +ssh root@47.98.203.17 @" +echo '=== api/logs/$today.log ===' +docker exec youle-api tail -30 /var/www/html/logs/$today.log +echo +echo '=== synchronize/$today.log ===' +docker exec youle-dlweb tail -30 /var/www/html/api/ext/debug/synchronize/$today.log +echo +echo '=== SynchronizeReportData/$today.log ===' +docker exec youle-dlweb tail -30 /var/www/html/api/ext/debug/SynchronizeReportData/$today.log +"@ +``` + +--- + +#### 删除日志 + +```powershell +# ── 获取今天的日期字符串 ────────────────────────────────────────── +$today = (Get-Date -Format "yyyy-MM-dd") + +# ── api/logs ───────────────────────────────────────────────────── + +# 清空今天的 API 业务日志(保留文件,清空内容) +ssh root@47.98.203.17 "docker exec youle-api truncate -s 0 /var/www/html/logs/$today.log" + +# 删除今天的 API 业务日志文件 +ssh root@47.98.203.17 "docker exec youle-api rm -f /var/www/html/logs/$today.log" + +# 删除所有 API 业务日志(保留今天) +ssh root@47.98.203.17 "docker exec youle-api sh -c `"find /var/www/html/logs/ -name '*.log' ! -name '$today.log' -delete`"" + +# 删除全部 API 业务日志(含今天) +ssh root@47.98.203.17 "docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log'" + + +# ── dlweb/api/ext/debug ────────────────────────────────────────── + +# 清空今天的同步调试日志(保留文件,清空内容) +ssh root@47.98.203.17 "docker exec youle-dlweb truncate -s 0 /var/www/html/api/ext/debug/synchronize/$today.log" + +# 删除今天的同步调试日志文件 +ssh root@47.98.203.17 "docker exec youle-dlweb rm -f /var/www/html/api/ext/debug/synchronize/$today.log" + +# 删除 30 天前的旧调试日志(三个子目录) +ssh root@47.98.203.17 "docker exec youle-dlweb find /var/www/html/api/ext/debug/ -name '*.log' -mtime +30 -delete" + +# 删除所有调试日志(保留今天,三个子目录) +ssh root@47.98.203.17 "docker exec youle-dlweb sh -c `"find /var/www/html/api/ext/debug/ -name '*.log' ! -name '$today.log' -delete`"" + +# 删除全部调试日志(含今天,三个子目录) +ssh root@47.98.203.17 @" +docker exec youle-dlweb sh -c ' + rm -f /var/www/html/api/ext/debug/synchronize/*.log + rm -f /var/www/html/api/ext/debug/SynchronizeReportData/*.log + rm -f /var/www/html/api/ext/debug/autotask/*.log +' +"@ + + +# ── 一键清理:api/logs + dlweb/api/ext/debug 全部日志 ──────────── + +ssh root@47.98.203.17 @" +docker exec youle-api sh -c 'rm -f /var/www/html/logs/*.log' +docker exec youle-dlweb sh -c ' + rm -f /var/www/html/api/ext/debug/synchronize/*.log + rm -f /var/www/html/api/ext/debug/SynchronizeReportData/*.log + rm -f /var/www/html/api/ext/debug/autotask/*.log +' +echo "Done" +"@ +``` + +--- + +#### 快捷速查表 + +| 操作 | PowerShell 命令 | +|------|----------------| +| 查看 api/logs 今天日志 | `ssh root@47.98.203.17 "docker exec youle-api cat /var/www/html/logs/$(Get-Date -Format 'yyyy-MM-dd').log"` | +| 查看同步调试日志 | `ssh root@47.98.203.17 "docker exec youle-dlweb tail -50 /var/www/html/api/ext/debug/synchronize/$(Get-Date -Format 'yyyy-MM-dd').log"` | +| 实时跟踪同步日志 | `ssh root@47.98.203.17 "docker exec youle-dlweb tail -f /var/www/html/api/ext/debug/synchronize/$(Get-Date -Format 'yyyy-MM-dd').log"` | +| 清空 api/logs 今天日志 | `ssh root@47.98.203.17 "docker exec youle-api truncate -s 0 /var/www/html/logs/$(Get-Date -Format 'yyyy-MM-dd').log"` | +| 清空同步调试日志 | `ssh root@47.98.203.17 "docker exec youle-dlweb truncate -s 0 /var/www/html/api/ext/debug/synchronize/$(Get-Date -Format 'yyyy-MM-dd').log"` | +| 删除全部调试日志 | `ssh root@47.98.203.17 "docker exec youle-dlweb sh -c 'rm -f /var/www/html/api/ext/debug/synchronize/*.log /var/www/html/api/ext/debug/SynchronizeReportData/*.log /var/www/html/api/ext/debug/autotask/*.log'"` | diff --git a/codes/agent/game-docker/api/.tags b/codes/agent/game-docker/api/.tags index e457f3f..cc1c39a 100644 --- a/codes/agent/game-docker/api/.tags +++ b/codes/agent/game-docker/api/.tags @@ -1,3373 +1,3373 @@ -!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ -!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ -!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ -!_TAG_PROGRAM_NAME Exuberant Ctags // -!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ -!_TAG_PROGRAM_VERSION 5.8 // -ALIPAY_GATEWAY .\framework\model\payment.mod.php /^define('ALIPAY_GATEWAY', 'https:\/\/mapi.alipay.com\/gateway.do');$/;" d -APIMap .\loginLib\qq\API\class\QC.class.php /^ $this->APIMap = array($/;" v -AbstractLexer .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^abstract class AbstractLexer$/;" c -AccountConflict .\source\apis\Users.php /^class AccountConflict extends \\Exception$/;" c -AliasConflict .\source\apis\Users.php /^class AliasConflict extends \\Exception$/;" c -Annotation .\lib\Doctrine\Common\Annotations\Annotation.php /^class Annotation$/;" c -Annotation .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function Annotation()$/;" f -AnnotationCleaner .\lib\phprs\util\AnnotationCleaner.php /^class AnnotationCleaner$/;" c -AnnotationException .\lib\Doctrine\Common\Annotations\AnnotationException.php /^class AnnotationException extends \\Exception$/;" c -AnnotationReader .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^class AnnotationReader implements Reader$/;" c -AnnotationReader .\lib\phprs\util\AnnotationReader.php /^class AnnotationReader{$/;" c -AnnotationRegistry .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^final class AnnotationRegistry$/;" c -AnnotationTest .\lib\phprs\util\MetaInfo.php /^class AnnotationTest{$/;" c -Annotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function Annotations()$/;" f -Annotations .\lib\phprs\util\DocParser.php /^ private function Annotations($record_doc = false)$/;" f -ApcCache .\lib\phprs\util\ApcCache.php /^class ApcCache implements KVCatchInterface$/;" c -ApiExporter .\lib\phprs\apis\ApiExporter.php /^class ApiExporter$/;" c -Appport .\source\apis\appport.php /^class Appport$/;" c -ArrayEntry .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function ArrayEntry()$/;" f -ArrayEntry .\lib\phprs\util\DocParser.php /^ private function ArrayEntry()$/;" f -Arrayx .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function Arrayx()$/;" f -Arrayx .\lib\phprs\util\DocParser.php /^ private function Arrayx()$/;" f -Attribute .\lib\Doctrine\Common\Annotations\Annotation\Attribute.php /^final class Attribute$/;" c -Attributes .\lib\Doctrine\Common\Annotations\Annotation\Attributes.php /^final class Attributes$/;" c -AutoClassLoader .\lib\phprs\util\AutoClassLoader.php /^class AutoClassLoader{$/;" c -B .\payment\resource\script\kindeditor\kindeditor-min.js /^\/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http:\/\/www.kindsoft.net\/license.php *\/(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;cLog_Status = PhpLog::OPEN_FAILED;$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->Log_Status = PhpLog::LOG_OPEN;$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->Log_Status = PhpLog::OPEN_FAILED;$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ if ( $this->Log_Status == PhpLog::LOG_OPEN && $this->priority != PhpLog::OFF )$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ public $Log_Status = PhpLog::LOG_CLOSED;$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->Log_Status = PhpLog::OPEN_FAILED;$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->Log_Status = PhpLog::LOG_OPEN;$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->Log_Status = PhpLog::OPEN_FAILED;$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ if ( $this->Log_Status == PhpLog::LOG_OPEN && $this->priority != PhpLog::OFF )$/;" v -Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ public $Log_Status = PhpLog::LOG_CLOSED;$/;" v -Logger .\lib\phprs\util\Logger.php /^class Logger$/;" c -Login .\source\apis\login.php /^class Login {$/;" c -MAIN_DOMAIN .\loginLib\qq\test\comm\session.php /^define("MAIN_DOMAIN", ".webpluz.org"); $/;" d -MAIN_DOMAIN .\loginLib\qq\test\comm\session2.php /^define("MAIN_DOMAIN", ".oauth.com"); \/\/设置主域名$/;" d -Message .\source\apis\HelloWorld.php /^class Message{$/;" c -MessagePump .\lib\phprs\util\MessagePump.php /^class MessagePump$/;" c -MessageQueue .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->MessageQueue = array();$/;" v -MessageQueue .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ public $MessageQueue;$/;" v -MessageQueue .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->MessageQueue = array();$/;" v -MessageQueue .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ public $MessageQueue;$/;" v -MetaInfo .\lib\phprs\util\MetaInfo.php /^class MetaInfo$/;" c -MethodCall .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function MethodCall()$/;" f -MethodCall .\lib\phprs\util\DocParser.php /^ private function MethodCall()$/;" f -Native .\lib\phprs\ezsql\Native.php /^class Native$/;" c -NestedStringCut .\lib\phprs\util\NestedStringCut.php /^class NestedStringCut{$/;" c -NewThenInit .\lib\phprs\util\NewThenInit.php /^class NewThenInit$/;" c -NotFound .\lib\phprs\util\exceptions\NotFound.php /^class NotFound extends \\Exception$/;" c -ORDER_BY_ASC .\lib\phprs\ezsql\Sql.php /^ static public $ORDER_BY_ASC ='ASC';$/;" v -ORDER_BY_DESC .\lib\phprs\ezsql\Sql.php /^ static public $ORDER_BY_DESC ='DESC';$/;" v -Oauth .\loginLib\qq\API\class\Oauth.class.php /^class Oauth{$/;" c -Object .\payment\resource\script\kindeditor\kindeditor-min.js /^\/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http:\/\/www.kindsoft.net\/license.php *\/(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;c__impl__ = $factory->createRawObject('phprs\\\\util\\\\IoCContainer', [$/;" v -__impl__ .\lib\phprs\util\IoCFactoryEx.php /^ private $__impl__;$/;" v -__invoke .\lib\phprs\Invoker.php /^ public function __invoke($request, &$response)$/;" f -__invoke .\lib\phprs\Router.php /^ public function __invoke($request=null, &$respond=null){$/;" f -__invoke .\lib\phprs\RouterWithCache.php /^ function __invoke($request=null, &$respond=null){$/;" f -__invoke .\lib\phprs\util\FileExpiredChecker.php /^ public function __invoke($data, $create_time){$/;" f -__invoke .\lib\phprs\util\SerializableFunc.php /^ public function __invoke(){$/;" f -__isset .\lib\phprs\util\IoCFactoryEx.php /^ public function __isset ($name){$/;" f -__set .\lib\Doctrine\Common\Annotations\Annotation.php /^ public function __set($name, $value)$/;" f -__set .\lib\phprs\util\IoCFactoryEx.php /^ public function __set($name , $value ){$/;" f -__toString .\lib\phprs\ezsql\Native.php /^ public function __toString(){$/;" f -__unset .\lib\phprs\util\IoCFactoryEx.php /^ public function __unset ($name){$/;" f -__wakeup .\lib\phprs\util\AutoClassLoader.php /^ function __wakeup(){$/;" f -_applyAPI .\loginLib\qq\API\class\QC.class.php /^ private function _applyAPI($arr, $argsList, $baseUrl, $method){$/;" f -_callback_03 .\lib\Peekmo\JsonPath\JsonPath.php /^ private function _callback_03($m, $l, $x, $v, $p)$/;" f -_callback_04 .\lib\Peekmo\JsonPath\JsonPath.php /^ private function _callback_04($m, $l, $x, $v, $p)$/;" f -_callback_05 .\lib\Peekmo\JsonPath\JsonPath.php /^ private function _callback_05($m, $l, $x, $v, $p)$/;" f -_createDir .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private function _createDir($dir)$/;" f -_createDir .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private function _createDir($dir)$/;" f -a .\framework\function\global.func.php /^ $a = ($a + 1) % 256;$/;" v -a.encode .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f -a.getbyte .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f -a.getbyte64 .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f -a.makeDOMException .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f -aa .\framework\function\global.func.php /^ $aa = 'href="?' . http_build_query($_GET) . '"';$/;" v -aa .\framework\function\global.func.php /^ $aa = 'href="?' . str_replace('*', $i, $url) . '"';$/;" v -aa .\framework\function\global.func.php /^ $aa = 'href="javascript:;" page="' . $i . '" '. ($callbackfunc ? 'onclick="'.$callbackfunc.'(\\'' . $_W['script_name'] . $url . '\\', \\'' . $i . '\\', this);return false;"' : '');$/;" v -acc .\payment\alipay\notify.php /^ $acc = new coupon($log['acid']);$/;" v -acc .\payment\alipay\return.php /^ $acc = new coupon($log['acid']);$/;" v -acc .\payment\baifubao\notify.php /^ $acc = new coupon($log['acid']);$/;" v -acc .\payment\unionpay\notify.php /^ $acc = new coupon($log['acid']);$/;" v -acc .\payment\unionpay\pay.php /^ $acc = new coupon($log['acid']);$/;" v -acc .\payment\wechat\notify.php /^ $acc = new coupon($log['acid']);$/;" v -access_expire_date .\framework\model\user.mod.php /^ $access_expire_date = date("Y-m-d",strtotime("+30 day"));$/;" v -access_expire_time .\framework\model\user.mod.php /^ $access_expire_time = strtotime($access_expire_date);$/;" v -access_expire_time .\framework\model\user.mod.php /^ $access_expire_time = time();$/;" v -access_id .\framework\model\user.mod.php /^ $access_id = "gm_".random(13,false);$/;" v -access_id_exist .\framework\model\user.mod.php /^ $access_id_exist = "gm_".random(13,false);$/;" v -access_id_exist .\framework\model\user.mod.php /^ $access_id_exist = Sql::select('ims_interaction_users.sid')$/;" v -access_key .\framework\model\user.mod.php /^ $access_key = random(36,false);$/;" v -access_key_exist .\framework\model\user.mod.php /^ $access_key_exist = random(36,false);$/;" v -access_key_exist .\framework\model\user.mod.php /^ $access_key_exist = Sql::select('ims_interaction_users.sid')$/;" v -access_token .\source\apis\login.php /^ $access_token = $qc->qq_callback();$/;" v -account .\framework\class\weixin.account.class.php /^ $this->account = $account;$/;" v -account .\framework\class\weixin.account.class.php /^ protected $account = null;\/\/ 公众号信息$/;" v -account .\source\apis\login.php /^ $account = array();$/;" v -action .\lib\phprs\util\MessagePump.php /^ $action = array_pop($actions);$/;" v -action .\lib\phprs\util\MessagePump.php /^ $action = array($/;" v -action_queues .\lib\phprs\util\MessagePump.php /^ $this->action_queues = array();$/;" v -action_queues .\lib\phprs\util\MessagePump.php /^ private $action_queues = array(); \/\/ 执行队列$/;" v -actions .\lib\phprs\util\MessagePump.php /^ $actions = &$this->action_queues[$queue_id];$/;" v -add .\framework\function\communication.func.php /^ $add = strlen($eol);$/;" v -add .\lib\Peekmo\JsonPath\JsonStore.php /^ public function add($parentexpr, $value, $name = "")$/;" f -addClass .\lib\phprs\util\AutoClassLoader.php /^ public function addClass($name, $file){$/;" f -addClassMap .\lib\phprs\util\ClassLoader.php /^ static public function addClassMap($map, $replace=false){$/;" f -addGlobalIgnoredName .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ static public function addGlobalIgnoredName($name)$/;" f -addInclude .\lib\phprs\util\ClassLoader.php /^ static public function addInclude($path){$/;" f -addMapControl .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function addMapControl(){$/;" f -addNamespace .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function addNamespace($namespace)$/;" f -addNamespace .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function addNamespace($namespace)$/;" f -addRoutes .\lib\phprs\Router.php /^ public function addRoutes($apis_dir, $class=null, $method=null){$/;" f -addSpace .\lib\phprs\ezsql\SqlConetxt.php /^ public function appendSql($sql, $addSpace=true){$/;" v -aes_decode .\framework\function\global.func.php /^function aes_decode($message, $encodingaeskey = '', $appid = '') {$/;" f -aes_encode .\framework\function\global.func.php /^function aes_encode($message, $encodingaeskey = '', $appid = '') {$/;" f -alias .\lib\Doctrine\Common\Annotations\DocParser.php /^ $alias = (false === $pos = strpos($className, '\\\\')) ? $className : substr($className, 0, $pos);$/;" v -alias .\lib\Doctrine\Common\Annotations\DocParser.php /^ $alias = (false === $pos = strpos($name, '\\\\'))? $name : substr($name, 0, $pos);$/;" v -alias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $alias = $token[1];$/;" v -alias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $alias = '';$/;" v -alias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $alias = '';$/;" v -alias .\lib\phprs\util\DocParser.php /^ $alias = (false === $pos = strpos($className, '\\\\')) ? $className : substr($className, 0, $pos);$/;" v -alias .\source\apis\Users.php /^ public function updateUser($token, $alias=null, $password=null, $avatar=null ){$/;" v -alipay .\framework\model\payment.mod.php /^function alipay_build($params, $alipay = array()) {$/;" v -alipay .\payment\alipay\notify.php /^ $alipay = $setting['payment']['alipay'];$/;" v -alipay .\payment\alipay\return.php /^$alipay = $setting['payment']['alipay'];$/;" v -alipay_build .\framework\model\payment.mod.php /^function alipay_build($params, $alipay = array()) {$/;" f -all .\framework\function\global.func.php /^function media2local($media_id, $all = false){$/;" v -allowget .\framework\function\global.func.php /^function checksubmit($var = 'submit', $allowget = false) {$/;" v -already .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ first check if the class already exists, maybe loaded through another AnnotationReader$/;" c -amount_to_pad .\framework\function\global.func.php /^ $amount_to_pad = $block_size - ($text_length % $block_size);$/;" v -amount_to_pad .\framework\function\global.func.php /^ $amount_to_pad = $block_size;$/;" v -ann .\lib\phprs\apis\ApiExporter.php /^ $ann = new \\ReflectionClass($class_name);$/;" v -ann .\lib\phprs\apis\ApiExporter.php /^ $ann = new AnnotationReader();$/;" v -ann .\lib\phprs\util\MetaInfo.php /^ $ann = $ann[0];\/\/可能有多个重名的, 只取第一个$/;" v -ann .\lib\phprs\util\MetaInfo.php /^ $ann=$ann[0];\/\/可能有多个重名的, 只取第一个$/;" v -ann .\lib\phprs\util\MetaInfo.php /^ $ann=$ann[0];\/\/可能有多个重名的, 只取第一个$/;" v -annot .\lib\Doctrine\Common\Annotations\DocParser.php /^ if (false !== $annot = $this->Annotation()) {$/;" v -annot .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annot = $this->reader->getClassAnnotations($class);$/;" v -annot .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annot = $this->reader->getMethodAnnotations($method);$/;" v -annot .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annot = $this->reader->getPropertyAnnotations($property);$/;" v -annot .\lib\phprs\util\AnnotationReader.php /^ $annot = $annot[1];$/;" v -annot .\lib\phprs\util\AnnotationReader.php /^ $annot= $annot[1];$/;" v -annotation .\lib\Doctrine\Common\Annotations\Reader.php /^ * Gets a class annotation.$/;" c -annotationMetadata .\lib\Doctrine\Common\Annotations\DocParser.php /^ private static $annotationMetadata = array($/;" v -annotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $annotations = $this->preParser->parse($class->getDocComment(), 'class ' . $class->name);$/;" v -annotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $annotations = $this->getClassAnnotations($class);$/;" v -annotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $annotations = $this->getMethodAnnotations($method);$/;" v -annotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $annotations = $this->getPropertyAnnotations($property);$/;" v -annotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ $annotations = array();$/;" v -annotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annotations = $this->getClassAnnotations($class);$/;" v -annotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annotations = $this->getMethodAnnotations($method);$/;" v -annotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annotations = $this->getPropertyAnnotations($property);$/;" v -annotations .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ $annotations = array();$/;" v -annotations .\lib\Doctrine\Common\Annotations\Reader.php /^ * the class annotations should be read.$/;" c -annotations .\lib\Doctrine\Common\Annotations\Reader.php /^ * the class annotations should be read.$/;" c -annotations .\lib\phprs\util\DocParser.php /^ $annotations = array();$/;" v -annots .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $annots = $this->delegate->getClassAnnotations($class);$/;" v -annots .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $annots = $this->delegate->getMethodAnnotations($method);$/;" v -annots .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $annots = $this->delegate->getPropertyAnnotations($property);$/;" v -annots .\lib\phprs\util\AnnotationReader.php /^ $annots = $this->parser->parse($method->getDocComment(), 'method '.$cn.'::'.$id.'()', $record_doc);$/;" v -annots .\lib\phprs\util\AnnotationReader.php /^ $annots = $this->parser->parse($property->getDocComment(), 'property '.$cn.'::$'.$id, $record_doc);$/;" v -annots .\lib\phprs\util\AnnotationReader.php /^ $annots = $this->parser->parse($class->getDocComment(), 'class '.$cn, $record_doc);$/;" v -anns .\lib\phprs\Container.php /^ $anns = $reader->getMethodAnnotations($method, false);$/;" v -anns .\lib\phprs\apis\ApiExporter.php /^ $anns = $ann->getMethodAnnotations($mrefl, true);$/;" v -api .\lib\phprs\Router.php /^ $api = $this->factory->create('phprs\\\\Container', array($class_name, $method), null, null);$/;" v -api .\lib\phprs\Router.php /^ $api = $this->factory->create('phprs\\\\Container', array($class_name, $method), null, null);$/;" v -api .\lib\phprs\Router.php /^ $api = null;$/;" v -api_method .\lib\phprs\Router.php /^ private $api_method=null;$/;" v -api_path .\lib\phprs\Router.php /^ private $api_path='apis';$/;" v -api_paths .\lib\phprs\Router.php /^ $api_paths = $api_path;$/;" v -api_paths .\lib\phprs\Router.php /^ $api_paths = array($api_path);$/;" v -api_root .\lib\phprs\Router.php /^ private $api_root=null;$/;" v -apis .\lib\phprs\Router.php /^ private $apis=null;$/;" v -apis .\lib\phprs\Router.php /^ public function load($api_path, $apis=null , $api_method=null){$/;" v -apis .\lib\phprs\apis\ApiExporter.php /^ $apis = $info[$class_name];$/;" v -apis .\lib\phprs\apis\ApiExporter.php /^ $apis = array();$/;" v -apis_dir .\lib\phprs\Router.php /^ $apis_dir = '';$/;" v -apis_dir .\lib\phprs\Router.php /^ $apis_dir=$apis_dir.'\/';$/;" v -apis_dir .\lib\phprs\Router.php /^ $apis_dir=$apis_dir.'\/';$/;" v -apiurl .\framework\class\weixin.account.class.php /^ $apiurl = "https:\/\/api.weixin.qq.com\/sns\/userinfo?access_token={$accesstoken}&openid={$openid}&lang=zh_CN";$/;" v -app .\framework\class\loader.class.php /^ function app($name) {$/;" f -append .\lib\phprs\Response.php /^ public function append($buffer){$/;" f -append .\lib\phprs\util\HttpRouterEntries.php /^ $append=function (&$str, $v){$/;" v -appendParams .\lib\phprs\ezsql\SqlConetxt.php /^ public function appendParams($params){$/;" f -appendSql .\lib\phprs\ezsql\SqlConetxt.php /^ public function appendSql($sql, $addSpace=true){$/;" f -appid .\loginLib\qq\API\class\Oauth.class.php /^ $appid = $this->recorder->readInc("appid");$/;" v -arg .\lib\phprs\apis\ApiExporter.php /^ $arg = $return['args'][0];$/;" v -arg .\lib\phprs\apis\ApiExporter.php /^ $arg = $return['args'][1];$/;" v -arg_separator .\framework\function\compat.func.php /^ $arg_separator = '&';$/;" v -args .\lib\Peekmo\JsonPath\JsonPath.php /^ public function jsonPath(&$obj, $expr, $args = null, $create=false, $default=null)$/;" v -args .\lib\phprs\Invoker.php /^ $args = array();$/;" v -args .\lib\phprs\apis\ApiExporter.php /^ $args = array();$/;" v -args .\lib\phprs\apis\ApiExporter.php /^ $args = array();$/;" v -args .\lib\phprs\apis\ApiExporter.php /^ $args = $return['args'];$/;" v -args .\lib\phprs\ezsql\Sql.php /^ $args = ['*'];$/;" v -args .\lib\phprs\ezsql\Sql.php /^ $args = func_get_args();$/;" v -args .\lib\phprs\ezsql\impls.php /^ $args = $newArgs;$/;" v -args .\lib\phprs\ezsql\impls.php /^ static public function conditionArgs($context, $prefix, $args=[]){$/;" v -args .\lib\phprs\util\IoCFactory.php /^ $args = array();$/;" v -args .\lib\phprs\util\SerializableFunc.php /^ $args = func_get_args();$/;" v -argsList .\loginLib\qq\API\class\QC.class.php /^ $argsList = $this->APIMap[$name][1];$/;" v -arr .\framework\library\json\JSON.php /^ $arr = array();$/;" v -arr .\lib\phprs\util\Tree.php /^ private $arr=array();$/;" v -arr .\loginLib\qq\API\class\QC.class.php /^ $arr = array();$/;" v -arr .\loginLib\qq\test\photo\add_album.php /^$arr = $qc->add_album($_POST);$/;" v -arr .\loginLib\qq\test\photo\list_album.php /^$arr = $qc->list_album();$/;" v -arr .\loginLib\qq\test\photo\upload_pic.php /^$arr = $qc->list_album();$/;" v -arr .\loginLib\qq\test\photo\upload_pic_p.php /^$arr = $qc->upload_pic($_POST);$/;" v -arr .\loginLib\qq\test\user\get_user_info.php /^$arr = $qc->get_user_info();$/;" v -arr .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $arr = preg_split ( '\/=\/', $val, 2 );$/;" v -arr_params .\payment\baifubao\bfb_sdk.php /^ $arr_params = $_GET;$/;" v -arr_temp .\payment\baifubao\bfb_sdk.php /^ $arr_temp = array ();$/;" v -array .\framework\function\global.func.php /^ $array = array_change_key_case($array, $case);$/;" v -array .\lib\Doctrine\Common\Annotations\DocParser.php /^ $array = $values = array();$/;" v -array .\lib\phprs\util\DocParser.php /^ $array = $values = array();$/;" v -array2xml .\framework\function\global.func.php /^function array2xml($arr, $level = 1) {$/;" f -arrayType .\lib\Doctrine\Common\Annotations\DocParser.php /^ $arrayType = self::$typeMap[$arrayType];$/;" v -arrayType .\lib\Doctrine\Common\Annotations\DocParser.php /^ $arrayType = substr($type, $pos + 1, -1);$/;" v -arrayType .\lib\Doctrine\Common\Annotations\DocParser.php /^ $arrayType = substr($type, 0, $pos);$/;" v -array_elements .\framework\function\global.func.php /^function array_elements($keys, $src, $default = FALSE) {$/;" f -asDict .\lib\phprs\ezsql\rules\select.php /^ public function get($db, $asDict=false,$errExce=true) {$/;" v -asDict .\source\apis\Users.php /^ public function getUserByIds($uids, $asDict=false) {$/;" v -asPath .\lib\Peekmo\JsonPath\JsonPath.php /^ private function asPath($path)$/;" f -ascii .\framework\library\json\JSON.php /^ $ascii = '';$/;" v -attribute .\lib\Doctrine\Common\Annotations\DocParser.php /^ $attribute = new Attribute();$/;" v -attributeTypeError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function attributeTypeError($attributeName, $annotationName, $context, $expected, $actual)$/;" f -auth .\payment\baifubao\pay.php /^$auth = sha1($sl . $paylog['uniacid'] . $_W['config']['setting']['authkey']);$/;" v -auth .\payment\unionpay\pay.php /^$auth = sha1($sl . $paylog['uniacid'] . $_W['config']['setting']['authkey']);$/;" v -auth .\payment\wechat\pay.php /^$auth = sha1($sl . 'youle123456');$/;" v -auth .\source\apis\pay.php /^ $auth = sha1($sl . 'youle123456');$/;" v -authcode .\framework\function\global.func.php /^function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {$/;" f -autoLoad .\lib\phprs\util\ClassLoader.php /^ static public function autoLoad($classname){$/;" f -auto_bind_return .\lib\phprs\BindReturns.php /^ $this->auto_bind_return = $auto_bind_return;$/;" v -auto_bind_return .\lib\phprs\BindReturns.php /^ private $auto_bind_return;$/;" v -auto_bind_return .\lib\phprs\BindReturns.php /^ public function __construct($class_name, $method_name, $auto_bind_return=true){$/;" v -autoloadNamespaces .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static private $autoloadNamespaces = array();$/;" v -avatar .\source\apis\Users.php /^ $avatar = $this->uploadAvatar($avatar);$/;" v -avatar .\source\apis\Users.php /^ $avatar = '';$/;" v -avatar .\source\apis\Users.php /^ public function createUser(&$uid, $token, $account, $alias, $password, $avatar = null){$/;" v -b.decode .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f -baseUrl .\loginLib\qq\API\class\QC.class.php /^ $baseUrl = $this->APIMap[$name][0];$/;" v -baseUserInfo .\source\apis\login.php /^ $baseUserInfo = $weixin->fansQueryInfo($userinfo['openid'],$this->db,$pdo);$/;" v -baseUserInfo .\source\apis\login.php /^ $baseUserInfo = $weixin->fansQueryInfo($oauth['openid'],$this->db,$pdo);$/;" v -bfb_sdk .\payment\baifubao\bfb_sdk.php /^class bfb_sdk{$/;" c -bfb_sdk .\payment\baifubao\notify.php /^$bfb_sdk = new bfb_sdk();$/;" v -bfb_sdk .\payment\baifubao\pay.php /^ $bfb_sdk = new bfb_sdk();$/;" v -bfb_sdk .\payment\baifubao\pay.php /^$bfb_sdk = new bfb_sdk();$/;" v -bind .\lib\phprs\BindParams.php /^ public function bind($req, &$res, &$args){$/;" f -bind .\lib\phprs\BindReturns.php /^ public function bind($req, &$res, &$args)$/;" f -bind .\lib\phprs\BindThrows.php /^ public function bind($req, &$res, $e)$/;" f -bind .\lib\phprs\Invoker.php /^ $this->bind = array($/;" v -bind .\lib\phprs\Invoker.php /^ private $bind = array();$/;" v -bind .\lib\phprs\Invoker.php /^ public function bind($id, $type, $param)$/;" f -bind .\lib\phprs\util\SerializableFunc.php /^ $this->bind = array_slice($args,1);$/;" v -bind .\lib\phprs\util\SerializableFunc.php /^ private $bind;$/;" v -bitmask .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ $bitmask = 0;$/;" v -block_size .\framework\function\global.func.php /^ $block_size = 32;$/;" v -body .\framework\function\communication.func.php /^ $body = http_build_query($post);$/;" v -body .\framework\function\communication.func.php /^ $body = urlencode($post);$/;" v -body .\framework\function\communication.func.php /^ $body = '';$/;" v -body .\lib\phprs\apis\ApiExporter.php /^ $body = $body . '&';$/;" v -body .\lib\phprs\apis\ApiExporter.php /^ $body = "$body$name=[$arg_name]";$/;" v -body .\lib\phprs\apis\ApiExporter.php /^ $body = "{$body}[$arg_name]";$/;" v -body .\lib\phprs\apis\ApiExporter.php /^ $body = '';$/;" v -body .\lib\phprs\apis\ApiExporter.php /^ $body = '';$/;" v -body .\lib\phprs\apis\ApiExporter.php /^ $body = '';$/;" v -body .\lib\phprs\apis\ApiExporter.php /^ $body = '
    ';$/;" v -body .\lib\phprs\apis\ApiExporter.php /^ $body = self::$css;$/;" v -box .\framework\function\global.func.php /^ $box = range(0, 255);$/;" v -brace .\framework\function\global.func.php /^ $brace = strpos($data, '}');$/;" v -break .\lib\phprs\Router.php /^ $break = false;$/;" v -buffer .\lib\phprs\Response.php /^ $this->buffer = $buffer;$/;" v -buffer .\lib\phprs\Response.php /^ $this->buffer = array();$/;" v -buffer .\lib\phprs\Response.php /^ private $buffer = array();$/;" v -buildConstructArgs .\lib\phprs\util\IoCFactory.php /^ private function buildConstructArgs($class, $properties){ $/;" f -bytes .\framework\library\json\JSON.php /^ $bytes = (ord($utf16{0}) << 8) | ord($utf16{1});$/;" v -c.toString .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f -cache .\framework\class\loader.class.php /^ private $cache = array();$/;" v -cache .\framework\class\weixin.account.class.php /^ $cache = cache_load($cachekey,$db);$/;" v -cache .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $this->cache = $cache;$/;" v -cache .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private $cache;$/;" v -cache .\lib\phprs\Invoker.php /^ private $cache=null;$/;" v -cache .\lib\phprs\RouterWithCache.php /^ private $cache;$/;" v -cache .\lib\phprs\util\AnnotationReader.php /^ private $cache=array() ;$/;" v -cache .\lib\phprs\util\IoCFactory.php /^ $cache = new Cache();$/;" v -cache .\lib\phprs\util\IoCFactory.php /^ static $cache = null;$/;" v -cache .\lib\phprs\util\IoCFactoryEx.php /^ private $cache;$/;" v -cacheKey .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $cacheKey = $class->getName().'#'.$method->getName();$/;" v -cacheKey .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $cacheKey = $class->getName().'$'.$property->getName();$/;" v -cacheKey .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $cacheKey = $class->getName();$/;" v -cacheKey .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $cacheKey = $rawCacheKey . self::$CACHE_SALT;$/;" v -cache_build_accesstoken .\framework\model\cache.mod.php /^function cache_build_accesstoken() {$/;" f -cache_build_account .\framework\model\cache.mod.php /^function cache_build_account() {$/;" f -cache_build_account_modules .\framework\model\cache.mod.php /^function cache_build_account_modules() {$/;" f -cache_build_account_outapps .\framework\model\cache.mod.php /^function cache_build_account_outapps() {$/;" f -cache_build_frame_menu .\framework\model\cache.mod.php /^function cache_build_frame_menu() {$/;" f -cache_build_module_subscribe_type .\framework\model\cache.mod.php /^function cache_build_module_subscribe_type() {$/;" f -cache_build_platform .\framework\model\cache.mod.php /^function cache_build_platform() {$/;" f -cache_build_setting .\framework\model\cache.mod.php /^function cache_build_setting() {$/;" f -cache_build_template .\framework\model\cache.mod.php /^function cache_build_template() {$/;" f -cache_build_users_struct .\framework\model\cache.mod.php /^function cache_build_users_struct() {$/;" f -cache_check .\lib\phprs\Invoker.php /^ $cache_check = $param;$/;" v -cache_check .\lib\phprs\Invoker.php /^ $cache_check = null;$/;" v -cache_clean .\framework\function\cache.mysql.func.php /^function cache_clean($prefix = '') {$/;" f -cache_delete .\framework\function\cache.mysql.func.php /^function cache_delete($key) {$/;" f -cache_dir .\lib\phprs\util\FileCache.php /^ $this->cache_dir = $cache_dir;$/;" v -cache_dir .\lib\phprs\util\FileCache.php /^ $this->cache_dir = sys_get_temp_dir().'\/caoym_temp';$/;" v -cache_dir .\lib\phprs\util\FileCache.php /^ private $cache_dir;$/;" v -cache_global .\framework\function\cache.func.php /^function &cache_global($key) {$/;" f -cache_key .\lib\phprs\Invoker.php /^ $cache_key = "invoke_{$this->ins->class}_{$this->method_name}_" . sha1(serialize($args).serialize($injected).$cache_ttl);$/;" v -cache_key .\lib\phprs\Invoker.php /^ $cache_key = null;$/;" v -cache_key .\lib\phprs\util\IoCFactory.php /^ $cache_key = 'meta_'.sha1($refl->getFileName().'\/'.$name);$/;" v -cache_load .\framework\function\cache.func.php /^function cache_load($key, $db,$unserialize = false) {$/;" f -cache_read .\framework\function\cache.mysql.func.php /^function cache_read($key,$db) {$/;" f -cache_res .\lib\phprs\Invoker.php /^ $cache_res = new Response(array($/;" v -cache_search .\framework\function\cache.mysql.func.php /^function cache_search($prefix,$db) {$/;" f -cache_ttl .\lib\phprs\Invoker.php /^ $cache_ttl = $param;$/;" v -cache_ttl .\lib\phprs\Invoker.php /^ $cache_ttl = 0;$/;" v -cache_write .\framework\function\cache.mysql.func.php /^function cache_write($key, $data,$db,$pdo) {$/;" f -cachedMethods .\lib\phprs\util\IoCFactoryEx.php /^ private $cachedMethods=[];$/;" v -cachekey .\framework\class\weixin.account.class.php /^ $cachekey = "accesstoken:{$this->account['acid']}";$/;" v -cachekey .\framework\class\weixin.account.class.php /^ $cachekey = "accesstoken:{$this->account['key']}";$/;" v -callAction .\lib\phprs\util\MessagePump.php /^ private function callAction($queue_id, $action){$/;" f -callThroughCache .\lib\phprs\util\IoCFactoryEx.php /^ public function callThroughCache($method, $arguments){$/;" f -callback .\loginLib\qq\API\class\Oauth.class.php /^ $callback = $this->recorder->readInc("callback");$/;" v -callback .\source\apis\login.php /^ $callback = urlencode($url);$/;" v -callback .\source\apis\login.php /^ $callback = "http:\/\/api.tscce.cn\/api\/login\/weixin\/callback";$/;" v -caller .\lib\phprs\util\Logger.php /^ $caller = debug_backtrace()[2];$/;" v -can .\lib\Doctrine\Common\Annotations\DocParser.php /^ throw AnnotationException::semanticalError(sprintf('The class "%s" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "%s". If it is indeed no annotation, then you need to add @IgnoreAnnotation("%s") to the _class_ doc comment of %s.', $name, $name, $originalName, $this->context));$/;" c -case .\framework\function\global.func.php /^function iarray_change_key_case($array, $case = CASE_LOWER){$/;" v -cert_dir .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_dir = SDK_VERIFY_CERT_DIR;$/;" v -cert_id .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_id = $certdata ['serialNumber'];$/;" v -cert_path .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_path = SDK_SIGN_CERT_PATH;$/;" v -cert_path .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_path = MPI_ENCRYPT_CERT_PATH;$/;" v -cert_path .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_path = SDK_ENCRYPT_CERT_PATH;$/;" v -certdata .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $certdata = openssl_x509_parse ( $x509data );$/;" v -ch .\framework\function\communication.func.php /^ $ch = curl_init();$/;" v -ch .\lib\phprs\util\Curl.php /^ $this->ch = curl_init();$/;" v -ch .\lib\phprs\util\Curl.php /^ private $ch;$/;" v -ch .\loginLib\qq\API\class\URL.class.php /^ $ch = curl_init();$/;" v -ch .\loginLib\qq\API\class\URL.class.php /^ $ch = curl_init();$/;" v -ch .\loginLib\qq\API\comm\utils.php /^ $ch = curl_init();$/;" v -ch .\loginLib\qq\test\comm\utils.php /^ $ch = curl_init();$/;" v -ch .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ $ch = curl_init ();$/;" v -ch .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^ $ch = curl_init ();$/;" v -char .\framework\library\json\JSON.php /^ $char = pack('C*', $ord_var_c, ord($var{$c + 1}));$/;" v -char .\framework\library\json\JSON.php /^ $char = pack('C*', $ord_var_c,$/;" v -charset .\framework\function\global.func.php /^ $charset = $_W['charset'];$/;" v -charset .\framework\function\global.func.php /^ $charset = 'gbk';$/;" v -charset .\framework\function\global.func.php /^ $charset = 'utf8';$/;" v -charset .\framework\function\global.func.php /^function istrlen($string, $charset = '') {$/;" v -check .\framework\function\communication.func.php /^ $check = trim($tmp);$/;" v -check .\lib\phprs\Invoker.php /^ public function check()$/;" f -checkAbleCache .\lib\phprs\Invoker.php /^ $this->checkAbleCache = $this->factory->create('phprs\\util\\Cache');$/;" v -checkAbleCache .\lib\phprs\Invoker.php /^ $this->checkAbleCache = new CheckableCache($this->cache);$/;" v -checkAbleCache .\lib\phprs\Invoker.php /^ private $checkAbleCache;$/;" v -checkSign .\payment\wechat\rights.php /^function checkSign($data) {$/;" f -check_bfb_pay_result_notify .\payment\baifubao\bfb_sdk.php /^ function check_bfb_pay_result_notify() {$/;" f -check_dirs .\lib\phprs\RouterWithCache.php /^ $check_dirs=array();$/;" v -check_files .\lib\phprs\RouterWithCache.php /^ $check_files = array_merge($check_files, $check_dirs);$/;" v -check_files .\lib\phprs\RouterWithCache.php /^ $check_files = array_values($this->impl->getApiFiles());$/;" v -check_sign .\payment\baifubao\bfb_sdk.php /^ private function check_sign($params) {$/;" f -checkcaptcha .\framework\function\global.func.php /^function checkcaptcha($code) {$/;" f -checksubmit .\framework\function\global.func.php /^function checksubmit($var = 'submit', $allowget = false) {$/;" f -childs .\framework\model\cache.mod.php /^ $childs = pdo_fetchall('SELECT * FROM ' . tablename('core_menu') . ' WHERE pid = :pid AND is_display = 1 ORDER BY is_system DESC, displayorder DESC, id ASC', array(':pid' => $da['id']));$/;" v -chrs .\framework\library\json\JSON.php /^ $chrs = substr_replace($chrs, ' ', $i, 1);$/;" v -chrs .\framework\library\json\JSON.php /^ $chrs = $this->reduce_string($chrs);$/;" v -chrs .\framework\library\json\JSON.php /^ $chrs = substr($str, 1, -1);$/;" v -chunked .\framework\function\communication.func.php /^function ihttp_response_parse($data, $chunked = false) {$/;" v -cindex .\framework\function\global.func.php /^ $cindex = $pageIndex;$/;" v -cindex .\framework\function\global.func.php /^ $cindex = max($cindex, 1);$/;" v -cindex .\framework\function\global.func.php /^ $cindex = min($cindex, $pdata['tpage']);$/;" v -ciphertext_dec .\framework\function\global.func.php /^ $ciphertext_dec = base64_decode($message);$/;" v -ckey_length .\framework\function\global.func.php /^ $ckey_length = 4;$/;" v -class .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $class = $method->getDeclaringClass();$/;" v -class .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $class = $property->getDeclaringClass();$/;" v -class .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $class = $method->getDeclaringClass();$/;" v -class .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $class = $property->getDeclaringClass();$/;" v -class .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $class = $method->getDeclaringClass();$/;" v -class .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $class = $property->getDeclaringClass();$/;" v -class .\lib\Doctrine\Common\Annotations\DocParser.php /^ $class = new \\ReflectionClass($name);$/;" v -class .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $class = $method->getDeclaringClass();$/;" v -class .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $class = $property->getDeclaringClass();$/;" v -class .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $class = '';$/;" v -class .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $class = '';$/;" v -class .\lib\phprs\Container.php /^ $this->class = $class;$/;" v -class .\lib\phprs\Container.php /^ public $class;$/;" v -class .\lib\phprs\Router.php /^ if(is_dir($apis_dir) && $class === null){$/;" v -class .\lib\phprs\Router.php /^ public function addRoutes($apis_dir, $class=null, $method=null){$/;" v -class .\lib\phprs\util\IoCFactory.php /^ $class = $this->conf[$id];$/;" v -classExists .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $classExists = array();$/;" v -classExists .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function classExists($fqcn)$/;" f -classIdentifiers .\lib\Doctrine\Common\Annotations\DocParser.php /^ private static $classIdentifiers = array($/;" v -classIdentifiers .\lib\phprs\util\DocParser.php /^ private static $classIdentifiers = array($/;" v -classImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $classImports = $this->getClassImports($class);$/;" v -className .\lib\Doctrine\Common\Annotations\DocParser.php /^ $className = $ns.'\\\\'.$className;$/;" v -className .\lib\Doctrine\Common\Annotations\DocParser.php /^ $className = $ns.'\\\\'.$className;$/;" v -className .\lib\Doctrine\Common\Annotations\DocParser.php /^ $className = (false !== $pos)$/;" v -className .\lib\Doctrine\Common\Annotations\DocParser.php /^ $className = $this->lexer->token['value'];$/;" v -className .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $className = get_class($this);$/;" v -className .\lib\phprs\util\DocParser.php /^ $className = $ns.'\\\\'.$className;$/;" v -className .\lib\phprs\util\DocParser.php /^ $className = $ns.'\\\\'.$className;$/;" v -className .\lib\phprs\util\DocParser.php /^ $className = (false !== $pos)$/;" v -className .\lib\phprs\util\DocParser.php /^ $className = $this->lexer->token['value'];$/;" v -classNameHashes .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $classNameHashes = array();$/;" v -classPos .\lib\Doctrine\Common\Annotations\DocParser.php /^ $classPos = stripos($identifier, '::class');$/;" v -classPos .\lib\phprs\util\DocParser.php /^ $classPos = stripos($identifier, '::class');$/;" v -class_ann .\lib\phprs\Container.php /^ $class_ann = $reader->getClassAnnotations($reflection);$/;" v -class_defaults .\lib\phprs\util\IoCFactory.php /^ $class_defaults = $refl->getDefaultProperties();$/;" v -class_loader .\lib\phprs\Router.php /^ $this->class_loader = new AutoClassLoader();$/;" v -class_loader .\lib\phprs\Router.php /^ private $class_loader; \/\/用于确保反序列化时自动加载类文件$/;" v -class_map .\lib\phprs\util\ClassLoader.php /^ static public $class_map=array();$/;" v -class_name .\framework\function\global.func.php /^function isimplexml_load_string($string, $class_name = 'SimpleXMLElement', $options = 0, $ns = '', $is_prefix = false) {$/;" v -class_name .\lib\phprs\BindParams.php /^ $this->class_name = $class_name;$/;" v -class_name .\lib\phprs\BindParams.php /^ private $class_name;$/;" v -class_name .\lib\phprs\BindReturns.php /^ $this->class_name = $class_name;$/;" v -class_name .\lib\phprs\BindReturns.php /^ private $class_name;$/;" v -class_name .\lib\phprs\BindThrows.php /^ $this->class_name = $class_name;$/;" v -class_name .\lib\phprs\BindThrows.php /^ private $class_name;$/;" v -class_name .\lib\phprs\Router.php /^ $class_name = substr($entry, 0, strlen($entry)-4);$/;" v -class_name .\lib\phprs\apis\ApiExporter.php /^ $class_name = implode('\\\\', $class_name);$/;" v -class_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($apis as $class_name => &$info) {$/;" v -class_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($info as $class_name => $apis) {$/;" v -class_name .\lib\phprs\util\IoCFactory.php /^ $class_name = $refl->getName();$/;" v -class_name .\lib\phprs\util\IoCFactory.php /^ $class_name = $this->getClassName($id);$/;" v -class_refl .\lib\phprs\util\IoCFactory.php /^ $class_refl = new \\ReflectionClass($class_name);$/;" v -classs .\framework\class\loader.class.php /^ function classs($name) {$/;" f -clean .\lib\phprs\util\AnnotationCleaner.php /^ static public function clean($text) {$/;" f -clean_ .\lib\phprs\util\AnnotationCleaner.php /^ private function clean_($text) {$/;" f -clear .\lib\phprs\Response.php /^ public function clear(){$/;" f -clearAnnotation .\lib\phprs\util\IoCFactory.php /^ static public function clearAnnotation($text){$/;" f -clearLoadedAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function clearLoadedAnnotations()$/;" f -clearLoadedAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function clearLoadedAnnotations()$/;" f -close .\loginLib\qq\test\comm\session.php /^ function close() $/;" f -close .\loginLib\qq\test\comm\session2.php /^ function close() $/;" f -closeChildWindow .\loginLib\qq\test\index.html /^ function closeChildWindow()$/;" f -closeQueue .\lib\phprs\util\MessagePump.php /^ public function closeQueue($queue_id)$/;" f -closer .\lib\Peekmo\JsonPath\JsonPath.php /^ $closer = $pos;$/;" v -closer .\lib\Peekmo\JsonPath\JsonPath.php /^ $closer = 10000;$/;" v -cn .\lib\phprs\util\AnnotationReader.php /^ $cn = $class->getName();$/;" v -cn .\lib\phprs\util\AnnotationReader.php /^ $cn = $method->getDeclaringClass()->getName();$/;" v -cn .\lib\phprs\util\AnnotationReader.php /^ $cn = $property->getDeclaringClass()->getName();$/;" v -cnst .\lib\phprs\util\NewThenInit.php /^ $cnst = $this->refl->getConstructor();$/;" v -code .\framework\class\weixin.account.class.php /^ $code = strval($code);$/;" v -code .\framework\class\weixin.account.class.php /^ if($code == '40001' || $code == '42001') {$/;" v -code .\framework\library\json\JSON.php /^ function Services_JSON_Error($message = 'unknown error', $code = null,$/;" v -code .\framework\library\json\JSON.php /^ function isError($data, $code = null)$/;" v -codehash .\framework\function\global.func.php /^ $codehash = md5(strtolower($code) . $_W['config']['setting']['authkey']);$/;" v -codehash .\framework\function\global.func.php /^ if (!empty($_GPC['__code']) && $codehash == $_SESSION['__code']) {$/;" v -collectAnnotationMetadata .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function collectAnnotationMetadata($name)$/;" f -collectAttributeTypeMetadata .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function collectAttributeTypeMetadata(&$metadata, Attribute $attribute)$/;" f -collectParsingMetadata .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function collectParsingMetadata(ReflectionClass $class)$/;" f -column .\source\apis\cloud.php /^ $column = (int)$column;$/;" v -columnKey .\source\apis\cloud.php /^ $columnKey=="t3" || $columnKey=="t4" || $columnKey=="t5" || $/;" v -columnKey .\source\apis\cloud.php /^ $columnKey=="t6" || $columnKey=="t7" || $columnKey=="t8" || $/;" v -columnKey .\source\apis\cloud.php /^ $columnKey=="t9" || $columnKey=="id" || $columnKey=="weid") {$/;" v -columnKey .\source\apis\cloud.php /^ foreach ($row as $columnKey => &$column) {$/;" v -columnKey .\source\apis\cloud.php /^ if ( $columnKey=="t1" || $columnKey=="t2" || $/;" v -columnKey .\source\apis\cloud.php /^ foreach ($row as $columnKey => &$column) {$/;" v -columns .\lib\phprs\ezsql\impls.php /^ $columns = implode(',', array_keys($values));$/;" v -combineURL .\loginLib\qq\API\class\URL.class.php /^ public function combineURL($baseURL,$keysArr){$/;" f -combined .\loginLib\qq\API\class\URL.class.php /^ $combined = $baseURL."?";$/;" v -combined .\loginLib\qq\API\class\URL.class.php /^ $combined = $this->combineURL($url, $keysArr);$/;" v -cond .\lib\phprs\ezsql\impls.php /^ $cond = "$cond ".strval($var[0]);$/;" v -cond .\lib\phprs\ezsql\impls.php /^ $cond = "$cond ?";$/;" v -cond .\lib\phprs\ezsql\impls.php /^ $cond = "$cond AND ".strval($var[1]);$/;" v -cond .\lib\phprs\ezsql\impls.php /^ $cond = "$cond AND ?";$/;" v -cond .\lib\phprs\ezsql\impls.php /^ $cond = "$k BETWEEN";$/;" v -condition .\lib\phprs\ezsql\impls.php /^ static public function condition($context, $prefix, $expr, $args){$/;" f -condition .\source\apis\cloud.php /^ $condition = ' 1=1 ';$/;" v -condition .\source\apis\cloud.php /^ $condition = array();$/;" v -conditionArgs .\lib\phprs\ezsql\impls.php /^ static public function conditionArgs($context, $prefix, $args=[]){$/;" f -conditionStr .\source\apis\cloud.php /^ $conditionStr = " id= ".$where_id;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " outappid= '".$outappid."'";$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t1= ".$where_t1;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t2= ".$where_t2;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t3= ".$where_t3;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t4= ".$where_t4;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t5= ".$where_t5;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t6= ".$where_t6;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t7= ".$where_t7;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t8= ".$where_t8;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " t9= ".$where_t9;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " typeid= '".$where_typeid."'";$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = " weid= ".$where_weid;$/;" v -conditionStr .\source\apis\cloud.php /^ $conditionStr = "";$/;" v -conf .\lib\phprs\util\IoCFactory.php /^ $this->conf = include($conf);$/;" v -conf .\lib\phprs\util\IoCFactory.php /^ $this->conf = $conf;$/;" v -conf .\lib\phprs\util\IoCFactory.php /^ $this->conf = $this->replaceByDict($this->conf, $dict);$/;" v -conf .\lib\phprs\util\IoCFactory.php /^ $this->conf = array();$/;" v -conf .\lib\phprs\util\IoCFactory.php /^ protected $conf = null;$/;" v -conf_file .\lib\phprs\util\IoCFactory.php /^ $this->conf_file = $conf;$/;" v -conf_file .\lib\phprs\util\IoCFactory.php /^ protected $conf_file;$/;" v -config .\framework\function\communication.func.php /^ $config = $row['notify']['mail'];$/;" v -config .\framework\function\communication.func.php /^ $config = $GLOBALS['_W']['setting']['mail'];$/;" v -connect .\lib\phprs\util\RedisCache.php /^ public function connect(){}$/;" f -constants .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $constants = $reflClass->getConstants();$/;" v -construct_args .\lib\phprs\util\IoCFactory.php /^ $construct_args = $this->buildConstructArgs($class_refl, $properties);$/;" v -construct_args .\lib\phprs\util\IoCFactory.php /^ $construct_args = array();$/;" v -construct_args .\lib\phprs\util\IoCFactory.php /^ public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null )$/;" v -construct_args .\lib\phprs\util\IoCFactoryEx.php /^ $this->construct_args = $construct_args;$/;" v -construct_args .\lib\phprs\util\IoCFactoryEx.php /^ private $construct_args;$/;" v -construct_args .\lib\phprs\util\IoCFactoryEx.php /^ public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null ){$/;" v -construct_args .\lib\phprs\util\IoCFactoryEx.php /^ public function createRawObject($id, $construct_args=null, $properties=null, $injector=null, $init=null ){$/;" v -constructor .\lib\Doctrine\Common\Annotations\DocParser.php /^ 'has_constructor' => (null !== $constructor = $class->getConstructor()) && $constructor->getNumberOfParameters() > 0,$/;" v -content .\framework\class\weixin.account.class.php /^ $content = ihttp_get($url);$/;" v -content .\framework\function\communication.func.php /^ $content = '';$/;" v -content .\framework\function\global.func.php /^ $content = substr($content, 4, $contentlen);$/;" v -content .\framework\function\global.func.php /^ $content = substr($result, 16, strlen($result));$/;" v -content .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $content = $this->getFileContent($filename, $class->getStartLine());$/;" v -content .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $content = '';$/;" v -content .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $content = preg_replace('\/^.*?(\\bnamespace\\s+' . $namespace . '\\s*[;{].*)$\/s', '\\\\1', $content);$/;" v -content .\lib\phprs\util\Curl.php /^ $this->content = $lines[1];$/;" v -content .\lib\phprs\util\Curl.php /^ $this->content = json_decode($lines[1], true);$/;" v -content .\lib\phprs\util\Curl.php /^ public $content;$/;" v -content .\payment\baifubao\bfb_sdk.php /^ $content = $this->request($query_url);$/;" v -content .\payment\baifubao\bfb_sdk.php /^ $content = $this->request($query_url);$/;" v -content .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $content = gzuncompress ( base64_decode ( $fileContent ) );$/;" v -contentType .\lib\phprs\Request.php /^ $contentType = $data['header']['Content-Type'];$/;" v -contentType .\lib\phprs\Request.php /^ $contentType = null;$/;" v -content_type .\lib\phprs\util\Curl.php /^ $content_type = trim($v);$/;" v -content_type .\lib\phprs\util\Curl.php /^ $content_type = '';$/;" v -content_type .\lib\phprs\util\Curl.php /^ if(is_array($content) && $content_type == 'application\/json'){$/;" v -content_type .\lib\phprs\util\Curl.php /^ $this->content_type = trim($v);$/;" v -content_type .\lib\phprs\util\Curl.php /^ public $content_type;$/;" v -contentlen .\framework\function\global.func.php /^ $contentlen = $len_list[1];$/;" v -context .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function semanticalErrorConstants($identifier, $context = null)$/;" v -context .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $context = 'method ' . $class->getName() . '::' . $method->getName() . '()';$/;" v -context .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $context = 'property ' . $class->getName() . "::\\$" . $property->getName();$/;" v -context .\lib\Doctrine\Common\Annotations\DocParser.php /^ $context = 'property ' . $class->name . "::\\$" . $property->name;$/;" v -context .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->context = $context;$/;" v -context .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $context = '';$/;" v -context .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function parse($input, $context = '')$/;" v -context .\lib\phprs\ezsql\rules\basic.php /^ $this->context = $context;$/;" v -context .\lib\phprs\ezsql\rules\basic.php /^ protected $context;$/;" v -context .\lib\phprs\util\DocParser.php /^ $this->context = $context;$/;" v -context .\lib\phprs\util\DocParser.php /^ private $context = '';$/;" v -context .\lib\phprs\util\DocParser.php /^ public function parse($input, $context = '', $record_doc)$/;" v -cookie_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($cookies as $cookie_name => $value) {$/;" v -cookies .\lib\phprs\apis\ApiExporter.php /^ $cookies = $params['_COOKIE'];$/;" v -copys .\lib\phprs\util\FileOp.php /^ static public function copys($src, $dst, $except=null) {$/;" f -count .\framework\function\global.func.php /^ $count = count($_SESSION['token']) - 5;$/;" v -count .\lib\phprs\util\AnnotationCleaner.php /^ $count = strlen($this->tmp);$/;" v -count .\lib\phprs\util\FileOp.php /^ $count = count($dirs);$/;" v -count .\lib\phprs\util\MessagePump.php /^ $count=count($this->action_queues[$queue_id]);$/;" v -coverParamsToString .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function coverParamsToString($params) {$/;" f -coverStringToArray .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function coverStringToArray($str) {$/;" f -create .\lib\Peekmo\JsonPath\JsonPath.php /^ private function trace($expr, &$val, $path, $create=false, $default=null)$/;" v -create .\lib\phprs\Request.php /^ public function find($expr, $create=false){$/;" v -create .\lib\phprs\util\IoCFactory.php /^ public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null )$/;" f -create .\lib\phprs\util\IoCFactoryEx.php /^ public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null ){$/;" f -createExceptionDoc .\lib\phprs\apis\ApiExporter.php /^ private function createExceptionDoc($api)$/;" f -createMap .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function createMap(){$/;" f -createPath .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private function createPath($dir, $filename)$/;" f -createPath .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private function createPath($dir, $filename)$/;" f -createRawObject .\lib\phprs\util\IoCFactoryEx.php /^ public function createRawObject($id, $construct_args=null, $properties=null, $injector=null, $init=null ){$/;" f -createRequestDoc .\lib\phprs\apis\ApiExporter.php /^ private function createRequestDoc($api)$/;" f -createResponseDoc .\lib\phprs\apis\ApiExporter.php /^ private function createResponseDoc($api, $default_return=true)$/;" f -createUser .\source\apis\Users.php /^ public function createUser(&$uid, $token, $account, $alias, $password, $avatar = null){$/;" f -create_baifubao_pay_order_url .\payment\baifubao\bfb_sdk.php /^ function create_baifubao_pay_order_url($params, $url) {$/;" f -create_html .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function create_html($params, $action) {$/;" f -create_stack .\lib\phprs\util\IoCFactory.php /^ private $create_stack=array(); \/\/ 正在创建的类,用于检测循环依赖$/;" v -creationError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function creationError($message)$/;" f -cryptkey .\framework\function\global.func.php /^ $cryptkey = $keya . md5($keya . $keyc);$/;" v -css .\lib\phprs\apis\ApiExporter.php /^ private static $css = <<getText();$/;" v -cutted .\lib\phprs\ezsql\impls.php /^ $cutted = null;$/;" v -dat .\framework\model\payment.mod.php /^ $dat = array2xml($package);$/;" v -data .\framework\class\weixin.account.class.php /^ $data = array();$/;" v -data .\framework\function\cache.func.php /^ $data = $_W['cache'][$key] = cache_read($key,$db);$/;" v -data .\framework\function\communication.func.php /^ $data = 'HTTP\/' . array_pop($headermeta);$/;" v -data .\framework\function\communication.func.php /^ $data = curl_exec($ch);$/;" v -data .\framework\function\global.func.php /^ $data = pdo_fetch('SELECT * FROM ' . tablename('wechat_attachment') . ' WHERE uniacid = :uniacid AND media_id = :id', array(':uniacid' => $_W['uniacid'], ':id' => $media_id));$/;" v -data .\framework\function\global.func.php /^ $data = trim($data);$/;" v -data .\framework\model\cache.mod.php /^ $data = pdo_fetchall('SELECT * FROM ' . tablename('core_menu') . ' WHERE pid = 0 AND is_display = 1 ORDER BY is_system DESC, displayorder DESC, id ASC');$/;" v -data .\lib\Peekmo\JsonPath\JsonStore.php /^ $this->data = json_decode($this->data, true);$/;" v -data .\lib\Peekmo\JsonPath\JsonStore.php /^ $this->data = json_decode(json_encode($this->data), true);$/;" v -data .\lib\Peekmo\JsonPath\JsonStore.php /^ $this->data = $data;$/;" v -data .\lib\Peekmo\JsonPath\JsonStore.php /^ private $data;$/;" v -data .\lib\phprs\Invoker.php /^ $data = $this->checkAbleCache->get($cache_key, $succeeded);$/;" v -data .\lib\phprs\Request.php /^ $data = $GLOBALS;$/;" v -data .\lib\phprs\Request.php /^ $this->data = new JsonStore($data);$/;" v -data .\lib\phprs\Request.php /^ private $data; $/;" v -data .\lib\phprs\util\Curl.php /^ $data = $lines[1];$/;" v -data .\lib\phprs\util\IoCFactory.php /^ $data = self::clearAnnotation($data);$/;" v -data .\lib\phprs\util\IoCFactory.php /^ $data = $cache->get($cache_key, $succeeded);$/;" v -data .\lib\phprs\util\IoCFactory.php /^ $data = MetaInfo::get($name);$/;" v -data .\loginLib\qq\API\class\Recorder.class.php /^ private static $data;$/;" v -data .\loginLib\qq\install\Recorder.class.php /^ private static $data;$/;" v -data .\payment\wechat\notify.php /^ $data = json_decode(json_encode($obj), true);$/;" v -data .\payment\wechat\rights.php /^ $data = array($/;" v -data .\payment\wechat\warning.php /^ $data = array($/;" v -db .\lib\phprs\ezsql\Sql.php /^ * $db = new DB($dsn, $username, $passwd);$/;" v -db .\source\apis\Users.php /^ public $db;$/;" v -db .\source\apis\appport.php /^ public $db;$/;" v -db .\source\apis\cloud.php /^ public $db;$/;" v -db .\source\apis\login.php /^ public $db;$/;" v -db .\source\apis\pay.php /^ public $db;$/;" v -db .\source\apis\user.php /^ public $db;$/;" v -dbSel .\loginLib\qq\test\comm\session.php /^ $dbSel = mysql_select_db(self::db_name, $db_handle);$/;" v -dbSel .\loginLib\qq\test\comm\session2.php /^ $dbSel = @mysql_select_db(self::db_name, $db_handle);$/;" v -db_handle .\loginLib\qq\test\comm\session.php /^ $db_handle = mysql_connect(self::db_host, self::db_user, self::db_pwd);$/;" v -db_handle .\loginLib\qq\test\comm\session.php /^ $this->db_handle = $db_handle;$/;" v -db_handle .\loginLib\qq\test\comm\session.php /^ private $db_handle;$/;" v -db_handle .\loginLib\qq\test\comm\session2.php /^ $db_handle = @mysql_connect(self::db_host, self::db_user, self::db_pwd);$/;" v -db_handle .\loginLib\qq\test\comm\session2.php /^ $this->db_handle = $db_handle;$/;" v -db_handle .\loginLib\qq\test\comm\session2.php /^ private $db_handle;$/;" v -deal_file .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function deal_file($params) {$/;" f -deal_params .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function deal_params(&$params) {$/;" f -debug .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $this->debug = (boolean) $debug;$/;" v -debug .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private $debug;$/;" v -debug .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function __construct(Reader $reader, Cache $cache, $debug = false)$/;" v -debug .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $this->debug = $debug;$/;" v -debug .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $debug;$/;" v -debug .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function __construct(Reader $reader, $cacheDir, $debug = false)$/;" v -debug .\lib\phprs\util\Logger.php /^ public static function debug($msg){$/;" f -decode .\framework\library\json\JSON.php /^ function decode($str)$/;" f -decrypted .\framework\function\global.func.php /^ $decrypted = mdecrypt_generic($module, $ciphertext_dec);$/;" v -default .\framework\function\global.func.php /^function array_elements($keys, $src, $default = FALSE) {$/;" v -default .\lib\Peekmo\JsonPath\JsonPath.php /^ private function slice($loc, $expr, &$v, $path,$create=false, $default=null)$/;" v -default .\lib\phprs\apis\ApiExporter.php /^ $default = $value['value']['default'];$/;" v -default .\lib\phprs\apis\ApiExporter.php /^ $default = $defaults[$name];$/;" v -default_return .\lib\phprs\apis\ApiExporter.php /^ private function createResponseDoc($api, $default_return=true)$/;" v -default_strict_matching .\lib\phprs\Router.php /^ public $default_strict_matching=false;$/;" v -defaults .\lib\phprs\apis\ApiExporter.php /^ $defaults = $refl->getDefaultProperties();$/;" v -defaults .\lib\phprs\util\IoCFactory.php /^ $defaults=array();$/;" v -deflate_file .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function deflate_file(&$params) {$/;" f -del .\lib\phprs\util\ApcCache.php /^ public function del($key)$/;" f -del .\lib\phprs\util\CheckableCache.php /^ public function del($name){$/;" f -del .\lib\phprs\util\FileCache.php /^ public function del($key){$/;" f -del .\lib\phprs\util\KVCatchInterface.php /^ public function del($key);$/;" f -del .\lib\phprs\util\RedisCache.php /^ public function del($key){$/;" f -del .\lib\phprs\util\RedisCache.php /^ public function del(){}$/;" f -delResult .\source\apis\cloud.php /^ $delResult = Sql::deleteFrom('ims_sdk_'.$outappid.'rank')->where($condition)->exec($this->db);$/;" v -delegate .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $this->delegate = $reader;$/;" v -delegate .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private $delegate;$/;" v -delegate .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ $this->delegate = $reader;$/;" v -delegate .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ private $delegate;$/;" v -delete .\loginLib\qq\API\class\Recorder.class.php /^ public function delete($name){$/;" f -delete .\loginLib\qq\install\Recorder.class.php /^ public function delete($name){$/;" f -deleteFrom .\lib\phprs\ezsql\Sql.php /^ static public function deleteFrom($table){$/;" f -deleteFrom .\lib\phprs\ezsql\impls.php /^ static public function deleteFrom($context, $from)$/;" f -deleteFrom .\lib\phprs\ezsql\rules\delete.php /^ public function deleteFrom($table) {$/;" f -deleteUserByAccount .\source\apis\Users.php /^ public function deleteUserByAccount($account){$/;" f -delim .\framework\library\json\JSON.php /^ $delim = substr($str, 0, 1);$/;" v -description .\loginLib\qq\API\class\ErrorCase.class.php /^ public function showError($code, $description = '$'){$/;" v -description .\loginLib\qq\API\class\ErrorCase.class.php /^ public function showTips($code, $description = '$'){$/;" v -dest .\lib\phprs\util\AnnotationCleaner.php /^ $this->dest = '';$/;" v -dest .\lib\phprs\util\AnnotationCleaner.php /^ private $dest;$/;" v -destroy .\loginLib\qq\test\comm\session.php /^ function destroy($sessID) $/;" f -destroy .\loginLib\qq\test\comm\session2.php /^ function destroy($sessID) $/;" f -dict .\lib\phprs\ezsql\impls.php /^ $dict= [];$/;" v -dict .\lib\phprs\util\IoCFactory.php /^ protected $dict = array();$/;" v -dict .\lib\phprs\util\IoCFactory.php /^ public function __construct($conf=null, $dict=null, $metas=null)$/;" v -dict .\lib\phprs\util\IoCFactoryEx.php /^ public function __construct($conf=null, $dict=null, $metas=null){$/;" v -dictAs .\lib\phprs\ezsql\impls.php /^ static public function get($context, $db, $dictAs=null ,$errExce=true){$/;" v -dir .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $this->dir = rtrim($cacheDir, '\\\\\/');$/;" v -dir .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $dir;$/;" v -dir .\lib\phprs\Router.php /^ $dir = @dir($apis_dir);$/;" v -dir .\lib\phprs\Router.php /^ $dir = null;$/;" v -dir .\lib\phprs\util\FileOp.php /^ $dir = dir($src);$/;" v -dirs .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerAutoloadNamespace($namespace, $dirs = null)$/;" v -dirs .\lib\phprs\util\FileOp.php /^ $dirs = explode('\/', $path);$/;" v -doSomething1 .\source\apis\HelloWorld.php /^ public function doSomething1() {$/;" f -do_post .\loginLib\qq\API\comm\utils.php /^function do_post($url, $data)$/;" f -do_post .\loginLib\qq\test\comm\utils.php /^function do_post($url, $data)$/;" f -doc .\lib\phprs\apis\ApiExporter.php /^ $doc = '';$/;" v -doc .\lib\phprs\apis\ApiExporter.php /^ $doc = '';$/;" v -doc .\lib\phprs\util\DocParser.php /^ $doc= $this->lexer->getInputUntilPosition($doc_end);$/;" v -doc .\lib\phprs\util\DocParser.php /^ $doc = $this->lexer->getInputUntilPosition(0xFFFF);$/;" v -docComment .\lib\Doctrine\Common\Annotations\DocParser.php /^ $docComment = $class->getDocComment();$/;" v -doc_begin .\lib\phprs\util\DocParser.php /^ $doc_begin = $doc_end;$/;" v -doc_begin .\lib\phprs\util\DocParser.php /^ $doc_begin = 0;$/;" v -doc_end .\lib\phprs\util\DocParser.php /^ $doc_end = $this->lexer->lookahead['position'];$/;" v -docs .\lib\phprs\apis\ApiExporter.php /^ $docs = "$docs$arg_name:\\r\\n {$arg_info['doc']}\\r\\n\\r\\n";$/;" v -docs .\lib\phprs\apis\ApiExporter.php /^ $docs = "$docs$arg_name:\\r\\n {$arg_info['doc']}\\r\\n\\r\\n";$/;" v -docs .\lib\phprs\apis\ApiExporter.php /^ $docs = "$docs$name:\\r\\n {$arg_info['doc']}\\r\\n\\r\\n";$/;" v -docs .\lib\phprs\apis\ApiExporter.php /^ $docs = "$docs$arg_name:\\r\\n {$arg_info['doc']}\\r\\n\\r\\n";$/;" v -docs .\lib\phprs\apis\ApiExporter.php /^ $docs = '';$/;" v -downline .\framework\function\global.func.php /^ $downline = intval($downline);$/;" v -dst_path .\lib\phprs\util\FileOp.php /^ $dst_path = $dst . '\/' . $file;$/;" v -e .\lib\Peekmo\JsonPath\JsonPath.php /^ $e = explode('.', $elements[$i]);$/;" v -e .\lib\phprs\util\Verify.php /^ static public function e($e){$/;" f -e .\payment\resource\script\kindeditor\plugins\code\prettify.js /^(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\\\x0":"\\\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\\\"||a==="-"||a==="["||a==="]")a="\\\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(\/\\\\u[\\dA-Fa-f]{4}|\\\\x[\\dA-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\S\\s]|[^\\\\]\/g),a=$/;" f -elements .\framework\library\json\JSON.php /^ $elements = array_map(array($this, 'encode'), $var);$/;" v -elements .\lib\Peekmo\JsonPath\JsonPath.php /^ $elements = explode('\\'', $f);$/;" v -emoji_convert .\lib\emoji\emoji.php /^ function emoji_convert($text, $map){$/;" f -emoji_docomo_to_unified .\lib\emoji\emoji.php /^ function emoji_docomo_to_unified( $text){ return emoji_convert($text, 'docomo_to_unified'); }$/;" f -emoji_get_name .\lib\emoji\emoji.php /^ function emoji_get_name($unified_cp){$/;" f -emoji_google_to_unified .\lib\emoji\emoji.php /^ function emoji_google_to_unified( $text){ return emoji_convert($text, 'google_to_unified'); }$/;" f -emoji_html_to_unified .\lib\emoji\emoji.php /^ function emoji_html_to_unified( $text){ return emoji_convert($text, 'html_to_unified'); }$/;" f -emoji_kddi_to_unified .\lib\emoji\emoji.php /^ function emoji_kddi_to_unified( $text){ return emoji_convert($text, 'kddi_to_unified'); }$/;" f -emoji_softbank_to_unified .\lib\emoji\emoji.php /^ function emoji_softbank_to_unified( $text){ return emoji_convert($text, 'softbank_to_unified'); }$/;" f -emoji_unified_to_docomo .\lib\emoji\emoji.php /^ function emoji_unified_to_docomo( $text){ return emoji_convert($text, 'unified_to_docomo'); }$/;" f -emoji_unified_to_google .\lib\emoji\emoji.php /^ function emoji_unified_to_google( $text){ return emoji_convert($text, 'unified_to_google'); }$/;" f -emoji_unified_to_html .\lib\emoji\emoji.php /^ function emoji_unified_to_html( $text){ return emoji_convert($text, 'unified_to_html'); }$/;" f -emoji_unified_to_kddi .\lib\emoji\emoji.php /^ function emoji_unified_to_kddi( $text){ return emoji_convert($text, 'unified_to_kddi'); }$/;" f -emoji_unified_to_softbank .\lib\emoji\emoji.php /^ function emoji_unified_to_softbank( $text){ return emoji_convert($text, 'unified_to_softbank'); }$/;" f -emotion .\framework\function\global.func.php /^function emotion($message = '', $size = '24px') {$/;" f -emotions .\framework\function\global.func.php /^ $emotions = array($/;" v -emptyArray .\lib\Peekmo\JsonPath\JsonStore.php /^ private static $emptyArray = array();$/;" v -encode .\framework\library\json\JSON.php /^ function encode($var)$/;" f -encodeType .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $encodeType = isset ( $params ['encoding'] ) ? $params ['encoding'] : 'UTF-8';$/;" v -encoded_value .\framework\library\json\JSON.php /^ $encoded_value = $this->encode($value);$/;" v -encodingaeskey .\framework\function\global.func.php /^function aes_decode($message, $encodingaeskey = '', $appid = '') {$/;" v -encodingaeskey .\framework\function\global.func.php /^function aes_encode($message, $encodingaeskey = '', $appid = '') {$/;" v -encryptCvn2 .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptCvn2($cvn2) {$/;" f -encryptDate .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptDate($certDate) {$/;" f -encryptDateType .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptDateType($certDataType) {$/;" f -encryptPan .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptPan($pan) {$/;" f -encryptPin .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptPin($pan, $pwd) {$/;" f -encrypt_error_code .\framework\class\weixin.account.class.php /^ private function encrypt_error_code($code) {$/;" f -encrypt_msg .\framework\function\global.func.php /^ $encrypt_msg = base64_encode($encrypted);$/;" v -encrypted .\framework\function\global.func.php /^ $encrypted = mcrypt_generic($module, $text);$/;" v -end .\framework\function\global.func.php /^ $end = $strict ? '$' : '';$/;" v -end .\framework\function\global.func.php /^ $end = '%}';$/;" v -end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = null;$/;" v -end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = $start+1;$/;" v -end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = ($end < 0) ? max(0, $end + $len) : $end;$/;" v -end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = ($end < 0) ? max(0, $end + $len) : min($len, $end);$/;" v -end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = (int)$s[1] ? $s[1] : $len;$/;" v -end .\lib\phprs\apis\ApiExporter.php /^ $end = max(array_keys($req_path));$/;" v -end .\lib\phprs\util\Tree.php /^ static public $end="\\n";$/;" v -end_handles .\lib\phprs\util\MessagePump.php /^ $this->end_handles= array();$/;" v -end_handles .\lib\phprs\util\MessagePump.php /^ private $end_handles = array();$/;" v -entries .\lib\phprs\apis\ApiExporter.php /^ $entries = $hook->export();$/;" v -entries .\lib\phprs\apis\ApiExporter.php /^ $entries = $route->export();$/;" v -enumeratorError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function enumeratorError($attributeName, $annotationName, $context, $available, $given)$/;" f -eol .\framework\function\communication.func.php /^ $eol = "\\r\\n";$/;" v -erase .\lib\phprs\util\Tree.php /^ public function erase(array $path){$/;" f -err .\lib\phprs\Bootstrap.php /^ $err = $e;$/;" v -err .\lib\phprs\Bootstrap.php /^ $err = null;$/;" v -errExce .\lib\phprs\ezsql\rules\basic.php /^ public function exec($db, $errExce=true) {$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '签名方法不支持';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '表单参数数组排序失败';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = $info;$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = 'return_url页面的请求的必选参数不足';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '生成签名的参数必须是一个数组';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝后台通知签名校验失败';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝的支付结果通知中商户ID无效,该通知无效';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝的支付结果通知中商户支付结果异常,该通知无效';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝的订单查询接口的响应数据中商户ID无效,该通知无效';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝的订单查询接口的响应数据中商户支付结果异常,该通知无效';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝订单查询接口响应数据签名校验失败';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '订单[%s]已经处理,此百付宝后台支付通知为重复通知';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '订单[%s]状态异常';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '调用百付宝订单号查询接口失败';$/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = sprintf('百付宝的订单查询接口查询失败,查询状态为[%s]', $/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = sprintf('百付宝的订单查询接口查询失败,返回数据为[%s]', $/;" v -err_msg .\payment\baifubao\bfb_sdk.php /^ public $err_msg;$/;" v -errno .\framework\function\communication.func.php /^ $errno = curl_errno($ch);$/;" v -errno .\lib\phprs\util\Curl.php /^ return $this->errno==0 && intval($this->http_code)>=200 && intval($this->http_code)<300;$/;" v -errno .\lib\phprs\util\Curl.php /^ public $errno;$/;" v -error .\framework\function\communication.func.php /^ $error = curl_error($ch);$/;" v -error .\framework\function\global.func.php /^function error($errno, $message = '') {$/;" f -error .\lib\phprs\util\Logger.php /^ public static function error($msg){$/;" f -error .\loginLib\qq\API\class\Oauth.class.php /^ $this->error = new ErrorCase();$/;" v -error .\loginLib\qq\API\class\Oauth.class.php /^ protected $error;$/;" v -error .\loginLib\qq\API\class\Recorder.class.php /^ $this->error = new ErrorCase();$/;" v -error .\loginLib\qq\API\class\Recorder.class.php /^ private $error;$/;" v -error .\loginLib\qq\API\class\URL.class.php /^ $this->error = new ErrorCase();$/;" v -error .\loginLib\qq\API\class\URL.class.php /^ private $error;$/;" v -error .\loginLib\qq\install\Recorder.class.php /^ $this->error = new ErrorCase();$/;" v -error .\loginLib\qq\install\Recorder.class.php /^ private $error;$/;" v -errorMsg .\loginLib\qq\API\class\ErrorCase.class.php /^ $this->errorMsg = array($/;" v -errorMsg .\loginLib\qq\API\class\ErrorCase.class.php /^ private $errorMsg;$/;" v -error_code .\framework\class\weixin.account.class.php /^ public function error_code($code) {$/;" f -errorinfo .\framework\class\weixin.account.class.php /^ $errorinfo = @json_decode($errorinfo, true);$/;" v -errorinfo .\framework\class\weixin.account.class.php /^ $errorinfo = substr($content['meta'], strpos($content['meta'], '{'));$/;" v -errors .\framework\class\weixin.account.class.php /^ $errors = array($/;" v -errstr .\lib\phprs\util\Curl.php /^ public $errstr;$/;" v -estr .\lib\phprs\Bootstrap.php /^ $estr = array($/;" v -evalx .\lib\Peekmo\JsonPath\JsonPath.php /^ private function evalx($x, $v, $vname = null)$/;" f -event .\framework\model\cache.mod.php /^ foreach ($subscribe as $event => $module_group) {$/;" v -exact_match .\lib\phprs\util\Tree.php /^ private function visitNode( $path, $vistor, $exact_match=false, $all_req_paths=false){$/;" v -exact_match .\lib\phprs\util\Tree.php /^ public function find(array $path, $exact_match=false){$/;" v -exact_match .\lib\phprs\util\Tree.php /^ public function findNode(array $path, $exact_match=false, $all_req_paths=false){$/;" v -exact_match .\lib\phprs\util\Tree.php /^ public function visit( $path ,$vistor, $exact_match=false){$/;" v -exceOnError .\lib\phprs\ezsql\impls.php /^ static public function exec($context, $db, $exceOnError=true) {$/;" v -exce_name .\lib\phprs\BindThrows.php /^ foreach ($this->params as $exce_name => $calls){$/;" v -exce_name .\lib\phprs\BindThrows.php /^ foreach ($this->params as $exce_name => $calls){$/;" v -exce_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($invoker->getThrows()->getParams() as $exce_name => $throws) {$/;" v -except .\lib\phprs\util\FileOp.php /^ static public function copys($src, $dst, $except=null) {$/;" v -exception .\lib\phprs\BindThrows.php /^ $exception = $params[0];$/;" v -exec .\lib\phprs\ezsql\impls.php /^ static public function exec($context, $db, $exceOnError=true) {$/;" f -exec .\lib\phprs\ezsql\rules\basic.php /^ public function exec($db, $errExce=true) {$/;" f -execCurl .\lib\phprs\util\Curl.php /^ private function execCurl($url, $method='GET', $content=null, $headers=null,$followLoc=true){$/;" f -exist .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ final check, does this class exist?$/;" c -exists .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ annotation, and it is also guaranteed that this class exists, and$/;" c -exists .\lib\Doctrine\Common\Annotations\DocParser.php /^ * Attempts to check if a class exists or not. This never goes through the PHP autoloading mechanism$/;" c -expire .\framework\function\global.func.php /^ $expire = $expire != 0 ? (TIMESTAMP + $expire) : 0;\/\/过期时间$/;" v -expire .\framework\function\global.func.php /^function isetcookie($key, $value, $expire = 0, $httponly = false) {$/;" v -expire .\lib\phprs\Response.php /^ $expire = strtotime($expire);$/;" v -expire .\lib\phprs\Response.php /^ 'cookie' =>function ($name, $value, $expire=null, $path='\/', $domain=null, $secure=null){$/;" v -explicitAlias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $explicitAlias = false;$/;" v -explicitAlias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $explicitAlias = true;$/;" v -explicitAlias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $explicitAlias = false;$/;" v -export .\lib\phprs\util\HttpRouterEntries.php /^ public function export(){$/;" f -export .\lib\phprs\util\Tree.php /^ public function export(){$/;" f -exportApiHtml .\lib\phprs\apis\ApiExporter.php /^ public function exportApiHtml($class_name)$/;" f -exportJson .\lib\phprs\apis\ApiExporter.php /^ public function exportJson()$/;" f -exportMainHtml .\lib\phprs\apis\ApiExporter.php /^ public function exportMainHtml()$/;" f -export_apis .\lib\phprs\Router.php /^ private $export_apis=true;$/;" v -expr .\lib\Peekmo\JsonPath\JsonPath.php /^ $expr = explode(";", $path);$/;" v -expr .\lib\Peekmo\JsonPath\JsonPath.php /^ $expr = preg_replace(array("\/\\\\$\/", "\/@\/"), array("\\$this->obj", "\\$v"), $x);$/;" v -expr .\lib\phprs\ezsql\impls.php /^ $expr = substr($expr, 0, $pos).$v. substr($expr, $pos+1);$/;" v -expression .\lib\Peekmo\JsonPath\JsonPath.php /^ $expression = preg_replace($/;" v -expression .\lib\Peekmo\JsonPath\JsonPath.php /^ $expression = preg_replace_callback("\/#([0-9]+)\/", array(&$this, "restoreFilters"), $expression);$/;" v -expression .\lib\Peekmo\JsonPath\JsonPath.php /^ $expression = preg_replace_callback($/;" v -exprs .\lib\phprs\ezsql\impls.php /^ $exprs = array();$/;" v -ext .\source\apis\Users.php /^ $ext = json_decode($res[0]['ext'],true);$/;" v -f .\lib\Peekmo\JsonPath\JsonPath.php /^ $f = $filter[1];$/;" v -factory .\lib\phprs\Bootstrap.php /^ $factory = new IoCFactory($conf_file);$/;" v -factory .\lib\phprs\Container.php /^ public $factory;$/;" v -factory .\lib\phprs\Invoker.php /^ private $factory;$/;" v -factory .\lib\phprs\Router.php /^ public $factory;$/;" v -factory .\lib\phprs\RouterWithCache.php /^ private $factory;$/;" v -factory .\lib\phprs\util\IoCFactoryEx.php /^ private $factory;$/;" v -factory .\source\apis\Users.php /^ private $factory;$/;" v -factory .\source\apis\appport.php /^ private $factory;$/;" v -factory .\source\apis\cloud.php /^ private $factory;$/;" v -factory .\source\apis\login.php /^ private $factory;$/;" v -factory .\source\apis\pay.php /^ private $factory;$/;" v -factory .\source\apis\user.php /^ private $factory;$/;" v -faild .\payment\baifubao\bfb_sdk.php /^ 'query the baifubao pay result interface faild, the query_status is [%s]', $/;" i -failed .\payment\baifubao\bfb_sdk.php /^ 'curl the baifubao pay result interface failed, err_msg [%s]', $/;" i -failed .\payment\baifubao\bfb_sdk.php /^ 'make sign for query baifubao pay result interface failed');$/;" i -failed .\payment\baifubao\bfb_sdk.php /^ 'sign the result returned from baifubao pay result interface failed');$/;" i -fails .\lib\phprs\apis\ApiExporter.php /^ $fails = $this->createExceptionDoc($api);$/;" v -fan .\source\apis\login.php /^ $fan = getUserByOpenId($oauth['openid'],$this->db);$/;" v -fan .\source\apis\login.php /^ $fan = getUserByOpenId($openId,$this->db);$/;" v -fansBatchQueryInfo .\framework\class\weixin.account.class.php /^ public function fansBatchQueryInfo($data,$db) {$/;" f -fansQueryInfo .\framework\class\weixin.account.class.php /^ public function fansQueryInfo($uniid,$db,$pdo, $isOpen = true) {$/;" f -fdata .\framework\function\communication.func.php /^ $fdata = "{$method} {$urlset['path']}{$urlset['query']} HTTP\/1.1\\r\\n";$/;" v -fee .\source\apis\pay.php /^ public function wechatPay($type='',$orderid='', $fee=0,$outappid='',$notify='',$fromUser='') {$/;" v -fetchFromCache .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private function fetchFromCache($rawCacheKey, \\ReflectionClass $class)$/;" f -fieldName .\lib\Doctrine\Common\Annotations\DocParser.php /^ $fieldName = $this->lexer->token['value'];$/;" v -fieldName .\lib\phprs\util\DocParser.php /^ $fieldName = $this->lexer->token['value'];$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t1) as ".$count_t1;$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t2) as ".$count_t2;$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t3) as ".$count_t3;$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t4) as ".$count_t4;$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t5) as ".$count_t5;$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t6) as ".$count_t6;$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t7) as ".$count_t7;$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t8) as ".$count_t8;$/;" v -fields .\source\apis\cloud.php /^ $fields = " count(t9) as ".$count_t9;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t1) as ".$max_t1;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t2) as ".$max_t2;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t3) as ".$max_t3;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t4) as ".$max_t4;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t5) as ".$max_t5;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t6) as ".$max_t6;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t7) as ".$max_t7;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t8) as ".$max_t8;$/;" v -fields .\source\apis\cloud.php /^ $fields = " max(t9) as ".$max_t9;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t1) as ".$min_t1;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t2) as ".$min_t2;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t3) as ".$min_t3;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t4) as ".$min_t4;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t5) as ".$min_t5;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t6) as ".$min_t6;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t7) as ".$min_t7;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t8) as ".$min_t8;$/;" v -fields .\source\apis\cloud.php /^ $fields = " min(t9) as ".$min_t9;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t1) as ".$sum_t1;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t2) as ".$sum_t2;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t3) as ".$sum_t3;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t4) as ".$sum_t4;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t5) as ".$sum_t5;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t6) as ".$sum_t6;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t7) as ".$sum_t7;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t8) as ".$sum_t8;$/;" v -fields .\source\apis\cloud.php /^ $fields = " sum(t9) as ".$sum_t9;$/;" v -fields .\source\apis\cloud.php /^ $fields = " s1 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " s2 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " s3 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " s4 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " s5 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " s6 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " s7 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " s8 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " s9 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t1 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t2 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t3 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t4 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t5 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t6 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t7 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t8 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " t9 ";$/;" v -fields .\source\apis\cloud.php /^ $fields = "";$/;" v -fields .\source\apis\cloud.php /^ $fields = " * ";$/;" v -fields .\source\apis\cloud.php /^ $fields = " * ";$/;" v -fields .\source\apis\cloud.php /^ $fields = "";$/;" v -fieldsCount .\source\apis\cloud.php /^ $fieldsCount = $fieldsCount +1;$/;" v -fieldsCount .\source\apis\cloud.php /^ $fieldsCount = 0;$/;" v -file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/app\/common\/' . $name . '.func.php';$/;" v -file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/framework\/class\/' . $name . '.class.php';$/;" v -file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/framework\/function\/' . $name . '.func.php';$/;" v -file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/framework\/model\/' . $name . '.mod.php';$/;" v -file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/web\/common\/' . $name . '.func.php';$/;" v -file .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ $file = str_replace("\\\\", DIRECTORY_SEPARATOR, $class) . ".php";$/;" v -file .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $file = new SplFileObject($filename);$/;" v -file .\lib\phprs\util\FileExpiredChecker.php /^ if($file == '.' || $file == '..') {continue;}$/;" v -file .\lib\phprs\util\FileOp.php /^ while(false !== ( $file = $dir->read()) ) {$/;" v -file .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ while ( $file = readdir ( $handle ) ) {$/;" v -fileContent .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $fileContent = $params ['fileContent'];$/;" v -filePath .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $filePath = $root . $params ['fileName'];$/;" v -filePath .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $filePath = $root . $params ['merId'] . '_' . $params ['batchNo'] . '_' . $params ['txnTime'] . 'txt';$/;" v -filePath .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $filePath = null;$/;" v -filePath .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $filePath = $cert_dir . '\/' . $file;$/;" v -file_content .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $file_content = file_get_contents ( $file ['tmp_name'] );$/;" v -file_content_deflate .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $file_content_deflate = gzcompress ( $file_content );$/;" v -file_dir .\lib\phprs\util\SaftyFileWriter.php /^ $file_dir = substr($path, 0,$pos+1);$/;" v -file_dir .\lib\phprs\util\SaftyFileWriter.php /^ $file_dir="";$/;" v -file_handle .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ if ( $this->file_handle = fopen( $this->log_file , "a+" ) )$/;" v -file_handle .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private $file_handle;$/;" v -file_handle .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ if ( $this->file_handle = fopen( $this->log_file , "a+" ) )$/;" v -file_handle .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private $file_handle;$/;" v -file_name .\lib\phprs\util\FileExpiredChecker.php /^ private $file_name=array(); \/\/文件全路径$/;" v -file_name .\lib\phprs\util\SaftyFileWriter.php /^ $file_name = substr($path, $pos+1);$/;" v -file_name .\lib\phprs\util\SaftyFileWriter.php /^ $file_name=$path;$/;" v -file_name .\lib\phprs\util\SaftyFileWriter.php /^ $file_name="";$/;" v -file_names .\lib\phprs\util\FileExpiredChecker.php /^ $file_names = $file_name;$/;" v -file_names .\lib\phprs\util\FileExpiredChecker.php /^ $file_names = array();$/;" v -file_put_contents .\framework\function\compat.func.php /^ function file_put_contents($file, $string) {$/;" f -filename .\lib\Doctrine\Common\Annotations\CachedReader.php /^ if (false === $filename = $class->getFilename()) {$/;" v -filename .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ && (false !== $filename = $class->getFilename())$/;" v -filename .\lib\Doctrine\Common\Annotations\PhpParser.php /^ if (false === $filename = $class->getFilename()) {$/;" v -filename .\loginLib\qq\API\class\QC.class.php /^ $filename = dirname($v['tmp_name'])."\/".$v['name'];$/;" v -filename .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->filename = date('Y-m-d', time()) . '.log'; $this->log_file = $this->createPath($filepath, $this->filename);$/;" v -filename .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private $filename;$/;" v -filename .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->filename = date('Y-m-d', time()) . '.log'; $this->log_file = $this->createPath($filepath, $this->filename);$/;" v -filename .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private $filename;$/;" v -filepost .\framework\function\communication.func.php /^ $filepost = true;$/;" v -filepost .\framework\function\communication.func.php /^ $filepost = false;$/;" v -files .\lib\phprs\Router.php /^ $files = $class;$/;" v -files .\lib\phprs\Router.php /^ $files = array($class.'.php');$/;" v -files .\lib\phprs\Router.php /^ $files = array($apis_dir);$/;" v -files .\lib\phprs\apis\ApiExporter.php /^ $files = $params['_FILES'];$/;" v -files .\lib\phprs\util\FileExpiredChecker.php /^ $files = @dir($file_name);$/;" v -files .\lib\phprs\util\IoCFactory.php /^ $files = [$refl->getFileName()];$/;" v -find .\lib\phprs\Request.php /^ public function find($expr, $create=false){$/;" f -find .\lib\phprs\util\HttpRouterEntries.php /^ function find($q,&$matched_path=null){$/;" f -find .\lib\phprs\util\Tree.php /^ public function find(array $path, $exact_match=false){$/;" f -findByArray .\lib\phprs\util\HttpRouterEntries.php /^ function findByArray($paths,$params, &$matched_path =null){$/;" f -findInitialTokenPosition .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function findInitialTokenPosition($input)$/;" f -findInitialTokenPosition .\lib\phprs\util\DocParser.php /^ private function findInitialTokenPosition($input)$/;" f -findNode .\lib\phprs\util\Tree.php /^ public function findNode(array $path, $exact_match=false, $all_req_paths=false){$/;" f -findParams .\lib\phprs\util\HttpRouterEntries.php /^ private function findParams($root,$params){$/;" f -findQ .\lib\phprs\ezsql\impls.php /^ static private function findQ($str,$offset = 0,$no=0){$/;" f -find_step .\lib\phprs\util\HttpRouterEntries.php /^ $find_step = array();$/;" v -first .\lib\Peekmo\JsonPath\JsonPath.php /^ $first = false;$/;" v -first .\lib\phprs\apis\ApiExporter.php /^ $first = false;$/;" v -first .\lib\phprs\apis\ApiExporter.php /^ $first = true;$/;" v -first .\lib\phprs\apis\ApiExporter.php /^ $first = true;$/;" v -first .\lib\phprs\ezsql\impls.php /^ $this->first = false;$/;" v -first .\lib\phprs\ezsql\impls.php /^ private $first=true;$/;" v -fistline .\lib\phprs\apis\ApiExporter.php /^ $fistline = false;$/;" v -fistline .\lib\phprs\apis\ApiExporter.php /^ $fistline = true;$/;" v -flag .\loginLib\qq\API\class\URL.class.php /^ public function post($url, $keysArr, $flag = 0){$/;" v -flags .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE;$/;" v -flags .\lib\phprs\util\Logger.php /^ static $flags = 12; \/\/ ERROR|WARNING$/;" v -flush .\lib\phprs\Response.php /^ public function flush($limit=null, $func=null)$/;" f -flush .\lib\phprs\Router.php /^ public function flush($limit=null, $func=null)$/;" f -for .\framework\library\json\JSON.php /^ * array-walking function for use in generating JSON-formatted name-value pairs$/;" f -for .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ * Base class for writing simple lexers, i.e. for creating small DSLs.$/;" c -forUpdate .\lib\phprs\ezsql\impls.php /^ static public function forUpdate($context){$/;" f -forUpdate .\lib\phprs\ezsql\rules\select.php /^ public function forUpdate(){$/;" f -forward .\source\apis\login.php /^ $forward = $weixin->getOauthUserInfoUrl($callback, $state);$/;" v -forward .\source\apis\login.php /^ $forward = $weixin->getOauthUserInfoUrl($callback, $state);$/;" v -found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v -found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v -found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v -found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v -found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v -found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = false;$/;" v -found .\lib\phprs\BindParams.php /^ $found = $req->find($value, $is_ref, $default);$/;" v -found .\lib\phprs\ezsql\impls.php /^ $found = strpos($str, '?', $offset);$/;" v -found .\lib\phprs\ezsql\impls.php /^ if($no == 0 || $found === false){$/;" v -found .\lib\phprs\util\DocParser.php /^ $found = true;$/;" v -found .\lib\phprs\util\DocParser.php /^ $found = true;$/;" v -found .\lib\phprs\util\DocParser.php /^ $found = true;$/;" v -found .\lib\phprs\util\DocParser.php /^ $found = false;$/;" v -found .\lib\phprs\util\HttpRouterEntries.php /^ $found = $this->findParams($route, $params);$/;" v -found .\lib\phprs\util\Tree.php /^ $found = $node;$/;" v -found .\lib\phprs\util\Tree.php /^ $found = array_key_exists('value',$node)?$node['value']:null;$/;" v -found .\lib\phprs\util\Tree.php /^ $found = null;$/;" v -fp .\framework\function\communication.func.php /^ $fp = fsockopen($urlset['host'], $urlset['port'], $errno, $error);$/;" v -fp .\framework\function\communication.func.php /^ $fp = fsockopen('ssl:\/\/' . $urlset['host'], $urlset['port'], $errno, $error);$/;" v -fp .\framework\function\compat.func.php /^ $fp = @fopen($file, 'w') or exit("Can not open $file");$/;" v -fp .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $fp = fopen($sPubKeyURL, "r");$/;" v -fp .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $fp = fopen($sPubKeyURL, "r");$/;" v -frames .\framework\model\cache.mod.php /^ $frames =array();$/;" v -from .\lib\Doctrine\Common\Annotations\Reader.php /^ * @param \\ReflectionClass $class The ReflectionClass of the class from which$/;" c -from .\lib\Doctrine\Common\Annotations\Reader.php /^ * @param \\ReflectionClass $class The ReflectionClass of the class from which$/;" c -from .\lib\phprs\BindReturns.php /^ $from = array();$/;" v -from .\lib\phprs\BindReturns.php /^ $from = array_slice($params, 1);$/;" v -from .\lib\phprs\BindThrows.php /^ $from = array_slice($params, 2);$/;" v -from .\lib\phprs\ezsql\impls.php /^ static public function from($context, $tables){$/;" f -from .\lib\phprs\ezsql\rules\select.php /^ public function from($table){$/;" f -from_appid .\framework\function\global.func.php /^ $from_appid = substr($content, $xml_len + 4);$/;" v -full .\lib\phprs\util\Tree.php /^ $full = $this->visitNode($path,function ($name,$node)use(&$found){$/;" v -full .\lib\phprs\util\Tree.php /^ $full = $this->visitNode($path,function ($name,&$node)use(&$i,$size,$key,&$res){$/;" v -fullPath .\lib\Peekmo\JsonPath\JsonPath.php /^ $fullPath = "$";$/;" v -full_path .\lib\phprs\Request.php /^ $full_path = $data['_SERVER']['REQUEST_URI'];$/;" v -full_url .\lib\phprs\apis\ApiExporter.php /^ $full_url = $invoker->getContainer()->path.'\/'.$u;$/;" v -full_url .\lib\phprs\apis\ApiExporter.php /^ $full_url = HttpRouterEntries::stringToPath($full_url);$/;" v -fun_name .\lib\phprs\BindReturns.php /^ foreach ($this->params as $fun_name => $calls) {$/;" v -fun_name .\lib\phprs\BindReturns.php /^ foreach ($this->params as $fun_name => $calls) {\/\/$/;" v -fun_name .\lib\phprs\BindThrows.php /^ foreach ($calls as $fun_name => $call) {$/;" v -fun_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($throws as $fun_name => $calls) {$/;" v -fun_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($invoker->getReturns()->getParams() as $fun_name => $calls) {$/;" v -func .\framework\class\loader.class.php /^ function func($name) {$/;" f -func .\lib\phprs\Response.php /^ public function flush($limit=null, $func=null)$/;" v -func .\lib\phprs\Router.php /^ public function flush($limit=null, $func=null)$/;" v -func .\lib\phprs\util\SerializableFunc.php /^ $this->func = $args[0];$/;" v -func .\lib\phprs\util\SerializableFunc.php /^ private $func;$/;" v -funcs .\lib\phprs\BindThrows.php /^ $funcs = array(); \/\/输出方法$/;" v -funcs .\lib\phprs\Response.php /^ $funcs = $this->buffer[$name];$/;" v -gc .\loginLib\qq\test\comm\session.php /^ function gc($sessMaxLifeTime) $/;" f -gc .\loginLib\qq\test\comm\session2.php /^ function gc($sessMaxLifeTime) $/;" f -genKey .\lib\phprs\util\IoCFactoryEx.php /^ private function genKey($method, $arguments){$/;" f -get .\lib\Peekmo\JsonPath\JsonStore.php /^ public function get($expr, $unique = false, $create = false, $default = null)$/;" f -get .\lib\phprs\apis\ApiExporter.php /^ $get = $params['_GET'];$/;" v -get .\lib\phprs\ezsql\Native.php /^ public function get(){$/;" f -get .\lib\phprs\ezsql\impls.php /^ static public function get($context, $db, $dictAs=null ,$errExce=true){$/;" f -get .\lib\phprs\ezsql\rules\select.php /^ public function get($db, $asDict=false,$errExce=true) {$/;" f -get .\lib\phprs\util\ApcCache.php /^ public function get($key, &$succeeded)$/;" f -get .\lib\phprs\util\CheckableCache.php /^ public function get($name, &$succeeded=null)$/;" f -get .\lib\phprs\util\FileCache.php /^ public function get($key, &$succeeded=null){$/;" f -get .\lib\phprs\util\KVCatchInterface.php /^ public function get($key, &$succeeded);$/;" f -get .\lib\phprs\util\MetaInfo.php /^ static function get($inst, $record_doc=false, $select=null){$/;" f -get .\lib\phprs\util\RedisCache.php /^ public function get($key, &$succeeded=null){$/;" f -get .\lib\phprs\util\RedisCache.php /^ public function get(){}$/;" f -get .\loginLib\qq\API\class\URL.class.php /^ public function get($url, $keysArr){$/;" f -get .\payment\wechat\notify.php /^ $get = $_GET;$/;" v -get .\payment\wechat\notify.php /^ $get = $data;$/;" v -getAccessToken .\framework\class\weixin.account.class.php /^ public function getAccessToken($db,$pdo) {$/;" f -getAccessToken .\source\apis\appport.php /^ public function getAccessToken($scode,$sid) {$/;" f -getAllHeaders .\lib\phprs\Request.php /^ function getAllHeaders() {$/;" f -getApiFiles .\lib\phprs\Router.php /^ public function getApiFiles(){$/;" f -getBindParamPos .\lib\phprs\BindParams.php /^ public function getBindParamPos(){$/;" f -getBindParamPos .\lib\phprs\BindReturns.php /^ public function getBindParamPos(){$/;" f -getBindParamPos .\lib\phprs\Invoker.php /^ public function getBindParamPos()$/;" f -getBuffer .\lib\phprs\Response.php /^ public function getBuffer(){$/;" f -getCacheOptions .\lib\phprs\util\IoCFactoryEx.php /^ public function getCacheOptions($method){$/;" f -getCatchablePatterns .\lib\Doctrine\Common\Annotations\DocLexer.php /^ protected function getCatchablePatterns()$/;" f -getCatchablePatterns .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ abstract protected function getCatchablePatterns();$/;" f -getCertId .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getCertId($cert_path) {$/;" f -getCertIdByCerPath .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getCertIdByCerPath($cert_path) {$/;" f -getClassAnnotation .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getClassAnnotation(ReflectionClass $class, $annotationName)$/;" f -getClassAnnotation .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getClassAnnotation(\\ReflectionClass $class, $annotationName)$/;" f -getClassAnnotation .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getClassAnnotation(\\ReflectionClass $class, $annotationName)$/;" f -getClassAnnotation .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getClassAnnotation(\\ReflectionClass $class, $annotation)$/;" f -getClassAnnotation .\lib\Doctrine\Common\Annotations\Reader.php /^ function getClassAnnotation(\\ReflectionClass $class, $annotationName);$/;" f -getClassAnnotation .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getClassAnnotation(\\ReflectionClass $class, $annotationName)$/;" f -getClassAnnotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getClassAnnotations(ReflectionClass $class)$/;" f -getClassAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getClassAnnotations(\\ReflectionClass $class)$/;" f -getClassAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getClassAnnotations(\\ReflectionClass $class)$/;" f -getClassAnnotations .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getClassAnnotations(\\ReflectionClass $class)$/;" f -getClassAnnotations .\lib\Doctrine\Common\Annotations\Reader.php /^ function getClassAnnotations(\\ReflectionClass $class);$/;" f -getClassAnnotations .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getClassAnnotations(\\ReflectionClass $class)$/;" f -getClassAnnotations .\lib\phprs\util\AnnotationReader.php /^ public function getClassAnnotations(\\ReflectionClass $class, $record_doc=false)$/;" f -getClassImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function getClassImports(ReflectionClass $class)$/;" f -getClassName .\lib\phprs\Invoker.php /^ public function getClassName(){$/;" f -getClassName .\lib\phprs\util\IoCFactory.php /^ public function getClassName($id=null){$/;" f -getClasses .\lib\phprs\util\AutoClassLoader.php /^ public function getClasses(){$/;" f -getConf .\lib\phprs\util\IoCFactory.php /^ public function getConf($id=null){$/;" f -getConfFile .\lib\phprs\util\IoCFactory.php /^ public function getConfFile(){$/;" f -getContainer .\lib\phprs\Invoker.php /^ public function getContainer(){$/;" f -getCurrentUser .\source\apis\Users.php /^ public function getCurrentUser($token){$/;" f -getDictKeys .\lib\phprs\util\IoCFactory.php /^ static function getDictKeys($value){$/;" f -getDocText .\lib\phprs\apis\ApiExporter.php /^ private function getDocText($doc)$/;" f -getEncryptCertId .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getEncryptCertId() {$/;" f -getFileContent .\lib\Doctrine\Common\Annotations\PhpParser.php /^ private function getFileContent($filename, $lineNumber)$/;" f -getHooks .\lib\phprs\Router.php /^ public function getHooks(){$/;" f -getIgnoredAnnotationNames .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function getIgnoredAnnotationNames(ReflectionClass $class)$/;" f -getImpl .\lib\phprs\Container.php /^ public function getImpl($request){$/;" f -getImpl .\lib\phprs\util\RedisCache.php /^ private function getImpl(){$/;" f -getInjected .\lib\phprs\Container.php /^ public function getInjected(){$/;" f -getInjectors .\lib\phprs\Container.php /^ \/\/public function getInjectors(){$/;" f -getInputUntilPosition .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function getInputUntilPosition($position)$/;" f -getInvokerInfo .\lib\phprs\apis\ApiExporter.php /^ public function getInvokerInfo( $method,$uri, $invoker)$/;" f -getLiteral .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function getLiteral($token)$/;" f -getLoginType .\source\apis\login.php /^ public function getLoginType(){$/;" f -getMetaInfo .\lib\phprs\util\IoCFactory.php /^ public function getMetaInfo($class){$/;" f -getMethodAnnotation .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getMethodAnnotation(ReflectionMethod $method, $annotationName)$/;" f -getMethodAnnotation .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getMethodAnnotation(\\ReflectionMethod $method, $annotationName)$/;" f -getMethodAnnotation .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getMethodAnnotation(\\ReflectionMethod $method, $annotationName)$/;" f -getMethodAnnotation .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getMethodAnnotation(\\ReflectionMethod $method, $annotation)$/;" f -getMethodAnnotation .\lib\Doctrine\Common\Annotations\Reader.php /^ function getMethodAnnotation(\\ReflectionMethod $method, $annotationName);$/;" f -getMethodAnnotation .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getMethodAnnotation(\\ReflectionMethod $method, $annotationName)$/;" f -getMethodAnnotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getMethodAnnotations(ReflectionMethod $method)$/;" f -getMethodAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method)$/;" f -getMethodAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method)$/;" f -getMethodAnnotations .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method)$/;" f -getMethodAnnotations .\lib\Doctrine\Common\Annotations\Reader.php /^ function getMethodAnnotations(\\ReflectionMethod $method);$/;" f -getMethodAnnotations .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method)$/;" f -getMethodAnnotations .\lib\phprs\util\AnnotationReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method, $record_doc=false)$/;" f -getMethodImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function getMethodImports(ReflectionMethod $method)$/;" f -getMethodName .\lib\phprs\Invoker.php /^ public function getMethodName(){$/;" f -getModifiers .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ protected function getModifiers()$/;" f -getNonCatchablePatterns .\lib\Doctrine\Common\Annotations\DocLexer.php /^ protected function getNonCatchablePatterns()$/;" f -getNonCatchablePatterns .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ abstract protected function getNonCatchablePatterns();$/;" f -getOauthCodeUrl .\framework\class\weixin.account.class.php /^ public function getOauthCodeUrl($callback, $state = '') {$/;" f -getOauthInfo .\framework\class\weixin.account.class.php /^ public function getOauthInfo($code) {$/;" f -getOauthUserInfo .\framework\class\weixin.account.class.php /^ public function getOauthUserInfo($accesstoken, $openid) {$/;" f -getOauthUserInfoUrl .\framework\class\weixin.account.class.php /^ public function getOauthUserInfoUrl($callback, $state = '') {$/;" f -getObj .\lib\phprs\util\IoCFactoryEx.php /^ public function getObj(){$/;" f -getObject .\lib\phprs\util\NewThenInit.php /^ public function getObject(){$/;" f -getParam .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function getParam(name) {$/;" f -getParams .\lib\phprs\BindParams.php /^ public function getParams(){$/;" f -getParams .\lib\phprs\BindReturns.php /^ public function getParams(){$/;" f -getParams .\lib\phprs\BindThrows.php /^ public function getParams(){$/;" f -getParams .\lib\phprs\Invoker.php /^ public function getParams(){$/;" f -getPrivateKey .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getPrivateKey($cert_path) {$/;" f -getProperty .\lib\phprs\util\IoCFactory.php /^ private function getProperty($value){$/;" f -getPropertyAnnotation .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getPropertyAnnotation(ReflectionProperty $property, $annotationName)$/;" f -getPropertyAnnotation .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getPropertyAnnotation(\\ReflectionProperty $property, $annotationName)$/;" f -getPropertyAnnotation .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getPropertyAnnotation(\\ReflectionProperty $property, $annotationName)$/;" f -getPropertyAnnotation .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getPropertyAnnotation(\\ReflectionProperty $property, $annotation)$/;" f -getPropertyAnnotation .\lib\Doctrine\Common\Annotations\Reader.php /^ function getPropertyAnnotation(\\ReflectionProperty $property, $annotationName);$/;" f -getPropertyAnnotation .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getPropertyAnnotation(\\ReflectionProperty $property, $annotationName)$/;" f -getPropertyAnnotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getPropertyAnnotations(ReflectionProperty $property)$/;" f -getPropertyAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property)$/;" f -getPropertyAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property)$/;" f -getPropertyAnnotations .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property)$/;" f -getPropertyAnnotations .\lib\Doctrine\Common\Annotations\Reader.php /^ function getPropertyAnnotations(\\ReflectionProperty $property);$/;" f -getPropertyAnnotations .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property)$/;" f -getPropertyAnnotations .\lib\phprs\util\AnnotationReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property, $record_doc=false)$/;" f -getPropertyImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function getPropertyImports(ReflectionProperty $property)$/;" f -getPropertyValue .\lib\phprs\util\IoCFactory.php /^ static function getPropertyValue($refl, $ins, $name)$/;" f -getPublicKey .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getPublicKey($cert_path) {$/;" f -getPulbicKeyByCertId .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getPulbicKeyByCertId($certId) {$/;" f -getQqUserByUId .\framework\model\user.mod.php /^function getQqUserByUId($uid,$db){$/;" f -getQueryCountData .\source\apis\cloud.php /^ public function getQueryCountData($outappid = "",$where_typeid="{=NULL=}",$/;" f -getQueryData .\source\apis\cloud.php /^ public function getQueryData($outappid = "",$where_typeid="{=NULL=}",$page=1,$psize="",$/;" f -getRemoteIP .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private function getRemoteIP()$/;" f -getRemoteIP .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private function getRemoteIP()$/;" f -getRequestParamString .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^function getRequestParamString($params) {$/;" f -getRequestParamString .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^function getRequestParamString($params) {$/;" f -getResponseInfo .\lib\phprs\apis\ApiExporter.php /^ private function getResponseInfo($return)$/;" f -getReturns .\lib\phprs\Invoker.php /^ public function getReturns(){$/;" f -getRoutes .\lib\phprs\Router.php /^ public function getRoutes(){$/;" f -getSignCertId .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getSignCertId() {$/;" f -getSingleQueryData .\source\apis\cloud.php /^ public function getSingleQueryData($outappid = "",$where_typeid="{=NULL=}",$/;" f -getSnippets .\lib\phprs\util\NestedStringCut.php /^ public function getSnippets(){$/;" f -getText .\lib\phprs\util\NestedStringCut.php /^ public function getText(){$/;" f -getThrows .\lib\phprs\Invoker.php /^ public function getThrows(){$/;" f -getTimeLine .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private function getTimeLine( $level, $FilePath, $FileLine)$/;" f -getTimeLine .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private function getTimeLine( $level, $FilePath, $FileLine)$/;" f -getType .\lib\Doctrine\Common\Annotations\DocLexer.php /^ protected function getType(&$value)$/;" f -getType .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ abstract protected function getType(&$value);$/;" f -getUser .\source\apis\Users.php /^ private function getUser($cond){$/;" f -getUserByAccount .\source\apis\Users.php /^ public function getUserByAccount($account){$/;" f -getUserByAlias .\source\apis\Users.php /^ public function getUserByAlias($alias){$/;" f -getUserById .\framework\model\user.mod.php /^function getUserById($id,$db){$/;" f -getUserByIds .\source\apis\Users.php /^ public function getUserByIds($uids, $asDict=false) {$/;" f -getUserByOpenId .\framework\model\user.mod.php /^function getUserByOpenId($openId,$db){$/;" f -getUserBySid .\source\apis\user.php /^ public function getUserBySid($sid,$scode) {$/;" f -getWeixinUserByUId .\framework\model\user.mod.php /^function getWeixinUserByUId($uid,$db){$/;" f -get_access_token .\loginLib\qq\API\class\QC.class.php /^ public function get_access_token(){$/;" f -get_contents .\loginLib\qq\API\class\URL.class.php /^ public function get_contents($url){$/;" f -get_openid .\loginLib\qq\API\class\Oauth.class.php /^ public function get_openid(){$/;" f -get_sp_key .\payment\baifubao\bfb_sdk.php /^ private function get_sp_key() {$/;" f -get_url_contents .\loginLib\qq\API\comm\utils.php /^function get_url_contents($url)$/;" f -get_url_contents .\loginLib\qq\test\comm\utils.php /^function get_url_contents($url)$/;" f -geteach .\lib\phprs\Router.php /^ $geteach = function ()use($dir){$/;" v -geteach .\lib\phprs\Router.php /^ $geteach = function ()use(&$files){$/;" v -geted .\lib\phprs\util\HttpRouterEntries.php /^ $geted = $visited;$/;" v -geted .\lib\phprs\util\HttpRouterEntries.php /^ $geted=0;$/;" v -getimagesizefromstring .\framework\function\compat.func.php /^ function getimagesizefromstring($string_data) {$/;" f -getip .\framework\function\global.func.php /^function getip() {$/;" f -given .\lib\phprs\Invoker.php /^ $given = count($args);$/;" v -glimpse .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function glimpse()$/;" f -global .\framework\function\communication.func.php /^function ihttp_email($to, $subject, $body, $global = false) {$/;" v -globalIgnoredNames .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private static $globalIgnoredNames = array($/;" v -globalImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private static $globalImports = array($/;" v -globalUserInfo .\source\apis\login.php /^ $globalUserInfo = getUserById($globalUserInfoId,$this->db);$/;" v -globalUserInfoId .\source\apis\login.php /^ $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_WECHAT,$fan['openid'],$this->db,$pdo);$/;" v -globalUserInfoId .\source\apis\login.php /^ $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_WECHAT,$userinfo['openid'],$this->db,$pdo);$/;" v -globalUserInfoId .\source\apis\login.php /^ $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_QQ,$fan['openid'],$this->db,$pdo);$/;" v -globalUserInfoId .\source\apis\login.php /^ $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_QQ,$openId,$this->db,$pdo);$/;" v -got .\lib\phprs\util\IoCFactory.php /^ $got = false;$/;" v -got .\lib\phprs\util\IoCFactoryEx.php /^ $got = false;$/;" v -grandchilds .\framework\model\cache.mod.php /^ $grandchilds = pdo_fetchall('SELECT * FROM ' . tablename('core_menu') . ' WHERE pid = :pid AND is_display = 1 AND type = :type ORDER BY is_system DESC, displayorder DESC, id ASC', array(':pid' => $child['id'], ':type' => 'url'));$/;" v -graph_url .\loginLib\qq\API\class\Oauth.class.php /^ $graph_url = $this->urlUtils->combineURL(self::GET_OPENID_URL, $keysArr);$/;" v -groupBy .\lib\phprs\ezsql\impls.php /^ static public function groupBy($context, $column){$/;" f -groupBy .\lib\phprs\ezsql\rules\select.php /^ public function groupBy($column) {$/;" f -h .\payment\resource\script\kindeditor\plugins\code\prettify.js /^(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\\\x0":"\\\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\\\"||a==="-"||a==="["||a==="]")a="\\\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(\/\\\\u[\\dA-Fa-f]{4}|\\\\x[\\dA-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\S\\s]|[^\\\\]\/g),a=$/;" f -handle .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $handle = fopen ( $filePath, "w+" );$/;" v -handle .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $handle = opendir ( $cert_dir );$/;" v -handleHeader .\lib\phprs\util\Curl.php /^ public function handleHeader($ch, $header_line){$/;" f -hasClass .\lib\phprs\util\IoCFactory.php /^ public function hasClass($id){$/;" f -hasFields .\source\apis\cloud.php /^ $hasFields = array();$/;" v -hash .\framework\function\global.func.php /^ $hash = '';$/;" v -hash .\framework\function\global.func.php /^ $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);$/;" v -havedot .\framework\function\global.func.php /^function cutstr($string, $length, $havedot = false, $charset = '') {$/;" v -having .\lib\phprs\ezsql\impls.php /^ static public function having($context, $expr, $args){$/;" f -having .\lib\phprs\ezsql\rules\select.php /^ public function having($expr, $_=null) {$/;" f -havingArgs .\lib\phprs\ezsql\impls.php /^ static public function havingArgs($context, $args){$/;" f -havingArgs .\lib\phprs\ezsql\rules\select.php /^ public function havingArgs($args) {$/;" f -header .\framework\function\communication.func.php /^ $header = explode("\\r\\n", $split2[1]);$/;" v -header .\lib\phprs\apis\ApiExporter.php /^ $header = "$header$cookie_name=[$arg_name];";$/;" v -header .\lib\phprs\apis\ApiExporter.php /^ $header = "$header$header_name: [$arg_name]\\r\\n";$/;" v -header .\lib\phprs\apis\ApiExporter.php /^ $header = $header."Cookie: ";$/;" v -header .\lib\phprs\apis\ApiExporter.php /^ $header = '';$/;" v -header .\lib\phprs\apis\ApiExporter.php /^ $header = '';$/;" v -header_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($headers as $header_name => $value) {$/;" v -headermeta .\framework\function\communication.func.php /^ $headermeta = explode('HTTP\/', $data);$/;" v -headers .\framework\function\communication.func.php /^ $headers = array();$/;" v -headers .\framework\function\communication.func.php /^ $headers = array('Content-Type' => 'application\/x-www-form-urlencoded');$/;" v -headers .\lib\phprs\Request.php /^ $headers = array();$/;" v -headers .\lib\phprs\apis\ApiExporter.php /^ $headers = $params['header'];$/;" v -headers .\lib\phprs\util\Curl.php /^ public $headers=array();$/;" v -headers .\lib\phprs\util\Curl.php /^ public function GET($url, $headers=null,$followLoc=true){$/;" v -headers .\lib\phprs\util\Curl.php /^ public function POST($url, $content, $headers=null,$followLoc=true){$/;" v -headers .\lib\phprs\util\Curl.php /^ public function PUT($url, $content, $headers=null,$followLoc=true){$/;" v -hook_route .\lib\phprs\Router.php /^ $hook_route=array();$/;" v -hook_routes .\lib\phprs\Router.php /^ private $hook_routes=array();$/;" v -hooks .\lib\phprs\Router.php /^ private $hooks=array();$/;" v -host .\lib\phprs\util\RedisCache.php /^ private $host;$/;" v -html .\framework\function\global.func.php /^ $html = '
      ';$/;" v -html .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ $html = curl_exec ( $ch );$/;" v -html .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $html = <<routes as $http_method=>$route){$/;" v -i .\framework\function\global.func.php /^ for ($j = $i = 0; $i < 256; $i++) {$/;" v -i .\lib\Peekmo\JsonPath\JsonPath.php /^ for ($s = preg_split("\/'?,'?\/", $loc), $i = 0, $n = count($s); $i < $n; $i++)$/;" v -i .\lib\phprs\Response.php /^ $i = 0;$/;" v -i .\lib\phprs\util\Tree.php /^ $i = 0;$/;" v -i .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $i = $i + 2; }$/;" v -i .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $i = $i + 2;$/;" v -iCardLen .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iCardLen = strlen($sCardNO);$/;" v -iPanLen .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iPanLen = strlen($sPan);$/;" v -iRet .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $iRet = openssl_public_encrypt($sInput, $sOutData, $sCrt, OPENSSL_PKCS1_PADDING);$/;" v -iRet .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $iRet = openssl_public_encrypt($sInput, $sOutData, $sCrt, OPENSSL_PKCS1_PADDING);$/;" v -iTemp .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iTemp = $iTemp + 2; $/;" v -iTemp .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iTemp = 1;$/;" v -iTemp .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iTemp = $iPanLen - 13;$/;" v -iarray_change_key_case .\framework\function\global.func.php /^function iarray_change_key_case($array, $case = CASE_LOWER){$/;" f -id .\framework\function\cache.mysql.func.php /^ $id = Sql::replaceInto('ims_interaction_core_cache')->values($record)->exec($pdo)->lastInsertId();$/;" v -id .\framework\model\user.mod.php /^ $id = Sql::insertInto('ims_interaction_users')->values($insertData)->exec($pdo)->lastInsertId();$/;" v -id .\framework\model\user.mod.php /^ $id = Sql::insertInto('ims_interaction_users_qq')->values($insertData)->exec($pdo)->lastInsertId();$/;" v -id .\framework\model\user.mod.php /^ $id = Sql::insertInto('ims_interaction_users_weixin')->values($insertData)->exec($pdo)->lastInsertId();$/;" v -id .\lib\phprs\BindReturns.php /^ foreach ($calls as $id => $call) {$/;" v -id .\lib\phprs\BindThrows.php /^ foreach ($funcs as $id=>$calls) {$/;" v -id .\lib\phprs\Container.php /^ $id = 0;$/;" v -id .\lib\phprs\Container.php /^ foreach ( $reader->getPropertyAnnotations($property) as $id => $ann){$/;" v -id .\lib\phprs\Invoker.php /^ foreach ($this->method_args as $id => $arg) {$/;" v -id .\lib\phprs\apis\ApiExporter.php /^ 'doc' => $id===-1?null:$this->getDocText($anns['return'][$id]['desc']),$/;" v -id .\lib\phprs\apis\ApiExporter.php /^ foreach ($calls as $id => $call) {$/;" v -id .\lib\phprs\apis\ApiExporter.php /^ foreach ($calls as $id => $call) {$/;" v -id .\lib\phprs\util\AnnotationReader.php /^ $id = $method->getName();$/;" v -id .\lib\phprs\util\AnnotationReader.php /^ $id = $property->getName();$/;" v -id .\lib\phprs\util\IoCFactoryEx.php /^ $this->id = $id;$/;" v -id .\lib\phprs\util\IoCFactoryEx.php /^ private $id;$/;" v -id .\lib\phprs\util\MetaInfo.php /^ foreach ( $reader->getMethodAnnotations($method, $record_doc) as $id => $ann){$/;" v -id .\lib\phprs\util\MetaInfo.php /^ foreach ( $reader->getPropertyAnnotations($property, $record_doc) as $id => $ann){$/;" v -id .\lib\phprs\util\MetaInfo.php /^ foreach ($reader->getClassAnnotations($reflection, $record_doc) as $id =>$ann ){$/;" v -id .\payment\wechat\pay.php /^ $id = date('YmdH');$/;" v -identifier .\lib\Doctrine\Common\Annotations\DocParser.php /^ $identifier = $className . '::' . $const;$/;" v -identifier .\lib\Doctrine\Common\Annotations\DocParser.php /^ $identifier = $this->Identifier();$/;" v -identifier .\lib\phprs\util\DocParser.php /^ $identifier = $className . '::' . $const;$/;" v -identifier .\lib\phprs\util\DocParser.php /^ $identifier = $this->Identifier();$/;" v -idle .\lib\phprs\util\MessagePump.php /^ $idle = array_pop($this->idle_queues[$queue_id]);$/;" v -idle_queues .\lib\phprs\util\MessagePump.php /^ $this->idle_queues = array();$/;" v -idle_queues .\lib\phprs\util\MessagePump.php /^ private $idle_queues = array(); \/\/ 空闲队列$/;" v -ignore .\lib\phprs\apis\ApiExporter.php /^ $ignore = array($/;" v -ignoreNotImportedAnnotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->ignoreNotImportedAnnotations = (boolean) $bool;$/;" v -ignoreNotImportedAnnotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $ignoreNotImportedAnnotations = false;$/;" v -ignore_load_error .\lib\phprs\Router.php /^ public $ignore_load_error=true;$/;" v -ignoredAnnotationNames .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $ignoredAnnotationNames = self::$globalIgnoredNames;$/;" v -ignoredAnnotationNames .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $ignoredAnnotationNames = array();$/;" v -ignoredAnnotationNames .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->ignoredAnnotationNames = $names;$/;" v -ignoredAnnotationNames .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $ignoredAnnotationNames = array();$/;" v -ignoredAnnotationNames .\lib\phprs\util\DocParser.php /^ $this->ignoredAnnotationNames = $names;$/;" v -ignoredAnnotationNames .\lib\phprs\util\DocParser.php /^ private $ignoredAnnotationNames = array();$/;" v -ihtml_entity_decode .\framework\function\global.func.php /^function ihtml_entity_decode($str) {$/;" f -ihtmlspecialchars .\framework\function\global.func.php /^function ihtmlspecialchars($var) {$/;" f -ihttp_email .\framework\function\communication.func.php /^function ihttp_email($to, $subject, $body, $global = false) {$/;" f -ihttp_get .\framework\function\communication.func.php /^function ihttp_get($url) {$/;" f -ihttp_post .\framework\function\communication.func.php /^function ihttp_post($url, $data) {$/;" f -ihttp_request .\framework\function\communication.func.php /^function ihttp_request($url, $post = '', $extra = array(), $timeout = 60) {$/;" f -ihttp_response_parse .\framework\function\communication.func.php /^function ihttp_response_parse($data, $chunked = false) {$/;" f -ihttp_response_parse_unchunk .\framework\function\communication.func.php /^function ihttp_response_parse_unchunk($str = null) {$/;" f -ijson_encode .\framework\function\global.func.php /^function ijson_encode($value) {$/;" f -immediately .\lib\phprs\util\MessagePump.php /^ public function pushAction($queue_id, $action, $args, $exception_handle, $desc, $immediately=false)$/;" v -impl .\lib\phprs\Container.php /^ $this->impl = $this->factory->create($this->class, null, null, function($src, &$succeeded)use($request, &$injected){$/;" v -impl .\lib\phprs\Container.php /^ private $impl;$/;" v -impl .\lib\phprs\Invoker.php /^ $impl = $this->ins->getImpl($request);$/;" v -impl .\lib\phprs\RouterWithCache.php /^ $this->impl = $this->cache->get($key, $ok);$/;" v -impl .\lib\phprs\RouterWithCache.php /^ $this->impl = $this->factory->create('phprs\\\\Router');$/;" v -impl .\lib\phprs\RouterWithCache.php /^ private $impl;$/;" v -impl .\lib\phprs\ezsql\rules\basic.php /^ $this->impl = new OrderByImpl();$/;" v -impl .\lib\phprs\ezsql\rules\basic.php /^ private $impl;$/;" v -impl .\lib\phprs\ezsql\rules\update.php /^ $this->impl = new UpdateSetImpl();$/;" v -impl .\lib\phprs\ezsql\rules\update.php /^ private $impl;$/;" v -impl .\lib\phprs\util\CheckableCache.php /^ $this->impl = $impl;$/;" v -impl .\lib\phprs\util\CheckableCache.php /^ private $impl;$/;" v -imports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $imports = array();$/;" v -imports .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->imports = $imports;$/;" v -imports .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $imports = array();$/;" v -inc .\loginLib\qq\API\class\Recorder.class.php /^ $this->inc = json_decode($incFileContents);$/;" v -inc .\loginLib\qq\API\class\Recorder.class.php /^ private $inc;$/;" v -inc .\loginLib\qq\install\Recorder.class.php /^ $this->inc = json_decode($incFileContents);$/;" v -inc .\loginLib\qq\install\Recorder.class.php /^ private $inc;$/;" v -incFile .\loginLib\qq\install\index.php /^ $incFile = fopen("..\/API\/comm\/inc.php","w+") or die("请设置API\\comm\\inc.php的权限为777");$/;" v -incFileContents .\loginLib\qq\API\class\Recorder.class.php /^ $incFileContents = $incFileContents[1];$/;" v -incFileContents .\loginLib\qq\API\class\Recorder.class.php /^ $incFileContents = file(IA_ROOT."\/loginLib\/qq\/API\/comm\/inc.php");$/;" v -incFileContents .\loginLib\qq\install\Recorder.class.php /^ $incFileContents = file_get_contents(ROOT."comm\/inc.php");$/;" v -includes .\lib\phprs\util\ClassLoader.php /^ static public $includes=array();$/;" v -index .\framework\function\global.func.php /^ foreach ($emotions as $index => $emotion) {$/;" v -index .\framework\model\cache.mod.php /^ foreach ($module_group as $index => $module) {$/;" v -index .\lib\phprs\BindReturns.php /^ foreach ($from as $index=>$name){ \/\/ 输入方法 $index变量序号 $name变量名$/;" v -index .\lib\phprs\BindThrows.php /^ foreach ($from as $index=>$name){ \/\/ 输入方法 $index变量序号 $name变量名$/;" v -info .\lib\phprs\apis\ApiExporter.php /^ $info = array_merge($info, $this->getInvokerInfo($method,$uri, $invoker));$/;" v -info .\lib\phprs\apis\ApiExporter.php /^ $info = $this->getResponseInfo($throw);$/;" v -info .\lib\phprs\apis\ApiExporter.php /^ $info = array_merge($info, $this->getInvokerInfo($method,$uri,$invoker));$/;" v -info .\lib\phprs\apis\ApiExporter.php /^ $info = $this->getResponseInfo($return);$/;" v -info .\lib\phprs\apis\ApiExporter.php /^ $info = new \\ArrayObject(array($/;" v -info .\lib\phprs\apis\ApiExporter.php /^ $info = $this->exportJson();$/;" v -info .\lib\phprs\util\Logger.php /^ public static function info($msg){$/;" f -info .\lib\phprs\util\MetaInfo.php /^ $info = array();$/;" v -info .\payment\baifubao\bfb_sdk.php /^ $info = curl_getinfo($curl);$/;" v -init .\lib\phprs\util\IoCFactoryEx.php /^ $this->init = $init;$/;" v -init .\lib\phprs\util\IoCFactoryEx.php /^ private $init;$/;" v -init .\lib\phprs\util\Logger.php /^ public static function init(){$/;" f -init .\lib\phprs\util\NewThenInit.php /^ public function init($arg0 = null, $_ = null){$/;" f -initArgs .\lib\phprs\util\NewThenInit.php /^ public function initArgs($args){$/;" f -initMap .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function initMap(){$/;" f -initialize .\payment\resource\script\kindeditor\plugins\baidumap\map.html /^ function initialize() {$/;" f -initialize .\payment\resource\script\kindeditor\plugins\map\map.html /^ function initialize() {$/;" f -inject .\lib\phprs\Container.php /^ \/\/public function inject($request){$/;" f -injectDependent .\lib\phprs\util\IoCFactory.php /^ public function injectDependent($refl, $ins, $meta, $properties, $injector=null)$/;" f -injected .\lib\phprs\Container.php /^ $injected = &$this->injected;$/;" v -injected .\lib\phprs\Container.php /^ $injected = array();$/;" v -injected .\lib\phprs\Container.php /^ private $injected;\/\/ 被注入的属性, 记录下来, 可以作为缓存key的一部分$/;" v -injected .\lib\phprs\Invoker.php /^ $injected = $this->ins->getInjected();$/;" v -injector .\lib\phprs\util\IoCFactory.php /^ public function injectDependent($refl, $ins, $meta, $properties, $injector=null)$/;" v -injector .\lib\phprs\util\IoCFactoryEx.php /^ $this->injector = $injector;$/;" v -injector .\lib\phprs\util\IoCFactoryEx.php /^ private $injector;$/;" v -injectors .\lib\phprs\Container.php /^ \/\/private $injectors=array();$/;" v -innerJoin .\lib\phprs\ezsql\rules\select.php /^ public function innerJoin($table) {$/;" f -input .\framework\library\json\JSON.php /^ * $input = file_get_contents('php:\/\/input', 1000000);$/;" v -input .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->input = $input;$/;" v -input .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ private $input;$/;" v -input .\payment\wechat\notify.php /^$input = file_get_contents('php:\/\/input');$/;" v -input .\payment\wechat\rights.php /^$input = file_get_contents('php:\/\/input');$/;" v -input .\payment\wechat\warning.php /^$input = file_get_contents('php:\/\/input');$/;" v -ins .\lib\phprs\Invoker.php /^ $this->ins = $ins;$/;" v -ins .\lib\phprs\Invoker.php /^ private $ins;$/;" v -ins .\lib\phprs\util\IoCFactory.php /^ $ins = $this->singletons[$id];$/;" v -ins .\lib\phprs\util\IoCFactory.php /^ $ins = $class_refl->newInstanceArgs($construct_args);$/;" v -ins .\lib\phprs\util\IoCFactory.php /^ $ins = $nti->getObject();$/;" v -ins .\lib\phprs\util\IoCFactory.php /^ $ins = null;$/;" v -insert .\lib\phprs\util\HttpRouterEntries.php /^ public function insert($query,$e,$strict=false){$/;" f -insert .\lib\phprs\util\Tree.php /^ $insert = true;$/;" v -insert .\lib\phprs\util\Tree.php /^ $insert= false;$/;" v -insert .\lib\phprs\util\Tree.php /^ public function insert( $path, $value, $replace_exits=false, &$replaced=null){$/;" f -insert .\payment\wechat\rights.php /^ $insert = array($/;" v -insertByArray .\lib\phprs\util\HttpRouterEntries.php /^ public function insertByArray($paths,$params,$e){$/;" f -insertData .\framework\model\user.mod.php /^ $insertData = array();$/;" v -insertData .\source\apis\cloud.php /^ $insertData = array();$/;" v -insertInto .\lib\phprs\ezsql\Sql.php /^ static public function insertInto($table) {$/;" f -insertInto .\lib\phprs\ezsql\impls.php /^ static public function insertInto($context, $table) {$/;" f -insertInto .\lib\phprs\ezsql\rules\insert.php /^ public function insertInto($table) {$/;" f -instance .\lib\Doctrine\Common\Annotations\DocParser.php /^ $instance = new $name();$/;" v -intSize .\lib\phprs\ezsql\impls.php /^ $intSize = intval($size);$/;" v -intStart .\lib\phprs\ezsql\impls.php /^ $intStart = intval($start);$/;" v -invokeRoute .\lib\phprs\Router.php /^ private function invokeRoute($routes, $request, &$respond){$/;" f -invoker .\lib\phprs\Container.php /^ $invoker = $this->factory->create('phprs\\Invoker', array($this, $method) );$/;" v -ip .\framework\function\global.func.php /^ $ip = $xip;$/;" v -ip .\framework\function\global.func.php /^ $ip = $_SERVER['HTTP_CDN_SRC_IP'];$/;" v -ip .\framework\function\global.func.php /^ $ip = $_SERVER['HTTP_CLIENT_IP'];$/;" v -ip .\framework\function\global.func.php /^ $ip = $_SERVER['REMOTE_ADDR'];$/;" v -ip .\framework\function\global.func.php /^ static $ip = '';$/;" v -ip .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $ip = trim($ip);$/;" v -ip .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $ip = $this->getRemoteIP();$/;" v -ip .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $ip = trim($ip);$/;" v -ip .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $ip = $this->getRemoteIP();$/;" v -is .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ verify that the class is really meant to be an annotation and not just any ordinary class$/;" c -is .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ verify that the class is really meant to be an annotation$/;" c -is .\payment\baifubao\bfb_sdk.php /^ 'the pay result returned from baifubao pay result interface is invalid, is [%s]', $/;" i -is .\payment\baifubao\bfb_sdk.php /^ 'the sp_no returned from baifubao pay result interface is invaild');$/;" i -isA .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function isA($value, $token)$/;" f -isCacheFresh .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private function isCacheFresh($cacheKey, \\ReflectionClass $class)$/;" f -isEmpty .\lib\phprs\BindParams.php /^ public function isEmpty(){$/;" f -isEmpty .\lib\phprs\BindReturns.php /^ public function isEmpty(){$/;" f -isEmpty .\lib\phprs\BindThrows.php /^ public function isEmpty(){$/;" f -isEmptyString .\framework\function\global.func.php /^function isEmptyString($C_char){$/;" f -isError .\framework\library\json\JSON.php /^ function isError($data, $code = null)$/;" f -isNameToken .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $isNameToken = $token[0] === T_STRING || $token[0] === T_NS_SEPARATOR;$/;" v -isNestedAnnotation .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->isNestedAnnotation = false;$/;" v -isNestedAnnotation .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->isNestedAnnotation = true;$/;" v -isNestedAnnotation .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $isNestedAnnotation = false;$/;" v -isNextToken .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function isNextToken($token)$/;" f -isNextTokenAny .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function isNextTokenAny(array $tokens)$/;" f -isOk .\lib\phprs\util\Curl.php /^ public function isOk(){$/;" f -isOpen .\framework\class\weixin.account.class.php /^ public function fansQueryInfo($uniid,$db,$pdo, $isOpen = true) {$/;" v -isSuccess .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $isSuccess = openssl_verify ( $params_sha1x16, $signature,$public_key, OPENSSL_ALGO_SHA1 );$/;" v -isTrue .\lib\phprs\util\Verify.php /^ static public function isTrue($var, $msg = null)$/;" f -is_base64 .\framework\function\global.func.php /^function is_base64($str){$/;" f -is_const .\lib\phprs\BindReturns.php /^ $is_const = (substr($name, 0, 1) !='$'); $/;" v -is_const .\lib\phprs\BindThrows.php /^ $is_const = (substr($name, 0, 1) !='$');$/;" v -is_const .\lib\phprs\BindThrows.php /^ $is_const = true;$/;" v -is_error .\framework\function\global.func.php /^function is_error($data) {$/;" f -is_ignored .\lib\phprs\apis\ApiExporter.php /^ $is_ignored = true;$/;" v -is_ignored .\lib\phprs\apis\ApiExporter.php /^ $is_ignored = false;$/;" v -is_ignored .\lib\phprs\apis\ApiExporter.php /^ $is_ignored = false;$/;" v -is_optional .\lib\phprs\apis\ApiExporter.php /^ $is_optional = true;$/;" v -is_optional .\lib\phprs\apis\ApiExporter.php /^ $is_optional = true;$/;" v -is_running .\lib\phprs\util\MessagePump.php /^ $this->is_running = false;$/;" v -is_running .\lib\phprs\util\MessagePump.php /^ $this->is_running = true;$/;" v -is_running .\lib\phprs\util\MessagePump.php /^ private $is_running = false;$/;" v -is_serialized .\framework\function\global.func.php /^function is_serialized($data, $strict = true) {$/;" f -is_singleton .\lib\phprs\util\IoCFactory.php /^ $is_singleton = true;$/;" v -is_singleton .\lib\phprs\util\IoCFactory.php /^ $is_singleton = false;$/;" v -ischunk .\framework\function\communication.func.php /^ $ischunk = true;$/;" v -ischunk .\framework\function\communication.func.php /^ $ischunk = false;$/;" v -iserializer .\framework\function\global.func.php /^function iserializer($value) {$/;" f -isetcookie .\framework\function\global.func.php /^function isetcookie($key, $value, $expire = 0, $httponly = false) {$/;" f -isgzip .\framework\function\communication.func.php /^ $isgzip = true;$/;" v -isgzip .\framework\function\communication.func.php /^ $isgzip = false;$/;" v -isimplexml_load_string .\framework\function\global.func.php /^function isimplexml_load_string($string, $class_name = 'SimpleXMLElement', $options = 0, $ns = '', $is_prefix = false) {$/;" f -istripslashes .\framework\function\global.func.php /^function istripslashes($var) {$/;" f -istrlen .\framework\function\global.func.php /^function istrlen($string, $charset = '') {$/;" f -isxml .\payment\wechat\notify.php /^ $isxml = false;$/;" v -isxml .\payment\wechat\notify.php /^$isxml = true;$/;" v -item .\framework\model\cache.mod.php /^ $item = array();$/;" v -item .\lib\Doctrine\Common\Annotations\DocParser.php /^ $item = new \\stdClass();$/;" v -item .\lib\phprs\Router.php /^ $item = each($files);$/;" v -item .\lib\phprs\util\DocParser.php /^ $item = new \\stdClass();$/;" v -iunserializer .\framework\function\global.func.php /^function iunserializer($value) {$/;" f -iv .\framework\function\global.func.php /^ $iv = substr($key, 0, 16);$/;" v -j .\framework\function\global.func.php /^ $j = ($j + $box[$a]) % 256;$/;" v -j .\framework\function\global.func.php /^ $j = ($j + $box[$i] + $rndkey[$i]) % 256;$/;" v -j .\framework\function\global.func.php /^ for ($a = $j = $i = 0; $i < $string_length; $i++) {$/;" v -jValue .\loginLib\qq\API\class\QC.class.php /^ $jValue = explode(":", $v);$/;" v -join .\lib\phprs\ezsql\impls.php /^ static public function join($context, $type, $table) {$/;" f -join .\lib\phprs\ezsql\rules\select.php /^ public function join($table){$/;" f -json .\framework\library\json\JSON.php /^ * $json = new Services_JSON();$/;" v -json .\loginLib\qq\API\class\QC.class.php /^ $json = str_replace("{","",str_replace("}","", $json));$/;" v -jsonPath .\lib\Peekmo\JsonPath\JsonPath.php /^ public function jsonPath(&$obj, $expr, $args = null, $create=false, $default=null)$/;" f -jsonPath .\lib\Peekmo\JsonPath\JsonStore.php /^ $this->jsonPath = new JsonPath();$/;" v -jsonPath .\lib\Peekmo\JsonPath\JsonStore.php /^ private $jsonPath;$/;" v -jsonValue .\loginLib\qq\API\class\QC.class.php /^ $jsonValue = explode(",", $json);$/;" v -json_decode .\framework\function\compat.func.php /^ function json_decode($jsonString) {$/;" f -json_encode .\framework\function\compat.func.php /^ function json_encode($value) {$/;" f -jsonobj .\framework\function\compat.func.php /^ $jsonobj = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);$/;" v -jsonobj .\framework\function\compat.func.php /^ static $jsonobj;$/;" v -k .\framework\function\compat.func.php /^ foreach ($formdata as $k => $v) {$/;" v -k .\framework\function\global.func.php /^ foreach($_SESSION['token'] as $k => $v) {$/;" v -k .\framework\model\cache.mod.php /^ foreach ($setting as $k => $v) {$/;" v -k .\lib\Doctrine\Common\Annotations\DocParser.php /^ foreach ($values as $k => $value) {$/;" v -k .\lib\phprs\Response.php /^ foreach ($args as $k => $v) {$/;" v -k .\lib\phprs\apis\ApiExporter.php /^ \/\/foreach ($words as $k => $word) {$/;" v -k .\lib\phprs\apis\ApiExporter.php /^ foreach ($args as $k => &$arg) {$/;" v -k .\lib\phprs\apis\ApiExporter.php /^ foreach ($arr as $k => &$v) {$/;" v -k .\lib\phprs\ezsql\impls.php /^ foreach ($args as $k =>$arg){$/;" v -k .\lib\phprs\ezsql\impls.php /^ foreach ($args as $k => $v){$/;" v -k .\lib\phprs\ezsql\impls.php /^ foreach ($orders as $k=>$v){$/;" v -k .\lib\phprs\ezsql\impls.php /^ foreach ($values as $k=>$v){$/;" v -k .\lib\phprs\util\AnnotationCleaner.php /^ foreach ($stateBegin as $k=>$v){$/;" v -k .\lib\phprs\util\DocParser.php /^ foreach ($values as $k => $value) {$/;" v -k .\lib\phprs\util\IoCFactory.php /^ foreach ($value as $k=>$v){$/;" v -k .\lib\phprs\util\NestedStringCut.php /^ foreach ($this->snippets as $k => $v){$/;" v -k .\loginLib\qq\API\class\QC.class.php /^ foreach($obj as $k => $v){$/;" v -k .\loginLib\qq\install\index.php /^ foreach($_POST as $k => $val){$/;" v -k .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $k = $arr ['0'];$/;" v -k .\payment\wechat\notify.php /^ foreach($get as $k => $v) {$/;" v -k .\source\apis\login.php /^ foreach($ret['data'] as $k => $v){$/;" v -k .\source\apis\login.php /^ foreach($userinfo as $k => $v){$/;" v -key .\framework\function\communication.func.php /^ $key = substr($v, 0, $pos);$/;" v -key .\framework\function\compat.func.php /^ function http_build_recursive($formdata, $separator, $key = '', $prefix = '') {$/;" v -key .\framework\function\global.func.php /^ $key = substr(random(20), 0, 4);$/;" v -key .\framework\function\global.func.php /^ foreach ($var as $key => $value) {$/;" v -key .\framework\function\global.func.php /^ $key = base64_decode($encodingaeskey . '=');$/;" v -key .\framework\function\global.func.php /^ $key = md5($key != '' ? $key : $GLOBALS['_W']['config']['setting']['authkey']);$/;" v -key .\framework\function\global.func.php /^ foreach ($array as $key => $value){$/;" v -key .\framework\library\json\JSON.php /^ $key = $parts[1];$/;" v -key .\framework\library\json\JSON.php /^ $key = $this->decode($parts[1]);$/;" v -key .\framework\model\payment.mod.php /^ $key = strtolower($key);$/;" v -key .\framework\model\payment.mod.php /^ foreach($package as $key => $v) {$/;" v -key .\framework\model\payment.mod.php /^ foreach($wOpt as $key => $v) {$/;" v -key .\framework\model\payment.mod.php /^ foreach($set as $key => $value) {$/;" v -key .\lib\Doctrine\Common\Annotations\Annotation.php /^ foreach ($data as $key => $value) {$/;" v -key .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ foreach ($values['literal'] as $key => $var) {$/;" v -key .\lib\Doctrine\Common\Annotations\DocParser.php /^ $key = $this->Constant();$/;" v -key .\lib\Doctrine\Common\Annotations\DocParser.php /^ $key = $this->lexer->token['value'];$/;" v -key .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $key = $this->classNameHashes[$class->name].'#'.$method->getName();$/;" v -key .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $key = $this->classNameHashes[$class->name].'$'.$property->getName();$/;" v -key .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $key = $this->classNameHashes[$class->name];$/;" v -key .\lib\Peekmo\JsonPath\JsonPath.php /^ foreach ($array as $key => $value) {$/;" v -key .\lib\phprs\RouterWithCache.php /^ $key = 'phprs_route3_'.sha1($this->factory->getConfFile());$/;" v -key .\lib\phprs\RouterWithCache.php /^ $key = 'phprs_route3_'.sha1(serialize($this->factory->getConf()));$/;" v -key .\lib\phprs\util\AnnotationReader.php /^ $key = $annot[0];$/;" v -key .\lib\phprs\util\AnnotationReader.php /^ $key= $annot[0];$/;" v -key .\lib\phprs\util\DocParser.php /^ $key = $this->Constant();$/;" v -key .\lib\phprs\util\DocParser.php /^ $key = $this->lexer->token['value'];$/;" v -key .\lib\phprs\util\IoCFactory.php /^ foreach ($dict as $key=>$replace){$/;" v -key .\lib\phprs\util\IoCFactory.php /^ foreach ($params as $key => $param) {$/;" v -key .\lib\phprs\util\IoCFactoryEx.php /^ $key = $this->genKey($method, $arguments);$/;" v -key .\lib\phprs\util\Tree.php /^ $key = $path[$size-1];$/;" v -key .\loginLib\qq\API\class\QC.class.php /^ foreach($argsList as $key => $val){$/;" v -key .\loginLib\qq\API\class\URL.class.php /^ foreach($keysArr as $key => $val){$/;" v -key .\payment\alipay\notify.php /^ foreach($_POST as $key => $value) {$/;" v -key .\payment\alipay\return.php /^foreach ($_GET as $key => $value) {$/;" v -key .\payment\baifubao\bfb_sdk.php /^ foreach ($params as $key => $val) {$/;" v -key .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ foreach ( $params as $key => $value ) {$/;" v -key .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ foreach ( $temp as $key => $val ) {$/;" v -key .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ foreach ( $params as $key => $val ) {$/;" v -key .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ foreach ( $params as $key => $val ) {$/;" v -key .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ foreach ( $params as $key => $value ) {$/;" v -key .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^ foreach ( $params as $key => $value ) {$/;" v -key .\payment\wechat\rights.php /^ $key = strtolower($key);$/;" v -key .\source\apis\cloud.php /^ foreach ($list as $key => &$row) {$/;" v -key .\source\apis\cloud.php /^ foreach ($list as $key => &$row) {$/;" v -keyStr .\loginLib\qq\API\class\URL.class.php /^ $keyStr = implode("&",$valueArr);$/;" v -key_length .\framework\function\global.func.php /^ $key_length = strlen($cryptkey);$/;" v -keya .\framework\function\global.func.php /^ $keya = md5(substr($key, 0, 16));$/;" v -keyb .\framework\function\global.func.php /^ $keyb = md5(substr($key, 16, 16));$/;" v -keyc .\framework\function\global.func.php /^ $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length) : substr(md5(microtime()), -$ckey_length)) : '';$/;" v -keys .\framework\function\global.func.php /^ $keys = array($keys);$/;" v -keys .\framework\model\payment.mod.php /^ $keys = array('appId', 'timeStamp', 'nonceStr', 'package', 'appKey');$/;" v -keys .\lib\Peekmo\JsonPath\JsonStore.php /^ $keys = preg_split($/;" v -keys .\lib\phprs\util\IoCFactory.php /^ $keys = $this->getDictKeys($value);$/;" v -keys .\payment\wechat\rights.php /^ $keys = array('appid', 'timestamp', 'openid', 'appkey');$/;" v -keysArr .\loginLib\qq\API\class\Oauth.class.php /^ $keysArr = array($/;" v -keysArr .\loginLib\qq\API\class\QC.class.php /^ $this->keysArr = array($/;" v -keysArr .\loginLib\qq\API\class\QC.class.php /^ $keysArr = $this->keysArr;$/;" v -keywords .\lib\Peekmo\JsonPath\JsonPath.php /^ private $keywords = array('=', ')', '!', '<', '>');$/;" v -lastInsertId .\lib\phprs\ezsql\impls.php /^ public function lastInsertId($name=null){$/;" f -lastc .\framework\function\global.func.php /^ $lastc = substr($data, -1);$/;" v -left .\lib\phprs\util\MessagePump.php /^ $left = count($actions);$/;" v -left .\lib\phprs\util\Tree.php /^ $left = $path;$/;" v -leftJoin .\lib\phprs\ezsql\rules\select.php /^ public function leftJoin($table){$/;" f -len .\framework\function\communication.func.php /^ $len = hexdec(substr($tmp, 0, $pos));$/;" v -len .\lib\Peekmo\JsonPath\JsonPath.php /^ $len = count($v);$/;" v -len_list .\framework\function\global.func.php /^ $len_list = unpack("N", substr($content, 0, 4));$/;" v -level .\framework\function\global.func.php /^ return $level == 1 ? $s . "<\/xml>" : $s;$/;" v -level .\framework\function\global.func.php /^function array2xml($arr, $level = 1) {$/;" v -lexer .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->lexer = new DocLexer;$/;" v -lexer .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $lexer;$/;" v -lexer .\lib\phprs\util\DocParser.php /^ $this->lexer = new DocLexer;$/;" v -lexer .\lib\phprs\util\DocParser.php /^ private $lexer;$/;" v -lifeTime .\loginLib\qq\test\comm\session.php /^ $this->lifeTime = get_cfg_var("session.gc_maxlifetime");$/;" v -lifeTime .\loginLib\qq\test\comm\session.php /^ private $lifeTime;$/;" v -lifeTime .\loginLib\qq\test\comm\session2.php /^ $this->lifeTime = get_cfg_var("session.gc_maxlifetime");$/;" v -lifeTime .\loginLib\qq\test\comm\session2.php /^ private $lifeTime;$/;" v -limit .\lib\phprs\ezsql\impls.php /^ static public function limit($context, $size){$/;" f -limit .\lib\phprs\ezsql\rules\basic.php /^ public function limit($size) {$/;" f -limit .\lib\phprs\ezsql\rules\select.php /^ public function limit($start, $size) {$/;" f -limitWithOffset .\lib\phprs\ezsql\impls.php /^ static public function limitWithOffset($context,$start, $size){$/;" f -line .\lib\phprs\apis\ApiExporter.php /^ $line = trim($ori_line, "*\/\\r\\n\\t ");$/;" v -line .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $line = iconv('GBK', 'UTF-8', $line);$/;" v -line .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $line = iconv('GBK', 'UTF-8', $line);$/;" v -lineCnt .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $lineCnt = 0;$/;" v -lines .\lib\phprs\apis\ApiExporter.php /^ $lines = explode("\\n", $doc);$/;" v -lines .\lib\phprs\util\Curl.php /^ $lines = explode("\\n", $data, 2);$/;" v -list .\source\apis\cloud.php /^ $list = array();$/;" v -list .\source\apis\cloud.php /^ $list = $sql->get($this->db ,null);$/;" v -list .\source\apis\cloud.php /^ $list = Sql::select($fields)$/;" v -list .\source\apis\cloud.php /^ $list = array();$/;" v -list .\source\apis\cloud.php /^ $list = array();$/;" v -literal .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ $this->literal = $values['literal'];$/;" v -literal .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ public $literal;$/;" v -literal .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ $this->literal = implode(', ', $this->value);$/;" v -literal .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ public $literal;$/;" v -load .\framework\class\loader.class.php /^function load() {$/;" f -load .\lib\phprs\Container.php /^ public function load($class, $method){$/;" f -load .\lib\phprs\Router.php /^ public function load($api_path, $apis=null , $api_method=null){$/;" f -loadAnnotationClass .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function loadAnnotationClass($class)$/;" f -loadApi .\lib\phprs\Router.php /^ private function loadApi(&$routes, $class_file, $class_name, $method=null){$/;" f -loadRoutes .\lib\phprs\Router.php /^ private function loadRoutes(&$routes, $apis_dir, $class, $method){$/;" f -loadedAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $this->loadedAnnotations = array();$/;" v -loadedAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private $loadedAnnotations = array();$/;" v -loadedAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $this->loadedAnnotations = array();$/;" v -loadedAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $loadedAnnotations = array();$/;" v -loader .\framework\class\loader.class.php /^ $loader = new Loader();$/;" v -loader .\framework\class\loader.class.php /^ static $loader;$/;" v -loader .\lib\phprs\util\ClassLoader.php /^ * class loader$/;" c -loaders .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ * NOTE: These class loaders HAVE to be silent when a class was not found!$/;" c -loaders .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static private $loaders = array();$/;" v -loc .\lib\Peekmo\JsonPath\JsonPath.php /^ $loc = array_shift($x);$/;" v -local_path .\framework\function\global.func.php /^function tomedia($src, $local_path = false){$/;" v -log .\payment\alipay\notify.php /^ $log = pdo_fetch($sql, $params);$/;" v -log .\payment\alipay\return.php /^ $log = pdo_fetch($sql, $params);$/;" v -log .\payment\baifubao\bfb_sdk.php /^ function log($msg) {$/;" f -log .\payment\baifubao\notify.php /^ $log = pdo_fetch($sql, $params);$/;" v -log .\payment\baifubao\pay.php /^ $log = pdo_fetch($sql, $params);$/;" v -log .\payment\unionpay\notify.php /^ $log = pdo_fetch($sql, $params);$/;" v -log .\payment\unionpay\pay.php /^ $log = pdo_fetch($sql, $params);$/;" v -log .\payment\wechat\notify.php /^ $log = pdo_fetch($sql, $params);$/;" v -log .\payment\wechat\pay.php /^ $log = pdo_fetch($sql, $pars);$/;" v -log .\payment\wechat\pay.php /^$log = Sql::select('ims_interaction_core_paylog.*')$/;" v -log .\source\apis\pay.php /^ $log = $record;$/;" v -log .\source\apis\pay.php /^ $log = null; \/\/ 重置支付记录$/;" v -log .\source\apis\pay.php /^ $log = Sql::select('ims_interaction_core_paylog.*')$/;" v -log_file .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private $log_file;$/;" v -log_file .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private $log_file;$/;" v -login_url .\loginLib\qq\API\class\Oauth.class.php /^ $login_url = $this->urlUtils->combineURL(self::GET_AUTH_CODE_URL, $keysArr);$/;" v -lookahead .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->lookahead = (isset($this->tokens[$this->position]))$/;" v -lookahead .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->lookahead = null;$/;" v -lookahead .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public $lookahead;$/;" v -lowerValue .\lib\Doctrine\Common\Annotations\DocLexer.php /^ $lowerValue = strtolower($value);$/;" v -lpos .\loginLib\qq\API\class\Oauth.class.php /^ $lpos = strpos($response, "(");$/;" v -m .\framework\library\json\JSON.php /^ $m = array();$/;" v -m .\lib\Peekmo\JsonPath\JsonPath.php /^ for ($i=0, $m=0; $i $v) {$/;" v -m .\lib\phprs\apis\ApiExporter.php /^ $m === $method){$/;" v -mBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $mBuf = substr($sPin, $i, 1) . "f";$/;" v -mailer .\framework\function\communication.func.php /^ $mailer = new PHPMailer();$/;" v -mailer .\framework\function\communication.func.php /^ static $mailer;$/;" v -make_sign .\payment\baifubao\bfb_sdk.php /^ private function make_sign($params) {$/;" f -map .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ private static $map = array($/;" v -map .\lib\phprs\util\AutoClassLoader.php /^ private $map=array();$/;" v -mapPos .\lib\phprs\util\NestedStringCut.php /^ public function mapPos($pos){$/;" f -match .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function match($token)$/;" f -match .\lib\phprs\util\DocParser.php /^ private function match($token)$/;" f -matchAny .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function matchAny(array $tokens)$/;" f -matchAny .\lib\phprs\util\DocParser.php /^ private function matchAny(array $tokens)$/;" f -match_path .\lib\phprs\Router.php /^ $match_path = array();$/;" v -matched .\lib\phprs\BindThrows.php /^ $matched = false;$/;" v -matched_path .\lib\phprs\util\HttpRouterEntries.php /^ $matched_path = $walked_path;$/;" v -matches .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $matches = preg_split($regex, $input, -1, $flags);$/;" v -matching .\lib\phprs\util\HttpRouterEntries.php /^ $matching = $node['value'];$/;" v -matching .\lib\phprs\util\HttpRouterEntries.php /^ $matching = null;$/;" v -max .\framework\function\global.func.php /^ $max = strlen($seed) - 1;$/;" v -media2local .\framework\function\global.func.php /^function media2local($media_id, $all = false){$/;" f -members .\source\apis\login.php /^ $members = getQqUserByUId($fan['id'],$this->db);$/;" v -members .\source\apis\login.php /^ $members = getWeixinUserByUId($fan['id'],$this->db);$/;" v -message .\framework\function\global.func.php /^ $message = str_replace($emotion, '', $message);$/;" v -message .\framework\function\global.func.php /^function error($errno, $message = '') {$/;" v -message .\lib\Doctrine\Common\Annotations\DocParser.php /^ $message = sprintf('Expected %s, got ', $expected);$/;" v -message .\lib\phprs\util\Curl.php /^ public function message(){$/;" f -message .\lib\phprs\util\DocParser.php /^ $message = sprintf('Expected %s, got ', $expected);$/;" v -meta .\lib\phprs\util\IoCFactory.php /^ $meta = $this->getMetaInfo($class_refl);$/;" v -meta .\lib\phprs\util\IoCFactoryEx.php /^ $meta = $this->factory->getMetaInfo($this->factory->getClassName($this->id));$/;" v -meta .\lib\phprs\util\IoCFactoryEx.php /^ $meta = $this->getMetaInfo($this->getClassName($id));$/;" v -metadata .\lib\Doctrine\Common\Annotations\DocParser.php /^ $metadata = array($/;" v -metadataParser .\lib\Doctrine\Common\Annotations\DocParser.php /^ private static $metadataParser;$/;" v -metas .\lib\phprs\util\IoCFactory.php /^ $this->metas = $metas;$/;" v -metas .\lib\phprs\util\IoCFactory.php /^ protected $metas; $/;" v -method .\framework\function\communication.func.php /^ $method = empty($post) ? 'GET' : 'POST';$/;" v -method .\lib\phprs\Container.php /^ * @param string $method ==null时load所有方法, !==null时load指定方法$/;" v -method .\lib\phprs\Container.php /^ function __construct($class, $method = null){$/;" v -method .\lib\phprs\Router.php /^ $method = $request['$._SERVER.REQUEST_METHOD'];$/;" v -method .\lib\phprs\Router.php /^ private function loadApi(&$routes, $class_file, $class_name, $method=null){$/;" v -method .\lib\phprs\apis\ApiExporter.php /^ foreach ($hooks as $method => $hook) {$/;" v -method .\lib\phprs\apis\ApiExporter.php /^ foreach ($this->router->getRoutes() as $method => $route) {$/;" v -method .\lib\phprs\util\Curl.php /^ private function execCurl($url, $method='GET', $content=null, $headers=null,$followLoc=true){$/;" v -method .\loginLib\qq\API\class\QC.class.php /^ $method = isset($this->APIMap[$name][2]) ? $this->APIMap[$name][2] : "GET";$/;" v -method .\payment\alipay\notify.php /^ $method = 'payResult';$/;" v -method .\payment\alipay\return.php /^ $method = 'payResult';$/;" v -method .\payment\baifubao\notify.php /^ $method = 'payResult';$/;" v -method .\payment\baifubao\pay.php /^ $method = 'payResult';$/;" v -method .\payment\unionpay\notify.php /^ $method = 'payResult';$/;" v -method .\payment\unionpay\pay.php /^ $method = 'payResult';$/;" v -method .\payment\wechat\notify.php /^ $method = 'payResult';$/;" v -method .\payment\wechat\pay.php /^ $method = 'payResult';$/;" v -method_args .\lib\phprs\Invoker.php /^ private $method_args = array();$/;" v -method_name .\lib\phprs\BindParams.php /^ $this->method_name = $method_name;$/;" v -method_name .\lib\phprs\BindParams.php /^ private $method_name;$/;" v -method_name .\lib\phprs\BindReturns.php /^ $this->method_name = $method_name;$/;" v -method_name .\lib\phprs\BindReturns.php /^ private $method_name;$/;" v -method_name .\lib\phprs\BindThrows.php /^ $this->method_name = $method_name;$/;" v -method_name .\lib\phprs\BindThrows.php /^ private $method_name;$/;" v -method_name .\lib\phprs\Invoker.php /^ $this->method_name = $method->getName();$/;" v -method_name .\lib\phprs\Invoker.php /^ public $method_name;$/;" v -methods .\lib\phprs\util\IoCFactoryEx.php /^ \/*static $methods = [];$/;" v -min_t1 .\source\apis\cloud.php /^ $min_t1="{=NULL=}",$max_t1="{=NULL=}",$count_t1="{=NULL=}",$sum_t1="{=NULL=}",$/;" v -min_t2 .\source\apis\cloud.php /^ $min_t2="{=NULL=}",$max_t2="{=NULL=}",$count_t2="{=NULL=}",$sum_t2="{=NULL=}",$/;" v -min_t3 .\source\apis\cloud.php /^ $min_t3="{=NULL=}",$max_t3="{=NULL=}",$count_t3="{=NULL=}",$sum_t3="{=NULL=}",$/;" v -min_t4 .\source\apis\cloud.php /^ $min_t4="{=NULL=}",$max_t4="{=NULL=}",$count_t4="{=NULL=}",$sum_t4="{=NULL=}",$/;" v -min_t5 .\source\apis\cloud.php /^ $min_t5="{=NULL=}",$max_t5="{=NULL=}",$count_t5="{=NULL=}",$sum_t5="{=NULL=}",$/;" v -min_t6 .\source\apis\cloud.php /^ $min_t6="{=NULL=}",$max_t6="{=NULL=}",$count_t6="{=NULL=}",$sum_t6="{=NULL=}",$/;" v -min_t7 .\source\apis\cloud.php /^ $min_t7="{=NULL=}",$max_t7="{=NULL=}",$count_t7="{=NULL=}",$sum_t7="{=NULL=}",$/;" v -min_t8 .\source\apis\cloud.php /^ $min_t8="{=NULL=}",$max_t8="{=NULL=}",$count_t8="{=NULL=}",$sum_t8="{=NULL=}",$/;" v -min_t9 .\source\apis\cloud.php /^ $min_t9="{=NULL=}",$max_t9="{=NULL=}",$count_t9="{=NULL=}",$sum_t9="{=NULL=}"$/;" v -mkdirs .\lib\phprs\util\FileOp.php /^ static public function mkdirs($path, $mode = 0777) {$/;" f -mode .\framework\library\json\JSON.php /^ $mode = null, $options = null, $userinfo = null)$/;" v -mode .\lib\phprs\util\FileOp.php /^ static public function mkdirs($path, $mode = 0777) {$/;" v -model .\framework\class\loader.class.php /^ function model($name) {$/;" f -module .\framework\function\global.func.php /^ $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');$/;" v -module_ban .\framework\model\cache.mod.php /^ $module_ban = $_W['setting']['module_receive_ban'];$/;" v -modules .\framework\model\cache.mod.php /^ $modules = pdo_fetchall("SELECT name, subscribes FROM ".tablename('modules')." WHERE subscribes <> ''");$/;" v -moveNext .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function moveNext()$/;" f -mrefl .\lib\phprs\apis\ApiExporter.php /^ $mrefl = $refl->getMethod($invoker->getMethodName());$/;" v -msg .\lib\phprs\util\Verify.php /^ static public function isTrue($var, $msg = null)$/;" v -msg .\loginLib\qq\API\class\Oauth.class.php /^ $msg = json_decode($response);$/;" v -msg .\source\apis\HelloWorld.php /^ $this->msg = $msg;$/;" v -msg .\source\apis\HelloWorld.php /^ public $msg;$/;" v -murl .\framework\function\global.func.php /^function murl($segment, $params = array(), $noredirect = true, $addhost = false) {$/;" f -n .\framework\function\global.func.php /^ $n = $tn = $noc = 0;$/;" v -n .\framework\function\global.func.php /^ $n = $noc = 0;$/;" v -n .\lib\Peekmo\JsonPath\JsonPath.php /^ for ($i = 1, $n = count($expr); $i < $n; $i++) {$/;" v -n .\loginLib\qq\API\class\QC.class.php /^ $n = 0;$/;" v -name .\framework\function\communication.func.php /^ foreach ($post as $name => $value) {$/;" v -name .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $name = $class->getName();$/;" v -name .\lib\Doctrine\Common\Annotations\Annotation\Attribute.php /^ public $name;$/;" v -name .\lib\Doctrine\Common\Annotations\DocParser.php /^ $name = $namespace.'\\\\'.$name;$/;" v -name .\lib\Doctrine\Common\Annotations\DocParser.php /^ $name = $this->imports['__NAMESPACE__'].'\\\\'.$name;$/;" v -name .\lib\Doctrine\Common\Annotations\DocParser.php /^ $name = (false !== $pos)$/;" v -name .\lib\Doctrine\Common\Annotations\DocParser.php /^ $name = $this->Identifier();$/;" v -name .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ at this point, $name contains the fully qualified class name of the$/;" c -name .\lib\Doctrine\Common\Annotations\DocParser.php /^ * An array of all valid tokens for a class name.$/;" c -name .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $name = '';$/;" v -name .\lib\Doctrine\Common\Annotations\TokenParser.php /^ * @return string The found class name.$/;" c -name .\lib\Doctrine\Common\Annotations\TokenParser.php /^ * Gets the class name.$/;" c -name .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ foreach ($constants as $name => $value) {$/;" v -name .\lib\Peekmo\JsonPath\JsonPath.php /^ $name = "";$/;" v -name .\lib\Peekmo\JsonPath\JsonStore.php /^ public function add($parentexpr, $value, $name = "")$/;" v -name .\lib\phprs\BindReturns.php /^ $name = substr($name, 1);$/;" v -name .\lib\phprs\Container.php /^ $name = $property->getName();$/;" v -name .\lib\phprs\Request.php /^ $name = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))));$/;" v -name .\lib\phprs\Request.php /^ foreach ($_SERVER as $name => $value)$/;" v -name .\lib\phprs\Response.php /^ foreach ($buffer as $name => $funcs) {$/;" v -name .\lib\phprs\Response.php /^ foreach ($this->sender as $name=>$sender){$/;" v -name .\lib\phprs\Router.php /^ $name = $dir->read();$/;" v -name .\lib\phprs\apis\ApiExporter.php /^ $name = $property->getName();$/;" v -name .\lib\phprs\apis\ApiExporter.php /^ foreach ($files as $name => $value) {$/;" v -name .\lib\phprs\apis\ApiExporter.php /^ foreach ($get as $name => $value) {$/;" v -name .\lib\phprs\apis\ApiExporter.php /^ foreach ($post as $name => $value) {$/;" v -name .\lib\phprs\apis\ApiExporter.php /^ foreach ($fails as $name => $info) {$/;" v -name .\lib\phprs\apis\ApiExporter.php /^ foreach ($api['params'] as $name => $param) {$/;" v -name .\lib\phprs\apis\ApiExporter.php /^ foreach ($api['throws'] as $name => $throws) {$/;" v -name .\lib\phprs\util\CheckableCache.php /^ $name = $this->tag.$name;$/;" v -name .\lib\phprs\util\DocParser.php /^ $name = $this->Identifier();$/;" v -name .\lib\phprs\util\DocParser.php /^ * An array of all valid tokens for a class name.$/;" c -name .\lib\phprs\util\FileExpiredChecker.php /^ foreach ($this->file_name as $name => $time){$/;" v -name .\lib\phprs\util\IoCFactory.php /^ foreach ($properties as $name => $value) {$/;" v -name .\lib\phprs\util\IoCFactory.php /^ $name = $refl->getName();$/;" v -name .\lib\phprs\util\IoCFactory.php /^ foreach ($defaults as $name => $value ){$/;" v -name .\lib\phprs\util\IoCFactoryEx.php /^ $name = $this->factory->getClassName($this->id).'::'.$method;$/;" v -name .\lib\phprs\util\Tree.php /^ foreach ($tree as $name=>$node){$/;" v -name .\source\apis\Users.php /^ $name = md5_file($file);$/;" v -name_value .\framework\library\json\JSON.php /^ function name_value($name, $value)$/;" f -names .\lib\Doctrine\Common\Annotations\Annotation\IgnoreAnnotation.php /^ $this->names = $values['value'];$/;" v -names .\lib\Doctrine\Common\Annotations\Annotation\IgnoreAnnotation.php /^ public $names;$/;" v -names .\lib\Doctrine\Common\Annotations\DocParser.php /^ * class names.$/;" c -names .\lib\Doctrine\Common\Annotations\DocParser.php /^ * fully qualified class names.$/;" c -names .\lib\Doctrine\Common\Annotations\TokenParser.php /^ \/\/ Namespaces and class names are tokenized the same: T_STRINGs$/;" c -names .\lib\Doctrine\Common\Annotations\TokenParser.php /^ * @return array A list with all found class names for a use statement.$/;" c -names .\lib\phprs\util\DocParser.php /^ * class names.$/;" c -names .\lib\phprs\util\DocParser.php /^ * fully qualified class names.$/;" c -namespace .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ foreach (self::$autoloadNamespaces AS $namespace => $dirs) {$/;" v -namespace .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $namespace = preg_quote($class->getNamespaceName());$/;" v -namespaces .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $namespaces = array();$/;" v -native .\lib\phprs\ezsql\Sql.php /^ static public function native($str){$/;" f -newArgs .\lib\phprs\ezsql\impls.php /^ $newArgs=array();$/;" v -newExp .\loginLib\qq\test\comm\session.php /^ $newExp = time() + $this->lifeTime;$/;" v -newExp .\loginLib\qq\test\comm\session2.php /^ $newExp = time() + $this->lifeTime;$/;" v -newId .\lib\phprs\ezsql\Sql.php /^ * $newId = Sql::insertInto('table')$/;" v -newLength .\framework\function\global.func.php /^ $newLength = istrlen($version2);$/;" v -newQueue .\lib\phprs\util\MessagePump.php /^ public function newQueue(callable $onEnd = null)$/;" f -next .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function next($docCommentIsComment = TRUE)$/;" f -next .\lib\phprs\util\NestedStringCut.php /^ $next = 'stateNormal';$/;" v -next .\lib\phprs\util\NestedStringCut.php /^ $next = 'stateESC';$/;" v -next .\lib\phprs\util\NestedStringCut.php /^ $next = 'stateQ';$/;" v -next .\lib\phprs\util\SerializableFunc.php /^ public $next=array();$/;" v -next .\lib\phprs\util\Tree.php /^ $next = &$nul; \/\/$next = null 会导致引用的对象被赋值,而不是next被赋值$/;" v -next .\lib\phprs\util\Tree.php /^ $next = &$pos['next'];$/;" v -next .\lib\phprs\util\Tree.php /^ $next = &$pos;$/;" v -next_action .\lib\phprs\util\MessagePump.php /^ $this->next_action = array();$/;" v -next_action .\lib\phprs\util\MessagePump.php /^ private $next_action = array(); \/\/ 保存下一个操作所在的队列$/;" v -next_idle .\lib\phprs\util\MessagePump.php /^ $this->next_idle = array();$/;" v -next_idle .\lib\phprs\util\MessagePump.php /^ private $next_idle = array(); \/\/ 保存空闲时下一次执行操作所在的队列$/;" v -noCase .\lib\Doctrine\Common\Annotations\DocLexer.php /^ protected $noCase = array($/;" v -node .\lib\phprs\util\HttpRouterEntries.php /^ $node = $root->findNode($find_step);$/;" v -node .\lib\phprs\util\HttpRouterEntries.php /^ $node = $this->routes->findNode($paths, true, true);$/;" v -normalize .\lib\Peekmo\JsonPath\JsonPath.php /^ private function normalize($expression)$/;" f -normalizedFirst .\lib\Peekmo\JsonPath\JsonStore.php /^ private function normalizedFirst($expr, $create,$default)$/;" f -notify_bfb .\payment\baifubao\bfb_sdk.php /^ function notify_bfb() {$/;" f -now .\payment\alipay\notify.php /^ $now = time();$/;" v -now .\payment\alipay\return.php /^ $now = time();$/;" v -now .\payment\baifubao\notify.php /^ $now = time();$/;" v -now .\payment\unionpay\notify.php /^ $now = time();$/;" v -now .\payment\unionpay\pay.php /^ $now = time();$/;" v -now .\payment\wechat\notify.php /^ $now = time();$/;" v -nowTime .\source\apis\appport.php /^ $nowTime = time();$/;" v -nowTime .\source\apis\user.php /^ $nowTime = time();$/;" v -nowtime .\source\apis\appport.php /^ $nowtime = time();$/;" v -ns .\lib\Doctrine\Common\Annotations\DocParser.php /^ $ns = $this->imports['__NAMESPACE__'];$/;" v -ns .\lib\phprs\util\DocParser.php /^ $ns = $this->imports['__NAMESPACE__'];$/;" v -nti .\lib\phprs\util\IoCFactory.php /^ $nti = new NewThenInit($class_refl);$/;" v -nul .\lib\phprs\util\Tree.php /^ $nul = null;$/;" v -num .\framework\function\global.func.php /^ $num = intval($num);$/;" v -num .\lib\phprs\BindReturns.php /^ foreach ($call as $num => $arg) { \/\/ 方法$/;" v -num .\lib\phprs\BindReturns.php /^ foreach ($call as $num => $arg) {$/;" v -num .\lib\phprs\apis\ApiExporter.php /^ foreach ($call as $num => $arg) {$/;" v -num .\lib\phprs\apis\ApiExporter.php /^ foreach ($call as $num => $arg) {$/;" v -num .\lib\phprs\apis\ApiExporter.php /^ foreach ($lines as $num => $ori_line) {$/;" v -numTokens .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $this->numTokens = count($this->tokens);$/;" v -numTokens .\lib\Doctrine\Common\Annotations\TokenParser.php /^ private $numTokens;$/;" v -numeric .\framework\function\global.func.php /^function random($length, $numeric = FALSE) {$/;" v -numeric_prefix .\framework\function\compat.func.php /^ function http_build_query($formdata, $numeric_prefix = null, $arg_separator = null) {$/;" v -o .\lib\Peekmo\JsonPath\JsonPath.php /^ $o = new \\stdClass();$/;" v -o .\lib\Peekmo\JsonPath\JsonStore.php /^ $o =& $o[$keys[$i]];$/;" v -o .\lib\Peekmo\JsonPath\JsonStore.php /^ $o =& $this->data;$/;" v -o .\lib\phprs\util\AnnotationCleaner.php /^ $o = new AnnotationCleaner();$/;" v -oauth .\source\apis\login.php /^ $oauth = $weixin->getOauthInfo($code);$/;" v -obj .\framework\library\json\JSON.php /^ $obj = array();$/;" v -obj .\framework\library\json\JSON.php /^ $obj = new stdClass();$/;" v -obj .\lib\Peekmo\JsonPath\JsonPath.php /^ $this->obj = $obj;$/;" v -obj .\lib\Peekmo\JsonPath\JsonPath.php /^ private $obj = null;$/;" v -obj .\lib\phprs\ezsql\Sql.php /^ $obj = new DeleteRule(new SqlConetxt());$/;" v -obj .\lib\phprs\ezsql\Sql.php /^ $obj = new ReplaceIntoRule(new SqlConetxt());$/;" v -obj .\lib\phprs\ezsql\Sql.php /^ $obj = new InsertRule(new SqlConetxt());$/;" v -obj .\lib\phprs\ezsql\Sql.php /^ $obj = new SelectRule(new SqlConetxt());$/;" v -obj .\lib\phprs\ezsql\Sql.php /^ $obj = new UpdateRule(new SqlConetxt());$/;" v -obj .\lib\phprs\util\IoCFactoryEx.php /^ $this->obj = $this->factory->createRawObject($/;" v -obj .\lib\phprs\util\IoCFactoryEx.php /^ private $obj;$/;" v -obj .\lib\phprs\util\NewThenInit.php /^ $this->obj = $this->refl->newInstanceWithoutConstructor();$/;" v -obj .\lib\phprs\util\NewThenInit.php /^ private $obj;$/;" v -obj .\payment\wechat\notify.php /^ $obj = isimplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v -obj .\payment\wechat\rights.php /^$obj = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v -obj .\payment\wechat\warning.php /^$obj = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v -objToArr .\loginLib\qq\API\class\QC.class.php /^ private function objToArr($obj){$/;" f -of .\lib\phprs\ezsql\impls.php /^ static public function of($context, $column){$/;" f -of .\lib\phprs\ezsql\rules\select.php /^ public function of($column){$/;" f -offest .\lib\phprs\apis\ApiExporter.php /^ $offest = count(HttpRouterEntries::stringToPath($api['root'])); \/\/ 相对于绝对路径的偏移$/;" v -offsetExists .\lib\phprs\Request.php /^ public function offsetExists($offset){$/;" f -offsetExists .\lib\phprs\Response.php /^ public function offsetExists($offset)$/;" f -offsetGet .\lib\phprs\Request.php /^ public function offsetGet($offset)$/;" f -offsetGet .\lib\phprs\Response.php /^ public function &offsetGet($offset)$/;" f -offsetSet .\lib\phprs\Request.php /^ public function offsetSet($offset, $value)$/;" f -offsetSet .\lib\phprs\Response.php /^ public function offsetSet($offset, $value)$/;" f -offsetUnset .\lib\phprs\Request.php /^ public function offsetUnset($offset)$/;" f -offsetUnset .\lib\phprs\Response.php /^ public function offsetUnset($offset)$/;" f -ok .\lib\phprs\RouterWithCache.php /^ $ok=false;$/;" v -oldLength .\framework\function\global.func.php /^ $oldLength = istrlen($version1);$/;" v -on .\lib\phprs\ezsql\impls.php /^ static public function on($context, $condition) {$/;" f -on .\lib\phprs\ezsql\rules\select.php /^ public function on($condition){$/;" f -onBridgeReady .\payment\wechat\pay.php /^document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {$/;" f -onEnd .\lib\phprs\util\MessagePump.php /^ public function newQueue(callable $onEnd = null)$/;" v -onend .\lib\phprs\util\MessagePump.php /^ $onend = $this->end_handles[$queue_id];$/;" v -op .\lib\phprs\ezsql\impls.php /^ $op = array_keys($v)[0];$/;" v -op .\lib\phprs\ezsql\impls.php /^ $op = strtoupper($op);$/;" v -op .\lib\phprs\ezsql\impls.php /^ if($op == 'IN' || $op == 'NOT IN'){$/;" v -op .\lib\phprs\util\IoCFactoryEx.php /^ $op = $this->getCacheOptions($method);$/;" v -open .\loginLib\qq\test\comm\session.php /^ function open($savePath, $sessName) $/;" f -open .\loginLib\qq\test\comm\session2.php /^ function open($savePath, $sessName) $/;" f -openId .\source\apis\login.php /^ $openId = $qc->get_openid();$/;" v -openId_exist .\framework\model\user.mod.php /^ $openId_exist = Sql::select('ims_interaction_users.id')$/;" v -openid .\framework\class\weixin.account.class.php /^ $openid = $uniid;$/;" v -openid .\loginLib\qq\API\class\QC.class.php /^ if($access_token === "" || $openid === ""){$/;" v -openid .\loginLib\qq\API\class\QC.class.php /^ public function __construct($access_token = "", $openid = ""){$/;" v -operation .\framework\function\global.func.php /^function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {$/;" v -ops .\lib\phprs\ezsql\impls.php /^ $ops = ['=', '>', '<', '<>', '>=', '<=', 'IN', 'NOT IN', 'BETWEEN', 'LIKE'];$/;" v -opt .\framework\function\communication.func.php /^ foreach ($extra as $opt => $value) {$/;" v -opt .\framework\function\communication.func.php /^ foreach ($extra as $opt => $value) {$/;" v -optimizerPlusLoadComments .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function optimizerPlusLoadComments()$/;" f -optimizerPlusSaveComments .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function optimizerPlusSaveComments()$/;" f -optionArgList .\loginLib\qq\API\class\QC.class.php /^ $optionArgList = array();\/\/一些多项选填参数必选一的情形$/;" v -options .\lib\phprs\ezsql\DB.php /^ $options = [\\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';"]){$/;" v -opts .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ $opts = getRequestParamString ( $params );$/;" v -opts .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^ $opts = getRequestParamString ( $params );$/;" v -ord_chrs_c .\framework\library\json\JSON.php /^ $ord_chrs_c = ord($chrs{$c});$/;" v -ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x08:$/;" v -ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x09:$/;" v -ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x0A:$/;" v -ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x0C:$/;" v -ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x0D:$/;" v -ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x22:$/;" v -ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x2F:$/;" v -ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x5C:$/;" v -ord_var_c .\framework\library\json\JSON.php /^ $ord_var_c = ord($var{$c});$/;" v -order .\lib\phprs\ezsql\impls.php /^ public function orderBy($context, $column, $order=null){$/;" v -order .\lib\phprs\ezsql\rules\basic.php /^ public function orderBy($column, $order=null) {$/;" v -order .\lib\phprs\ezsql\rules\select.php /^ $this->order = new OrderByImpl();$/;" v -order .\lib\phprs\ezsql\rules\select.php /^ private $order;$/;" v -order .\lib\phprs\ezsql\rules\select.php /^ public function orderBy($column, $order=null) {$/;" v -orderBy .\lib\phprs\ezsql\impls.php /^ public function orderBy($context, $column, $order=null){$/;" f -orderBy .\lib\phprs\ezsql\rules\basic.php /^ public function orderBy($column, $order=null) {$/;" f -orderBy .\lib\phprs\ezsql\rules\select.php /^ public function orderBy($column, $order=null) {$/;" f -orderByArgs .\lib\phprs\ezsql\impls.php /^ public function orderByArgs($context, $orders){$/;" f -orderByArgs .\lib\phprs\ezsql\rules\basic.php /^ public function orderByArgs($orders) {$/;" f -orderByArgs .\lib\phprs\ezsql\rules\select.php /^ public function orderByArgs($args) {$/;" f -order_no .\payment\baifubao\bfb_sdk.php /^ $order_no = $arr_params ['order_no'];$/;" v -order_no .\payment\baifubao\bfb_sdk.php /^ $this->order_no = $arr_params ['order_no'];$/;" v -order_no .\payment\baifubao\bfb_sdk.php /^ $this->order_no = $params ['order_no'];$/;" v -order_no .\payment\baifubao\bfb_sdk.php /^ public $order_no;$/;" v -order_s1 .\source\apis\cloud.php /^ $order_s1="",$order_s2="",$order_s3="",$order_s4="",$order_s5="",$order_s6="",$/;" v -order_s7 .\source\apis\cloud.php /^ $order_s7="",$order_s8="",$order_s9="",$/;" v -order_state .\payment\baifubao\bfb_sdk.php /^ $order_state = $this->query_order_state($order_no);$/;" v -order_t5 .\source\apis\cloud.php /^ $order_t5="",$order_t6="",$order_t7="",$order_t8="",$order_t9="",$/;" v -order_url .\payment\baifubao\pay.php /^$order_url = $bfb_sdk->create_baifubao_pay_order_url($params, sp_conf::BFB_PAY_WAP_DIRECT_URL);$/;" v -order_weid .\source\apis\cloud.php /^ $order_weid="",$order_typeid="",$order_t1="",$order_t2="",$order_t3="",$order_t4="",$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s1` '.$order_s1;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s2` '.$order_s2;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s3` '.$order_s3;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s4` '.$order_s4;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s5` '.$order_s5;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s6` '.$order_s6;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s7` '.$order_s7;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s8` '.$order_s8;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `s9` '.$order_s9;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t1` '.$order_t1;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t2` '.$order_t2;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t3` '.$order_t3;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t4` '.$order_t4;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t5` '.$order_t5;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t6` '.$order_t6;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t7` '.$order_t7;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t8` '.$order_t8;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `t9` '.$order_t9;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `typeid` '.$order_typeid;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = ' `weid` '.$order_weid;$/;" v -orderfield .\source\apis\cloud.php /^ $orderfield = '';$/;" v -ori .\lib\phprs\apis\ApiExporter.php /^ $ori = $params->get($param['value']);$/;" v -ori .\lib\phprs\util\HttpRouterEntries.php /^ $ori = $this->routes->export();$/;" v -ori .\lib\phprs\util\NestedStringCut.php /^ $ori = $pos;$/;" v -originalName .\lib\Doctrine\Common\Annotations\DocParser.php /^ $originalName = $name;$/;" v -out_trade_no .\payment\alipay\notify.php /^ $out_trade_no = $_POST['out_trade_no'];$/;" v -outappid .\source\apis\cloud.php /^ if ( $outappid=='{=NULL=}' ) {$/;" v -output .\framework\library\json\JSON.php /^ * $output = $json->encode($value);$/;" v -overwrite .\lib\phprs\util\SaftyFileWriter.php /^ static public function write($path, $data, $overwrite = true){$/;" v -package .\framework\model\payment.mod.php /^ $package = array();$/;" v -pad .\framework\function\global.func.php /^ $pad = 0;$/;" v -pad .\framework\function\global.func.php /^ $pad = ord(substr($decrypted, -1));$/;" v -pad_chr .\framework\function\global.func.php /^ $pad_chr = chr($amount_to_pad);$/;" v -pageSize .\framework\function\global.func.php /^function pagination($total, $pageIndex, $pageSize = 15, $url = '', $context = array('before' => 5, 'after' => 4, 'ajaxcallback' => '')) {$/;" v -pagination .\framework\function\global.func.php /^function pagination($total, $pageIndex, $pageSize = 15, $url = '', $context = array('before' => 5, 'after' => 4, 'ajaxcallback' => '')) {$/;" f -param_name .\lib\phprs\util\IoCFactory.php /^ $param_name = $param->getName();$/;" v -params .\framework\function\cache.mysql.func.php /^ $params = array();$/;" v -params .\framework\function\global.func.php /^function murl($segment, $params = array(), $noredirect = true, $addhost = false) {$/;" v -params .\framework\function\global.func.php /^function wurl($segment, $params = array()) {$/;" v -params .\lib\phprs\BindParams.php /^ $params=array();$/;" v -params .\lib\phprs\BindParams.php /^ private $params= array();$/;" v -params .\lib\phprs\BindReturns.php /^ $params=array();$/;" v -params .\lib\phprs\BindReturns.php /^ private $params= array();\/\/ [目标=>[[是否常量, 值 , 参数位置, 参数信息],..]]$/;" v -params .\lib\phprs\BindThrows.php /^ private $params= array();\/\/ [异常=>[目标]=>[位置=>[值 , 参数信息],..]]$/;" v -params .\lib\phprs\Invoker.php /^ $params = $this->getBindParamPos();$/;" v -params .\lib\phprs\Router.php /^ $params = is_null($params)?null:explode('&', $params);$/;" v -params .\lib\phprs\apis\ApiExporter.php /^ $params = $params->toArray();$/;" v -params .\lib\phprs\apis\ApiExporter.php /^ $params = new JsonStore(array());$/;" v -params .\lib\phprs\ezsql\SqlConetxt.php /^ $this->params = array_merge($this->params, $params);$/;" v -params .\lib\phprs\ezsql\SqlConetxt.php /^ public $params=[];$/;" v -params .\lib\phprs\ezsql\impls.php /^ $params = [];$/;" v -params .\lib\phprs\ezsql\impls.php /^ $params = array();$/;" v -params .\lib\phprs\util\HttpRouterEntries.php /^ $params = array_filter($params,function ($i){return !empty($i);});$/;" v -params .\lib\phprs\util\HttpRouterEntries.php /^ $params = array_filter($params,function ($i){return !empty($i);});$/;" v -params .\lib\phprs\util\HttpRouterEntries.php /^ $params = explode('&', $param);$/;" v -params .\lib\phprs\util\HttpRouterEntries.php /^ $params = is_null($param)?null:explode('&', $param);$/;" v -params .\lib\phprs\util\HttpRouterEntries.php /^ $params = null;$/;" v -params .\lib\phprs\util\IoCFactory.php /^ $params = $refMethod->getParameters();$/;" v -params .\lib\phprs\util\SerializableFunc.php /^ $params = $this->bind;$/;" v -params .\loginLib\qq\API\class\Oauth.class.php /^ $params = array();$/;" v -params .\payment\alipay\notify.php /^ $params = array();$/;" v -params .\payment\alipay\return.php /^ $params = array();$/;" v -params .\payment\baifubao\bfb_sdk.php /^ $params = array ($/;" v -params .\payment\baifubao\notify.php /^ $params = array();$/;" v -params .\payment\baifubao\pay.php /^ $params = array();$/;" v -params .\payment\baifubao\pay.php /^$params = @json_decode(base64_decode($sl), true);$/;" v -params .\payment\baifubao\pay.php /^$params = array ($/;" v -params .\payment\unionpay\notify.php /^ $params = array();$/;" v -params .\payment\unionpay\pay.php /^ $params = array();$/;" v -params .\payment\unionpay\pay.php /^$params = @json_decode(base64_decode($sl), true);$/;" v -params .\payment\unionpay\pay.php /^$params = array($/;" v -params .\payment\wechat\notify.php /^ $params = array();$/;" v -params .\payment\wechat\pay.php /^$params = @json_decode(base64_decode($sl), true);$/;" v -params .\payment\wechat\pay.php /^$params = array($/;" v -params .\source\apis\Users.php /^ $params = array();$/;" v -params .\source\apis\cloud.php /^ $params = array();$/;" v -params_sha1x16 .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $params_sha1x16 = sha1 ( $params_str, FALSE );$/;" v -params_str .\payment\baifubao\bfb_sdk.php /^ $params_str = http_build_query($params);$/;" v -params_str .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ $params_str = '';$/;" v -params_str .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^ $params_str = '';$/;" v -params_str .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $params_str = coverParamsToString ( $params );$/;" v -params_str .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $params_str = coverParamsToString ( $params );$/;" v -parent .\lib\Peekmo\JsonPath\JsonStore.php /^ $parent = is_array($parent) ? $parent : array();$/;" v -parent .\lib\phprs\util\IoCFactory.php /^ $parent = $refl->getParentClass();$/;" v -pars .\payment\wechat\pay.php /^ $pars = array();$/;" v -parse .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function parse($input, $context = '')$/;" f -parse .\lib\phprs\util\DocParser.php /^ public function parse($input, $context = '', $record_doc)$/;" f -parseClass .\lib\Doctrine\Common\Annotations\PhpParser.php /^ public function parseClass(\\ReflectionClass $class)$/;" f -parseClass .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function parseClass()$/;" f -parseNamespace .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function parseNamespace()$/;" f -parseReturnData .\lib\phprs\util\Curl.php /^ public function parseReturnData($data){$/;" f -parseUseStatement .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function parseUseStatement()$/;" f -parseUseStatements .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function parseUseStatements($namespaceName)$/;" f -parser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $this->parser = new DocParser;$/;" v -parser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $parser;$/;" v -parser .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ $this->parser = new DocParser();$/;" v -parser .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ protected $parser;$/;" v -parser .\lib\phprs\util\AnnotationReader.php /^ $this->parser= new DocParser();$/;" v -parser .\lib\phprs\util\AnnotationReader.php /^ private $parser ;$/;" v -parts .\framework\library\json\JSON.php /^ $parts = array();$/;" v -path .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $path = $this->dir.'\/'.strtr($key, '\\\\', '-').'.cache.php';$/;" v -path .\lib\phprs\Container.php /^ $path = $class_ann['path'][0]['value'];$/;" v -path .\lib\phprs\Container.php /^ $this->path = $path;$/;" v -path .\lib\phprs\Container.php /^ public $path;$/;" v -path .\lib\phprs\Router.php /^ $path = $apis_dir. str_replace('\\\\', '\/', $entry);$/;" v -path .\lib\phprs\Router.php /^ $path = $request['$.path'];$/;" v -path .\lib\phprs\apis\ApiExporter.php /^ $path = $path . '&';$/;" v -path .\lib\phprs\apis\ApiExporter.php /^ $path = $path . '?';$/;" v -path .\lib\phprs\apis\ApiExporter.php /^ $path = "$path$name=[$arg_name]";$/;" v -path .\lib\phprs\apis\ApiExporter.php /^ $path = "$path?[$arg_name]";$/;" v -path .\lib\phprs\apis\ApiExporter.php /^ $path = $api['uri'][0];$/;" v -path .\lib\phprs\util\ClassLoader.php /^ $path = $path . '\/' . str_replace('\\\\', '\/', $classname) . '.php';$/;" v -path .\lib\phprs\util\ClassLoader.php /^ $path = self::$class_map[$classname];$/;" v -path .\lib\phprs\util\FileCache.php /^ $path = $this->cache_dir.'\/'.sha1($key);$/;" v -path .\lib\phprs\util\FileOp.php /^ $path = '';$/;" v -path .\lib\phprs\util\HttpRouterEntries.php /^ $path = str_replace('\\\\', '\/', $path);$/;" v -path .\lib\phprs\util\SaftyFileWriter.php /^ $path = str_replace('\\\\', '\/', $path);$/;" v -pathToString .\lib\phprs\util\HttpRouterEntries.php /^ static public function pathToString($path){$/;" f -path_str .\lib\phprs\util\HttpRouterEntries.php /^ $path_str = self::pathToString($path);$/;" v -paths .\lib\phprs\Request.php /^ $paths = array_filter($paths,function ($i){return $i !== '';});$/;" v -paths .\lib\phprs\Request.php /^ $paths = array_slice($paths, $this->url_begin);$/;" v -paths .\lib\phprs\Request.php /^ $paths = explode('\/', $full_path);$/;" v -paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = array('');$/;" v -paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = array_filter($paths, function ($i){return !empty($i);});$/;" v -paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = array_filter($paths,function ($i){return $i!== '\/' &&!empty($i);});$/;" v -paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = array_filter($paths,function ($i){return !empty($i);});$/;" v -paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = explode('\/', $path);$/;" v -paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = self::stringToPath($path);$/;" v -pay .\source\apis\pay.php /^class pay {$/;" c -pay_url .\payment\baifubao\bfb_sdk.php /^ $pay_url = $url;$/;" v -paylog .\payment\baifubao\pay.php /^$paylog = pdo_fetch($sql, array(':plid' => $params['tid']));$/;" v -paylog .\payment\unionpay\pay.php /^$paylog = pdo_fetch($sql, array(':plid' => $params['tid']));$/;" v -payment .\payment\baifubao\notify.php /^$payment = $setting['payment']['baifubao'];$/;" v -payment .\payment\baifubao\pay.php /^$payment = $setting['payment']['baifubao'];$/;" v -payment .\payment\unionpay\notify.php /^$payment = $setting['payment']['unionpay'];$/;" v -payment .\payment\unionpay\pay.php /^$payment = $setting['payment']['unionpay'];$/;" v -pdata .\framework\function\global.func.php /^ $pdata = array($/;" v -pdo .\lib\phprs\ezsql\impls.php /^ $this->pdo = $pdo;$/;" v -pdo .\lib\phprs\ezsql\impls.php /^ public $pdo;$/;" v -pdo .\source\apis\Users.php /^ $pdo = $this->db;$/;" v -pdo .\source\apis\cloud.php /^ $pdo = $this->db;$/;" v -pdo .\source\apis\login.php /^ $pdo = $this->db;$/;" v -pdo .\source\apis\pay.php /^ $pdo = $this->db;$/;" v -peek .\lib\Doctrine\Common\Annotations\DocParser.php /^ if ((null === $peek = $this->lexer->glimpse())$/;" v -peek .\lib\Doctrine\Common\Annotations\DocParser.php /^ $peek = $this->lexer->glimpse();$/;" v -peek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $peek = $this->peek();$/;" v -peek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->peek = 0;$/;" v -peek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ private $peek = 0;$/;" v -peek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function peek()$/;" f -peek .\lib\phprs\util\DocParser.php /^ if ((null === $peek = $this->lexer->glimpse())$/;" v -peek .\lib\phprs\util\DocParser.php /^ $peek = $this->lexer->glimpse();$/;" v -phpParser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $this->phpParser = new PhpParser;$/;" v -phpParser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $phpParser;$/;" v -pindex .\source\apis\cloud.php /^ $pindex = max(1, intval($page));$/;" v -pkcs12 .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $pkcs12 = file_get_contents ( $cert_path );$/;" v -pkcs12certdata .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $pkcs12certdata = file_get_contents ( $cert_path );$/;" v -plid .\source\apis\pay.php /^ $plid = Sql::insertInto('ims_interaction_core_paylog')$/;" v -plus_s1 .\source\apis\cloud.php /^ $plus_s1 = "{=NULL=}",$plus_s2 = "{=NULL=}",$plus_s3 = "{=NULL=}",$/;" v -plus_s4 .\source\apis\cloud.php /^ $plus_s4 = "{=NULL=}",$plus_s5 = "{=NULL=}",$plus_s6 = "{=NULL=}",$/;" v -plus_s7 .\source\apis\cloud.php /^ $plus_s7 = "{=NULL=}",$plus_s8 = "{=NULL=}",$/;" v -plus_s9 .\source\apis\cloud.php /^ $plus_s9 = "{=NULL=}",$where_id="",$where_weid="",$where_typeid="{=NULL=}",$where_t1="",$where_t2="",$/;" v -plus_t1 .\source\apis\cloud.php /^ $plus_t1 = "",$plus_t2 = "",$plus_t3 = "",$plus_t4 = "",$plus_t5 = "",$plus_t6 = "",$/;" v -plus_t7 .\source\apis\cloud.php /^ $plus_t7 = "",$plus_t8 = "",$plus_t9 = "",$sub_t1 = "",$sub_t2 = "",$sub_t3 = "",$/;" v -pointer .\lib\Doctrine\Common\Annotations\TokenParser.php /^ private $pointer = 0;$/;" v -port .\lib\phprs\util\RedisCache.php /^ private $port;$/;" v -pos .\framework\function\communication.func.php /^ $pos = strpos($tmp, $eol);$/;" v -pos .\framework\function\communication.func.php /^ $pos = strpos($v, ':');$/;" v -pos .\framework\function\communication.func.php /^ $pos = strpos($data, "\\r\\n\\r\\n");$/;" v -pos .\lib\Doctrine\Common\Annotations\DocParser.php /^ case (false !== $pos = strpos($type, '<')):$/;" v -pos .\lib\Doctrine\Common\Annotations\DocParser.php /^ case (false !== $pos = strrpos($type, '[')):$/;" v -pos .\lib\Doctrine\Common\Annotations\DocParser.php /^ $pos = $this->findInitialTokenPosition($input);$/;" v -pos .\lib\Doctrine\Common\Annotations\DocParser.php /^ $pos = 0;$/;" v -pos .\lib\Peekmo\JsonPath\JsonPath.php /^ if (false !== $pos = $this->strpos_array($substr, $this->keywords)) {$/;" v -pos .\lib\Peekmo\JsonPath\JsonPath.php /^ if (false !== $pos = strpos($haystack, $needle)) {$/;" v -pos .\lib\phprs\BindParams.php /^ $pos = $step;$/;" v -pos .\lib\phprs\BindParams.php /^ $pos = -1;$/;" v -pos .\lib\phprs\BindParams.php /^ foreach ($this->params as $pos=>$param){$/;" v -pos .\lib\phprs\BindReturns.php /^ $pos = $step;$/;" v -pos .\lib\phprs\BindReturns.php /^ $pos = -1;$/;" v -pos .\lib\phprs\ezsql\impls.php /^ $pos = $cut->mapPos($pos);$/;" v -pos .\lib\phprs\ezsql\impls.php /^ $pos = self::findQ($cutted, 0, $k);$/;" v -pos .\lib\phprs\util\AnnotationCleaner.php /^ $pos = strpos($this->tmp, "*\/");$/;" v -pos .\lib\phprs\util\AnnotationCleaner.php /^ $pos = strpos($this->tmp, "\\n");$/;" v -pos .\lib\phprs\util\DocParser.php /^ $pos = $this->findInitialTokenPosition($input);$/;" v -pos .\lib\phprs\util\DocParser.php /^ $pos = 0;$/;" v -pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $posDQ;$/;" v -pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $posQ;$/;" v -pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $this->$state($str, $pos, $state);$/;" v -pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $posESC;$/;" v -pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $posSQ;$/;" v -pos .\lib\phprs\util\NestedStringCut.php /^ $pos = 0;$/;" v -pos .\lib\phprs\util\SaftyFileWriter.php /^ $pos = strrpos ($path, '\/');$/;" v -pos .\lib\phprs\util\Tree.php /^ $pos = &$next[$i];$/;" v -pos .\lib\phprs\util\Tree.php /^ $pos = &$next[self::$wildcard];$/;" v -pos .\lib\phprs\util\Tree.php /^ $pos = &$this->arr;$/;" v -posDQ .\lib\phprs\util\NestedStringCut.php /^ $posDQ = strpos($str, '"', $pos);$/;" v -posESC .\lib\phprs\util\NestedStringCut.php /^ $posESC = strpos($str, '\\\\', $pos);$/;" v -posQ .\lib\phprs\util\NestedStringCut.php /^ $posQ = strpos($str, $this->subStateQ, $pos);$/;" v -posSQ .\lib\phprs\util\NestedStringCut.php /^ $posSQ = strpos($str, '\\'', $pos);$/;" v -position .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->position = $position;$/;" v -position .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->position = 0;$/;" v -position .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ private $position = 0;$/;" v -post .\framework\function\communication.func.php /^ $post = http_build_query($post);$/;" v -post .\framework\function\communication.func.php /^function ihttp_request($url, $post = '', $extra = array(), $timeout = 60) {$/;" v -post .\lib\phprs\Request.php /^ $post = json_decode($post, true);$/;" v -post .\lib\phprs\Request.php /^ $post = file_get_contents('php:\/\/input');$/;" v -post .\lib\phprs\apis\ApiExporter.php /^ $post = $params['_POST'];$/;" v -post .\loginLib\qq\API\class\URL.class.php /^ public function post($url, $keysArr, $flag = 0){$/;" f -postAddData .\source\apis\cloud.php /^ public function postAddData($weid = 0,$typeid = "",$outappid = "{=NULL=}",$/;" f -postDelData .\source\apis\cloud.php /^ public function postDelData($outappid = "",$where_id="",$where_weid="",$where_typeid="{=NULL=}",$where_t1="",$where_t2="",$where_t3="",$where_t4="",$where_t5="",$/;" f -postEditData .\source\apis\cloud.php /^ public function postEditData($weid = 0,$typeid = "",$outappid = "",$/;" f -pre .\framework\function\global.func.php /^ $pre = '{%';$/;" v -pre .\loginLib\qq\API\class\QC.class.php /^ $pre = "#";$/;" v -preParser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $this->preParser = new DocParser;$/;" v -preParser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $preParser;$/;" v -prefix .\lib\phprs\ezsql\impls.php /^ $prefix = ',';$/;" v -prefix .\lib\phprs\ezsql\impls.php /^ $prefix = 'SET ';$/;" v -prefix .\lib\phprs\ezsql\impls.php /^ $prefix = '';$/;" v -prepares .\framework\model\payment.mod.php /^ $prepares = array();$/;" v -prepares .\payment\alipay\notify.php /^ $prepares = array();$/;" v -prepares .\payment\alipay\return.php /^$prepares = array();$/;" v -prepayid .\framework\model\payment.mod.php /^ $prepayid = $xml->prepay_id;$/;" v -priority .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->priority = $priority;$/;" v -priority .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ if ( $priority == PhpLog::OFF ) return;$/;" v -priority .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private $priority = PhpLog::INFO;$/;" v -priority .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->priority = $priority;$/;" v -priority .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ if ( $priority == PhpLog::OFF ) return;$/;" v -priority .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private $priority = PhpLog::INFO;$/;" v -private_key .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $private_key = getPrivateKey ( $cert_path );$/;" v -properties .\framework\library\json\JSON.php /^ $properties = array_map(array($this, 'name_value'),$/;" v -properties .\framework\library\json\JSON.php /^ $properties = array_map(array($this, 'name_value'),$/;" v -properties .\lib\phprs\util\IoCFactory.php /^ $properties = array_merge($class['properties'], $properties);$/;" v -properties .\lib\phprs\util\IoCFactory.php /^ $properties=array();$/;" v -properties .\lib\phprs\util\IoCFactory.php /^ $properties = array();$/;" v -properties .\lib\phprs\util\IoCFactoryEx.php /^ $this->properties = $properties;$/;" v -properties .\lib\phprs\util\IoCFactoryEx.php /^ private $properties;$/;" v -property .\lib\Doctrine\Common\Annotations\DocParser.php /^ $property = 'value';$/;" v -property .\lib\Doctrine\Common\Annotations\DocParser.php /^ if ( ! $property = self::$annotationMetadata[$name]['default_property']) {$/;" v -property .\lib\Doctrine\Common\Annotations\DocParser.php /^ foreach (self::$annotationMetadata[$name]['enum'] as $property => $enum) {$/;" v -property .\lib\Doctrine\Common\Annotations\DocParser.php /^ foreach ($values as $property => $value) {$/;" v -property .\lib\Doctrine\Common\Annotations\DocParser.php /^ foreach (self::$annotationMetadata[$name]['attribute_types'] as $property => $type) {$/;" v -property .\lib\phprs\util\IoCFactory.php /^ foreach ($meta['inject'] as $property => $value) {$/;" v -property .\lib\phprs\util\IoCFactory.php /^ foreach ($meta['property'] as $property => $value) {$/;" v -protocol .\lib\phprs\Bootstrap.php /^ $protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP\/1.0');$/;" v -proxytype .\framework\function\communication.func.php /^ $proxytype = 'CURLPROXY_' . strtoupper($urls['scheme']);$/;" v -ps .\source\apis\pay.php /^ $ps = array();$/;" v -psize .\source\apis\cloud.php /^ $psize = 20;$/;" v -psize .\source\apis\cloud.php /^ $psize = intval($psize);$/;" v -public_key .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $public_key = getPulbicKeyByCertId ( $params ['certId'] ); $/;" v -public_key .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $public_key = getPublicKey ( $cert_path );$/;" v -pushAction .\lib\phprs\util\MessagePump.php /^ public function pushAction($queue_id, $action, $args, $exception_handle, $desc, $immediately=false)$/;" f -pushIdle .\lib\phprs\util\MessagePump.php /^ public function pushIdle($queue_id, $action, $args, $exception_handle, $desc)$/;" f -pwd .\lib\phprs\util\RedisCache.php /^ private $pwd;$/;" v -q .\payment\resource\script\kindeditor\plugins\code\prettify.js /^var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;$/;" v -qc .\loginLib\qq\test\add_idol\add_idol.php /^ $qc = new QC();$/;" v -qc .\loginLib\qq\test\add_pic_t\add_pic_t.php /^ $qc = new QC();$/;" v -qc .\loginLib\qq\test\blog\add_blog.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\check_fan\check_page_fans.php /^ $qc = new QC();$/;" v -qc .\loginLib\qq\test\get_fanslist\get_fanslist.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\get_idollist\get_idollist.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\get_info\get_info.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\get_repost_list\get_repost_list .php /^ $qc = new QC();$/;" v -qc .\loginLib\qq\test\get_tenpay_addr\get_tenpay_addr.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\oauth\callback.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\oauth\index.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\photo\add_album.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\photo\list_album.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\photo\upload_pic.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\photo\upload_pic_p.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\share\add_share.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\topic\add_topic.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\user\get_user_info.php /^$qc = new QC();$/;" v -qc .\loginLib\qq\test\weibo\add_weibo.php /^$qc = new QC();$/;" v -qc .\source\apis\login.php /^ $qc = new QC($access_token,$openId);$/;" v -qc .\source\apis\login.php /^ $qc = new QC();$/;" v -qqLogin .\source\apis\login.php /^ public function qqLogin($scode, $target) {$/;" f -qqLoginCallback .\source\apis\login.php /^ public function qqLoginCallback() {$/;" f -qqUserInfo .\framework\model\user.mod.php /^ $qqUserInfo = Sql::select('ims_interaction_users_qq.*')$/;" v -qq_callback .\loginLib\qq\API\class\Oauth.class.php /^ public function qq_callback(){$/;" f -qq_login .\loginLib\qq\API\class\Oauth.class.php /^ public function qq_login(){$/;" f -query .\lib\phprs\Request.php /^ $query = array();$/;" v -queryString .\framework\function\global.func.php /^ $queryString = http_build_query($params, '', '&');$/;" v -queryString .\lib\phprs\Request.php /^ $queryString = file_get_contents('php:\/\/input');$/;" v -query_baifubao_pay_result_by_order_no .\payment\baifubao\bfb_sdk.php /^ function query_baifubao_pay_result_by_order_no($order_no) {$/;" f -query_order_state .\payment\baifubao\bfb_sdk.php /^ private function query_order_state($order_no) {$/;" f -query_url .\payment\baifubao\bfb_sdk.php /^ $query_url = sp_conf::BFB_QUERY_ORDER_URL . '?' . $params_str;$/;" v -querys .\lib\phprs\util\HttpRouterEntries.php /^ $querys = $value->export(); \/\/提取querystring$/;" v -queue_id .\lib\phprs\util\MessagePump.php /^ $queue_id = array_pop($this->next_idle);$/;" v -queue_id .\lib\phprs\util\MessagePump.php /^ $queue_id = array_pop($this->next_action);$/;" v -r .\lib\Peekmo\JsonPath\JsonStore.php /^ $r = $value;$/;" v -random .\framework\function\global.func.php /^function random($length, $numeric = FALSE) {$/;" f -range .\framework\function\global.func.php /^ $range = array();$/;" v -range_limit .\framework\function\global.func.php /^function range_limit($num, $downline, $upline, $returnNear = true) {$/;" f -rankId .\source\apis\cloud.php /^ $rankId = Sql::insertInto('ims_sdk_'.$outappid.'rank')->values($insertData)->exec($pdo)->lastInsertId();$/;" v -read .\loginLib\qq\API\class\Recorder.class.php /^ public function read($name){$/;" f -read .\loginLib\qq\install\Recorder.class.php /^ public function read($name){$/;" f -read .\loginLib\qq\test\comm\session.php /^ function read($sessID) $/;" f -read .\loginLib\qq\test\comm\session2.php /^ function read($sessID) $/;" f -readInc .\loginLib\qq\API\class\Recorder.class.php /^ public function readInc($name){$/;" f -readInc .\loginLib\qq\install\Recorder.class.php /^ public function readInc($name){$/;" f -reader .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $this->reader = $reader;$/;" v -reader .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $reader;$/;" v -reader .\lib\phprs\Container.php /^ $reader= new AnnotationReader($reflection);$/;" v -reader .\lib\phprs\util\MetaInfo.php /^ $reader= new AnnotationReader($reflection); $/;" v -realpath .\lib\phprs\Router.php /^ $realpath = preg_replace('\/\\\/+\/', '\/', '\/'.$uri);$/;" v -realpath .\lib\phprs\Router.php /^ Logger::debug("api: $http_method $realpath => $class_name::{$entry[1]->method_name} ok, strict:$strict");$/;" v -record .\framework\class\weixin.account.class.php /^ $record = array();$/;" v -record .\framework\function\cache.mysql.func.php /^ $record = array();$/;" v -record .\payment\alipay\notify.php /^ $record = array();$/;" v -record .\payment\alipay\return.php /^ $record = array();$/;" v -record .\payment\baifubao\notify.php /^ $record = array();$/;" v -record .\payment\unionpay\notify.php /^ $record = array();$/;" v -record .\payment\unionpay\pay.php /^ $record = array();$/;" v -record .\payment\wechat\notify.php /^ $record = array();$/;" v -record .\source\apis\pay.php /^ $record = array();$/;" v -record_doc .\lib\phprs\util\AnnotationReader.php /^ public function getClassAnnotations(\\ReflectionClass $class, $record_doc=false)$/;" v -record_doc .\lib\phprs\util\AnnotationReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method, $record_doc=false)$/;" v -record_doc .\lib\phprs\util\AnnotationReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property, $record_doc=false)$/;" v -record_doc .\lib\phprs\util\MetaInfo.php /^ static function get($inst, $record_doc=false, $select=null){$/;" v -recorder .\loginLib\qq\API\class\ErrorCase.class.php /^ $recorder = new Recorder();$/;" v -recorder .\loginLib\qq\API\class\Oauth.class.php /^ $this->recorder = new Recorder();$/;" v -recorder .\loginLib\qq\API\class\Oauth.class.php /^ protected $recorder;$/;" v -redis .\lib\phprs\util\RedisCache.php /^ $this->redis = new \\Redis();$/;" v -redis .\lib\phprs\util\RedisCache.php /^ private $redis;$/;" v -reduce_string .\framework\library\json\JSON.php /^ function reduce_string($str)$/;" f -refMethod .\lib\phprs\util\IoCFactory.php /^ $refMethod = $class->getConstructor();$/;" v -referer .\framework\function\global.func.php /^function referer($default = '') {$/;" f -refl .\lib\phprs\apis\ApiExporter.php /^ $refl = new \\ReflectionClass($invoker->getClassName());$/;" v -refl .\lib\phprs\util\IoCFactory.php /^ $refl = $class;$/;" v -refl .\lib\phprs\util\IoCFactory.php /^ $refl = new \\ReflectionClass($class);$/;" v -refl .\lib\phprs\util\IoCFactoryEx.php /^ $refl = new \\ReflectionClass($this->factory->getClassName($this->id));$/;" v -refl .\lib\phprs\util\NewThenInit.php /^ $this->refl = $class;$/;" v -refl .\lib\phprs\util\NewThenInit.php /^ $this->refl = new \\ReflectionClass($class);$/;" v -refl .\lib\phprs\util\NewThenInit.php /^ private $refl;$/;" v -reflClass .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $reflClass = new \\ReflectionClass($className);$/;" v -reflection .\lib\phprs\Container.php /^ $reflection = new \\ReflectionClass($class);$/;" v -reflection .\lib\phprs\util\MetaInfo.php /^ $reflection = new \\ReflectionClass($inst);$/;" v -regex .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $regex = sprintf($/;" v -regex .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ static $regex;$/;" v -registerAutoloadNamespace .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerAutoloadNamespace($namespace, $dirs = null)$/;" f -registerAutoloadNamespaces .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerAutoloadNamespaces(array $namespaces)$/;" f -registerFile .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerFile($file)$/;" f -registerLoader .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerLoader($callable)$/;" f -remove .\lib\Peekmo\JsonPath\JsonStore.php /^ public function remove($expr)$/;" f -rep_str .\payment\baifubao\bfb_sdk.php /^ $rep_str = "" . sp_conf::BFB_NOTIFY_META .$/;" v -replace .\lib\phprs\Response.php /^ 'status' => function ($var, $replace = true)$/;" v -replace .\lib\phprs\util\ClassLoader.php /^ static public function addClassMap($map, $replace=false){$/;" v -replaceByDict .\lib\phprs\util\IoCFactory.php /^ private function replaceByDict($value, $dict){ $/;" f -replaceInto .\lib\phprs\ezsql\Sql.php /^ static public function replaceInto($table){$/;" f -replaceInto .\lib\phprs\ezsql\impls.php /^ static public function replaceInto($context, $table) {$/;" f -replaceInto .\lib\phprs\ezsql\rules\replace.php /^ public function replaceInto($table) {$/;" f -replace_exits .\lib\phprs\util\Tree.php /^ public function insert( $path, $value, $replace_exits=false, &$replaced=null){$/;" v -replaced .\lib\phprs\util\Tree.php /^ $replaced = $node['value'];$/;" v -req_path .\lib\phprs\apis\ApiExporter.php /^ $req_path = $params['path']; \/\/ 请求中使用的路径, 这是相对路径$/;" v -request .\lib\phprs\Router.php /^ $request = new Request(null,$this->url_begin);$/;" v -request .\payment\baifubao\bfb_sdk.php /^ function request($url) {$/;" f -required .\lib\Doctrine\Common\Annotations\Annotation\Attribute.php /^ public $required = false;$/;" v -requiredError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function requiredError($attributeName, $annotationName, $context, $expected)$/;" f -required_num .\lib\phprs\Invoker.php /^ $required_num = 0;$/;" v -required_num .\lib\phprs\Invoker.php /^ $required_num = key($args) + 1;$/;" v -res .\lib\Peekmo\JsonPath\JsonPath.php /^ $res = eval("\\$name = $expr;");$/;" v -res .\lib\Peekmo\JsonPath\JsonStore.php /^ $res = $this->jsonPath->jsonPath($this->data, $expr, array("resultType" => "PATH"), $create,$default);$/;" v -res .\lib\phprs\Invoker.php /^ $res = call_user_func_array(array($/;" v -res .\lib\phprs\Invoker.php /^ $res = call_user_func_array(array($/;" v -res .\lib\phprs\Request.php /^ $res = $this->data->get($offset);$/;" v -res .\lib\phprs\Request.php /^ $res= $this->data->get($expr, false, $create);$/;" v -res .\lib\phprs\Router.php /^ $res = new BufferedRespond();$/;" v -res .\lib\phprs\Router.php /^ $res = new BufferedRespond();$/;" v -res .\lib\phprs\apis\ApiExporter.php /^ $res = array();$/;" v -res .\lib\phprs\ezsql\Sql.php /^ * $res = Sql::select('a, b')$/;" v -res .\lib\phprs\ezsql\impls.php /^ $res = $st->fetchAll(\\PDO::FETCH_ASSOC);$/;" v -res .\lib\phprs\util\CheckableCache.php /^ $res = $this->impl->get($name, $succeeded);$/;" v -res .\lib\phprs\util\CheckableCache.php /^ $res = $this->impl->set($name, array($/;" v -res .\lib\phprs\util\Curl.php /^ $res = new CurlResponse();$/;" v -res .\lib\phprs\util\FileCache.php /^ $res = file_get_contents($path);$/;" v -res .\lib\phprs\util\FileExpiredChecker.php /^ $res = true;$/;" v -res .\lib\phprs\util\FileExpiredChecker.php /^ $res = false;$/;" v -res .\lib\phprs\util\HttpRouterEntries.php /^ $res = array();$/;" v -res .\lib\phprs\util\IoCFactoryEx.php /^ $res = $methods[$name]->invokeArgs($this->getObj(), $arguments);$/;" v -res .\lib\phprs\util\IoCFactoryEx.php /^ $res = call_user_func_array([$this->getObj(),$method], $arguments);$/;" v -res .\lib\phprs\util\IoCFactoryEx.php /^ $res = $this->cache->get($key, $got);$/;" v -res .\lib\phprs\util\RedisCache.php /^ $res = unserialize($res);$/;" v -res .\lib\phprs\util\RedisCache.php /^ $res = $this->getImpl()->get($key);$/;" v -res .\lib\phprs\util\SerializableFunc.php /^ $res = call_user_func_array($this->func, $params);$/;" v -res .\lib\phprs\util\Tree.php /^ $res = true;$/;" v -res .\lib\phprs\util\Tree.php /^ $res = false;$/;" v -res .\lib\phprs\util\Tree.php /^ $res=array();$/;" v -res .\loginLib\qq\test\comm\session.php /^ $res = mysql_query("SELECT * FROM ".self::db_table." $/;" v -res .\loginLib\qq\test\comm\session.php /^ $res = mysql_query("SELECT session_data AS d FROM ".self::db_table." $/;" v -res .\loginLib\qq\test\comm\session2.php /^ $res = @mysql_query("SELECT * FROM ".self::db_table." $/;" v -res .\loginLib\qq\test\comm\session2.php /^ $res = @mysql_query("SELECT session_data AS d FROM ".self::db_table." $/;" v -res .\payment\baifubao\bfb_sdk.php /^ $res = curl_exec($curl); $err = curl_error($curl);$/;" v -res .\source\apis\Users.php /^ $res = Sql::select('uid')->from('pre_common_member_profile')->where('realname = ? AND uid <> ?', $alias, $uid)->forUpdate()->get($pdo);$/;" v -res .\source\apis\Users.php /^ $res = Sql::select('uid')->from('pre_common_member_profile')->where('realname = ?', $alias)->forUpdate()->get($pdo);$/;" v -res .\source\apis\Users.php /^ $res = Sql::select('uid')->from('uc_members')->where($/;" v -res .\source\apis\Users.php /^ $res = Sql::select('uid')->from('uc_members')->where('username=?',$account)->forUpdate()->get($this->db);$/;" v -res .\source\apis\Users.php /^ $res = $this->getUserByIds([$uid]);$/;" v -res .\source\apis\Users.php /^ $res = Sql::select('uc_members.uid',$/;" v -res .\source\apis\Users.php /^ $res = Sql::select('uid, password, salt')->from('uc_members')$/;" v -res .\source\apis\appport.php /^ $res = Sql::select('ims_interaction_users_qq.access_id,ims_interaction_users_qq.access_key')$/;" v -res .\source\apis\appport.php /^ $res = Sql::select('ims_interaction_users_qq.sid')$/;" v -res .\source\apis\user.php /^ $res = Sql::select('ims_interaction_users.*')$/;" v -reset .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function reset()$/;" f -reset .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function reset()$/;" f -reset .\lib\phprs\util\Curl.php /^ public function reset(){$/;" f -resetPeek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function resetPeek()$/;" f -resetPosition .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function resetPosition($position = 0)$/;" f -respond .\lib\phprs\Router.php /^ $respond = new Response();$/;" v -response .\framework\class\weixin.account.class.php /^ $response = ihttp_get($apiurl);$/;" v -response .\framework\class\weixin.account.class.php /^ $response = ihttp_get($url);$/;" v -response .\framework\class\weixin.account.class.php /^ $response = ihttp_post($url, json_encode($data));$/;" v -response .\framework\model\payment.mod.php /^ $response = ihttp_request('https:\/\/api.mch.weixin.qq.com\/pay\/unifiedorder', $dat);$/;" v -response .\framework\model\payment.mod.php /^ $response = ihttp_request(ALIPAY_GATEWAY . '?' . http_build_query($set, '', '&'), array(), array('CURLOPT_FOLLOWLOCATION' => 0));$/;" v -response .\lib\phprs\util\Curl.php /^ $response = curl_exec($this->ch);$/;" v -response .\loginLib\qq\API\class\Oauth.class.php /^ $response = substr($response, $lpos + 1, $rpos - $lpos -1);$/;" v -response .\loginLib\qq\API\class\Oauth.class.php /^ $response = substr($response, $lpos + 1, $rpos - $lpos -1);$/;" v -response .\loginLib\qq\API\class\Oauth.class.php /^ $response = $this->urlUtils->get_contents($graph_url);$/;" v -response .\loginLib\qq\API\class\Oauth.class.php /^ $response = $this->urlUtils->get_contents($token_url);$/;" v -response .\loginLib\qq\API\class\QC.class.php /^ $response = $this->urlUtils->get($baseUrl, $keysArr);$/;" v -response .\loginLib\qq\API\class\QC.class.php /^ $response = json_decode($this->_applyAPI($arg[0], $argsList, $baseUrl, $method));$/;" v -response .\loginLib\qq\API\class\QC.class.php /^ else $response = $this->urlUtils->post($baseUrl, $keysArr, 0);$/;" v -response .\loginLib\qq\API\class\QC.class.php /^ if($baseUrl == "https:\/\/graph.qq.com\/blog\/add_one_blog") $response = $this->urlUtils->post($baseUrl, $keysArr, 1);$/;" v -response .\loginLib\qq\API\class\URL.class.php /^ $response = curl_exec($ch);$/;" v -response .\loginLib\qq\API\class\URL.class.php /^ $response = file_get_contents($url);$/;" v -responseArr .\loginLib\qq\API\class\QC.class.php /^ $responseArr = $this->objToArr($response);$/;" v -responseArr .\loginLib\qq\API\class\QC.class.php /^ $responseArr = $this->simple_json_parser($this->_applyAPI($arg[0], $argsList, $baseUrl, $method));$/;" v -response_arr .\payment\baifubao\bfb_sdk.php /^ $response_arr = json_decode(json_encode(isimplexml_load_string($content)), true);$/;" v -restoreFilters .\lib\Peekmo\JsonPath\JsonPath.php /^ private function restoreFilters($filter)$/;" f -result .\framework\class\weixin.account.class.php /^ $result = @json_decode($response['content'], true);$/;" v -result .\framework\function\cache.mysql.func.php /^ $result = pdo_query($sql);$/;" v -result .\framework\function\cache.mysql.func.php /^ $result = pdo_query($sql, $params);$/;" v -result .\framework\function\cache.mysql.func.php /^ $result = array();$/;" v -result .\framework\function\global.func.php /^ $result = json_decode(json_encode($xmlobj), true);$/;" v -result .\framework\function\global.func.php /^ $result = '';$/;" v -result .\framework\function\global.func.php /^ $result = array();$/;" v -result .\framework\function\global.func.php /^ $result = substr($decrypted, 0, (strlen($decrypted) - $pad));$/;" v -result .\framework\function\global.func.php /^ $result = unserialize($value);$/;" v -result .\framework\model\cache.mod.php /^ $result = pdo_fetchall("SHOW COLUMNS FROM " . tablename('mc_members'));$/;" v -result .\lib\Peekmo\JsonPath\JsonPath.php /^ $this->result = array(); \/\/ result array was temporarily used as a buffer ..$/;" v -result .\lib\Peekmo\JsonPath\JsonPath.php /^ private $result = array();$/;" v -result .\loginLib\qq\API\comm\utils.php /^ $result = curl_exec($ch);$/;" v -result .\loginLib\qq\test\comm\utils.php /^ $result = curl_exec($ch);$/;" v -result .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $result = array ();$/;" v -result .\payment\wechat\notify.php /^ $result = array($/;" v -result .\payment\wechat\notify.php /^ $result = array($/;" v -result .\payment\wechat\notify.php /^ $result = array($/;" v -result .\source\apis\appport.php /^ $result = array();$/;" v -result .\source\apis\login.php /^ $result = array();$/;" v -result .\source\apis\user.php /^ $result = array();$/;" v -resultType .\lib\Peekmo\JsonPath\JsonPath.php /^ $this->resultType = ($args ? $args['resultType'] : "VALUE");$/;" v -resultType .\lib\Peekmo\JsonPath\JsonPath.php /^ if ($expr && $obj!==null && ($this->resultType == "VALUE" || $this->resultType == "PATH")) {$/;" v -resultType .\lib\Peekmo\JsonPath\JsonPath.php /^ private $resultType = "Value";$/;" v -ret .\loginLib\qq\API\class\URL.class.php /^ $ret = curl_exec($ch);$/;" v -ret .\loginLib\qq\API\comm\utils.php /^ $ret = curl_exec($ch);$/;" v -ret .\loginLib\qq\test\add_idol\add_idol.php /^ $ret = $qc->add_idol($_POST);$/;" v -ret .\loginLib\qq\test\add_pic_t\add_pic_t.php /^ $ret = $qc->add_pic_t($_POST);$/;" v -ret .\loginLib\qq\test\blog\add_blog.php /^$ret = $qc->add_one_blog($_POST);$/;" v -ret .\loginLib\qq\test\check_fan\check_page_fans.php /^ $ret = $qc->check_page_fans($_GET);$/;" v -ret .\loginLib\qq\test\comm\utils.php /^ $ret = curl_exec($ch);$/;" v -ret .\loginLib\qq\test\get_fanslist\get_fanslist.php /^$ret = $qc->get_fanslist($setting);$/;" v -ret .\loginLib\qq\test\get_idollist\get_idollist.php /^$ret = $qc->get_idollist($setting);$/;" v -ret .\loginLib\qq\test\get_info\get_info.php /^$ret = $qc->get_info();$/;" v -ret .\loginLib\qq\test\get_repost_list\get_repost_list .php /^ $ret = $qc->add_pic_t($_POST);$/;" v -ret .\loginLib\qq\test\get_tenpay_addr\get_tenpay_addr.php /^$ret = $qc->get_tenpay_addr();$/;" v -ret .\loginLib\qq\test\share\add_share.php /^$ret = $qc->add_share($_GET);$/;" v -ret .\loginLib\qq\test\topic\add_topic.php /^$ret = $qc->add_topic($_POST);$/;" v -ret .\loginLib\qq\test\weibo\add_weibo.php /^$ret = $qc->add_t($_POST);$/;" v -ret .\payment\alipay\notify.php /^ $ret = array();$/;" v -ret .\payment\alipay\return.php /^ $ret = array();$/;" v -ret .\payment\baifubao\notify.php /^ $ret = array();$/;" v -ret .\payment\baifubao\pay.php /^ $ret = array();$/;" v -ret .\payment\unionpay\notify.php /^ $ret = array();$/;" v -ret .\payment\unionpay\pay.php /^ $ret = array();$/;" v -ret .\payment\wechat\notify.php /^ $ret = array();$/;" v -ret .\payment\wechat\pay.php /^ $ret = array();$/;" v -ret .\source\apis\login.php /^ $ret = $qc->get_info();$/;" v -retry .\payment\baifubao\bfb_sdk.php /^ $retry = 0;$/;" v -return .\framework\function\global.func.php /^ $return = false;$/;" v -return .\framework\function\global.func.php /^ $return = true;$/;" v -return .\framework\function\global.func.php /^ $return = array();$/;" v -return .\payment\resource\script\kindeditor\kindeditor-min.js /^\/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http:\/\/www.kindsoft.net\/license.php *\/(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;creturn_val = $var;$/;" v -return_val .\lib\phprs\BindReturns.php /^ private $return_val;$/;" v -reurl .\framework\function\global.func.php /^ $reurl = parse_url($_W['referer']);$/;" v -rightJoin .\lib\phprs\ezsql\rules\select.php /^ public function rightJoin($table) {$/;" f -rlt .\framework\function\communication.func.php /^ $rlt = array();$/;" v -rlt .\framework\function\compat.func.php /^ $rlt = '';$/;" v -rndkey .\framework\function\global.func.php /^ $rndkey = array();$/;" v -root .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $root = SDK_FILE_DOWN_PATH;$/;" v -route .\lib\phprs\Container.php /^ $route = $ann['value'];$/;" v -route .\lib\phprs\util\HttpRouterEntries.php /^ $route=$value;$/;" v -route .\lib\phprs\util\HttpRouterEntries.php /^ $route = $node['value'];$/;" v -route .\lib\phprs\util\HttpRouterEntries.php /^ $route = new Tree();$/;" v -route .\lib\phprs\util\HttpRouterEntries.php /^ $route=null;$/;" v -route .\lib\phprs\util\HttpRouterEntries.php /^ $route=null;$/;" v -route_path .\lib\phprs\apis\ApiExporter.php /^ $route_path = HttpRouterEntries::stringToPath($api['uri'][1]); \/\/ 这是绝对路径$/;" v -router .\lib\phprs\Bootstrap.php /^ $router = $factory->create('phprs\\\\RouterWithCache');$/;" v -router .\lib\phprs\apis\ApiExporter.php /^ private $router;$/;" v -routes .\lib\phprs\Container.php /^ public $routes=array(); \/\/['GET'=>[Invoker,Invoker,Invoker...],'POST',....];$/;" v -routes .\lib\phprs\Router.php /^ private $routes=array();$/;" v -routes .\lib\phprs\util\HttpRouterEntries.php /^ $this->routes = new Tree();$/;" v -routes .\lib\phprs\util\HttpRouterEntries.php /^ private $routes;$/;" v -row .\framework\function\communication.func.php /^ $row = pdo_fetch("SELECT `notify` FROM " . tablename('uni_settings') . " WHERE uniacid = :uniacid", array(':uniacid' => $_W['uniacid']));$/;" v -rows .\lib\phprs\ezsql\Sql.php /^ * $rows = Sql::deleteFrom('table')$/;" v -rows .\lib\phprs\ezsql\Sql.php /^ * $rows = Sql::update('table')$/;" v -rows .\lib\phprs\ezsql\impls.php /^ $this->rows = $this->st->rowCount();$/;" v -rows .\lib\phprs\ezsql\impls.php /^ public $rows;$/;" v -rpos .\loginLib\qq\API\class\Oauth.class.php /^ $rpos = strrpos($response, ")");$/;" v -rs .\framework\function\cache.mysql.func.php /^ $rs = Sql::select('ims_interaction_core_cache.*')$/;" v -run .\lib\phprs\Bootstrap.php /^ static public function run($conf_file) {$/;" f -run .\lib\phprs\util\MessagePump.php /^ public function run()$/;" f -s .\framework\function\global.func.php /^ $s = $level == 1 ? "" : '';$/;" v -s .\framework\function\global.func.php /^ $s = preg_replace("\/([\\x01-\\x08\\x0b-\\x0c\\x0e-\\x1f])+\/", ' ', $s);$/;" v -s .\lib\Peekmo\JsonPath\JsonPath.php /^ $s = explode(":", preg_replace("\/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$\/", "$1:$2:$3", $loc));$/;" v -s1 .\source\apis\cloud.php /^ $s1 = "{=NULL=}",$s2 = "{=NULL=}",$s3 = "{=NULL=}",$s4 = "{=NULL=}",$s5 = "{=NULL=}",$/;" v -s6 .\source\apis\cloud.php /^ $s6 = "{=NULL=}",$s7 = "{=NULL=}",$s8 = "{=NULL=}",$s9 = "{=NULL=}"$/;" v -s6 .\source\apis\cloud.php /^ $s6 = "{=NULL=}",$s7 = "{=NULL=}",$s8 = "{=NULL=}",$s9 = "{=NULL=}",$/;" v -sAarray .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sAarray = array();$/;" v -sAarray .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sAarray = debug_backtrace();$/;" v -sAarray .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sAarray = array();$/;" v -sAarray .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sAarray = debug_backtrace();$/;" v -sAarray .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sAarray = array();$/;" v -sAarray .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sAarray = debug_backtrace();$/;" v -sAarray .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sAarray = array();$/;" v -sAarray .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sAarray = debug_backtrace();$/;" v -sBase64EncodeOutData .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sBase64EncodeOutData = base64_encode($sOutData); $/;" v -sBase64EncodeOutData .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sBase64EncodeOutData = base64_encode($sOutData); $/;" v -sBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sBuf = array();$/;" v -sCardNO .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sCardNO = "0" . $sCardNO;$/;" v -sCardNO .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sCardNO = "00" . $sCardNO;$/;" v -sCrt .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sCrt = fread($fp, 8192);$/;" v -sCrt .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sCrt = fread($fp, 8192);$/;" v -sGetFileLine .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sGetFileLine = $sAarray[0]["line"];$/;" v -sGetFileLine .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sGetFileLine = $sAarray[0]["line"];$/;" v -sGetFileLine .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sGetFileLine = $sAarray[0]["line"];$/;" v -sGetFileLine .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sGetFileLine = $sAarray[0]["line"];$/;" v -sGetFilePath .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sGetFilePath = $sAarray[0]["file"];$/;" v -sGetFilePath .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sGetFilePath = $sAarray[0]["file"];$/;" v -sGetFilePath .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sGetFilePath = $sAarray[0]["file"];$/;" v -sGetFilePath .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sGetFilePath = $sAarray[0]["file"];$/;" v -sInput .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sInput = Pin2PinBlockWithCardNO($sPin, $sCardNo);$/;" v -sInput .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sInput = Pin2PinBlockWithCardNO($sPin, $sCardNo);$/;" v -sOutput .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sOutput = implode("", $sBuf); return $sOutput;$/;" v -sPanBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sPanBuf = FormatPan($sCardNO);$/;" v -sPinBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sPinBuf = Pin2PinBlock($sPin);$/;" v -sPinLen .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sPinLen = strlen($sPin);$/;" v -sPubCrt .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sPubCrt = openssl_x509_read($sCrt);$/;" v -sPubCrt .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sPubCrt = openssl_x509_read($sCrt);$/;" v -sPubKey .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sPubKey = openssl_x509_parse($sPubCrt);$/;" v -sPubKey .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sPubKey = openssl_x509_parse($sPubCrt);$/;" v -sPubKeyURL .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sPubKeyURL = trim(SDK_ENCRYPT_CERT_PATH," ");$/;" v -sPubKeyURL .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sPubKeyURL = trim(SDK_ENCRYPT_CERT_PATH," ");$/;" v -sample .\lib\phprs\apis\ApiExporter.php /^ $sample = $status . $header . "\\r\\n" . $body;$/;" v -sample .\lib\phprs\apis\ApiExporter.php /^ $sample = $path . $header . "\\r\\n" . $body;$/;" v -sample .\lib\phprs\apis\ApiExporter.php /^ $sample = $status . $header . "\\r\\n" . $body;$/;" v -saveCacheFile .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private function saveCacheFile($path, $data)$/;" f -saveToCache .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private function saveToCache($rawCacheKey, $value)$/;" f -scan .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ protected function scan($input)$/;" f -scode .\source\apis\login.php /^ $scode = $_SESSION['user_scode'];$/;" v -scode .\source\apis\login.php /^ $scode = "";$/;" v -scope .\loginLib\qq\API\class\Oauth.class.php /^ $scope = $this->recorder->readInc("scope");$/;" v -scriptname .\framework\function\global.func.php /^function scriptname() {$/;" f -search .\payment\resource\script\kindeditor\plugins\baidumap\map.html /^ function search(address) {$/;" f -search .\payment\resource\script\kindeditor\plugins\map\map.html /^ function search(address) {$/;" f -searchArgInfo .\lib\phprs\apis\ApiExporter.php /^ private function searchArgInfo($value){$/;" f -secure .\framework\function\global.func.php /^ $secure = $_SERVER['SERVER_PORT'] == 443 ? 1 : 0;$/;" v -seed .\framework\function\global.func.php /^ $seed = $numeric ? (str_replace('0', '', $seed) . '012340567890') : ($seed . 'zZ' . strtoupper($seed));$/;" v -seed .\framework\function\global.func.php /^ $seed = base_convert(md5(microtime() . $_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);$/;" v -select .\lib\phprs\ezsql\Sql.php /^ static public function select($param0='*', $_=null){$/;" f -select .\lib\phprs\ezsql\impls.php /^ static public function select($context, $columns){$/;" f -select .\lib\phprs\ezsql\rules\select.php /^ public function select($columns) {$/;" f -select .\lib\phprs\util\MetaInfo.php /^ $select = array_flip($select);$/;" v -semanticalError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function semanticalError($message)$/;" f -semanticalErrorConstants .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function semanticalErrorConstants($identifier, $context = null)$/;" f -semicolon .\framework\function\global.func.php /^ $semicolon = strpos($data, ';');$/;" v -sendHttpRequest .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^function sendHttpRequest($params, $url) {$/;" f -sendHttpRequest .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^function sendHttpRequest($params, $url) {$/;" f -sender .\lib\phprs\Response.php /^ $sender = $func;$/;" v -sender .\lib\phprs\Response.php /^ $this->sender = $sender;$/;" v -sender .\lib\phprs\Response.php /^ $this->sender = array($/;" v -sender .\lib\phprs\Response.php /^ private $sender;$/;" v -serialize .\lib\phprs\util\RedisCache.php /^ private $serialize = true;$/;" v -session .\loginLib\qq\test\comm\session.php /^ $session = new Session;$/;" v -session .\loginLib\qq\test\comm\session2.php /^ $session = new Session;$/;" v -set .\framework\model\payment.mod.php /^ $set = array();$/;" v -set .\lib\Peekmo\JsonPath\JsonStore.php /^ function set($expr, $value)$/;" f -set .\lib\phprs\BindParams.php /^ public function set($id, $params, $method_info){$/;" f -set .\lib\phprs\BindReturns.php /^ public function set($id, $params, $method_info){$/;" f -set .\lib\phprs\BindThrows.php /^ public function set($id, $params, $method_info){$/;" f -set .\lib\phprs\ezsql\impls.php /^ $set = [];$/;" v -set .\lib\phprs\ezsql\impls.php /^ public function set($context, $column, $value){$/;" f -set .\lib\phprs\ezsql\rules\update.php /^ public function set($column, $value) {$/;" f -set .\lib\phprs\util\ApcCache.php /^ public function set($key, $var, $ttl)$/;" f -set .\lib\phprs\util\CheckableCache.php /^ public function set($name, $var, $ttl = 0, $expire_check = null)$/;" f -set .\lib\phprs\util\FileCache.php /^ public function set($key, $var, $ttl=0){$/;" f -set .\lib\phprs\util\KVCatchInterface.php /^ public function set($key, $var, $ttl);$/;" f -set .\lib\phprs\util\RedisCache.php /^ public function set($key, $var, $ttl=null){$/;" f -set .\lib\phprs\util\RedisCache.php /^ public function set(){}$/;" f -setArgs .\lib\phprs\ezsql\impls.php /^ public function setArgs($context, $values){$/;" f -setArgs .\lib\phprs\ezsql\rules\update.php /^ public function setArgs($values) {$/;" f -setBuffer .\lib\phprs\Response.php /^ public function setBuffer($buffer){$/;" f -setData .\lib\Peekmo\JsonPath\JsonStore.php /^ public function setData($data)$/;" f -setIgnoreNotImportedAnnotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function setIgnoreNotImportedAnnotations($bool)$/;" f -setIgnoredAnnotationNames .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function setIgnoredAnnotationNames(array $names)$/;" f -setIgnoredAnnotationNames .\lib\phprs\util\DocParser.php /^ public function setIgnoredAnnotationNames(array $names)$/;" f -setImports .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function setImports(array $imports)$/;" f -setInput .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function setInput($input)$/;" f -setMapEvent .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function setMapEvent(){$/;" f -setPropertyValue .\lib\phprs\util\IoCFactory.php /^ static function setPropertyValue($refl, $ins, $name, $value)$/;" f -setReturn .\lib\phprs\BindReturns.php /^ public function setReturn($var){$/;" f -setTarget .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function setTarget($target)$/;" f -sets .\source\apis\Users.php /^ $sets = array();$/;" v -setting .\framework\model\cache.mod.php /^ $setting = pdo_fetchall($sql, array(), 'key');$/;" v -setting .\loginLib\qq\install\index.php /^ $setting = "\\n";$/;" v -setting .\loginLib\qq\install\index.php /^ $setting = str_replace("\\\/", "\/",$setting);$/;" v -setting .\loginLib\qq\test\get_fanslist\get_fanslist.php /^$setting = array($/;" v -setting .\loginLib\qq\test\get_idollist\get_idollist.php /^$setting = array($/;" v -setting .\payment\alipay\notify.php /^ $setting = uni_setting($_W['uniacid'], array('payment'));$/;" v -setting .\payment\alipay\return.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v -setting .\payment\baifubao\notify.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v -setting .\payment\baifubao\pay.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v -setting .\payment\unionpay\notify.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v -setting .\payment\unionpay\pay.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v -setting .\payment\wechat\notify.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v -setting .\payment\wechat\rights.php /^ $setting = uni_setting($_W['uniacid'], array('payment'));$/;" v -shall .\framework\library\json\JSON.php /^ * @t odo Ultimately, this class shall be descended from PEAR_Error$/;" c -showError .\loginLib\qq\API\class\ErrorCase.class.php /^ public function showError($code, $description = '$'){$/;" f -showTips .\loginLib\qq\API\class\ErrorCase.class.php /^ public function showTips($code, $description = '$'){$/;" f -sid .\framework\model\user.mod.php /^ $sid = random(32,false);$/;" v -sid .\framework\model\user.mod.php /^ $sid = random(32,false);$/;" v -sid .\source\apis\login.php /^ $sid = "";$/;" v -sid .\source\apis\login.php /^ $sid = $globalUserInfo["sid"];$/;" v -sid_exist .\framework\model\user.mod.php /^ $sid_exist = Sql::select('ims_interaction_users.sid')$/;" v -sid_expire_date .\framework\model\user.mod.php /^ $sid_expire_date = date('H:i:s',strtotime("+20 minute"));$/;" v -sid_expire_time .\framework\model\user.mod.php /^ $sid_expire_time = strtotime($sid_expire_date);$/;" v -sid_expire_time .\framework\model\user.mod.php /^ $sid_expire_time = time();$/;" v -sign .\framework\model\payment.mod.php /^ $sign = strtoupper(md5($string1));$/;" v -sign .\payment\alipay\notify.php /^ $sign = md5($string);$/;" v -sign .\payment\alipay\return.php /^$sign = md5($string);$/;" v -sign .\payment\baifubao\bfb_sdk.php /^ $sign = $params ['sign'];$/;" v -sign .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function sign(&$params) {$/;" f -sign .\payment\wechat\notify.php /^ $sign = strtoupper(md5($string1 . "key={$wechat['signkey']}"));$/;" v -sign_falg .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $sign_falg = openssl_sign ( $params_sha1x16, $signature, $private_key, OPENSSL_ALGO_SHA1 );$/;" v -sign_str .\payment\baifubao\bfb_sdk.php /^ $sign_str = implode('&', $arr_temp);$/;" v -sign_str .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $sign_str = '';$/;" v -signature .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $signature = base64_decode ( $signature_str );$/;" v -signature_base64 .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $signature_base64 = base64_encode ( $signature );$/;" v -signature_str .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $signature_str = $params ['signature'];$/;" v -silently .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ * Autoloads an annotation class silently.$/;" c -simple_json_parser .\loginLib\qq\API\class\QC.class.php /^ private function simple_json_parser($json){$/;" f -singletons .\lib\phprs\util\IoCFactory.php /^ protected $singletons = array();$/;" v -site .\payment\alipay\notify.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v -site .\payment\alipay\return.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v -site .\payment\baifubao\notify.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v -site .\payment\baifubao\pay.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v -site .\payment\unionpay\notify.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v -site .\payment\unionpay\pay.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v -site .\payment\wechat\notify.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v -site .\payment\wechat\pay.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v -sitepath .\framework\bootstrap.inc.php /^$sitepath = substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '\/'));$/;" v -size .\framework\function\global.func.php /^ $size = $size . ' Bytes';$/;" v -size .\framework\function\global.func.php /^ $size = round($size \/ 1024 * 100) \/ 100 . ' KB';$/;" v -size .\framework\function\global.func.php /^ $size = round($size \/ 1048576 * 100) \/ 100 . ' MB';$/;" v -size .\framework\function\global.func.php /^ $size = round($size \/ 1073741824 * 100) \/ 100 . ' GB';$/;" v -size .\framework\function\global.func.php /^ $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);$/;" v -size .\framework\function\global.func.php /^function emotion($message = '', $size = '24px') {$/;" v -size .\lib\phprs\util\Tree.php /^ $size = count($path);$/;" v -sizecount .\framework\function\global.func.php /^function sizecount($size) {$/;" f -skipUntil .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function skipUntil($type)$/;" f -sl .\payment\baifubao\pay.php /^$sl = $_GPC['ps'];$/;" v -sl .\payment\unionpay\pay.php /^$sl = $_GPC['ps'];$/;" v -sl .\payment\wechat\pay.php /^$sl = $_POST['ps']; \/\/ 得到传入的PS参数$/;" v -sl .\source\apis\pay.php /^ $sl = base64_encode(json_encode($ps));$/;" v -slice .\framework\library\json\JSON.php /^ $slice = substr($chrs, $top['where'], ($c - $top['where']));$/;" v -slice .\lib\Peekmo\JsonPath\JsonPath.php /^ private function slice($loc, $expr, &$v, $path,$create=false, $default=null)$/;" f -snippets .\lib\phprs\util\NestedStringCut.php /^ private $snippets=array();$/;" v -sp_conf .\payment\baifubao\bfb_pay.cfg.php /^final class sp_conf{$/;" c -specified .\lib\phprs\Container.php /^ $specified = $method;$/;" v -split2 .\framework\function\communication.func.php /^ $split2 = explode("\\r\\n", $split1[0], 2);$/;" v -sql .\framework\function\cache.mysql.func.php /^ $sql = 'DELETE FROM ' . tablename('core_cache') . ' WHERE `key` LIKE :key';$/;" v -sql .\framework\function\cache.mysql.func.php /^ $sql = 'DELETE FROM ' . tablename('core_cache');$/;" v -sql .\framework\model\cache.mod.php /^ $sql = 'SELECT * FROM ' . tablename('core_settings');$/;" v -sql .\lib\phprs\ezsql\SqlConetxt.php /^ $this->sql = $this->sql.$sql;$/;" v -sql .\lib\phprs\ezsql\SqlConetxt.php /^ $this->sql = $this->sql.' '.$sql;$/;" v -sql .\lib\phprs\ezsql\SqlConetxt.php /^ $this->sql = $sql;$/;" v -sql .\lib\phprs\ezsql\SqlConetxt.php /^ public $sql='';$/;" v -sql .\lib\phprs\ezsql\impls.php /^ private $sql = null;$/;" v -sql .\payment\alipay\notify.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v -sql .\payment\alipay\return.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v -sql .\payment\baifubao\notify.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v -sql .\payment\baifubao\pay.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v -sql .\payment\baifubao\pay.php /^$sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid';$/;" v -sql .\payment\unionpay\notify.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v -sql .\payment\unionpay\pay.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v -sql .\payment\unionpay\pay.php /^$sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid';$/;" v -sql .\payment\wechat\notify.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v -sql .\payment\wechat\pay.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid';$/;" v -sql .\source\apis\cloud.php /^ $sql = $sql->orderBy($orderfield);$/;" v -sql .\source\apis\cloud.php /^ $sql = $sql->limit(($pindex - 1) * $psize,$psize);$/;" v -sql .\source\apis\cloud.php /^ $sql = $sql->where($condition);$/;" v -sql .\source\apis\cloud.php /^ $sql = Sql::select($fields)->from('ims_sdk_'.$outappid.'rank');$/;" v -src .\framework\function\global.func.php /^ $src = $_W['attachurl_remote'] . $src;$/;" v -src .\framework\function\global.func.php /^ $src = $_W['siteroot'] . $_W['config']['upload']['attachdir'] . '\/' . $src;$/;" v -src .\framework\function\global.func.php /^ $src = $t = substr($urls['path'], strpos($urls['path'], 'images'));$/;" v -src .\lib\phprs\apis\ApiExporter.php /^ $src = $value['value'];$/;" v -src .\lib\phprs\apis\ApiExporter.php /^ $src = $value['value']['src'];$/;" v -src .\lib\phprs\util\IoCFactory.php /^ $src = $value['value'];$/;" v -src .\lib\phprs\util\IoCFactory.php /^ $src = $value['value']['src'];$/;" v -src .\lib\phprs\util\IoCFactory.php /^ if ( $src == "ioc_factory" || $src == "factory") {$/;" v -src .\lib\phprs\util\IoCFactory.php /^ if ($src === "ioc_factory" || $src == "factory"){$/;" v -src_path .\lib\phprs\util\FileOp.php /^ $src_path = $src . '\/' . $file;$/;" v -st .\lib\phprs\ezsql\impls.php /^ $st = $db->prepare($context->sql);$/;" v -st .\lib\phprs\ezsql\impls.php /^ $this->st = $st;$/;" v -st .\lib\phprs\ezsql\impls.php /^ public $st;$/;" v -start .\lib\Peekmo\JsonPath\JsonPath.php /^ $start = ($start < 0) ? max(0, $start + $len) : $start;$/;" v -start .\lib\Peekmo\JsonPath\JsonPath.php /^ $start = ($start < 0) ? max(0, $start + $len) : min($len, $start);$/;" v -start .\lib\Peekmo\JsonPath\JsonPath.php /^ $start = (int)$s[0] ? $s[0] : 0;$/;" v -start_queue_id .\lib\phprs\util\MessagePump.php /^ private $start_queue_id = 0;$/;" v -state .\framework\class\weixin.account.class.php /^ public function getOauthCodeUrl($callback, $state = '') {$/;" v -state .\framework\class\weixin.account.class.php /^ public function getOauthUserInfoUrl($callback, $state = '') {$/;" v -state .\lib\phprs\util\AnnotationCleaner.php /^ $state = $this->$state();$/;" v -state .\lib\phprs\util\AnnotationCleaner.php /^ $state = 'stateNormal';$/;" v -state .\lib\phprs\util\NestedStringCut.php /^ $state = 'stateNormal';$/;" v -state .\loginLib\qq\API\class\Oauth.class.php /^ $state = $this->recorder->read("state");$/;" v -state .\loginLib\qq\API\class\Oauth.class.php /^ $state = md5(uniqid(rand(), TRUE));$/;" v -state .\source\apis\login.php /^ $state = 'ylsid-'.session_name();$/;" v -state .\source\apis\login.php /^ $state = 'ylsid-'.session_name();$/;" v -stateAntML .\lib\phprs\util\AnnotationCleaner.php /^ private function stateAntML(){$/;" f -stateAntSL .\lib\phprs\util\AnnotationCleaner.php /^ private function stateAntSL(){$/;" f -stateBegin .\lib\phprs\util\AnnotationCleaner.php /^ $stateBegin = [$/;" v -stateESC .\lib\phprs\util\NestedStringCut.php /^ private function stateESC($str, $pos, &$next){$/;" f -stateNormal .\lib\phprs\util\AnnotationCleaner.php /^ private function stateNormal(){$/;" f -stateNormal .\lib\phprs\util\NestedStringCut.php /^ private function stateNormal($str, $pos, &$next){$/;" f -stateQ .\lib\phprs\util\NestedStringCut.php /^ private function stateQ($str, $pos, &$next){$/;" f -stateStr .\lib\phprs\util\AnnotationCleaner.php /^ private function stateStr($q){$/;" f -stateStrDQ .\lib\phprs\util\AnnotationCleaner.php /^ private function stateStrDQ(){$/;" f -stateStrSQ .\lib\phprs\util\AnnotationCleaner.php /^ private function stateStrSQ(){$/;" f -statements .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $statements = $tokenizer->parseUseStatements($class->getNamespaceName());$/;" v -statements .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $statements = array_merge($statements, $this->parseUseStatement());$/;" v -statements .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $statements = array();$/;" v -statements .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $statements = array();$/;" v -status .\framework\function\communication.func.php /^ $status = curl_getinfo($ch);$/;" v -status .\lib\phprs\apis\ApiExporter.php /^ $status = $info['status'];$/;" v -status .\lib\phprs\apis\ApiExporter.php /^ $status = $info['status'];$/;" v -status .\lib\phprs\apis\ApiExporter.php /^ $status = "HTTP\/1.1 200 OK\\r\\n";$/;" v -status .\lib\phprs\apis\ApiExporter.php /^ $status = "HTTP\/1.1 500 Internal Server Error\\r\\n";$/;" v -status .\lib\phprs\apis\ApiExporter.php /^ $status = '';$/;" v -status .\lib\phprs\util\Curl.php /^ $this->status = trim(explode(' ', $header_line,2)[1]);$/;" v -status .\lib\phprs\util\Curl.php /^ public $status;$/;" v -status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $status = $this->getTimeLine( $priority, $sFile, $iLine);$/;" v -status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $status = $this->getTimeLine( $priority, $sGetFilePath, $sGetFileLine);$/;" v -status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $status = $this->getTimeLine( $priority, $sFile, $iLine);$/;" v -status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $status = $this->getTimeLine( $priority, $sGetFilePath, $sGetFileLine);$/;" v -step .\lib\Peekmo\JsonPath\JsonPath.php /^ $step = (int)$s[2] ? $s[2] : 1;$/;" v -step .\lib\phprs\BindParams.php /^ $step = 0;$/;" v -step .\lib\phprs\BindReturns.php /^ $step = 0;$/;" v -stk .\framework\library\json\JSON.php /^ $stk = array(SERVICES_JSON_IN_OBJ);$/;" v -stk .\framework\library\json\JSON.php /^ $stk = array(SERVICES_JSON_IN_ARR);$/;" v -store .\lib\Peekmo\JsonPath\JsonPath.php /^ private function store($p, $v)$/;" f -str .\framework\function\communication.func.php /^ $str = '';$/;" v -str .\framework\function\global.func.php /^ $str = "&j={$_W['acid']}";$/;" v -str .\framework\function\global.func.php /^ $str = '';$/;" v -str .\framework\function\global.func.php /^ $str = str_replace(' ', '#nbsp;', $str);$/;" v -str .\framework\function\global.func.php /^ return $str == base64_encode(base64_decode($str));$/;" v -str .\framework\library\json\JSON.php /^ $str = $this->reduce_string($str);$/;" v -str .\framework\library\json\JSON.php /^ $str = preg_replace(array($/;" v -str .\lib\Peekmo\JsonPath\JsonPath.php /^ $str = $substr;$/;" v -str .\lib\Peekmo\JsonPath\JsonPath.php /^ $str = ''; $first = true;$/;" v -str .\lib\phprs\ezsql\Native.php /^ $this->str = $str;$/;" v -str .\lib\phprs\ezsql\Native.php /^ private $str;$/;" v -str .\lib\phprs\util\HttpRouterEntries.php /^ $str =$str.'\/'.$v;$/;" v -str .\lib\phprs\util\HttpRouterEntries.php /^ $str = '';$/;" v -str .\loginLib\qq\API\class\QC.class.php /^ $str = implode(",",$val);$/;" v -strcut .\framework\function\global.func.php /^ $strcut = substr($string, 0, $n);$/;" v -strcut .\framework\function\global.func.php /^ $strcut = '';$/;" v -strexists .\framework\function\global.func.php /^function strexists($string, $find) {$/;" f -strict .\framework\function\global.func.php /^function is_serialized($data, $strict = true) {$/;" v -strict .\lib\phprs\Router.php /^ $strict = ($strict===null)?$this->default_strict_matching:$strict;$/;" v -string .\framework\function\global.func.php /^ $string = $string . "...";$/;" v -string .\framework\function\global.func.php /^ $string = mb_substr($string, 0, $length, $charset);$/;" v -string .\framework\function\global.func.php /^ $string = str_replace(array($pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end), array('&', '"', '<', '>'), $strcut);$/;" v -string .\framework\function\global.func.php /^ $string = str_replace(array('&', '"', '<', '>'), array($pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end), $string);$/;" v -string .\framework\function\global.func.php /^ $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0) . substr(md5($string . $keyb), 0, 16) . $string;$/;" v -string .\framework\model\payment.mod.php /^ $string = '';$/;" v -string .\framework\model\payment.mod.php /^ $string = rtrim($string, '&');$/;" v -string .\framework\model\payment.mod.php /^ $string = implode('&', $prepares);$/;" v -string .\payment\alipay\notify.php /^ $string = implode($prepares, '&');$/;" v -string .\payment\alipay\return.php /^$string = implode($prepares, '&');$/;" v -string .\payment\wechat\rights.php /^ $string = '';$/;" v -string .\payment\wechat\rights.php /^ $string = sha1(rtrim($string, '&'));$/;" v -string1 .\framework\model\payment.mod.php /^ $string1 = '';$/;" v -string1 .\payment\wechat\notify.php /^ $string1 = '';$/;" v -string2 .\framework\model\payment.mod.php /^ $string2 = '';$/;" v -stringToPath .\lib\phprs\util\HttpRouterEntries.php /^ static public function stringToPath($path){$/;" f -string_length .\framework\function\global.func.php /^ $string_length = strlen($string);$/;" v -stringlen .\framework\function\compat.func.php /^ $stringlen = @fwrite($fp, $string);$/;" v -strlen .\framework\function\global.func.php /^ $strlen = strlen($string);$/;" v -strlen_chrs .\framework\library\json\JSON.php /^ $strlen_chrs = strlen($chrs);$/;" v -strlen_var .\framework\library\json\JSON.php /^ $strlen_var = strlen($var);$/;" v -strpos_array .\lib\Peekmo\JsonPath\JsonPath.php /^ private function strpos_array($haystack, array $needles)$/;" f -struct .\framework\model\cache.mod.php /^ $struct = array();$/;" v -stubs .\lib\phprs\ezsql\impls.php /^ $stubs = [];$/;" v -stubs .\lib\phprs\ezsql\impls.php /^ $stubs = implode(',', $stubs);$/;" v -stubs .\lib\phprs\ezsql\impls.php /^ $stubs = strval($arg);$/;" v -stubs .\lib\phprs\ezsql\impls.php /^ $stubs = [];$/;" v -stubs .\lib\phprs\ezsql\impls.php /^ $stubs = implode(',', $stubs);$/;" v -stubs .\lib\phprs\ezsql\impls.php /^ $stubs = [];$/;" v -stubs .\lib\phprs\ezsql\impls.php /^ $stubs = implode(',', $stubs);$/;" v -subStateQ .\lib\phprs\util\NestedStringCut.php /^ $this->subStateQ = '"';$/;" v -subStateQ .\lib\phprs\util\NestedStringCut.php /^ $this->subStateQ = '\\'';$/;" v -subStateQ .\lib\phprs\util\NestedStringCut.php /^ private $subStateQ;$/;" v -sub_t4 .\source\apis\cloud.php /^ $sub_t4 = "",$sub_t5 = "",$sub_t6 = "",$sub_t7 = "",$sub_t8 = "",$sub_t9 = "",$/;" v -subscribe .\framework\model\cache.mod.php /^ $subscribe = array();$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\\\"':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\\\\/':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\\\\\'':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\\\\\\\':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\b':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\f':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\n':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\r':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\t':$/;" v -substr_chrs_c_2 .\framework\library\json\JSON.php /^ $substr_chrs_c_2 = substr($chrs, $c, 2);$/;" v -subx .\lib\Peekmo\JsonPath\JsonPath.php /^ private $subx = array();$/;" v -succeeded .\lib\phprs\Container.php /^ $succeeded = $found;$/;" v -succeeded .\lib\phprs\Invoker.php /^ $succeeded = false;$/;" v -succeeded .\lib\phprs\util\CheckableCache.php /^ $succeeded = false;$/;" v -succeeded .\lib\phprs\util\CheckableCache.php /^ $succeeded = true;$/;" v -succeeded .\lib\phprs\util\FileCache.php /^ $succeeded = false;$/;" v -succeeded .\lib\phprs\util\FileCache.php /^ $succeeded = true;$/;" v -succeeded .\lib\phprs\util\IoCFactory.php /^ $succeeded = false;$/;" v -succeeded .\lib\phprs\util\RedisCache.php /^ $succeeded = ($res !== false);$/;" v -success .\lib\phprs\ezsql\impls.php /^ $this->success = $success;$/;" v -success .\lib\phprs\ezsql\impls.php /^ public $success;$/;" v -success .\lib\phprs\ezsql\impls.php /^ $success = $st->execute($context->params);$/;" v -syntaxError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function syntaxError($message)$/;" f -syntaxError .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function syntaxError($expected, $token = null)$/;" f -syntaxError .\lib\phprs\util\DocParser.php /^ private function syntaxError($expected, $token = null)$/;" f -t .\framework\function\global.func.php /^ $t = ord($string[$n]);$/;" v -t .\framework\function\global.func.php /^ if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {$/;" v -t .\framework\function\global.func.php /^ } elseif ($t == 252 || $t == 253) {$/;" v -t .\framework\function\global.func.php /^ $t = strtolower($src);$/;" v -t .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $t = 0;$/;" v -t1 .\source\apis\cloud.php /^ $t1 = "",$t2 = "",$t3 = "",$t4 = "",$t5 = "",$t6 = "",$t7 = "",$t8 = "",$t9 = "",$/;" v -tBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $tBuf = substr($sPin, $i, 2);$/;" v -tBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $tBuf = substr($sPin, $i, 2);$/;" v -tBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $tBuf = substr($sPan, $iTemp, 2);$/;" v -tableList .\source\apis\cloud.php /^ $tableList = Sql::select(' * ')$/;" v -tableList .\source\apis\cloud.php /^ $tableList = Sql::select('`t`.*')$/;" v -tablename .\framework\function\global.func.php /^function tablename($table) {$/;" f -tag .\lib\phprs\util\Cache.php /^ private $tag = "";$/;" v -tag .\lib\phprs\util\CheckableCache.php /^ $this->tag = $tag; $/;" v -tag .\lib\phprs\util\CheckableCache.php /^ function __construct($impl, $tag = ''){$/;" v -tag .\lib\phprs\util\CheckableCache.php /^ private $tag;$/;" v -tag .\payment\wechat\pay.php /^ $tag = iunserializer($log['tag']);$/;" v -tagname .\framework\function\global.func.php /^ $tagname = $value['TagName'];$/;" v -tagname .\framework\function\global.func.php /^ foreach ($arr as $tagname => $value) {$/;" v -target .\lib\Doctrine\Common\Annotations\DocParser.php /^ $target = $this->isNestedAnnotation ? Target::TARGET_ANNOTATION : $this->target;$/;" v -target .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->target = $target;$/;" v -target .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $target;$/;" v -target .\source\apis\login.php /^ $target = $_SESSION['user_target'];$/;" v -target .\source\apis\login.php /^ $target = "";$/;" v -targets .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ $this->targets = $bitmask;$/;" v -targets .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ public $targets;$/;" v -temp .\framework\function\communication.func.php /^ $temp = $rlt['headers'][$key];$/;" v -temp .\framework\function\global.func.php /^ $temp = preg_replace('!s:(\\d+):"(.*?)";!se', "'s:'.strlen('$2').':\\"$2\\";'", $value);$/;" v -temp .\framework\model\cache.mod.php /^ $temp = array();$/;" v -temp .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $temp = preg_split ( '\/&\/', $str );$/;" v -tempFilters .\lib\Peekmo\JsonPath\JsonPath.php /^ private function tempFilters($filter)$/;" f -tempdir .\lib\phprs\util\FileOp.php /^ function tempdir($dir, $prefix) {$/;" f -tempfile .\lib\phprs\util\FileOp.php /^ $tempfile=tempnam($dir, $prefix);$/;" v -test .\lib\phprs\util\MetaInfo.php /^ public function test(){$/;" f -testAnnotation .\lib\phprs\util\MetaInfo.php /^ static function testAnnotation(){$/;" f -text .\framework\function\global.func.php /^ $text = $text . $tmp;$/;" v -text .\framework\function\global.func.php /^ $text = random(16) . pack("N", strlen($message)) . $message . $appid;$/;" v -text .\lib\phprs\apis\ApiExporter.php /^ $text = $this->getDocText($route_doc['desc']);$/;" v -text .\lib\phprs\apis\ApiExporter.php /^ $text = '';$/;" v -text .\lib\phprs\apis\ApiExporter.php /^ $text = trim($text, "\\r\\n");$/;" v -text .\lib\phprs\util\DocParser.php /^ $text = strstr($text, ')');$/;" v -text .\lib\phprs\util\DocParser.php /^ $text = substr($doc, $doc_begin);$/;" v -text .\lib\phprs\util\DocParser.php /^ $text = strstr($text, ')');$/;" v -text .\lib\phprs\util\DocParser.php /^ $text = substr($doc, $doc_begin);$/;" v -text_length .\framework\function\global.func.php /^ $text_length = strlen($text);$/;" v -that .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ * IMPORTANT: Loaders have to return true if they loaded a class that could contain the searched annotation class.$/;" c -tid .\framework\model\payment.mod.php /^ $tid = $params['uniontid'];$/;" v -time .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $time = date( $this->DateFormat );$/;" v -time .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $time = date( $this->DateFormat );$/;" v -timeFlag .\framework\class\weixin.account.class.php /^ $timeFlag = $cache['expire'] > TIMESTAMP;$/;" v -titles .\lib\phprs\util\Logger.php /^ $titles = array($/;" v -tmp .\framework\function\communication.func.php /^ $tmp = substr($tmp, ($len + $pos + $add));$/;" v -tmp .\framework\function\communication.func.php /^ $tmp = ltrim($tmp);$/;" v -tmp .\framework\function\communication.func.php /^ $tmp = $str;$/;" v -tmp .\framework\function\global.func.php /^ $tmp = $box[$a];$/;" v -tmp .\framework\function\global.func.php /^ $tmp = $box[$i];$/;" v -tmp .\framework\function\global.func.php /^ $tmp = '';$/;" v -tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = substr($this->tmp, $i);$/;" v -tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = substr($this->tmp, $i+1);$/;" v -tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = '';$/;" v -tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = substr($this->tmp, $pos);$/;" v -tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = substr($this->tmp, $pos+2);$/;" v -tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = $text;$/;" v -tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = '';$/;" v -tmp .\lib\phprs\util\AnnotationCleaner.php /^ private $tmp;$/;" v -tmp .\lib\phprs\util\IoCFactory.php /^ $tmp = $this->create_stack;$/;" v -tmp .\lib\phprs\util\Tree.php /^ $tmp = array();$/;" v -tmpKey .\loginLib\qq\API\class\QC.class.php /^ $tmpKey = str_replace($res[0], "", $tmpKey);$/;" v -tmpKey .\loginLib\qq\API\class\QC.class.php /^ $tmpKey = substr($tmpKey,1);$/;" v -tmpKey .\loginLib\qq\API\class\QC.class.php /^ $tmpKey = $val;$/;" v -tmpKey .\loginLib\qq\API\class\QC.class.php /^ $tmpKey = $key;$/;" v -tmpVal .\loginLib\qq\API\class\QC.class.php /^ $tmpVal = $pre;$/;" v -tmpVal .\loginLib\qq\API\class\QC.class.php /^ $tmpVal = null;$/;" v -tmpVal .\loginLib\qq\API\class\QC.class.php /^ $tmpVal = $val;$/;" v -tmp_file .\lib\phprs\util\SaftyFileWriter.php /^ $tmp_file= tempnam($file_dir, 'tsb_sfw');$/;" v -tn .\framework\function\global.func.php /^ $tn = 1;$/;" v -tn .\framework\function\global.func.php /^ $tn = 2;$/;" v -tn .\framework\function\global.func.php /^ $tn = 3;$/;" v -tn .\framework\function\global.func.php /^ $tn = 4;$/;" v -tn .\framework\function\global.func.php /^ $tn = 5;$/;" v -tn .\framework\function\global.func.php /^ $tn = 6;$/;" v -to .\lib\Doctrine\Common\Annotations\TokenParser.php /^ \/\/ getDocBlock() on said class to return our long lost doc_comment. Argh.$/;" c -to .\lib\Doctrine\Common\Annotations\TokenParser.php /^ \/\/ separated by T_NS_SEPARATOR so we can use one function to provide$/;" f -to .\lib\phprs\BindReturns.php /^ $to = $params;$/;" v -to .\lib\phprs\BindReturns.php /^ $to = $params[0];$/;" v -to .\lib\phprs\BindThrows.php /^ $to = $params[1];$/;" v -toArray .\lib\Peekmo\JsonPath\JsonStore.php /^ public function toArray()$/;" f -toArray .\lib\phprs\Request.php /^ public function toArray(){$/;" f -toObject .\lib\Peekmo\JsonPath\JsonPath.php /^ private function toObject($array)$/;" f -toObject .\lib\Peekmo\JsonPath\JsonStore.php /^ public function toObject()$/;" f -toQzoneLogin .\loginLib\qq\test\index.html /^ function toQzoneLogin()$/;" f -toReplace .\lib\phprs\ezsql\impls.php /^ $toReplace = array_reverse($toReplace);$/;" v -toReplace .\lib\phprs\ezsql\impls.php /^ $toReplace = array();$/;" v -toString .\lib\Peekmo\JsonPath\JsonStore.php /^ public function toString()$/;" f -to_echo .\lib\phprs\util\Logger.php /^ static $to_echo;$/;" v -to_func .\lib\phprs\BindReturns.php /^ $to_func = &$this->params[$to][$id];$/;" v -to_func .\lib\phprs\BindThrows.php /^ $to_func = &$this->params[$exception][$to][$id];$/;" v -to_php_log .\lib\phprs\util\Logger.php /^ static $to_php_log;$/;" v -to_void .\lib\phprs\util\Logger.php /^ static $to_void;$/;" v -token .\framework\class\weixin.account.class.php /^ $token = $this->getAccessToken($db);$/;" v -token .\framework\class\weixin.account.class.php /^ $token = $this->getAccessToken($db,$pdo);$/;" v -token .\framework\class\weixin.account.class.php /^ $token = @json_decode($content['content'], true);$/;" v -token .\framework\function\global.func.php /^ $token = $data[0];$/;" v -token .\framework\function\global.func.php /^function token($specialadd = '') {$/;" f -token .\lib\Doctrine\Common\Annotations\DocParser.php /^ $token = $this->lexer->lookahead;$/;" v -token .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function syntaxError($expected, $token = null)$/;" v -token .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->token = $this->lookahead;$/;" v -token .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->token = null;$/;" v -token .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public $token;$/;" v -token .\lib\phprs\util\DocParser.php /^ $token = $this->lexer->lookahead;$/;" v -token .\lib\phprs\util\DocParser.php /^ private function syntaxError($expected, $token = null)$/;" v -token .\source\apis\Users.php /^ $token = $this->factory->create('Tokens')->getToken($token);$/;" v -token .\source\apis\Users.php /^ $token = $tokens->getToken($token);$/;" v -token_login .\source\apis\appport.php /^ public function token_login($access_id,$access_key,$scode) {$/;" f -token_url .\loginLib\qq\API\class\Oauth.class.php /^ $token_url = $this->urlUtils->combineURL(self::GET_ACCESS_TOKEN_URL, $keysArr);$/;" v -tokenizer .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $tokenizer = new TokenParser('tokens = token_get_all($contents);$/;" v -tokens .\lib\Doctrine\Common\Annotations\TokenParser.php /^ private $tokens;$/;" v -tokens .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->tokens = array();$/;" v -tokens .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ private $tokens = array();$/;" v -tokens .\source\apis\Users.php /^ $tokens = $this->factory->create('Tokens');$/;" v -tomedia .\framework\function\global.func.php /^function tomedia($src, $local_path = false){$/;" f -top .\framework\library\json\JSON.php /^ $top = end($stk);$/;" v -total .\source\apis\cloud.php /^ $total = Sql::select(' COUNT(*) as num ')$/;" v -total .\source\apis\cloud.php /^ $total = Sql::select(' COUNT(id) as countnum ')$/;" v -trace .\lib\Peekmo\JsonPath\JsonPath.php /^ private function trace($expr, &$val, $path, $create=false, $default=null)$/;" f -traitImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait));$/;" v -traitImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $traitImports = array();$/;" v -treeToArray .\lib\phprs\util\Tree.php /^ static private function treeToArray($tree, &$res){$/;" f -ttl .\lib\phprs\util\CheckableCache.php /^ public function set($name, $var, $ttl = 0, $expire_check = null)$/;" v -ttl .\lib\phprs\util\FileCache.php /^ public function set($key, $var, $ttl=0){$/;" v -ttl .\lib\phprs\util\RedisCache.php /^ public function set($key, $var, $ttl=null){$/;" v -type .\lib\Doctrine\Common\Annotations\Annotation\Attribute.php /^ public $type;$/;" v -type .\lib\Doctrine\Common\Annotations\DocLexer.php /^ $type = self::T_NONE;$/;" v -type .\lib\Doctrine\Common\Annotations\DocParser.php /^ $type = 'array';$/;" v -type .\lib\Doctrine\Common\Annotations\DocParser.php /^ $type = isset(self::$typeMap[$attribute->type])$/;" v -type .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $type = $this->getType($match[0]);$/;" v -type .\lib\phprs\Container.php /^ foreach ($anns as $type =>$v){$/;" v -type .\lib\phprs\apis\ApiExporter.php /^ foreach ($ann->getPropertyAnnotations($property, true) as $type => $value) {$/;" v -typeError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function typeError($message)$/;" f -typeMap .\lib\Doctrine\Common\Annotations\DocParser.php /^ private static $typeMap = array($/;" v -typeMap .\lib\phprs\util\DocParser.php /^ private static $typeMap = array($/;" v -typeTableInfo .\source\apis\cloud.php /^ $typeTableInfo = $tableList[0];$/;" v -uid .\source\apis\Users.php /^ $uid = $res[0]['uid'];$/;" v -uid .\source\apis\Users.php /^ $uid = Sql::insertInto('uc_members')->values(['username'=>$account,$/;" v -uid .\source\apis\Users.php /^ $uid = $token['uid'];$/;" v -uid_exist .\framework\model\user.mod.php /^ $uid_exist = Sql::select('ims_interaction_users_qq.id')$/;" v -uid_exist .\framework\model\user.mod.php /^ $uid_exist = Sql::select('ims_interaction_users_weixin.id')$/;" v -uniacid_arr .\framework\model\cache.mod.php /^ $uniacid_arr = pdo_fetchall('SELECT acid FROM ' . tablename('account_wechats'));$/;" v -uniacid_arr .\framework\model\cache.mod.php /^ $uniacid_arr = pdo_fetchall('SELECT uniacid FROM ' . tablename('uni_account'));$/;" v -unique .\lib\Peekmo\JsonPath\JsonStore.php /^ public function get($expr, $unique = false, $create = false, $default = null)$/;" v -update .\lib\phprs\ezsql\Sql.php /^ static public function update($table) {$/;" f -update .\lib\phprs\ezsql\impls.php /^ static public function update($context, $table){$/;" f -update .\lib\phprs\ezsql\rules\update.php /^ public function update($table) {$/;" f -updateCount .\source\apis\cloud.php /^ $updateCount = $updateSql->exec($pdo);$/;" v -updateData .\framework\model\user.mod.php /^ $updateData = array();$/;" v -updateQqUserInfo .\framework\model\user.mod.php /^function updateQqUserInfo($qqUserInfo,$db,$pdo){$/;" f -updateSql .\source\apis\cloud.php /^ $updateSql = Sql::update('ims_sdk_'.$outappid.'rank');$/;" v -updateUser .\source\apis\Users.php /^ public function updateUser($token, $alias=null, $password=null, $avatar=null ){$/;" f -updateUserInfo .\framework\model\user.mod.php /^function updateUserInfo($scode,$auth_type,$openid,$db,$pdo){$/;" f -updateWeixinUserInfo .\framework\model\user.mod.php /^function updateWeixinUserInfo($weixinUserInfo,$db,$pdo){$/;" f -upline .\framework\function\global.func.php /^ $upline = intval($upline);$/;" v -uploadAvatar .\source\apis\Users.php /^ private function uploadAvatar($file){$/;" f -uri .\framework\function\compat.func.php /^ $uri = 'data:\/\/application\/octet-stream;base64,' . base64_encode($string_data);$/;" v -uri .\lib\phprs\Router.php /^ Logger::debug("invoke $uri => {$api->getClassName()}::{$api->getMethodName()}");$/;" v -uri .\lib\phprs\Router.php /^ $uri = $request['$._SERVER.REQUEST_URI'];$/;" v -uri .\lib\phprs\Router.php /^ Logger::debug("invoke $uri => {$api->getClassName()}::{$api->getMethodName()}");$/;" v -url .\framework\class\weixin.account.class.php /^ $url = "https:\/\/api.weixin.qq.com\/cgi-bin\/token?grant_type=client_credential&appid={$this->account['key']}&secret={$this->account['secret']}";$/;" v -url .\framework\class\weixin.account.class.php /^ $url = "https:\/\/api.weixin.qq.com\/cgi-bin\/user\/info?access_token={$token}&openid={$openid}&lang=zh_CN";$/;" v -url .\framework\class\weixin.account.class.php /^ $url = "https:\/\/api.weixin.qq.com\/cgi-bin\/user\/info\/batchget?access_token={$token}";$/;" v -url .\framework\class\weixin.account.class.php /^ $url = "https:\/\/api.weixin.qq.com\/sns\/oauth2\/access_token?appid={$this->account['key']}&secret={$this->account['secret']}&code={$code}&grant_type=authorization_code";$/;" v -url .\framework\function\global.func.php /^ $url = $_W['script_name'] . '?' . http_build_query($_GET);$/;" v -url .\framework\function\global.func.php /^ $url = $_W['siteroot'] . 'app\/';$/;" v -url .\framework\function\global.func.php /^ $url = '.\/';$/;" v -url .\framework\function\global.func.php /^ $url = '.\/index.php?';$/;" v -url .\source\apis\login.php /^ $url = "http:\/\/api.tscce.cn\/api\/login\/weixin\/callback";$/;" v -urlUtils .\loginLib\qq\API\class\Oauth.class.php /^ $this->urlUtils = new URL();$/;" v -urlUtils .\loginLib\qq\API\class\Oauth.class.php /^ public $urlUtils;$/;" v -url_begin .\lib\phprs\Request.php /^ $this->url_begin = $url_begin;$/;" v -url_begin .\lib\phprs\Request.php /^ private $url_begin;$/;" v -url_begin .\lib\phprs\Router.php /^ public $url_begin=0;$/;" v -urls .\framework\function\communication.func.php /^ $urls = parse_url($GLOBALS['_W']['config']['setting']['proxy']['host']);$/;" v -urls .\framework\function\global.func.php /^ $urls = parse_url($src);$/;" v -urlset .\framework\function\communication.func.php /^ $urlset = parse_url($url);$/;" v -use .\framework\library\json\JSON.php /^ $this->use = $use;$/;" v -use_cache .\lib\phprs\Invoker.php /^ $use_cache = !$this->bind['cache']->isEmpty();$/;" v -user .\lib\phprs\util\RedisCache.php /^ private $user;$/;" v -user .\loginLib\qq\API\class\Oauth.class.php /^ $user = json_decode($response);$/;" v -userInfo .\framework\model\user.mod.php /^ $userInfo = Sql::select('ims_interaction_users.*')$/;" v -userInfo .\source\apis\user.php /^ $userInfo = Sql::select('ims_interaction_users_qq.*')$/;" v -userInfo .\source\apis\user.php /^ $userInfo = Sql::select('ims_interaction_users_weixin.*')$/;" v -userInfo .\source\apis\user.php /^ $userInfo = array();$/;" v -userInfoBase .\source\apis\user.php /^ $userInfoBase = array();$/;" v -userinfo .\source\apis\login.php /^ $userinfo = $weixin->getOauthUserInfo($oauth['access_token'],$oauth['openid']);$/;" v -userinfo .\source\apis\login.php /^ $userinfo = $qc->get_user_info();$/;" v -userinfo .\source\apis\login.php /^ $userinfo = $weixin->getOauthUserInfo($oauth['access_token'],$oauth['openid']);$/;" v -utf16 .\framework\library\json\JSON.php /^ $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2)))$/;" v -utf16 .\framework\library\json\JSON.php /^ $utf16 = $this->utf82utf16($char);$/;" v -utf162utf8 .\framework\library\json\JSON.php /^ function utf162utf8($utf16)$/;" f -utf8 .\framework\library\json\JSON.php /^ $utf8 = '';$/;" v -utf82utf16 .\framework\library\json\JSON.php /^ function utf82utf16($utf8)$/;" f -utf8_bytes .\framework\function\global.func.php /^function utf8_bytes($cp) {$/;" f -v .\framework\model\payment.mod.php /^ $v = $wechat['signkey'];$/;" v -v .\framework\model\payment.mod.php /^ $v = $wOpt[$key];$/;" v -v .\framework\model\payment.mod.php /^ $v = urlencode($v);$/;" v -v .\lib\phprs\ezsql\impls.php /^ ($v =='DESC' || $v =='ASC'), new \\InvalidArgumentException("invalid params for orderBy(".json_encode($orders).")"));$/;" v -v .\lib\phprs\ezsql\impls.php /^ $v = strtoupper($v);$/;" v -v .\lib\phprs\util\HttpRouterEntries.php /^ if(strlen($str) !==0 && substr_compare($str, '\/', strlen($str)-1) ===0 && $v==='\/'){$/;" v -v .\lib\phprs\util\IoCFactory.php /^ $v = $this->getProperty($value);$/;" v -v .\lib\phprs\util\IoCFactory.php /^ $v = $this->getProperty($value);$/;" v -v .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $v = $arr ['1'];$/;" v -v .\payment\wechat\rights.php /^ $v = $data[$key];$/;" v -val .\framework\function\cache.mysql.func.php /^ $val = Sql::select('ims_interaction_core_cache.value')$/;" v -val .\framework\library\json\JSON.php /^ $val = $this->decode($parts[2]);$/;" v -val .\lib\phprs\util\IoCFactory.php /^ $val = $injector($src, $got);$/;" v -val .\lib\phprs\util\IoCFactoryEx.php /^ $val = $meta['cache'][$method]['value'];$/;" v -valid .\lib\phprs\util\CheckableCache.php /^ $valid = $checker($data, $create_time);$/;" v -valid .\lib\phprs\util\CheckableCache.php /^ $valid = false;$/;" v -valid .\lib\phprs\util\CheckableCache.php /^ $valid = false;$/;" v -valid .\lib\phprs\util\MetaInfo.php /^ private static $valid=array();$/;" v -valid_path .\lib\phprs\util\HttpRouterEntries.php /^ $valid_path=$value;$/;" v -valid_path .\lib\phprs\util\HttpRouterEntries.php /^ $valid_path=null;\/\/最深一个不为空的路径$/;" v -value .\framework\function\communication.func.php /^ $value = trim(substr($v, $pos + 1));$/;" v -value .\framework\library\json\JSON.php /^ * $value = $json->decode($input);$/;" v -value .\framework\library\json\JSON.php /^ * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));$/;" v -value .\lib\Doctrine\Common\Annotations\Annotation.php /^ public $value;$/;" v -value .\lib\Doctrine\Common\Annotations\Annotation\Attributes.php /^ public $value;$/;" v -value .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ $this->value = $values['value'];$/;" v -value .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ public $value;$/;" v -value .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ $this->value = $values['value'];$/;" v -value .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ public $value;$/;" v -value .\lib\Doctrine\Common\Annotations\DocLexer.php /^ $value = str_replace('""', '"', substr($value, 1, strlen($value) - 2));$/;" v -value .\lib\Doctrine\Common\Annotations\DocParser.php /^ $value = $this->Value();$/;" v -value .\lib\Peekmo\JsonPath\JsonPath.php /^ $value = $this->toObject($value);$/;" v -value .\lib\Peekmo\JsonPath\JsonStore.php /^ $value = json_decode($value, true);$/;" v -value .\lib\Peekmo\JsonPath\JsonStore.php /^ $value = json_encode($value);$/;" v -value .\lib\phprs\apis\ApiExporter.php /^ $value = $arg['value'];$/;" v -value .\lib\phprs\apis\ApiExporter.php /^ $value = json_encode($value);$/;" v -value .\lib\phprs\apis\ApiExporter.php /^ $value = $value[0];$/;" v -value .\lib\phprs\apis\ApiExporter.php /^ $value = $arg['value'];$/;" v -value .\lib\phprs\util\DocParser.php /^ $value = $this->MethodCall();$/;" v -value .\lib\phprs\util\DocParser.php /^ $value = $this->Value();$/;" v -value .\lib\phprs\util\IoCFactory.php /^ $value = str_replace('{'.$key.'}', $replace, $value);$/;" v -value .\payment\baifubao\bfb_sdk.php /^ $value = '';$/;" v -value .\payment\baifubao\bfb_sdk.php /^ $value = urldecode($value); }$/;" v -valueArr .\loginLib\qq\API\class\URL.class.php /^ $valueArr = array();$/;" v -values .\lib\Doctrine\Common\Annotations\DocParser.php /^ $values = $this->Values();$/;" v -values .\lib\Doctrine\Common\Annotations\DocParser.php /^ $values = $this->MethodCall();$/;" v -values .\lib\Doctrine\Common\Annotations\DocParser.php /^ $values = array($this->Value());$/;" v -values .\lib\Doctrine\Common\Annotations\DocParser.php /^ $values = array();$/;" v -values .\lib\Peekmo\JsonPath\JsonStore.php /^ $values = array_unique($values);$/;" v -values .\lib\Peekmo\JsonPath\JsonStore.php /^ $values = array();$/;" v -values .\lib\phprs\ezsql\impls.php /^ static public function values($context, $values){$/;" f -values .\lib\phprs\ezsql\rules\insert.php /^ public function values($values) {$/;" f -values .\lib\phprs\ezsql\rules\replace.php /^ public function values($values) {$/;" f -values .\lib\phprs\util\DocParser.php /^ $values = $this->Values();$/;" v -values .\lib\phprs\util\DocParser.php /^ $values = array($this->Value());$/;" v -values .\lib\phprs\util\DocParser.php /^ $values = array();$/;" v -var .\framework\function\global.func.php /^ $var = str_replace('&', '&', htmlspecialchars($var, ENT_QUOTES));$/;" v -var .\framework\function\global.func.php /^ $var = stripslashes($var);$/;" v -var .\lib\phprs\ezsql\impls.php /^ $var = array_values($v)[0];$/;" v -var .\lib\phprs\util\RedisCache.php /^ $var = serialize($var);$/;" v -vars .\framework\library\json\JSON.php /^ $vars = get_object_vars($var);$/;" v -ver_compare .\framework\function\global.func.php /^function ver_compare($version1, $version2) {$/;" f -verify .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function verify($params) {$/;" f -verifyPassword .\source\apis\Users.php /^ public function verifyPassword($account, $password){$/;" f -version1 .\framework\function\global.func.php /^ $version1 = intval($version1);$/;" v -version1 .\framework\function\global.func.php /^ $version1 = str_replace('.', '', $version1);$/;" v -version2 .\framework\function\global.func.php /^ $version2 = intval($version2);$/;" v -version2 .\framework\function\global.func.php /^ $version2 = str_replace('.', '', $version2);$/;" v -visit .\lib\phprs\util\Tree.php /^ public function visit( $path ,$vistor, $exact_match=false){$/;" f -visitNode .\lib\phprs\util\Tree.php /^ private function visitNode( $path, $vistor, $exact_match=false, $all_req_paths=false){$/;" f -visited .\lib\phprs\util\HttpRouterEntries.php /^ $visited = 0;$/;" v -vname .\lib\Peekmo\JsonPath\JsonPath.php /^ private function evalx($x, $v, $vname = null)$/;" v -wOpt .\framework\model\payment.mod.php /^ $wOpt = array();$/;" v -wOpt .\payment\wechat\pay.php /^$wOpt = wechat_build($params, $wechat);$/;" v -wa .\payment\resource\script\kindeditor\kindeditor-min.js /^\/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http:\/\/www.kindsoft.net\/license.php *\/(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;cnormalize($expr);$/;" v -x509data .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $x509data = $certs ['cert'];$/;" v -x509data .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $x509data = file_get_contents ( $cert_path );$/;" v -xa .\payment\resource\script\kindeditor\kindeditor-min.js /^"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&\/^\\d+$\/.test(a)?a+b:a}function t(a){var b;return a&&(b=\/(\\d+)\/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(\/&\/g,"&").replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,""")}function fa(a){return a.replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,'"').replace(\/&\/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+$/;" f -xa.C .\payment\resource\script\kindeditor\kindeditor-min.js /^"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&\/^\\d+$\/.test(a)?a+b:a}function t(a){var b;return a&&(b=\/(\\d+)\/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(\/&\/g,"&").replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,""")}function fa(a){return a.replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,'"').replace(\/&\/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+$/;" f -xa.s .\payment\resource\script\kindeditor\kindeditor-min.js /^"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&\/^\\d+$\/.test(a)?a+b:a}function t(a){var b;return a&&(b=\/(\\d+)\/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(\/&\/g,"&").replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,""")}function fa(a){return a.replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,'"').replace(\/&\/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+$/;" f -xa.t .\payment\resource\script\kindeditor\kindeditor-min.js /^"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&\/^\\d+$\/.test(a)?a+b:a}function t(a){var b;return a&&(b=\/(\\d+)\/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(\/&\/g,"&").replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,""")}function fa(a){return a.replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,'"').replace(\/&\/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+$/;" f -xml .\framework\model\payment.mod.php /^ $xml = @isimplexml_load_string($response['content'], 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v -xml2array .\framework\function\global.func.php /^function xml2array($xml) {$/;" f -xmlobj .\framework\function\global.func.php /^ $xmlobj = isimplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.8 // +ALIPAY_GATEWAY .\framework\model\payment.mod.php /^define('ALIPAY_GATEWAY', 'https:\/\/mapi.alipay.com\/gateway.do');$/;" d +APIMap .\loginLib\qq\API\class\QC.class.php /^ $this->APIMap = array($/;" v +AbstractLexer .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^abstract class AbstractLexer$/;" c +AccountConflict .\source\apis\Users.php /^class AccountConflict extends \\Exception$/;" c +AliasConflict .\source\apis\Users.php /^class AliasConflict extends \\Exception$/;" c +Annotation .\lib\Doctrine\Common\Annotations\Annotation.php /^class Annotation$/;" c +Annotation .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function Annotation()$/;" f +AnnotationCleaner .\lib\phprs\util\AnnotationCleaner.php /^class AnnotationCleaner$/;" c +AnnotationException .\lib\Doctrine\Common\Annotations\AnnotationException.php /^class AnnotationException extends \\Exception$/;" c +AnnotationReader .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^class AnnotationReader implements Reader$/;" c +AnnotationReader .\lib\phprs\util\AnnotationReader.php /^class AnnotationReader{$/;" c +AnnotationRegistry .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^final class AnnotationRegistry$/;" c +AnnotationTest .\lib\phprs\util\MetaInfo.php /^class AnnotationTest{$/;" c +Annotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function Annotations()$/;" f +Annotations .\lib\phprs\util\DocParser.php /^ private function Annotations($record_doc = false)$/;" f +ApcCache .\lib\phprs\util\ApcCache.php /^class ApcCache implements KVCatchInterface$/;" c +ApiExporter .\lib\phprs\apis\ApiExporter.php /^class ApiExporter$/;" c +Appport .\source\apis\appport.php /^class Appport$/;" c +ArrayEntry .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function ArrayEntry()$/;" f +ArrayEntry .\lib\phprs\util\DocParser.php /^ private function ArrayEntry()$/;" f +Arrayx .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function Arrayx()$/;" f +Arrayx .\lib\phprs\util\DocParser.php /^ private function Arrayx()$/;" f +Attribute .\lib\Doctrine\Common\Annotations\Annotation\Attribute.php /^final class Attribute$/;" c +Attributes .\lib\Doctrine\Common\Annotations\Annotation\Attributes.php /^final class Attributes$/;" c +AutoClassLoader .\lib\phprs\util\AutoClassLoader.php /^class AutoClassLoader{$/;" c +B .\payment\resource\script\kindeditor\kindeditor-min.js /^\/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http:\/\/www.kindsoft.net\/license.php *\/(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;cLog_Status = PhpLog::OPEN_FAILED;$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->Log_Status = PhpLog::LOG_OPEN;$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->Log_Status = PhpLog::OPEN_FAILED;$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ if ( $this->Log_Status == PhpLog::LOG_OPEN && $this->priority != PhpLog::OFF )$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ public $Log_Status = PhpLog::LOG_CLOSED;$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->Log_Status = PhpLog::OPEN_FAILED;$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->Log_Status = PhpLog::LOG_OPEN;$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->Log_Status = PhpLog::OPEN_FAILED;$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ if ( $this->Log_Status == PhpLog::LOG_OPEN && $this->priority != PhpLog::OFF )$/;" v +Log_Status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ public $Log_Status = PhpLog::LOG_CLOSED;$/;" v +Logger .\lib\phprs\util\Logger.php /^class Logger$/;" c +Login .\source\apis\login.php /^class Login {$/;" c +MAIN_DOMAIN .\loginLib\qq\test\comm\session.php /^define("MAIN_DOMAIN", ".webpluz.org"); $/;" d +MAIN_DOMAIN .\loginLib\qq\test\comm\session2.php /^define("MAIN_DOMAIN", ".oauth.com"); \/\/设置主域名$/;" d +Message .\source\apis\HelloWorld.php /^class Message{$/;" c +MessagePump .\lib\phprs\util\MessagePump.php /^class MessagePump$/;" c +MessageQueue .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->MessageQueue = array();$/;" v +MessageQueue .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ public $MessageQueue;$/;" v +MessageQueue .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->MessageQueue = array();$/;" v +MessageQueue .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ public $MessageQueue;$/;" v +MetaInfo .\lib\phprs\util\MetaInfo.php /^class MetaInfo$/;" c +MethodCall .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function MethodCall()$/;" f +MethodCall .\lib\phprs\util\DocParser.php /^ private function MethodCall()$/;" f +Native .\lib\phprs\ezsql\Native.php /^class Native$/;" c +NestedStringCut .\lib\phprs\util\NestedStringCut.php /^class NestedStringCut{$/;" c +NewThenInit .\lib\phprs\util\NewThenInit.php /^class NewThenInit$/;" c +NotFound .\lib\phprs\util\exceptions\NotFound.php /^class NotFound extends \\Exception$/;" c +ORDER_BY_ASC .\lib\phprs\ezsql\Sql.php /^ static public $ORDER_BY_ASC ='ASC';$/;" v +ORDER_BY_DESC .\lib\phprs\ezsql\Sql.php /^ static public $ORDER_BY_DESC ='DESC';$/;" v +Oauth .\loginLib\qq\API\class\Oauth.class.php /^class Oauth{$/;" c +Object .\payment\resource\script\kindeditor\kindeditor-min.js /^\/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http:\/\/www.kindsoft.net\/license.php *\/(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;c__impl__ = $factory->createRawObject('phprs\\\\util\\\\IoCContainer', [$/;" v +__impl__ .\lib\phprs\util\IoCFactoryEx.php /^ private $__impl__;$/;" v +__invoke .\lib\phprs\Invoker.php /^ public function __invoke($request, &$response)$/;" f +__invoke .\lib\phprs\Router.php /^ public function __invoke($request=null, &$respond=null){$/;" f +__invoke .\lib\phprs\RouterWithCache.php /^ function __invoke($request=null, &$respond=null){$/;" f +__invoke .\lib\phprs\util\FileExpiredChecker.php /^ public function __invoke($data, $create_time){$/;" f +__invoke .\lib\phprs\util\SerializableFunc.php /^ public function __invoke(){$/;" f +__isset .\lib\phprs\util\IoCFactoryEx.php /^ public function __isset ($name){$/;" f +__set .\lib\Doctrine\Common\Annotations\Annotation.php /^ public function __set($name, $value)$/;" f +__set .\lib\phprs\util\IoCFactoryEx.php /^ public function __set($name , $value ){$/;" f +__toString .\lib\phprs\ezsql\Native.php /^ public function __toString(){$/;" f +__unset .\lib\phprs\util\IoCFactoryEx.php /^ public function __unset ($name){$/;" f +__wakeup .\lib\phprs\util\AutoClassLoader.php /^ function __wakeup(){$/;" f +_applyAPI .\loginLib\qq\API\class\QC.class.php /^ private function _applyAPI($arr, $argsList, $baseUrl, $method){$/;" f +_callback_03 .\lib\Peekmo\JsonPath\JsonPath.php /^ private function _callback_03($m, $l, $x, $v, $p)$/;" f +_callback_04 .\lib\Peekmo\JsonPath\JsonPath.php /^ private function _callback_04($m, $l, $x, $v, $p)$/;" f +_callback_05 .\lib\Peekmo\JsonPath\JsonPath.php /^ private function _callback_05($m, $l, $x, $v, $p)$/;" f +_createDir .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private function _createDir($dir)$/;" f +_createDir .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private function _createDir($dir)$/;" f +a .\framework\function\global.func.php /^ $a = ($a + 1) % 256;$/;" v +a.encode .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f +a.getbyte .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f +a.getbyte64 .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f +a.makeDOMException .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f +aa .\framework\function\global.func.php /^ $aa = 'href="?' . http_build_query($_GET) . '"';$/;" v +aa .\framework\function\global.func.php /^ $aa = 'href="?' . str_replace('*', $i, $url) . '"';$/;" v +aa .\framework\function\global.func.php /^ $aa = 'href="javascript:;" page="' . $i . '" '. ($callbackfunc ? 'onclick="'.$callbackfunc.'(\\'' . $_W['script_name'] . $url . '\\', \\'' . $i . '\\', this);return false;"' : '');$/;" v +acc .\payment\alipay\notify.php /^ $acc = new coupon($log['acid']);$/;" v +acc .\payment\alipay\return.php /^ $acc = new coupon($log['acid']);$/;" v +acc .\payment\baifubao\notify.php /^ $acc = new coupon($log['acid']);$/;" v +acc .\payment\unionpay\notify.php /^ $acc = new coupon($log['acid']);$/;" v +acc .\payment\unionpay\pay.php /^ $acc = new coupon($log['acid']);$/;" v +acc .\payment\wechat\notify.php /^ $acc = new coupon($log['acid']);$/;" v +access_expire_date .\framework\model\user.mod.php /^ $access_expire_date = date("Y-m-d",strtotime("+30 day"));$/;" v +access_expire_time .\framework\model\user.mod.php /^ $access_expire_time = strtotime($access_expire_date);$/;" v +access_expire_time .\framework\model\user.mod.php /^ $access_expire_time = time();$/;" v +access_id .\framework\model\user.mod.php /^ $access_id = "gm_".random(13,false);$/;" v +access_id_exist .\framework\model\user.mod.php /^ $access_id_exist = "gm_".random(13,false);$/;" v +access_id_exist .\framework\model\user.mod.php /^ $access_id_exist = Sql::select('ims_interaction_users.sid')$/;" v +access_key .\framework\model\user.mod.php /^ $access_key = random(36,false);$/;" v +access_key_exist .\framework\model\user.mod.php /^ $access_key_exist = random(36,false);$/;" v +access_key_exist .\framework\model\user.mod.php /^ $access_key_exist = Sql::select('ims_interaction_users.sid')$/;" v +access_token .\source\apis\login.php /^ $access_token = $qc->qq_callback();$/;" v +account .\framework\class\weixin.account.class.php /^ $this->account = $account;$/;" v +account .\framework\class\weixin.account.class.php /^ protected $account = null;\/\/ 公众号信息$/;" v +account .\source\apis\login.php /^ $account = array();$/;" v +action .\lib\phprs\util\MessagePump.php /^ $action = array_pop($actions);$/;" v +action .\lib\phprs\util\MessagePump.php /^ $action = array($/;" v +action_queues .\lib\phprs\util\MessagePump.php /^ $this->action_queues = array();$/;" v +action_queues .\lib\phprs\util\MessagePump.php /^ private $action_queues = array(); \/\/ 执行队列$/;" v +actions .\lib\phprs\util\MessagePump.php /^ $actions = &$this->action_queues[$queue_id];$/;" v +add .\framework\function\communication.func.php /^ $add = strlen($eol);$/;" v +add .\lib\Peekmo\JsonPath\JsonStore.php /^ public function add($parentexpr, $value, $name = "")$/;" f +addClass .\lib\phprs\util\AutoClassLoader.php /^ public function addClass($name, $file){$/;" f +addClassMap .\lib\phprs\util\ClassLoader.php /^ static public function addClassMap($map, $replace=false){$/;" f +addGlobalIgnoredName .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ static public function addGlobalIgnoredName($name)$/;" f +addInclude .\lib\phprs\util\ClassLoader.php /^ static public function addInclude($path){$/;" f +addMapControl .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function addMapControl(){$/;" f +addNamespace .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function addNamespace($namespace)$/;" f +addNamespace .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function addNamespace($namespace)$/;" f +addRoutes .\lib\phprs\Router.php /^ public function addRoutes($apis_dir, $class=null, $method=null){$/;" f +addSpace .\lib\phprs\ezsql\SqlConetxt.php /^ public function appendSql($sql, $addSpace=true){$/;" v +aes_decode .\framework\function\global.func.php /^function aes_decode($message, $encodingaeskey = '', $appid = '') {$/;" f +aes_encode .\framework\function\global.func.php /^function aes_encode($message, $encodingaeskey = '', $appid = '') {$/;" f +alias .\lib\Doctrine\Common\Annotations\DocParser.php /^ $alias = (false === $pos = strpos($className, '\\\\')) ? $className : substr($className, 0, $pos);$/;" v +alias .\lib\Doctrine\Common\Annotations\DocParser.php /^ $alias = (false === $pos = strpos($name, '\\\\'))? $name : substr($name, 0, $pos);$/;" v +alias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $alias = $token[1];$/;" v +alias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $alias = '';$/;" v +alias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $alias = '';$/;" v +alias .\lib\phprs\util\DocParser.php /^ $alias = (false === $pos = strpos($className, '\\\\')) ? $className : substr($className, 0, $pos);$/;" v +alias .\source\apis\Users.php /^ public function updateUser($token, $alias=null, $password=null, $avatar=null ){$/;" v +alipay .\framework\model\payment.mod.php /^function alipay_build($params, $alipay = array()) {$/;" v +alipay .\payment\alipay\notify.php /^ $alipay = $setting['payment']['alipay'];$/;" v +alipay .\payment\alipay\return.php /^$alipay = $setting['payment']['alipay'];$/;" v +alipay_build .\framework\model\payment.mod.php /^function alipay_build($params, $alipay = array()) {$/;" f +all .\framework\function\global.func.php /^function media2local($media_id, $all = false){$/;" v +allowget .\framework\function\global.func.php /^function checksubmit($var = 'submit', $allowget = false) {$/;" v +already .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ first check if the class already exists, maybe loaded through another AnnotationReader$/;" c +amount_to_pad .\framework\function\global.func.php /^ $amount_to_pad = $block_size - ($text_length % $block_size);$/;" v +amount_to_pad .\framework\function\global.func.php /^ $amount_to_pad = $block_size;$/;" v +ann .\lib\phprs\apis\ApiExporter.php /^ $ann = new \\ReflectionClass($class_name);$/;" v +ann .\lib\phprs\apis\ApiExporter.php /^ $ann = new AnnotationReader();$/;" v +ann .\lib\phprs\util\MetaInfo.php /^ $ann = $ann[0];\/\/可能有多个重名的, 只取第一个$/;" v +ann .\lib\phprs\util\MetaInfo.php /^ $ann=$ann[0];\/\/可能有多个重名的, 只取第一个$/;" v +ann .\lib\phprs\util\MetaInfo.php /^ $ann=$ann[0];\/\/可能有多个重名的, 只取第一个$/;" v +annot .\lib\Doctrine\Common\Annotations\DocParser.php /^ if (false !== $annot = $this->Annotation()) {$/;" v +annot .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annot = $this->reader->getClassAnnotations($class);$/;" v +annot .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annot = $this->reader->getMethodAnnotations($method);$/;" v +annot .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annot = $this->reader->getPropertyAnnotations($property);$/;" v +annot .\lib\phprs\util\AnnotationReader.php /^ $annot = $annot[1];$/;" v +annot .\lib\phprs\util\AnnotationReader.php /^ $annot= $annot[1];$/;" v +annotation .\lib\Doctrine\Common\Annotations\Reader.php /^ * Gets a class annotation.$/;" c +annotationMetadata .\lib\Doctrine\Common\Annotations\DocParser.php /^ private static $annotationMetadata = array($/;" v +annotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $annotations = $this->preParser->parse($class->getDocComment(), 'class ' . $class->name);$/;" v +annotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $annotations = $this->getClassAnnotations($class);$/;" v +annotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $annotations = $this->getMethodAnnotations($method);$/;" v +annotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $annotations = $this->getPropertyAnnotations($property);$/;" v +annotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ $annotations = array();$/;" v +annotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annotations = $this->getClassAnnotations($class);$/;" v +annotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annotations = $this->getMethodAnnotations($method);$/;" v +annotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $annotations = $this->getPropertyAnnotations($property);$/;" v +annotations .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ $annotations = array();$/;" v +annotations .\lib\Doctrine\Common\Annotations\Reader.php /^ * the class annotations should be read.$/;" c +annotations .\lib\Doctrine\Common\Annotations\Reader.php /^ * the class annotations should be read.$/;" c +annotations .\lib\phprs\util\DocParser.php /^ $annotations = array();$/;" v +annots .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $annots = $this->delegate->getClassAnnotations($class);$/;" v +annots .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $annots = $this->delegate->getMethodAnnotations($method);$/;" v +annots .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $annots = $this->delegate->getPropertyAnnotations($property);$/;" v +annots .\lib\phprs\util\AnnotationReader.php /^ $annots = $this->parser->parse($method->getDocComment(), 'method '.$cn.'::'.$id.'()', $record_doc);$/;" v +annots .\lib\phprs\util\AnnotationReader.php /^ $annots = $this->parser->parse($property->getDocComment(), 'property '.$cn.'::$'.$id, $record_doc);$/;" v +annots .\lib\phprs\util\AnnotationReader.php /^ $annots = $this->parser->parse($class->getDocComment(), 'class '.$cn, $record_doc);$/;" v +anns .\lib\phprs\Container.php /^ $anns = $reader->getMethodAnnotations($method, false);$/;" v +anns .\lib\phprs\apis\ApiExporter.php /^ $anns = $ann->getMethodAnnotations($mrefl, true);$/;" v +api .\lib\phprs\Router.php /^ $api = $this->factory->create('phprs\\\\Container', array($class_name, $method), null, null);$/;" v +api .\lib\phprs\Router.php /^ $api = $this->factory->create('phprs\\\\Container', array($class_name, $method), null, null);$/;" v +api .\lib\phprs\Router.php /^ $api = null;$/;" v +api_method .\lib\phprs\Router.php /^ private $api_method=null;$/;" v +api_path .\lib\phprs\Router.php /^ private $api_path='apis';$/;" v +api_paths .\lib\phprs\Router.php /^ $api_paths = $api_path;$/;" v +api_paths .\lib\phprs\Router.php /^ $api_paths = array($api_path);$/;" v +api_root .\lib\phprs\Router.php /^ private $api_root=null;$/;" v +apis .\lib\phprs\Router.php /^ private $apis=null;$/;" v +apis .\lib\phprs\Router.php /^ public function load($api_path, $apis=null , $api_method=null){$/;" v +apis .\lib\phprs\apis\ApiExporter.php /^ $apis = $info[$class_name];$/;" v +apis .\lib\phprs\apis\ApiExporter.php /^ $apis = array();$/;" v +apis_dir .\lib\phprs\Router.php /^ $apis_dir = '';$/;" v +apis_dir .\lib\phprs\Router.php /^ $apis_dir=$apis_dir.'\/';$/;" v +apis_dir .\lib\phprs\Router.php /^ $apis_dir=$apis_dir.'\/';$/;" v +apiurl .\framework\class\weixin.account.class.php /^ $apiurl = "https:\/\/api.weixin.qq.com\/sns\/userinfo?access_token={$accesstoken}&openid={$openid}&lang=zh_CN";$/;" v +app .\framework\class\loader.class.php /^ function app($name) {$/;" f +append .\lib\phprs\Response.php /^ public function append($buffer){$/;" f +append .\lib\phprs\util\HttpRouterEntries.php /^ $append=function (&$str, $v){$/;" v +appendParams .\lib\phprs\ezsql\SqlConetxt.php /^ public function appendParams($params){$/;" f +appendSql .\lib\phprs\ezsql\SqlConetxt.php /^ public function appendSql($sql, $addSpace=true){$/;" f +appid .\loginLib\qq\API\class\Oauth.class.php /^ $appid = $this->recorder->readInc("appid");$/;" v +arg .\lib\phprs\apis\ApiExporter.php /^ $arg = $return['args'][0];$/;" v +arg .\lib\phprs\apis\ApiExporter.php /^ $arg = $return['args'][1];$/;" v +arg_separator .\framework\function\compat.func.php /^ $arg_separator = '&';$/;" v +args .\lib\Peekmo\JsonPath\JsonPath.php /^ public function jsonPath(&$obj, $expr, $args = null, $create=false, $default=null)$/;" v +args .\lib\phprs\Invoker.php /^ $args = array();$/;" v +args .\lib\phprs\apis\ApiExporter.php /^ $args = array();$/;" v +args .\lib\phprs\apis\ApiExporter.php /^ $args = array();$/;" v +args .\lib\phprs\apis\ApiExporter.php /^ $args = $return['args'];$/;" v +args .\lib\phprs\ezsql\Sql.php /^ $args = ['*'];$/;" v +args .\lib\phprs\ezsql\Sql.php /^ $args = func_get_args();$/;" v +args .\lib\phprs\ezsql\impls.php /^ $args = $newArgs;$/;" v +args .\lib\phprs\ezsql\impls.php /^ static public function conditionArgs($context, $prefix, $args=[]){$/;" v +args .\lib\phprs\util\IoCFactory.php /^ $args = array();$/;" v +args .\lib\phprs\util\SerializableFunc.php /^ $args = func_get_args();$/;" v +argsList .\loginLib\qq\API\class\QC.class.php /^ $argsList = $this->APIMap[$name][1];$/;" v +arr .\framework\library\json\JSON.php /^ $arr = array();$/;" v +arr .\lib\phprs\util\Tree.php /^ private $arr=array();$/;" v +arr .\loginLib\qq\API\class\QC.class.php /^ $arr = array();$/;" v +arr .\loginLib\qq\test\photo\add_album.php /^$arr = $qc->add_album($_POST);$/;" v +arr .\loginLib\qq\test\photo\list_album.php /^$arr = $qc->list_album();$/;" v +arr .\loginLib\qq\test\photo\upload_pic.php /^$arr = $qc->list_album();$/;" v +arr .\loginLib\qq\test\photo\upload_pic_p.php /^$arr = $qc->upload_pic($_POST);$/;" v +arr .\loginLib\qq\test\user\get_user_info.php /^$arr = $qc->get_user_info();$/;" v +arr .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $arr = preg_split ( '\/=\/', $val, 2 );$/;" v +arr_params .\payment\baifubao\bfb_sdk.php /^ $arr_params = $_GET;$/;" v +arr_temp .\payment\baifubao\bfb_sdk.php /^ $arr_temp = array ();$/;" v +array .\framework\function\global.func.php /^ $array = array_change_key_case($array, $case);$/;" v +array .\lib\Doctrine\Common\Annotations\DocParser.php /^ $array = $values = array();$/;" v +array .\lib\phprs\util\DocParser.php /^ $array = $values = array();$/;" v +array2xml .\framework\function\global.func.php /^function array2xml($arr, $level = 1) {$/;" f +arrayType .\lib\Doctrine\Common\Annotations\DocParser.php /^ $arrayType = self::$typeMap[$arrayType];$/;" v +arrayType .\lib\Doctrine\Common\Annotations\DocParser.php /^ $arrayType = substr($type, $pos + 1, -1);$/;" v +arrayType .\lib\Doctrine\Common\Annotations\DocParser.php /^ $arrayType = substr($type, 0, $pos);$/;" v +array_elements .\framework\function\global.func.php /^function array_elements($keys, $src, $default = FALSE) {$/;" f +asDict .\lib\phprs\ezsql\rules\select.php /^ public function get($db, $asDict=false,$errExce=true) {$/;" v +asDict .\source\apis\Users.php /^ public function getUserByIds($uids, $asDict=false) {$/;" v +asPath .\lib\Peekmo\JsonPath\JsonPath.php /^ private function asPath($path)$/;" f +ascii .\framework\library\json\JSON.php /^ $ascii = '';$/;" v +attribute .\lib\Doctrine\Common\Annotations\DocParser.php /^ $attribute = new Attribute();$/;" v +attributeTypeError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function attributeTypeError($attributeName, $annotationName, $context, $expected, $actual)$/;" f +auth .\payment\baifubao\pay.php /^$auth = sha1($sl . $paylog['uniacid'] . $_W['config']['setting']['authkey']);$/;" v +auth .\payment\unionpay\pay.php /^$auth = sha1($sl . $paylog['uniacid'] . $_W['config']['setting']['authkey']);$/;" v +auth .\payment\wechat\pay.php /^$auth = sha1($sl . 'youle123456');$/;" v +auth .\source\apis\pay.php /^ $auth = sha1($sl . 'youle123456');$/;" v +authcode .\framework\function\global.func.php /^function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {$/;" f +autoLoad .\lib\phprs\util\ClassLoader.php /^ static public function autoLoad($classname){$/;" f +auto_bind_return .\lib\phprs\BindReturns.php /^ $this->auto_bind_return = $auto_bind_return;$/;" v +auto_bind_return .\lib\phprs\BindReturns.php /^ private $auto_bind_return;$/;" v +auto_bind_return .\lib\phprs\BindReturns.php /^ public function __construct($class_name, $method_name, $auto_bind_return=true){$/;" v +autoloadNamespaces .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static private $autoloadNamespaces = array();$/;" v +avatar .\source\apis\Users.php /^ $avatar = $this->uploadAvatar($avatar);$/;" v +avatar .\source\apis\Users.php /^ $avatar = '';$/;" v +avatar .\source\apis\Users.php /^ public function createUser(&$uid, $token, $account, $alias, $password, $avatar = null){$/;" v +b.decode .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f +baseUrl .\loginLib\qq\API\class\QC.class.php /^ $baseUrl = $this->APIMap[$name][0];$/;" v +baseUserInfo .\source\apis\login.php /^ $baseUserInfo = $weixin->fansQueryInfo($userinfo['openid'],$this->db,$pdo);$/;" v +baseUserInfo .\source\apis\login.php /^ $baseUserInfo = $weixin->fansQueryInfo($oauth['openid'],$this->db,$pdo);$/;" v +bfb_sdk .\payment\baifubao\bfb_sdk.php /^class bfb_sdk{$/;" c +bfb_sdk .\payment\baifubao\notify.php /^$bfb_sdk = new bfb_sdk();$/;" v +bfb_sdk .\payment\baifubao\pay.php /^ $bfb_sdk = new bfb_sdk();$/;" v +bfb_sdk .\payment\baifubao\pay.php /^$bfb_sdk = new bfb_sdk();$/;" v +bind .\lib\phprs\BindParams.php /^ public function bind($req, &$res, &$args){$/;" f +bind .\lib\phprs\BindReturns.php /^ public function bind($req, &$res, &$args)$/;" f +bind .\lib\phprs\BindThrows.php /^ public function bind($req, &$res, $e)$/;" f +bind .\lib\phprs\Invoker.php /^ $this->bind = array($/;" v +bind .\lib\phprs\Invoker.php /^ private $bind = array();$/;" v +bind .\lib\phprs\Invoker.php /^ public function bind($id, $type, $param)$/;" f +bind .\lib\phprs\util\SerializableFunc.php /^ $this->bind = array_slice($args,1);$/;" v +bind .\lib\phprs\util\SerializableFunc.php /^ private $bind;$/;" v +bitmask .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ $bitmask = 0;$/;" v +block_size .\framework\function\global.func.php /^ $block_size = 32;$/;" v +body .\framework\function\communication.func.php /^ $body = http_build_query($post);$/;" v +body .\framework\function\communication.func.php /^ $body = urlencode($post);$/;" v +body .\framework\function\communication.func.php /^ $body = '';$/;" v +body .\lib\phprs\apis\ApiExporter.php /^ $body = $body . '&';$/;" v +body .\lib\phprs\apis\ApiExporter.php /^ $body = "$body$name=[$arg_name]";$/;" v +body .\lib\phprs\apis\ApiExporter.php /^ $body = "{$body}[$arg_name]";$/;" v +body .\lib\phprs\apis\ApiExporter.php /^ $body = '';$/;" v +body .\lib\phprs\apis\ApiExporter.php /^ $body = '';$/;" v +body .\lib\phprs\apis\ApiExporter.php /^ $body = '';$/;" v +body .\lib\phprs\apis\ApiExporter.php /^ $body = '
        ';$/;" v +body .\lib\phprs\apis\ApiExporter.php /^ $body = self::$css;$/;" v +box .\framework\function\global.func.php /^ $box = range(0, 255);$/;" v +brace .\framework\function\global.func.php /^ $brace = strpos($data, '}');$/;" v +break .\lib\phprs\Router.php /^ $break = false;$/;" v +buffer .\lib\phprs\Response.php /^ $this->buffer = $buffer;$/;" v +buffer .\lib\phprs\Response.php /^ $this->buffer = array();$/;" v +buffer .\lib\phprs\Response.php /^ private $buffer = array();$/;" v +buildConstructArgs .\lib\phprs\util\IoCFactory.php /^ private function buildConstructArgs($class, $properties){ $/;" f +bytes .\framework\library\json\JSON.php /^ $bytes = (ord($utf16{0}) << 8) | ord($utf16{1});$/;" v +c.toString .\payment\alipay\ap.js /^(function(){var b={};var a={};a.PADCHAR="=";a.ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/";a.makeDOMException=function(){var f,d;try{return new DOMException(DOMException.INVALID_CHARACTER_ERR)}catch(d){var c=new Error("DOM Exception 5");c.code=c.number=5;c.name=c.description="INVALID_CHARACTER_ERR";c.toString=function(){return"Error: "+c.name+": "+c.message};return c}};a.getbyte64=function(e,d){var c=a.ALPHA.indexOf(e.charAt(d));if(c===-1){throw a.makeDOMException()}return c};a.decode=function(f){f=""+f;var j=a.getbyte64;var h,e,g;var d=f.length;if(d===0){return f}if(d%4!==0){throw a.makeDOMException()}h=0;if(f.charAt(d-1)===a.PADCHAR){h=1;if(f.charAt(d-2)===a.PADCHAR){h=2}d-=4}var c=[];for(e=0;e>16,(g>>8)&255,g&255))}switch(h){case 1:g=(j(f,e)<<18)|(j(f,e+1)<<12)|(j(f,e+2)<<6);c.push(String.fromCharCode(g>>16,(g>>8)&255));break;case 2:g=(j(f,e)<<18)|(j(f,e+1)<<12);c.push(String.fromCharCode(g>>16));break}return c.join("")};a.getbyte=function(e,d){var c=e.charCodeAt(d);if(c>255){throw a.makeDOMException()}return c};a.encode=function(f){if(arguments.length!==1){throw new SyntaxError("Not enough arguments")}var g=a.PADCHAR;var h=a.ALPHA;var k=a.getbyte;var e,j;var c=[];f=""+f;var d=f.length-f.length%3;if(f.length===0){return f}for(e=0;e>18));c.push(h.charAt((j>>12)&63));c.push(h.charAt((j>>6)&63));c.push(h.charAt(j&63))}switch(f.length-d){case 1:j=k(f,e)<<16;c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+g+g);break;case 2:j=(k(f,e)<<16)|(k(f,e+1)<<8);c.push(h.charAt(j>>18)+h.charAt((j>>12)&63)+h.charAt((j>>6)&63)+g);break}return c.join("")};b.pay=function(d){var c=encodeURIComponent(a.encode(d));location.href="..\/payment\/alipay\/pay.htm?goto="+c};b.decode=function(c){return a.decode(decodeURIComponent(c))};window._AP=b})();/;" f +cache .\framework\class\loader.class.php /^ private $cache = array();$/;" v +cache .\framework\class\weixin.account.class.php /^ $cache = cache_load($cachekey,$db);$/;" v +cache .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $this->cache = $cache;$/;" v +cache .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private $cache;$/;" v +cache .\lib\phprs\Invoker.php /^ private $cache=null;$/;" v +cache .\lib\phprs\RouterWithCache.php /^ private $cache;$/;" v +cache .\lib\phprs\util\AnnotationReader.php /^ private $cache=array() ;$/;" v +cache .\lib\phprs\util\IoCFactory.php /^ $cache = new Cache();$/;" v +cache .\lib\phprs\util\IoCFactory.php /^ static $cache = null;$/;" v +cache .\lib\phprs\util\IoCFactoryEx.php /^ private $cache;$/;" v +cacheKey .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $cacheKey = $class->getName().'#'.$method->getName();$/;" v +cacheKey .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $cacheKey = $class->getName().'$'.$property->getName();$/;" v +cacheKey .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $cacheKey = $class->getName();$/;" v +cacheKey .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $cacheKey = $rawCacheKey . self::$CACHE_SALT;$/;" v +cache_build_accesstoken .\framework\model\cache.mod.php /^function cache_build_accesstoken() {$/;" f +cache_build_account .\framework\model\cache.mod.php /^function cache_build_account() {$/;" f +cache_build_account_modules .\framework\model\cache.mod.php /^function cache_build_account_modules() {$/;" f +cache_build_account_outapps .\framework\model\cache.mod.php /^function cache_build_account_outapps() {$/;" f +cache_build_frame_menu .\framework\model\cache.mod.php /^function cache_build_frame_menu() {$/;" f +cache_build_module_subscribe_type .\framework\model\cache.mod.php /^function cache_build_module_subscribe_type() {$/;" f +cache_build_platform .\framework\model\cache.mod.php /^function cache_build_platform() {$/;" f +cache_build_setting .\framework\model\cache.mod.php /^function cache_build_setting() {$/;" f +cache_build_template .\framework\model\cache.mod.php /^function cache_build_template() {$/;" f +cache_build_users_struct .\framework\model\cache.mod.php /^function cache_build_users_struct() {$/;" f +cache_check .\lib\phprs\Invoker.php /^ $cache_check = $param;$/;" v +cache_check .\lib\phprs\Invoker.php /^ $cache_check = null;$/;" v +cache_clean .\framework\function\cache.mysql.func.php /^function cache_clean($prefix = '') {$/;" f +cache_delete .\framework\function\cache.mysql.func.php /^function cache_delete($key) {$/;" f +cache_dir .\lib\phprs\util\FileCache.php /^ $this->cache_dir = $cache_dir;$/;" v +cache_dir .\lib\phprs\util\FileCache.php /^ $this->cache_dir = sys_get_temp_dir().'\/caoym_temp';$/;" v +cache_dir .\lib\phprs\util\FileCache.php /^ private $cache_dir;$/;" v +cache_global .\framework\function\cache.func.php /^function &cache_global($key) {$/;" f +cache_key .\lib\phprs\Invoker.php /^ $cache_key = "invoke_{$this->ins->class}_{$this->method_name}_" . sha1(serialize($args).serialize($injected).$cache_ttl);$/;" v +cache_key .\lib\phprs\Invoker.php /^ $cache_key = null;$/;" v +cache_key .\lib\phprs\util\IoCFactory.php /^ $cache_key = 'meta_'.sha1($refl->getFileName().'\/'.$name);$/;" v +cache_load .\framework\function\cache.func.php /^function cache_load($key, $db,$unserialize = false) {$/;" f +cache_read .\framework\function\cache.mysql.func.php /^function cache_read($key,$db) {$/;" f +cache_res .\lib\phprs\Invoker.php /^ $cache_res = new Response(array($/;" v +cache_search .\framework\function\cache.mysql.func.php /^function cache_search($prefix,$db) {$/;" f +cache_ttl .\lib\phprs\Invoker.php /^ $cache_ttl = $param;$/;" v +cache_ttl .\lib\phprs\Invoker.php /^ $cache_ttl = 0;$/;" v +cache_write .\framework\function\cache.mysql.func.php /^function cache_write($key, $data,$db,$pdo) {$/;" f +cachedMethods .\lib\phprs\util\IoCFactoryEx.php /^ private $cachedMethods=[];$/;" v +cachekey .\framework\class\weixin.account.class.php /^ $cachekey = "accesstoken:{$this->account['acid']}";$/;" v +cachekey .\framework\class\weixin.account.class.php /^ $cachekey = "accesstoken:{$this->account['key']}";$/;" v +callAction .\lib\phprs\util\MessagePump.php /^ private function callAction($queue_id, $action){$/;" f +callThroughCache .\lib\phprs\util\IoCFactoryEx.php /^ public function callThroughCache($method, $arguments){$/;" f +callback .\loginLib\qq\API\class\Oauth.class.php /^ $callback = $this->recorder->readInc("callback");$/;" v +callback .\source\apis\login.php /^ $callback = urlencode($url);$/;" v +callback .\source\apis\login.php /^ $callback = "http:\/\/api.tscce.cn\/api\/login\/weixin\/callback";$/;" v +caller .\lib\phprs\util\Logger.php /^ $caller = debug_backtrace()[2];$/;" v +can .\lib\Doctrine\Common\Annotations\DocParser.php /^ throw AnnotationException::semanticalError(sprintf('The class "%s" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "%s". If it is indeed no annotation, then you need to add @IgnoreAnnotation("%s") to the _class_ doc comment of %s.', $name, $name, $originalName, $this->context));$/;" c +case .\framework\function\global.func.php /^function iarray_change_key_case($array, $case = CASE_LOWER){$/;" v +cert_dir .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_dir = SDK_VERIFY_CERT_DIR;$/;" v +cert_id .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_id = $certdata ['serialNumber'];$/;" v +cert_path .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_path = SDK_SIGN_CERT_PATH;$/;" v +cert_path .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_path = MPI_ENCRYPT_CERT_PATH;$/;" v +cert_path .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $cert_path = SDK_ENCRYPT_CERT_PATH;$/;" v +certdata .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $certdata = openssl_x509_parse ( $x509data );$/;" v +ch .\framework\function\communication.func.php /^ $ch = curl_init();$/;" v +ch .\lib\phprs\util\Curl.php /^ $this->ch = curl_init();$/;" v +ch .\lib\phprs\util\Curl.php /^ private $ch;$/;" v +ch .\loginLib\qq\API\class\URL.class.php /^ $ch = curl_init();$/;" v +ch .\loginLib\qq\API\class\URL.class.php /^ $ch = curl_init();$/;" v +ch .\loginLib\qq\API\comm\utils.php /^ $ch = curl_init();$/;" v +ch .\loginLib\qq\test\comm\utils.php /^ $ch = curl_init();$/;" v +ch .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ $ch = curl_init ();$/;" v +ch .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^ $ch = curl_init ();$/;" v +char .\framework\library\json\JSON.php /^ $char = pack('C*', $ord_var_c, ord($var{$c + 1}));$/;" v +char .\framework\library\json\JSON.php /^ $char = pack('C*', $ord_var_c,$/;" v +charset .\framework\function\global.func.php /^ $charset = $_W['charset'];$/;" v +charset .\framework\function\global.func.php /^ $charset = 'gbk';$/;" v +charset .\framework\function\global.func.php /^ $charset = 'utf8';$/;" v +charset .\framework\function\global.func.php /^function istrlen($string, $charset = '') {$/;" v +check .\framework\function\communication.func.php /^ $check = trim($tmp);$/;" v +check .\lib\phprs\Invoker.php /^ public function check()$/;" f +checkAbleCache .\lib\phprs\Invoker.php /^ $this->checkAbleCache = $this->factory->create('phprs\\util\\Cache');$/;" v +checkAbleCache .\lib\phprs\Invoker.php /^ $this->checkAbleCache = new CheckableCache($this->cache);$/;" v +checkAbleCache .\lib\phprs\Invoker.php /^ private $checkAbleCache;$/;" v +checkSign .\payment\wechat\rights.php /^function checkSign($data) {$/;" f +check_bfb_pay_result_notify .\payment\baifubao\bfb_sdk.php /^ function check_bfb_pay_result_notify() {$/;" f +check_dirs .\lib\phprs\RouterWithCache.php /^ $check_dirs=array();$/;" v +check_files .\lib\phprs\RouterWithCache.php /^ $check_files = array_merge($check_files, $check_dirs);$/;" v +check_files .\lib\phprs\RouterWithCache.php /^ $check_files = array_values($this->impl->getApiFiles());$/;" v +check_sign .\payment\baifubao\bfb_sdk.php /^ private function check_sign($params) {$/;" f +checkcaptcha .\framework\function\global.func.php /^function checkcaptcha($code) {$/;" f +checksubmit .\framework\function\global.func.php /^function checksubmit($var = 'submit', $allowget = false) {$/;" f +childs .\framework\model\cache.mod.php /^ $childs = pdo_fetchall('SELECT * FROM ' . tablename('core_menu') . ' WHERE pid = :pid AND is_display = 1 ORDER BY is_system DESC, displayorder DESC, id ASC', array(':pid' => $da['id']));$/;" v +chrs .\framework\library\json\JSON.php /^ $chrs = substr_replace($chrs, ' ', $i, 1);$/;" v +chrs .\framework\library\json\JSON.php /^ $chrs = $this->reduce_string($chrs);$/;" v +chrs .\framework\library\json\JSON.php /^ $chrs = substr($str, 1, -1);$/;" v +chunked .\framework\function\communication.func.php /^function ihttp_response_parse($data, $chunked = false) {$/;" v +cindex .\framework\function\global.func.php /^ $cindex = $pageIndex;$/;" v +cindex .\framework\function\global.func.php /^ $cindex = max($cindex, 1);$/;" v +cindex .\framework\function\global.func.php /^ $cindex = min($cindex, $pdata['tpage']);$/;" v +ciphertext_dec .\framework\function\global.func.php /^ $ciphertext_dec = base64_decode($message);$/;" v +ckey_length .\framework\function\global.func.php /^ $ckey_length = 4;$/;" v +class .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $class = $method->getDeclaringClass();$/;" v +class .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $class = $property->getDeclaringClass();$/;" v +class .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $class = $method->getDeclaringClass();$/;" v +class .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $class = $property->getDeclaringClass();$/;" v +class .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $class = $method->getDeclaringClass();$/;" v +class .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $class = $property->getDeclaringClass();$/;" v +class .\lib\Doctrine\Common\Annotations\DocParser.php /^ $class = new \\ReflectionClass($name);$/;" v +class .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $class = $method->getDeclaringClass();$/;" v +class .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $class = $property->getDeclaringClass();$/;" v +class .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $class = '';$/;" v +class .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $class = '';$/;" v +class .\lib\phprs\Container.php /^ $this->class = $class;$/;" v +class .\lib\phprs\Container.php /^ public $class;$/;" v +class .\lib\phprs\Router.php /^ if(is_dir($apis_dir) && $class === null){$/;" v +class .\lib\phprs\Router.php /^ public function addRoutes($apis_dir, $class=null, $method=null){$/;" v +class .\lib\phprs\util\IoCFactory.php /^ $class = $this->conf[$id];$/;" v +classExists .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $classExists = array();$/;" v +classExists .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function classExists($fqcn)$/;" f +classIdentifiers .\lib\Doctrine\Common\Annotations\DocParser.php /^ private static $classIdentifiers = array($/;" v +classIdentifiers .\lib\phprs\util\DocParser.php /^ private static $classIdentifiers = array($/;" v +classImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $classImports = $this->getClassImports($class);$/;" v +className .\lib\Doctrine\Common\Annotations\DocParser.php /^ $className = $ns.'\\\\'.$className;$/;" v +className .\lib\Doctrine\Common\Annotations\DocParser.php /^ $className = $ns.'\\\\'.$className;$/;" v +className .\lib\Doctrine\Common\Annotations\DocParser.php /^ $className = (false !== $pos)$/;" v +className .\lib\Doctrine\Common\Annotations\DocParser.php /^ $className = $this->lexer->token['value'];$/;" v +className .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $className = get_class($this);$/;" v +className .\lib\phprs\util\DocParser.php /^ $className = $ns.'\\\\'.$className;$/;" v +className .\lib\phprs\util\DocParser.php /^ $className = $ns.'\\\\'.$className;$/;" v +className .\lib\phprs\util\DocParser.php /^ $className = (false !== $pos)$/;" v +className .\lib\phprs\util\DocParser.php /^ $className = $this->lexer->token['value'];$/;" v +classNameHashes .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $classNameHashes = array();$/;" v +classPos .\lib\Doctrine\Common\Annotations\DocParser.php /^ $classPos = stripos($identifier, '::class');$/;" v +classPos .\lib\phprs\util\DocParser.php /^ $classPos = stripos($identifier, '::class');$/;" v +class_ann .\lib\phprs\Container.php /^ $class_ann = $reader->getClassAnnotations($reflection);$/;" v +class_defaults .\lib\phprs\util\IoCFactory.php /^ $class_defaults = $refl->getDefaultProperties();$/;" v +class_loader .\lib\phprs\Router.php /^ $this->class_loader = new AutoClassLoader();$/;" v +class_loader .\lib\phprs\Router.php /^ private $class_loader; \/\/用于确保反序列化时自动加载类文件$/;" v +class_map .\lib\phprs\util\ClassLoader.php /^ static public $class_map=array();$/;" v +class_name .\framework\function\global.func.php /^function isimplexml_load_string($string, $class_name = 'SimpleXMLElement', $options = 0, $ns = '', $is_prefix = false) {$/;" v +class_name .\lib\phprs\BindParams.php /^ $this->class_name = $class_name;$/;" v +class_name .\lib\phprs\BindParams.php /^ private $class_name;$/;" v +class_name .\lib\phprs\BindReturns.php /^ $this->class_name = $class_name;$/;" v +class_name .\lib\phprs\BindReturns.php /^ private $class_name;$/;" v +class_name .\lib\phprs\BindThrows.php /^ $this->class_name = $class_name;$/;" v +class_name .\lib\phprs\BindThrows.php /^ private $class_name;$/;" v +class_name .\lib\phprs\Router.php /^ $class_name = substr($entry, 0, strlen($entry)-4);$/;" v +class_name .\lib\phprs\apis\ApiExporter.php /^ $class_name = implode('\\\\', $class_name);$/;" v +class_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($apis as $class_name => &$info) {$/;" v +class_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($info as $class_name => $apis) {$/;" v +class_name .\lib\phprs\util\IoCFactory.php /^ $class_name = $refl->getName();$/;" v +class_name .\lib\phprs\util\IoCFactory.php /^ $class_name = $this->getClassName($id);$/;" v +class_refl .\lib\phprs\util\IoCFactory.php /^ $class_refl = new \\ReflectionClass($class_name);$/;" v +classs .\framework\class\loader.class.php /^ function classs($name) {$/;" f +clean .\lib\phprs\util\AnnotationCleaner.php /^ static public function clean($text) {$/;" f +clean_ .\lib\phprs\util\AnnotationCleaner.php /^ private function clean_($text) {$/;" f +clear .\lib\phprs\Response.php /^ public function clear(){$/;" f +clearAnnotation .\lib\phprs\util\IoCFactory.php /^ static public function clearAnnotation($text){$/;" f +clearLoadedAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function clearLoadedAnnotations()$/;" f +clearLoadedAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function clearLoadedAnnotations()$/;" f +close .\loginLib\qq\test\comm\session.php /^ function close() $/;" f +close .\loginLib\qq\test\comm\session2.php /^ function close() $/;" f +closeChildWindow .\loginLib\qq\test\index.html /^ function closeChildWindow()$/;" f +closeQueue .\lib\phprs\util\MessagePump.php /^ public function closeQueue($queue_id)$/;" f +closer .\lib\Peekmo\JsonPath\JsonPath.php /^ $closer = $pos;$/;" v +closer .\lib\Peekmo\JsonPath\JsonPath.php /^ $closer = 10000;$/;" v +cn .\lib\phprs\util\AnnotationReader.php /^ $cn = $class->getName();$/;" v +cn .\lib\phprs\util\AnnotationReader.php /^ $cn = $method->getDeclaringClass()->getName();$/;" v +cn .\lib\phprs\util\AnnotationReader.php /^ $cn = $property->getDeclaringClass()->getName();$/;" v +cnst .\lib\phprs\util\NewThenInit.php /^ $cnst = $this->refl->getConstructor();$/;" v +code .\framework\class\weixin.account.class.php /^ $code = strval($code);$/;" v +code .\framework\class\weixin.account.class.php /^ if($code == '40001' || $code == '42001') {$/;" v +code .\framework\library\json\JSON.php /^ function Services_JSON_Error($message = 'unknown error', $code = null,$/;" v +code .\framework\library\json\JSON.php /^ function isError($data, $code = null)$/;" v +codehash .\framework\function\global.func.php /^ $codehash = md5(strtolower($code) . $_W['config']['setting']['authkey']);$/;" v +codehash .\framework\function\global.func.php /^ if (!empty($_GPC['__code']) && $codehash == $_SESSION['__code']) {$/;" v +collectAnnotationMetadata .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function collectAnnotationMetadata($name)$/;" f +collectAttributeTypeMetadata .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function collectAttributeTypeMetadata(&$metadata, Attribute $attribute)$/;" f +collectParsingMetadata .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function collectParsingMetadata(ReflectionClass $class)$/;" f +column .\source\apis\cloud.php /^ $column = (int)$column;$/;" v +columnKey .\source\apis\cloud.php /^ $columnKey=="t3" || $columnKey=="t4" || $columnKey=="t5" || $/;" v +columnKey .\source\apis\cloud.php /^ $columnKey=="t6" || $columnKey=="t7" || $columnKey=="t8" || $/;" v +columnKey .\source\apis\cloud.php /^ $columnKey=="t9" || $columnKey=="id" || $columnKey=="weid") {$/;" v +columnKey .\source\apis\cloud.php /^ foreach ($row as $columnKey => &$column) {$/;" v +columnKey .\source\apis\cloud.php /^ if ( $columnKey=="t1" || $columnKey=="t2" || $/;" v +columnKey .\source\apis\cloud.php /^ foreach ($row as $columnKey => &$column) {$/;" v +columns .\lib\phprs\ezsql\impls.php /^ $columns = implode(',', array_keys($values));$/;" v +combineURL .\loginLib\qq\API\class\URL.class.php /^ public function combineURL($baseURL,$keysArr){$/;" f +combined .\loginLib\qq\API\class\URL.class.php /^ $combined = $baseURL."?";$/;" v +combined .\loginLib\qq\API\class\URL.class.php /^ $combined = $this->combineURL($url, $keysArr);$/;" v +cond .\lib\phprs\ezsql\impls.php /^ $cond = "$cond ".strval($var[0]);$/;" v +cond .\lib\phprs\ezsql\impls.php /^ $cond = "$cond ?";$/;" v +cond .\lib\phprs\ezsql\impls.php /^ $cond = "$cond AND ".strval($var[1]);$/;" v +cond .\lib\phprs\ezsql\impls.php /^ $cond = "$cond AND ?";$/;" v +cond .\lib\phprs\ezsql\impls.php /^ $cond = "$k BETWEEN";$/;" v +condition .\lib\phprs\ezsql\impls.php /^ static public function condition($context, $prefix, $expr, $args){$/;" f +condition .\source\apis\cloud.php /^ $condition = ' 1=1 ';$/;" v +condition .\source\apis\cloud.php /^ $condition = array();$/;" v +conditionArgs .\lib\phprs\ezsql\impls.php /^ static public function conditionArgs($context, $prefix, $args=[]){$/;" f +conditionStr .\source\apis\cloud.php /^ $conditionStr = " id= ".$where_id;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " outappid= '".$outappid."'";$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t1= ".$where_t1;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t2= ".$where_t2;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t3= ".$where_t3;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t4= ".$where_t4;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t5= ".$where_t5;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t6= ".$where_t6;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t7= ".$where_t7;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t8= ".$where_t8;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " t9= ".$where_t9;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " typeid= '".$where_typeid."'";$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = " weid= ".$where_weid;$/;" v +conditionStr .\source\apis\cloud.php /^ $conditionStr = "";$/;" v +conf .\lib\phprs\util\IoCFactory.php /^ $this->conf = include($conf);$/;" v +conf .\lib\phprs\util\IoCFactory.php /^ $this->conf = $conf;$/;" v +conf .\lib\phprs\util\IoCFactory.php /^ $this->conf = $this->replaceByDict($this->conf, $dict);$/;" v +conf .\lib\phprs\util\IoCFactory.php /^ $this->conf = array();$/;" v +conf .\lib\phprs\util\IoCFactory.php /^ protected $conf = null;$/;" v +conf_file .\lib\phprs\util\IoCFactory.php /^ $this->conf_file = $conf;$/;" v +conf_file .\lib\phprs\util\IoCFactory.php /^ protected $conf_file;$/;" v +config .\framework\function\communication.func.php /^ $config = $row['notify']['mail'];$/;" v +config .\framework\function\communication.func.php /^ $config = $GLOBALS['_W']['setting']['mail'];$/;" v +connect .\lib\phprs\util\RedisCache.php /^ public function connect(){}$/;" f +constants .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $constants = $reflClass->getConstants();$/;" v +construct_args .\lib\phprs\util\IoCFactory.php /^ $construct_args = $this->buildConstructArgs($class_refl, $properties);$/;" v +construct_args .\lib\phprs\util\IoCFactory.php /^ $construct_args = array();$/;" v +construct_args .\lib\phprs\util\IoCFactory.php /^ public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null )$/;" v +construct_args .\lib\phprs\util\IoCFactoryEx.php /^ $this->construct_args = $construct_args;$/;" v +construct_args .\lib\phprs\util\IoCFactoryEx.php /^ private $construct_args;$/;" v +construct_args .\lib\phprs\util\IoCFactoryEx.php /^ public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null ){$/;" v +construct_args .\lib\phprs\util\IoCFactoryEx.php /^ public function createRawObject($id, $construct_args=null, $properties=null, $injector=null, $init=null ){$/;" v +constructor .\lib\Doctrine\Common\Annotations\DocParser.php /^ 'has_constructor' => (null !== $constructor = $class->getConstructor()) && $constructor->getNumberOfParameters() > 0,$/;" v +content .\framework\class\weixin.account.class.php /^ $content = ihttp_get($url);$/;" v +content .\framework\function\communication.func.php /^ $content = '';$/;" v +content .\framework\function\global.func.php /^ $content = substr($content, 4, $contentlen);$/;" v +content .\framework\function\global.func.php /^ $content = substr($result, 16, strlen($result));$/;" v +content .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $content = $this->getFileContent($filename, $class->getStartLine());$/;" v +content .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $content = '';$/;" v +content .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $content = preg_replace('\/^.*?(\\bnamespace\\s+' . $namespace . '\\s*[;{].*)$\/s', '\\\\1', $content);$/;" v +content .\lib\phprs\util\Curl.php /^ $this->content = $lines[1];$/;" v +content .\lib\phprs\util\Curl.php /^ $this->content = json_decode($lines[1], true);$/;" v +content .\lib\phprs\util\Curl.php /^ public $content;$/;" v +content .\payment\baifubao\bfb_sdk.php /^ $content = $this->request($query_url);$/;" v +content .\payment\baifubao\bfb_sdk.php /^ $content = $this->request($query_url);$/;" v +content .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $content = gzuncompress ( base64_decode ( $fileContent ) );$/;" v +contentType .\lib\phprs\Request.php /^ $contentType = $data['header']['Content-Type'];$/;" v +contentType .\lib\phprs\Request.php /^ $contentType = null;$/;" v +content_type .\lib\phprs\util\Curl.php /^ $content_type = trim($v);$/;" v +content_type .\lib\phprs\util\Curl.php /^ $content_type = '';$/;" v +content_type .\lib\phprs\util\Curl.php /^ if(is_array($content) && $content_type == 'application\/json'){$/;" v +content_type .\lib\phprs\util\Curl.php /^ $this->content_type = trim($v);$/;" v +content_type .\lib\phprs\util\Curl.php /^ public $content_type;$/;" v +contentlen .\framework\function\global.func.php /^ $contentlen = $len_list[1];$/;" v +context .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function semanticalErrorConstants($identifier, $context = null)$/;" v +context .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $context = 'method ' . $class->getName() . '::' . $method->getName() . '()';$/;" v +context .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $context = 'property ' . $class->getName() . "::\\$" . $property->getName();$/;" v +context .\lib\Doctrine\Common\Annotations\DocParser.php /^ $context = 'property ' . $class->name . "::\\$" . $property->name;$/;" v +context .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->context = $context;$/;" v +context .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $context = '';$/;" v +context .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function parse($input, $context = '')$/;" v +context .\lib\phprs\ezsql\rules\basic.php /^ $this->context = $context;$/;" v +context .\lib\phprs\ezsql\rules\basic.php /^ protected $context;$/;" v +context .\lib\phprs\util\DocParser.php /^ $this->context = $context;$/;" v +context .\lib\phprs\util\DocParser.php /^ private $context = '';$/;" v +context .\lib\phprs\util\DocParser.php /^ public function parse($input, $context = '', $record_doc)$/;" v +cookie_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($cookies as $cookie_name => $value) {$/;" v +cookies .\lib\phprs\apis\ApiExporter.php /^ $cookies = $params['_COOKIE'];$/;" v +copys .\lib\phprs\util\FileOp.php /^ static public function copys($src, $dst, $except=null) {$/;" f +count .\framework\function\global.func.php /^ $count = count($_SESSION['token']) - 5;$/;" v +count .\lib\phprs\util\AnnotationCleaner.php /^ $count = strlen($this->tmp);$/;" v +count .\lib\phprs\util\FileOp.php /^ $count = count($dirs);$/;" v +count .\lib\phprs\util\MessagePump.php /^ $count=count($this->action_queues[$queue_id]);$/;" v +coverParamsToString .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function coverParamsToString($params) {$/;" f +coverStringToArray .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function coverStringToArray($str) {$/;" f +create .\lib\Peekmo\JsonPath\JsonPath.php /^ private function trace($expr, &$val, $path, $create=false, $default=null)$/;" v +create .\lib\phprs\Request.php /^ public function find($expr, $create=false){$/;" v +create .\lib\phprs\util\IoCFactory.php /^ public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null )$/;" f +create .\lib\phprs\util\IoCFactoryEx.php /^ public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null ){$/;" f +createExceptionDoc .\lib\phprs\apis\ApiExporter.php /^ private function createExceptionDoc($api)$/;" f +createMap .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function createMap(){$/;" f +createPath .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private function createPath($dir, $filename)$/;" f +createPath .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private function createPath($dir, $filename)$/;" f +createRawObject .\lib\phprs\util\IoCFactoryEx.php /^ public function createRawObject($id, $construct_args=null, $properties=null, $injector=null, $init=null ){$/;" f +createRequestDoc .\lib\phprs\apis\ApiExporter.php /^ private function createRequestDoc($api)$/;" f +createResponseDoc .\lib\phprs\apis\ApiExporter.php /^ private function createResponseDoc($api, $default_return=true)$/;" f +createUser .\source\apis\Users.php /^ public function createUser(&$uid, $token, $account, $alias, $password, $avatar = null){$/;" f +create_baifubao_pay_order_url .\payment\baifubao\bfb_sdk.php /^ function create_baifubao_pay_order_url($params, $url) {$/;" f +create_html .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function create_html($params, $action) {$/;" f +create_stack .\lib\phprs\util\IoCFactory.php /^ private $create_stack=array(); \/\/ 正在创建的类,用于检测循环依赖$/;" v +creationError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function creationError($message)$/;" f +cryptkey .\framework\function\global.func.php /^ $cryptkey = $keya . md5($keya . $keyc);$/;" v +css .\lib\phprs\apis\ApiExporter.php /^ private static $css = <<getText();$/;" v +cutted .\lib\phprs\ezsql\impls.php /^ $cutted = null;$/;" v +dat .\framework\model\payment.mod.php /^ $dat = array2xml($package);$/;" v +data .\framework\class\weixin.account.class.php /^ $data = array();$/;" v +data .\framework\function\cache.func.php /^ $data = $_W['cache'][$key] = cache_read($key,$db);$/;" v +data .\framework\function\communication.func.php /^ $data = 'HTTP\/' . array_pop($headermeta);$/;" v +data .\framework\function\communication.func.php /^ $data = curl_exec($ch);$/;" v +data .\framework\function\global.func.php /^ $data = pdo_fetch('SELECT * FROM ' . tablename('wechat_attachment') . ' WHERE uniacid = :uniacid AND media_id = :id', array(':uniacid' => $_W['uniacid'], ':id' => $media_id));$/;" v +data .\framework\function\global.func.php /^ $data = trim($data);$/;" v +data .\framework\model\cache.mod.php /^ $data = pdo_fetchall('SELECT * FROM ' . tablename('core_menu') . ' WHERE pid = 0 AND is_display = 1 ORDER BY is_system DESC, displayorder DESC, id ASC');$/;" v +data .\lib\Peekmo\JsonPath\JsonStore.php /^ $this->data = json_decode($this->data, true);$/;" v +data .\lib\Peekmo\JsonPath\JsonStore.php /^ $this->data = json_decode(json_encode($this->data), true);$/;" v +data .\lib\Peekmo\JsonPath\JsonStore.php /^ $this->data = $data;$/;" v +data .\lib\Peekmo\JsonPath\JsonStore.php /^ private $data;$/;" v +data .\lib\phprs\Invoker.php /^ $data = $this->checkAbleCache->get($cache_key, $succeeded);$/;" v +data .\lib\phprs\Request.php /^ $data = $GLOBALS;$/;" v +data .\lib\phprs\Request.php /^ $this->data = new JsonStore($data);$/;" v +data .\lib\phprs\Request.php /^ private $data; $/;" v +data .\lib\phprs\util\Curl.php /^ $data = $lines[1];$/;" v +data .\lib\phprs\util\IoCFactory.php /^ $data = self::clearAnnotation($data);$/;" v +data .\lib\phprs\util\IoCFactory.php /^ $data = $cache->get($cache_key, $succeeded);$/;" v +data .\lib\phprs\util\IoCFactory.php /^ $data = MetaInfo::get($name);$/;" v +data .\loginLib\qq\API\class\Recorder.class.php /^ private static $data;$/;" v +data .\loginLib\qq\install\Recorder.class.php /^ private static $data;$/;" v +data .\payment\wechat\notify.php /^ $data = json_decode(json_encode($obj), true);$/;" v +data .\payment\wechat\rights.php /^ $data = array($/;" v +data .\payment\wechat\warning.php /^ $data = array($/;" v +db .\lib\phprs\ezsql\Sql.php /^ * $db = new DB($dsn, $username, $passwd);$/;" v +db .\source\apis\Users.php /^ public $db;$/;" v +db .\source\apis\appport.php /^ public $db;$/;" v +db .\source\apis\cloud.php /^ public $db;$/;" v +db .\source\apis\login.php /^ public $db;$/;" v +db .\source\apis\pay.php /^ public $db;$/;" v +db .\source\apis\user.php /^ public $db;$/;" v +dbSel .\loginLib\qq\test\comm\session.php /^ $dbSel = mysql_select_db(self::db_name, $db_handle);$/;" v +dbSel .\loginLib\qq\test\comm\session2.php /^ $dbSel = @mysql_select_db(self::db_name, $db_handle);$/;" v +db_handle .\loginLib\qq\test\comm\session.php /^ $db_handle = mysql_connect(self::db_host, self::db_user, self::db_pwd);$/;" v +db_handle .\loginLib\qq\test\comm\session.php /^ $this->db_handle = $db_handle;$/;" v +db_handle .\loginLib\qq\test\comm\session.php /^ private $db_handle;$/;" v +db_handle .\loginLib\qq\test\comm\session2.php /^ $db_handle = @mysql_connect(self::db_host, self::db_user, self::db_pwd);$/;" v +db_handle .\loginLib\qq\test\comm\session2.php /^ $this->db_handle = $db_handle;$/;" v +db_handle .\loginLib\qq\test\comm\session2.php /^ private $db_handle;$/;" v +deal_file .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function deal_file($params) {$/;" f +deal_params .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function deal_params(&$params) {$/;" f +debug .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $this->debug = (boolean) $debug;$/;" v +debug .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private $debug;$/;" v +debug .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function __construct(Reader $reader, Cache $cache, $debug = false)$/;" v +debug .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $this->debug = $debug;$/;" v +debug .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $debug;$/;" v +debug .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function __construct(Reader $reader, $cacheDir, $debug = false)$/;" v +debug .\lib\phprs\util\Logger.php /^ public static function debug($msg){$/;" f +decode .\framework\library\json\JSON.php /^ function decode($str)$/;" f +decrypted .\framework\function\global.func.php /^ $decrypted = mdecrypt_generic($module, $ciphertext_dec);$/;" v +default .\framework\function\global.func.php /^function array_elements($keys, $src, $default = FALSE) {$/;" v +default .\lib\Peekmo\JsonPath\JsonPath.php /^ private function slice($loc, $expr, &$v, $path,$create=false, $default=null)$/;" v +default .\lib\phprs\apis\ApiExporter.php /^ $default = $value['value']['default'];$/;" v +default .\lib\phprs\apis\ApiExporter.php /^ $default = $defaults[$name];$/;" v +default_return .\lib\phprs\apis\ApiExporter.php /^ private function createResponseDoc($api, $default_return=true)$/;" v +default_strict_matching .\lib\phprs\Router.php /^ public $default_strict_matching=false;$/;" v +defaults .\lib\phprs\apis\ApiExporter.php /^ $defaults = $refl->getDefaultProperties();$/;" v +defaults .\lib\phprs\util\IoCFactory.php /^ $defaults=array();$/;" v +deflate_file .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^function deflate_file(&$params) {$/;" f +del .\lib\phprs\util\ApcCache.php /^ public function del($key)$/;" f +del .\lib\phprs\util\CheckableCache.php /^ public function del($name){$/;" f +del .\lib\phprs\util\FileCache.php /^ public function del($key){$/;" f +del .\lib\phprs\util\KVCatchInterface.php /^ public function del($key);$/;" f +del .\lib\phprs\util\RedisCache.php /^ public function del($key){$/;" f +del .\lib\phprs\util\RedisCache.php /^ public function del(){}$/;" f +delResult .\source\apis\cloud.php /^ $delResult = Sql::deleteFrom('ims_sdk_'.$outappid.'rank')->where($condition)->exec($this->db);$/;" v +delegate .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $this->delegate = $reader;$/;" v +delegate .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private $delegate;$/;" v +delegate .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ $this->delegate = $reader;$/;" v +delegate .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ private $delegate;$/;" v +delete .\loginLib\qq\API\class\Recorder.class.php /^ public function delete($name){$/;" f +delete .\loginLib\qq\install\Recorder.class.php /^ public function delete($name){$/;" f +deleteFrom .\lib\phprs\ezsql\Sql.php /^ static public function deleteFrom($table){$/;" f +deleteFrom .\lib\phprs\ezsql\impls.php /^ static public function deleteFrom($context, $from)$/;" f +deleteFrom .\lib\phprs\ezsql\rules\delete.php /^ public function deleteFrom($table) {$/;" f +deleteUserByAccount .\source\apis\Users.php /^ public function deleteUserByAccount($account){$/;" f +delim .\framework\library\json\JSON.php /^ $delim = substr($str, 0, 1);$/;" v +description .\loginLib\qq\API\class\ErrorCase.class.php /^ public function showError($code, $description = '$'){$/;" v +description .\loginLib\qq\API\class\ErrorCase.class.php /^ public function showTips($code, $description = '$'){$/;" v +dest .\lib\phprs\util\AnnotationCleaner.php /^ $this->dest = '';$/;" v +dest .\lib\phprs\util\AnnotationCleaner.php /^ private $dest;$/;" v +destroy .\loginLib\qq\test\comm\session.php /^ function destroy($sessID) $/;" f +destroy .\loginLib\qq\test\comm\session2.php /^ function destroy($sessID) $/;" f +dict .\lib\phprs\ezsql\impls.php /^ $dict= [];$/;" v +dict .\lib\phprs\util\IoCFactory.php /^ protected $dict = array();$/;" v +dict .\lib\phprs\util\IoCFactory.php /^ public function __construct($conf=null, $dict=null, $metas=null)$/;" v +dict .\lib\phprs\util\IoCFactoryEx.php /^ public function __construct($conf=null, $dict=null, $metas=null){$/;" v +dictAs .\lib\phprs\ezsql\impls.php /^ static public function get($context, $db, $dictAs=null ,$errExce=true){$/;" v +dir .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $this->dir = rtrim($cacheDir, '\\\\\/');$/;" v +dir .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $dir;$/;" v +dir .\lib\phprs\Router.php /^ $dir = @dir($apis_dir);$/;" v +dir .\lib\phprs\Router.php /^ $dir = null;$/;" v +dir .\lib\phprs\util\FileOp.php /^ $dir = dir($src);$/;" v +dirs .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerAutoloadNamespace($namespace, $dirs = null)$/;" v +dirs .\lib\phprs\util\FileOp.php /^ $dirs = explode('\/', $path);$/;" v +doSomething1 .\source\apis\HelloWorld.php /^ public function doSomething1() {$/;" f +do_post .\loginLib\qq\API\comm\utils.php /^function do_post($url, $data)$/;" f +do_post .\loginLib\qq\test\comm\utils.php /^function do_post($url, $data)$/;" f +doc .\lib\phprs\apis\ApiExporter.php /^ $doc = '';$/;" v +doc .\lib\phprs\apis\ApiExporter.php /^ $doc = '';$/;" v +doc .\lib\phprs\util\DocParser.php /^ $doc= $this->lexer->getInputUntilPosition($doc_end);$/;" v +doc .\lib\phprs\util\DocParser.php /^ $doc = $this->lexer->getInputUntilPosition(0xFFFF);$/;" v +docComment .\lib\Doctrine\Common\Annotations\DocParser.php /^ $docComment = $class->getDocComment();$/;" v +doc_begin .\lib\phprs\util\DocParser.php /^ $doc_begin = $doc_end;$/;" v +doc_begin .\lib\phprs\util\DocParser.php /^ $doc_begin = 0;$/;" v +doc_end .\lib\phprs\util\DocParser.php /^ $doc_end = $this->lexer->lookahead['position'];$/;" v +docs .\lib\phprs\apis\ApiExporter.php /^ $docs = "$docs$arg_name:\\r\\n {$arg_info['doc']}\\r\\n\\r\\n";$/;" v +docs .\lib\phprs\apis\ApiExporter.php /^ $docs = "$docs$arg_name:\\r\\n {$arg_info['doc']}\\r\\n\\r\\n";$/;" v +docs .\lib\phprs\apis\ApiExporter.php /^ $docs = "$docs$name:\\r\\n {$arg_info['doc']}\\r\\n\\r\\n";$/;" v +docs .\lib\phprs\apis\ApiExporter.php /^ $docs = "$docs$arg_name:\\r\\n {$arg_info['doc']}\\r\\n\\r\\n";$/;" v +docs .\lib\phprs\apis\ApiExporter.php /^ $docs = '';$/;" v +downline .\framework\function\global.func.php /^ $downline = intval($downline);$/;" v +dst_path .\lib\phprs\util\FileOp.php /^ $dst_path = $dst . '\/' . $file;$/;" v +e .\lib\Peekmo\JsonPath\JsonPath.php /^ $e = explode('.', $elements[$i]);$/;" v +e .\lib\phprs\util\Verify.php /^ static public function e($e){$/;" f +e .\payment\resource\script\kindeditor\plugins\code\prettify.js /^(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\\\x0":"\\\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\\\"||a==="-"||a==="["||a==="]")a="\\\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(\/\\\\u[\\dA-Fa-f]{4}|\\\\x[\\dA-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\S\\s]|[^\\\\]\/g),a=$/;" f +elements .\framework\library\json\JSON.php /^ $elements = array_map(array($this, 'encode'), $var);$/;" v +elements .\lib\Peekmo\JsonPath\JsonPath.php /^ $elements = explode('\\'', $f);$/;" v +emoji_convert .\lib\emoji\emoji.php /^ function emoji_convert($text, $map){$/;" f +emoji_docomo_to_unified .\lib\emoji\emoji.php /^ function emoji_docomo_to_unified( $text){ return emoji_convert($text, 'docomo_to_unified'); }$/;" f +emoji_get_name .\lib\emoji\emoji.php /^ function emoji_get_name($unified_cp){$/;" f +emoji_google_to_unified .\lib\emoji\emoji.php /^ function emoji_google_to_unified( $text){ return emoji_convert($text, 'google_to_unified'); }$/;" f +emoji_html_to_unified .\lib\emoji\emoji.php /^ function emoji_html_to_unified( $text){ return emoji_convert($text, 'html_to_unified'); }$/;" f +emoji_kddi_to_unified .\lib\emoji\emoji.php /^ function emoji_kddi_to_unified( $text){ return emoji_convert($text, 'kddi_to_unified'); }$/;" f +emoji_softbank_to_unified .\lib\emoji\emoji.php /^ function emoji_softbank_to_unified( $text){ return emoji_convert($text, 'softbank_to_unified'); }$/;" f +emoji_unified_to_docomo .\lib\emoji\emoji.php /^ function emoji_unified_to_docomo( $text){ return emoji_convert($text, 'unified_to_docomo'); }$/;" f +emoji_unified_to_google .\lib\emoji\emoji.php /^ function emoji_unified_to_google( $text){ return emoji_convert($text, 'unified_to_google'); }$/;" f +emoji_unified_to_html .\lib\emoji\emoji.php /^ function emoji_unified_to_html( $text){ return emoji_convert($text, 'unified_to_html'); }$/;" f +emoji_unified_to_kddi .\lib\emoji\emoji.php /^ function emoji_unified_to_kddi( $text){ return emoji_convert($text, 'unified_to_kddi'); }$/;" f +emoji_unified_to_softbank .\lib\emoji\emoji.php /^ function emoji_unified_to_softbank( $text){ return emoji_convert($text, 'unified_to_softbank'); }$/;" f +emotion .\framework\function\global.func.php /^function emotion($message = '', $size = '24px') {$/;" f +emotions .\framework\function\global.func.php /^ $emotions = array($/;" v +emptyArray .\lib\Peekmo\JsonPath\JsonStore.php /^ private static $emptyArray = array();$/;" v +encode .\framework\library\json\JSON.php /^ function encode($var)$/;" f +encodeType .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $encodeType = isset ( $params ['encoding'] ) ? $params ['encoding'] : 'UTF-8';$/;" v +encoded_value .\framework\library\json\JSON.php /^ $encoded_value = $this->encode($value);$/;" v +encodingaeskey .\framework\function\global.func.php /^function aes_decode($message, $encodingaeskey = '', $appid = '') {$/;" v +encodingaeskey .\framework\function\global.func.php /^function aes_encode($message, $encodingaeskey = '', $appid = '') {$/;" v +encryptCvn2 .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptCvn2($cvn2) {$/;" f +encryptDate .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptDate($certDate) {$/;" f +encryptDateType .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptDateType($certDataType) {$/;" f +encryptPan .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptPan($pan) {$/;" f +encryptPin .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function encryptPin($pan, $pwd) {$/;" f +encrypt_error_code .\framework\class\weixin.account.class.php /^ private function encrypt_error_code($code) {$/;" f +encrypt_msg .\framework\function\global.func.php /^ $encrypt_msg = base64_encode($encrypted);$/;" v +encrypted .\framework\function\global.func.php /^ $encrypted = mcrypt_generic($module, $text);$/;" v +end .\framework\function\global.func.php /^ $end = $strict ? '$' : '';$/;" v +end .\framework\function\global.func.php /^ $end = '%}';$/;" v +end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = null;$/;" v +end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = $start+1;$/;" v +end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = ($end < 0) ? max(0, $end + $len) : $end;$/;" v +end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = ($end < 0) ? max(0, $end + $len) : min($len, $end);$/;" v +end .\lib\Peekmo\JsonPath\JsonPath.php /^ $end = (int)$s[1] ? $s[1] : $len;$/;" v +end .\lib\phprs\apis\ApiExporter.php /^ $end = max(array_keys($req_path));$/;" v +end .\lib\phprs\util\Tree.php /^ static public $end="\\n";$/;" v +end_handles .\lib\phprs\util\MessagePump.php /^ $this->end_handles= array();$/;" v +end_handles .\lib\phprs\util\MessagePump.php /^ private $end_handles = array();$/;" v +entries .\lib\phprs\apis\ApiExporter.php /^ $entries = $hook->export();$/;" v +entries .\lib\phprs\apis\ApiExporter.php /^ $entries = $route->export();$/;" v +enumeratorError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function enumeratorError($attributeName, $annotationName, $context, $available, $given)$/;" f +eol .\framework\function\communication.func.php /^ $eol = "\\r\\n";$/;" v +erase .\lib\phprs\util\Tree.php /^ public function erase(array $path){$/;" f +err .\lib\phprs\Bootstrap.php /^ $err = $e;$/;" v +err .\lib\phprs\Bootstrap.php /^ $err = null;$/;" v +errExce .\lib\phprs\ezsql\rules\basic.php /^ public function exec($db, $errExce=true) {$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '签名方法不支持';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '表单参数数组排序失败';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = $info;$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = 'return_url页面的请求的必选参数不足';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '生成签名的参数必须是一个数组';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝后台通知签名校验失败';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝的支付结果通知中商户ID无效,该通知无效';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝的支付结果通知中商户支付结果异常,该通知无效';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝的订单查询接口的响应数据中商户ID无效,该通知无效';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝的订单查询接口的响应数据中商户支付结果异常,该通知无效';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '百付宝订单查询接口响应数据签名校验失败';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '订单[%s]已经处理,此百付宝后台支付通知为重复通知';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '订单[%s]状态异常';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = '调用百付宝订单号查询接口失败';$/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = sprintf('百付宝的订单查询接口查询失败,查询状态为[%s]', $/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ $this->err_msg = sprintf('百付宝的订单查询接口查询失败,返回数据为[%s]', $/;" v +err_msg .\payment\baifubao\bfb_sdk.php /^ public $err_msg;$/;" v +errno .\framework\function\communication.func.php /^ $errno = curl_errno($ch);$/;" v +errno .\lib\phprs\util\Curl.php /^ return $this->errno==0 && intval($this->http_code)>=200 && intval($this->http_code)<300;$/;" v +errno .\lib\phprs\util\Curl.php /^ public $errno;$/;" v +error .\framework\function\communication.func.php /^ $error = curl_error($ch);$/;" v +error .\framework\function\global.func.php /^function error($errno, $message = '') {$/;" f +error .\lib\phprs\util\Logger.php /^ public static function error($msg){$/;" f +error .\loginLib\qq\API\class\Oauth.class.php /^ $this->error = new ErrorCase();$/;" v +error .\loginLib\qq\API\class\Oauth.class.php /^ protected $error;$/;" v +error .\loginLib\qq\API\class\Recorder.class.php /^ $this->error = new ErrorCase();$/;" v +error .\loginLib\qq\API\class\Recorder.class.php /^ private $error;$/;" v +error .\loginLib\qq\API\class\URL.class.php /^ $this->error = new ErrorCase();$/;" v +error .\loginLib\qq\API\class\URL.class.php /^ private $error;$/;" v +error .\loginLib\qq\install\Recorder.class.php /^ $this->error = new ErrorCase();$/;" v +error .\loginLib\qq\install\Recorder.class.php /^ private $error;$/;" v +errorMsg .\loginLib\qq\API\class\ErrorCase.class.php /^ $this->errorMsg = array($/;" v +errorMsg .\loginLib\qq\API\class\ErrorCase.class.php /^ private $errorMsg;$/;" v +error_code .\framework\class\weixin.account.class.php /^ public function error_code($code) {$/;" f +errorinfo .\framework\class\weixin.account.class.php /^ $errorinfo = @json_decode($errorinfo, true);$/;" v +errorinfo .\framework\class\weixin.account.class.php /^ $errorinfo = substr($content['meta'], strpos($content['meta'], '{'));$/;" v +errors .\framework\class\weixin.account.class.php /^ $errors = array($/;" v +errstr .\lib\phprs\util\Curl.php /^ public $errstr;$/;" v +estr .\lib\phprs\Bootstrap.php /^ $estr = array($/;" v +evalx .\lib\Peekmo\JsonPath\JsonPath.php /^ private function evalx($x, $v, $vname = null)$/;" f +event .\framework\model\cache.mod.php /^ foreach ($subscribe as $event => $module_group) {$/;" v +exact_match .\lib\phprs\util\Tree.php /^ private function visitNode( $path, $vistor, $exact_match=false, $all_req_paths=false){$/;" v +exact_match .\lib\phprs\util\Tree.php /^ public function find(array $path, $exact_match=false){$/;" v +exact_match .\lib\phprs\util\Tree.php /^ public function findNode(array $path, $exact_match=false, $all_req_paths=false){$/;" v +exact_match .\lib\phprs\util\Tree.php /^ public function visit( $path ,$vistor, $exact_match=false){$/;" v +exceOnError .\lib\phprs\ezsql\impls.php /^ static public function exec($context, $db, $exceOnError=true) {$/;" v +exce_name .\lib\phprs\BindThrows.php /^ foreach ($this->params as $exce_name => $calls){$/;" v +exce_name .\lib\phprs\BindThrows.php /^ foreach ($this->params as $exce_name => $calls){$/;" v +exce_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($invoker->getThrows()->getParams() as $exce_name => $throws) {$/;" v +except .\lib\phprs\util\FileOp.php /^ static public function copys($src, $dst, $except=null) {$/;" v +exception .\lib\phprs\BindThrows.php /^ $exception = $params[0];$/;" v +exec .\lib\phprs\ezsql\impls.php /^ static public function exec($context, $db, $exceOnError=true) {$/;" f +exec .\lib\phprs\ezsql\rules\basic.php /^ public function exec($db, $errExce=true) {$/;" f +execCurl .\lib\phprs\util\Curl.php /^ private function execCurl($url, $method='GET', $content=null, $headers=null,$followLoc=true){$/;" f +exist .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ final check, does this class exist?$/;" c +exists .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ annotation, and it is also guaranteed that this class exists, and$/;" c +exists .\lib\Doctrine\Common\Annotations\DocParser.php /^ * Attempts to check if a class exists or not. This never goes through the PHP autoloading mechanism$/;" c +expire .\framework\function\global.func.php /^ $expire = $expire != 0 ? (TIMESTAMP + $expire) : 0;\/\/过期时间$/;" v +expire .\framework\function\global.func.php /^function isetcookie($key, $value, $expire = 0, $httponly = false) {$/;" v +expire .\lib\phprs\Response.php /^ $expire = strtotime($expire);$/;" v +expire .\lib\phprs\Response.php /^ 'cookie' =>function ($name, $value, $expire=null, $path='\/', $domain=null, $secure=null){$/;" v +explicitAlias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $explicitAlias = false;$/;" v +explicitAlias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $explicitAlias = true;$/;" v +explicitAlias .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $explicitAlias = false;$/;" v +export .\lib\phprs\util\HttpRouterEntries.php /^ public function export(){$/;" f +export .\lib\phprs\util\Tree.php /^ public function export(){$/;" f +exportApiHtml .\lib\phprs\apis\ApiExporter.php /^ public function exportApiHtml($class_name)$/;" f +exportJson .\lib\phprs\apis\ApiExporter.php /^ public function exportJson()$/;" f +exportMainHtml .\lib\phprs\apis\ApiExporter.php /^ public function exportMainHtml()$/;" f +export_apis .\lib\phprs\Router.php /^ private $export_apis=true;$/;" v +expr .\lib\Peekmo\JsonPath\JsonPath.php /^ $expr = explode(";", $path);$/;" v +expr .\lib\Peekmo\JsonPath\JsonPath.php /^ $expr = preg_replace(array("\/\\\\$\/", "\/@\/"), array("\\$this->obj", "\\$v"), $x);$/;" v +expr .\lib\phprs\ezsql\impls.php /^ $expr = substr($expr, 0, $pos).$v. substr($expr, $pos+1);$/;" v +expression .\lib\Peekmo\JsonPath\JsonPath.php /^ $expression = preg_replace($/;" v +expression .\lib\Peekmo\JsonPath\JsonPath.php /^ $expression = preg_replace_callback("\/#([0-9]+)\/", array(&$this, "restoreFilters"), $expression);$/;" v +expression .\lib\Peekmo\JsonPath\JsonPath.php /^ $expression = preg_replace_callback($/;" v +exprs .\lib\phprs\ezsql\impls.php /^ $exprs = array();$/;" v +ext .\source\apis\Users.php /^ $ext = json_decode($res[0]['ext'],true);$/;" v +f .\lib\Peekmo\JsonPath\JsonPath.php /^ $f = $filter[1];$/;" v +factory .\lib\phprs\Bootstrap.php /^ $factory = new IoCFactory($conf_file);$/;" v +factory .\lib\phprs\Container.php /^ public $factory;$/;" v +factory .\lib\phprs\Invoker.php /^ private $factory;$/;" v +factory .\lib\phprs\Router.php /^ public $factory;$/;" v +factory .\lib\phprs\RouterWithCache.php /^ private $factory;$/;" v +factory .\lib\phprs\util\IoCFactoryEx.php /^ private $factory;$/;" v +factory .\source\apis\Users.php /^ private $factory;$/;" v +factory .\source\apis\appport.php /^ private $factory;$/;" v +factory .\source\apis\cloud.php /^ private $factory;$/;" v +factory .\source\apis\login.php /^ private $factory;$/;" v +factory .\source\apis\pay.php /^ private $factory;$/;" v +factory .\source\apis\user.php /^ private $factory;$/;" v +faild .\payment\baifubao\bfb_sdk.php /^ 'query the baifubao pay result interface faild, the query_status is [%s]', $/;" i +failed .\payment\baifubao\bfb_sdk.php /^ 'curl the baifubao pay result interface failed, err_msg [%s]', $/;" i +failed .\payment\baifubao\bfb_sdk.php /^ 'make sign for query baifubao pay result interface failed');$/;" i +failed .\payment\baifubao\bfb_sdk.php /^ 'sign the result returned from baifubao pay result interface failed');$/;" i +fails .\lib\phprs\apis\ApiExporter.php /^ $fails = $this->createExceptionDoc($api);$/;" v +fan .\source\apis\login.php /^ $fan = getUserByOpenId($oauth['openid'],$this->db);$/;" v +fan .\source\apis\login.php /^ $fan = getUserByOpenId($openId,$this->db);$/;" v +fansBatchQueryInfo .\framework\class\weixin.account.class.php /^ public function fansBatchQueryInfo($data,$db) {$/;" f +fansQueryInfo .\framework\class\weixin.account.class.php /^ public function fansQueryInfo($uniid,$db,$pdo, $isOpen = true) {$/;" f +fdata .\framework\function\communication.func.php /^ $fdata = "{$method} {$urlset['path']}{$urlset['query']} HTTP\/1.1\\r\\n";$/;" v +fee .\source\apis\pay.php /^ public function wechatPay($type='',$orderid='', $fee=0,$outappid='',$notify='',$fromUser='') {$/;" v +fetchFromCache .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private function fetchFromCache($rawCacheKey, \\ReflectionClass $class)$/;" f +fieldName .\lib\Doctrine\Common\Annotations\DocParser.php /^ $fieldName = $this->lexer->token['value'];$/;" v +fieldName .\lib\phprs\util\DocParser.php /^ $fieldName = $this->lexer->token['value'];$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t1) as ".$count_t1;$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t2) as ".$count_t2;$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t3) as ".$count_t3;$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t4) as ".$count_t4;$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t5) as ".$count_t5;$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t6) as ".$count_t6;$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t7) as ".$count_t7;$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t8) as ".$count_t8;$/;" v +fields .\source\apis\cloud.php /^ $fields = " count(t9) as ".$count_t9;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t1) as ".$max_t1;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t2) as ".$max_t2;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t3) as ".$max_t3;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t4) as ".$max_t4;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t5) as ".$max_t5;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t6) as ".$max_t6;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t7) as ".$max_t7;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t8) as ".$max_t8;$/;" v +fields .\source\apis\cloud.php /^ $fields = " max(t9) as ".$max_t9;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t1) as ".$min_t1;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t2) as ".$min_t2;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t3) as ".$min_t3;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t4) as ".$min_t4;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t5) as ".$min_t5;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t6) as ".$min_t6;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t7) as ".$min_t7;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t8) as ".$min_t8;$/;" v +fields .\source\apis\cloud.php /^ $fields = " min(t9) as ".$min_t9;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t1) as ".$sum_t1;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t2) as ".$sum_t2;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t3) as ".$sum_t3;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t4) as ".$sum_t4;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t5) as ".$sum_t5;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t6) as ".$sum_t6;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t7) as ".$sum_t7;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t8) as ".$sum_t8;$/;" v +fields .\source\apis\cloud.php /^ $fields = " sum(t9) as ".$sum_t9;$/;" v +fields .\source\apis\cloud.php /^ $fields = " s1 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " s2 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " s3 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " s4 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " s5 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " s6 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " s7 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " s8 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " s9 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t1 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t2 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t3 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t4 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t5 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t6 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t7 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t8 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " t9 ";$/;" v +fields .\source\apis\cloud.php /^ $fields = "";$/;" v +fields .\source\apis\cloud.php /^ $fields = " * ";$/;" v +fields .\source\apis\cloud.php /^ $fields = " * ";$/;" v +fields .\source\apis\cloud.php /^ $fields = "";$/;" v +fieldsCount .\source\apis\cloud.php /^ $fieldsCount = $fieldsCount +1;$/;" v +fieldsCount .\source\apis\cloud.php /^ $fieldsCount = 0;$/;" v +file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/app\/common\/' . $name . '.func.php';$/;" v +file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/framework\/class\/' . $name . '.class.php';$/;" v +file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/framework\/function\/' . $name . '.func.php';$/;" v +file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/framework\/model\/' . $name . '.mod.php';$/;" v +file .\framework\class\loader.class.php /^ $file = IA_ROOT . '\/web\/common\/' . $name . '.func.php';$/;" v +file .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ $file = str_replace("\\\\", DIRECTORY_SEPARATOR, $class) . ".php";$/;" v +file .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $file = new SplFileObject($filename);$/;" v +file .\lib\phprs\util\FileExpiredChecker.php /^ if($file == '.' || $file == '..') {continue;}$/;" v +file .\lib\phprs\util\FileOp.php /^ while(false !== ( $file = $dir->read()) ) {$/;" v +file .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ while ( $file = readdir ( $handle ) ) {$/;" v +fileContent .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $fileContent = $params ['fileContent'];$/;" v +filePath .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $filePath = $root . $params ['fileName'];$/;" v +filePath .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $filePath = $root . $params ['merId'] . '_' . $params ['batchNo'] . '_' . $params ['txnTime'] . 'txt';$/;" v +filePath .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $filePath = null;$/;" v +filePath .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $filePath = $cert_dir . '\/' . $file;$/;" v +file_content .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $file_content = file_get_contents ( $file ['tmp_name'] );$/;" v +file_content_deflate .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $file_content_deflate = gzcompress ( $file_content );$/;" v +file_dir .\lib\phprs\util\SaftyFileWriter.php /^ $file_dir = substr($path, 0,$pos+1);$/;" v +file_dir .\lib\phprs\util\SaftyFileWriter.php /^ $file_dir="";$/;" v +file_handle .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ if ( $this->file_handle = fopen( $this->log_file , "a+" ) )$/;" v +file_handle .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private $file_handle;$/;" v +file_handle .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ if ( $this->file_handle = fopen( $this->log_file , "a+" ) )$/;" v +file_handle .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private $file_handle;$/;" v +file_name .\lib\phprs\util\FileExpiredChecker.php /^ private $file_name=array(); \/\/文件全路径$/;" v +file_name .\lib\phprs\util\SaftyFileWriter.php /^ $file_name = substr($path, $pos+1);$/;" v +file_name .\lib\phprs\util\SaftyFileWriter.php /^ $file_name=$path;$/;" v +file_name .\lib\phprs\util\SaftyFileWriter.php /^ $file_name="";$/;" v +file_names .\lib\phprs\util\FileExpiredChecker.php /^ $file_names = $file_name;$/;" v +file_names .\lib\phprs\util\FileExpiredChecker.php /^ $file_names = array();$/;" v +file_put_contents .\framework\function\compat.func.php /^ function file_put_contents($file, $string) {$/;" f +filename .\lib\Doctrine\Common\Annotations\CachedReader.php /^ if (false === $filename = $class->getFilename()) {$/;" v +filename .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ && (false !== $filename = $class->getFilename())$/;" v +filename .\lib\Doctrine\Common\Annotations\PhpParser.php /^ if (false === $filename = $class->getFilename()) {$/;" v +filename .\loginLib\qq\API\class\QC.class.php /^ $filename = dirname($v['tmp_name'])."\/".$v['name'];$/;" v +filename .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->filename = date('Y-m-d', time()) . '.log'; $this->log_file = $this->createPath($filepath, $this->filename);$/;" v +filename .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private $filename;$/;" v +filename .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->filename = date('Y-m-d', time()) . '.log'; $this->log_file = $this->createPath($filepath, $this->filename);$/;" v +filename .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private $filename;$/;" v +filepost .\framework\function\communication.func.php /^ $filepost = true;$/;" v +filepost .\framework\function\communication.func.php /^ $filepost = false;$/;" v +files .\lib\phprs\Router.php /^ $files = $class;$/;" v +files .\lib\phprs\Router.php /^ $files = array($class.'.php');$/;" v +files .\lib\phprs\Router.php /^ $files = array($apis_dir);$/;" v +files .\lib\phprs\apis\ApiExporter.php /^ $files = $params['_FILES'];$/;" v +files .\lib\phprs\util\FileExpiredChecker.php /^ $files = @dir($file_name);$/;" v +files .\lib\phprs\util\IoCFactory.php /^ $files = [$refl->getFileName()];$/;" v +find .\lib\phprs\Request.php /^ public function find($expr, $create=false){$/;" f +find .\lib\phprs\util\HttpRouterEntries.php /^ function find($q,&$matched_path=null){$/;" f +find .\lib\phprs\util\Tree.php /^ public function find(array $path, $exact_match=false){$/;" f +findByArray .\lib\phprs\util\HttpRouterEntries.php /^ function findByArray($paths,$params, &$matched_path =null){$/;" f +findInitialTokenPosition .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function findInitialTokenPosition($input)$/;" f +findInitialTokenPosition .\lib\phprs\util\DocParser.php /^ private function findInitialTokenPosition($input)$/;" f +findNode .\lib\phprs\util\Tree.php /^ public function findNode(array $path, $exact_match=false, $all_req_paths=false){$/;" f +findParams .\lib\phprs\util\HttpRouterEntries.php /^ private function findParams($root,$params){$/;" f +findQ .\lib\phprs\ezsql\impls.php /^ static private function findQ($str,$offset = 0,$no=0){$/;" f +find_step .\lib\phprs\util\HttpRouterEntries.php /^ $find_step = array();$/;" v +first .\lib\Peekmo\JsonPath\JsonPath.php /^ $first = false;$/;" v +first .\lib\phprs\apis\ApiExporter.php /^ $first = false;$/;" v +first .\lib\phprs\apis\ApiExporter.php /^ $first = true;$/;" v +first .\lib\phprs\apis\ApiExporter.php /^ $first = true;$/;" v +first .\lib\phprs\ezsql\impls.php /^ $this->first = false;$/;" v +first .\lib\phprs\ezsql\impls.php /^ private $first=true;$/;" v +fistline .\lib\phprs\apis\ApiExporter.php /^ $fistline = false;$/;" v +fistline .\lib\phprs\apis\ApiExporter.php /^ $fistline = true;$/;" v +flag .\loginLib\qq\API\class\URL.class.php /^ public function post($url, $keysArr, $flag = 0){$/;" v +flags .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE;$/;" v +flags .\lib\phprs\util\Logger.php /^ static $flags = 12; \/\/ ERROR|WARNING$/;" v +flush .\lib\phprs\Response.php /^ public function flush($limit=null, $func=null)$/;" f +flush .\lib\phprs\Router.php /^ public function flush($limit=null, $func=null)$/;" f +for .\framework\library\json\JSON.php /^ * array-walking function for use in generating JSON-formatted name-value pairs$/;" f +for .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ * Base class for writing simple lexers, i.e. for creating small DSLs.$/;" c +forUpdate .\lib\phprs\ezsql\impls.php /^ static public function forUpdate($context){$/;" f +forUpdate .\lib\phprs\ezsql\rules\select.php /^ public function forUpdate(){$/;" f +forward .\source\apis\login.php /^ $forward = $weixin->getOauthUserInfoUrl($callback, $state);$/;" v +forward .\source\apis\login.php /^ $forward = $weixin->getOauthUserInfoUrl($callback, $state);$/;" v +found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v +found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v +found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v +found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v +found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = true;$/;" v +found .\lib\Doctrine\Common\Annotations\DocParser.php /^ $found = false;$/;" v +found .\lib\phprs\BindParams.php /^ $found = $req->find($value, $is_ref, $default);$/;" v +found .\lib\phprs\ezsql\impls.php /^ $found = strpos($str, '?', $offset);$/;" v +found .\lib\phprs\ezsql\impls.php /^ if($no == 0 || $found === false){$/;" v +found .\lib\phprs\util\DocParser.php /^ $found = true;$/;" v +found .\lib\phprs\util\DocParser.php /^ $found = true;$/;" v +found .\lib\phprs\util\DocParser.php /^ $found = true;$/;" v +found .\lib\phprs\util\DocParser.php /^ $found = false;$/;" v +found .\lib\phprs\util\HttpRouterEntries.php /^ $found = $this->findParams($route, $params);$/;" v +found .\lib\phprs\util\Tree.php /^ $found = $node;$/;" v +found .\lib\phprs\util\Tree.php /^ $found = array_key_exists('value',$node)?$node['value']:null;$/;" v +found .\lib\phprs\util\Tree.php /^ $found = null;$/;" v +fp .\framework\function\communication.func.php /^ $fp = fsockopen($urlset['host'], $urlset['port'], $errno, $error);$/;" v +fp .\framework\function\communication.func.php /^ $fp = fsockopen('ssl:\/\/' . $urlset['host'], $urlset['port'], $errno, $error);$/;" v +fp .\framework\function\compat.func.php /^ $fp = @fopen($file, 'w') or exit("Can not open $file");$/;" v +fp .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $fp = fopen($sPubKeyURL, "r");$/;" v +fp .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $fp = fopen($sPubKeyURL, "r");$/;" v +frames .\framework\model\cache.mod.php /^ $frames =array();$/;" v +from .\lib\Doctrine\Common\Annotations\Reader.php /^ * @param \\ReflectionClass $class The ReflectionClass of the class from which$/;" c +from .\lib\Doctrine\Common\Annotations\Reader.php /^ * @param \\ReflectionClass $class The ReflectionClass of the class from which$/;" c +from .\lib\phprs\BindReturns.php /^ $from = array();$/;" v +from .\lib\phprs\BindReturns.php /^ $from = array_slice($params, 1);$/;" v +from .\lib\phprs\BindThrows.php /^ $from = array_slice($params, 2);$/;" v +from .\lib\phprs\ezsql\impls.php /^ static public function from($context, $tables){$/;" f +from .\lib\phprs\ezsql\rules\select.php /^ public function from($table){$/;" f +from_appid .\framework\function\global.func.php /^ $from_appid = substr($content, $xml_len + 4);$/;" v +full .\lib\phprs\util\Tree.php /^ $full = $this->visitNode($path,function ($name,$node)use(&$found){$/;" v +full .\lib\phprs\util\Tree.php /^ $full = $this->visitNode($path,function ($name,&$node)use(&$i,$size,$key,&$res){$/;" v +fullPath .\lib\Peekmo\JsonPath\JsonPath.php /^ $fullPath = "$";$/;" v +full_path .\lib\phprs\Request.php /^ $full_path = $data['_SERVER']['REQUEST_URI'];$/;" v +full_url .\lib\phprs\apis\ApiExporter.php /^ $full_url = $invoker->getContainer()->path.'\/'.$u;$/;" v +full_url .\lib\phprs\apis\ApiExporter.php /^ $full_url = HttpRouterEntries::stringToPath($full_url);$/;" v +fun_name .\lib\phprs\BindReturns.php /^ foreach ($this->params as $fun_name => $calls) {$/;" v +fun_name .\lib\phprs\BindReturns.php /^ foreach ($this->params as $fun_name => $calls) {\/\/$/;" v +fun_name .\lib\phprs\BindThrows.php /^ foreach ($calls as $fun_name => $call) {$/;" v +fun_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($throws as $fun_name => $calls) {$/;" v +fun_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($invoker->getReturns()->getParams() as $fun_name => $calls) {$/;" v +func .\framework\class\loader.class.php /^ function func($name) {$/;" f +func .\lib\phprs\Response.php /^ public function flush($limit=null, $func=null)$/;" v +func .\lib\phprs\Router.php /^ public function flush($limit=null, $func=null)$/;" v +func .\lib\phprs\util\SerializableFunc.php /^ $this->func = $args[0];$/;" v +func .\lib\phprs\util\SerializableFunc.php /^ private $func;$/;" v +funcs .\lib\phprs\BindThrows.php /^ $funcs = array(); \/\/输出方法$/;" v +funcs .\lib\phprs\Response.php /^ $funcs = $this->buffer[$name];$/;" v +gc .\loginLib\qq\test\comm\session.php /^ function gc($sessMaxLifeTime) $/;" f +gc .\loginLib\qq\test\comm\session2.php /^ function gc($sessMaxLifeTime) $/;" f +genKey .\lib\phprs\util\IoCFactoryEx.php /^ private function genKey($method, $arguments){$/;" f +get .\lib\Peekmo\JsonPath\JsonStore.php /^ public function get($expr, $unique = false, $create = false, $default = null)$/;" f +get .\lib\phprs\apis\ApiExporter.php /^ $get = $params['_GET'];$/;" v +get .\lib\phprs\ezsql\Native.php /^ public function get(){$/;" f +get .\lib\phprs\ezsql\impls.php /^ static public function get($context, $db, $dictAs=null ,$errExce=true){$/;" f +get .\lib\phprs\ezsql\rules\select.php /^ public function get($db, $asDict=false,$errExce=true) {$/;" f +get .\lib\phprs\util\ApcCache.php /^ public function get($key, &$succeeded)$/;" f +get .\lib\phprs\util\CheckableCache.php /^ public function get($name, &$succeeded=null)$/;" f +get .\lib\phprs\util\FileCache.php /^ public function get($key, &$succeeded=null){$/;" f +get .\lib\phprs\util\KVCatchInterface.php /^ public function get($key, &$succeeded);$/;" f +get .\lib\phprs\util\MetaInfo.php /^ static function get($inst, $record_doc=false, $select=null){$/;" f +get .\lib\phprs\util\RedisCache.php /^ public function get($key, &$succeeded=null){$/;" f +get .\lib\phprs\util\RedisCache.php /^ public function get(){}$/;" f +get .\loginLib\qq\API\class\URL.class.php /^ public function get($url, $keysArr){$/;" f +get .\payment\wechat\notify.php /^ $get = $_GET;$/;" v +get .\payment\wechat\notify.php /^ $get = $data;$/;" v +getAccessToken .\framework\class\weixin.account.class.php /^ public function getAccessToken($db,$pdo) {$/;" f +getAccessToken .\source\apis\appport.php /^ public function getAccessToken($scode,$sid) {$/;" f +getAllHeaders .\lib\phprs\Request.php /^ function getAllHeaders() {$/;" f +getApiFiles .\lib\phprs\Router.php /^ public function getApiFiles(){$/;" f +getBindParamPos .\lib\phprs\BindParams.php /^ public function getBindParamPos(){$/;" f +getBindParamPos .\lib\phprs\BindReturns.php /^ public function getBindParamPos(){$/;" f +getBindParamPos .\lib\phprs\Invoker.php /^ public function getBindParamPos()$/;" f +getBuffer .\lib\phprs\Response.php /^ public function getBuffer(){$/;" f +getCacheOptions .\lib\phprs\util\IoCFactoryEx.php /^ public function getCacheOptions($method){$/;" f +getCatchablePatterns .\lib\Doctrine\Common\Annotations\DocLexer.php /^ protected function getCatchablePatterns()$/;" f +getCatchablePatterns .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ abstract protected function getCatchablePatterns();$/;" f +getCertId .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getCertId($cert_path) {$/;" f +getCertIdByCerPath .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getCertIdByCerPath($cert_path) {$/;" f +getClassAnnotation .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getClassAnnotation(ReflectionClass $class, $annotationName)$/;" f +getClassAnnotation .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getClassAnnotation(\\ReflectionClass $class, $annotationName)$/;" f +getClassAnnotation .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getClassAnnotation(\\ReflectionClass $class, $annotationName)$/;" f +getClassAnnotation .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getClassAnnotation(\\ReflectionClass $class, $annotation)$/;" f +getClassAnnotation .\lib\Doctrine\Common\Annotations\Reader.php /^ function getClassAnnotation(\\ReflectionClass $class, $annotationName);$/;" f +getClassAnnotation .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getClassAnnotation(\\ReflectionClass $class, $annotationName)$/;" f +getClassAnnotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getClassAnnotations(ReflectionClass $class)$/;" f +getClassAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getClassAnnotations(\\ReflectionClass $class)$/;" f +getClassAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getClassAnnotations(\\ReflectionClass $class)$/;" f +getClassAnnotations .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getClassAnnotations(\\ReflectionClass $class)$/;" f +getClassAnnotations .\lib\Doctrine\Common\Annotations\Reader.php /^ function getClassAnnotations(\\ReflectionClass $class);$/;" f +getClassAnnotations .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getClassAnnotations(\\ReflectionClass $class)$/;" f +getClassAnnotations .\lib\phprs\util\AnnotationReader.php /^ public function getClassAnnotations(\\ReflectionClass $class, $record_doc=false)$/;" f +getClassImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function getClassImports(ReflectionClass $class)$/;" f +getClassName .\lib\phprs\Invoker.php /^ public function getClassName(){$/;" f +getClassName .\lib\phprs\util\IoCFactory.php /^ public function getClassName($id=null){$/;" f +getClasses .\lib\phprs\util\AutoClassLoader.php /^ public function getClasses(){$/;" f +getConf .\lib\phprs\util\IoCFactory.php /^ public function getConf($id=null){$/;" f +getConfFile .\lib\phprs\util\IoCFactory.php /^ public function getConfFile(){$/;" f +getContainer .\lib\phprs\Invoker.php /^ public function getContainer(){$/;" f +getCurrentUser .\source\apis\Users.php /^ public function getCurrentUser($token){$/;" f +getDictKeys .\lib\phprs\util\IoCFactory.php /^ static function getDictKeys($value){$/;" f +getDocText .\lib\phprs\apis\ApiExporter.php /^ private function getDocText($doc)$/;" f +getEncryptCertId .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getEncryptCertId() {$/;" f +getFileContent .\lib\Doctrine\Common\Annotations\PhpParser.php /^ private function getFileContent($filename, $lineNumber)$/;" f +getHooks .\lib\phprs\Router.php /^ public function getHooks(){$/;" f +getIgnoredAnnotationNames .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function getIgnoredAnnotationNames(ReflectionClass $class)$/;" f +getImpl .\lib\phprs\Container.php /^ public function getImpl($request){$/;" f +getImpl .\lib\phprs\util\RedisCache.php /^ private function getImpl(){$/;" f +getInjected .\lib\phprs\Container.php /^ public function getInjected(){$/;" f +getInjectors .\lib\phprs\Container.php /^ \/\/public function getInjectors(){$/;" f +getInputUntilPosition .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function getInputUntilPosition($position)$/;" f +getInvokerInfo .\lib\phprs\apis\ApiExporter.php /^ public function getInvokerInfo( $method,$uri, $invoker)$/;" f +getLiteral .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function getLiteral($token)$/;" f +getLoginType .\source\apis\login.php /^ public function getLoginType(){$/;" f +getMetaInfo .\lib\phprs\util\IoCFactory.php /^ public function getMetaInfo($class){$/;" f +getMethodAnnotation .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getMethodAnnotation(ReflectionMethod $method, $annotationName)$/;" f +getMethodAnnotation .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getMethodAnnotation(\\ReflectionMethod $method, $annotationName)$/;" f +getMethodAnnotation .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getMethodAnnotation(\\ReflectionMethod $method, $annotationName)$/;" f +getMethodAnnotation .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getMethodAnnotation(\\ReflectionMethod $method, $annotation)$/;" f +getMethodAnnotation .\lib\Doctrine\Common\Annotations\Reader.php /^ function getMethodAnnotation(\\ReflectionMethod $method, $annotationName);$/;" f +getMethodAnnotation .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getMethodAnnotation(\\ReflectionMethod $method, $annotationName)$/;" f +getMethodAnnotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getMethodAnnotations(ReflectionMethod $method)$/;" f +getMethodAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method)$/;" f +getMethodAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method)$/;" f +getMethodAnnotations .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method)$/;" f +getMethodAnnotations .\lib\Doctrine\Common\Annotations\Reader.php /^ function getMethodAnnotations(\\ReflectionMethod $method);$/;" f +getMethodAnnotations .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method)$/;" f +getMethodAnnotations .\lib\phprs\util\AnnotationReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method, $record_doc=false)$/;" f +getMethodImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function getMethodImports(ReflectionMethod $method)$/;" f +getMethodName .\lib\phprs\Invoker.php /^ public function getMethodName(){$/;" f +getModifiers .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ protected function getModifiers()$/;" f +getNonCatchablePatterns .\lib\Doctrine\Common\Annotations\DocLexer.php /^ protected function getNonCatchablePatterns()$/;" f +getNonCatchablePatterns .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ abstract protected function getNonCatchablePatterns();$/;" f +getOauthCodeUrl .\framework\class\weixin.account.class.php /^ public function getOauthCodeUrl($callback, $state = '') {$/;" f +getOauthInfo .\framework\class\weixin.account.class.php /^ public function getOauthInfo($code) {$/;" f +getOauthUserInfo .\framework\class\weixin.account.class.php /^ public function getOauthUserInfo($accesstoken, $openid) {$/;" f +getOauthUserInfoUrl .\framework\class\weixin.account.class.php /^ public function getOauthUserInfoUrl($callback, $state = '') {$/;" f +getObj .\lib\phprs\util\IoCFactoryEx.php /^ public function getObj(){$/;" f +getObject .\lib\phprs\util\NewThenInit.php /^ public function getObject(){$/;" f +getParam .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function getParam(name) {$/;" f +getParams .\lib\phprs\BindParams.php /^ public function getParams(){$/;" f +getParams .\lib\phprs\BindReturns.php /^ public function getParams(){$/;" f +getParams .\lib\phprs\BindThrows.php /^ public function getParams(){$/;" f +getParams .\lib\phprs\Invoker.php /^ public function getParams(){$/;" f +getPrivateKey .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getPrivateKey($cert_path) {$/;" f +getProperty .\lib\phprs\util\IoCFactory.php /^ private function getProperty($value){$/;" f +getPropertyAnnotation .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getPropertyAnnotation(ReflectionProperty $property, $annotationName)$/;" f +getPropertyAnnotation .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getPropertyAnnotation(\\ReflectionProperty $property, $annotationName)$/;" f +getPropertyAnnotation .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getPropertyAnnotation(\\ReflectionProperty $property, $annotationName)$/;" f +getPropertyAnnotation .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getPropertyAnnotation(\\ReflectionProperty $property, $annotation)$/;" f +getPropertyAnnotation .\lib\Doctrine\Common\Annotations\Reader.php /^ function getPropertyAnnotation(\\ReflectionProperty $property, $annotationName);$/;" f +getPropertyAnnotation .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getPropertyAnnotation(\\ReflectionProperty $property, $annotationName)$/;" f +getPropertyAnnotations .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ public function getPropertyAnnotations(ReflectionProperty $property)$/;" f +getPropertyAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property)$/;" f +getPropertyAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property)$/;" f +getPropertyAnnotations .\lib\Doctrine\Common\Annotations\IndexedReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property)$/;" f +getPropertyAnnotations .\lib\Doctrine\Common\Annotations\Reader.php /^ function getPropertyAnnotations(\\ReflectionProperty $property);$/;" f +getPropertyAnnotations .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property)$/;" f +getPropertyAnnotations .\lib\phprs\util\AnnotationReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property, $record_doc=false)$/;" f +getPropertyImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private function getPropertyImports(ReflectionProperty $property)$/;" f +getPropertyValue .\lib\phprs\util\IoCFactory.php /^ static function getPropertyValue($refl, $ins, $name)$/;" f +getPublicKey .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getPublicKey($cert_path) {$/;" f +getPulbicKeyByCertId .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getPulbicKeyByCertId($certId) {$/;" f +getQqUserByUId .\framework\model\user.mod.php /^function getQqUserByUId($uid,$db){$/;" f +getQueryCountData .\source\apis\cloud.php /^ public function getQueryCountData($outappid = "",$where_typeid="{=NULL=}",$/;" f +getQueryData .\source\apis\cloud.php /^ public function getQueryData($outappid = "",$where_typeid="{=NULL=}",$page=1,$psize="",$/;" f +getRemoteIP .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private function getRemoteIP()$/;" f +getRemoteIP .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private function getRemoteIP()$/;" f +getRequestParamString .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^function getRequestParamString($params) {$/;" f +getRequestParamString .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^function getRequestParamString($params) {$/;" f +getResponseInfo .\lib\phprs\apis\ApiExporter.php /^ private function getResponseInfo($return)$/;" f +getReturns .\lib\phprs\Invoker.php /^ public function getReturns(){$/;" f +getRoutes .\lib\phprs\Router.php /^ public function getRoutes(){$/;" f +getSignCertId .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function getSignCertId() {$/;" f +getSingleQueryData .\source\apis\cloud.php /^ public function getSingleQueryData($outappid = "",$where_typeid="{=NULL=}",$/;" f +getSnippets .\lib\phprs\util\NestedStringCut.php /^ public function getSnippets(){$/;" f +getText .\lib\phprs\util\NestedStringCut.php /^ public function getText(){$/;" f +getThrows .\lib\phprs\Invoker.php /^ public function getThrows(){$/;" f +getTimeLine .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private function getTimeLine( $level, $FilePath, $FileLine)$/;" f +getTimeLine .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private function getTimeLine( $level, $FilePath, $FileLine)$/;" f +getType .\lib\Doctrine\Common\Annotations\DocLexer.php /^ protected function getType(&$value)$/;" f +getType .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ abstract protected function getType(&$value);$/;" f +getUser .\source\apis\Users.php /^ private function getUser($cond){$/;" f +getUserByAccount .\source\apis\Users.php /^ public function getUserByAccount($account){$/;" f +getUserByAlias .\source\apis\Users.php /^ public function getUserByAlias($alias){$/;" f +getUserById .\framework\model\user.mod.php /^function getUserById($id,$db){$/;" f +getUserByIds .\source\apis\Users.php /^ public function getUserByIds($uids, $asDict=false) {$/;" f +getUserByOpenId .\framework\model\user.mod.php /^function getUserByOpenId($openId,$db){$/;" f +getUserBySid .\source\apis\user.php /^ public function getUserBySid($sid,$scode) {$/;" f +getWeixinUserByUId .\framework\model\user.mod.php /^function getWeixinUserByUId($uid,$db){$/;" f +get_access_token .\loginLib\qq\API\class\QC.class.php /^ public function get_access_token(){$/;" f +get_contents .\loginLib\qq\API\class\URL.class.php /^ public function get_contents($url){$/;" f +get_openid .\loginLib\qq\API\class\Oauth.class.php /^ public function get_openid(){$/;" f +get_sp_key .\payment\baifubao\bfb_sdk.php /^ private function get_sp_key() {$/;" f +get_url_contents .\loginLib\qq\API\comm\utils.php /^function get_url_contents($url)$/;" f +get_url_contents .\loginLib\qq\test\comm\utils.php /^function get_url_contents($url)$/;" f +geteach .\lib\phprs\Router.php /^ $geteach = function ()use($dir){$/;" v +geteach .\lib\phprs\Router.php /^ $geteach = function ()use(&$files){$/;" v +geted .\lib\phprs\util\HttpRouterEntries.php /^ $geted = $visited;$/;" v +geted .\lib\phprs\util\HttpRouterEntries.php /^ $geted=0;$/;" v +getimagesizefromstring .\framework\function\compat.func.php /^ function getimagesizefromstring($string_data) {$/;" f +getip .\framework\function\global.func.php /^function getip() {$/;" f +given .\lib\phprs\Invoker.php /^ $given = count($args);$/;" v +glimpse .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function glimpse()$/;" f +global .\framework\function\communication.func.php /^function ihttp_email($to, $subject, $body, $global = false) {$/;" v +globalIgnoredNames .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private static $globalIgnoredNames = array($/;" v +globalImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private static $globalImports = array($/;" v +globalUserInfo .\source\apis\login.php /^ $globalUserInfo = getUserById($globalUserInfoId,$this->db);$/;" v +globalUserInfoId .\source\apis\login.php /^ $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_WECHAT,$fan['openid'],$this->db,$pdo);$/;" v +globalUserInfoId .\source\apis\login.php /^ $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_WECHAT,$userinfo['openid'],$this->db,$pdo);$/;" v +globalUserInfoId .\source\apis\login.php /^ $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_QQ,$fan['openid'],$this->db,$pdo);$/;" v +globalUserInfoId .\source\apis\login.php /^ $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_QQ,$openId,$this->db,$pdo);$/;" v +got .\lib\phprs\util\IoCFactory.php /^ $got = false;$/;" v +got .\lib\phprs\util\IoCFactoryEx.php /^ $got = false;$/;" v +grandchilds .\framework\model\cache.mod.php /^ $grandchilds = pdo_fetchall('SELECT * FROM ' . tablename('core_menu') . ' WHERE pid = :pid AND is_display = 1 AND type = :type ORDER BY is_system DESC, displayorder DESC, id ASC', array(':pid' => $child['id'], ':type' => 'url'));$/;" v +graph_url .\loginLib\qq\API\class\Oauth.class.php /^ $graph_url = $this->urlUtils->combineURL(self::GET_OPENID_URL, $keysArr);$/;" v +groupBy .\lib\phprs\ezsql\impls.php /^ static public function groupBy($context, $column){$/;" f +groupBy .\lib\phprs\ezsql\rules\select.php /^ public function groupBy($column) {$/;" f +h .\payment\resource\script\kindeditor\plugins\code\prettify.js /^(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\\\x0":"\\\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\\\"||a==="-"||a==="["||a==="]")a="\\\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(\/\\\\u[\\dA-Fa-f]{4}|\\\\x[\\dA-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\S\\s]|[^\\\\]\/g),a=$/;" f +handle .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $handle = fopen ( $filePath, "w+" );$/;" v +handle .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $handle = opendir ( $cert_dir );$/;" v +handleHeader .\lib\phprs\util\Curl.php /^ public function handleHeader($ch, $header_line){$/;" f +hasClass .\lib\phprs\util\IoCFactory.php /^ public function hasClass($id){$/;" f +hasFields .\source\apis\cloud.php /^ $hasFields = array();$/;" v +hash .\framework\function\global.func.php /^ $hash = '';$/;" v +hash .\framework\function\global.func.php /^ $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);$/;" v +havedot .\framework\function\global.func.php /^function cutstr($string, $length, $havedot = false, $charset = '') {$/;" v +having .\lib\phprs\ezsql\impls.php /^ static public function having($context, $expr, $args){$/;" f +having .\lib\phprs\ezsql\rules\select.php /^ public function having($expr, $_=null) {$/;" f +havingArgs .\lib\phprs\ezsql\impls.php /^ static public function havingArgs($context, $args){$/;" f +havingArgs .\lib\phprs\ezsql\rules\select.php /^ public function havingArgs($args) {$/;" f +header .\framework\function\communication.func.php /^ $header = explode("\\r\\n", $split2[1]);$/;" v +header .\lib\phprs\apis\ApiExporter.php /^ $header = "$header$cookie_name=[$arg_name];";$/;" v +header .\lib\phprs\apis\ApiExporter.php /^ $header = "$header$header_name: [$arg_name]\\r\\n";$/;" v +header .\lib\phprs\apis\ApiExporter.php /^ $header = $header."Cookie: ";$/;" v +header .\lib\phprs\apis\ApiExporter.php /^ $header = '';$/;" v +header .\lib\phprs\apis\ApiExporter.php /^ $header = '';$/;" v +header_name .\lib\phprs\apis\ApiExporter.php /^ foreach ($headers as $header_name => $value) {$/;" v +headermeta .\framework\function\communication.func.php /^ $headermeta = explode('HTTP\/', $data);$/;" v +headers .\framework\function\communication.func.php /^ $headers = array();$/;" v +headers .\framework\function\communication.func.php /^ $headers = array('Content-Type' => 'application\/x-www-form-urlencoded');$/;" v +headers .\lib\phprs\Request.php /^ $headers = array();$/;" v +headers .\lib\phprs\apis\ApiExporter.php /^ $headers = $params['header'];$/;" v +headers .\lib\phprs\util\Curl.php /^ public $headers=array();$/;" v +headers .\lib\phprs\util\Curl.php /^ public function GET($url, $headers=null,$followLoc=true){$/;" v +headers .\lib\phprs\util\Curl.php /^ public function POST($url, $content, $headers=null,$followLoc=true){$/;" v +headers .\lib\phprs\util\Curl.php /^ public function PUT($url, $content, $headers=null,$followLoc=true){$/;" v +hook_route .\lib\phprs\Router.php /^ $hook_route=array();$/;" v +hook_routes .\lib\phprs\Router.php /^ private $hook_routes=array();$/;" v +hooks .\lib\phprs\Router.php /^ private $hooks=array();$/;" v +host .\lib\phprs\util\RedisCache.php /^ private $host;$/;" v +html .\framework\function\global.func.php /^ $html = '
          ';$/;" v +html .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ $html = curl_exec ( $ch );$/;" v +html .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $html = <<routes as $http_method=>$route){$/;" v +i .\framework\function\global.func.php /^ for ($j = $i = 0; $i < 256; $i++) {$/;" v +i .\lib\Peekmo\JsonPath\JsonPath.php /^ for ($s = preg_split("\/'?,'?\/", $loc), $i = 0, $n = count($s); $i < $n; $i++)$/;" v +i .\lib\phprs\Response.php /^ $i = 0;$/;" v +i .\lib\phprs\util\Tree.php /^ $i = 0;$/;" v +i .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $i = $i + 2; }$/;" v +i .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $i = $i + 2;$/;" v +iCardLen .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iCardLen = strlen($sCardNO);$/;" v +iPanLen .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iPanLen = strlen($sPan);$/;" v +iRet .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $iRet = openssl_public_encrypt($sInput, $sOutData, $sCrt, OPENSSL_PKCS1_PADDING);$/;" v +iRet .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $iRet = openssl_public_encrypt($sInput, $sOutData, $sCrt, OPENSSL_PKCS1_PADDING);$/;" v +iTemp .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iTemp = $iTemp + 2; $/;" v +iTemp .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iTemp = 1;$/;" v +iTemp .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $iTemp = $iPanLen - 13;$/;" v +iarray_change_key_case .\framework\function\global.func.php /^function iarray_change_key_case($array, $case = CASE_LOWER){$/;" f +id .\framework\function\cache.mysql.func.php /^ $id = Sql::replaceInto('ims_interaction_core_cache')->values($record)->exec($pdo)->lastInsertId();$/;" v +id .\framework\model\user.mod.php /^ $id = Sql::insertInto('ims_interaction_users')->values($insertData)->exec($pdo)->lastInsertId();$/;" v +id .\framework\model\user.mod.php /^ $id = Sql::insertInto('ims_interaction_users_qq')->values($insertData)->exec($pdo)->lastInsertId();$/;" v +id .\framework\model\user.mod.php /^ $id = Sql::insertInto('ims_interaction_users_weixin')->values($insertData)->exec($pdo)->lastInsertId();$/;" v +id .\lib\phprs\BindReturns.php /^ foreach ($calls as $id => $call) {$/;" v +id .\lib\phprs\BindThrows.php /^ foreach ($funcs as $id=>$calls) {$/;" v +id .\lib\phprs\Container.php /^ $id = 0;$/;" v +id .\lib\phprs\Container.php /^ foreach ( $reader->getPropertyAnnotations($property) as $id => $ann){$/;" v +id .\lib\phprs\Invoker.php /^ foreach ($this->method_args as $id => $arg) {$/;" v +id .\lib\phprs\apis\ApiExporter.php /^ 'doc' => $id===-1?null:$this->getDocText($anns['return'][$id]['desc']),$/;" v +id .\lib\phprs\apis\ApiExporter.php /^ foreach ($calls as $id => $call) {$/;" v +id .\lib\phprs\apis\ApiExporter.php /^ foreach ($calls as $id => $call) {$/;" v +id .\lib\phprs\util\AnnotationReader.php /^ $id = $method->getName();$/;" v +id .\lib\phprs\util\AnnotationReader.php /^ $id = $property->getName();$/;" v +id .\lib\phprs\util\IoCFactoryEx.php /^ $this->id = $id;$/;" v +id .\lib\phprs\util\IoCFactoryEx.php /^ private $id;$/;" v +id .\lib\phprs\util\MetaInfo.php /^ foreach ( $reader->getMethodAnnotations($method, $record_doc) as $id => $ann){$/;" v +id .\lib\phprs\util\MetaInfo.php /^ foreach ( $reader->getPropertyAnnotations($property, $record_doc) as $id => $ann){$/;" v +id .\lib\phprs\util\MetaInfo.php /^ foreach ($reader->getClassAnnotations($reflection, $record_doc) as $id =>$ann ){$/;" v +id .\payment\wechat\pay.php /^ $id = date('YmdH');$/;" v +identifier .\lib\Doctrine\Common\Annotations\DocParser.php /^ $identifier = $className . '::' . $const;$/;" v +identifier .\lib\Doctrine\Common\Annotations\DocParser.php /^ $identifier = $this->Identifier();$/;" v +identifier .\lib\phprs\util\DocParser.php /^ $identifier = $className . '::' . $const;$/;" v +identifier .\lib\phprs\util\DocParser.php /^ $identifier = $this->Identifier();$/;" v +idle .\lib\phprs\util\MessagePump.php /^ $idle = array_pop($this->idle_queues[$queue_id]);$/;" v +idle_queues .\lib\phprs\util\MessagePump.php /^ $this->idle_queues = array();$/;" v +idle_queues .\lib\phprs\util\MessagePump.php /^ private $idle_queues = array(); \/\/ 空闲队列$/;" v +ignore .\lib\phprs\apis\ApiExporter.php /^ $ignore = array($/;" v +ignoreNotImportedAnnotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->ignoreNotImportedAnnotations = (boolean) $bool;$/;" v +ignoreNotImportedAnnotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $ignoreNotImportedAnnotations = false;$/;" v +ignore_load_error .\lib\phprs\Router.php /^ public $ignore_load_error=true;$/;" v +ignoredAnnotationNames .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $ignoredAnnotationNames = self::$globalIgnoredNames;$/;" v +ignoredAnnotationNames .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $ignoredAnnotationNames = array();$/;" v +ignoredAnnotationNames .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->ignoredAnnotationNames = $names;$/;" v +ignoredAnnotationNames .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $ignoredAnnotationNames = array();$/;" v +ignoredAnnotationNames .\lib\phprs\util\DocParser.php /^ $this->ignoredAnnotationNames = $names;$/;" v +ignoredAnnotationNames .\lib\phprs\util\DocParser.php /^ private $ignoredAnnotationNames = array();$/;" v +ihtml_entity_decode .\framework\function\global.func.php /^function ihtml_entity_decode($str) {$/;" f +ihtmlspecialchars .\framework\function\global.func.php /^function ihtmlspecialchars($var) {$/;" f +ihttp_email .\framework\function\communication.func.php /^function ihttp_email($to, $subject, $body, $global = false) {$/;" f +ihttp_get .\framework\function\communication.func.php /^function ihttp_get($url) {$/;" f +ihttp_post .\framework\function\communication.func.php /^function ihttp_post($url, $data) {$/;" f +ihttp_request .\framework\function\communication.func.php /^function ihttp_request($url, $post = '', $extra = array(), $timeout = 60) {$/;" f +ihttp_response_parse .\framework\function\communication.func.php /^function ihttp_response_parse($data, $chunked = false) {$/;" f +ihttp_response_parse_unchunk .\framework\function\communication.func.php /^function ihttp_response_parse_unchunk($str = null) {$/;" f +ijson_encode .\framework\function\global.func.php /^function ijson_encode($value) {$/;" f +immediately .\lib\phprs\util\MessagePump.php /^ public function pushAction($queue_id, $action, $args, $exception_handle, $desc, $immediately=false)$/;" v +impl .\lib\phprs\Container.php /^ $this->impl = $this->factory->create($this->class, null, null, function($src, &$succeeded)use($request, &$injected){$/;" v +impl .\lib\phprs\Container.php /^ private $impl;$/;" v +impl .\lib\phprs\Invoker.php /^ $impl = $this->ins->getImpl($request);$/;" v +impl .\lib\phprs\RouterWithCache.php /^ $this->impl = $this->cache->get($key, $ok);$/;" v +impl .\lib\phprs\RouterWithCache.php /^ $this->impl = $this->factory->create('phprs\\\\Router');$/;" v +impl .\lib\phprs\RouterWithCache.php /^ private $impl;$/;" v +impl .\lib\phprs\ezsql\rules\basic.php /^ $this->impl = new OrderByImpl();$/;" v +impl .\lib\phprs\ezsql\rules\basic.php /^ private $impl;$/;" v +impl .\lib\phprs\ezsql\rules\update.php /^ $this->impl = new UpdateSetImpl();$/;" v +impl .\lib\phprs\ezsql\rules\update.php /^ private $impl;$/;" v +impl .\lib\phprs\util\CheckableCache.php /^ $this->impl = $impl;$/;" v +impl .\lib\phprs\util\CheckableCache.php /^ private $impl;$/;" v +imports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $imports = array();$/;" v +imports .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->imports = $imports;$/;" v +imports .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $imports = array();$/;" v +inc .\loginLib\qq\API\class\Recorder.class.php /^ $this->inc = json_decode($incFileContents);$/;" v +inc .\loginLib\qq\API\class\Recorder.class.php /^ private $inc;$/;" v +inc .\loginLib\qq\install\Recorder.class.php /^ $this->inc = json_decode($incFileContents);$/;" v +inc .\loginLib\qq\install\Recorder.class.php /^ private $inc;$/;" v +incFile .\loginLib\qq\install\index.php /^ $incFile = fopen("..\/API\/comm\/inc.php","w+") or die("请设置API\\comm\\inc.php的权限为777");$/;" v +incFileContents .\loginLib\qq\API\class\Recorder.class.php /^ $incFileContents = $incFileContents[1];$/;" v +incFileContents .\loginLib\qq\API\class\Recorder.class.php /^ $incFileContents = file(IA_ROOT."\/loginLib\/qq\/API\/comm\/inc.php");$/;" v +incFileContents .\loginLib\qq\install\Recorder.class.php /^ $incFileContents = file_get_contents(ROOT."comm\/inc.php");$/;" v +includes .\lib\phprs\util\ClassLoader.php /^ static public $includes=array();$/;" v +index .\framework\function\global.func.php /^ foreach ($emotions as $index => $emotion) {$/;" v +index .\framework\model\cache.mod.php /^ foreach ($module_group as $index => $module) {$/;" v +index .\lib\phprs\BindReturns.php /^ foreach ($from as $index=>$name){ \/\/ 输入方法 $index变量序号 $name变量名$/;" v +index .\lib\phprs\BindThrows.php /^ foreach ($from as $index=>$name){ \/\/ 输入方法 $index变量序号 $name变量名$/;" v +info .\lib\phprs\apis\ApiExporter.php /^ $info = array_merge($info, $this->getInvokerInfo($method,$uri, $invoker));$/;" v +info .\lib\phprs\apis\ApiExporter.php /^ $info = $this->getResponseInfo($throw);$/;" v +info .\lib\phprs\apis\ApiExporter.php /^ $info = array_merge($info, $this->getInvokerInfo($method,$uri,$invoker));$/;" v +info .\lib\phprs\apis\ApiExporter.php /^ $info = $this->getResponseInfo($return);$/;" v +info .\lib\phprs\apis\ApiExporter.php /^ $info = new \\ArrayObject(array($/;" v +info .\lib\phprs\apis\ApiExporter.php /^ $info = $this->exportJson();$/;" v +info .\lib\phprs\util\Logger.php /^ public static function info($msg){$/;" f +info .\lib\phprs\util\MetaInfo.php /^ $info = array();$/;" v +info .\payment\baifubao\bfb_sdk.php /^ $info = curl_getinfo($curl);$/;" v +init .\lib\phprs\util\IoCFactoryEx.php /^ $this->init = $init;$/;" v +init .\lib\phprs\util\IoCFactoryEx.php /^ private $init;$/;" v +init .\lib\phprs\util\Logger.php /^ public static function init(){$/;" f +init .\lib\phprs\util\NewThenInit.php /^ public function init($arg0 = null, $_ = null){$/;" f +initArgs .\lib\phprs\util\NewThenInit.php /^ public function initArgs($args){$/;" f +initMap .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function initMap(){$/;" f +initialize .\payment\resource\script\kindeditor\plugins\baidumap\map.html /^ function initialize() {$/;" f +initialize .\payment\resource\script\kindeditor\plugins\map\map.html /^ function initialize() {$/;" f +inject .\lib\phprs\Container.php /^ \/\/public function inject($request){$/;" f +injectDependent .\lib\phprs\util\IoCFactory.php /^ public function injectDependent($refl, $ins, $meta, $properties, $injector=null)$/;" f +injected .\lib\phprs\Container.php /^ $injected = &$this->injected;$/;" v +injected .\lib\phprs\Container.php /^ $injected = array();$/;" v +injected .\lib\phprs\Container.php /^ private $injected;\/\/ 被注入的属性, 记录下来, 可以作为缓存key的一部分$/;" v +injected .\lib\phprs\Invoker.php /^ $injected = $this->ins->getInjected();$/;" v +injector .\lib\phprs\util\IoCFactory.php /^ public function injectDependent($refl, $ins, $meta, $properties, $injector=null)$/;" v +injector .\lib\phprs\util\IoCFactoryEx.php /^ $this->injector = $injector;$/;" v +injector .\lib\phprs\util\IoCFactoryEx.php /^ private $injector;$/;" v +injectors .\lib\phprs\Container.php /^ \/\/private $injectors=array();$/;" v +innerJoin .\lib\phprs\ezsql\rules\select.php /^ public function innerJoin($table) {$/;" f +input .\framework\library\json\JSON.php /^ * $input = file_get_contents('php:\/\/input', 1000000);$/;" v +input .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->input = $input;$/;" v +input .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ private $input;$/;" v +input .\payment\wechat\notify.php /^$input = file_get_contents('php:\/\/input');$/;" v +input .\payment\wechat\rights.php /^$input = file_get_contents('php:\/\/input');$/;" v +input .\payment\wechat\warning.php /^$input = file_get_contents('php:\/\/input');$/;" v +ins .\lib\phprs\Invoker.php /^ $this->ins = $ins;$/;" v +ins .\lib\phprs\Invoker.php /^ private $ins;$/;" v +ins .\lib\phprs\util\IoCFactory.php /^ $ins = $this->singletons[$id];$/;" v +ins .\lib\phprs\util\IoCFactory.php /^ $ins = $class_refl->newInstanceArgs($construct_args);$/;" v +ins .\lib\phprs\util\IoCFactory.php /^ $ins = $nti->getObject();$/;" v +ins .\lib\phprs\util\IoCFactory.php /^ $ins = null;$/;" v +insert .\lib\phprs\util\HttpRouterEntries.php /^ public function insert($query,$e,$strict=false){$/;" f +insert .\lib\phprs\util\Tree.php /^ $insert = true;$/;" v +insert .\lib\phprs\util\Tree.php /^ $insert= false;$/;" v +insert .\lib\phprs\util\Tree.php /^ public function insert( $path, $value, $replace_exits=false, &$replaced=null){$/;" f +insert .\payment\wechat\rights.php /^ $insert = array($/;" v +insertByArray .\lib\phprs\util\HttpRouterEntries.php /^ public function insertByArray($paths,$params,$e){$/;" f +insertData .\framework\model\user.mod.php /^ $insertData = array();$/;" v +insertData .\source\apis\cloud.php /^ $insertData = array();$/;" v +insertInto .\lib\phprs\ezsql\Sql.php /^ static public function insertInto($table) {$/;" f +insertInto .\lib\phprs\ezsql\impls.php /^ static public function insertInto($context, $table) {$/;" f +insertInto .\lib\phprs\ezsql\rules\insert.php /^ public function insertInto($table) {$/;" f +instance .\lib\Doctrine\Common\Annotations\DocParser.php /^ $instance = new $name();$/;" v +intSize .\lib\phprs\ezsql\impls.php /^ $intSize = intval($size);$/;" v +intStart .\lib\phprs\ezsql\impls.php /^ $intStart = intval($start);$/;" v +invokeRoute .\lib\phprs\Router.php /^ private function invokeRoute($routes, $request, &$respond){$/;" f +invoker .\lib\phprs\Container.php /^ $invoker = $this->factory->create('phprs\\Invoker', array($this, $method) );$/;" v +ip .\framework\function\global.func.php /^ $ip = $xip;$/;" v +ip .\framework\function\global.func.php /^ $ip = $_SERVER['HTTP_CDN_SRC_IP'];$/;" v +ip .\framework\function\global.func.php /^ $ip = $_SERVER['HTTP_CLIENT_IP'];$/;" v +ip .\framework\function\global.func.php /^ $ip = $_SERVER['REMOTE_ADDR'];$/;" v +ip .\framework\function\global.func.php /^ static $ip = '';$/;" v +ip .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $ip = trim($ip);$/;" v +ip .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $ip = $this->getRemoteIP();$/;" v +ip .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $ip = trim($ip);$/;" v +ip .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $ip = $this->getRemoteIP();$/;" v +is .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ verify that the class is really meant to be an annotation and not just any ordinary class$/;" c +is .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ verify that the class is really meant to be an annotation$/;" c +is .\payment\baifubao\bfb_sdk.php /^ 'the pay result returned from baifubao pay result interface is invalid, is [%s]', $/;" i +is .\payment\baifubao\bfb_sdk.php /^ 'the sp_no returned from baifubao pay result interface is invaild');$/;" i +isA .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function isA($value, $token)$/;" f +isCacheFresh .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private function isCacheFresh($cacheKey, \\ReflectionClass $class)$/;" f +isEmpty .\lib\phprs\BindParams.php /^ public function isEmpty(){$/;" f +isEmpty .\lib\phprs\BindReturns.php /^ public function isEmpty(){$/;" f +isEmpty .\lib\phprs\BindThrows.php /^ public function isEmpty(){$/;" f +isEmptyString .\framework\function\global.func.php /^function isEmptyString($C_char){$/;" f +isError .\framework\library\json\JSON.php /^ function isError($data, $code = null)$/;" f +isNameToken .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $isNameToken = $token[0] === T_STRING || $token[0] === T_NS_SEPARATOR;$/;" v +isNestedAnnotation .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->isNestedAnnotation = false;$/;" v +isNestedAnnotation .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->isNestedAnnotation = true;$/;" v +isNestedAnnotation .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $isNestedAnnotation = false;$/;" v +isNextToken .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function isNextToken($token)$/;" f +isNextTokenAny .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function isNextTokenAny(array $tokens)$/;" f +isOk .\lib\phprs\util\Curl.php /^ public function isOk(){$/;" f +isOpen .\framework\class\weixin.account.class.php /^ public function fansQueryInfo($uniid,$db,$pdo, $isOpen = true) {$/;" v +isSuccess .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $isSuccess = openssl_verify ( $params_sha1x16, $signature,$public_key, OPENSSL_ALGO_SHA1 );$/;" v +isTrue .\lib\phprs\util\Verify.php /^ static public function isTrue($var, $msg = null)$/;" f +is_base64 .\framework\function\global.func.php /^function is_base64($str){$/;" f +is_const .\lib\phprs\BindReturns.php /^ $is_const = (substr($name, 0, 1) !='$'); $/;" v +is_const .\lib\phprs\BindThrows.php /^ $is_const = (substr($name, 0, 1) !='$');$/;" v +is_const .\lib\phprs\BindThrows.php /^ $is_const = true;$/;" v +is_error .\framework\function\global.func.php /^function is_error($data) {$/;" f +is_ignored .\lib\phprs\apis\ApiExporter.php /^ $is_ignored = true;$/;" v +is_ignored .\lib\phprs\apis\ApiExporter.php /^ $is_ignored = false;$/;" v +is_ignored .\lib\phprs\apis\ApiExporter.php /^ $is_ignored = false;$/;" v +is_optional .\lib\phprs\apis\ApiExporter.php /^ $is_optional = true;$/;" v +is_optional .\lib\phprs\apis\ApiExporter.php /^ $is_optional = true;$/;" v +is_running .\lib\phprs\util\MessagePump.php /^ $this->is_running = false;$/;" v +is_running .\lib\phprs\util\MessagePump.php /^ $this->is_running = true;$/;" v +is_running .\lib\phprs\util\MessagePump.php /^ private $is_running = false;$/;" v +is_serialized .\framework\function\global.func.php /^function is_serialized($data, $strict = true) {$/;" f +is_singleton .\lib\phprs\util\IoCFactory.php /^ $is_singleton = true;$/;" v +is_singleton .\lib\phprs\util\IoCFactory.php /^ $is_singleton = false;$/;" v +ischunk .\framework\function\communication.func.php /^ $ischunk = true;$/;" v +ischunk .\framework\function\communication.func.php /^ $ischunk = false;$/;" v +iserializer .\framework\function\global.func.php /^function iserializer($value) {$/;" f +isetcookie .\framework\function\global.func.php /^function isetcookie($key, $value, $expire = 0, $httponly = false) {$/;" f +isgzip .\framework\function\communication.func.php /^ $isgzip = true;$/;" v +isgzip .\framework\function\communication.func.php /^ $isgzip = false;$/;" v +isimplexml_load_string .\framework\function\global.func.php /^function isimplexml_load_string($string, $class_name = 'SimpleXMLElement', $options = 0, $ns = '', $is_prefix = false) {$/;" f +istripslashes .\framework\function\global.func.php /^function istripslashes($var) {$/;" f +istrlen .\framework\function\global.func.php /^function istrlen($string, $charset = '') {$/;" f +isxml .\payment\wechat\notify.php /^ $isxml = false;$/;" v +isxml .\payment\wechat\notify.php /^$isxml = true;$/;" v +item .\framework\model\cache.mod.php /^ $item = array();$/;" v +item .\lib\Doctrine\Common\Annotations\DocParser.php /^ $item = new \\stdClass();$/;" v +item .\lib\phprs\Router.php /^ $item = each($files);$/;" v +item .\lib\phprs\util\DocParser.php /^ $item = new \\stdClass();$/;" v +iunserializer .\framework\function\global.func.php /^function iunserializer($value) {$/;" f +iv .\framework\function\global.func.php /^ $iv = substr($key, 0, 16);$/;" v +j .\framework\function\global.func.php /^ $j = ($j + $box[$a]) % 256;$/;" v +j .\framework\function\global.func.php /^ $j = ($j + $box[$i] + $rndkey[$i]) % 256;$/;" v +j .\framework\function\global.func.php /^ for ($a = $j = $i = 0; $i < $string_length; $i++) {$/;" v +jValue .\loginLib\qq\API\class\QC.class.php /^ $jValue = explode(":", $v);$/;" v +join .\lib\phprs\ezsql\impls.php /^ static public function join($context, $type, $table) {$/;" f +join .\lib\phprs\ezsql\rules\select.php /^ public function join($table){$/;" f +json .\framework\library\json\JSON.php /^ * $json = new Services_JSON();$/;" v +json .\loginLib\qq\API\class\QC.class.php /^ $json = str_replace("{","",str_replace("}","", $json));$/;" v +jsonPath .\lib\Peekmo\JsonPath\JsonPath.php /^ public function jsonPath(&$obj, $expr, $args = null, $create=false, $default=null)$/;" f +jsonPath .\lib\Peekmo\JsonPath\JsonStore.php /^ $this->jsonPath = new JsonPath();$/;" v +jsonPath .\lib\Peekmo\JsonPath\JsonStore.php /^ private $jsonPath;$/;" v +jsonValue .\loginLib\qq\API\class\QC.class.php /^ $jsonValue = explode(",", $json);$/;" v +json_decode .\framework\function\compat.func.php /^ function json_decode($jsonString) {$/;" f +json_encode .\framework\function\compat.func.php /^ function json_encode($value) {$/;" f +jsonobj .\framework\function\compat.func.php /^ $jsonobj = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);$/;" v +jsonobj .\framework\function\compat.func.php /^ static $jsonobj;$/;" v +k .\framework\function\compat.func.php /^ foreach ($formdata as $k => $v) {$/;" v +k .\framework\function\global.func.php /^ foreach($_SESSION['token'] as $k => $v) {$/;" v +k .\framework\model\cache.mod.php /^ foreach ($setting as $k => $v) {$/;" v +k .\lib\Doctrine\Common\Annotations\DocParser.php /^ foreach ($values as $k => $value) {$/;" v +k .\lib\phprs\Response.php /^ foreach ($args as $k => $v) {$/;" v +k .\lib\phprs\apis\ApiExporter.php /^ \/\/foreach ($words as $k => $word) {$/;" v +k .\lib\phprs\apis\ApiExporter.php /^ foreach ($args as $k => &$arg) {$/;" v +k .\lib\phprs\apis\ApiExporter.php /^ foreach ($arr as $k => &$v) {$/;" v +k .\lib\phprs\ezsql\impls.php /^ foreach ($args as $k =>$arg){$/;" v +k .\lib\phprs\ezsql\impls.php /^ foreach ($args as $k => $v){$/;" v +k .\lib\phprs\ezsql\impls.php /^ foreach ($orders as $k=>$v){$/;" v +k .\lib\phprs\ezsql\impls.php /^ foreach ($values as $k=>$v){$/;" v +k .\lib\phprs\util\AnnotationCleaner.php /^ foreach ($stateBegin as $k=>$v){$/;" v +k .\lib\phprs\util\DocParser.php /^ foreach ($values as $k => $value) {$/;" v +k .\lib\phprs\util\IoCFactory.php /^ foreach ($value as $k=>$v){$/;" v +k .\lib\phprs\util\NestedStringCut.php /^ foreach ($this->snippets as $k => $v){$/;" v +k .\loginLib\qq\API\class\QC.class.php /^ foreach($obj as $k => $v){$/;" v +k .\loginLib\qq\install\index.php /^ foreach($_POST as $k => $val){$/;" v +k .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $k = $arr ['0'];$/;" v +k .\payment\wechat\notify.php /^ foreach($get as $k => $v) {$/;" v +k .\source\apis\login.php /^ foreach($ret['data'] as $k => $v){$/;" v +k .\source\apis\login.php /^ foreach($userinfo as $k => $v){$/;" v +key .\framework\function\communication.func.php /^ $key = substr($v, 0, $pos);$/;" v +key .\framework\function\compat.func.php /^ function http_build_recursive($formdata, $separator, $key = '', $prefix = '') {$/;" v +key .\framework\function\global.func.php /^ $key = substr(random(20), 0, 4);$/;" v +key .\framework\function\global.func.php /^ foreach ($var as $key => $value) {$/;" v +key .\framework\function\global.func.php /^ $key = base64_decode($encodingaeskey . '=');$/;" v +key .\framework\function\global.func.php /^ $key = md5($key != '' ? $key : $GLOBALS['_W']['config']['setting']['authkey']);$/;" v +key .\framework\function\global.func.php /^ foreach ($array as $key => $value){$/;" v +key .\framework\library\json\JSON.php /^ $key = $parts[1];$/;" v +key .\framework\library\json\JSON.php /^ $key = $this->decode($parts[1]);$/;" v +key .\framework\model\payment.mod.php /^ $key = strtolower($key);$/;" v +key .\framework\model\payment.mod.php /^ foreach($package as $key => $v) {$/;" v +key .\framework\model\payment.mod.php /^ foreach($wOpt as $key => $v) {$/;" v +key .\framework\model\payment.mod.php /^ foreach($set as $key => $value) {$/;" v +key .\lib\Doctrine\Common\Annotations\Annotation.php /^ foreach ($data as $key => $value) {$/;" v +key .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ foreach ($values['literal'] as $key => $var) {$/;" v +key .\lib\Doctrine\Common\Annotations\DocParser.php /^ $key = $this->Constant();$/;" v +key .\lib\Doctrine\Common\Annotations\DocParser.php /^ $key = $this->lexer->token['value'];$/;" v +key .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $key = $this->classNameHashes[$class->name].'#'.$method->getName();$/;" v +key .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $key = $this->classNameHashes[$class->name].'$'.$property->getName();$/;" v +key .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $key = $this->classNameHashes[$class->name];$/;" v +key .\lib\Peekmo\JsonPath\JsonPath.php /^ foreach ($array as $key => $value) {$/;" v +key .\lib\phprs\RouterWithCache.php /^ $key = 'phprs_route3_'.sha1($this->factory->getConfFile());$/;" v +key .\lib\phprs\RouterWithCache.php /^ $key = 'phprs_route3_'.sha1(serialize($this->factory->getConf()));$/;" v +key .\lib\phprs\util\AnnotationReader.php /^ $key = $annot[0];$/;" v +key .\lib\phprs\util\AnnotationReader.php /^ $key= $annot[0];$/;" v +key .\lib\phprs\util\DocParser.php /^ $key = $this->Constant();$/;" v +key .\lib\phprs\util\DocParser.php /^ $key = $this->lexer->token['value'];$/;" v +key .\lib\phprs\util\IoCFactory.php /^ foreach ($dict as $key=>$replace){$/;" v +key .\lib\phprs\util\IoCFactory.php /^ foreach ($params as $key => $param) {$/;" v +key .\lib\phprs\util\IoCFactoryEx.php /^ $key = $this->genKey($method, $arguments);$/;" v +key .\lib\phprs\util\Tree.php /^ $key = $path[$size-1];$/;" v +key .\loginLib\qq\API\class\QC.class.php /^ foreach($argsList as $key => $val){$/;" v +key .\loginLib\qq\API\class\URL.class.php /^ foreach($keysArr as $key => $val){$/;" v +key .\payment\alipay\notify.php /^ foreach($_POST as $key => $value) {$/;" v +key .\payment\alipay\return.php /^foreach ($_GET as $key => $value) {$/;" v +key .\payment\baifubao\bfb_sdk.php /^ foreach ($params as $key => $val) {$/;" v +key .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ foreach ( $params as $key => $value ) {$/;" v +key .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ foreach ( $temp as $key => $val ) {$/;" v +key .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ foreach ( $params as $key => $val ) {$/;" v +key .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ foreach ( $params as $key => $val ) {$/;" v +key .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ foreach ( $params as $key => $value ) {$/;" v +key .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^ foreach ( $params as $key => $value ) {$/;" v +key .\payment\wechat\rights.php /^ $key = strtolower($key);$/;" v +key .\source\apis\cloud.php /^ foreach ($list as $key => &$row) {$/;" v +key .\source\apis\cloud.php /^ foreach ($list as $key => &$row) {$/;" v +keyStr .\loginLib\qq\API\class\URL.class.php /^ $keyStr = implode("&",$valueArr);$/;" v +key_length .\framework\function\global.func.php /^ $key_length = strlen($cryptkey);$/;" v +keya .\framework\function\global.func.php /^ $keya = md5(substr($key, 0, 16));$/;" v +keyb .\framework\function\global.func.php /^ $keyb = md5(substr($key, 16, 16));$/;" v +keyc .\framework\function\global.func.php /^ $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length) : substr(md5(microtime()), -$ckey_length)) : '';$/;" v +keys .\framework\function\global.func.php /^ $keys = array($keys);$/;" v +keys .\framework\model\payment.mod.php /^ $keys = array('appId', 'timeStamp', 'nonceStr', 'package', 'appKey');$/;" v +keys .\lib\Peekmo\JsonPath\JsonStore.php /^ $keys = preg_split($/;" v +keys .\lib\phprs\util\IoCFactory.php /^ $keys = $this->getDictKeys($value);$/;" v +keys .\payment\wechat\rights.php /^ $keys = array('appid', 'timestamp', 'openid', 'appkey');$/;" v +keysArr .\loginLib\qq\API\class\Oauth.class.php /^ $keysArr = array($/;" v +keysArr .\loginLib\qq\API\class\QC.class.php /^ $this->keysArr = array($/;" v +keysArr .\loginLib\qq\API\class\QC.class.php /^ $keysArr = $this->keysArr;$/;" v +keywords .\lib\Peekmo\JsonPath\JsonPath.php /^ private $keywords = array('=', ')', '!', '<', '>');$/;" v +lastInsertId .\lib\phprs\ezsql\impls.php /^ public function lastInsertId($name=null){$/;" f +lastc .\framework\function\global.func.php /^ $lastc = substr($data, -1);$/;" v +left .\lib\phprs\util\MessagePump.php /^ $left = count($actions);$/;" v +left .\lib\phprs\util\Tree.php /^ $left = $path;$/;" v +leftJoin .\lib\phprs\ezsql\rules\select.php /^ public function leftJoin($table){$/;" f +len .\framework\function\communication.func.php /^ $len = hexdec(substr($tmp, 0, $pos));$/;" v +len .\lib\Peekmo\JsonPath\JsonPath.php /^ $len = count($v);$/;" v +len_list .\framework\function\global.func.php /^ $len_list = unpack("N", substr($content, 0, 4));$/;" v +level .\framework\function\global.func.php /^ return $level == 1 ? $s . "<\/xml>" : $s;$/;" v +level .\framework\function\global.func.php /^function array2xml($arr, $level = 1) {$/;" v +lexer .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->lexer = new DocLexer;$/;" v +lexer .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $lexer;$/;" v +lexer .\lib\phprs\util\DocParser.php /^ $this->lexer = new DocLexer;$/;" v +lexer .\lib\phprs\util\DocParser.php /^ private $lexer;$/;" v +lifeTime .\loginLib\qq\test\comm\session.php /^ $this->lifeTime = get_cfg_var("session.gc_maxlifetime");$/;" v +lifeTime .\loginLib\qq\test\comm\session.php /^ private $lifeTime;$/;" v +lifeTime .\loginLib\qq\test\comm\session2.php /^ $this->lifeTime = get_cfg_var("session.gc_maxlifetime");$/;" v +lifeTime .\loginLib\qq\test\comm\session2.php /^ private $lifeTime;$/;" v +limit .\lib\phprs\ezsql\impls.php /^ static public function limit($context, $size){$/;" f +limit .\lib\phprs\ezsql\rules\basic.php /^ public function limit($size) {$/;" f +limit .\lib\phprs\ezsql\rules\select.php /^ public function limit($start, $size) {$/;" f +limitWithOffset .\lib\phprs\ezsql\impls.php /^ static public function limitWithOffset($context,$start, $size){$/;" f +line .\lib\phprs\apis\ApiExporter.php /^ $line = trim($ori_line, "*\/\\r\\n\\t ");$/;" v +line .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $line = iconv('GBK', 'UTF-8', $line);$/;" v +line .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $line = iconv('GBK', 'UTF-8', $line);$/;" v +lineCnt .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $lineCnt = 0;$/;" v +lines .\lib\phprs\apis\ApiExporter.php /^ $lines = explode("\\n", $doc);$/;" v +lines .\lib\phprs\util\Curl.php /^ $lines = explode("\\n", $data, 2);$/;" v +list .\source\apis\cloud.php /^ $list = array();$/;" v +list .\source\apis\cloud.php /^ $list = $sql->get($this->db ,null);$/;" v +list .\source\apis\cloud.php /^ $list = Sql::select($fields)$/;" v +list .\source\apis\cloud.php /^ $list = array();$/;" v +list .\source\apis\cloud.php /^ $list = array();$/;" v +literal .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ $this->literal = $values['literal'];$/;" v +literal .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ public $literal;$/;" v +literal .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ $this->literal = implode(', ', $this->value);$/;" v +literal .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ public $literal;$/;" v +load .\framework\class\loader.class.php /^function load() {$/;" f +load .\lib\phprs\Container.php /^ public function load($class, $method){$/;" f +load .\lib\phprs\Router.php /^ public function load($api_path, $apis=null , $api_method=null){$/;" f +loadAnnotationClass .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function loadAnnotationClass($class)$/;" f +loadApi .\lib\phprs\Router.php /^ private function loadApi(&$routes, $class_file, $class_name, $method=null){$/;" f +loadRoutes .\lib\phprs\Router.php /^ private function loadRoutes(&$routes, $apis_dir, $class, $method){$/;" f +loadedAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ $this->loadedAnnotations = array();$/;" v +loadedAnnotations .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private $loadedAnnotations = array();$/;" v +loadedAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $this->loadedAnnotations = array();$/;" v +loadedAnnotations .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $loadedAnnotations = array();$/;" v +loader .\framework\class\loader.class.php /^ $loader = new Loader();$/;" v +loader .\framework\class\loader.class.php /^ static $loader;$/;" v +loader .\lib\phprs\util\ClassLoader.php /^ * class loader$/;" c +loaders .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ * NOTE: These class loaders HAVE to be silent when a class was not found!$/;" c +loaders .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static private $loaders = array();$/;" v +loc .\lib\Peekmo\JsonPath\JsonPath.php /^ $loc = array_shift($x);$/;" v +local_path .\framework\function\global.func.php /^function tomedia($src, $local_path = false){$/;" v +log .\payment\alipay\notify.php /^ $log = pdo_fetch($sql, $params);$/;" v +log .\payment\alipay\return.php /^ $log = pdo_fetch($sql, $params);$/;" v +log .\payment\baifubao\bfb_sdk.php /^ function log($msg) {$/;" f +log .\payment\baifubao\notify.php /^ $log = pdo_fetch($sql, $params);$/;" v +log .\payment\baifubao\pay.php /^ $log = pdo_fetch($sql, $params);$/;" v +log .\payment\unionpay\notify.php /^ $log = pdo_fetch($sql, $params);$/;" v +log .\payment\unionpay\pay.php /^ $log = pdo_fetch($sql, $params);$/;" v +log .\payment\wechat\notify.php /^ $log = pdo_fetch($sql, $params);$/;" v +log .\payment\wechat\pay.php /^ $log = pdo_fetch($sql, $pars);$/;" v +log .\payment\wechat\pay.php /^$log = Sql::select('ims_interaction_core_paylog.*')$/;" v +log .\source\apis\pay.php /^ $log = $record;$/;" v +log .\source\apis\pay.php /^ $log = null; \/\/ 重置支付记录$/;" v +log .\source\apis\pay.php /^ $log = Sql::select('ims_interaction_core_paylog.*')$/;" v +log_file .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private $log_file;$/;" v +log_file .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private $log_file;$/;" v +login_url .\loginLib\qq\API\class\Oauth.class.php /^ $login_url = $this->urlUtils->combineURL(self::GET_AUTH_CODE_URL, $keysArr);$/;" v +lookahead .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->lookahead = (isset($this->tokens[$this->position]))$/;" v +lookahead .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->lookahead = null;$/;" v +lookahead .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public $lookahead;$/;" v +lowerValue .\lib\Doctrine\Common\Annotations\DocLexer.php /^ $lowerValue = strtolower($value);$/;" v +lpos .\loginLib\qq\API\class\Oauth.class.php /^ $lpos = strpos($response, "(");$/;" v +m .\framework\library\json\JSON.php /^ $m = array();$/;" v +m .\lib\Peekmo\JsonPath\JsonPath.php /^ for ($i=0, $m=0; $i $v) {$/;" v +m .\lib\phprs\apis\ApiExporter.php /^ $m === $method){$/;" v +mBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $mBuf = substr($sPin, $i, 1) . "f";$/;" v +mailer .\framework\function\communication.func.php /^ $mailer = new PHPMailer();$/;" v +mailer .\framework\function\communication.func.php /^ static $mailer;$/;" v +make_sign .\payment\baifubao\bfb_sdk.php /^ private function make_sign($params) {$/;" f +map .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ private static $map = array($/;" v +map .\lib\phprs\util\AutoClassLoader.php /^ private $map=array();$/;" v +mapPos .\lib\phprs\util\NestedStringCut.php /^ public function mapPos($pos){$/;" f +match .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function match($token)$/;" f +match .\lib\phprs\util\DocParser.php /^ private function match($token)$/;" f +matchAny .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function matchAny(array $tokens)$/;" f +matchAny .\lib\phprs\util\DocParser.php /^ private function matchAny(array $tokens)$/;" f +match_path .\lib\phprs\Router.php /^ $match_path = array();$/;" v +matched .\lib\phprs\BindThrows.php /^ $matched = false;$/;" v +matched_path .\lib\phprs\util\HttpRouterEntries.php /^ $matched_path = $walked_path;$/;" v +matches .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $matches = preg_split($regex, $input, -1, $flags);$/;" v +matching .\lib\phprs\util\HttpRouterEntries.php /^ $matching = $node['value'];$/;" v +matching .\lib\phprs\util\HttpRouterEntries.php /^ $matching = null;$/;" v +max .\framework\function\global.func.php /^ $max = strlen($seed) - 1;$/;" v +media2local .\framework\function\global.func.php /^function media2local($media_id, $all = false){$/;" f +members .\source\apis\login.php /^ $members = getQqUserByUId($fan['id'],$this->db);$/;" v +members .\source\apis\login.php /^ $members = getWeixinUserByUId($fan['id'],$this->db);$/;" v +message .\framework\function\global.func.php /^ $message = str_replace($emotion, '', $message);$/;" v +message .\framework\function\global.func.php /^function error($errno, $message = '') {$/;" v +message .\lib\Doctrine\Common\Annotations\DocParser.php /^ $message = sprintf('Expected %s, got ', $expected);$/;" v +message .\lib\phprs\util\Curl.php /^ public function message(){$/;" f +message .\lib\phprs\util\DocParser.php /^ $message = sprintf('Expected %s, got ', $expected);$/;" v +meta .\lib\phprs\util\IoCFactory.php /^ $meta = $this->getMetaInfo($class_refl);$/;" v +meta .\lib\phprs\util\IoCFactoryEx.php /^ $meta = $this->factory->getMetaInfo($this->factory->getClassName($this->id));$/;" v +meta .\lib\phprs\util\IoCFactoryEx.php /^ $meta = $this->getMetaInfo($this->getClassName($id));$/;" v +metadata .\lib\Doctrine\Common\Annotations\DocParser.php /^ $metadata = array($/;" v +metadataParser .\lib\Doctrine\Common\Annotations\DocParser.php /^ private static $metadataParser;$/;" v +metas .\lib\phprs\util\IoCFactory.php /^ $this->metas = $metas;$/;" v +metas .\lib\phprs\util\IoCFactory.php /^ protected $metas; $/;" v +method .\framework\function\communication.func.php /^ $method = empty($post) ? 'GET' : 'POST';$/;" v +method .\lib\phprs\Container.php /^ * @param string $method ==null时load所有方法, !==null时load指定方法$/;" v +method .\lib\phprs\Container.php /^ function __construct($class, $method = null){$/;" v +method .\lib\phprs\Router.php /^ $method = $request['$._SERVER.REQUEST_METHOD'];$/;" v +method .\lib\phprs\Router.php /^ private function loadApi(&$routes, $class_file, $class_name, $method=null){$/;" v +method .\lib\phprs\apis\ApiExporter.php /^ foreach ($hooks as $method => $hook) {$/;" v +method .\lib\phprs\apis\ApiExporter.php /^ foreach ($this->router->getRoutes() as $method => $route) {$/;" v +method .\lib\phprs\util\Curl.php /^ private function execCurl($url, $method='GET', $content=null, $headers=null,$followLoc=true){$/;" v +method .\loginLib\qq\API\class\QC.class.php /^ $method = isset($this->APIMap[$name][2]) ? $this->APIMap[$name][2] : "GET";$/;" v +method .\payment\alipay\notify.php /^ $method = 'payResult';$/;" v +method .\payment\alipay\return.php /^ $method = 'payResult';$/;" v +method .\payment\baifubao\notify.php /^ $method = 'payResult';$/;" v +method .\payment\baifubao\pay.php /^ $method = 'payResult';$/;" v +method .\payment\unionpay\notify.php /^ $method = 'payResult';$/;" v +method .\payment\unionpay\pay.php /^ $method = 'payResult';$/;" v +method .\payment\wechat\notify.php /^ $method = 'payResult';$/;" v +method .\payment\wechat\pay.php /^ $method = 'payResult';$/;" v +method_args .\lib\phprs\Invoker.php /^ private $method_args = array();$/;" v +method_name .\lib\phprs\BindParams.php /^ $this->method_name = $method_name;$/;" v +method_name .\lib\phprs\BindParams.php /^ private $method_name;$/;" v +method_name .\lib\phprs\BindReturns.php /^ $this->method_name = $method_name;$/;" v +method_name .\lib\phprs\BindReturns.php /^ private $method_name;$/;" v +method_name .\lib\phprs\BindThrows.php /^ $this->method_name = $method_name;$/;" v +method_name .\lib\phprs\BindThrows.php /^ private $method_name;$/;" v +method_name .\lib\phprs\Invoker.php /^ $this->method_name = $method->getName();$/;" v +method_name .\lib\phprs\Invoker.php /^ public $method_name;$/;" v +methods .\lib\phprs\util\IoCFactoryEx.php /^ \/*static $methods = [];$/;" v +min_t1 .\source\apis\cloud.php /^ $min_t1="{=NULL=}",$max_t1="{=NULL=}",$count_t1="{=NULL=}",$sum_t1="{=NULL=}",$/;" v +min_t2 .\source\apis\cloud.php /^ $min_t2="{=NULL=}",$max_t2="{=NULL=}",$count_t2="{=NULL=}",$sum_t2="{=NULL=}",$/;" v +min_t3 .\source\apis\cloud.php /^ $min_t3="{=NULL=}",$max_t3="{=NULL=}",$count_t3="{=NULL=}",$sum_t3="{=NULL=}",$/;" v +min_t4 .\source\apis\cloud.php /^ $min_t4="{=NULL=}",$max_t4="{=NULL=}",$count_t4="{=NULL=}",$sum_t4="{=NULL=}",$/;" v +min_t5 .\source\apis\cloud.php /^ $min_t5="{=NULL=}",$max_t5="{=NULL=}",$count_t5="{=NULL=}",$sum_t5="{=NULL=}",$/;" v +min_t6 .\source\apis\cloud.php /^ $min_t6="{=NULL=}",$max_t6="{=NULL=}",$count_t6="{=NULL=}",$sum_t6="{=NULL=}",$/;" v +min_t7 .\source\apis\cloud.php /^ $min_t7="{=NULL=}",$max_t7="{=NULL=}",$count_t7="{=NULL=}",$sum_t7="{=NULL=}",$/;" v +min_t8 .\source\apis\cloud.php /^ $min_t8="{=NULL=}",$max_t8="{=NULL=}",$count_t8="{=NULL=}",$sum_t8="{=NULL=}",$/;" v +min_t9 .\source\apis\cloud.php /^ $min_t9="{=NULL=}",$max_t9="{=NULL=}",$count_t9="{=NULL=}",$sum_t9="{=NULL=}"$/;" v +mkdirs .\lib\phprs\util\FileOp.php /^ static public function mkdirs($path, $mode = 0777) {$/;" f +mode .\framework\library\json\JSON.php /^ $mode = null, $options = null, $userinfo = null)$/;" v +mode .\lib\phprs\util\FileOp.php /^ static public function mkdirs($path, $mode = 0777) {$/;" v +model .\framework\class\loader.class.php /^ function model($name) {$/;" f +module .\framework\function\global.func.php /^ $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');$/;" v +module_ban .\framework\model\cache.mod.php /^ $module_ban = $_W['setting']['module_receive_ban'];$/;" v +modules .\framework\model\cache.mod.php /^ $modules = pdo_fetchall("SELECT name, subscribes FROM ".tablename('modules')." WHERE subscribes <> ''");$/;" v +moveNext .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function moveNext()$/;" f +mrefl .\lib\phprs\apis\ApiExporter.php /^ $mrefl = $refl->getMethod($invoker->getMethodName());$/;" v +msg .\lib\phprs\util\Verify.php /^ static public function isTrue($var, $msg = null)$/;" v +msg .\loginLib\qq\API\class\Oauth.class.php /^ $msg = json_decode($response);$/;" v +msg .\source\apis\HelloWorld.php /^ $this->msg = $msg;$/;" v +msg .\source\apis\HelloWorld.php /^ public $msg;$/;" v +murl .\framework\function\global.func.php /^function murl($segment, $params = array(), $noredirect = true, $addhost = false) {$/;" f +n .\framework\function\global.func.php /^ $n = $tn = $noc = 0;$/;" v +n .\framework\function\global.func.php /^ $n = $noc = 0;$/;" v +n .\lib\Peekmo\JsonPath\JsonPath.php /^ for ($i = 1, $n = count($expr); $i < $n; $i++) {$/;" v +n .\loginLib\qq\API\class\QC.class.php /^ $n = 0;$/;" v +name .\framework\function\communication.func.php /^ foreach ($post as $name => $value) {$/;" v +name .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $name = $class->getName();$/;" v +name .\lib\Doctrine\Common\Annotations\Annotation\Attribute.php /^ public $name;$/;" v +name .\lib\Doctrine\Common\Annotations\DocParser.php /^ $name = $namespace.'\\\\'.$name;$/;" v +name .\lib\Doctrine\Common\Annotations\DocParser.php /^ $name = $this->imports['__NAMESPACE__'].'\\\\'.$name;$/;" v +name .\lib\Doctrine\Common\Annotations\DocParser.php /^ $name = (false !== $pos)$/;" v +name .\lib\Doctrine\Common\Annotations\DocParser.php /^ $name = $this->Identifier();$/;" v +name .\lib\Doctrine\Common\Annotations\DocParser.php /^ \/\/ at this point, $name contains the fully qualified class name of the$/;" c +name .\lib\Doctrine\Common\Annotations\DocParser.php /^ * An array of all valid tokens for a class name.$/;" c +name .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $name = '';$/;" v +name .\lib\Doctrine\Common\Annotations\TokenParser.php /^ * @return string The found class name.$/;" c +name .\lib\Doctrine\Common\Annotations\TokenParser.php /^ * Gets the class name.$/;" c +name .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ foreach ($constants as $name => $value) {$/;" v +name .\lib\Peekmo\JsonPath\JsonPath.php /^ $name = "";$/;" v +name .\lib\Peekmo\JsonPath\JsonStore.php /^ public function add($parentexpr, $value, $name = "")$/;" v +name .\lib\phprs\BindReturns.php /^ $name = substr($name, 1);$/;" v +name .\lib\phprs\Container.php /^ $name = $property->getName();$/;" v +name .\lib\phprs\Request.php /^ $name = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))));$/;" v +name .\lib\phprs\Request.php /^ foreach ($_SERVER as $name => $value)$/;" v +name .\lib\phprs\Response.php /^ foreach ($buffer as $name => $funcs) {$/;" v +name .\lib\phprs\Response.php /^ foreach ($this->sender as $name=>$sender){$/;" v +name .\lib\phprs\Router.php /^ $name = $dir->read();$/;" v +name .\lib\phprs\apis\ApiExporter.php /^ $name = $property->getName();$/;" v +name .\lib\phprs\apis\ApiExporter.php /^ foreach ($files as $name => $value) {$/;" v +name .\lib\phprs\apis\ApiExporter.php /^ foreach ($get as $name => $value) {$/;" v +name .\lib\phprs\apis\ApiExporter.php /^ foreach ($post as $name => $value) {$/;" v +name .\lib\phprs\apis\ApiExporter.php /^ foreach ($fails as $name => $info) {$/;" v +name .\lib\phprs\apis\ApiExporter.php /^ foreach ($api['params'] as $name => $param) {$/;" v +name .\lib\phprs\apis\ApiExporter.php /^ foreach ($api['throws'] as $name => $throws) {$/;" v +name .\lib\phprs\util\CheckableCache.php /^ $name = $this->tag.$name;$/;" v +name .\lib\phprs\util\DocParser.php /^ $name = $this->Identifier();$/;" v +name .\lib\phprs\util\DocParser.php /^ * An array of all valid tokens for a class name.$/;" c +name .\lib\phprs\util\FileExpiredChecker.php /^ foreach ($this->file_name as $name => $time){$/;" v +name .\lib\phprs\util\IoCFactory.php /^ foreach ($properties as $name => $value) {$/;" v +name .\lib\phprs\util\IoCFactory.php /^ $name = $refl->getName();$/;" v +name .\lib\phprs\util\IoCFactory.php /^ foreach ($defaults as $name => $value ){$/;" v +name .\lib\phprs\util\IoCFactoryEx.php /^ $name = $this->factory->getClassName($this->id).'::'.$method;$/;" v +name .\lib\phprs\util\Tree.php /^ foreach ($tree as $name=>$node){$/;" v +name .\source\apis\Users.php /^ $name = md5_file($file);$/;" v +name_value .\framework\library\json\JSON.php /^ function name_value($name, $value)$/;" f +names .\lib\Doctrine\Common\Annotations\Annotation\IgnoreAnnotation.php /^ $this->names = $values['value'];$/;" v +names .\lib\Doctrine\Common\Annotations\Annotation\IgnoreAnnotation.php /^ public $names;$/;" v +names .\lib\Doctrine\Common\Annotations\DocParser.php /^ * class names.$/;" c +names .\lib\Doctrine\Common\Annotations\DocParser.php /^ * fully qualified class names.$/;" c +names .\lib\Doctrine\Common\Annotations\TokenParser.php /^ \/\/ Namespaces and class names are tokenized the same: T_STRINGs$/;" c +names .\lib\Doctrine\Common\Annotations\TokenParser.php /^ * @return array A list with all found class names for a use statement.$/;" c +names .\lib\phprs\util\DocParser.php /^ * class names.$/;" c +names .\lib\phprs\util\DocParser.php /^ * fully qualified class names.$/;" c +namespace .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ foreach (self::$autoloadNamespaces AS $namespace => $dirs) {$/;" v +namespace .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $namespace = preg_quote($class->getNamespaceName());$/;" v +namespaces .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $namespaces = array();$/;" v +native .\lib\phprs\ezsql\Sql.php /^ static public function native($str){$/;" f +newArgs .\lib\phprs\ezsql\impls.php /^ $newArgs=array();$/;" v +newExp .\loginLib\qq\test\comm\session.php /^ $newExp = time() + $this->lifeTime;$/;" v +newExp .\loginLib\qq\test\comm\session2.php /^ $newExp = time() + $this->lifeTime;$/;" v +newId .\lib\phprs\ezsql\Sql.php /^ * $newId = Sql::insertInto('table')$/;" v +newLength .\framework\function\global.func.php /^ $newLength = istrlen($version2);$/;" v +newQueue .\lib\phprs\util\MessagePump.php /^ public function newQueue(callable $onEnd = null)$/;" f +next .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function next($docCommentIsComment = TRUE)$/;" f +next .\lib\phprs\util\NestedStringCut.php /^ $next = 'stateNormal';$/;" v +next .\lib\phprs\util\NestedStringCut.php /^ $next = 'stateESC';$/;" v +next .\lib\phprs\util\NestedStringCut.php /^ $next = 'stateQ';$/;" v +next .\lib\phprs\util\SerializableFunc.php /^ public $next=array();$/;" v +next .\lib\phprs\util\Tree.php /^ $next = &$nul; \/\/$next = null 会导致引用的对象被赋值,而不是next被赋值$/;" v +next .\lib\phprs\util\Tree.php /^ $next = &$pos['next'];$/;" v +next .\lib\phprs\util\Tree.php /^ $next = &$pos;$/;" v +next_action .\lib\phprs\util\MessagePump.php /^ $this->next_action = array();$/;" v +next_action .\lib\phprs\util\MessagePump.php /^ private $next_action = array(); \/\/ 保存下一个操作所在的队列$/;" v +next_idle .\lib\phprs\util\MessagePump.php /^ $this->next_idle = array();$/;" v +next_idle .\lib\phprs\util\MessagePump.php /^ private $next_idle = array(); \/\/ 保存空闲时下一次执行操作所在的队列$/;" v +noCase .\lib\Doctrine\Common\Annotations\DocLexer.php /^ protected $noCase = array($/;" v +node .\lib\phprs\util\HttpRouterEntries.php /^ $node = $root->findNode($find_step);$/;" v +node .\lib\phprs\util\HttpRouterEntries.php /^ $node = $this->routes->findNode($paths, true, true);$/;" v +normalize .\lib\Peekmo\JsonPath\JsonPath.php /^ private function normalize($expression)$/;" f +normalizedFirst .\lib\Peekmo\JsonPath\JsonStore.php /^ private function normalizedFirst($expr, $create,$default)$/;" f +notify_bfb .\payment\baifubao\bfb_sdk.php /^ function notify_bfb() {$/;" f +now .\payment\alipay\notify.php /^ $now = time();$/;" v +now .\payment\alipay\return.php /^ $now = time();$/;" v +now .\payment\baifubao\notify.php /^ $now = time();$/;" v +now .\payment\unionpay\notify.php /^ $now = time();$/;" v +now .\payment\unionpay\pay.php /^ $now = time();$/;" v +now .\payment\wechat\notify.php /^ $now = time();$/;" v +nowTime .\source\apis\appport.php /^ $nowTime = time();$/;" v +nowTime .\source\apis\user.php /^ $nowTime = time();$/;" v +nowtime .\source\apis\appport.php /^ $nowtime = time();$/;" v +ns .\lib\Doctrine\Common\Annotations\DocParser.php /^ $ns = $this->imports['__NAMESPACE__'];$/;" v +ns .\lib\phprs\util\DocParser.php /^ $ns = $this->imports['__NAMESPACE__'];$/;" v +nti .\lib\phprs\util\IoCFactory.php /^ $nti = new NewThenInit($class_refl);$/;" v +nul .\lib\phprs\util\Tree.php /^ $nul = null;$/;" v +num .\framework\function\global.func.php /^ $num = intval($num);$/;" v +num .\lib\phprs\BindReturns.php /^ foreach ($call as $num => $arg) { \/\/ 方法$/;" v +num .\lib\phprs\BindReturns.php /^ foreach ($call as $num => $arg) {$/;" v +num .\lib\phprs\apis\ApiExporter.php /^ foreach ($call as $num => $arg) {$/;" v +num .\lib\phprs\apis\ApiExporter.php /^ foreach ($call as $num => $arg) {$/;" v +num .\lib\phprs\apis\ApiExporter.php /^ foreach ($lines as $num => $ori_line) {$/;" v +numTokens .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $this->numTokens = count($this->tokens);$/;" v +numTokens .\lib\Doctrine\Common\Annotations\TokenParser.php /^ private $numTokens;$/;" v +numeric .\framework\function\global.func.php /^function random($length, $numeric = FALSE) {$/;" v +numeric_prefix .\framework\function\compat.func.php /^ function http_build_query($formdata, $numeric_prefix = null, $arg_separator = null) {$/;" v +o .\lib\Peekmo\JsonPath\JsonPath.php /^ $o = new \\stdClass();$/;" v +o .\lib\Peekmo\JsonPath\JsonStore.php /^ $o =& $o[$keys[$i]];$/;" v +o .\lib\Peekmo\JsonPath\JsonStore.php /^ $o =& $this->data;$/;" v +o .\lib\phprs\util\AnnotationCleaner.php /^ $o = new AnnotationCleaner();$/;" v +oauth .\source\apis\login.php /^ $oauth = $weixin->getOauthInfo($code);$/;" v +obj .\framework\library\json\JSON.php /^ $obj = array();$/;" v +obj .\framework\library\json\JSON.php /^ $obj = new stdClass();$/;" v +obj .\lib\Peekmo\JsonPath\JsonPath.php /^ $this->obj = $obj;$/;" v +obj .\lib\Peekmo\JsonPath\JsonPath.php /^ private $obj = null;$/;" v +obj .\lib\phprs\ezsql\Sql.php /^ $obj = new DeleteRule(new SqlConetxt());$/;" v +obj .\lib\phprs\ezsql\Sql.php /^ $obj = new ReplaceIntoRule(new SqlConetxt());$/;" v +obj .\lib\phprs\ezsql\Sql.php /^ $obj = new InsertRule(new SqlConetxt());$/;" v +obj .\lib\phprs\ezsql\Sql.php /^ $obj = new SelectRule(new SqlConetxt());$/;" v +obj .\lib\phprs\ezsql\Sql.php /^ $obj = new UpdateRule(new SqlConetxt());$/;" v +obj .\lib\phprs\util\IoCFactoryEx.php /^ $this->obj = $this->factory->createRawObject($/;" v +obj .\lib\phprs\util\IoCFactoryEx.php /^ private $obj;$/;" v +obj .\lib\phprs\util\NewThenInit.php /^ $this->obj = $this->refl->newInstanceWithoutConstructor();$/;" v +obj .\lib\phprs\util\NewThenInit.php /^ private $obj;$/;" v +obj .\payment\wechat\notify.php /^ $obj = isimplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v +obj .\payment\wechat\rights.php /^$obj = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v +obj .\payment\wechat\warning.php /^$obj = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v +objToArr .\loginLib\qq\API\class\QC.class.php /^ private function objToArr($obj){$/;" f +of .\lib\phprs\ezsql\impls.php /^ static public function of($context, $column){$/;" f +of .\lib\phprs\ezsql\rules\select.php /^ public function of($column){$/;" f +offest .\lib\phprs\apis\ApiExporter.php /^ $offest = count(HttpRouterEntries::stringToPath($api['root'])); \/\/ 相对于绝对路径的偏移$/;" v +offsetExists .\lib\phprs\Request.php /^ public function offsetExists($offset){$/;" f +offsetExists .\lib\phprs\Response.php /^ public function offsetExists($offset)$/;" f +offsetGet .\lib\phprs\Request.php /^ public function offsetGet($offset)$/;" f +offsetGet .\lib\phprs\Response.php /^ public function &offsetGet($offset)$/;" f +offsetSet .\lib\phprs\Request.php /^ public function offsetSet($offset, $value)$/;" f +offsetSet .\lib\phprs\Response.php /^ public function offsetSet($offset, $value)$/;" f +offsetUnset .\lib\phprs\Request.php /^ public function offsetUnset($offset)$/;" f +offsetUnset .\lib\phprs\Response.php /^ public function offsetUnset($offset)$/;" f +ok .\lib\phprs\RouterWithCache.php /^ $ok=false;$/;" v +oldLength .\framework\function\global.func.php /^ $oldLength = istrlen($version1);$/;" v +on .\lib\phprs\ezsql\impls.php /^ static public function on($context, $condition) {$/;" f +on .\lib\phprs\ezsql\rules\select.php /^ public function on($condition){$/;" f +onBridgeReady .\payment\wechat\pay.php /^document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {$/;" f +onEnd .\lib\phprs\util\MessagePump.php /^ public function newQueue(callable $onEnd = null)$/;" v +onend .\lib\phprs\util\MessagePump.php /^ $onend = $this->end_handles[$queue_id];$/;" v +op .\lib\phprs\ezsql\impls.php /^ $op = array_keys($v)[0];$/;" v +op .\lib\phprs\ezsql\impls.php /^ $op = strtoupper($op);$/;" v +op .\lib\phprs\ezsql\impls.php /^ if($op == 'IN' || $op == 'NOT IN'){$/;" v +op .\lib\phprs\util\IoCFactoryEx.php /^ $op = $this->getCacheOptions($method);$/;" v +open .\loginLib\qq\test\comm\session.php /^ function open($savePath, $sessName) $/;" f +open .\loginLib\qq\test\comm\session2.php /^ function open($savePath, $sessName) $/;" f +openId .\source\apis\login.php /^ $openId = $qc->get_openid();$/;" v +openId_exist .\framework\model\user.mod.php /^ $openId_exist = Sql::select('ims_interaction_users.id')$/;" v +openid .\framework\class\weixin.account.class.php /^ $openid = $uniid;$/;" v +openid .\loginLib\qq\API\class\QC.class.php /^ if($access_token === "" || $openid === ""){$/;" v +openid .\loginLib\qq\API\class\QC.class.php /^ public function __construct($access_token = "", $openid = ""){$/;" v +operation .\framework\function\global.func.php /^function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {$/;" v +ops .\lib\phprs\ezsql\impls.php /^ $ops = ['=', '>', '<', '<>', '>=', '<=', 'IN', 'NOT IN', 'BETWEEN', 'LIKE'];$/;" v +opt .\framework\function\communication.func.php /^ foreach ($extra as $opt => $value) {$/;" v +opt .\framework\function\communication.func.php /^ foreach ($extra as $opt => $value) {$/;" v +optimizerPlusLoadComments .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function optimizerPlusLoadComments()$/;" f +optimizerPlusSaveComments .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function optimizerPlusSaveComments()$/;" f +optionArgList .\loginLib\qq\API\class\QC.class.php /^ $optionArgList = array();\/\/一些多项选填参数必选一的情形$/;" v +options .\lib\phprs\ezsql\DB.php /^ $options = [\\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES'utf8';"]){$/;" v +opts .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ $opts = getRequestParamString ( $params );$/;" v +opts .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^ $opts = getRequestParamString ( $params );$/;" v +ord_chrs_c .\framework\library\json\JSON.php /^ $ord_chrs_c = ord($chrs{$c});$/;" v +ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x08:$/;" v +ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x09:$/;" v +ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x0A:$/;" v +ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x0C:$/;" v +ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x0D:$/;" v +ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x22:$/;" v +ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x2F:$/;" v +ord_var_c .\framework\library\json\JSON.php /^ case $ord_var_c == 0x5C:$/;" v +ord_var_c .\framework\library\json\JSON.php /^ $ord_var_c = ord($var{$c});$/;" v +order .\lib\phprs\ezsql\impls.php /^ public function orderBy($context, $column, $order=null){$/;" v +order .\lib\phprs\ezsql\rules\basic.php /^ public function orderBy($column, $order=null) {$/;" v +order .\lib\phprs\ezsql\rules\select.php /^ $this->order = new OrderByImpl();$/;" v +order .\lib\phprs\ezsql\rules\select.php /^ private $order;$/;" v +order .\lib\phprs\ezsql\rules\select.php /^ public function orderBy($column, $order=null) {$/;" v +orderBy .\lib\phprs\ezsql\impls.php /^ public function orderBy($context, $column, $order=null){$/;" f +orderBy .\lib\phprs\ezsql\rules\basic.php /^ public function orderBy($column, $order=null) {$/;" f +orderBy .\lib\phprs\ezsql\rules\select.php /^ public function orderBy($column, $order=null) {$/;" f +orderByArgs .\lib\phprs\ezsql\impls.php /^ public function orderByArgs($context, $orders){$/;" f +orderByArgs .\lib\phprs\ezsql\rules\basic.php /^ public function orderByArgs($orders) {$/;" f +orderByArgs .\lib\phprs\ezsql\rules\select.php /^ public function orderByArgs($args) {$/;" f +order_no .\payment\baifubao\bfb_sdk.php /^ $order_no = $arr_params ['order_no'];$/;" v +order_no .\payment\baifubao\bfb_sdk.php /^ $this->order_no = $arr_params ['order_no'];$/;" v +order_no .\payment\baifubao\bfb_sdk.php /^ $this->order_no = $params ['order_no'];$/;" v +order_no .\payment\baifubao\bfb_sdk.php /^ public $order_no;$/;" v +order_s1 .\source\apis\cloud.php /^ $order_s1="",$order_s2="",$order_s3="",$order_s4="",$order_s5="",$order_s6="",$/;" v +order_s7 .\source\apis\cloud.php /^ $order_s7="",$order_s8="",$order_s9="",$/;" v +order_state .\payment\baifubao\bfb_sdk.php /^ $order_state = $this->query_order_state($order_no);$/;" v +order_t5 .\source\apis\cloud.php /^ $order_t5="",$order_t6="",$order_t7="",$order_t8="",$order_t9="",$/;" v +order_url .\payment\baifubao\pay.php /^$order_url = $bfb_sdk->create_baifubao_pay_order_url($params, sp_conf::BFB_PAY_WAP_DIRECT_URL);$/;" v +order_weid .\source\apis\cloud.php /^ $order_weid="",$order_typeid="",$order_t1="",$order_t2="",$order_t3="",$order_t4="",$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s1` '.$order_s1;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s2` '.$order_s2;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s3` '.$order_s3;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s4` '.$order_s4;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s5` '.$order_s5;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s6` '.$order_s6;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s7` '.$order_s7;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s8` '.$order_s8;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `s9` '.$order_s9;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t1` '.$order_t1;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t2` '.$order_t2;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t3` '.$order_t3;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t4` '.$order_t4;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t5` '.$order_t5;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t6` '.$order_t6;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t7` '.$order_t7;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t8` '.$order_t8;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `t9` '.$order_t9;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `typeid` '.$order_typeid;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = ' `weid` '.$order_weid;$/;" v +orderfield .\source\apis\cloud.php /^ $orderfield = '';$/;" v +ori .\lib\phprs\apis\ApiExporter.php /^ $ori = $params->get($param['value']);$/;" v +ori .\lib\phprs\util\HttpRouterEntries.php /^ $ori = $this->routes->export();$/;" v +ori .\lib\phprs\util\NestedStringCut.php /^ $ori = $pos;$/;" v +originalName .\lib\Doctrine\Common\Annotations\DocParser.php /^ $originalName = $name;$/;" v +out_trade_no .\payment\alipay\notify.php /^ $out_trade_no = $_POST['out_trade_no'];$/;" v +outappid .\source\apis\cloud.php /^ if ( $outappid=='{=NULL=}' ) {$/;" v +output .\framework\library\json\JSON.php /^ * $output = $json->encode($value);$/;" v +overwrite .\lib\phprs\util\SaftyFileWriter.php /^ static public function write($path, $data, $overwrite = true){$/;" v +package .\framework\model\payment.mod.php /^ $package = array();$/;" v +pad .\framework\function\global.func.php /^ $pad = 0;$/;" v +pad .\framework\function\global.func.php /^ $pad = ord(substr($decrypted, -1));$/;" v +pad_chr .\framework\function\global.func.php /^ $pad_chr = chr($amount_to_pad);$/;" v +pageSize .\framework\function\global.func.php /^function pagination($total, $pageIndex, $pageSize = 15, $url = '', $context = array('before' => 5, 'after' => 4, 'ajaxcallback' => '')) {$/;" v +pagination .\framework\function\global.func.php /^function pagination($total, $pageIndex, $pageSize = 15, $url = '', $context = array('before' => 5, 'after' => 4, 'ajaxcallback' => '')) {$/;" f +param_name .\lib\phprs\util\IoCFactory.php /^ $param_name = $param->getName();$/;" v +params .\framework\function\cache.mysql.func.php /^ $params = array();$/;" v +params .\framework\function\global.func.php /^function murl($segment, $params = array(), $noredirect = true, $addhost = false) {$/;" v +params .\framework\function\global.func.php /^function wurl($segment, $params = array()) {$/;" v +params .\lib\phprs\BindParams.php /^ $params=array();$/;" v +params .\lib\phprs\BindParams.php /^ private $params= array();$/;" v +params .\lib\phprs\BindReturns.php /^ $params=array();$/;" v +params .\lib\phprs\BindReturns.php /^ private $params= array();\/\/ [目标=>[[是否常量, 值 , 参数位置, 参数信息],..]]$/;" v +params .\lib\phprs\BindThrows.php /^ private $params= array();\/\/ [异常=>[目标]=>[位置=>[值 , 参数信息],..]]$/;" v +params .\lib\phprs\Invoker.php /^ $params = $this->getBindParamPos();$/;" v +params .\lib\phprs\Router.php /^ $params = is_null($params)?null:explode('&', $params);$/;" v +params .\lib\phprs\apis\ApiExporter.php /^ $params = $params->toArray();$/;" v +params .\lib\phprs\apis\ApiExporter.php /^ $params = new JsonStore(array());$/;" v +params .\lib\phprs\ezsql\SqlConetxt.php /^ $this->params = array_merge($this->params, $params);$/;" v +params .\lib\phprs\ezsql\SqlConetxt.php /^ public $params=[];$/;" v +params .\lib\phprs\ezsql\impls.php /^ $params = [];$/;" v +params .\lib\phprs\ezsql\impls.php /^ $params = array();$/;" v +params .\lib\phprs\util\HttpRouterEntries.php /^ $params = array_filter($params,function ($i){return !empty($i);});$/;" v +params .\lib\phprs\util\HttpRouterEntries.php /^ $params = array_filter($params,function ($i){return !empty($i);});$/;" v +params .\lib\phprs\util\HttpRouterEntries.php /^ $params = explode('&', $param);$/;" v +params .\lib\phprs\util\HttpRouterEntries.php /^ $params = is_null($param)?null:explode('&', $param);$/;" v +params .\lib\phprs\util\HttpRouterEntries.php /^ $params = null;$/;" v +params .\lib\phprs\util\IoCFactory.php /^ $params = $refMethod->getParameters();$/;" v +params .\lib\phprs\util\SerializableFunc.php /^ $params = $this->bind;$/;" v +params .\loginLib\qq\API\class\Oauth.class.php /^ $params = array();$/;" v +params .\payment\alipay\notify.php /^ $params = array();$/;" v +params .\payment\alipay\return.php /^ $params = array();$/;" v +params .\payment\baifubao\bfb_sdk.php /^ $params = array ($/;" v +params .\payment\baifubao\notify.php /^ $params = array();$/;" v +params .\payment\baifubao\pay.php /^ $params = array();$/;" v +params .\payment\baifubao\pay.php /^$params = @json_decode(base64_decode($sl), true);$/;" v +params .\payment\baifubao\pay.php /^$params = array ($/;" v +params .\payment\unionpay\notify.php /^ $params = array();$/;" v +params .\payment\unionpay\pay.php /^ $params = array();$/;" v +params .\payment\unionpay\pay.php /^$params = @json_decode(base64_decode($sl), true);$/;" v +params .\payment\unionpay\pay.php /^$params = array($/;" v +params .\payment\wechat\notify.php /^ $params = array();$/;" v +params .\payment\wechat\pay.php /^$params = @json_decode(base64_decode($sl), true);$/;" v +params .\payment\wechat\pay.php /^$params = array($/;" v +params .\source\apis\Users.php /^ $params = array();$/;" v +params .\source\apis\cloud.php /^ $params = array();$/;" v +params_sha1x16 .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $params_sha1x16 = sha1 ( $params_str, FALSE );$/;" v +params_str .\payment\baifubao\bfb_sdk.php /^ $params_str = http_build_query($params);$/;" v +params_str .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^ $params_str = '';$/;" v +params_str .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^ $params_str = '';$/;" v +params_str .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $params_str = coverParamsToString ( $params );$/;" v +params_str .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $params_str = coverParamsToString ( $params );$/;" v +parent .\lib\Peekmo\JsonPath\JsonStore.php /^ $parent = is_array($parent) ? $parent : array();$/;" v +parent .\lib\phprs\util\IoCFactory.php /^ $parent = $refl->getParentClass();$/;" v +pars .\payment\wechat\pay.php /^ $pars = array();$/;" v +parse .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function parse($input, $context = '')$/;" f +parse .\lib\phprs\util\DocParser.php /^ public function parse($input, $context = '', $record_doc)$/;" f +parseClass .\lib\Doctrine\Common\Annotations\PhpParser.php /^ public function parseClass(\\ReflectionClass $class)$/;" f +parseClass .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function parseClass()$/;" f +parseNamespace .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function parseNamespace()$/;" f +parseReturnData .\lib\phprs\util\Curl.php /^ public function parseReturnData($data){$/;" f +parseUseStatement .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function parseUseStatement()$/;" f +parseUseStatements .\lib\Doctrine\Common\Annotations\TokenParser.php /^ public function parseUseStatements($namespaceName)$/;" f +parser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $this->parser = new DocParser;$/;" v +parser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $parser;$/;" v +parser .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ $this->parser = new DocParser();$/;" v +parser .\lib\Doctrine\Common\Annotations\SimpleAnnotationReader.php /^ protected $parser;$/;" v +parser .\lib\phprs\util\AnnotationReader.php /^ $this->parser= new DocParser();$/;" v +parser .\lib\phprs\util\AnnotationReader.php /^ private $parser ;$/;" v +parts .\framework\library\json\JSON.php /^ $parts = array();$/;" v +path .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $path = $this->dir.'\/'.strtr($key, '\\\\', '-').'.cache.php';$/;" v +path .\lib\phprs\Container.php /^ $path = $class_ann['path'][0]['value'];$/;" v +path .\lib\phprs\Container.php /^ $this->path = $path;$/;" v +path .\lib\phprs\Container.php /^ public $path;$/;" v +path .\lib\phprs\Router.php /^ $path = $apis_dir. str_replace('\\\\', '\/', $entry);$/;" v +path .\lib\phprs\Router.php /^ $path = $request['$.path'];$/;" v +path .\lib\phprs\apis\ApiExporter.php /^ $path = $path . '&';$/;" v +path .\lib\phprs\apis\ApiExporter.php /^ $path = $path . '?';$/;" v +path .\lib\phprs\apis\ApiExporter.php /^ $path = "$path$name=[$arg_name]";$/;" v +path .\lib\phprs\apis\ApiExporter.php /^ $path = "$path?[$arg_name]";$/;" v +path .\lib\phprs\apis\ApiExporter.php /^ $path = $api['uri'][0];$/;" v +path .\lib\phprs\util\ClassLoader.php /^ $path = $path . '\/' . str_replace('\\\\', '\/', $classname) . '.php';$/;" v +path .\lib\phprs\util\ClassLoader.php /^ $path = self::$class_map[$classname];$/;" v +path .\lib\phprs\util\FileCache.php /^ $path = $this->cache_dir.'\/'.sha1($key);$/;" v +path .\lib\phprs\util\FileOp.php /^ $path = '';$/;" v +path .\lib\phprs\util\HttpRouterEntries.php /^ $path = str_replace('\\\\', '\/', $path);$/;" v +path .\lib\phprs\util\SaftyFileWriter.php /^ $path = str_replace('\\\\', '\/', $path);$/;" v +pathToString .\lib\phprs\util\HttpRouterEntries.php /^ static public function pathToString($path){$/;" f +path_str .\lib\phprs\util\HttpRouterEntries.php /^ $path_str = self::pathToString($path);$/;" v +paths .\lib\phprs\Request.php /^ $paths = array_filter($paths,function ($i){return $i !== '';});$/;" v +paths .\lib\phprs\Request.php /^ $paths = array_slice($paths, $this->url_begin);$/;" v +paths .\lib\phprs\Request.php /^ $paths = explode('\/', $full_path);$/;" v +paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = array('');$/;" v +paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = array_filter($paths, function ($i){return !empty($i);});$/;" v +paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = array_filter($paths,function ($i){return $i!== '\/' &&!empty($i);});$/;" v +paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = array_filter($paths,function ($i){return !empty($i);});$/;" v +paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = explode('\/', $path);$/;" v +paths .\lib\phprs\util\HttpRouterEntries.php /^ $paths = self::stringToPath($path);$/;" v +pay .\source\apis\pay.php /^class pay {$/;" c +pay_url .\payment\baifubao\bfb_sdk.php /^ $pay_url = $url;$/;" v +paylog .\payment\baifubao\pay.php /^$paylog = pdo_fetch($sql, array(':plid' => $params['tid']));$/;" v +paylog .\payment\unionpay\pay.php /^$paylog = pdo_fetch($sql, array(':plid' => $params['tid']));$/;" v +payment .\payment\baifubao\notify.php /^$payment = $setting['payment']['baifubao'];$/;" v +payment .\payment\baifubao\pay.php /^$payment = $setting['payment']['baifubao'];$/;" v +payment .\payment\unionpay\notify.php /^$payment = $setting['payment']['unionpay'];$/;" v +payment .\payment\unionpay\pay.php /^$payment = $setting['payment']['unionpay'];$/;" v +pdata .\framework\function\global.func.php /^ $pdata = array($/;" v +pdo .\lib\phprs\ezsql\impls.php /^ $this->pdo = $pdo;$/;" v +pdo .\lib\phprs\ezsql\impls.php /^ public $pdo;$/;" v +pdo .\source\apis\Users.php /^ $pdo = $this->db;$/;" v +pdo .\source\apis\cloud.php /^ $pdo = $this->db;$/;" v +pdo .\source\apis\login.php /^ $pdo = $this->db;$/;" v +pdo .\source\apis\pay.php /^ $pdo = $this->db;$/;" v +peek .\lib\Doctrine\Common\Annotations\DocParser.php /^ if ((null === $peek = $this->lexer->glimpse())$/;" v +peek .\lib\Doctrine\Common\Annotations\DocParser.php /^ $peek = $this->lexer->glimpse();$/;" v +peek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $peek = $this->peek();$/;" v +peek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->peek = 0;$/;" v +peek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ private $peek = 0;$/;" v +peek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function peek()$/;" f +peek .\lib\phprs\util\DocParser.php /^ if ((null === $peek = $this->lexer->glimpse())$/;" v +peek .\lib\phprs\util\DocParser.php /^ $peek = $this->lexer->glimpse();$/;" v +phpParser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $this->phpParser = new PhpParser;$/;" v +phpParser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $phpParser;$/;" v +pindex .\source\apis\cloud.php /^ $pindex = max(1, intval($page));$/;" v +pkcs12 .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $pkcs12 = file_get_contents ( $cert_path );$/;" v +pkcs12certdata .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $pkcs12certdata = file_get_contents ( $cert_path );$/;" v +plid .\source\apis\pay.php /^ $plid = Sql::insertInto('ims_interaction_core_paylog')$/;" v +plus_s1 .\source\apis\cloud.php /^ $plus_s1 = "{=NULL=}",$plus_s2 = "{=NULL=}",$plus_s3 = "{=NULL=}",$/;" v +plus_s4 .\source\apis\cloud.php /^ $plus_s4 = "{=NULL=}",$plus_s5 = "{=NULL=}",$plus_s6 = "{=NULL=}",$/;" v +plus_s7 .\source\apis\cloud.php /^ $plus_s7 = "{=NULL=}",$plus_s8 = "{=NULL=}",$/;" v +plus_s9 .\source\apis\cloud.php /^ $plus_s9 = "{=NULL=}",$where_id="",$where_weid="",$where_typeid="{=NULL=}",$where_t1="",$where_t2="",$/;" v +plus_t1 .\source\apis\cloud.php /^ $plus_t1 = "",$plus_t2 = "",$plus_t3 = "",$plus_t4 = "",$plus_t5 = "",$plus_t6 = "",$/;" v +plus_t7 .\source\apis\cloud.php /^ $plus_t7 = "",$plus_t8 = "",$plus_t9 = "",$sub_t1 = "",$sub_t2 = "",$sub_t3 = "",$/;" v +pointer .\lib\Doctrine\Common\Annotations\TokenParser.php /^ private $pointer = 0;$/;" v +port .\lib\phprs\util\RedisCache.php /^ private $port;$/;" v +pos .\framework\function\communication.func.php /^ $pos = strpos($tmp, $eol);$/;" v +pos .\framework\function\communication.func.php /^ $pos = strpos($v, ':');$/;" v +pos .\framework\function\communication.func.php /^ $pos = strpos($data, "\\r\\n\\r\\n");$/;" v +pos .\lib\Doctrine\Common\Annotations\DocParser.php /^ case (false !== $pos = strpos($type, '<')):$/;" v +pos .\lib\Doctrine\Common\Annotations\DocParser.php /^ case (false !== $pos = strrpos($type, '[')):$/;" v +pos .\lib\Doctrine\Common\Annotations\DocParser.php /^ $pos = $this->findInitialTokenPosition($input);$/;" v +pos .\lib\Doctrine\Common\Annotations\DocParser.php /^ $pos = 0;$/;" v +pos .\lib\Peekmo\JsonPath\JsonPath.php /^ if (false !== $pos = $this->strpos_array($substr, $this->keywords)) {$/;" v +pos .\lib\Peekmo\JsonPath\JsonPath.php /^ if (false !== $pos = strpos($haystack, $needle)) {$/;" v +pos .\lib\phprs\BindParams.php /^ $pos = $step;$/;" v +pos .\lib\phprs\BindParams.php /^ $pos = -1;$/;" v +pos .\lib\phprs\BindParams.php /^ foreach ($this->params as $pos=>$param){$/;" v +pos .\lib\phprs\BindReturns.php /^ $pos = $step;$/;" v +pos .\lib\phprs\BindReturns.php /^ $pos = -1;$/;" v +pos .\lib\phprs\ezsql\impls.php /^ $pos = $cut->mapPos($pos);$/;" v +pos .\lib\phprs\ezsql\impls.php /^ $pos = self::findQ($cutted, 0, $k);$/;" v +pos .\lib\phprs\util\AnnotationCleaner.php /^ $pos = strpos($this->tmp, "*\/");$/;" v +pos .\lib\phprs\util\AnnotationCleaner.php /^ $pos = strpos($this->tmp, "\\n");$/;" v +pos .\lib\phprs\util\DocParser.php /^ $pos = $this->findInitialTokenPosition($input);$/;" v +pos .\lib\phprs\util\DocParser.php /^ $pos = 0;$/;" v +pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $posDQ;$/;" v +pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $posQ;$/;" v +pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $this->$state($str, $pos, $state);$/;" v +pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $posESC;$/;" v +pos .\lib\phprs\util\NestedStringCut.php /^ $pos = $posSQ;$/;" v +pos .\lib\phprs\util\NestedStringCut.php /^ $pos = 0;$/;" v +pos .\lib\phprs\util\SaftyFileWriter.php /^ $pos = strrpos ($path, '\/');$/;" v +pos .\lib\phprs\util\Tree.php /^ $pos = &$next[$i];$/;" v +pos .\lib\phprs\util\Tree.php /^ $pos = &$next[self::$wildcard];$/;" v +pos .\lib\phprs\util\Tree.php /^ $pos = &$this->arr;$/;" v +posDQ .\lib\phprs\util\NestedStringCut.php /^ $posDQ = strpos($str, '"', $pos);$/;" v +posESC .\lib\phprs\util\NestedStringCut.php /^ $posESC = strpos($str, '\\\\', $pos);$/;" v +posQ .\lib\phprs\util\NestedStringCut.php /^ $posQ = strpos($str, $this->subStateQ, $pos);$/;" v +posSQ .\lib\phprs\util\NestedStringCut.php /^ $posSQ = strpos($str, '\\'', $pos);$/;" v +position .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->position = $position;$/;" v +position .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->position = 0;$/;" v +position .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ private $position = 0;$/;" v +post .\framework\function\communication.func.php /^ $post = http_build_query($post);$/;" v +post .\framework\function\communication.func.php /^function ihttp_request($url, $post = '', $extra = array(), $timeout = 60) {$/;" v +post .\lib\phprs\Request.php /^ $post = json_decode($post, true);$/;" v +post .\lib\phprs\Request.php /^ $post = file_get_contents('php:\/\/input');$/;" v +post .\lib\phprs\apis\ApiExporter.php /^ $post = $params['_POST'];$/;" v +post .\loginLib\qq\API\class\URL.class.php /^ public function post($url, $keysArr, $flag = 0){$/;" f +postAddData .\source\apis\cloud.php /^ public function postAddData($weid = 0,$typeid = "",$outappid = "{=NULL=}",$/;" f +postDelData .\source\apis\cloud.php /^ public function postDelData($outappid = "",$where_id="",$where_weid="",$where_typeid="{=NULL=}",$where_t1="",$where_t2="",$where_t3="",$where_t4="",$where_t5="",$/;" f +postEditData .\source\apis\cloud.php /^ public function postEditData($weid = 0,$typeid = "",$outappid = "",$/;" f +pre .\framework\function\global.func.php /^ $pre = '{%';$/;" v +pre .\loginLib\qq\API\class\QC.class.php /^ $pre = "#";$/;" v +preParser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $this->preParser = new DocParser;$/;" v +preParser .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ private $preParser;$/;" v +prefix .\lib\phprs\ezsql\impls.php /^ $prefix = ',';$/;" v +prefix .\lib\phprs\ezsql\impls.php /^ $prefix = 'SET ';$/;" v +prefix .\lib\phprs\ezsql\impls.php /^ $prefix = '';$/;" v +prepares .\framework\model\payment.mod.php /^ $prepares = array();$/;" v +prepares .\payment\alipay\notify.php /^ $prepares = array();$/;" v +prepares .\payment\alipay\return.php /^$prepares = array();$/;" v +prepayid .\framework\model\payment.mod.php /^ $prepayid = $xml->prepay_id;$/;" v +priority .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $this->priority = $priority;$/;" v +priority .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ if ( $priority == PhpLog::OFF ) return;$/;" v +priority .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ private $priority = PhpLog::INFO;$/;" v +priority .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $this->priority = $priority;$/;" v +priority .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ if ( $priority == PhpLog::OFF ) return;$/;" v +priority .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ private $priority = PhpLog::INFO;$/;" v +private_key .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $private_key = getPrivateKey ( $cert_path );$/;" v +properties .\framework\library\json\JSON.php /^ $properties = array_map(array($this, 'name_value'),$/;" v +properties .\framework\library\json\JSON.php /^ $properties = array_map(array($this, 'name_value'),$/;" v +properties .\lib\phprs\util\IoCFactory.php /^ $properties = array_merge($class['properties'], $properties);$/;" v +properties .\lib\phprs\util\IoCFactory.php /^ $properties=array();$/;" v +properties .\lib\phprs\util\IoCFactory.php /^ $properties = array();$/;" v +properties .\lib\phprs\util\IoCFactoryEx.php /^ $this->properties = $properties;$/;" v +properties .\lib\phprs\util\IoCFactoryEx.php /^ private $properties;$/;" v +property .\lib\Doctrine\Common\Annotations\DocParser.php /^ $property = 'value';$/;" v +property .\lib\Doctrine\Common\Annotations\DocParser.php /^ if ( ! $property = self::$annotationMetadata[$name]['default_property']) {$/;" v +property .\lib\Doctrine\Common\Annotations\DocParser.php /^ foreach (self::$annotationMetadata[$name]['enum'] as $property => $enum) {$/;" v +property .\lib\Doctrine\Common\Annotations\DocParser.php /^ foreach ($values as $property => $value) {$/;" v +property .\lib\Doctrine\Common\Annotations\DocParser.php /^ foreach (self::$annotationMetadata[$name]['attribute_types'] as $property => $type) {$/;" v +property .\lib\phprs\util\IoCFactory.php /^ foreach ($meta['inject'] as $property => $value) {$/;" v +property .\lib\phprs\util\IoCFactory.php /^ foreach ($meta['property'] as $property => $value) {$/;" v +protocol .\lib\phprs\Bootstrap.php /^ $protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP\/1.0');$/;" v +proxytype .\framework\function\communication.func.php /^ $proxytype = 'CURLPROXY_' . strtoupper($urls['scheme']);$/;" v +ps .\source\apis\pay.php /^ $ps = array();$/;" v +psize .\source\apis\cloud.php /^ $psize = 20;$/;" v +psize .\source\apis\cloud.php /^ $psize = intval($psize);$/;" v +public_key .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $public_key = getPulbicKeyByCertId ( $params ['certId'] ); $/;" v +public_key .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $public_key = getPublicKey ( $cert_path );$/;" v +pushAction .\lib\phprs\util\MessagePump.php /^ public function pushAction($queue_id, $action, $args, $exception_handle, $desc, $immediately=false)$/;" f +pushIdle .\lib\phprs\util\MessagePump.php /^ public function pushIdle($queue_id, $action, $args, $exception_handle, $desc)$/;" f +pwd .\lib\phprs\util\RedisCache.php /^ private $pwd;$/;" v +q .\payment\resource\script\kindeditor\plugins\code\prettify.js /^var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;$/;" v +qc .\loginLib\qq\test\add_idol\add_idol.php /^ $qc = new QC();$/;" v +qc .\loginLib\qq\test\add_pic_t\add_pic_t.php /^ $qc = new QC();$/;" v +qc .\loginLib\qq\test\blog\add_blog.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\check_fan\check_page_fans.php /^ $qc = new QC();$/;" v +qc .\loginLib\qq\test\get_fanslist\get_fanslist.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\get_idollist\get_idollist.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\get_info\get_info.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\get_repost_list\get_repost_list .php /^ $qc = new QC();$/;" v +qc .\loginLib\qq\test\get_tenpay_addr\get_tenpay_addr.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\oauth\callback.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\oauth\index.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\photo\add_album.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\photo\list_album.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\photo\upload_pic.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\photo\upload_pic_p.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\share\add_share.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\topic\add_topic.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\user\get_user_info.php /^$qc = new QC();$/;" v +qc .\loginLib\qq\test\weibo\add_weibo.php /^$qc = new QC();$/;" v +qc .\source\apis\login.php /^ $qc = new QC($access_token,$openId);$/;" v +qc .\source\apis\login.php /^ $qc = new QC();$/;" v +qqLogin .\source\apis\login.php /^ public function qqLogin($scode, $target) {$/;" f +qqLoginCallback .\source\apis\login.php /^ public function qqLoginCallback() {$/;" f +qqUserInfo .\framework\model\user.mod.php /^ $qqUserInfo = Sql::select('ims_interaction_users_qq.*')$/;" v +qq_callback .\loginLib\qq\API\class\Oauth.class.php /^ public function qq_callback(){$/;" f +qq_login .\loginLib\qq\API\class\Oauth.class.php /^ public function qq_login(){$/;" f +query .\lib\phprs\Request.php /^ $query = array();$/;" v +queryString .\framework\function\global.func.php /^ $queryString = http_build_query($params, '', '&');$/;" v +queryString .\lib\phprs\Request.php /^ $queryString = file_get_contents('php:\/\/input');$/;" v +query_baifubao_pay_result_by_order_no .\payment\baifubao\bfb_sdk.php /^ function query_baifubao_pay_result_by_order_no($order_no) {$/;" f +query_order_state .\payment\baifubao\bfb_sdk.php /^ private function query_order_state($order_no) {$/;" f +query_url .\payment\baifubao\bfb_sdk.php /^ $query_url = sp_conf::BFB_QUERY_ORDER_URL . '?' . $params_str;$/;" v +querys .\lib\phprs\util\HttpRouterEntries.php /^ $querys = $value->export(); \/\/提取querystring$/;" v +queue_id .\lib\phprs\util\MessagePump.php /^ $queue_id = array_pop($this->next_idle);$/;" v +queue_id .\lib\phprs\util\MessagePump.php /^ $queue_id = array_pop($this->next_action);$/;" v +r .\lib\Peekmo\JsonPath\JsonStore.php /^ $r = $value;$/;" v +random .\framework\function\global.func.php /^function random($length, $numeric = FALSE) {$/;" f +range .\framework\function\global.func.php /^ $range = array();$/;" v +range_limit .\framework\function\global.func.php /^function range_limit($num, $downline, $upline, $returnNear = true) {$/;" f +rankId .\source\apis\cloud.php /^ $rankId = Sql::insertInto('ims_sdk_'.$outappid.'rank')->values($insertData)->exec($pdo)->lastInsertId();$/;" v +read .\loginLib\qq\API\class\Recorder.class.php /^ public function read($name){$/;" f +read .\loginLib\qq\install\Recorder.class.php /^ public function read($name){$/;" f +read .\loginLib\qq\test\comm\session.php /^ function read($sessID) $/;" f +read .\loginLib\qq\test\comm\session2.php /^ function read($sessID) $/;" f +readInc .\loginLib\qq\API\class\Recorder.class.php /^ public function readInc($name){$/;" f +readInc .\loginLib\qq\install\Recorder.class.php /^ public function readInc($name){$/;" f +reader .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ $this->reader = $reader;$/;" v +reader .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private $reader;$/;" v +reader .\lib\phprs\Container.php /^ $reader= new AnnotationReader($reflection);$/;" v +reader .\lib\phprs\util\MetaInfo.php /^ $reader= new AnnotationReader($reflection); $/;" v +realpath .\lib\phprs\Router.php /^ $realpath = preg_replace('\/\\\/+\/', '\/', '\/'.$uri);$/;" v +realpath .\lib\phprs\Router.php /^ Logger::debug("api: $http_method $realpath => $class_name::{$entry[1]->method_name} ok, strict:$strict");$/;" v +record .\framework\class\weixin.account.class.php /^ $record = array();$/;" v +record .\framework\function\cache.mysql.func.php /^ $record = array();$/;" v +record .\payment\alipay\notify.php /^ $record = array();$/;" v +record .\payment\alipay\return.php /^ $record = array();$/;" v +record .\payment\baifubao\notify.php /^ $record = array();$/;" v +record .\payment\unionpay\notify.php /^ $record = array();$/;" v +record .\payment\unionpay\pay.php /^ $record = array();$/;" v +record .\payment\wechat\notify.php /^ $record = array();$/;" v +record .\source\apis\pay.php /^ $record = array();$/;" v +record_doc .\lib\phprs\util\AnnotationReader.php /^ public function getClassAnnotations(\\ReflectionClass $class, $record_doc=false)$/;" v +record_doc .\lib\phprs\util\AnnotationReader.php /^ public function getMethodAnnotations(\\ReflectionMethod $method, $record_doc=false)$/;" v +record_doc .\lib\phprs\util\AnnotationReader.php /^ public function getPropertyAnnotations(\\ReflectionProperty $property, $record_doc=false)$/;" v +record_doc .\lib\phprs\util\MetaInfo.php /^ static function get($inst, $record_doc=false, $select=null){$/;" v +recorder .\loginLib\qq\API\class\ErrorCase.class.php /^ $recorder = new Recorder();$/;" v +recorder .\loginLib\qq\API\class\Oauth.class.php /^ $this->recorder = new Recorder();$/;" v +recorder .\loginLib\qq\API\class\Oauth.class.php /^ protected $recorder;$/;" v +redis .\lib\phprs\util\RedisCache.php /^ $this->redis = new \\Redis();$/;" v +redis .\lib\phprs\util\RedisCache.php /^ private $redis;$/;" v +reduce_string .\framework\library\json\JSON.php /^ function reduce_string($str)$/;" f +refMethod .\lib\phprs\util\IoCFactory.php /^ $refMethod = $class->getConstructor();$/;" v +referer .\framework\function\global.func.php /^function referer($default = '') {$/;" f +refl .\lib\phprs\apis\ApiExporter.php /^ $refl = new \\ReflectionClass($invoker->getClassName());$/;" v +refl .\lib\phprs\util\IoCFactory.php /^ $refl = $class;$/;" v +refl .\lib\phprs\util\IoCFactory.php /^ $refl = new \\ReflectionClass($class);$/;" v +refl .\lib\phprs\util\IoCFactoryEx.php /^ $refl = new \\ReflectionClass($this->factory->getClassName($this->id));$/;" v +refl .\lib\phprs\util\NewThenInit.php /^ $this->refl = $class;$/;" v +refl .\lib\phprs\util\NewThenInit.php /^ $this->refl = new \\ReflectionClass($class);$/;" v +refl .\lib\phprs\util\NewThenInit.php /^ private $refl;$/;" v +reflClass .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $reflClass = new \\ReflectionClass($className);$/;" v +reflection .\lib\phprs\Container.php /^ $reflection = new \\ReflectionClass($class);$/;" v +reflection .\lib\phprs\util\MetaInfo.php /^ $reflection = new \\ReflectionClass($inst);$/;" v +regex .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $regex = sprintf($/;" v +regex .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ static $regex;$/;" v +registerAutoloadNamespace .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerAutoloadNamespace($namespace, $dirs = null)$/;" f +registerAutoloadNamespaces .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerAutoloadNamespaces(array $namespaces)$/;" f +registerFile .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerFile($file)$/;" f +registerLoader .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function registerLoader($callable)$/;" f +remove .\lib\Peekmo\JsonPath\JsonStore.php /^ public function remove($expr)$/;" f +rep_str .\payment\baifubao\bfb_sdk.php /^ $rep_str = "" . sp_conf::BFB_NOTIFY_META .$/;" v +replace .\lib\phprs\Response.php /^ 'status' => function ($var, $replace = true)$/;" v +replace .\lib\phprs\util\ClassLoader.php /^ static public function addClassMap($map, $replace=false){$/;" v +replaceByDict .\lib\phprs\util\IoCFactory.php /^ private function replaceByDict($value, $dict){ $/;" f +replaceInto .\lib\phprs\ezsql\Sql.php /^ static public function replaceInto($table){$/;" f +replaceInto .\lib\phprs\ezsql\impls.php /^ static public function replaceInto($context, $table) {$/;" f +replaceInto .\lib\phprs\ezsql\rules\replace.php /^ public function replaceInto($table) {$/;" f +replace_exits .\lib\phprs\util\Tree.php /^ public function insert( $path, $value, $replace_exits=false, &$replaced=null){$/;" v +replaced .\lib\phprs\util\Tree.php /^ $replaced = $node['value'];$/;" v +req_path .\lib\phprs\apis\ApiExporter.php /^ $req_path = $params['path']; \/\/ 请求中使用的路径, 这是相对路径$/;" v +request .\lib\phprs\Router.php /^ $request = new Request(null,$this->url_begin);$/;" v +request .\payment\baifubao\bfb_sdk.php /^ function request($url) {$/;" f +required .\lib\Doctrine\Common\Annotations\Annotation\Attribute.php /^ public $required = false;$/;" v +requiredError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function requiredError($attributeName, $annotationName, $context, $expected)$/;" f +required_num .\lib\phprs\Invoker.php /^ $required_num = 0;$/;" v +required_num .\lib\phprs\Invoker.php /^ $required_num = key($args) + 1;$/;" v +res .\lib\Peekmo\JsonPath\JsonPath.php /^ $res = eval("\\$name = $expr;");$/;" v +res .\lib\Peekmo\JsonPath\JsonStore.php /^ $res = $this->jsonPath->jsonPath($this->data, $expr, array("resultType" => "PATH"), $create,$default);$/;" v +res .\lib\phprs\Invoker.php /^ $res = call_user_func_array(array($/;" v +res .\lib\phprs\Invoker.php /^ $res = call_user_func_array(array($/;" v +res .\lib\phprs\Request.php /^ $res = $this->data->get($offset);$/;" v +res .\lib\phprs\Request.php /^ $res= $this->data->get($expr, false, $create);$/;" v +res .\lib\phprs\Router.php /^ $res = new BufferedRespond();$/;" v +res .\lib\phprs\Router.php /^ $res = new BufferedRespond();$/;" v +res .\lib\phprs\apis\ApiExporter.php /^ $res = array();$/;" v +res .\lib\phprs\ezsql\Sql.php /^ * $res = Sql::select('a, b')$/;" v +res .\lib\phprs\ezsql\impls.php /^ $res = $st->fetchAll(\\PDO::FETCH_ASSOC);$/;" v +res .\lib\phprs\util\CheckableCache.php /^ $res = $this->impl->get($name, $succeeded);$/;" v +res .\lib\phprs\util\CheckableCache.php /^ $res = $this->impl->set($name, array($/;" v +res .\lib\phprs\util\Curl.php /^ $res = new CurlResponse();$/;" v +res .\lib\phprs\util\FileCache.php /^ $res = file_get_contents($path);$/;" v +res .\lib\phprs\util\FileExpiredChecker.php /^ $res = true;$/;" v +res .\lib\phprs\util\FileExpiredChecker.php /^ $res = false;$/;" v +res .\lib\phprs\util\HttpRouterEntries.php /^ $res = array();$/;" v +res .\lib\phprs\util\IoCFactoryEx.php /^ $res = $methods[$name]->invokeArgs($this->getObj(), $arguments);$/;" v +res .\lib\phprs\util\IoCFactoryEx.php /^ $res = call_user_func_array([$this->getObj(),$method], $arguments);$/;" v +res .\lib\phprs\util\IoCFactoryEx.php /^ $res = $this->cache->get($key, $got);$/;" v +res .\lib\phprs\util\RedisCache.php /^ $res = unserialize($res);$/;" v +res .\lib\phprs\util\RedisCache.php /^ $res = $this->getImpl()->get($key);$/;" v +res .\lib\phprs\util\SerializableFunc.php /^ $res = call_user_func_array($this->func, $params);$/;" v +res .\lib\phprs\util\Tree.php /^ $res = true;$/;" v +res .\lib\phprs\util\Tree.php /^ $res = false;$/;" v +res .\lib\phprs\util\Tree.php /^ $res=array();$/;" v +res .\loginLib\qq\test\comm\session.php /^ $res = mysql_query("SELECT * FROM ".self::db_table." $/;" v +res .\loginLib\qq\test\comm\session.php /^ $res = mysql_query("SELECT session_data AS d FROM ".self::db_table." $/;" v +res .\loginLib\qq\test\comm\session2.php /^ $res = @mysql_query("SELECT * FROM ".self::db_table." $/;" v +res .\loginLib\qq\test\comm\session2.php /^ $res = @mysql_query("SELECT session_data AS d FROM ".self::db_table." $/;" v +res .\payment\baifubao\bfb_sdk.php /^ $res = curl_exec($curl); $err = curl_error($curl);$/;" v +res .\source\apis\Users.php /^ $res = Sql::select('uid')->from('pre_common_member_profile')->where('realname = ? AND uid <> ?', $alias, $uid)->forUpdate()->get($pdo);$/;" v +res .\source\apis\Users.php /^ $res = Sql::select('uid')->from('pre_common_member_profile')->where('realname = ?', $alias)->forUpdate()->get($pdo);$/;" v +res .\source\apis\Users.php /^ $res = Sql::select('uid')->from('uc_members')->where($/;" v +res .\source\apis\Users.php /^ $res = Sql::select('uid')->from('uc_members')->where('username=?',$account)->forUpdate()->get($this->db);$/;" v +res .\source\apis\Users.php /^ $res = $this->getUserByIds([$uid]);$/;" v +res .\source\apis\Users.php /^ $res = Sql::select('uc_members.uid',$/;" v +res .\source\apis\Users.php /^ $res = Sql::select('uid, password, salt')->from('uc_members')$/;" v +res .\source\apis\appport.php /^ $res = Sql::select('ims_interaction_users_qq.access_id,ims_interaction_users_qq.access_key')$/;" v +res .\source\apis\appport.php /^ $res = Sql::select('ims_interaction_users_qq.sid')$/;" v +res .\source\apis\user.php /^ $res = Sql::select('ims_interaction_users.*')$/;" v +reset .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ static public function reset()$/;" f +reset .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function reset()$/;" f +reset .\lib\phprs\util\Curl.php /^ public function reset(){$/;" f +resetPeek .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function resetPeek()$/;" f +resetPosition .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function resetPosition($position = 0)$/;" f +respond .\lib\phprs\Router.php /^ $respond = new Response();$/;" v +response .\framework\class\weixin.account.class.php /^ $response = ihttp_get($apiurl);$/;" v +response .\framework\class\weixin.account.class.php /^ $response = ihttp_get($url);$/;" v +response .\framework\class\weixin.account.class.php /^ $response = ihttp_post($url, json_encode($data));$/;" v +response .\framework\model\payment.mod.php /^ $response = ihttp_request('https:\/\/api.mch.weixin.qq.com\/pay\/unifiedorder', $dat);$/;" v +response .\framework\model\payment.mod.php /^ $response = ihttp_request(ALIPAY_GATEWAY . '?' . http_build_query($set, '', '&'), array(), array('CURLOPT_FOLLOWLOCATION' => 0));$/;" v +response .\lib\phprs\util\Curl.php /^ $response = curl_exec($this->ch);$/;" v +response .\loginLib\qq\API\class\Oauth.class.php /^ $response = substr($response, $lpos + 1, $rpos - $lpos -1);$/;" v +response .\loginLib\qq\API\class\Oauth.class.php /^ $response = substr($response, $lpos + 1, $rpos - $lpos -1);$/;" v +response .\loginLib\qq\API\class\Oauth.class.php /^ $response = $this->urlUtils->get_contents($graph_url);$/;" v +response .\loginLib\qq\API\class\Oauth.class.php /^ $response = $this->urlUtils->get_contents($token_url);$/;" v +response .\loginLib\qq\API\class\QC.class.php /^ $response = $this->urlUtils->get($baseUrl, $keysArr);$/;" v +response .\loginLib\qq\API\class\QC.class.php /^ $response = json_decode($this->_applyAPI($arg[0], $argsList, $baseUrl, $method));$/;" v +response .\loginLib\qq\API\class\QC.class.php /^ else $response = $this->urlUtils->post($baseUrl, $keysArr, 0);$/;" v +response .\loginLib\qq\API\class\QC.class.php /^ if($baseUrl == "https:\/\/graph.qq.com\/blog\/add_one_blog") $response = $this->urlUtils->post($baseUrl, $keysArr, 1);$/;" v +response .\loginLib\qq\API\class\URL.class.php /^ $response = curl_exec($ch);$/;" v +response .\loginLib\qq\API\class\URL.class.php /^ $response = file_get_contents($url);$/;" v +responseArr .\loginLib\qq\API\class\QC.class.php /^ $responseArr = $this->objToArr($response);$/;" v +responseArr .\loginLib\qq\API\class\QC.class.php /^ $responseArr = $this->simple_json_parser($this->_applyAPI($arg[0], $argsList, $baseUrl, $method));$/;" v +response_arr .\payment\baifubao\bfb_sdk.php /^ $response_arr = json_decode(json_encode(isimplexml_load_string($content)), true);$/;" v +restoreFilters .\lib\Peekmo\JsonPath\JsonPath.php /^ private function restoreFilters($filter)$/;" f +result .\framework\class\weixin.account.class.php /^ $result = @json_decode($response['content'], true);$/;" v +result .\framework\function\cache.mysql.func.php /^ $result = pdo_query($sql);$/;" v +result .\framework\function\cache.mysql.func.php /^ $result = pdo_query($sql, $params);$/;" v +result .\framework\function\cache.mysql.func.php /^ $result = array();$/;" v +result .\framework\function\global.func.php /^ $result = json_decode(json_encode($xmlobj), true);$/;" v +result .\framework\function\global.func.php /^ $result = '';$/;" v +result .\framework\function\global.func.php /^ $result = array();$/;" v +result .\framework\function\global.func.php /^ $result = substr($decrypted, 0, (strlen($decrypted) - $pad));$/;" v +result .\framework\function\global.func.php /^ $result = unserialize($value);$/;" v +result .\framework\model\cache.mod.php /^ $result = pdo_fetchall("SHOW COLUMNS FROM " . tablename('mc_members'));$/;" v +result .\lib\Peekmo\JsonPath\JsonPath.php /^ $this->result = array(); \/\/ result array was temporarily used as a buffer ..$/;" v +result .\lib\Peekmo\JsonPath\JsonPath.php /^ private $result = array();$/;" v +result .\loginLib\qq\API\comm\utils.php /^ $result = curl_exec($ch);$/;" v +result .\loginLib\qq\test\comm\utils.php /^ $result = curl_exec($ch);$/;" v +result .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $result = array ();$/;" v +result .\payment\wechat\notify.php /^ $result = array($/;" v +result .\payment\wechat\notify.php /^ $result = array($/;" v +result .\payment\wechat\notify.php /^ $result = array($/;" v +result .\source\apis\appport.php /^ $result = array();$/;" v +result .\source\apis\login.php /^ $result = array();$/;" v +result .\source\apis\user.php /^ $result = array();$/;" v +resultType .\lib\Peekmo\JsonPath\JsonPath.php /^ $this->resultType = ($args ? $args['resultType'] : "VALUE");$/;" v +resultType .\lib\Peekmo\JsonPath\JsonPath.php /^ if ($expr && $obj!==null && ($this->resultType == "VALUE" || $this->resultType == "PATH")) {$/;" v +resultType .\lib\Peekmo\JsonPath\JsonPath.php /^ private $resultType = "Value";$/;" v +ret .\loginLib\qq\API\class\URL.class.php /^ $ret = curl_exec($ch);$/;" v +ret .\loginLib\qq\API\comm\utils.php /^ $ret = curl_exec($ch);$/;" v +ret .\loginLib\qq\test\add_idol\add_idol.php /^ $ret = $qc->add_idol($_POST);$/;" v +ret .\loginLib\qq\test\add_pic_t\add_pic_t.php /^ $ret = $qc->add_pic_t($_POST);$/;" v +ret .\loginLib\qq\test\blog\add_blog.php /^$ret = $qc->add_one_blog($_POST);$/;" v +ret .\loginLib\qq\test\check_fan\check_page_fans.php /^ $ret = $qc->check_page_fans($_GET);$/;" v +ret .\loginLib\qq\test\comm\utils.php /^ $ret = curl_exec($ch);$/;" v +ret .\loginLib\qq\test\get_fanslist\get_fanslist.php /^$ret = $qc->get_fanslist($setting);$/;" v +ret .\loginLib\qq\test\get_idollist\get_idollist.php /^$ret = $qc->get_idollist($setting);$/;" v +ret .\loginLib\qq\test\get_info\get_info.php /^$ret = $qc->get_info();$/;" v +ret .\loginLib\qq\test\get_repost_list\get_repost_list .php /^ $ret = $qc->add_pic_t($_POST);$/;" v +ret .\loginLib\qq\test\get_tenpay_addr\get_tenpay_addr.php /^$ret = $qc->get_tenpay_addr();$/;" v +ret .\loginLib\qq\test\share\add_share.php /^$ret = $qc->add_share($_GET);$/;" v +ret .\loginLib\qq\test\topic\add_topic.php /^$ret = $qc->add_topic($_POST);$/;" v +ret .\loginLib\qq\test\weibo\add_weibo.php /^$ret = $qc->add_t($_POST);$/;" v +ret .\payment\alipay\notify.php /^ $ret = array();$/;" v +ret .\payment\alipay\return.php /^ $ret = array();$/;" v +ret .\payment\baifubao\notify.php /^ $ret = array();$/;" v +ret .\payment\baifubao\pay.php /^ $ret = array();$/;" v +ret .\payment\unionpay\notify.php /^ $ret = array();$/;" v +ret .\payment\unionpay\pay.php /^ $ret = array();$/;" v +ret .\payment\wechat\notify.php /^ $ret = array();$/;" v +ret .\payment\wechat\pay.php /^ $ret = array();$/;" v +ret .\source\apis\login.php /^ $ret = $qc->get_info();$/;" v +retry .\payment\baifubao\bfb_sdk.php /^ $retry = 0;$/;" v +return .\framework\function\global.func.php /^ $return = false;$/;" v +return .\framework\function\global.func.php /^ $return = true;$/;" v +return .\framework\function\global.func.php /^ $return = array();$/;" v +return .\payment\resource\script\kindeditor\kindeditor-min.js /^\/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http:\/\/www.kindsoft.net\/license.php *\/(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;creturn_val = $var;$/;" v +return_val .\lib\phprs\BindReturns.php /^ private $return_val;$/;" v +reurl .\framework\function\global.func.php /^ $reurl = parse_url($_W['referer']);$/;" v +rightJoin .\lib\phprs\ezsql\rules\select.php /^ public function rightJoin($table) {$/;" f +rlt .\framework\function\communication.func.php /^ $rlt = array();$/;" v +rlt .\framework\function\compat.func.php /^ $rlt = '';$/;" v +rndkey .\framework\function\global.func.php /^ $rndkey = array();$/;" v +root .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $root = SDK_FILE_DOWN_PATH;$/;" v +route .\lib\phprs\Container.php /^ $route = $ann['value'];$/;" v +route .\lib\phprs\util\HttpRouterEntries.php /^ $route=$value;$/;" v +route .\lib\phprs\util\HttpRouterEntries.php /^ $route = $node['value'];$/;" v +route .\lib\phprs\util\HttpRouterEntries.php /^ $route = new Tree();$/;" v +route .\lib\phprs\util\HttpRouterEntries.php /^ $route=null;$/;" v +route .\lib\phprs\util\HttpRouterEntries.php /^ $route=null;$/;" v +route_path .\lib\phprs\apis\ApiExporter.php /^ $route_path = HttpRouterEntries::stringToPath($api['uri'][1]); \/\/ 这是绝对路径$/;" v +router .\lib\phprs\Bootstrap.php /^ $router = $factory->create('phprs\\\\RouterWithCache');$/;" v +router .\lib\phprs\apis\ApiExporter.php /^ private $router;$/;" v +routes .\lib\phprs\Container.php /^ public $routes=array(); \/\/['GET'=>[Invoker,Invoker,Invoker...],'POST',....];$/;" v +routes .\lib\phprs\Router.php /^ private $routes=array();$/;" v +routes .\lib\phprs\util\HttpRouterEntries.php /^ $this->routes = new Tree();$/;" v +routes .\lib\phprs\util\HttpRouterEntries.php /^ private $routes;$/;" v +row .\framework\function\communication.func.php /^ $row = pdo_fetch("SELECT `notify` FROM " . tablename('uni_settings') . " WHERE uniacid = :uniacid", array(':uniacid' => $_W['uniacid']));$/;" v +rows .\lib\phprs\ezsql\Sql.php /^ * $rows = Sql::deleteFrom('table')$/;" v +rows .\lib\phprs\ezsql\Sql.php /^ * $rows = Sql::update('table')$/;" v +rows .\lib\phprs\ezsql\impls.php /^ $this->rows = $this->st->rowCount();$/;" v +rows .\lib\phprs\ezsql\impls.php /^ public $rows;$/;" v +rpos .\loginLib\qq\API\class\Oauth.class.php /^ $rpos = strrpos($response, ")");$/;" v +rs .\framework\function\cache.mysql.func.php /^ $rs = Sql::select('ims_interaction_core_cache.*')$/;" v +run .\lib\phprs\Bootstrap.php /^ static public function run($conf_file) {$/;" f +run .\lib\phprs\util\MessagePump.php /^ public function run()$/;" f +s .\framework\function\global.func.php /^ $s = $level == 1 ? "" : '';$/;" v +s .\framework\function\global.func.php /^ $s = preg_replace("\/([\\x01-\\x08\\x0b-\\x0c\\x0e-\\x1f])+\/", ' ', $s);$/;" v +s .\lib\Peekmo\JsonPath\JsonPath.php /^ $s = explode(":", preg_replace("\/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$\/", "$1:$2:$3", $loc));$/;" v +s1 .\source\apis\cloud.php /^ $s1 = "{=NULL=}",$s2 = "{=NULL=}",$s3 = "{=NULL=}",$s4 = "{=NULL=}",$s5 = "{=NULL=}",$/;" v +s6 .\source\apis\cloud.php /^ $s6 = "{=NULL=}",$s7 = "{=NULL=}",$s8 = "{=NULL=}",$s9 = "{=NULL=}"$/;" v +s6 .\source\apis\cloud.php /^ $s6 = "{=NULL=}",$s7 = "{=NULL=}",$s8 = "{=NULL=}",$s9 = "{=NULL=}",$/;" v +sAarray .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sAarray = array();$/;" v +sAarray .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sAarray = debug_backtrace();$/;" v +sAarray .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sAarray = array();$/;" v +sAarray .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sAarray = debug_backtrace();$/;" v +sAarray .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sAarray = array();$/;" v +sAarray .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sAarray = debug_backtrace();$/;" v +sAarray .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sAarray = array();$/;" v +sAarray .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sAarray = debug_backtrace();$/;" v +sBase64EncodeOutData .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sBase64EncodeOutData = base64_encode($sOutData); $/;" v +sBase64EncodeOutData .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sBase64EncodeOutData = base64_encode($sOutData); $/;" v +sBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sBuf = array();$/;" v +sCardNO .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sCardNO = "0" . $sCardNO;$/;" v +sCardNO .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sCardNO = "00" . $sCardNO;$/;" v +sCrt .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sCrt = fread($fp, 8192);$/;" v +sCrt .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sCrt = fread($fp, 8192);$/;" v +sGetFileLine .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sGetFileLine = $sAarray[0]["line"];$/;" v +sGetFileLine .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sGetFileLine = $sAarray[0]["line"];$/;" v +sGetFileLine .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sGetFileLine = $sAarray[0]["line"];$/;" v +sGetFileLine .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sGetFileLine = $sAarray[0]["line"];$/;" v +sGetFilePath .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sGetFilePath = $sAarray[0]["file"];$/;" v +sGetFilePath .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $sGetFilePath = $sAarray[0]["file"];$/;" v +sGetFilePath .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sGetFilePath = $sAarray[0]["file"];$/;" v +sGetFilePath .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $sGetFilePath = $sAarray[0]["file"];$/;" v +sInput .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sInput = Pin2PinBlockWithCardNO($sPin, $sCardNo);$/;" v +sInput .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sInput = Pin2PinBlockWithCardNO($sPin, $sCardNo);$/;" v +sOutput .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sOutput = implode("", $sBuf); return $sOutput;$/;" v +sPanBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sPanBuf = FormatPan($sCardNO);$/;" v +sPinBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sPinBuf = Pin2PinBlock($sPin);$/;" v +sPinLen .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $sPinLen = strlen($sPin);$/;" v +sPubCrt .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sPubCrt = openssl_x509_read($sCrt);$/;" v +sPubCrt .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sPubCrt = openssl_x509_read($sCrt);$/;" v +sPubKey .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sPubKey = openssl_x509_parse($sPubCrt);$/;" v +sPubKey .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sPubKey = openssl_x509_parse($sPubCrt);$/;" v +sPubKeyURL .\payment\unionpay\upacp_sdk_php\func\PublicEncrypte.php /^ $sPubKeyURL = trim(SDK_ENCRYPT_CERT_PATH," ");$/;" v +sPubKeyURL .\payment\unionpay\upacp_sdk_php\utf8\func\PublicEncrypte.php /^ $sPubKeyURL = trim(SDK_ENCRYPT_CERT_PATH," ");$/;" v +sample .\lib\phprs\apis\ApiExporter.php /^ $sample = $status . $header . "\\r\\n" . $body;$/;" v +sample .\lib\phprs\apis\ApiExporter.php /^ $sample = $path . $header . "\\r\\n" . $body;$/;" v +sample .\lib\phprs\apis\ApiExporter.php /^ $sample = $status . $header . "\\r\\n" . $body;$/;" v +saveCacheFile .\lib\Doctrine\Common\Annotations\FileCacheReader.php /^ private function saveCacheFile($path, $data)$/;" f +saveToCache .\lib\Doctrine\Common\Annotations\CachedReader.php /^ private function saveToCache($rawCacheKey, $value)$/;" f +scan .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ protected function scan($input)$/;" f +scode .\source\apis\login.php /^ $scode = $_SESSION['user_scode'];$/;" v +scode .\source\apis\login.php /^ $scode = "";$/;" v +scope .\loginLib\qq\API\class\Oauth.class.php /^ $scope = $this->recorder->readInc("scope");$/;" v +scriptname .\framework\function\global.func.php /^function scriptname() {$/;" f +search .\payment\resource\script\kindeditor\plugins\baidumap\map.html /^ function search(address) {$/;" f +search .\payment\resource\script\kindeditor\plugins\map\map.html /^ function search(address) {$/;" f +searchArgInfo .\lib\phprs\apis\ApiExporter.php /^ private function searchArgInfo($value){$/;" f +secure .\framework\function\global.func.php /^ $secure = $_SERVER['SERVER_PORT'] == 443 ? 1 : 0;$/;" v +seed .\framework\function\global.func.php /^ $seed = $numeric ? (str_replace('0', '', $seed) . '012340567890') : ($seed . 'zZ' . strtoupper($seed));$/;" v +seed .\framework\function\global.func.php /^ $seed = base_convert(md5(microtime() . $_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);$/;" v +select .\lib\phprs\ezsql\Sql.php /^ static public function select($param0='*', $_=null){$/;" f +select .\lib\phprs\ezsql\impls.php /^ static public function select($context, $columns){$/;" f +select .\lib\phprs\ezsql\rules\select.php /^ public function select($columns) {$/;" f +select .\lib\phprs\util\MetaInfo.php /^ $select = array_flip($select);$/;" v +semanticalError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function semanticalError($message)$/;" f +semanticalErrorConstants .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function semanticalErrorConstants($identifier, $context = null)$/;" f +semicolon .\framework\function\global.func.php /^ $semicolon = strpos($data, ';');$/;" v +sendHttpRequest .\payment\unionpay\upacp_sdk_php\func\httpClient.php /^function sendHttpRequest($params, $url) {$/;" f +sendHttpRequest .\payment\unionpay\upacp_sdk_php\utf8\func\httpClient.php /^function sendHttpRequest($params, $url) {$/;" f +sender .\lib\phprs\Response.php /^ $sender = $func;$/;" v +sender .\lib\phprs\Response.php /^ $this->sender = $sender;$/;" v +sender .\lib\phprs\Response.php /^ $this->sender = array($/;" v +sender .\lib\phprs\Response.php /^ private $sender;$/;" v +serialize .\lib\phprs\util\RedisCache.php /^ private $serialize = true;$/;" v +session .\loginLib\qq\test\comm\session.php /^ $session = new Session;$/;" v +session .\loginLib\qq\test\comm\session2.php /^ $session = new Session;$/;" v +set .\framework\model\payment.mod.php /^ $set = array();$/;" v +set .\lib\Peekmo\JsonPath\JsonStore.php /^ function set($expr, $value)$/;" f +set .\lib\phprs\BindParams.php /^ public function set($id, $params, $method_info){$/;" f +set .\lib\phprs\BindReturns.php /^ public function set($id, $params, $method_info){$/;" f +set .\lib\phprs\BindThrows.php /^ public function set($id, $params, $method_info){$/;" f +set .\lib\phprs\ezsql\impls.php /^ $set = [];$/;" v +set .\lib\phprs\ezsql\impls.php /^ public function set($context, $column, $value){$/;" f +set .\lib\phprs\ezsql\rules\update.php /^ public function set($column, $value) {$/;" f +set .\lib\phprs\util\ApcCache.php /^ public function set($key, $var, $ttl)$/;" f +set .\lib\phprs\util\CheckableCache.php /^ public function set($name, $var, $ttl = 0, $expire_check = null)$/;" f +set .\lib\phprs\util\FileCache.php /^ public function set($key, $var, $ttl=0){$/;" f +set .\lib\phprs\util\KVCatchInterface.php /^ public function set($key, $var, $ttl);$/;" f +set .\lib\phprs\util\RedisCache.php /^ public function set($key, $var, $ttl=null){$/;" f +set .\lib\phprs\util\RedisCache.php /^ public function set(){}$/;" f +setArgs .\lib\phprs\ezsql\impls.php /^ public function setArgs($context, $values){$/;" f +setArgs .\lib\phprs\ezsql\rules\update.php /^ public function setArgs($values) {$/;" f +setBuffer .\lib\phprs\Response.php /^ public function setBuffer($buffer){$/;" f +setData .\lib\Peekmo\JsonPath\JsonStore.php /^ public function setData($data)$/;" f +setIgnoreNotImportedAnnotations .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function setIgnoreNotImportedAnnotations($bool)$/;" f +setIgnoredAnnotationNames .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function setIgnoredAnnotationNames(array $names)$/;" f +setIgnoredAnnotationNames .\lib\phprs\util\DocParser.php /^ public function setIgnoredAnnotationNames(array $names)$/;" f +setImports .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function setImports(array $imports)$/;" f +setInput .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function setInput($input)$/;" f +setMapEvent .\payment\resource\script\kindeditor\plugins\baidumap\index.html /^ function setMapEvent(){$/;" f +setPropertyValue .\lib\phprs\util\IoCFactory.php /^ static function setPropertyValue($refl, $ins, $name, $value)$/;" f +setReturn .\lib\phprs\BindReturns.php /^ public function setReturn($var){$/;" f +setTarget .\lib\Doctrine\Common\Annotations\DocParser.php /^ public function setTarget($target)$/;" f +sets .\source\apis\Users.php /^ $sets = array();$/;" v +setting .\framework\model\cache.mod.php /^ $setting = pdo_fetchall($sql, array(), 'key');$/;" v +setting .\loginLib\qq\install\index.php /^ $setting = "\\n";$/;" v +setting .\loginLib\qq\install\index.php /^ $setting = str_replace("\\\/", "\/",$setting);$/;" v +setting .\loginLib\qq\test\get_fanslist\get_fanslist.php /^$setting = array($/;" v +setting .\loginLib\qq\test\get_idollist\get_idollist.php /^$setting = array($/;" v +setting .\payment\alipay\notify.php /^ $setting = uni_setting($_W['uniacid'], array('payment'));$/;" v +setting .\payment\alipay\return.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v +setting .\payment\baifubao\notify.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v +setting .\payment\baifubao\pay.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v +setting .\payment\unionpay\notify.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v +setting .\payment\unionpay\pay.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v +setting .\payment\wechat\notify.php /^$setting = uni_setting($_W['uniacid'], array('payment'));$/;" v +setting .\payment\wechat\rights.php /^ $setting = uni_setting($_W['uniacid'], array('payment'));$/;" v +shall .\framework\library\json\JSON.php /^ * @t odo Ultimately, this class shall be descended from PEAR_Error$/;" c +showError .\loginLib\qq\API\class\ErrorCase.class.php /^ public function showError($code, $description = '$'){$/;" f +showTips .\loginLib\qq\API\class\ErrorCase.class.php /^ public function showTips($code, $description = '$'){$/;" f +sid .\framework\model\user.mod.php /^ $sid = random(32,false);$/;" v +sid .\framework\model\user.mod.php /^ $sid = random(32,false);$/;" v +sid .\source\apis\login.php /^ $sid = "";$/;" v +sid .\source\apis\login.php /^ $sid = $globalUserInfo["sid"];$/;" v +sid_exist .\framework\model\user.mod.php /^ $sid_exist = Sql::select('ims_interaction_users.sid')$/;" v +sid_expire_date .\framework\model\user.mod.php /^ $sid_expire_date = date('H:i:s',strtotime("+20 minute"));$/;" v +sid_expire_time .\framework\model\user.mod.php /^ $sid_expire_time = strtotime($sid_expire_date);$/;" v +sid_expire_time .\framework\model\user.mod.php /^ $sid_expire_time = time();$/;" v +sign .\framework\model\payment.mod.php /^ $sign = strtoupper(md5($string1));$/;" v +sign .\payment\alipay\notify.php /^ $sign = md5($string);$/;" v +sign .\payment\alipay\return.php /^$sign = md5($string);$/;" v +sign .\payment\baifubao\bfb_sdk.php /^ $sign = $params ['sign'];$/;" v +sign .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function sign(&$params) {$/;" f +sign .\payment\wechat\notify.php /^ $sign = strtoupper(md5($string1 . "key={$wechat['signkey']}"));$/;" v +sign_falg .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $sign_falg = openssl_sign ( $params_sha1x16, $signature, $private_key, OPENSSL_ALGO_SHA1 );$/;" v +sign_str .\payment\baifubao\bfb_sdk.php /^ $sign_str = implode('&', $arr_temp);$/;" v +sign_str .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $sign_str = '';$/;" v +signature .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $signature = base64_decode ( $signature_str );$/;" v +signature_base64 .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $signature_base64 = base64_encode ( $signature );$/;" v +signature_str .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $signature_str = $params ['signature'];$/;" v +silently .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ * Autoloads an annotation class silently.$/;" c +simple_json_parser .\loginLib\qq\API\class\QC.class.php /^ private function simple_json_parser($json){$/;" f +singletons .\lib\phprs\util\IoCFactory.php /^ protected $singletons = array();$/;" v +site .\payment\alipay\notify.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v +site .\payment\alipay\return.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v +site .\payment\baifubao\notify.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v +site .\payment\baifubao\pay.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v +site .\payment\unionpay\notify.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v +site .\payment\unionpay\pay.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v +site .\payment\wechat\notify.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v +site .\payment\wechat\pay.php /^ $site = WeUtility::createModuleSite($log['module']);$/;" v +sitepath .\framework\bootstrap.inc.php /^$sitepath = substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '\/'));$/;" v +size .\framework\function\global.func.php /^ $size = $size . ' Bytes';$/;" v +size .\framework\function\global.func.php /^ $size = round($size \/ 1024 * 100) \/ 100 . ' KB';$/;" v +size .\framework\function\global.func.php /^ $size = round($size \/ 1048576 * 100) \/ 100 . ' MB';$/;" v +size .\framework\function\global.func.php /^ $size = round($size \/ 1073741824 * 100) \/ 100 . ' GB';$/;" v +size .\framework\function\global.func.php /^ $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);$/;" v +size .\framework\function\global.func.php /^function emotion($message = '', $size = '24px') {$/;" v +size .\lib\phprs\util\Tree.php /^ $size = count($path);$/;" v +sizecount .\framework\function\global.func.php /^function sizecount($size) {$/;" f +skipUntil .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public function skipUntil($type)$/;" f +sl .\payment\baifubao\pay.php /^$sl = $_GPC['ps'];$/;" v +sl .\payment\unionpay\pay.php /^$sl = $_GPC['ps'];$/;" v +sl .\payment\wechat\pay.php /^$sl = $_POST['ps']; \/\/ 得到传入的PS参数$/;" v +sl .\source\apis\pay.php /^ $sl = base64_encode(json_encode($ps));$/;" v +slice .\framework\library\json\JSON.php /^ $slice = substr($chrs, $top['where'], ($c - $top['where']));$/;" v +slice .\lib\Peekmo\JsonPath\JsonPath.php /^ private function slice($loc, $expr, &$v, $path,$create=false, $default=null)$/;" f +snippets .\lib\phprs\util\NestedStringCut.php /^ private $snippets=array();$/;" v +sp_conf .\payment\baifubao\bfb_pay.cfg.php /^final class sp_conf{$/;" c +specified .\lib\phprs\Container.php /^ $specified = $method;$/;" v +split2 .\framework\function\communication.func.php /^ $split2 = explode("\\r\\n", $split1[0], 2);$/;" v +sql .\framework\function\cache.mysql.func.php /^ $sql = 'DELETE FROM ' . tablename('core_cache') . ' WHERE `key` LIKE :key';$/;" v +sql .\framework\function\cache.mysql.func.php /^ $sql = 'DELETE FROM ' . tablename('core_cache');$/;" v +sql .\framework\model\cache.mod.php /^ $sql = 'SELECT * FROM ' . tablename('core_settings');$/;" v +sql .\lib\phprs\ezsql\SqlConetxt.php /^ $this->sql = $this->sql.$sql;$/;" v +sql .\lib\phprs\ezsql\SqlConetxt.php /^ $this->sql = $this->sql.' '.$sql;$/;" v +sql .\lib\phprs\ezsql\SqlConetxt.php /^ $this->sql = $sql;$/;" v +sql .\lib\phprs\ezsql\SqlConetxt.php /^ public $sql='';$/;" v +sql .\lib\phprs\ezsql\impls.php /^ private $sql = null;$/;" v +sql .\payment\alipay\notify.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v +sql .\payment\alipay\return.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v +sql .\payment\baifubao\notify.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v +sql .\payment\baifubao\pay.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v +sql .\payment\baifubao\pay.php /^$sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid';$/;" v +sql .\payment\unionpay\notify.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v +sql .\payment\unionpay\pay.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v +sql .\payment\unionpay\pay.php /^$sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid';$/;" v +sql .\payment\wechat\notify.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid';$/;" v +sql .\payment\wechat\pay.php /^ $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid';$/;" v +sql .\source\apis\cloud.php /^ $sql = $sql->orderBy($orderfield);$/;" v +sql .\source\apis\cloud.php /^ $sql = $sql->limit(($pindex - 1) * $psize,$psize);$/;" v +sql .\source\apis\cloud.php /^ $sql = $sql->where($condition);$/;" v +sql .\source\apis\cloud.php /^ $sql = Sql::select($fields)->from('ims_sdk_'.$outappid.'rank');$/;" v +src .\framework\function\global.func.php /^ $src = $_W['attachurl_remote'] . $src;$/;" v +src .\framework\function\global.func.php /^ $src = $_W['siteroot'] . $_W['config']['upload']['attachdir'] . '\/' . $src;$/;" v +src .\framework\function\global.func.php /^ $src = $t = substr($urls['path'], strpos($urls['path'], 'images'));$/;" v +src .\lib\phprs\apis\ApiExporter.php /^ $src = $value['value'];$/;" v +src .\lib\phprs\apis\ApiExporter.php /^ $src = $value['value']['src'];$/;" v +src .\lib\phprs\util\IoCFactory.php /^ $src = $value['value'];$/;" v +src .\lib\phprs\util\IoCFactory.php /^ $src = $value['value']['src'];$/;" v +src .\lib\phprs\util\IoCFactory.php /^ if ( $src == "ioc_factory" || $src == "factory") {$/;" v +src .\lib\phprs\util\IoCFactory.php /^ if ($src === "ioc_factory" || $src == "factory"){$/;" v +src_path .\lib\phprs\util\FileOp.php /^ $src_path = $src . '\/' . $file;$/;" v +st .\lib\phprs\ezsql\impls.php /^ $st = $db->prepare($context->sql);$/;" v +st .\lib\phprs\ezsql\impls.php /^ $this->st = $st;$/;" v +st .\lib\phprs\ezsql\impls.php /^ public $st;$/;" v +start .\lib\Peekmo\JsonPath\JsonPath.php /^ $start = ($start < 0) ? max(0, $start + $len) : $start;$/;" v +start .\lib\Peekmo\JsonPath\JsonPath.php /^ $start = ($start < 0) ? max(0, $start + $len) : min($len, $start);$/;" v +start .\lib\Peekmo\JsonPath\JsonPath.php /^ $start = (int)$s[0] ? $s[0] : 0;$/;" v +start_queue_id .\lib\phprs\util\MessagePump.php /^ private $start_queue_id = 0;$/;" v +state .\framework\class\weixin.account.class.php /^ public function getOauthCodeUrl($callback, $state = '') {$/;" v +state .\framework\class\weixin.account.class.php /^ public function getOauthUserInfoUrl($callback, $state = '') {$/;" v +state .\lib\phprs\util\AnnotationCleaner.php /^ $state = $this->$state();$/;" v +state .\lib\phprs\util\AnnotationCleaner.php /^ $state = 'stateNormal';$/;" v +state .\lib\phprs\util\NestedStringCut.php /^ $state = 'stateNormal';$/;" v +state .\loginLib\qq\API\class\Oauth.class.php /^ $state = $this->recorder->read("state");$/;" v +state .\loginLib\qq\API\class\Oauth.class.php /^ $state = md5(uniqid(rand(), TRUE));$/;" v +state .\source\apis\login.php /^ $state = 'ylsid-'.session_name();$/;" v +state .\source\apis\login.php /^ $state = 'ylsid-'.session_name();$/;" v +stateAntML .\lib\phprs\util\AnnotationCleaner.php /^ private function stateAntML(){$/;" f +stateAntSL .\lib\phprs\util\AnnotationCleaner.php /^ private function stateAntSL(){$/;" f +stateBegin .\lib\phprs\util\AnnotationCleaner.php /^ $stateBegin = [$/;" v +stateESC .\lib\phprs\util\NestedStringCut.php /^ private function stateESC($str, $pos, &$next){$/;" f +stateNormal .\lib\phprs\util\AnnotationCleaner.php /^ private function stateNormal(){$/;" f +stateNormal .\lib\phprs\util\NestedStringCut.php /^ private function stateNormal($str, $pos, &$next){$/;" f +stateQ .\lib\phprs\util\NestedStringCut.php /^ private function stateQ($str, $pos, &$next){$/;" f +stateStr .\lib\phprs\util\AnnotationCleaner.php /^ private function stateStr($q){$/;" f +stateStrDQ .\lib\phprs\util\AnnotationCleaner.php /^ private function stateStrDQ(){$/;" f +stateStrSQ .\lib\phprs\util\AnnotationCleaner.php /^ private function stateStrSQ(){$/;" f +statements .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $statements = $tokenizer->parseUseStatements($class->getNamespaceName());$/;" v +statements .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $statements = array_merge($statements, $this->parseUseStatement());$/;" v +statements .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $statements = array();$/;" v +statements .\lib\Doctrine\Common\Annotations\TokenParser.php /^ $statements = array();$/;" v +status .\framework\function\communication.func.php /^ $status = curl_getinfo($ch);$/;" v +status .\lib\phprs\apis\ApiExporter.php /^ $status = $info['status'];$/;" v +status .\lib\phprs\apis\ApiExporter.php /^ $status = $info['status'];$/;" v +status .\lib\phprs\apis\ApiExporter.php /^ $status = "HTTP\/1.1 200 OK\\r\\n";$/;" v +status .\lib\phprs\apis\ApiExporter.php /^ $status = "HTTP\/1.1 500 Internal Server Error\\r\\n";$/;" v +status .\lib\phprs\apis\ApiExporter.php /^ $status = '';$/;" v +status .\lib\phprs\util\Curl.php /^ $this->status = trim(explode(' ', $header_line,2)[1]);$/;" v +status .\lib\phprs\util\Curl.php /^ public $status;$/;" v +status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $status = $this->getTimeLine( $priority, $sFile, $iLine);$/;" v +status .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $status = $this->getTimeLine( $priority, $sGetFilePath, $sGetFileLine);$/;" v +status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $status = $this->getTimeLine( $priority, $sFile, $iLine);$/;" v +status .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $status = $this->getTimeLine( $priority, $sGetFilePath, $sGetFileLine);$/;" v +step .\lib\Peekmo\JsonPath\JsonPath.php /^ $step = (int)$s[2] ? $s[2] : 1;$/;" v +step .\lib\phprs\BindParams.php /^ $step = 0;$/;" v +step .\lib\phprs\BindReturns.php /^ $step = 0;$/;" v +stk .\framework\library\json\JSON.php /^ $stk = array(SERVICES_JSON_IN_OBJ);$/;" v +stk .\framework\library\json\JSON.php /^ $stk = array(SERVICES_JSON_IN_ARR);$/;" v +store .\lib\Peekmo\JsonPath\JsonPath.php /^ private function store($p, $v)$/;" f +str .\framework\function\communication.func.php /^ $str = '';$/;" v +str .\framework\function\global.func.php /^ $str = "&j={$_W['acid']}";$/;" v +str .\framework\function\global.func.php /^ $str = '';$/;" v +str .\framework\function\global.func.php /^ $str = str_replace(' ', '#nbsp;', $str);$/;" v +str .\framework\function\global.func.php /^ return $str == base64_encode(base64_decode($str));$/;" v +str .\framework\library\json\JSON.php /^ $str = $this->reduce_string($str);$/;" v +str .\framework\library\json\JSON.php /^ $str = preg_replace(array($/;" v +str .\lib\Peekmo\JsonPath\JsonPath.php /^ $str = $substr;$/;" v +str .\lib\Peekmo\JsonPath\JsonPath.php /^ $str = ''; $first = true;$/;" v +str .\lib\phprs\ezsql\Native.php /^ $this->str = $str;$/;" v +str .\lib\phprs\ezsql\Native.php /^ private $str;$/;" v +str .\lib\phprs\util\HttpRouterEntries.php /^ $str =$str.'\/'.$v;$/;" v +str .\lib\phprs\util\HttpRouterEntries.php /^ $str = '';$/;" v +str .\loginLib\qq\API\class\QC.class.php /^ $str = implode(",",$val);$/;" v +strcut .\framework\function\global.func.php /^ $strcut = substr($string, 0, $n);$/;" v +strcut .\framework\function\global.func.php /^ $strcut = '';$/;" v +strexists .\framework\function\global.func.php /^function strexists($string, $find) {$/;" f +strict .\framework\function\global.func.php /^function is_serialized($data, $strict = true) {$/;" v +strict .\lib\phprs\Router.php /^ $strict = ($strict===null)?$this->default_strict_matching:$strict;$/;" v +string .\framework\function\global.func.php /^ $string = $string . "...";$/;" v +string .\framework\function\global.func.php /^ $string = mb_substr($string, 0, $length, $charset);$/;" v +string .\framework\function\global.func.php /^ $string = str_replace(array($pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end), array('&', '"', '<', '>'), $strcut);$/;" v +string .\framework\function\global.func.php /^ $string = str_replace(array('&', '"', '<', '>'), array($pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end), $string);$/;" v +string .\framework\function\global.func.php /^ $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0) . substr(md5($string . $keyb), 0, 16) . $string;$/;" v +string .\framework\model\payment.mod.php /^ $string = '';$/;" v +string .\framework\model\payment.mod.php /^ $string = rtrim($string, '&');$/;" v +string .\framework\model\payment.mod.php /^ $string = implode('&', $prepares);$/;" v +string .\payment\alipay\notify.php /^ $string = implode($prepares, '&');$/;" v +string .\payment\alipay\return.php /^$string = implode($prepares, '&');$/;" v +string .\payment\wechat\rights.php /^ $string = '';$/;" v +string .\payment\wechat\rights.php /^ $string = sha1(rtrim($string, '&'));$/;" v +string1 .\framework\model\payment.mod.php /^ $string1 = '';$/;" v +string1 .\payment\wechat\notify.php /^ $string1 = '';$/;" v +string2 .\framework\model\payment.mod.php /^ $string2 = '';$/;" v +stringToPath .\lib\phprs\util\HttpRouterEntries.php /^ static public function stringToPath($path){$/;" f +string_length .\framework\function\global.func.php /^ $string_length = strlen($string);$/;" v +stringlen .\framework\function\compat.func.php /^ $stringlen = @fwrite($fp, $string);$/;" v +strlen .\framework\function\global.func.php /^ $strlen = strlen($string);$/;" v +strlen_chrs .\framework\library\json\JSON.php /^ $strlen_chrs = strlen($chrs);$/;" v +strlen_var .\framework\library\json\JSON.php /^ $strlen_var = strlen($var);$/;" v +strpos_array .\lib\Peekmo\JsonPath\JsonPath.php /^ private function strpos_array($haystack, array $needles)$/;" f +struct .\framework\model\cache.mod.php /^ $struct = array();$/;" v +stubs .\lib\phprs\ezsql\impls.php /^ $stubs = [];$/;" v +stubs .\lib\phprs\ezsql\impls.php /^ $stubs = implode(',', $stubs);$/;" v +stubs .\lib\phprs\ezsql\impls.php /^ $stubs = strval($arg);$/;" v +stubs .\lib\phprs\ezsql\impls.php /^ $stubs = [];$/;" v +stubs .\lib\phprs\ezsql\impls.php /^ $stubs = implode(',', $stubs);$/;" v +stubs .\lib\phprs\ezsql\impls.php /^ $stubs = [];$/;" v +stubs .\lib\phprs\ezsql\impls.php /^ $stubs = implode(',', $stubs);$/;" v +subStateQ .\lib\phprs\util\NestedStringCut.php /^ $this->subStateQ = '"';$/;" v +subStateQ .\lib\phprs\util\NestedStringCut.php /^ $this->subStateQ = '\\'';$/;" v +subStateQ .\lib\phprs\util\NestedStringCut.php /^ private $subStateQ;$/;" v +sub_t4 .\source\apis\cloud.php /^ $sub_t4 = "",$sub_t5 = "",$sub_t6 = "",$sub_t7 = "",$sub_t8 = "",$sub_t9 = "",$/;" v +subscribe .\framework\model\cache.mod.php /^ $subscribe = array();$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\\\"':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\\\\/':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\\\\\'':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\\\\\\\':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\b':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\f':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\n':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\r':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ case $substr_chrs_c_2 == '\\t':$/;" v +substr_chrs_c_2 .\framework\library\json\JSON.php /^ $substr_chrs_c_2 = substr($chrs, $c, 2);$/;" v +subx .\lib\Peekmo\JsonPath\JsonPath.php /^ private $subx = array();$/;" v +succeeded .\lib\phprs\Container.php /^ $succeeded = $found;$/;" v +succeeded .\lib\phprs\Invoker.php /^ $succeeded = false;$/;" v +succeeded .\lib\phprs\util\CheckableCache.php /^ $succeeded = false;$/;" v +succeeded .\lib\phprs\util\CheckableCache.php /^ $succeeded = true;$/;" v +succeeded .\lib\phprs\util\FileCache.php /^ $succeeded = false;$/;" v +succeeded .\lib\phprs\util\FileCache.php /^ $succeeded = true;$/;" v +succeeded .\lib\phprs\util\IoCFactory.php /^ $succeeded = false;$/;" v +succeeded .\lib\phprs\util\RedisCache.php /^ $succeeded = ($res !== false);$/;" v +success .\lib\phprs\ezsql\impls.php /^ $this->success = $success;$/;" v +success .\lib\phprs\ezsql\impls.php /^ public $success;$/;" v +success .\lib\phprs\ezsql\impls.php /^ $success = $st->execute($context->params);$/;" v +syntaxError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function syntaxError($message)$/;" f +syntaxError .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function syntaxError($expected, $token = null)$/;" f +syntaxError .\lib\phprs\util\DocParser.php /^ private function syntaxError($expected, $token = null)$/;" f +t .\framework\function\global.func.php /^ $t = ord($string[$n]);$/;" v +t .\framework\function\global.func.php /^ if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {$/;" v +t .\framework\function\global.func.php /^ } elseif ($t == 252 || $t == 253) {$/;" v +t .\framework\function\global.func.php /^ $t = strtolower($src);$/;" v +t .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $t = 0;$/;" v +t1 .\source\apis\cloud.php /^ $t1 = "",$t2 = "",$t3 = "",$t4 = "",$t5 = "",$t6 = "",$t7 = "",$t8 = "",$t9 = "",$/;" v +tBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $tBuf = substr($sPin, $i, 2);$/;" v +tBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $tBuf = substr($sPin, $i, 2);$/;" v +tBuf .\payment\unionpay\upacp_sdk_php\utf8\func\PinBlock.php /^ $tBuf = substr($sPan, $iTemp, 2);$/;" v +tableList .\source\apis\cloud.php /^ $tableList = Sql::select(' * ')$/;" v +tableList .\source\apis\cloud.php /^ $tableList = Sql::select('`t`.*')$/;" v +tablename .\framework\function\global.func.php /^function tablename($table) {$/;" f +tag .\lib\phprs\util\Cache.php /^ private $tag = "";$/;" v +tag .\lib\phprs\util\CheckableCache.php /^ $this->tag = $tag; $/;" v +tag .\lib\phprs\util\CheckableCache.php /^ function __construct($impl, $tag = ''){$/;" v +tag .\lib\phprs\util\CheckableCache.php /^ private $tag;$/;" v +tag .\payment\wechat\pay.php /^ $tag = iunserializer($log['tag']);$/;" v +tagname .\framework\function\global.func.php /^ $tagname = $value['TagName'];$/;" v +tagname .\framework\function\global.func.php /^ foreach ($arr as $tagname => $value) {$/;" v +target .\lib\Doctrine\Common\Annotations\DocParser.php /^ $target = $this->isNestedAnnotation ? Target::TARGET_ANNOTATION : $this->target;$/;" v +target .\lib\Doctrine\Common\Annotations\DocParser.php /^ $this->target = $target;$/;" v +target .\lib\Doctrine\Common\Annotations\DocParser.php /^ private $target;$/;" v +target .\source\apis\login.php /^ $target = $_SESSION['user_target'];$/;" v +target .\source\apis\login.php /^ $target = "";$/;" v +targets .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ $this->targets = $bitmask;$/;" v +targets .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ public $targets;$/;" v +temp .\framework\function\communication.func.php /^ $temp = $rlt['headers'][$key];$/;" v +temp .\framework\function\global.func.php /^ $temp = preg_replace('!s:(\\d+):"(.*?)";!se', "'s:'.strlen('$2').':\\"$2\\";'", $value);$/;" v +temp .\framework\model\cache.mod.php /^ $temp = array();$/;" v +temp .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $temp = preg_split ( '\/&\/', $str );$/;" v +tempFilters .\lib\Peekmo\JsonPath\JsonPath.php /^ private function tempFilters($filter)$/;" f +tempdir .\lib\phprs\util\FileOp.php /^ function tempdir($dir, $prefix) {$/;" f +tempfile .\lib\phprs\util\FileOp.php /^ $tempfile=tempnam($dir, $prefix);$/;" v +test .\lib\phprs\util\MetaInfo.php /^ public function test(){$/;" f +testAnnotation .\lib\phprs\util\MetaInfo.php /^ static function testAnnotation(){$/;" f +text .\framework\function\global.func.php /^ $text = $text . $tmp;$/;" v +text .\framework\function\global.func.php /^ $text = random(16) . pack("N", strlen($message)) . $message . $appid;$/;" v +text .\lib\phprs\apis\ApiExporter.php /^ $text = $this->getDocText($route_doc['desc']);$/;" v +text .\lib\phprs\apis\ApiExporter.php /^ $text = '';$/;" v +text .\lib\phprs\apis\ApiExporter.php /^ $text = trim($text, "\\r\\n");$/;" v +text .\lib\phprs\util\DocParser.php /^ $text = strstr($text, ')');$/;" v +text .\lib\phprs\util\DocParser.php /^ $text = substr($doc, $doc_begin);$/;" v +text .\lib\phprs\util\DocParser.php /^ $text = strstr($text, ')');$/;" v +text .\lib\phprs\util\DocParser.php /^ $text = substr($doc, $doc_begin);$/;" v +text_length .\framework\function\global.func.php /^ $text_length = strlen($text);$/;" v +that .\lib\Doctrine\Common\Annotations\AnnotationRegistry.php /^ * IMPORTANT: Loaders have to return true if they loaded a class that could contain the searched annotation class.$/;" c +tid .\framework\model\payment.mod.php /^ $tid = $params['uniontid'];$/;" v +time .\payment\unionpay\upacp_sdk_php\func\log.class.php /^ $time = date( $this->DateFormat );$/;" v +time .\payment\unionpay\upacp_sdk_php\utf8\func\log.class.php /^ $time = date( $this->DateFormat );$/;" v +timeFlag .\framework\class\weixin.account.class.php /^ $timeFlag = $cache['expire'] > TIMESTAMP;$/;" v +titles .\lib\phprs\util\Logger.php /^ $titles = array($/;" v +tmp .\framework\function\communication.func.php /^ $tmp = substr($tmp, ($len + $pos + $add));$/;" v +tmp .\framework\function\communication.func.php /^ $tmp = ltrim($tmp);$/;" v +tmp .\framework\function\communication.func.php /^ $tmp = $str;$/;" v +tmp .\framework\function\global.func.php /^ $tmp = $box[$a];$/;" v +tmp .\framework\function\global.func.php /^ $tmp = $box[$i];$/;" v +tmp .\framework\function\global.func.php /^ $tmp = '';$/;" v +tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = substr($this->tmp, $i);$/;" v +tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = substr($this->tmp, $i+1);$/;" v +tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = '';$/;" v +tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = substr($this->tmp, $pos);$/;" v +tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = substr($this->tmp, $pos+2);$/;" v +tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = $text;$/;" v +tmp .\lib\phprs\util\AnnotationCleaner.php /^ $this->tmp = '';$/;" v +tmp .\lib\phprs\util\AnnotationCleaner.php /^ private $tmp;$/;" v +tmp .\lib\phprs\util\IoCFactory.php /^ $tmp = $this->create_stack;$/;" v +tmp .\lib\phprs\util\Tree.php /^ $tmp = array();$/;" v +tmpKey .\loginLib\qq\API\class\QC.class.php /^ $tmpKey = str_replace($res[0], "", $tmpKey);$/;" v +tmpKey .\loginLib\qq\API\class\QC.class.php /^ $tmpKey = substr($tmpKey,1);$/;" v +tmpKey .\loginLib\qq\API\class\QC.class.php /^ $tmpKey = $val;$/;" v +tmpKey .\loginLib\qq\API\class\QC.class.php /^ $tmpKey = $key;$/;" v +tmpVal .\loginLib\qq\API\class\QC.class.php /^ $tmpVal = $pre;$/;" v +tmpVal .\loginLib\qq\API\class\QC.class.php /^ $tmpVal = null;$/;" v +tmpVal .\loginLib\qq\API\class\QC.class.php /^ $tmpVal = $val;$/;" v +tmp_file .\lib\phprs\util\SaftyFileWriter.php /^ $tmp_file= tempnam($file_dir, 'tsb_sfw');$/;" v +tn .\framework\function\global.func.php /^ $tn = 1;$/;" v +tn .\framework\function\global.func.php /^ $tn = 2;$/;" v +tn .\framework\function\global.func.php /^ $tn = 3;$/;" v +tn .\framework\function\global.func.php /^ $tn = 4;$/;" v +tn .\framework\function\global.func.php /^ $tn = 5;$/;" v +tn .\framework\function\global.func.php /^ $tn = 6;$/;" v +to .\lib\Doctrine\Common\Annotations\TokenParser.php /^ \/\/ getDocBlock() on said class to return our long lost doc_comment. Argh.$/;" c +to .\lib\Doctrine\Common\Annotations\TokenParser.php /^ \/\/ separated by T_NS_SEPARATOR so we can use one function to provide$/;" f +to .\lib\phprs\BindReturns.php /^ $to = $params;$/;" v +to .\lib\phprs\BindReturns.php /^ $to = $params[0];$/;" v +to .\lib\phprs\BindThrows.php /^ $to = $params[1];$/;" v +toArray .\lib\Peekmo\JsonPath\JsonStore.php /^ public function toArray()$/;" f +toArray .\lib\phprs\Request.php /^ public function toArray(){$/;" f +toObject .\lib\Peekmo\JsonPath\JsonPath.php /^ private function toObject($array)$/;" f +toObject .\lib\Peekmo\JsonPath\JsonStore.php /^ public function toObject()$/;" f +toQzoneLogin .\loginLib\qq\test\index.html /^ function toQzoneLogin()$/;" f +toReplace .\lib\phprs\ezsql\impls.php /^ $toReplace = array_reverse($toReplace);$/;" v +toReplace .\lib\phprs\ezsql\impls.php /^ $toReplace = array();$/;" v +toString .\lib\Peekmo\JsonPath\JsonStore.php /^ public function toString()$/;" f +to_echo .\lib\phprs\util\Logger.php /^ static $to_echo;$/;" v +to_func .\lib\phprs\BindReturns.php /^ $to_func = &$this->params[$to][$id];$/;" v +to_func .\lib\phprs\BindThrows.php /^ $to_func = &$this->params[$exception][$to][$id];$/;" v +to_php_log .\lib\phprs\util\Logger.php /^ static $to_php_log;$/;" v +to_void .\lib\phprs\util\Logger.php /^ static $to_void;$/;" v +token .\framework\class\weixin.account.class.php /^ $token = $this->getAccessToken($db);$/;" v +token .\framework\class\weixin.account.class.php /^ $token = $this->getAccessToken($db,$pdo);$/;" v +token .\framework\class\weixin.account.class.php /^ $token = @json_decode($content['content'], true);$/;" v +token .\framework\function\global.func.php /^ $token = $data[0];$/;" v +token .\framework\function\global.func.php /^function token($specialadd = '') {$/;" f +token .\lib\Doctrine\Common\Annotations\DocParser.php /^ $token = $this->lexer->lookahead;$/;" v +token .\lib\Doctrine\Common\Annotations\DocParser.php /^ private function syntaxError($expected, $token = null)$/;" v +token .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->token = $this->lookahead;$/;" v +token .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->token = null;$/;" v +token .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ public $token;$/;" v +token .\lib\phprs\util\DocParser.php /^ $token = $this->lexer->lookahead;$/;" v +token .\lib\phprs\util\DocParser.php /^ private function syntaxError($expected, $token = null)$/;" v +token .\source\apis\Users.php /^ $token = $this->factory->create('Tokens')->getToken($token);$/;" v +token .\source\apis\Users.php /^ $token = $tokens->getToken($token);$/;" v +token_login .\source\apis\appport.php /^ public function token_login($access_id,$access_key,$scode) {$/;" f +token_url .\loginLib\qq\API\class\Oauth.class.php /^ $token_url = $this->urlUtils->combineURL(self::GET_ACCESS_TOKEN_URL, $keysArr);$/;" v +tokenizer .\lib\Doctrine\Common\Annotations\PhpParser.php /^ $tokenizer = new TokenParser('tokens = token_get_all($contents);$/;" v +tokens .\lib\Doctrine\Common\Annotations\TokenParser.php /^ private $tokens;$/;" v +tokens .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $this->tokens = array();$/;" v +tokens .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ private $tokens = array();$/;" v +tokens .\source\apis\Users.php /^ $tokens = $this->factory->create('Tokens');$/;" v +tomedia .\framework\function\global.func.php /^function tomedia($src, $local_path = false){$/;" f +top .\framework\library\json\JSON.php /^ $top = end($stk);$/;" v +total .\source\apis\cloud.php /^ $total = Sql::select(' COUNT(*) as num ')$/;" v +total .\source\apis\cloud.php /^ $total = Sql::select(' COUNT(id) as countnum ')$/;" v +trace .\lib\Peekmo\JsonPath\JsonPath.php /^ private function trace($expr, &$val, $path, $create=false, $default=null)$/;" f +traitImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait));$/;" v +traitImports .\lib\Doctrine\Common\Annotations\AnnotationReader.php /^ $traitImports = array();$/;" v +treeToArray .\lib\phprs\util\Tree.php /^ static private function treeToArray($tree, &$res){$/;" f +ttl .\lib\phprs\util\CheckableCache.php /^ public function set($name, $var, $ttl = 0, $expire_check = null)$/;" v +ttl .\lib\phprs\util\FileCache.php /^ public function set($key, $var, $ttl=0){$/;" v +ttl .\lib\phprs\util\RedisCache.php /^ public function set($key, $var, $ttl=null){$/;" v +type .\lib\Doctrine\Common\Annotations\Annotation\Attribute.php /^ public $type;$/;" v +type .\lib\Doctrine\Common\Annotations\DocLexer.php /^ $type = self::T_NONE;$/;" v +type .\lib\Doctrine\Common\Annotations\DocParser.php /^ $type = 'array';$/;" v +type .\lib\Doctrine\Common\Annotations\DocParser.php /^ $type = isset(self::$typeMap[$attribute->type])$/;" v +type .\lib\Doctrine\Common\Lexer\AbstractLexer.php /^ $type = $this->getType($match[0]);$/;" v +type .\lib\phprs\Container.php /^ foreach ($anns as $type =>$v){$/;" v +type .\lib\phprs\apis\ApiExporter.php /^ foreach ($ann->getPropertyAnnotations($property, true) as $type => $value) {$/;" v +typeError .\lib\Doctrine\Common\Annotations\AnnotationException.php /^ public static function typeError($message)$/;" f +typeMap .\lib\Doctrine\Common\Annotations\DocParser.php /^ private static $typeMap = array($/;" v +typeMap .\lib\phprs\util\DocParser.php /^ private static $typeMap = array($/;" v +typeTableInfo .\source\apis\cloud.php /^ $typeTableInfo = $tableList[0];$/;" v +uid .\source\apis\Users.php /^ $uid = $res[0]['uid'];$/;" v +uid .\source\apis\Users.php /^ $uid = Sql::insertInto('uc_members')->values(['username'=>$account,$/;" v +uid .\source\apis\Users.php /^ $uid = $token['uid'];$/;" v +uid_exist .\framework\model\user.mod.php /^ $uid_exist = Sql::select('ims_interaction_users_qq.id')$/;" v +uid_exist .\framework\model\user.mod.php /^ $uid_exist = Sql::select('ims_interaction_users_weixin.id')$/;" v +uniacid_arr .\framework\model\cache.mod.php /^ $uniacid_arr = pdo_fetchall('SELECT acid FROM ' . tablename('account_wechats'));$/;" v +uniacid_arr .\framework\model\cache.mod.php /^ $uniacid_arr = pdo_fetchall('SELECT uniacid FROM ' . tablename('uni_account'));$/;" v +unique .\lib\Peekmo\JsonPath\JsonStore.php /^ public function get($expr, $unique = false, $create = false, $default = null)$/;" v +update .\lib\phprs\ezsql\Sql.php /^ static public function update($table) {$/;" f +update .\lib\phprs\ezsql\impls.php /^ static public function update($context, $table){$/;" f +update .\lib\phprs\ezsql\rules\update.php /^ public function update($table) {$/;" f +updateCount .\source\apis\cloud.php /^ $updateCount = $updateSql->exec($pdo);$/;" v +updateData .\framework\model\user.mod.php /^ $updateData = array();$/;" v +updateQqUserInfo .\framework\model\user.mod.php /^function updateQqUserInfo($qqUserInfo,$db,$pdo){$/;" f +updateSql .\source\apis\cloud.php /^ $updateSql = Sql::update('ims_sdk_'.$outappid.'rank');$/;" v +updateUser .\source\apis\Users.php /^ public function updateUser($token, $alias=null, $password=null, $avatar=null ){$/;" f +updateUserInfo .\framework\model\user.mod.php /^function updateUserInfo($scode,$auth_type,$openid,$db,$pdo){$/;" f +updateWeixinUserInfo .\framework\model\user.mod.php /^function updateWeixinUserInfo($weixinUserInfo,$db,$pdo){$/;" f +upline .\framework\function\global.func.php /^ $upline = intval($upline);$/;" v +uploadAvatar .\source\apis\Users.php /^ private function uploadAvatar($file){$/;" f +uri .\framework\function\compat.func.php /^ $uri = 'data:\/\/application\/octet-stream;base64,' . base64_encode($string_data);$/;" v +uri .\lib\phprs\Router.php /^ Logger::debug("invoke $uri => {$api->getClassName()}::{$api->getMethodName()}");$/;" v +uri .\lib\phprs\Router.php /^ $uri = $request['$._SERVER.REQUEST_URI'];$/;" v +uri .\lib\phprs\Router.php /^ Logger::debug("invoke $uri => {$api->getClassName()}::{$api->getMethodName()}");$/;" v +url .\framework\class\weixin.account.class.php /^ $url = "https:\/\/api.weixin.qq.com\/cgi-bin\/token?grant_type=client_credential&appid={$this->account['key']}&secret={$this->account['secret']}";$/;" v +url .\framework\class\weixin.account.class.php /^ $url = "https:\/\/api.weixin.qq.com\/cgi-bin\/user\/info?access_token={$token}&openid={$openid}&lang=zh_CN";$/;" v +url .\framework\class\weixin.account.class.php /^ $url = "https:\/\/api.weixin.qq.com\/cgi-bin\/user\/info\/batchget?access_token={$token}";$/;" v +url .\framework\class\weixin.account.class.php /^ $url = "https:\/\/api.weixin.qq.com\/sns\/oauth2\/access_token?appid={$this->account['key']}&secret={$this->account['secret']}&code={$code}&grant_type=authorization_code";$/;" v +url .\framework\function\global.func.php /^ $url = $_W['script_name'] . '?' . http_build_query($_GET);$/;" v +url .\framework\function\global.func.php /^ $url = $_W['siteroot'] . 'app\/';$/;" v +url .\framework\function\global.func.php /^ $url = '.\/';$/;" v +url .\framework\function\global.func.php /^ $url = '.\/index.php?';$/;" v +url .\source\apis\login.php /^ $url = "http:\/\/api.tscce.cn\/api\/login\/weixin\/callback";$/;" v +urlUtils .\loginLib\qq\API\class\Oauth.class.php /^ $this->urlUtils = new URL();$/;" v +urlUtils .\loginLib\qq\API\class\Oauth.class.php /^ public $urlUtils;$/;" v +url_begin .\lib\phprs\Request.php /^ $this->url_begin = $url_begin;$/;" v +url_begin .\lib\phprs\Request.php /^ private $url_begin;$/;" v +url_begin .\lib\phprs\Router.php /^ public $url_begin=0;$/;" v +urls .\framework\function\communication.func.php /^ $urls = parse_url($GLOBALS['_W']['config']['setting']['proxy']['host']);$/;" v +urls .\framework\function\global.func.php /^ $urls = parse_url($src);$/;" v +urlset .\framework\function\communication.func.php /^ $urlset = parse_url($url);$/;" v +use .\framework\library\json\JSON.php /^ $this->use = $use;$/;" v +use_cache .\lib\phprs\Invoker.php /^ $use_cache = !$this->bind['cache']->isEmpty();$/;" v +user .\lib\phprs\util\RedisCache.php /^ private $user;$/;" v +user .\loginLib\qq\API\class\Oauth.class.php /^ $user = json_decode($response);$/;" v +userInfo .\framework\model\user.mod.php /^ $userInfo = Sql::select('ims_interaction_users.*')$/;" v +userInfo .\source\apis\user.php /^ $userInfo = Sql::select('ims_interaction_users_qq.*')$/;" v +userInfo .\source\apis\user.php /^ $userInfo = Sql::select('ims_interaction_users_weixin.*')$/;" v +userInfo .\source\apis\user.php /^ $userInfo = array();$/;" v +userInfoBase .\source\apis\user.php /^ $userInfoBase = array();$/;" v +userinfo .\source\apis\login.php /^ $userinfo = $weixin->getOauthUserInfo($oauth['access_token'],$oauth['openid']);$/;" v +userinfo .\source\apis\login.php /^ $userinfo = $qc->get_user_info();$/;" v +userinfo .\source\apis\login.php /^ $userinfo = $weixin->getOauthUserInfo($oauth['access_token'],$oauth['openid']);$/;" v +utf16 .\framework\library\json\JSON.php /^ $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2)))$/;" v +utf16 .\framework\library\json\JSON.php /^ $utf16 = $this->utf82utf16($char);$/;" v +utf162utf8 .\framework\library\json\JSON.php /^ function utf162utf8($utf16)$/;" f +utf8 .\framework\library\json\JSON.php /^ $utf8 = '';$/;" v +utf82utf16 .\framework\library\json\JSON.php /^ function utf82utf16($utf8)$/;" f +utf8_bytes .\framework\function\global.func.php /^function utf8_bytes($cp) {$/;" f +v .\framework\model\payment.mod.php /^ $v = $wechat['signkey'];$/;" v +v .\framework\model\payment.mod.php /^ $v = $wOpt[$key];$/;" v +v .\framework\model\payment.mod.php /^ $v = urlencode($v);$/;" v +v .\lib\phprs\ezsql\impls.php /^ ($v =='DESC' || $v =='ASC'), new \\InvalidArgumentException("invalid params for orderBy(".json_encode($orders).")"));$/;" v +v .\lib\phprs\ezsql\impls.php /^ $v = strtoupper($v);$/;" v +v .\lib\phprs\util\HttpRouterEntries.php /^ if(strlen($str) !==0 && substr_compare($str, '\/', strlen($str)-1) ===0 && $v==='\/'){$/;" v +v .\lib\phprs\util\IoCFactory.php /^ $v = $this->getProperty($value);$/;" v +v .\lib\phprs\util\IoCFactory.php /^ $v = $this->getProperty($value);$/;" v +v .\payment\unionpay\upacp_sdk_php\utf8\func\common.php /^ $v = $arr ['1'];$/;" v +v .\payment\wechat\rights.php /^ $v = $data[$key];$/;" v +val .\framework\function\cache.mysql.func.php /^ $val = Sql::select('ims_interaction_core_cache.value')$/;" v +val .\framework\library\json\JSON.php /^ $val = $this->decode($parts[2]);$/;" v +val .\lib\phprs\util\IoCFactory.php /^ $val = $injector($src, $got);$/;" v +val .\lib\phprs\util\IoCFactoryEx.php /^ $val = $meta['cache'][$method]['value'];$/;" v +valid .\lib\phprs\util\CheckableCache.php /^ $valid = $checker($data, $create_time);$/;" v +valid .\lib\phprs\util\CheckableCache.php /^ $valid = false;$/;" v +valid .\lib\phprs\util\CheckableCache.php /^ $valid = false;$/;" v +valid .\lib\phprs\util\MetaInfo.php /^ private static $valid=array();$/;" v +valid_path .\lib\phprs\util\HttpRouterEntries.php /^ $valid_path=$value;$/;" v +valid_path .\lib\phprs\util\HttpRouterEntries.php /^ $valid_path=null;\/\/最深一个不为空的路径$/;" v +value .\framework\function\communication.func.php /^ $value = trim(substr($v, $pos + 1));$/;" v +value .\framework\library\json\JSON.php /^ * $value = $json->decode($input);$/;" v +value .\framework\library\json\JSON.php /^ * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));$/;" v +value .\lib\Doctrine\Common\Annotations\Annotation.php /^ public $value;$/;" v +value .\lib\Doctrine\Common\Annotations\Annotation\Attributes.php /^ public $value;$/;" v +value .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ $this->value = $values['value'];$/;" v +value .\lib\Doctrine\Common\Annotations\Annotation\Enum.php /^ public $value;$/;" v +value .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ $this->value = $values['value'];$/;" v +value .\lib\Doctrine\Common\Annotations\Annotation\Target.php /^ public $value;$/;" v +value .\lib\Doctrine\Common\Annotations\DocLexer.php /^ $value = str_replace('""', '"', substr($value, 1, strlen($value) - 2));$/;" v +value .\lib\Doctrine\Common\Annotations\DocParser.php /^ $value = $this->Value();$/;" v +value .\lib\Peekmo\JsonPath\JsonPath.php /^ $value = $this->toObject($value);$/;" v +value .\lib\Peekmo\JsonPath\JsonStore.php /^ $value = json_decode($value, true);$/;" v +value .\lib\Peekmo\JsonPath\JsonStore.php /^ $value = json_encode($value);$/;" v +value .\lib\phprs\apis\ApiExporter.php /^ $value = $arg['value'];$/;" v +value .\lib\phprs\apis\ApiExporter.php /^ $value = json_encode($value);$/;" v +value .\lib\phprs\apis\ApiExporter.php /^ $value = $value[0];$/;" v +value .\lib\phprs\apis\ApiExporter.php /^ $value = $arg['value'];$/;" v +value .\lib\phprs\util\DocParser.php /^ $value = $this->MethodCall();$/;" v +value .\lib\phprs\util\DocParser.php /^ $value = $this->Value();$/;" v +value .\lib\phprs\util\IoCFactory.php /^ $value = str_replace('{'.$key.'}', $replace, $value);$/;" v +value .\payment\baifubao\bfb_sdk.php /^ $value = '';$/;" v +value .\payment\baifubao\bfb_sdk.php /^ $value = urldecode($value); }$/;" v +valueArr .\loginLib\qq\API\class\URL.class.php /^ $valueArr = array();$/;" v +values .\lib\Doctrine\Common\Annotations\DocParser.php /^ $values = $this->Values();$/;" v +values .\lib\Doctrine\Common\Annotations\DocParser.php /^ $values = $this->MethodCall();$/;" v +values .\lib\Doctrine\Common\Annotations\DocParser.php /^ $values = array($this->Value());$/;" v +values .\lib\Doctrine\Common\Annotations\DocParser.php /^ $values = array();$/;" v +values .\lib\Peekmo\JsonPath\JsonStore.php /^ $values = array_unique($values);$/;" v +values .\lib\Peekmo\JsonPath\JsonStore.php /^ $values = array();$/;" v +values .\lib\phprs\ezsql\impls.php /^ static public function values($context, $values){$/;" f +values .\lib\phprs\ezsql\rules\insert.php /^ public function values($values) {$/;" f +values .\lib\phprs\ezsql\rules\replace.php /^ public function values($values) {$/;" f +values .\lib\phprs\util\DocParser.php /^ $values = $this->Values();$/;" v +values .\lib\phprs\util\DocParser.php /^ $values = array($this->Value());$/;" v +values .\lib\phprs\util\DocParser.php /^ $values = array();$/;" v +var .\framework\function\global.func.php /^ $var = str_replace('&', '&', htmlspecialchars($var, ENT_QUOTES));$/;" v +var .\framework\function\global.func.php /^ $var = stripslashes($var);$/;" v +var .\lib\phprs\ezsql\impls.php /^ $var = array_values($v)[0];$/;" v +var .\lib\phprs\util\RedisCache.php /^ $var = serialize($var);$/;" v +vars .\framework\library\json\JSON.php /^ $vars = get_object_vars($var);$/;" v +ver_compare .\framework\function\global.func.php /^function ver_compare($version1, $version2) {$/;" f +verify .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^function verify($params) {$/;" f +verifyPassword .\source\apis\Users.php /^ public function verifyPassword($account, $password){$/;" f +version1 .\framework\function\global.func.php /^ $version1 = intval($version1);$/;" v +version1 .\framework\function\global.func.php /^ $version1 = str_replace('.', '', $version1);$/;" v +version2 .\framework\function\global.func.php /^ $version2 = intval($version2);$/;" v +version2 .\framework\function\global.func.php /^ $version2 = str_replace('.', '', $version2);$/;" v +visit .\lib\phprs\util\Tree.php /^ public function visit( $path ,$vistor, $exact_match=false){$/;" f +visitNode .\lib\phprs\util\Tree.php /^ private function visitNode( $path, $vistor, $exact_match=false, $all_req_paths=false){$/;" f +visited .\lib\phprs\util\HttpRouterEntries.php /^ $visited = 0;$/;" v +vname .\lib\Peekmo\JsonPath\JsonPath.php /^ private function evalx($x, $v, $vname = null)$/;" v +wOpt .\framework\model\payment.mod.php /^ $wOpt = array();$/;" v +wOpt .\payment\wechat\pay.php /^$wOpt = wechat_build($params, $wechat);$/;" v +wa .\payment\resource\script\kindeditor\kindeditor-min.js /^\/* KindEditor 4.1.10 (2013-11-23), Copyright (C) kindsoft.net, Licence: http:\/\/www.kindsoft.net\/license.php *\/(function(w,i){function Z(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Array]"}function wa(a){if(!a)return!1;return Object.prototype.toString.call(a)==="[object Function]"}function J(a,b){for(var c=0,d=b.length;cnormalize($expr);$/;" v +x509data .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $x509data = $certs ['cert'];$/;" v +x509data .\payment\unionpay\upacp_sdk_php\utf8\func\secureUtil.php /^ $x509data = file_get_contents ( $cert_path );$/;" v +xa .\payment\resource\script\kindeditor\kindeditor-min.js /^"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&\/^\\d+$\/.test(a)?a+b:a}function t(a){var b;return a&&(b=\/(\\d+)\/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(\/&\/g,"&").replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,""")}function fa(a){return a.replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,'"').replace(\/&\/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+$/;" f +xa.C .\payment\resource\script\kindeditor\kindeditor-min.js /^"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&\/^\\d+$\/.test(a)?a+b:a}function t(a){var b;return a&&(b=\/(\\d+)\/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(\/&\/g,"&").replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,""")}function fa(a){return a.replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,'"').replace(\/&\/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+$/;" f +xa.s .\payment\resource\script\kindeditor\kindeditor-min.js /^"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&\/^\\d+$\/.test(a)?a+b:a}function t(a){var b;return a&&(b=\/(\\d+)\/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(\/&\/g,"&").replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,""")}function fa(a){return a.replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,'"').replace(\/&\/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+$/;" f +xa.t .\payment\resource\script\kindeditor\kindeditor-min.js /^"")}function xa(a,b,c){c=c===i?",":c;return(c+b+c).indexOf(c+a+c)>=0}function s(a,b){b=b||"px";return a&&\/^\\d+$\/.test(a)?a+b:a}function t(a){var b;return a&&(b=\/(\\d+)\/.exec(a))?parseInt(b[1],10):0}function C(a){return a.replace(\/&\/g,"&").replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,""")}function fa(a){return a.replace(\/<\/g,"<").replace(\/>\/g,">").replace(\/"\/g,'"').replace(\/&\/g,"&")}function ga(a){var b=a.split("-"),a="";m(b,function(b,d){a+=b>0?d.charAt(0).toUpperCase()+$/;" f +xml .\framework\model\payment.mod.php /^ $xml = @isimplexml_load_string($response['content'], 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v +xml2array .\framework\function\global.func.php /^function xml2array($xml) {$/;" f +xmlobj .\framework\function\global.func.php /^ $xmlobj = isimplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);$/;" v diff --git a/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset.svg b/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset.svg index f91f3d4..2cc768c 100644 --- a/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset.svg +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset.svg @@ -1,11 +1,11 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset_hover.svg b/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset_hover.svg index 98e02e5..dfa90d7 100644 --- a/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset_hover.svg @@ -1,11 +1,11 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_hover.svg b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_hover.svg index 00e75d0..87dd0c1 100644 --- a/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_hover.svg @@ -1,12 +1,12 @@ - - - - variables_hover - Created with Sketch. - - - - - - + + + + variables_hover + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_off.svg b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_off.svg index 09a82ea..8a3839d 100644 --- a/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_off.svg +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_off.svg @@ -1,12 +1,12 @@ - - - - variables_on - Created with Sketch. - - - - - - + + + + variables_on + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_on.svg b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_on.svg index 40526bf..a30c337 100644 --- a/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_on.svg +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_on.svg @@ -1,12 +1,12 @@ - - - - variables_off - Created with Sketch. - - - - - - + + + + variables_off + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back.svg index 8c8b36c..b11d5a4 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back.svg @@ -1,12 +1,12 @@ - - - - back - Created with Sketch. - - - - - - + + + + back + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back_hover.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back_hover.svg index 9e86df2..b14c40f 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back_hover.svg @@ -1,12 +1,12 @@ - - - - back_hover - Created with Sketch. - - - - - - + + + + back_hover + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes.svg index 1651280..e3e52fc 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes.svg @@ -1,15 +1,15 @@ - - - - note - Created with Sketch. - - - - - - - - - + + + + note + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_hover.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_hover.svg index 1e22b69..502b5fe 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_hover.svg @@ -1,15 +1,15 @@ - - - - note_hover - Created with Sketch. - - - - - - - - - + + + + note_hover + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_on.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_on.svg index 378fcb6..50776ec 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_on.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_on.svg @@ -1,15 +1,15 @@ - - - - note_on - Created with Sketch. - - - - - - - - - + + + + note_on + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward.svg index 9679f4b..c8c7327 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward.svg @@ -1,12 +1,12 @@ - - - - forward - Created with Sketch. - - - - - - + + + + forward + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward_hover.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward_hover.svg index cf438f5..67086a8 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward_hover.svg @@ -1,12 +1,12 @@ - - - - forward_hover - Created with Sketch. - - - - - - + + + + forward_hover + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_hover.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_hover.svg index 88d93da..afb6786 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_hover.svg @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_off.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_off.svg index 63429a1..921d262 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_off.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_off.svg @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_on.svg b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_on.svg index 83a4529..061bc50 100644 --- a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_on.svg +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_on.svg @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/flow.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/flow.svg index 228330a..33754e7 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/flow.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/flow.svg @@ -1,15 +1,15 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_closed.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_closed.svg index e73c069..1a3e01d 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_closed.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_closed.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_open.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_open.svg index d921ccf..59bef4a 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_open.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_open.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots.svg index f35fe35..87478a6 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots.svg @@ -1,12 +1,12 @@ - - - - hotspots - Created with Sketch. - - - - - - + + + + hotspots + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_hover.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_hover.svg index 45209d2..241dad0 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_hover.svg @@ -1,12 +1,12 @@ - - - - hotspots_hover - Created with Sketch. - - - - - - + + + + hotspots_hover + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_on.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_on.svg index 73899eb..c8b0e1e 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_on.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_on.svg @@ -1,12 +1,12 @@ - - - - hotspots_on - Created with Sketch. - - - - - - + + + + hotspots_on + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/note.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/note.svg index ee5337f..2cbdbdf 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/note.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/note.svg @@ -1,16 +1,16 @@ - - - - Note Copy - Created with sketchtool. - - - - - - - - - - + + + + Note Copy + Created with sketchtool. + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/page.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/page.svg index c690652..b0abc8a 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/page.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/page.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share.svg index c628e6b..d0702de 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share.svg @@ -1,19 +1,19 @@ - - - - share - Created with Sketch. - - - - - - - - - - - - - + + + + share + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_hover.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_hover.svg index e26aa4b..95dec56 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_hover.svg @@ -1,19 +1,19 @@ - - - - share_hover - Created with Sketch. - - - - - - - - - - - - - + + + + share_hover + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_on.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_on.svg index 9007227..a1cf89d 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_on.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_on.svg @@ -1,19 +1,19 @@ - - - - share_on - Created with Sketch. - - - - - - - - - - - - - + + + + share_on + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_hover.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_hover.svg index aa1ad02..cd1cb11 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_hover.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_off.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_off.svg index 0d562f4..c46a5c6 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_off.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_off.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_on.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_on.svg index f72c23b..2b2e424 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_on.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_on.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views.svg index 04f1224..5d3c154 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views.svg @@ -1,12 +1,12 @@ - - - - views - Created with Sketch. - - - - - - + + + + views + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_hover.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_hover.svg index d3bf5f5..6f0253d 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_hover.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_hover.svg @@ -1,12 +1,12 @@ - - - - views_hover - Created with Sketch. - - - - - - + + + + views_hover + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_on.svg b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_on.svg index d23cb1d..f1b133c 100644 --- a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_on.svg +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_on.svg @@ -1,12 +1,12 @@ - - - - views_on - Created with Sketch. - - - - - - + + + + views_on + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/images/close.svg b/codes/agent/game-docker/api/document/resources/images/close.svg index 3c3231b..6f2a018 100644 --- a/codes/agent/game-docker/api/document/resources/images/close.svg +++ b/codes/agent/game-docker/api/document/resources/images/close.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/close_hover.svg b/codes/agent/game-docker/api/document/resources/images/close_hover.svg index c6aac2a..0a012e7 100644 --- a/codes/agent/game-docker/api/document/resources/images/close_hover.svg +++ b/codes/agent/game-docker/api/document/resources/images/close_hover.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/divider.svg b/codes/agent/game-docker/api/document/resources/images/divider.svg index 767941e..d258c9d 100644 --- a/codes/agent/game-docker/api/document/resources/images/divider.svg +++ b/codes/agent/game-docker/api/document/resources/images/divider.svg @@ -1,13 +1,13 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/expand.svg b/codes/agent/game-docker/api/document/resources/images/expand.svg index a6a8692..d9d7855 100644 --- a/codes/agent/game-docker/api/document/resources/images/expand.svg +++ b/codes/agent/game-docker/api/document/resources/images/expand.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/expand_hover.svg b/codes/agent/game-docker/api/document/resources/images/expand_hover.svg index 958b481..c9645e3 100644 --- a/codes/agent/game-docker/api/document/resources/images/expand_hover.svg +++ b/codes/agent/game-docker/api/document/resources/images/expand_hover.svg @@ -1,8 +1,8 @@ - - - - - - - - + + + + + + + + diff --git a/codes/agent/game-docker/api/framework/model/user.mod.php.bak b/codes/agent/game-docker/api/framework/model/user.mod.php.bak index 8181ac9..e6087de 100644 --- a/codes/agent/game-docker/api/framework/model/user.mod.php.bak +++ b/codes/agent/game-docker/api/framework/model/user.mod.php.bak @@ -1,439 +1,439 @@ -from('syweb_users a,syweb_users_weixin b') - ->where('b.uid=a.id and b.openid=? and a.market_key=?', $UId, $market_key) - ->get($db, null); - break; - - case AUTHTYPE_QQ: // QQ用户信息查询 - $userInfo = Sql::select('a.*') - ->from('syweb_users a,syweb_users_qq b') - ->where('b.uid=a.id and b.openid=? and a.market_key=?', $UId, $market_key) - ->get($db, null); - break; - - case AUTHTYPE_JKX: // 聚开心会员信息查询 - $userInfo = Sql::select('a.*') - ->from('syweb_users a,syweb_users_jkx b') - ->where('b.uid=a.id and b.username=? and a.market_key=?', $UId, $market_key) - ->get($db, null); - break; - - case AUTHTYPE_MEMBER: // 会员注册登录 - $userInfo = Sql::select('a.*') - ->from('syweb_users a,syweb_users_normal b') - ->where('b.uid=a.id and b.username=? and a.market_key=?', $UId, $market_key) - ->get($db, null); - break; - - case AUTHTYPE_NIUNIUGAME: // 友乐牛牛注册登录 - $userInfo = Sql::select('a.*') - ->from('syweb_users a,syweb_users_ylnn b') - ->where('b.uid=a.id and b.user_key=? and a.market_key=?', $UId, $market_key) - ->get($db, null); - break; - - default: - break; - } - - if (!empty($userInfo) && count($userInfo) > 0) - { - return $userInfo[0]; - } - return null; -} - -// 查询指定的openId微信用户是否存在 -function getUserById($id, $db) -{ - $userInfo = Sql::select('a.*') - ->from('syweb_users a') - ->where('a.id=?', $id) - ->get($db, null); - if (count($userInfo) > 0) - { - return $userInfo[0]; - } - return null; -} - -// 根据UID查询微信粉丝详细信息 -function getWeixinUserByUId($uid, $db) -{ - $weixinUserInfo = Sql::select('a.*') - ->from('syweb_users_weixin a') - ->where('a.uid=?', $uid) - ->get($db, null); - if (count($weixinUserInfo) > 0) - { - return $weixinUserInfo[0]; - } - return null; -} - -// 根据UID查询聚开心粉丝详细信息 -function getJkxUserByUId($uid, $db) -{ - $weixinUserInfo = Sql::select('a.*') - ->from('syweb_users_jkx a') - ->where('a.uid=?', $uid) - ->get($db, null); - if (count($weixinUserInfo) > 0) - { - return $weixinUserInfo[0]; - } - return null; -} - -// 根据UID查询友乐牛牛粉丝详细信息 -function getYlnnUserByUId($uid, $db) -{ - $userInfo = Sql::select('a.*') - ->from('syweb_users_ylnn a') - ->where('a.uid=?', $uid) - ->get($db, null); - if (count($userInfo) > 0) - { - return $userInfo[0]; - } - return null; -} - -// 根据UID查询微信粉丝详细信息 -function getQqUserByUId($uid, $db) -{ - $qqUserInfo = Sql::select('syweb_users_qq.*') - ->from('syweb_users_qq') - ->where('syweb_users_qq.uid=?', $uid) - ->get($db, null); - if (!empty($qqUserInfo) > 0 && count($qqUserInfo) > 0) - { - return $qqUserInfo[0]; - } - return null; -} - -// 增加/更新用户信息 -function updateUserInfo($scode, $auth_type, $username, $market_key, $db, $pdo) -{ - // 首先验证指定的账号在全局用户信息中是否存在对应的记录 - $user_exist = Sql::select('a.id') - ->from('syweb_users a') - ->where('a.openid=? and a.market_key=? and a.auth_type=?', $username, $market_key, $auth_type) - ->get($db, null); - - // 循环创建用户全局唯一ID(临时绑定,20分钟有效) - $sid = random(32, false); - while (true) - { - $sid_exist = Sql::select('a.sid') - ->from('syweb_users a') - ->where('a.sid=?', $sid) - ->get($db, null); - if ($sid_exist) - { - $sid = random(32, false); - } - else - { - break; - } - } - - // 循环创建access_id(长时间绑定,30天有效) - $access_id = "gm_" . random(13, false); - while (true) - { - $access_id_exist = Sql::select('a.sid') - ->from('syweb_users a') - ->where('a.access_id=?', $access_id) - ->get($db, null); - - if ($access_id_exist) - { - $access_id_exist = "gm_" . random(13, false); - } - else - { - break; - } - } - - $access_key = random(36, false); - while (true) - { - $access_key_exist = Sql::select('a.sid') - ->from('syweb_users a') - ->where('a.access_key=?', $access_key) - ->get($db, null); - - if ($access_key_exist) - { - $access_key = random(36, false); - } - else - { - break; - } - } - - //SID过期时间(默认2天内有效) - $sid_expire_time = time() + (2 * 24 * 60 * 60); - - //AccessToken过期时间(默认两个月内有效) - $access_expire_time = time() + (60 * 24 * 60 * 60); - - // 假如当前username不存在,则新增一条对应的全局用户记录 - if (empty($user_exist) || count($user_exist) <= 0) - { - $insertData = array(); - $insertData['main_account_id'] = ""; // 默认没有绑定主账户 - $insertData['sid'] = $sid; - $insertData['scode'] = $scode; - $insertData['sid_expire_time'] = $sid_expire_time; - $insertData['access_id'] = $access_id; - $insertData['access_key'] = $access_key; - $insertData['access_expire_time'] = $access_expire_time; - $insertData['market_key'] = $market_key; - $insertData['auth_type'] = $auth_type; - $insertData['openid'] = $username; - $insertData['market_jifen'] = 0; - $insertData['create_time'] = TIMESTAMP; - - $id = Sql::insertInto('syweb_users')->values($insertData)->exec($pdo)->lastInsertId(); - if (!$id) - { - return -1; - } - return $id; - } - else - { - // 假如当前username存在,则修改一条对应的全局用户记录 - $updateData = array(); - $updateData['sid'] = $sid; - $updateData['scode'] = $scode; - $updateData['sid_expire_time'] = $sid_expire_time; - $updateData['access_id'] = $access_id; - $updateData['access_key'] = $access_key; - $updateData['access_expire_time'] = $access_expire_time; - $updateData['auth_type'] = $auth_type; - - Sql::update('syweb_users')->setArgs($updateData)->where('openid=? and market_key=? and auth_type=?', $username, $market_key, $auth_type)->exec($pdo); - return $user_exist[0]["id"]; - } -} - - -// 更新微信用户信息 -function updateWeixinUserInfo($weixinUserInfo, $db, $pdo) -{ - $uid_exist = Sql::select('a.id') - ->from('syweb_users_weixin a') - ->where('a.uid=? and a.openid=?', $weixinUserInfo["uid"], $weixinUserInfo["openid"]) - ->get($db, null); - - if (empty($uid_exist) || count($uid_exist) <= 0) - { - // 假如当前uid不存在 - $insertData = array(); - $insertData['uid'] = $weixinUserInfo["uid"]; - $insertData['nickname'] = $weixinUserInfo["nickname"]; - $insertData['sex'] = $weixinUserInfo["sex"]; - $insertData['province'] = $weixinUserInfo["province"]; - $insertData['city'] = $weixinUserInfo["city"]; - $insertData['country'] = $weixinUserInfo["country"]; - $insertData['headimgurl'] = $weixinUserInfo["headimgurl"]; - $insertData['privilege'] = $weixinUserInfo["privilege"]; - $insertData['subscribe'] = $weixinUserInfo["subscribe"]; - $insertData['subscribe_time'] = $weixinUserInfo["subscribe_time"]; - $insertData['openid'] = $weixinUserInfo["openid"]; - $insertData['unionid'] = $weixinUserInfo["unionid"]; - - $id = Sql::insertInto('syweb_users_weixin')->values($insertData)->exec($pdo)->lastInsertId(); - if (!$id) - { - return -1; - } - return $id; - } - else - { - $updateData = array(); - $updateData['nickname'] = $weixinUserInfo["nickname"]; - $updateData['sex'] = $weixinUserInfo["sex"]; - $updateData['province'] = $weixinUserInfo["province"]; - $updateData['city'] = $weixinUserInfo["city"]; - $updateData['country'] = $weixinUserInfo["country"]; - $updateData['headimgurl'] = $weixinUserInfo["headimgurl"]; - $updateData['privilege'] = $weixinUserInfo["privilege"]; - $updateData['subscribe'] = $weixinUserInfo["subscribe"]; - $updateData['subscribe_time'] = $weixinUserInfo["subscribe_time"]; - $updateData['unionid'] = $weixinUserInfo["unionid"]; - Sql::update('syweb_users_weixin')->setArgs($updateData)->where('uid=? and openid=?', $weixinUserInfo["uid"], $weixinUserInfo["openid"])->exec($pdo); - return $uid_exist["id"]; - } -} - -// 更新QQ用户信息 -function updateQqUserInfo($qqUserInfo, $db, $pdo) -{ - $uid_exist = Sql::select('syweb_users_qq.id') - ->from('syweb_users_qq') - ->where('syweb_users_qq.uid=? and syweb_users_qq.openid=?', $qqUserInfo["uid"], $qqUserInfo["openid"]) - ->get($db, null); - - if (empty($uid_exist)) - { - // 假如当前uid不存在 - $insertData = array(); - $insertData['uid'] = $qqUserInfo["uid"]; - $insertData['gender'] = $qqUserInfo["gender"]; - $insertData['nickname'] = $qqUserInfo["nickname"]; - $insertData['province'] = $qqUserInfo["province"]; - $insertData['city'] = $qqUserInfo["city"]; - $insertData['year'] = $qqUserInfo["year"]; - $insertData['figureurl_qq_1'] = $qqUserInfo["figureurl_qq_1"]; - $insertData['figureurl_qq_2'] = $qqUserInfo["figureurl_qq_2"]; - $insertData['figureurl'] = $qqUserInfo["figureurl"]; - $insertData['figureurl_1'] = $qqUserInfo["figureurl_1"]; - $insertData['figureurl_2'] = $qqUserInfo["figureurl_2"]; - $insertData['vip'] = $qqUserInfo["vip"]; - $insertData['level'] = $qqUserInfo["level"]; - $insertData['is_yellow_year_vip'] = $qqUserInfo["is_yellow_year_vip"]; - $insertData['yellow_vip_level'] = $qqUserInfo["yellow_vip_level"]; - $insertData['openid'] = $qqUserInfo["openid"]; - - $id = Sql::insertInto('syweb_users_qq')->values($insertData)->exec($pdo)->lastInsertId(); - if (!$id) - { - return -1; - } - return $id; - } - else - { - $updateData = array(); - $updateData['gender'] = $qqUserInfo["gender"]; - $updateData['nickname'] = $qqUserInfo["nickname"]; - $updateData['province'] = $qqUserInfo["province"]; - $updateData['city'] = $qqUserInfo["city"]; - $updateData['year'] = $qqUserInfo["year"]; - $updateData['figureurl_qq_1'] = $qqUserInfo["figureurl_qq_1"]; - $updateData['figureurl_qq_2'] = $qqUserInfo["figureurl_qq_2"]; - $updateData['figureurl'] = $qqUserInfo["figureurl"]; - $updateData['figureurl_1'] = $qqUserInfo["figureurl_1"]; - $updateData['figureurl_2'] = $qqUserInfo["figureurl_2"]; - $updateData['vip'] = $qqUserInfo["vip"]; - $updateData['level'] = $qqUserInfo["level"]; - $updateData['is_yellow_year_vip'] = $qqUserInfo["is_yellow_year_vip"]; - $updateData['yellow_vip_level'] = $qqUserInfo["yellow_vip_level"]; - - Sql::update('syweb_users_qq')->setArgs($updateData)->where('uid=? and openid=?', $qqUserInfo["uid"], $qqUserInfo["openid"])->exec($pdo); - return $uid_exist["id"]; - } -} - -// 更新聚开心用户信息 -function updateJkxUserInfo($userInfo, $db, $pdo) -{ - $uid_exist = Sql::select('a.id') - ->from('syweb_users_jkx a') - ->where('a.uid=? and a.username=?', $userInfo["uid"], $userInfo["username"]) - ->get($db, null); - - if (empty($uid_exist) || count($uid_exist) <= 0) - { - // 假如当前uid不存在 - $insertData = array(); - $insertData['uid'] = $userInfo["uid"]; - $insertData['level'] = $userInfo["level"]; - $insertData['enum'] = $userInfo["enum"]; - $insertData['realname'] = $userInfo["realname"]; - $insertData['tel'] = $userInfo["tel"]; - $insertData['headimgurl'] = $userInfo["headimgurl"]; - $insertData['username'] = $userInfo["username"]; - $insertData['integral'] = $userInfo["integral"]; - - $id = Sql::insertInto('syweb_users_jkx')->values($insertData)->exec($pdo)->lastInsertId(); - if (!$id) - { - return -1; - } - return $id; - } - else - { - $updateData = array(); - $updateData['level'] = $userInfo["level"]; - $updateData['enum'] = $userInfo["enum"]; - $updateData['realname'] = $userInfo["realname"]; - $updateData['tel'] = $userInfo["tel"]; - $updateData['headimgurl'] = $userInfo["headimgurl"]; - $updateData['integral'] = $userInfo["integral"]; - - Sql::update('syweb_users_jkx')->setArgs($updateData)->where('uid=? and username=?', $userInfo["uid"], $userInfo["username"])->exec($pdo); - return $uid_exist["id"]; - } -} - -// 更新友乐牛牛用户信息 -function updateYlnnUserInfo($userInfo, $db, $pdo) -{ - $uid_exist = Sql::select('a.id') - ->from('syweb_users_ylnn a') - ->where('a.uid=? and a.user_key=?', $userInfo["uid"], $userInfo["user_key"]) - ->get($db, null); - - if (empty($uid_exist) || count($uid_exist) <= 0) - { - // 假如当前uid不存在 - $insertData = array(); - $insertData['uid'] = $userInfo["uid"]; - $insertData['user_key'] = $userInfo["user_key"]; - $insertData['agent_key'] = $userInfo["agent_key"]; - $insertData['game_key'] = $userInfo["game_key"]; - $insertData['player_key'] = $userInfo["player_key"]; - $insertData['headimgurl'] = $userInfo["headimgurl"]; - $insertData['nickname'] = $userInfo["nickname"]; - - $id = Sql::insertInto('syweb_users_ylnn')->values($insertData)->exec($pdo)->lastInsertId(); - if (!$id) - { - return -1; - } - return $id; - } - else - { - $updateData = array(); - $updateData['agent_key'] = $userInfo["agent_key"]; - $updateData['game_key'] = $userInfo["game_key"]; - $updateData['player_key'] = $userInfo["player_key"]; - $updateData['headimgurl'] = $userInfo["headimgurl"]; - $updateData['nickname'] = $userInfo["nickname"]; - - Sql::update('syweb_users_ylnn')->setArgs($updateData)->where('uid=? and user_key=?', $userInfo["uid"], $userInfo["user_key"])->exec($pdo); - return $uid_exist["id"]; - } +from('syweb_users a,syweb_users_weixin b') + ->where('b.uid=a.id and b.openid=? and a.market_key=?', $UId, $market_key) + ->get($db, null); + break; + + case AUTHTYPE_QQ: // QQ用户信息查询 + $userInfo = Sql::select('a.*') + ->from('syweb_users a,syweb_users_qq b') + ->where('b.uid=a.id and b.openid=? and a.market_key=?', $UId, $market_key) + ->get($db, null); + break; + + case AUTHTYPE_JKX: // 聚开心会员信息查询 + $userInfo = Sql::select('a.*') + ->from('syweb_users a,syweb_users_jkx b') + ->where('b.uid=a.id and b.username=? and a.market_key=?', $UId, $market_key) + ->get($db, null); + break; + + case AUTHTYPE_MEMBER: // 会员注册登录 + $userInfo = Sql::select('a.*') + ->from('syweb_users a,syweb_users_normal b') + ->where('b.uid=a.id and b.username=? and a.market_key=?', $UId, $market_key) + ->get($db, null); + break; + + case AUTHTYPE_NIUNIUGAME: // 友乐牛牛注册登录 + $userInfo = Sql::select('a.*') + ->from('syweb_users a,syweb_users_ylnn b') + ->where('b.uid=a.id and b.user_key=? and a.market_key=?', $UId, $market_key) + ->get($db, null); + break; + + default: + break; + } + + if (!empty($userInfo) && count($userInfo) > 0) + { + return $userInfo[0]; + } + return null; +} + +// 查询指定的openId微信用户是否存在 +function getUserById($id, $db) +{ + $userInfo = Sql::select('a.*') + ->from('syweb_users a') + ->where('a.id=?', $id) + ->get($db, null); + if (count($userInfo) > 0) + { + return $userInfo[0]; + } + return null; +} + +// 根据UID查询微信粉丝详细信息 +function getWeixinUserByUId($uid, $db) +{ + $weixinUserInfo = Sql::select('a.*') + ->from('syweb_users_weixin a') + ->where('a.uid=?', $uid) + ->get($db, null); + if (count($weixinUserInfo) > 0) + { + return $weixinUserInfo[0]; + } + return null; +} + +// 根据UID查询聚开心粉丝详细信息 +function getJkxUserByUId($uid, $db) +{ + $weixinUserInfo = Sql::select('a.*') + ->from('syweb_users_jkx a') + ->where('a.uid=?', $uid) + ->get($db, null); + if (count($weixinUserInfo) > 0) + { + return $weixinUserInfo[0]; + } + return null; +} + +// 根据UID查询友乐牛牛粉丝详细信息 +function getYlnnUserByUId($uid, $db) +{ + $userInfo = Sql::select('a.*') + ->from('syweb_users_ylnn a') + ->where('a.uid=?', $uid) + ->get($db, null); + if (count($userInfo) > 0) + { + return $userInfo[0]; + } + return null; +} + +// 根据UID查询微信粉丝详细信息 +function getQqUserByUId($uid, $db) +{ + $qqUserInfo = Sql::select('syweb_users_qq.*') + ->from('syweb_users_qq') + ->where('syweb_users_qq.uid=?', $uid) + ->get($db, null); + if (!empty($qqUserInfo) > 0 && count($qqUserInfo) > 0) + { + return $qqUserInfo[0]; + } + return null; +} + +// 增加/更新用户信息 +function updateUserInfo($scode, $auth_type, $username, $market_key, $db, $pdo) +{ + // 首先验证指定的账号在全局用户信息中是否存在对应的记录 + $user_exist = Sql::select('a.id') + ->from('syweb_users a') + ->where('a.openid=? and a.market_key=? and a.auth_type=?', $username, $market_key, $auth_type) + ->get($db, null); + + // 循环创建用户全局唯一ID(临时绑定,20分钟有效) + $sid = random(32, false); + while (true) + { + $sid_exist = Sql::select('a.sid') + ->from('syweb_users a') + ->where('a.sid=?', $sid) + ->get($db, null); + if ($sid_exist) + { + $sid = random(32, false); + } + else + { + break; + } + } + + // 循环创建access_id(长时间绑定,30天有效) + $access_id = "gm_" . random(13, false); + while (true) + { + $access_id_exist = Sql::select('a.sid') + ->from('syweb_users a') + ->where('a.access_id=?', $access_id) + ->get($db, null); + + if ($access_id_exist) + { + $access_id_exist = "gm_" . random(13, false); + } + else + { + break; + } + } + + $access_key = random(36, false); + while (true) + { + $access_key_exist = Sql::select('a.sid') + ->from('syweb_users a') + ->where('a.access_key=?', $access_key) + ->get($db, null); + + if ($access_key_exist) + { + $access_key = random(36, false); + } + else + { + break; + } + } + + //SID过期时间(默认2天内有效) + $sid_expire_time = time() + (2 * 24 * 60 * 60); + + //AccessToken过期时间(默认两个月内有效) + $access_expire_time = time() + (60 * 24 * 60 * 60); + + // 假如当前username不存在,则新增一条对应的全局用户记录 + if (empty($user_exist) || count($user_exist) <= 0) + { + $insertData = array(); + $insertData['main_account_id'] = ""; // 默认没有绑定主账户 + $insertData['sid'] = $sid; + $insertData['scode'] = $scode; + $insertData['sid_expire_time'] = $sid_expire_time; + $insertData['access_id'] = $access_id; + $insertData['access_key'] = $access_key; + $insertData['access_expire_time'] = $access_expire_time; + $insertData['market_key'] = $market_key; + $insertData['auth_type'] = $auth_type; + $insertData['openid'] = $username; + $insertData['market_jifen'] = 0; + $insertData['create_time'] = TIMESTAMP; + + $id = Sql::insertInto('syweb_users')->values($insertData)->exec($pdo)->lastInsertId(); + if (!$id) + { + return -1; + } + return $id; + } + else + { + // 假如当前username存在,则修改一条对应的全局用户记录 + $updateData = array(); + $updateData['sid'] = $sid; + $updateData['scode'] = $scode; + $updateData['sid_expire_time'] = $sid_expire_time; + $updateData['access_id'] = $access_id; + $updateData['access_key'] = $access_key; + $updateData['access_expire_time'] = $access_expire_time; + $updateData['auth_type'] = $auth_type; + + Sql::update('syweb_users')->setArgs($updateData)->where('openid=? and market_key=? and auth_type=?', $username, $market_key, $auth_type)->exec($pdo); + return $user_exist[0]["id"]; + } +} + + +// 更新微信用户信息 +function updateWeixinUserInfo($weixinUserInfo, $db, $pdo) +{ + $uid_exist = Sql::select('a.id') + ->from('syweb_users_weixin a') + ->where('a.uid=? and a.openid=?', $weixinUserInfo["uid"], $weixinUserInfo["openid"]) + ->get($db, null); + + if (empty($uid_exist) || count($uid_exist) <= 0) + { + // 假如当前uid不存在 + $insertData = array(); + $insertData['uid'] = $weixinUserInfo["uid"]; + $insertData['nickname'] = $weixinUserInfo["nickname"]; + $insertData['sex'] = $weixinUserInfo["sex"]; + $insertData['province'] = $weixinUserInfo["province"]; + $insertData['city'] = $weixinUserInfo["city"]; + $insertData['country'] = $weixinUserInfo["country"]; + $insertData['headimgurl'] = $weixinUserInfo["headimgurl"]; + $insertData['privilege'] = $weixinUserInfo["privilege"]; + $insertData['subscribe'] = $weixinUserInfo["subscribe"]; + $insertData['subscribe_time'] = $weixinUserInfo["subscribe_time"]; + $insertData['openid'] = $weixinUserInfo["openid"]; + $insertData['unionid'] = $weixinUserInfo["unionid"]; + + $id = Sql::insertInto('syweb_users_weixin')->values($insertData)->exec($pdo)->lastInsertId(); + if (!$id) + { + return -1; + } + return $id; + } + else + { + $updateData = array(); + $updateData['nickname'] = $weixinUserInfo["nickname"]; + $updateData['sex'] = $weixinUserInfo["sex"]; + $updateData['province'] = $weixinUserInfo["province"]; + $updateData['city'] = $weixinUserInfo["city"]; + $updateData['country'] = $weixinUserInfo["country"]; + $updateData['headimgurl'] = $weixinUserInfo["headimgurl"]; + $updateData['privilege'] = $weixinUserInfo["privilege"]; + $updateData['subscribe'] = $weixinUserInfo["subscribe"]; + $updateData['subscribe_time'] = $weixinUserInfo["subscribe_time"]; + $updateData['unionid'] = $weixinUserInfo["unionid"]; + Sql::update('syweb_users_weixin')->setArgs($updateData)->where('uid=? and openid=?', $weixinUserInfo["uid"], $weixinUserInfo["openid"])->exec($pdo); + return $uid_exist["id"]; + } +} + +// 更新QQ用户信息 +function updateQqUserInfo($qqUserInfo, $db, $pdo) +{ + $uid_exist = Sql::select('syweb_users_qq.id') + ->from('syweb_users_qq') + ->where('syweb_users_qq.uid=? and syweb_users_qq.openid=?', $qqUserInfo["uid"], $qqUserInfo["openid"]) + ->get($db, null); + + if (empty($uid_exist)) + { + // 假如当前uid不存在 + $insertData = array(); + $insertData['uid'] = $qqUserInfo["uid"]; + $insertData['gender'] = $qqUserInfo["gender"]; + $insertData['nickname'] = $qqUserInfo["nickname"]; + $insertData['province'] = $qqUserInfo["province"]; + $insertData['city'] = $qqUserInfo["city"]; + $insertData['year'] = $qqUserInfo["year"]; + $insertData['figureurl_qq_1'] = $qqUserInfo["figureurl_qq_1"]; + $insertData['figureurl_qq_2'] = $qqUserInfo["figureurl_qq_2"]; + $insertData['figureurl'] = $qqUserInfo["figureurl"]; + $insertData['figureurl_1'] = $qqUserInfo["figureurl_1"]; + $insertData['figureurl_2'] = $qqUserInfo["figureurl_2"]; + $insertData['vip'] = $qqUserInfo["vip"]; + $insertData['level'] = $qqUserInfo["level"]; + $insertData['is_yellow_year_vip'] = $qqUserInfo["is_yellow_year_vip"]; + $insertData['yellow_vip_level'] = $qqUserInfo["yellow_vip_level"]; + $insertData['openid'] = $qqUserInfo["openid"]; + + $id = Sql::insertInto('syweb_users_qq')->values($insertData)->exec($pdo)->lastInsertId(); + if (!$id) + { + return -1; + } + return $id; + } + else + { + $updateData = array(); + $updateData['gender'] = $qqUserInfo["gender"]; + $updateData['nickname'] = $qqUserInfo["nickname"]; + $updateData['province'] = $qqUserInfo["province"]; + $updateData['city'] = $qqUserInfo["city"]; + $updateData['year'] = $qqUserInfo["year"]; + $updateData['figureurl_qq_1'] = $qqUserInfo["figureurl_qq_1"]; + $updateData['figureurl_qq_2'] = $qqUserInfo["figureurl_qq_2"]; + $updateData['figureurl'] = $qqUserInfo["figureurl"]; + $updateData['figureurl_1'] = $qqUserInfo["figureurl_1"]; + $updateData['figureurl_2'] = $qqUserInfo["figureurl_2"]; + $updateData['vip'] = $qqUserInfo["vip"]; + $updateData['level'] = $qqUserInfo["level"]; + $updateData['is_yellow_year_vip'] = $qqUserInfo["is_yellow_year_vip"]; + $updateData['yellow_vip_level'] = $qqUserInfo["yellow_vip_level"]; + + Sql::update('syweb_users_qq')->setArgs($updateData)->where('uid=? and openid=?', $qqUserInfo["uid"], $qqUserInfo["openid"])->exec($pdo); + return $uid_exist["id"]; + } +} + +// 更新聚开心用户信息 +function updateJkxUserInfo($userInfo, $db, $pdo) +{ + $uid_exist = Sql::select('a.id') + ->from('syweb_users_jkx a') + ->where('a.uid=? and a.username=?', $userInfo["uid"], $userInfo["username"]) + ->get($db, null); + + if (empty($uid_exist) || count($uid_exist) <= 0) + { + // 假如当前uid不存在 + $insertData = array(); + $insertData['uid'] = $userInfo["uid"]; + $insertData['level'] = $userInfo["level"]; + $insertData['enum'] = $userInfo["enum"]; + $insertData['realname'] = $userInfo["realname"]; + $insertData['tel'] = $userInfo["tel"]; + $insertData['headimgurl'] = $userInfo["headimgurl"]; + $insertData['username'] = $userInfo["username"]; + $insertData['integral'] = $userInfo["integral"]; + + $id = Sql::insertInto('syweb_users_jkx')->values($insertData)->exec($pdo)->lastInsertId(); + if (!$id) + { + return -1; + } + return $id; + } + else + { + $updateData = array(); + $updateData['level'] = $userInfo["level"]; + $updateData['enum'] = $userInfo["enum"]; + $updateData['realname'] = $userInfo["realname"]; + $updateData['tel'] = $userInfo["tel"]; + $updateData['headimgurl'] = $userInfo["headimgurl"]; + $updateData['integral'] = $userInfo["integral"]; + + Sql::update('syweb_users_jkx')->setArgs($updateData)->where('uid=? and username=?', $userInfo["uid"], $userInfo["username"])->exec($pdo); + return $uid_exist["id"]; + } +} + +// 更新友乐牛牛用户信息 +function updateYlnnUserInfo($userInfo, $db, $pdo) +{ + $uid_exist = Sql::select('a.id') + ->from('syweb_users_ylnn a') + ->where('a.uid=? and a.user_key=?', $userInfo["uid"], $userInfo["user_key"]) + ->get($db, null); + + if (empty($uid_exist) || count($uid_exist) <= 0) + { + // 假如当前uid不存在 + $insertData = array(); + $insertData['uid'] = $userInfo["uid"]; + $insertData['user_key'] = $userInfo["user_key"]; + $insertData['agent_key'] = $userInfo["agent_key"]; + $insertData['game_key'] = $userInfo["game_key"]; + $insertData['player_key'] = $userInfo["player_key"]; + $insertData['headimgurl'] = $userInfo["headimgurl"]; + $insertData['nickname'] = $userInfo["nickname"]; + + $id = Sql::insertInto('syweb_users_ylnn')->values($insertData)->exec($pdo)->lastInsertId(); + if (!$id) + { + return -1; + } + return $id; + } + else + { + $updateData = array(); + $updateData['agent_key'] = $userInfo["agent_key"]; + $updateData['game_key'] = $userInfo["game_key"]; + $updateData['player_key'] = $userInfo["player_key"]; + $updateData['headimgurl'] = $userInfo["headimgurl"]; + $updateData['nickname'] = $userInfo["nickname"]; + + Sql::update('syweb_users_ylnn')->setArgs($updateData)->where('uid=? and user_key=?', $userInfo["uid"], $userInfo["user_key"])->exec($pdo); + return $uid_exist["id"]; + } } \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/README.md b/codes/agent/game-docker/api/lib/phprs/ezsql/README.md index d9743ff..8fa32ad 100644 --- a/codes/agent/game-docker/api/lib/phprs/ezsql/README.md +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/README.md @@ -1,44 +1,44 @@ -# ezsql -An an easy-to-use SQL builder. - -## HOW TO USE - - $db = new \PDO($dsn, $username, $passwd); - -### SELECT - - $res = Sql::select('a, b') - ->from('table') - ->leftJoin('table1')->on('table.id=table1.id') - ->where('a=?',1) - ->groupBy('b')->having('sum(b)=?', 2) - ->orderBy('c', Sql::$ORDER_BY_ASC) - ->limit(0,1) - ->forUpdate()->of('d') - ->get($db); -### UPDATE - - $rows = Sql::update('table') - ->set('a', 1) - ->where('b=?', 2) - ->orderBy('c', Sql::$ORDER_BY_ASC) - ->limit(1) - ->exec($db) - ->rows - -### INSERT - - $newId = Sql::insertInto('table') - ->values(['a'=>1]) - ->exec($db) - ->lastInsertId() - -### DELETE - - $rows = Sql::deleteFrom('table') - ->where('b=?', 2) - ->orderBy('c', Sql::$ORDER_BY_ASC) - ->limit(1) - ->exec($db) - ->rows - +# ezsql +An an easy-to-use SQL builder. + +## HOW TO USE + + $db = new \PDO($dsn, $username, $passwd); + +### SELECT + + $res = Sql::select('a, b') + ->from('table') + ->leftJoin('table1')->on('table.id=table1.id') + ->where('a=?',1) + ->groupBy('b')->having('sum(b)=?', 2) + ->orderBy('c', Sql::$ORDER_BY_ASC) + ->limit(0,1) + ->forUpdate()->of('d') + ->get($db); +### UPDATE + + $rows = Sql::update('table') + ->set('a', 1) + ->where('b=?', 2) + ->orderBy('c', Sql::$ORDER_BY_ASC) + ->limit(1) + ->exec($db) + ->rows + +### INSERT + + $newId = Sql::insertInto('table') + ->values(['a'=>1]) + ->exec($db) + ->lastInsertId() + +### DELETE + + $rows = Sql::deleteFrom('table') + ->where('b=?', 2) + ->orderBy('c', Sql::$ORDER_BY_ASC) + ->limit(1) + ->exec($db) + ->rows + diff --git a/codes/agent/game-docker/api/payment/alipay/bak/pay.htm b/codes/agent/game-docker/api/payment/alipay/bak/pay.htm index ada14e7..1ccdfdf 100644 --- a/codes/agent/game-docker/api/payment/alipay/bak/pay.htm +++ b/codes/agent/game-docker/api/payment/alipay/bak/pay.htm @@ -1,96 +1,96 @@ - - - - - 支付提示 - - - - - - - - - - - - + + + + + 支付提示 + + + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/log/log.txt b/codes/agent/game-docker/api/payment/alipay/f2fpay/log/log.txt index d9f9f8a..bab5e08 100644 --- a/codes/agent/game-docker/api/payment/alipay/f2fpay/log/log.txt +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/log/log.txt @@ -1,12 +1,12 @@ -2016-12-07 10:38:04 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-07 10:40:24 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-07 10:44:54 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-07 10:45:02 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-07 10:45:39 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-07 10:49:17 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-07 10:53:43 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-09 04:07:41 {"scene":"bar_code","out_trade_no":"2016120912341","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"2.1测试","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-09 04:08:38 {"scene":"bar_code","out_trade_no":"2016120912341","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"2.1测试","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} -2016-12-09 04:09:08 {"out_trade_no":"2016120912341"} -2016-12-10 11:37:27 {"out_trade_no":"2016120912341"} -2016-12-10 11:39:41 {"out_trade_no":"2016120912341"} +2016-12-07 10:38:04 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-07 10:40:24 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-07 10:44:54 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-07 10:45:02 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-07 10:45:39 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-07 10:49:17 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-07 10:53:43 {"scene":"bar_code","out_trade_no":"1231231231231231","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"1231","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-09 04:07:41 {"scene":"bar_code","out_trade_no":"2016120912341","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"2.1测试","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-09 04:08:38 {"scene":"bar_code","out_trade_no":"2016120912341","total_amount":"0.01","auth_code":"1231231231231","timeout_express":"5m","subject":"2.1测试","body":"购买商品2件共15.00元","undiscountable_amount":"0.01","extend_params":{"sys_service_provider_id":""},"goods_detail":[{"goods_id":"good_id001","goods_name":"XXX商品1","price":3000,"quantity":1},{"goods_id":"good_id002","goods_name":"XXX商品2","price":1000,"quantity":1}],"store_id":"test_store_id","operator_id":"test_operator_id","alipay_store_id":"test_alipay_store_id"} +2016-12-09 04:09:08 {"out_trade_no":"2016120912341"} +2016-12-10 11:37:27 {"out_trade_no":"2016120912341"} +2016-12-10 11:39:41 {"out_trade_no":"2016120912341"} diff --git a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key.pem index dbf24a8..7dce72c 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key.pem @@ -1,9 +1,9 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvFUyXSULufEwRk4wh9Mi -l5LxPqNToMCxQ5Arepajy/b2nMsXWvkQK1qdkftVoWrQlgjhVhgwVwRBaCZ8yfAH -eBBLep8LObpl5p6RIAeaH2XIzpk3OFfDiZ3KmYpDFudueNCZj/JtOhsvAtCqSe/J -30OzJ7f20i/pQPcIEijSoCrm7hR1wkb1RbFrMh+l6E06OP8ITpj2KDCSI20J5b6q -TpR9db7Pkwus2wA9JSqmWlnTHsxfLcNrJPkfMY6YLfXj96b0SbRt77SbpKvj96Cm -OCIfNy3XQbA5eJj0wPFnaForUgmMvb/qmZ2VTNOzh6o34cgUWZy401O0VU/1hTji -FQIDAQAB ------END PUBLIC KEY----- +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvFUyXSULufEwRk4wh9Mi +l5LxPqNToMCxQ5Arepajy/b2nMsXWvkQK1qdkftVoWrQlgjhVhgwVwRBaCZ8yfAH +eBBLep8LObpl5p6RIAeaH2XIzpk3OFfDiZ3KmYpDFudueNCZj/JtOhsvAtCqSe/J +30OzJ7f20i/pQPcIEijSoCrm7hR1wkb1RbFrMh+l6E06OP8ITpj2KDCSI20J5b6q +TpR9db7Pkwus2wA9JSqmWlnTHsxfLcNrJPkfMY6YLfXj96b0SbRt77SbpKvj96Cm +OCIfNy3XQbA5eJj0wPFnaForUgmMvb/qmZ2VTNOzh6o34cgUWZy401O0VU/1hTji +FQIDAQAB +-----END PUBLIC KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_online.pem b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_online.pem index 7757c70..85d9875 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_online.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_online.pem @@ -1,9 +1,9 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvFUyXSULufEwRk4wh9Mi -l5LxPqNToMCxQ5Arepajy/b2nMsXWvkQK1qdkftVoWrQlgjhVhgwVwRBaCZ8yfAH -eBBLep8LObpl5p6RIAeaH2XIzpk3OFfDiZ3KmYpDFudueNCZj/JtOhsvAtCqSe/J -30OzJ7f20i/pQPcIEijSoCrm7hR1wkb1RbFrMh+l6E06OP8ITpj2KDCSI20J5b6q -TpR9db7Pkwus2wA9JSqmWlnTHsxfLcNrJPkfMY6YLfXj96b0SbRt77SbpKvj96Cm -OCIfNy3XQbA5eJj0wPFnaForUgmMvb/qmZ2VTNOzh6o34cgUWZy401O0VU/1hTji -FQIDAQAB +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvFUyXSULufEwRk4wh9Mi +l5LxPqNToMCxQ5Arepajy/b2nMsXWvkQK1qdkftVoWrQlgjhVhgwVwRBaCZ8yfAH +eBBLep8LObpl5p6RIAeaH2XIzpk3OFfDiZ3KmYpDFudueNCZj/JtOhsvAtCqSe/J +30OzJ7f20i/pQPcIEijSoCrm7hR1wkb1RbFrMh+l6E06OP8ITpj2KDCSI20J5b6q +TpR9db7Pkwus2wA9JSqmWlnTHsxfLcNrJPkfMY6YLfXj96b0SbRt77SbpKvj96Cm +OCIfNy3XQbA5eJj0wPFnaForUgmMvb/qmZ2VTNOzh6o34cgUWZy401O0VU/1hTji +FQIDAQAB -----END PUBLIC KEY----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_sandbox.pem b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_sandbox.pem index 62ce29d..5d2a907 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_sandbox.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_sandbox.pem @@ -1,6 +1,6 @@ ------BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0Gqg -S2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyq -rXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/ -65zi3eof7TcZ32oWpwIDAQAB +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0Gqg +S2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyq +rXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/ +65zi3eof7TcZ32oWpwIDAQAB -----END PUBLIC KEY----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_private_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_private_key.pem index a4be808..20139f3 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_private_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_private_key.pem @@ -1,27 +1,27 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEpQIBAAKCAQEAw18JxZZ7BGeN+7eEexkX9H8b/ABlowO1xMha8g4f9R9o7qUw -7EFMs90je1OpB+Pd778Shb5JuZgb85bcLtzZAZY1FCsN6z9jQhCQ0DeRVfvRvCmZ -17ow6AOn0pX47NtEpxn27jF2r29hsz5C4UgH2nysjRDZbCkZK1684UA7diuY2vqK -IpW8J2lnu3idXPUwq88xNiyKO3hFGQvFFBlsjbBubuDI6vk+dngRphOXgQP8gviL -sx0L78a5kgIws/nEsXDLiXxnkigsL8DHewVYcOibaw/Rg0uyCNnSLQ7QnjAj35IP -7diUr1owKNaLCYq8wuDzcYqjeZdMgshK3+ixvQIDAQABAoIBAHugIdDT3df1pxSH -Fd/HCy99VznpDmdOq7Bvj4znfzVewMlx4jk9QMn3vsIFOEpz2DYi1BepR4GXTOig -p4dH3FFyuPegHtijba2aSehXoTGlfRvxvxWRDe1ikslgePl37kNG3MfwqMduVYZU -eYGQUNfiWFWTOeGFSBX3htGKEZY990LGFDsPyM2yGKmL6Z+/SgPuwlgcpCHViMS6 -EYJ0uLEuk5oFYiqUAmS+5IkUxIXkKBONMOfiDi3OXltah9gvbKHVDlgG6qif3Ad+ -6IYpd1YRX0DMp6ROKDg7pIyF53keor2nRKtEquE+61QWUsiIGz8FaBvcqk/P0X8R -QLU+gskCgYEA+r7WhdUHOiz29n5lwA/xIBY91E0NOWssPiClnr0ftcnD3/SqMj6a -gFukM0OpF4grnqSL/igyhmTtDr69kgh+ov1o0K2v9MXaxENPErHE/M5GMv3dKMVb -V2v0F3EfnbPN+cy0T1W7fkiEyP0ht+r/sNtA2dsBF7t+mjLrUWaNoxsCgYEAx3cj -Bd0n9d0YKgcHzqwwCy5vQsSoXsMTgJRaHFYF+qImLyLCLKTM/SPk6TZYGBL3OGAA -sWoOheORNLwgKox4vmgg0czwMvIqSgM3neoLDMIAfZ/BpqZFtn3PcIgwNuJ+VuOO -JDzXenGv7bOtknG6EyhNsaY2V993t70l1M1zdAcCgYEA5agOoatYoD74vxFLrlqr -laDpZl5gI1v2vLx4FOjRd1XiEmhrzfMq3S+SN+XbpJLyqK27DsDQbelYei3XQT6I -hk4lRyQdycnBsgqYDN5HNujSwPdlLWd9XpegjCvvMiiyGf4Uk6lJPcO74r59uI8D -O3/FaQO+f3cZ4K+MehS820sCgYEAk718pXU/ie5vXYHDmKMVGtMT+eJry3S2V0CK -1f4pg5Dis3sNU7/lTYJupQZpjbtOfeUt3jrt8uGxxdup/5n4PSAnXv5q03FnPVbQ -tRiLgrGXZ3UTHHp/nEHnijR1cdGlPnph6BlgiQL4ChpR7+xopJPvqCuyiLeultt0 -0AA1CbUCgYEAnt5Wmu92uMaEbj4Zptdkup/MivABqTav7Bl6PxNjh04pBNMz08pT -dYezYjZf1hlfsTxxDGQdZCOjGXQSX8k4EWx+xT/EdZh0E36qcOxPEcoroQAAj8LT -QW5goRowdehK26Tg9MzBcQlffvjBGzPyYfUQhdGqd7g30gEpj32AKME= ------END RSA PRIVATE KEY----- +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAw18JxZZ7BGeN+7eEexkX9H8b/ABlowO1xMha8g4f9R9o7qUw +7EFMs90je1OpB+Pd778Shb5JuZgb85bcLtzZAZY1FCsN6z9jQhCQ0DeRVfvRvCmZ +17ow6AOn0pX47NtEpxn27jF2r29hsz5C4UgH2nysjRDZbCkZK1684UA7diuY2vqK +IpW8J2lnu3idXPUwq88xNiyKO3hFGQvFFBlsjbBubuDI6vk+dngRphOXgQP8gviL +sx0L78a5kgIws/nEsXDLiXxnkigsL8DHewVYcOibaw/Rg0uyCNnSLQ7QnjAj35IP +7diUr1owKNaLCYq8wuDzcYqjeZdMgshK3+ixvQIDAQABAoIBAHugIdDT3df1pxSH +Fd/HCy99VznpDmdOq7Bvj4znfzVewMlx4jk9QMn3vsIFOEpz2DYi1BepR4GXTOig +p4dH3FFyuPegHtijba2aSehXoTGlfRvxvxWRDe1ikslgePl37kNG3MfwqMduVYZU +eYGQUNfiWFWTOeGFSBX3htGKEZY990LGFDsPyM2yGKmL6Z+/SgPuwlgcpCHViMS6 +EYJ0uLEuk5oFYiqUAmS+5IkUxIXkKBONMOfiDi3OXltah9gvbKHVDlgG6qif3Ad+ +6IYpd1YRX0DMp6ROKDg7pIyF53keor2nRKtEquE+61QWUsiIGz8FaBvcqk/P0X8R +QLU+gskCgYEA+r7WhdUHOiz29n5lwA/xIBY91E0NOWssPiClnr0ftcnD3/SqMj6a +gFukM0OpF4grnqSL/igyhmTtDr69kgh+ov1o0K2v9MXaxENPErHE/M5GMv3dKMVb +V2v0F3EfnbPN+cy0T1W7fkiEyP0ht+r/sNtA2dsBF7t+mjLrUWaNoxsCgYEAx3cj +Bd0n9d0YKgcHzqwwCy5vQsSoXsMTgJRaHFYF+qImLyLCLKTM/SPk6TZYGBL3OGAA +sWoOheORNLwgKox4vmgg0czwMvIqSgM3neoLDMIAfZ/BpqZFtn3PcIgwNuJ+VuOO +JDzXenGv7bOtknG6EyhNsaY2V993t70l1M1zdAcCgYEA5agOoatYoD74vxFLrlqr +laDpZl5gI1v2vLx4FOjRd1XiEmhrzfMq3S+SN+XbpJLyqK27DsDQbelYei3XQT6I +hk4lRyQdycnBsgqYDN5HNujSwPdlLWd9XpegjCvvMiiyGf4Uk6lJPcO74r59uI8D +O3/FaQO+f3cZ4K+MehS820sCgYEAk718pXU/ie5vXYHDmKMVGtMT+eJry3S2V0CK +1f4pg5Dis3sNU7/lTYJupQZpjbtOfeUt3jrt8uGxxdup/5n4PSAnXv5q03FnPVbQ +tRiLgrGXZ3UTHHp/nEHnijR1cdGlPnph6BlgiQL4ChpR7+xopJPvqCuyiLeultt0 +0AA1CbUCgYEAnt5Wmu92uMaEbj4Zptdkup/MivABqTav7Bl6PxNjh04pBNMz08pT +dYezYjZf1hlfsTxxDGQdZCOjGXQSX8k4EWx+xT/EdZh0E36qcOxPEcoroQAAj8LT +QW5goRowdehK26Tg9MzBcQlffvjBGzPyYfUQhdGqd7g30gEpj32AKME= +-----END RSA PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pem index 5d104ab..41412ee 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pem @@ -1,9 +1,9 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw18JxZZ7BGeN+7eEexkX -9H8b/ABlowO1xMha8g4f9R9o7qUw7EFMs90je1OpB+Pd778Shb5JuZgb85bcLtzZ -AZY1FCsN6z9jQhCQ0DeRVfvRvCmZ17ow6AOn0pX47NtEpxn27jF2r29hsz5C4UgH -2nysjRDZbCkZK1684UA7diuY2vqKIpW8J2lnu3idXPUwq88xNiyKO3hFGQvFFBls -jbBubuDI6vk+dngRphOXgQP8gviLsx0L78a5kgIws/nEsXDLiXxnkigsL8DHewVY -cOibaw/Rg0uyCNnSLQ7QnjAj35IP7diUr1owKNaLCYq8wuDzcYqjeZdMgshK3+ix -vQIDAQAB ------END PUBLIC KEY----- +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw18JxZZ7BGeN+7eEexkX +9H8b/ABlowO1xMha8g4f9R9o7qUw7EFMs90je1OpB+Pd778Shb5JuZgb85bcLtzZ +AZY1FCsN6z9jQhCQ0DeRVfvRvCmZ17ow6AOn0pX47NtEpxn27jF2r29hsz5C4UgH +2nysjRDZbCkZK1684UA7diuY2vqKIpW8J2lnu3idXPUwq88xNiyKO3hFGQvFFBls +jbBubuDI6vk+dngRphOXgQP8gviLsx0L78a5kgIws/nEsXDLiXxnkigsL8DHewVY +cOibaw/Rg0uyCNnSLQ7QnjAj35IP7diUr1owKNaLCYq8wuDzcYqjeZdMgshK3+ix +vQIDAQAB +-----END PUBLIC KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pkcs8 b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pkcs8 index 1cc1f47..88b973b 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pkcs8 +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pkcs8 @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDDXwnFlnsEZ437 -t4R7GRf0fxv8AGWjA7XEyFryDh/1H2jupTDsQUyz3SN7U6kH493vvxKFvkm5mBvz -ltwu3NkBljUUKw3rP2NCEJDQN5FV+9G8KZnXujDoA6fSlfjs20SnGfbuMXavb2Gz -PkLhSAfafKyNENlsKRkrXrzhQDt2K5ja+ooilbwnaWe7eJ1c9TCrzzE2LIo7eEUZ -C8UUGWyNsG5u4Mjq+T52eBGmE5eBA/yC+IuzHQvvxrmSAjCz+cSxcMuJfGeSKCwv -wMd7BVhw6JtrD9GDS7II2dItDtCeMCPfkg/t2JSvWjAo1osJirzC4PNxiqN5l0yC -yErf6LG9AgMBAAECggEAe6Ah0NPd1/WnFIcV38cLL31XOekOZ06rsG+PjOd/NV7A -yXHiOT1Ayfe+wgU4SnPYNiLUF6lHgZdM6KCnh0fcUXK496Ae2KNtrZpJ6FehMaV9 -G/G/FZEN7WKSyWB4+XfuQ0bcx/Cox25VhlR5gZBQ1+JYVZM54YVIFfeG0YoRlj33 -QsYUOw/IzbIYqYvpn79KA+7CWBykIdWIxLoRgnS4sS6TmgViKpQCZL7kiRTEheQo -E40w5+IOLc5eW1qH2C9sodUOWAbqqJ/cB37ohil3VhFfQMynpE4oODukjIXneR6i -vadEq0Sq4T7rVBZSyIgbPwVoG9yqT8/RfxFAtT6CyQKBgQD6vtaF1Qc6LPb2fmXA -D/EgFj3UTQ05ayw+IKWevR+1ycPf9KoyPpqAW6QzQ6kXiCuepIv+KDKGZO0Ovr2S -CH6i/WjQra/0xdrEQ08SscT8zkYy/d0oxVtXa/QXcR+ds835zLRPVbt+SITI/SG3 -6v+w20DZ2wEXu36aMutRZo2jGwKBgQDHdyMF3Sf13RgqBwfOrDALLm9CxKhewxOA -lFocVgX6oiYvIsIspMz9I+TpNlgYEvc4YACxag6F45E0vCAqjHi+aCDRzPAy8ipK -Azed6gsMwgB9n8GmpkW2fc9wiDA24n5W444kPNd6ca/ts62ScboTKE2xpjZX33e3 -vSXUzXN0BwKBgQDlqA6hq1igPvi/EUuuWquVoOlmXmAjW/a8vHgU6NF3VeISaGvN -8yrdL5I35dukkvKorbsOwNBt6Vh6LddBPoiGTiVHJB3JycGyCpgM3kc26NLA92Ut -Z31el6CMK+8yKLIZ/hSTqUk9w7vivn24jwM7f8VpA75/dxngr4x6FLzbSwKBgQCT -vXyldT+J7m9dgcOYoxUa0xP54mvLdLZXQIrV/imDkOKzew1Tv+VNgm6lBmmNu059 -5S3eOu3y4bHF26n/mfg9ICde/mrTcWc9VtC1GIuCsZdndRMcen+cQeeKNHVx0aU+ -emHoGWCJAvgKGlHv7Gikk++oK7KIt66W23TQADUJtQKBgQCe3laa73a4xoRuPhmm -12S6n8yK8AGpNq/sGXo/E2OHTikE0zPTylN1h7NiNl/WGV+xPHEMZB1kI6MZdBJf -yTgRbH7FP8R1mHQTfqpw7E8RyiuhAACPwtNBbmChGjB16ErbpOD0zMFxCV9++MEb -M/Jh9RCF0ap3uDfSASmPfYAowQ== ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDDXwnFlnsEZ437 +t4R7GRf0fxv8AGWjA7XEyFryDh/1H2jupTDsQUyz3SN7U6kH493vvxKFvkm5mBvz +ltwu3NkBljUUKw3rP2NCEJDQN5FV+9G8KZnXujDoA6fSlfjs20SnGfbuMXavb2Gz +PkLhSAfafKyNENlsKRkrXrzhQDt2K5ja+ooilbwnaWe7eJ1c9TCrzzE2LIo7eEUZ +C8UUGWyNsG5u4Mjq+T52eBGmE5eBA/yC+IuzHQvvxrmSAjCz+cSxcMuJfGeSKCwv +wMd7BVhw6JtrD9GDS7II2dItDtCeMCPfkg/t2JSvWjAo1osJirzC4PNxiqN5l0yC +yErf6LG9AgMBAAECggEAe6Ah0NPd1/WnFIcV38cLL31XOekOZ06rsG+PjOd/NV7A +yXHiOT1Ayfe+wgU4SnPYNiLUF6lHgZdM6KCnh0fcUXK496Ae2KNtrZpJ6FehMaV9 +G/G/FZEN7WKSyWB4+XfuQ0bcx/Cox25VhlR5gZBQ1+JYVZM54YVIFfeG0YoRlj33 +QsYUOw/IzbIYqYvpn79KA+7CWBykIdWIxLoRgnS4sS6TmgViKpQCZL7kiRTEheQo +E40w5+IOLc5eW1qH2C9sodUOWAbqqJ/cB37ohil3VhFfQMynpE4oODukjIXneR6i +vadEq0Sq4T7rVBZSyIgbPwVoG9yqT8/RfxFAtT6CyQKBgQD6vtaF1Qc6LPb2fmXA +D/EgFj3UTQ05ayw+IKWevR+1ycPf9KoyPpqAW6QzQ6kXiCuepIv+KDKGZO0Ovr2S +CH6i/WjQra/0xdrEQ08SscT8zkYy/d0oxVtXa/QXcR+ds835zLRPVbt+SITI/SG3 +6v+w20DZ2wEXu36aMutRZo2jGwKBgQDHdyMF3Sf13RgqBwfOrDALLm9CxKhewxOA +lFocVgX6oiYvIsIspMz9I+TpNlgYEvc4YACxag6F45E0vCAqjHi+aCDRzPAy8ipK +Azed6gsMwgB9n8GmpkW2fc9wiDA24n5W444kPNd6ca/ts62ScboTKE2xpjZX33e3 +vSXUzXN0BwKBgQDlqA6hq1igPvi/EUuuWquVoOlmXmAjW/a8vHgU6NF3VeISaGvN +8yrdL5I35dukkvKorbsOwNBt6Vh6LddBPoiGTiVHJB3JycGyCpgM3kc26NLA92Ut +Z31el6CMK+8yKLIZ/hSTqUk9w7vivn24jwM7f8VpA75/dxngr4x6FLzbSwKBgQCT +vXyldT+J7m9dgcOYoxUa0xP54mvLdLZXQIrV/imDkOKzew1Tv+VNgm6lBmmNu059 +5S3eOu3y4bHF26n/mfg9ICde/mrTcWc9VtC1GIuCsZdndRMcen+cQeeKNHVx0aU+ +emHoGWCJAvgKGlHv7Gikk++oK7KIt66W23TQADUJtQKBgQCe3laa73a4xoRuPhmm +12S6n8yK8AGpNq/sGXo/E2OHTikE0zPTylN1h7NiNl/WGV+xPHEMZB1kI6MZdBJf +yTgRbH7FP8R1mHQTfqpw7E8RyiuhAACPwtNBbmChGjB16ErbpOD0zMFxCV9++MEb +M/Jh9RCF0ap3uDfSASmPfYAowQ== +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/alipay_rsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/alipay_rsa_public_key.pem index 93edc56..f57f3d4 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/alipay_rsa_public_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/alipay_rsa_public_key.pem @@ -1,9 +1,9 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgnSAehzAw6FfIvgETqoW -FUlEdbqvnbJvJYMUjAP1BLEMwXHaXSS6tepeJod6HG/uiGeO5McArfbXzOEhPhWC -PobmdOLS3lCY4EV1Mhwzw+IWO/fQaZiWsNirD9X4QBO7LNtV4wVD41Rfr0Uik8Kd -GgGhq7EVpWNeHbNm08oEpvV+A/z2huezkF72EbAItNp6OH+L0HNJhJhlo0YA/EQn -lN0L6WmsEGCatyDoMtpzeJ62IabweSbrwGu1jJWJrl+NtmiEIresZdtJ75GBlWRW -lbUjDU4emnnAcqiCvcrhCmWCETiShiICsAHeyccfz2TFd1XU4lSLI8mYvp7tN33j -XQIDAQAB ------END PUBLIC KEY----- +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgnSAehzAw6FfIvgETqoW +FUlEdbqvnbJvJYMUjAP1BLEMwXHaXSS6tepeJod6HG/uiGeO5McArfbXzOEhPhWC +PobmdOLS3lCY4EV1Mhwzw+IWO/fQaZiWsNirD9X4QBO7LNtV4wVD41Rfr0Uik8Kd +GgGhq7EVpWNeHbNm08oEpvV+A/z2huezkF72EbAItNp6OH+L0HNJhJhlo0YA/EQn +lN0L6WmsEGCatyDoMtpzeJ62IabweSbrwGu1jJWJrl+NtmiEIresZdtJ75GBlWRW +lbUjDU4emnnAcqiCvcrhCmWCETiShiICsAHeyccfz2TFd1XU4lSLI8mYvp7tN33j +XQIDAQAB +-----END PUBLIC KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key.pem index c03251d..8b2047d 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key.pem @@ -1,27 +1,27 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAneTAMQZ5ThzNry7Zvs/jkbxXGJkKvc1UWe/0EqwTek35Cgox -yXYqV+atf6zotDeQUZIx//LPG6SoGaT/KICO+hVNOvPpIHRIoVs1PF5IWncES+1a -MNTafsyBor4YXRP2WbC129NqBfWzfBotQF8qWS2cC5byFDMqjbkCYrSg7tCRxEvH -nbJV5sSWQmQ6UF1QsVuGAx9+hmvV3M58BQUluRtINYUezMWl3CV1nzp8/oxAbyFT -joDf0ybPx+VzYGUsXSqJgVMuFqK/rJmUYI9KoP+XWZBDf1727/MT2veljP1YlEtZ -AquH8mlQl6bBOSC23+fqaSBZokLZTQUinw5v1QIDAQABAoIBABzpw6v2lIYSTjPz -L1p6tSB9zbEqbUYecIDbqOU2b4ao+p61CTLsGYrpKgJERoSh3CKj09Ybv4M/Xqz7 -guIG0KfI+NB/08Pmp1os2o3IchVmz/mbaDWi9LPdfSuxBcMdobIA4vxzNWoL+ScT -oA+2nYmhCX8xz/iU+gjjxSUQEJxKeY81LfokHMn8/YyCioUkzr3zg8DHWxWdQwgC -2DE0yMLVRnoOBN9Ykfsoo2qe7dX8zksvs4p+yI9Vaj+Ov+SoE8jysEzmBuWvfrA9 -eyuE5DFErl+G6gvy3VLZU5d2mX4umsmqYCxgabF6ldQ/lpi+NFv3r/eFT+YBe1iM -5XXHi8ECgYEAzhbdkGjbUvxunvSx2nGk/z4pqx+gc1H/FJXJRk8YBfMPO3dfhcqp -qW49FyV5E/Bng7Zm5gC9N24tIk+QB+D5nM/PPL3aofjvMBVTCGISnCqtdyO0Z0Xf -sDvXBdfC9mSvNiYWgL301dNzd8Ef17MckWcchHvfKDBAgu84U7DeV3ECgYEAxCHX -p1F3BVhTdXKZM96mJWfMWC8XzU0ej6IQ6p9bpMNAeeOokzLB1PjDTcnu9v9Idigv -i0Oxt36jQEY/ShrthkW8i40W+yyaktw8o+ghWI59/bvxXx4x1jp2k5Lpk6T2+XJi -SNGo+mUB2aF848HFJvCn0Yo/u9D9jTWKzup/VKUCgYA+NpjcJ0tOWfXq9mNaVkRA -6Tsa9YkyRuaCCFWia+4MnbtTcE3dzbg59ZVrj1xlsIUPNdkKRd7ZBOGLIgmQ11GD -DRi6dXWyv7s1ALr4JOMJUbjb5mNnaaiFQws+MEwipXJfHlBcvPtUMWkCFcLPErrl -CgOJ2vsa3rYa0KxoV1RHgQKBgGWGLx9JKBb4NZtiCrOy2MYcCMbM+cEn3l3zQlZw -zvtmpoVxtt0bNQKNEmu9z5jDZDrlalboX6HgR5kJw9EUR0dt6b9C9VZnLExA/JLL -ohc5CzbAhpz6AEooUSDqt0XZ6o4NC5suDA4xItgIo6ExuGADyprIuVz7PYRO5t9c -uzSRAoGBAKUmhfipb6TlMpFaP/igia0rEUeOGD293VYSPgYdkVhfKm/IOpZtvcuE -+bwAEVKsLZ49Gt5vALWRwF3TiyhJxRF8BmNQGmJZSBt6D+S9c1TKJNhRl1N+p3Pd -67MFdi2wWVv5c19jc6RIA5qBPMN4hkvsS7F9j+0ShlYyP4vTypHr ------END RSA PRIVATE KEY----- +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAneTAMQZ5ThzNry7Zvs/jkbxXGJkKvc1UWe/0EqwTek35Cgox +yXYqV+atf6zotDeQUZIx//LPG6SoGaT/KICO+hVNOvPpIHRIoVs1PF5IWncES+1a +MNTafsyBor4YXRP2WbC129NqBfWzfBotQF8qWS2cC5byFDMqjbkCYrSg7tCRxEvH +nbJV5sSWQmQ6UF1QsVuGAx9+hmvV3M58BQUluRtINYUezMWl3CV1nzp8/oxAbyFT +joDf0ybPx+VzYGUsXSqJgVMuFqK/rJmUYI9KoP+XWZBDf1727/MT2veljP1YlEtZ +AquH8mlQl6bBOSC23+fqaSBZokLZTQUinw5v1QIDAQABAoIBABzpw6v2lIYSTjPz +L1p6tSB9zbEqbUYecIDbqOU2b4ao+p61CTLsGYrpKgJERoSh3CKj09Ybv4M/Xqz7 +guIG0KfI+NB/08Pmp1os2o3IchVmz/mbaDWi9LPdfSuxBcMdobIA4vxzNWoL+ScT +oA+2nYmhCX8xz/iU+gjjxSUQEJxKeY81LfokHMn8/YyCioUkzr3zg8DHWxWdQwgC +2DE0yMLVRnoOBN9Ykfsoo2qe7dX8zksvs4p+yI9Vaj+Ov+SoE8jysEzmBuWvfrA9 +eyuE5DFErl+G6gvy3VLZU5d2mX4umsmqYCxgabF6ldQ/lpi+NFv3r/eFT+YBe1iM +5XXHi8ECgYEAzhbdkGjbUvxunvSx2nGk/z4pqx+gc1H/FJXJRk8YBfMPO3dfhcqp +qW49FyV5E/Bng7Zm5gC9N24tIk+QB+D5nM/PPL3aofjvMBVTCGISnCqtdyO0Z0Xf +sDvXBdfC9mSvNiYWgL301dNzd8Ef17MckWcchHvfKDBAgu84U7DeV3ECgYEAxCHX +p1F3BVhTdXKZM96mJWfMWC8XzU0ej6IQ6p9bpMNAeeOokzLB1PjDTcnu9v9Idigv +i0Oxt36jQEY/ShrthkW8i40W+yyaktw8o+ghWI59/bvxXx4x1jp2k5Lpk6T2+XJi +SNGo+mUB2aF848HFJvCn0Yo/u9D9jTWKzup/VKUCgYA+NpjcJ0tOWfXq9mNaVkRA +6Tsa9YkyRuaCCFWia+4MnbtTcE3dzbg59ZVrj1xlsIUPNdkKRd7ZBOGLIgmQ11GD +DRi6dXWyv7s1ALr4JOMJUbjb5mNnaaiFQws+MEwipXJfHlBcvPtUMWkCFcLPErrl +CgOJ2vsa3rYa0KxoV1RHgQKBgGWGLx9JKBb4NZtiCrOy2MYcCMbM+cEn3l3zQlZw +zvtmpoVxtt0bNQKNEmu9z5jDZDrlalboX6HgR5kJw9EUR0dt6b9C9VZnLExA/JLL +ohc5CzbAhpz6AEooUSDqt0XZ6o4NC5suDA4xItgIo6ExuGADyprIuVz7PYRO5t9c +uzSRAoGBAKUmhfipb6TlMpFaP/igia0rEUeOGD293VYSPgYdkVhfKm/IOpZtvcuE ++bwAEVKsLZ49Gt5vALWRwF3TiyhJxRF8BmNQGmJZSBt6D+S9c1TKJNhRl1N+p3Pd +67MFdi2wWVv5c19jc6RIA5qBPMN4hkvsS7F9j+0ShlYyP4vTypHr +-----END RSA PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key_pkcs8.pem b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key_pkcs8.pem index 91ff113..3168afb 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key_pkcs8.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key_pkcs8.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCd5MAxBnlOHM2v -Ltm+z+ORvFcYmQq9zVRZ7/QSrBN6TfkKCjHJdipX5q1/rOi0N5BRkjH/8s8bpKgZ -pP8ogI76FU068+kgdEihWzU8XkhadwRL7Vow1Np+zIGivhhdE/ZZsLXb02oF9bN8 -Gi1AXypZLZwLlvIUMyqNuQJitKDu0JHES8edslXmxJZCZDpQXVCxW4YDH36Ga9Xc -znwFBSW5G0g1hR7MxaXcJXWfOnz+jEBvIVOOgN/TJs/H5XNgZSxdKomBUy4Wor+s -mZRgj0qg/5dZkEN/Xvbv8xPa96WM/ViUS1kCq4fyaVCXpsE5ILbf5+ppIFmiQtlN -BSKfDm/VAgMBAAECggEAHOnDq/aUhhJOM/MvWnq1IH3NsSptRh5wgNuo5TZvhqj6 -nrUJMuwZiukqAkRGhKHcIqPT1hu/gz9erPuC4gbQp8j40H/Tw+anWizajchyFWbP -+ZtoNaL0s919K7EFwx2hsgDi/HM1agv5JxOgD7adiaEJfzHP+JT6COPFJRAQnEp5 -jzUt+iQcyfz9jIKKhSTOvfODwMdbFZ1DCALYMTTIwtVGeg4E31iR+yijap7t1fzO -Sy+zin7Ij1VqP46/5KgTyPKwTOYG5a9+sD17K4TkMUSuX4bqC/LdUtlTl3aZfi6a -yapgLGBpsXqV1D+WmL40W/ev94VP5gF7WIzldceLwQKBgQDOFt2QaNtS/G6e9LHa -caT/PimrH6BzUf8UlclGTxgF8w87d1+Fyqmpbj0XJXkT8GeDtmbmAL03bi0iT5AH -4Pmcz888vdqh+O8wFVMIYhKcKq13I7RnRd+wO9cF18L2ZK82JhaAvfTV03N3wR/X -sxyRZxyEe98oMECC7zhTsN5XcQKBgQDEIdenUXcFWFN1cpkz3qYlZ8xYLxfNTR6P -ohDqn1ukw0B546iTMsHU+MNNye72/0h2KC+LQ7G3fqNARj9KGu2GRbyLjRb7LJqS -3Dyj6CFYjn39u/FfHjHWOnaTkumTpPb5cmJI0aj6ZQHZoXzjwcUm8KfRij+70P2N -NYrO6n9UpQKBgD42mNwnS05Z9er2Y1pWREDpOxr1iTJG5oIIVaJr7gydu1NwTd3N -uDn1lWuPXGWwhQ812QpF3tkE4YsiCZDXUYMNGLp1dbK/uzUAuvgk4wlRuNvmY2dp -qIVDCz4wTCKlcl8eUFy8+1QxaQIVws8SuuUKA4na+xrethrQrGhXVEeBAoGAZYYv -H0koFvg1m2IKs7LYxhwIxsz5wSfeXfNCVnDO+2amhXG23Rs1Ao0Sa73PmMNkOuVq -VuhfoeBHmQnD0RRHR23pv0L1VmcsTED8ksuiFzkLNsCGnPoASihRIOq3Rdnqjg0L -my4MDjEi2AijoTG4YAPKmsi5XPs9hE7m31y7NJECgYEApSaF+KlvpOUykVo/+KCJ -rSsRR44YPb3dVhI+Bh2RWF8qb8g6lm29y4T5vAARUqwtnj0a3m8AtZHAXdOLKEnF -EXwGY1AaYllIG3oP5L1zVMok2FGXU36nc93rswV2LbBZW/lzX2NzpEgDmoE8w3iG -S+xLsX2P7RKGVjI/i9PKkes= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCd5MAxBnlOHM2v +Ltm+z+ORvFcYmQq9zVRZ7/QSrBN6TfkKCjHJdipX5q1/rOi0N5BRkjH/8s8bpKgZ +pP8ogI76FU068+kgdEihWzU8XkhadwRL7Vow1Np+zIGivhhdE/ZZsLXb02oF9bN8 +Gi1AXypZLZwLlvIUMyqNuQJitKDu0JHES8edslXmxJZCZDpQXVCxW4YDH36Ga9Xc +znwFBSW5G0g1hR7MxaXcJXWfOnz+jEBvIVOOgN/TJs/H5XNgZSxdKomBUy4Wor+s +mZRgj0qg/5dZkEN/Xvbv8xPa96WM/ViUS1kCq4fyaVCXpsE5ILbf5+ppIFmiQtlN +BSKfDm/VAgMBAAECggEAHOnDq/aUhhJOM/MvWnq1IH3NsSptRh5wgNuo5TZvhqj6 +nrUJMuwZiukqAkRGhKHcIqPT1hu/gz9erPuC4gbQp8j40H/Tw+anWizajchyFWbP ++ZtoNaL0s919K7EFwx2hsgDi/HM1agv5JxOgD7adiaEJfzHP+JT6COPFJRAQnEp5 +jzUt+iQcyfz9jIKKhSTOvfODwMdbFZ1DCALYMTTIwtVGeg4E31iR+yijap7t1fzO +Sy+zin7Ij1VqP46/5KgTyPKwTOYG5a9+sD17K4TkMUSuX4bqC/LdUtlTl3aZfi6a +yapgLGBpsXqV1D+WmL40W/ev94VP5gF7WIzldceLwQKBgQDOFt2QaNtS/G6e9LHa +caT/PimrH6BzUf8UlclGTxgF8w87d1+Fyqmpbj0XJXkT8GeDtmbmAL03bi0iT5AH +4Pmcz888vdqh+O8wFVMIYhKcKq13I7RnRd+wO9cF18L2ZK82JhaAvfTV03N3wR/X +sxyRZxyEe98oMECC7zhTsN5XcQKBgQDEIdenUXcFWFN1cpkz3qYlZ8xYLxfNTR6P +ohDqn1ukw0B546iTMsHU+MNNye72/0h2KC+LQ7G3fqNARj9KGu2GRbyLjRb7LJqS +3Dyj6CFYjn39u/FfHjHWOnaTkumTpPb5cmJI0aj6ZQHZoXzjwcUm8KfRij+70P2N +NYrO6n9UpQKBgD42mNwnS05Z9er2Y1pWREDpOxr1iTJG5oIIVaJr7gydu1NwTd3N +uDn1lWuPXGWwhQ812QpF3tkE4YsiCZDXUYMNGLp1dbK/uzUAuvgk4wlRuNvmY2dp +qIVDCz4wTCKlcl8eUFy8+1QxaQIVws8SuuUKA4na+xrethrQrGhXVEeBAoGAZYYv +H0koFvg1m2IKs7LYxhwIxsz5wSfeXfNCVnDO+2amhXG23Rs1Ao0Sa73PmMNkOuVq +VuhfoeBHmQnD0RRHR23pv0L1VmcsTED8ksuiFzkLNsCGnPoASihRIOq3Rdnqjg0L +my4MDjEi2AijoTG4YAPKmsi5XPs9hE7m31y7NJECgYEApSaF+KlvpOUykVo/+KCJ +rSsRR44YPb3dVhI+Bh2RWF8qb8g6lm29y4T5vAARUqwtnj0a3m8AtZHAXdOLKEnF +EXwGY1AaYllIG3oP5L1zVMok2FGXU36nc93rswV2LbBZW/lzX2NzpEgDmoE8w3iG +S+xLsX2P7RKGVjI/i9PKkes= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_public_key.pem index 0c17ea8..4462575 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_public_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_public_key.pem @@ -1,9 +1,9 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAneTAMQZ5ThzNry7Zvs/j -kbxXGJkKvc1UWe/0EqwTek35CgoxyXYqV+atf6zotDeQUZIx//LPG6SoGaT/KICO -+hVNOvPpIHRIoVs1PF5IWncES+1aMNTafsyBor4YXRP2WbC129NqBfWzfBotQF8q -WS2cC5byFDMqjbkCYrSg7tCRxEvHnbJV5sSWQmQ6UF1QsVuGAx9+hmvV3M58BQUl -uRtINYUezMWl3CV1nzp8/oxAbyFTjoDf0ybPx+VzYGUsXSqJgVMuFqK/rJmUYI9K -oP+XWZBDf1727/MT2veljP1YlEtZAquH8mlQl6bBOSC23+fqaSBZokLZTQUinw5v -1QIDAQAB ------END PUBLIC KEY----- +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAneTAMQZ5ThzNry7Zvs/j +kbxXGJkKvc1UWe/0EqwTek35CgoxyXYqV+atf6zotDeQUZIx//LPG6SoGaT/KICO ++hVNOvPpIHRIoVs1PF5IWncES+1aMNTafsyBor4YXRP2WbC129NqBfWzfBotQF8q +WS2cC5byFDMqjbkCYrSg7tCRxEvHnbJV5sSWQmQ6UF1QsVuGAx9+hmvV3M58BQUl +uRtINYUezMWl3CV1nzp8/oxAbyFTjoDf0ybPx+VzYGUsXSqJgVMuFqK/rJmUYI9K +oP+XWZBDf1727/MT2veljP1YlEtZAquH8mlQl6bBOSC23+fqaSBZokLZTQUinw5v +1QIDAQAB +-----END PUBLIC KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key.pem index 5dc9058..46cd0cb 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key.pem @@ -1,6 +1,6 @@ ------BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRA -FljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQE -B/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5Ksi -NG9zpgmLCUYuLkxpLQIDAQAB ------END PUBLIC KEY----- +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnxj/9qwVfgoUh/y2W89L6BkRA +FljhNhgPdyPuBV64bfQNN1PjbCzkIM6qRdKBoLPXmKKMiFYnkd6rAoprih3/PrQE +B/VsW8OoM8fxn67UDYuyBTqA23MML9q1+ilIZwBC2AQ2UBVOrFXfFl75p6/B5Ksi +NG9zpgmLCUYuLkxpLQIDAQAB +-----END PUBLIC KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_online.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_online.pem index 7757c70..85d9875 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_online.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_online.pem @@ -1,9 +1,9 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvFUyXSULufEwRk4wh9Mi -l5LxPqNToMCxQ5Arepajy/b2nMsXWvkQK1qdkftVoWrQlgjhVhgwVwRBaCZ8yfAH -eBBLep8LObpl5p6RIAeaH2XIzpk3OFfDiZ3KmYpDFudueNCZj/JtOhsvAtCqSe/J -30OzJ7f20i/pQPcIEijSoCrm7hR1wkb1RbFrMh+l6E06OP8ITpj2KDCSI20J5b6q -TpR9db7Pkwus2wA9JSqmWlnTHsxfLcNrJPkfMY6YLfXj96b0SbRt77SbpKvj96Cm -OCIfNy3XQbA5eJj0wPFnaForUgmMvb/qmZ2VTNOzh6o34cgUWZy401O0VU/1hTji -FQIDAQAB +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvFUyXSULufEwRk4wh9Mi +l5LxPqNToMCxQ5Arepajy/b2nMsXWvkQK1qdkftVoWrQlgjhVhgwVwRBaCZ8yfAH +eBBLep8LObpl5p6RIAeaH2XIzpk3OFfDiZ3KmYpDFudueNCZj/JtOhsvAtCqSe/J +30OzJ7f20i/pQPcIEijSoCrm7hR1wkb1RbFrMh+l6E06OP8ITpj2KDCSI20J5b6q +TpR9db7Pkwus2wA9JSqmWlnTHsxfLcNrJPkfMY6YLfXj96b0SbRt77SbpKvj96Cm +OCIfNy3XQbA5eJj0wPFnaForUgmMvb/qmZ2VTNOzh6o34cgUWZy401O0VU/1hTji +FQIDAQAB -----END PUBLIC KEY----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_sandbox.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_sandbox.pem index 62ce29d..5d2a907 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_sandbox.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_sandbox.pem @@ -1,6 +1,6 @@ ------BEGIN PUBLIC KEY----- -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0Gqg -S2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyq -rXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/ -65zi3eof7TcZ32oWpwIDAQAB +-----BEGIN PUBLIC KEY----- +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIgHnOn7LLILlKETd6BFRJ0Gqg +S2Y3mn1wMQmyh9zEyWlz5p1zrahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyq +rXaPdKBmr90DIpIxmIyKXv4GGAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/ +65zi3eof7TcZ32oWpwIDAQAB -----END PUBLIC KEY----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_param.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_param.pem index beb2912..c9372be 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_param.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_param.pem @@ -1,14 +1,14 @@ ------BEGIN DSA PARAMETERS----- -MIICLAKCAQEAgKPTclpK1TEOHWRlzYeV1h8L0INJXLHzvE8kzquYOLNymfCbKevw -8cAI1PQQWSGe2nKMzmnCS1J7L1cE6hP7Zffj71X2uvNJE7e3OasfnqqRY1zAmluh -bFdP+6iMSP/mMxiGwOr59ZHGSBk7wz4RzPPr3Ab2+BwtqNvUkimqmGO9TNJFgS8Z -WISuel0db/R8H4NMW52IvRukKUG4zt27AIVa1n1YLNqlyUzrPWums13wxyUEoayA -FJt0pNozjujn9aR/u6k3lvm3TOB4ialigNHYdbtTfhcUN/fzOATDwfUzx7XWf/9T -ln7cDt/kJ8QF4uVhrtlloeebKfAB9MxugQIhALoerZx4xxyKh5UwFP2mIMs1jccp -rHx6xSpqTpjfBtfZAoIBAE2+dWH2Xs2Iy2hdpge7GCt+c75jjqsrebth28m3DPXC -Ioql+Zb21es9qa69RUO2ybPZv5IIoDFH4WNhZ4u0eiH0ClrJX5h3aTbGggi+m3XE -CfNzAh6ZLzrpibZ05gK4Bqu0OSNJ43OknK0GrCWw0vKod9trN0ik1Yfs6ZTtMydX -Q5ltF4HRWFyZ4UW7VzB7NNT4O5cfbzVx2IgGJv/xAlAev+E3G78CF9S7u1RHsb51 -YTCEkUtIMzZOkcgz2gOpWBdSCOV/noafe/+EmpSp9ZdeIXtzSHUutnxLCuaomrur -pnN2n7W/kEhP0tphKF5CeNoLOAM6C+IwIDK87KQ6Vck= ------END DSA PARAMETERS----- +-----BEGIN DSA PARAMETERS----- +MIICLAKCAQEAgKPTclpK1TEOHWRlzYeV1h8L0INJXLHzvE8kzquYOLNymfCbKevw +8cAI1PQQWSGe2nKMzmnCS1J7L1cE6hP7Zffj71X2uvNJE7e3OasfnqqRY1zAmluh +bFdP+6iMSP/mMxiGwOr59ZHGSBk7wz4RzPPr3Ab2+BwtqNvUkimqmGO9TNJFgS8Z +WISuel0db/R8H4NMW52IvRukKUG4zt27AIVa1n1YLNqlyUzrPWums13wxyUEoayA +FJt0pNozjujn9aR/u6k3lvm3TOB4ialigNHYdbtTfhcUN/fzOATDwfUzx7XWf/9T +ln7cDt/kJ8QF4uVhrtlloeebKfAB9MxugQIhALoerZx4xxyKh5UwFP2mIMs1jccp +rHx6xSpqTpjfBtfZAoIBAE2+dWH2Xs2Iy2hdpge7GCt+c75jjqsrebth28m3DPXC +Ioql+Zb21es9qa69RUO2ybPZv5IIoDFH4WNhZ4u0eiH0ClrJX5h3aTbGggi+m3XE +CfNzAh6ZLzrpibZ05gK4Bqu0OSNJ43OknK0GrCWw0vKod9trN0ik1Yfs6ZTtMydX +Q5ltF4HRWFyZ4UW7VzB7NNT4O5cfbzVx2IgGJv/xAlAev+E3G78CF9S7u1RHsb51 +YTCEkUtIMzZOkcgz2gOpWBdSCOV/noafe/+EmpSp9ZdeIXtzSHUutnxLCuaomrur +pnN2n7W/kEhP0tphKF5CeNoLOAM6C+IwIDK87KQ6Vck= +-----END DSA PARAMETERS----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key.pem index a7ede0e..f3d0624 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key.pem @@ -1,20 +1,20 @@ ------BEGIN DSA PRIVATE KEY----- -MIIDVgIBAAKCAQEAgKPTclpK1TEOHWRlzYeV1h8L0INJXLHzvE8kzquYOLNymfCb -Kevw8cAI1PQQWSGe2nKMzmnCS1J7L1cE6hP7Zffj71X2uvNJE7e3OasfnqqRY1zA -mluhbFdP+6iMSP/mMxiGwOr59ZHGSBk7wz4RzPPr3Ab2+BwtqNvUkimqmGO9TNJF -gS8ZWISuel0db/R8H4NMW52IvRukKUG4zt27AIVa1n1YLNqlyUzrPWums13wxyUE -oayAFJt0pNozjujn9aR/u6k3lvm3TOB4ialigNHYdbtTfhcUN/fzOATDwfUzx7XW -f/9Tln7cDt/kJ8QF4uVhrtlloeebKfAB9MxugQIhALoerZx4xxyKh5UwFP2mIMs1 -jccprHx6xSpqTpjfBtfZAoIBAE2+dWH2Xs2Iy2hdpge7GCt+c75jjqsrebth28m3 -DPXCIoql+Zb21es9qa69RUO2ybPZv5IIoDFH4WNhZ4u0eiH0ClrJX5h3aTbGggi+ -m3XECfNzAh6ZLzrpibZ05gK4Bqu0OSNJ43OknK0GrCWw0vKod9trN0ik1Yfs6ZTt -MydXQ5ltF4HRWFyZ4UW7VzB7NNT4O5cfbzVx2IgGJv/xAlAev+E3G78CF9S7u1RH -sb51YTCEkUtIMzZOkcgz2gOpWBdSCOV/noafe/+EmpSp9ZdeIXtzSHUutnxLCuao -mrurpnN2n7W/kEhP0tphKF5CeNoLOAM6C+IwIDK87KQ6VckCggEAIpevJpRxdhuw -6O8RIdCsHQiUJlUMYhB3qZUIo9cKR7KARdIQ1ZSdWabIFFGbUqfyNirkEmxXGDmO -vnuOXJt2ysaExePrs5uOXNPjCg9DmplEUjzzNOCTKuFDnD4FZIYfFJqV+NZHhn7T -Yi6kuTDdqHkqLDzTeTFHCoAREEsuvR89/aEKIKztSTM6M8XjNxRq2O/jMprKKpAZ -oa+kj+FNP2tE+Z3VU+vj2OXTZ5lzQkx1A+Uuft9Oxgaz7I2bHh37m3nYOzeKgzoz -8qMFz61dtGXI9Q0pa9GAjiwGREUAhQa86y2M6iyTSXNBZMe7b441ycK817QQz9eI -7TUJBg5YngIhAJGgfWLNZBEIZUxKbuZl2jg+JbCVrLpq0UGKzCia5x4o ------END DSA PRIVATE KEY----- +-----BEGIN DSA PRIVATE KEY----- +MIIDVgIBAAKCAQEAgKPTclpK1TEOHWRlzYeV1h8L0INJXLHzvE8kzquYOLNymfCb +Kevw8cAI1PQQWSGe2nKMzmnCS1J7L1cE6hP7Zffj71X2uvNJE7e3OasfnqqRY1zA +mluhbFdP+6iMSP/mMxiGwOr59ZHGSBk7wz4RzPPr3Ab2+BwtqNvUkimqmGO9TNJF +gS8ZWISuel0db/R8H4NMW52IvRukKUG4zt27AIVa1n1YLNqlyUzrPWums13wxyUE +oayAFJt0pNozjujn9aR/u6k3lvm3TOB4ialigNHYdbtTfhcUN/fzOATDwfUzx7XW +f/9Tln7cDt/kJ8QF4uVhrtlloeebKfAB9MxugQIhALoerZx4xxyKh5UwFP2mIMs1 +jccprHx6xSpqTpjfBtfZAoIBAE2+dWH2Xs2Iy2hdpge7GCt+c75jjqsrebth28m3 +DPXCIoql+Zb21es9qa69RUO2ybPZv5IIoDFH4WNhZ4u0eiH0ClrJX5h3aTbGggi+ +m3XECfNzAh6ZLzrpibZ05gK4Bqu0OSNJ43OknK0GrCWw0vKod9trN0ik1Yfs6ZTt +MydXQ5ltF4HRWFyZ4UW7VzB7NNT4O5cfbzVx2IgGJv/xAlAev+E3G78CF9S7u1RH +sb51YTCEkUtIMzZOkcgz2gOpWBdSCOV/noafe/+EmpSp9ZdeIXtzSHUutnxLCuao +mrurpnN2n7W/kEhP0tphKF5CeNoLOAM6C+IwIDK87KQ6VckCggEAIpevJpRxdhuw +6O8RIdCsHQiUJlUMYhB3qZUIo9cKR7KARdIQ1ZSdWabIFFGbUqfyNirkEmxXGDmO +vnuOXJt2ysaExePrs5uOXNPjCg9DmplEUjzzNOCTKuFDnD4FZIYfFJqV+NZHhn7T +Yi6kuTDdqHkqLDzTeTFHCoAREEsuvR89/aEKIKztSTM6M8XjNxRq2O/jMprKKpAZ +oa+kj+FNP2tE+Z3VU+vj2OXTZ5lzQkx1A+Uuft9Oxgaz7I2bHh37m3nYOzeKgzoz +8qMFz61dtGXI9Q0pa9GAjiwGREUAhQa86y2M6iyTSXNBZMe7b441ycK817QQz9eI +7TUJBg5YngIhAJGgfWLNZBEIZUxKbuZl2jg+JbCVrLpq0UGKzCia5x4o +-----END DSA PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key_pkcs8.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key_pkcs8.pem index 6fbf535..662bc4c 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key_pkcs8.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key_pkcs8.pem @@ -1,15 +1,15 @@ ------BEGIN PRIVATE KEY----- -MIICZQIBADCCAjkGByqGSM44BAEwggIsAoIBAQCAo9NyWkrVMQ4dZGXNh5XWHwvQ -g0lcsfO8TyTOq5g4s3KZ8Jsp6/DxwAjU9BBZIZ7acozOacJLUnsvVwTqE/tl9+Pv -Vfa680kTt7c5qx+eqpFjXMCaW6FsV0/7qIxI/+YzGIbA6vn1kcZIGTvDPhHM8+vc -Bvb4HC2o29SSKaqYY71M0kWBLxlYhK56XR1v9Hwfg0xbnYi9G6QpQbjO3bsAhVrW -fVgs2qXJTOs9a6azXfDHJQShrIAUm3Sk2jOO6Of1pH+7qTeW+bdM4HiJqWKA0dh1 -u1N+FxQ39/M4BMPB9TPHtdZ//1OWftwO3+QnxAXi5WGu2WWh55sp8AH0zG6BAiEA -uh6tnHjHHIqHlTAU/aYgyzWNxymsfHrFKmpOmN8G19kCggEATb51YfZezYjLaF2m -B7sYK35zvmOOqyt5u2HbybcM9cIiiqX5lvbV6z2prr1FQ7bJs9m/kgigMUfhY2Fn -i7R6IfQKWslfmHdpNsaCCL6bdcQJ83MCHpkvOumJtnTmArgGq7Q5I0njc6ScrQas -JbDS8qh322s3SKTVh+zplO0zJ1dDmW0XgdFYXJnhRbtXMHs01Pg7lx9vNXHYiAYm -//ECUB6/4TcbvwIX1Lu7VEexvnVhMISRS0gzNk6RyDPaA6lYF1II5X+ehp97/4Sa -lKn1l14he3NIdS62fEsK5qiau6umc3aftb+QSE/S2mEoXkJ42gs4AzoL4jAgMrzs -pDpVyQQjAiEAkaB9Ys1kEQhlTEpu5mXaOD4lsJWsumrRQYrMKJrnHig= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIICZQIBADCCAjkGByqGSM44BAEwggIsAoIBAQCAo9NyWkrVMQ4dZGXNh5XWHwvQ +g0lcsfO8TyTOq5g4s3KZ8Jsp6/DxwAjU9BBZIZ7acozOacJLUnsvVwTqE/tl9+Pv +Vfa680kTt7c5qx+eqpFjXMCaW6FsV0/7qIxI/+YzGIbA6vn1kcZIGTvDPhHM8+vc +Bvb4HC2o29SSKaqYY71M0kWBLxlYhK56XR1v9Hwfg0xbnYi9G6QpQbjO3bsAhVrW +fVgs2qXJTOs9a6azXfDHJQShrIAUm3Sk2jOO6Of1pH+7qTeW+bdM4HiJqWKA0dh1 +u1N+FxQ39/M4BMPB9TPHtdZ//1OWftwO3+QnxAXi5WGu2WWh55sp8AH0zG6BAiEA +uh6tnHjHHIqHlTAU/aYgyzWNxymsfHrFKmpOmN8G19kCggEATb51YfZezYjLaF2m +B7sYK35zvmOOqyt5u2HbybcM9cIiiqX5lvbV6z2prr1FQ7bJs9m/kgigMUfhY2Fn +i7R6IfQKWslfmHdpNsaCCL6bdcQJ83MCHpkvOumJtnTmArgGq7Q5I0njc6ScrQas +JbDS8qh322s3SKTVh+zplO0zJ1dDmW0XgdFYXJnhRbtXMHs01Pg7lx9vNXHYiAYm +//ECUB6/4TcbvwIX1Lu7VEexvnVhMISRS0gzNk6RyDPaA6lYF1II5X+ehp97/4Sa +lKn1l14he3NIdS62fEsK5qiau6umc3aftb+QSE/S2mEoXkJ42gs4AzoL4jAgMrzs +pDpVyQQjAiEAkaB9Ys1kEQhlTEpu5mXaOD4lsJWsumrRQYrMKJrnHig= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_public_key.pem index 01087c0..9385eaf 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_public_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_public_key.pem @@ -1,20 +1,20 @@ ------BEGIN PUBLIC KEY----- -MIIDRjCCAjkGByqGSM44BAEwggIsAoIBAQCAo9NyWkrVMQ4dZGXNh5XWHwvQg0lc -sfO8TyTOq5g4s3KZ8Jsp6/DxwAjU9BBZIZ7acozOacJLUnsvVwTqE/tl9+PvVfa6 -80kTt7c5qx+eqpFjXMCaW6FsV0/7qIxI/+YzGIbA6vn1kcZIGTvDPhHM8+vcBvb4 -HC2o29SSKaqYY71M0kWBLxlYhK56XR1v9Hwfg0xbnYi9G6QpQbjO3bsAhVrWfVgs -2qXJTOs9a6azXfDHJQShrIAUm3Sk2jOO6Of1pH+7qTeW+bdM4HiJqWKA0dh1u1N+ -FxQ39/M4BMPB9TPHtdZ//1OWftwO3+QnxAXi5WGu2WWh55sp8AH0zG6BAiEAuh6t -nHjHHIqHlTAU/aYgyzWNxymsfHrFKmpOmN8G19kCggEATb51YfZezYjLaF2mB7sY -K35zvmOOqyt5u2HbybcM9cIiiqX5lvbV6z2prr1FQ7bJs9m/kgigMUfhY2Fni7R6 -IfQKWslfmHdpNsaCCL6bdcQJ83MCHpkvOumJtnTmArgGq7Q5I0njc6ScrQasJbDS -8qh322s3SKTVh+zplO0zJ1dDmW0XgdFYXJnhRbtXMHs01Pg7lx9vNXHYiAYm//EC -UB6/4TcbvwIX1Lu7VEexvnVhMISRS0gzNk6RyDPaA6lYF1II5X+ehp97/4SalKn1 -l14he3NIdS62fEsK5qiau6umc3aftb+QSE/S2mEoXkJ42gs4AzoL4jAgMrzspDpV -yQOCAQUAAoIBACKXryaUcXYbsOjvESHQrB0IlCZVDGIQd6mVCKPXCkeygEXSENWU -nVmmyBRRm1Kn8jYq5BJsVxg5jr57jlybdsrGhMXj67ObjlzT4woPQ5qZRFI88zTg -kyrhQ5w+BWSGHxSalfjWR4Z+02IupLkw3ah5Kiw803kxRwqAERBLLr0fPf2hCiCs -7UkzOjPF4zcUatjv4zKayiqQGaGvpI/hTT9rRPmd1VPr49jl02eZc0JMdQPlLn7f -TsYGs+yNmx4d+5t52Ds3ioM6M/KjBc+tXbRlyPUNKWvRgI4sBkRFAIUGvOstjOos -k0lzQWTHu2+ONcnCvNe0EM/XiO01CQYOWJ4= ------END PUBLIC KEY----- +-----BEGIN PUBLIC KEY----- +MIIDRjCCAjkGByqGSM44BAEwggIsAoIBAQCAo9NyWkrVMQ4dZGXNh5XWHwvQg0lc +sfO8TyTOq5g4s3KZ8Jsp6/DxwAjU9BBZIZ7acozOacJLUnsvVwTqE/tl9+PvVfa6 +80kTt7c5qx+eqpFjXMCaW6FsV0/7qIxI/+YzGIbA6vn1kcZIGTvDPhHM8+vcBvb4 +HC2o29SSKaqYY71M0kWBLxlYhK56XR1v9Hwfg0xbnYi9G6QpQbjO3bsAhVrWfVgs +2qXJTOs9a6azXfDHJQShrIAUm3Sk2jOO6Of1pH+7qTeW+bdM4HiJqWKA0dh1u1N+ +FxQ39/M4BMPB9TPHtdZ//1OWftwO3+QnxAXi5WGu2WWh55sp8AH0zG6BAiEAuh6t +nHjHHIqHlTAU/aYgyzWNxymsfHrFKmpOmN8G19kCggEATb51YfZezYjLaF2mB7sY +K35zvmOOqyt5u2HbybcM9cIiiqX5lvbV6z2prr1FQ7bJs9m/kgigMUfhY2Fni7R6 +IfQKWslfmHdpNsaCCL6bdcQJ83MCHpkvOumJtnTmArgGq7Q5I0njc6ScrQasJbDS +8qh322s3SKTVh+zplO0zJ1dDmW0XgdFYXJnhRbtXMHs01Pg7lx9vNXHYiAYm//EC +UB6/4TcbvwIX1Lu7VEexvnVhMISRS0gzNk6RyDPaA6lYF1II5X+ehp97/4SalKn1 +l14he3NIdS62fEsK5qiau6umc3aftb+QSE/S2mEoXkJ42gs4AzoL4jAgMrzspDpV +yQOCAQUAAoIBACKXryaUcXYbsOjvESHQrB0IlCZVDGIQd6mVCKPXCkeygEXSENWU +nVmmyBRRm1Kn8jYq5BJsVxg5jr57jlybdsrGhMXj67ObjlzT4woPQ5qZRFI88zTg +kyrhQ5w+BWSGHxSalfjWR4Z+02IupLkw3ah5Kiw803kxRwqAERBLLr0fPf2hCiCs +7UkzOjPF4zcUatjv4zKayiqQGaGvpI/hTT9rRPmd1VPr49jl02eZc0JMdQPlLn7f +TsYGs+yNmx4d+5t52Ds3ioM6M/KjBc+tXbRlyPUNKWvRgI4sBkRFAIUGvOstjOos +k0lzQWTHu2+ONcnCvNe0EM/XiO01CQYOWJ4= +-----END PUBLIC KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key.pem index 53ccab7..2d8a1a3 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key.pem @@ -1,27 +1,27 @@ ------BEGIN RSA PRIVATE KEY----- -MIIEowIBAAKCAQEAtgbJTdvige33WyEzA7KbQcanKbvKnHmPIbqmjciUXy/U66sZ -7tACprXAJfgviZJain8ecMFLKj/U4sWYDmSwdcv20h8iHF5rzmqBww0n2W0qZGK2 -6QGxHQLOHA38K7kepBEPbl0sJI3l6OfX7s6L4G664xMlvmlAGx+AtXZ9ZhrsF1Yp -k/6t88VYhevGwhA8+gtSrbcCNMgk7gZbauWwwjjSJ5rLpGykDU86EOKpZrjFeoa0 -b/TP+hqxHICxuDtzTkBX9Ola0jqJ0J0Gh5leJBkn2jDu4JN52Od5kj5NjJRXC7To -H2qcS9QlEkFFJMqE5jdoO7Hq/kA+FdEVnS++kwIDAQABAoIBAH/MofdtQ0nQBtRP -qd6VvtXeoKz3cViNLEYVIyz2v91Y2tgfyFRYbRQZFXBTISUowTLt7zRhMeHW8SPK -cWjhntcFviRmwW9Dh9NkCfklOm44bAQRHrTXgD+LIaSm2P7luTKd28Sz2/NKQTpV -1NCQ6bpIZCRb5CsdAGpKovZE2+QcIMmSMIaa9pgFZIMa/pLL2QBHBGhuu2uUZAeH -571dbNB2tsnELtL2fVInjKRjY7clXA9PKnkq6RhiV8jrhNDeyuV3ldKq93ELA3qS -GsZtC4v5swapuhJpBA4NsltrI5+QBOfUFU4u1w3GolBe+wNvyMHAtVTHFW0U4AII -oJY490kCgYEA6YLKq+gKcZIyBqwfQAZW37wYt8fDD34hk5AFXh7Xb/dSNOrwQnDi -0BrYsxIPRRPgdoQyJuT9+u/SlkQtfIQfq/VWaSHuSBNaUDeQ+bLriXmLK4TZ0+65 -Bnx0UJiPHCfiFZC68o0Au5vmlrG1bWzhztNJKXsYIvgG9sUJHZ8eft8CgYEAx46l -xeT+0RpgqOcBE6Ori5YhoAw1MC84sY8TWRQ8Fd02onyDw+LGV5RSP3gzuc/FR5Yw -cjCqAgayPGuPRNL4LaC/uEyMLZQ6Xq0g6tydIPohTMPUfp3enuskXCB4qGmZkTmW -QgxeLQ+/LVdxR5hs7LNM1QpWxYwtjjPUd37Oms0CgYABrLRzYyigA+Jj9dwLg4Af -/qNWvhICDG+FNWU0dZgp72YhhwXOFC0sPOUM87Y0Up4re2s4qC/CGvIxra990xy/ -CPVjr6Cb17ewF5XslIHn7H05BKzjPjUJfN8ArPdpxkdyzCTrFGPK9KVEs2WPsVY1 -O4Ksz3su1QSHxIX6NmfrlQKBgQCLZFbjPqvHwBcYpBOadk8Td9ERDLXybGm7jWdE -Z9/4ncbWBQe9QqCs+EvjTcFD35+7+2rnuJpoQ+koTzGKL5tvs8N3pvCbvdhv3ZsK -swOGz3GHP5skvn2MoE+Lkpr1eJ3uVT1h8WWvMDqoH1ZfXldnl27puQkXgG0p0YZt -2cPTWQKBgFN0b4B71vSWGzo5LFnlF69tNmjInxVjTxu9i7aCVb/gcFvRRl/EXWvP -suGCuuGOaQ7U5YCTBXx1LPRlUt0MsY96N8RwC07b7O2W4PyeZcXyNtlrnwa0EPSj -hOEMQj6AUm+TgLpUtqb93mj78tnWNX2KnxvLZ8pXjFBxTj+G5Wi4 ------END RSA PRIVATE KEY----- +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAtgbJTdvige33WyEzA7KbQcanKbvKnHmPIbqmjciUXy/U66sZ +7tACprXAJfgviZJain8ecMFLKj/U4sWYDmSwdcv20h8iHF5rzmqBww0n2W0qZGK2 +6QGxHQLOHA38K7kepBEPbl0sJI3l6OfX7s6L4G664xMlvmlAGx+AtXZ9ZhrsF1Yp +k/6t88VYhevGwhA8+gtSrbcCNMgk7gZbauWwwjjSJ5rLpGykDU86EOKpZrjFeoa0 +b/TP+hqxHICxuDtzTkBX9Ola0jqJ0J0Gh5leJBkn2jDu4JN52Od5kj5NjJRXC7To +H2qcS9QlEkFFJMqE5jdoO7Hq/kA+FdEVnS++kwIDAQABAoIBAH/MofdtQ0nQBtRP +qd6VvtXeoKz3cViNLEYVIyz2v91Y2tgfyFRYbRQZFXBTISUowTLt7zRhMeHW8SPK +cWjhntcFviRmwW9Dh9NkCfklOm44bAQRHrTXgD+LIaSm2P7luTKd28Sz2/NKQTpV +1NCQ6bpIZCRb5CsdAGpKovZE2+QcIMmSMIaa9pgFZIMa/pLL2QBHBGhuu2uUZAeH +571dbNB2tsnELtL2fVInjKRjY7clXA9PKnkq6RhiV8jrhNDeyuV3ldKq93ELA3qS +GsZtC4v5swapuhJpBA4NsltrI5+QBOfUFU4u1w3GolBe+wNvyMHAtVTHFW0U4AII +oJY490kCgYEA6YLKq+gKcZIyBqwfQAZW37wYt8fDD34hk5AFXh7Xb/dSNOrwQnDi +0BrYsxIPRRPgdoQyJuT9+u/SlkQtfIQfq/VWaSHuSBNaUDeQ+bLriXmLK4TZ0+65 +Bnx0UJiPHCfiFZC68o0Au5vmlrG1bWzhztNJKXsYIvgG9sUJHZ8eft8CgYEAx46l +xeT+0RpgqOcBE6Ori5YhoAw1MC84sY8TWRQ8Fd02onyDw+LGV5RSP3gzuc/FR5Yw +cjCqAgayPGuPRNL4LaC/uEyMLZQ6Xq0g6tydIPohTMPUfp3enuskXCB4qGmZkTmW +QgxeLQ+/LVdxR5hs7LNM1QpWxYwtjjPUd37Oms0CgYABrLRzYyigA+Jj9dwLg4Af +/qNWvhICDG+FNWU0dZgp72YhhwXOFC0sPOUM87Y0Up4re2s4qC/CGvIxra990xy/ +CPVjr6Cb17ewF5XslIHn7H05BKzjPjUJfN8ArPdpxkdyzCTrFGPK9KVEs2WPsVY1 +O4Ksz3su1QSHxIX6NmfrlQKBgQCLZFbjPqvHwBcYpBOadk8Td9ERDLXybGm7jWdE +Z9/4ncbWBQe9QqCs+EvjTcFD35+7+2rnuJpoQ+koTzGKL5tvs8N3pvCbvdhv3ZsK +swOGz3GHP5skvn2MoE+Lkpr1eJ3uVT1h8WWvMDqoH1ZfXldnl27puQkXgG0p0YZt +2cPTWQKBgFN0b4B71vSWGzo5LFnlF69tNmjInxVjTxu9i7aCVb/gcFvRRl/EXWvP +suGCuuGOaQ7U5YCTBXx1LPRlUt0MsY96N8RwC07b7O2W4PyeZcXyNtlrnwa0EPSj +hOEMQj6AUm+TgLpUtqb93mj78tnWNX2KnxvLZ8pXjFBxTj+G5Wi4 +-----END RSA PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key_pkcs8.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key_pkcs8.pem index acb7c59..4a943af 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key_pkcs8.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key_pkcs8.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC2BslN2+KB7fdb -ITMDsptBxqcpu8qceY8huqaNyJRfL9Trqxnu0AKmtcAl+C+JklqKfx5wwUsqP9Ti -xZgOZLB1y/bSHyIcXmvOaoHDDSfZbSpkYrbpAbEdAs4cDfwruR6kEQ9uXSwkjeXo -59fuzovgbrrjEyW+aUAbH4C1dn1mGuwXVimT/q3zxViF68bCEDz6C1KttwI0yCTu -Bltq5bDCONInmsukbKQNTzoQ4qlmuMV6hrRv9M/6GrEcgLG4O3NOQFf06VrSOonQ -nQaHmV4kGSfaMO7gk3nY53mSPk2MlFcLtOgfapxL1CUSQUUkyoTmN2g7ser+QD4V -0RWdL76TAgMBAAECggEAf8yh921DSdAG1E+p3pW+1d6grPdxWI0sRhUjLPa/3Vja -2B/IVFhtFBkVcFMhJSjBMu3vNGEx4dbxI8pxaOGe1wW+JGbBb0OH02QJ+SU6bjhs -BBEetNeAP4shpKbY/uW5Mp3bxLPb80pBOlXU0JDpukhkJFvkKx0Aakqi9kTb5Bwg -yZIwhpr2mAVkgxr+ksvZAEcEaG67a5RkB4fnvV1s0Ha2ycQu0vZ9UieMpGNjtyVc -D08qeSrpGGJXyOuE0N7K5XeV0qr3cQsDepIaxm0Li/mzBqm6EmkEDg2yW2sjn5AE -59QVTi7XDcaiUF77A2/IwcC1VMcVbRTgAgigljj3SQKBgQDpgsqr6ApxkjIGrB9A -BlbfvBi3x8MPfiGTkAVeHtdv91I06vBCcOLQGtizEg9FE+B2hDIm5P3679KWRC18 -hB+r9VZpIe5IE1pQN5D5suuJeYsrhNnT7rkGfHRQmI8cJ+IVkLryjQC7m+aWsbVt -bOHO00kpexgi+Ab2xQkdnx5+3wKBgQDHjqXF5P7RGmCo5wETo6uLliGgDDUwLzix -jxNZFDwV3TaifIPD4sZXlFI/eDO5z8VHljByMKoCBrI8a49E0vgtoL+4TIwtlDpe -rSDq3J0g+iFMw9R+nd6e6yRcIHioaZmROZZCDF4tD78tV3FHmGzss0zVClbFjC2O -M9R3fs6azQKBgAGstHNjKKAD4mP13AuDgB/+o1a+EgIMb4U1ZTR1mCnvZiGHBc4U -LSw85QzztjRSnit7azioL8Ia8jGtr33THL8I9WOvoJvXt7AXleyUgefsfTkErOM+ -NQl83wCs92nGR3LMJOsUY8r0pUSzZY+xVjU7gqzPey7VBIfEhfo2Z+uVAoGBAItk -VuM+q8fAFxikE5p2TxN30REMtfJsabuNZ0Rn3/idxtYFB71CoKz4S+NNwUPfn7v7 -aue4mmhD6ShPMYovm2+zw3em8Ju92G/dmwqzA4bPcYc/myS+fYygT4uSmvV4ne5V -PWHxZa8wOqgfVl9eV2eXbum5CReAbSnRhm3Zw9NZAoGAU3RvgHvW9JYbOjksWeUX -r202aMifFWNPG72LtoJVv+BwW9FGX8Rda8+y4YK64Y5pDtTlgJMFfHUs9GVS3Qyx -j3o3xHALTtvs7Zbg/J5lxfI22WufBrQQ9KOE4QxCPoBSb5OAulS2pv3eaPvy2dY1 -fYqfG8tnyleMUHFOP4blaLg= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC2BslN2+KB7fdb +ITMDsptBxqcpu8qceY8huqaNyJRfL9Trqxnu0AKmtcAl+C+JklqKfx5wwUsqP9Ti +xZgOZLB1y/bSHyIcXmvOaoHDDSfZbSpkYrbpAbEdAs4cDfwruR6kEQ9uXSwkjeXo +59fuzovgbrrjEyW+aUAbH4C1dn1mGuwXVimT/q3zxViF68bCEDz6C1KttwI0yCTu +Bltq5bDCONInmsukbKQNTzoQ4qlmuMV6hrRv9M/6GrEcgLG4O3NOQFf06VrSOonQ +nQaHmV4kGSfaMO7gk3nY53mSPk2MlFcLtOgfapxL1CUSQUUkyoTmN2g7ser+QD4V +0RWdL76TAgMBAAECggEAf8yh921DSdAG1E+p3pW+1d6grPdxWI0sRhUjLPa/3Vja +2B/IVFhtFBkVcFMhJSjBMu3vNGEx4dbxI8pxaOGe1wW+JGbBb0OH02QJ+SU6bjhs +BBEetNeAP4shpKbY/uW5Mp3bxLPb80pBOlXU0JDpukhkJFvkKx0Aakqi9kTb5Bwg +yZIwhpr2mAVkgxr+ksvZAEcEaG67a5RkB4fnvV1s0Ha2ycQu0vZ9UieMpGNjtyVc +D08qeSrpGGJXyOuE0N7K5XeV0qr3cQsDepIaxm0Li/mzBqm6EmkEDg2yW2sjn5AE +59QVTi7XDcaiUF77A2/IwcC1VMcVbRTgAgigljj3SQKBgQDpgsqr6ApxkjIGrB9A +BlbfvBi3x8MPfiGTkAVeHtdv91I06vBCcOLQGtizEg9FE+B2hDIm5P3679KWRC18 +hB+r9VZpIe5IE1pQN5D5suuJeYsrhNnT7rkGfHRQmI8cJ+IVkLryjQC7m+aWsbVt +bOHO00kpexgi+Ab2xQkdnx5+3wKBgQDHjqXF5P7RGmCo5wETo6uLliGgDDUwLzix +jxNZFDwV3TaifIPD4sZXlFI/eDO5z8VHljByMKoCBrI8a49E0vgtoL+4TIwtlDpe +rSDq3J0g+iFMw9R+nd6e6yRcIHioaZmROZZCDF4tD78tV3FHmGzss0zVClbFjC2O +M9R3fs6azQKBgAGstHNjKKAD4mP13AuDgB/+o1a+EgIMb4U1ZTR1mCnvZiGHBc4U +LSw85QzztjRSnit7azioL8Ia8jGtr33THL8I9WOvoJvXt7AXleyUgefsfTkErOM+ +NQl83wCs92nGR3LMJOsUY8r0pUSzZY+xVjU7gqzPey7VBIfEhfo2Z+uVAoGBAItk +VuM+q8fAFxikE5p2TxN30REMtfJsabuNZ0Rn3/idxtYFB71CoKz4S+NNwUPfn7v7 +aue4mmhD6ShPMYovm2+zw3em8Ju92G/dmwqzA4bPcYc/myS+fYygT4uSmvV4ne5V +PWHxZa8wOqgfVl9eV2eXbum5CReAbSnRhm3Zw9NZAoGAU3RvgHvW9JYbOjksWeUX +r202aMifFWNPG72LtoJVv+BwW9FGX8Rda8+y4YK64Y5pDtTlgJMFfHUs9GVS3Qyx +j3o3xHALTtvs7Zbg/J5lxfI22WufBrQQ9KOE4QxCPoBSb5OAulS2pv3eaPvy2dY1 +fYqfG8tnyleMUHFOP4blaLg= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_public_key.pem index 59b58f4..a6430f2 100644 --- a/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_public_key.pem +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_public_key.pem @@ -1,9 +1,9 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtgbJTdvige33WyEzA7Kb -QcanKbvKnHmPIbqmjciUXy/U66sZ7tACprXAJfgviZJain8ecMFLKj/U4sWYDmSw -dcv20h8iHF5rzmqBww0n2W0qZGK26QGxHQLOHA38K7kepBEPbl0sJI3l6OfX7s6L -4G664xMlvmlAGx+AtXZ9ZhrsF1Ypk/6t88VYhevGwhA8+gtSrbcCNMgk7gZbauWw -wjjSJ5rLpGykDU86EOKpZrjFeoa0b/TP+hqxHICxuDtzTkBX9Ola0jqJ0J0Gh5le -JBkn2jDu4JN52Od5kj5NjJRXC7ToH2qcS9QlEkFFJMqE5jdoO7Hq/kA+FdEVnS++ -kwIDAQAB ------END PUBLIC KEY----- +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtgbJTdvige33WyEzA7Kb +QcanKbvKnHmPIbqmjciUXy/U66sZ7tACprXAJfgviZJain8ecMFLKj/U4sWYDmSw +dcv20h8iHF5rzmqBww0n2W0qZGK26QGxHQLOHA38K7kepBEPbl0sJI3l6OfX7s6L +4G664xMlvmlAGx+AtXZ9ZhrsF1Ypk/6t88VYhevGwhA8+gtSrbcCNMgk7gZbauWw +wjjSJ5rLpGykDU86EOKpZrjFeoa0b/TP+hqxHICxuDtzTkBX9Ola0jqJ0J0Gh5le +JBkn2jDu4JN52Od5kj5NjJRXC7ToH2qcS9QlEkFFJMqE5jdoO7Hq/kA+FdEVnS++ +kwIDAQAB +-----END PUBLIC KEY----- diff --git a/codes/agent/game-docker/api/payment/alipay/lib/cacert.pem b/codes/agent/game-docker/api/payment/alipay/lib/cacert.pem index cb8f7fa..0a335a9 100644 --- a/codes/agent/game-docker/api/payment/alipay/lib/cacert.pem +++ b/codes/agent/game-docker/api/payment/alipay/lib/cacert.pem @@ -1,3920 +1,3920 @@ -## -## ca-bundle.crt -- Bundle of CA Root Certificates -## -## Certificate data from Mozilla as of: Thu Oct 18 19:05:59 2012 -## -## This is a bundle of X.509 certificates of public Certificate Authorities -## (CA). These were automatically extracted from Mozilla's root certificates -## file (certdata.txt). This file can be found in the mozilla source tree: -## http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1 -## -## It contains the certificates in PEM format and therefore -## can be directly used with curl / libcurl / php_curl, or with -## an Apache+mod_ssl webserver for SSL client authentication. -## Just configure this file as the SSLCACertificateFile. -## - -# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.86 $ $Date: 2012/10/18 16:26:52 $ - -GTE CyberTrust Global Root -========================== ------BEGIN CERTIFICATE----- -MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg -Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG -A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz -MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL -Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0 -IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u -sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql -HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID -AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW -M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF -NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ ------END CERTIFICATE----- - -Thawte Server CA -================ ------BEGIN CERTIFICATE----- -MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT -DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs -dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE -AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j -b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV -BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u -c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG -A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 -ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl -/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7 -1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR -MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J -GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ -GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= ------END CERTIFICATE----- - -Thawte Premium Server CA -======================== ------BEGIN CERTIFICATE----- -MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT -DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs -dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE -AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl -ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT -AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU -VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 -aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ -cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2 -aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh -Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/ -qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm -SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf -8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t -UCemDaYj+bvLpgcUQg== ------END CERTIFICATE----- - -Equifax Secure CA -================= ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE -ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT -B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB -nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR -fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW -8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG -A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE -CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG -A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS -spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB -Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 -zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB -BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 -70+sB3c4 ------END CERTIFICATE----- - -Digital Signature Trust Co. Global CA 1 -======================================= ------BEGIN CERTIFICATE----- -MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE -ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy -MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs -IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA -A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE -NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i -o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo -BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 -dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw -IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY -MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM -BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB -ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq -kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4 -RbyhkwS7hp86W0N6w4pl ------END CERTIFICATE----- - -Digital Signature Trust Co. Global CA 3 -======================================= ------BEGIN CERTIFICATE----- -MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE -ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy -MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs -IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA -A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD -VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS -xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo -BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 -dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw -IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY -MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM -BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB -AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi -up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1 -mPnHfxsb1gYgAlihw6ID ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority -======================================================= ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx -FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow -XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz -IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 -f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol -hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA -TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah -WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf -Tqj/ZA1k ------END CERTIFICATE----- - -Verisign Class 1 Public Primary Certification Authority - G2 -============================================================ ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT -MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz -dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT -MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz -dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd -k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq -WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB -MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM -XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC -lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ ------END CERTIFICATE----- - -Verisign Class 2 Public Primary Certification Authority - G2 -============================================================ ------BEGIN CERTIFICATE----- -MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h -cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp -Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 -c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h -cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp -Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 -c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx -nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC -wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA -ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK -1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk -LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg== ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G2 -============================================================ ------BEGIN CERTIFICATE----- -MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT -MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz -dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT -MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln -biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz -dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO -FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71 -lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB -MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT -1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD -Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9 ------END CERTIFICATE----- - -GlobalSign Root CA -================== ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx -GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds -b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV -BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD -VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa -DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc -THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb -Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP -c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX -gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF -AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj -Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG -j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH -hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC -X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- - -GlobalSign Root CA - R2 -======================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 -ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp -s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN -S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL -TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C -ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i -YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN -BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp -9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu -01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 -9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - -ValiCert Class 1 VA -=================== ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp -b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh -bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy -MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 -d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg -UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 -LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi -GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm -DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG -lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX -icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP -Orf1LXLI ------END CERTIFICATE----- - -ValiCert Class 2 VA -=================== ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp -b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh -bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw -MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 -d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg -UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 -LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC -CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf -ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ -SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV -UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8 -W9ViH0Pd ------END CERTIFICATE----- - -RSA Root Certificate 1 -====================== ------BEGIN CERTIFICATE----- -MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp -b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs -YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh -bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw -MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 -d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg -UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 -LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td -3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H -BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs -3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF -V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r -on+jjBXu ------END CERTIFICATE----- - -Verisign Class 1 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E -bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ -rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+ -Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB -FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N -y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3 -ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h -a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc -D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g== ------END CERTIFICATE----- - -Verisign Class 2 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT -MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y -azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug -b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ -BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 -c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y -aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6 -tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7 -C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS -0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs -Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0 -JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf -0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU -sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx -JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j -GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 -EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc -cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw -EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj -055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f -j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 -xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa -t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- - -Verisign Class 4 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS -tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM -8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW -Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX -Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt -mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm -fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd -RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG -UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== ------END CERTIFICATE----- - -Entrust.net Secure Server CA -============================ ------BEGIN CERTIFICATE----- -MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV -BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg -cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl -ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG -A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi -eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p -dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ -aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5 -gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw -ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw -CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l -dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF -bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl -cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu -dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw -NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow -HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA -BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN -Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9 -n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= ------END CERTIFICATE----- - -Entrust.net Premium 2048 Secure Server CA -========================================= ------BEGIN CERTIFICATE----- -MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u -ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp -bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV -BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx -NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 -d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl -MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u -ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL -Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr -hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW -nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi -VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC -AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER -gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B -AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo -oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS -o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z -2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX -OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ== ------END CERTIFICATE----- - -Baltimore CyberTrust Root -========================= ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE -ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li -ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC -SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs -dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME -uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB -UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C -G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 -XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr -l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI -VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh -cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 -hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa -Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H -RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- - -Equifax Secure Global eBusiness CA -================================== ------BEGIN CERTIFICATE----- -MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp -bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx -HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds -b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV -PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN -qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn -hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j -BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs -MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN -I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY -NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV ------END CERTIFICATE----- - -Equifax Secure eBusiness CA 1 -============================= ------BEGIN CERTIFICATE----- -MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB -LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE -ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz -IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ -1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a -IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk -MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW -Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF -AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5 -lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+ -KpYrtWKmpj29f5JZzVoqgrI3eQ== ------END CERTIFICATE----- - -Equifax Secure eBusiness CA 2 -============================= ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE -ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y -MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT -DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB -nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn -2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5 -BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG -A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx -JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG -A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e -uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB -Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1 -jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia -78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm -V+GRMOrN ------END CERTIFICATE----- - -AddTrust Low-Value Services Root -================================ ------BEGIN CERTIFICATE----- -MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU -cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw -CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO -ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 -54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr -oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 -Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui -GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w -HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD -AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT -RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw -HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt -ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph -iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY -eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr -mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj -ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= ------END CERTIFICATE----- - -AddTrust External Root -====================== ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD -VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw -NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU -cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg -Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 -+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw -Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo -aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy -2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 -7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL -VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk -VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB -IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl -j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 -e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u -G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- - -AddTrust Public Services Root -============================= ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU -cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ -BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l -dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu -nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i -d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG -Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw -HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G -A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux -FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G -A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 -JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL -+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao -GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 -Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H -EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= ------END CERTIFICATE----- - -AddTrust Qualified Certificates Root -==================================== ------BEGIN CERTIFICATE----- -MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU -cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx -CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ -IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx -64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 -KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o -L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR -wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU -MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE -BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y -azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD -ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG -GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X -dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze -RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB -iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= ------END CERTIFICATE----- - -Entrust Root Certification Authority -==================================== ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw -b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG -A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 -MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu -MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu -Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v -dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz -A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww -Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 -j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN -rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 -MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH -hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM -Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa -v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS -W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 -tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- - -RSA Security 2048 v3 -==================== ------BEGIN CERTIFICATE----- -MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK -ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy -MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb -BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 -Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb -WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH -KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP -+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ -MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E -FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY -v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj -0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj -VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 -nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA -pKnXwiJPZ9d37CAFYd4= ------END CERTIFICATE----- - -GeoTrust Global CA -================== ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw -MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo -BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet -8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc -T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU -vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk -DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q -zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 -d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 -mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p -XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm -Mw== ------END CERTIFICATE----- - -GeoTrust Global CA 2 -==================== ------BEGIN CERTIFICATE----- -MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw -MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ -NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k -LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA -Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b -HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH -K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 -srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh -ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL -OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC -x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF -H4z1Ir+rzoPz4iIprn2DQKi6bA== ------END CERTIFICATE----- - -GeoTrust Universal CA -===================== ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 -MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu -Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t -JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e -RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs -7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d -8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V -qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga -Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB -Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu -KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 -ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 -XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB -hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 -qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL -oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK -xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF -KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 -DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK -xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU -p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI -P/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- - -GeoTrust Universal CA 2 -======================= ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 -MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg -SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 -DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 -j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q -JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a -QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 -WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP -20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn -ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC -SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG -8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 -+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E -BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ -4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ -mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq -A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg -Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP -pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d -FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp -gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm -X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- - -UTN-USER First-Network Applications -=================================== ------BEGIN CERTIFICATE----- -MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp -BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5 -WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T -YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho -dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB -cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug -mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj -DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu -Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi -P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE -j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w -HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j -cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G -CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y -IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK -RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp -xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq -DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE ------END CERTIFICATE----- - -America Online Root Certification Authority 1 -============================================= ------BEGIN CERTIFICATE----- -MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG -A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg -T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG -v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z -DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh -sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP -8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T -AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z -o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf -GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF -VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft -3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g -Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds -sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 ------END CERTIFICATE----- - -America Online Root Certification Authority 2 -============================================= ------BEGIN CERTIFICATE----- -MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG -A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg -T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en -fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8 -f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO -qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN -RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0 -gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn -6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid -FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6 -Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj -B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op -aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY -T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p -+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg -JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy -zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO -ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh -1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf -GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff -Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP -cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk= ------END CERTIFICATE----- - -Visa eCommerce Root -=================== ------BEGIN CERTIFICATE----- -MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG -EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug -QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 -WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm -VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv -bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL -F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b -RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 -TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI -/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs -GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG -MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc -CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW -YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz -zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu -YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt -398znM/jra6O1I7mT1GvFpLgXPYHDw== ------END CERTIFICATE----- - -Certum Root CA -============== ------BEGIN CERTIFICATE----- -MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK -ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla -Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u -by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x -wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL -kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ -89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K -Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P -NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq -hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ -GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg -GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ -0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS -qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== ------END CERTIFICATE----- - -Comodo AAA Services root -======================== ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw -MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl -c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG -C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs -i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW -Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH -Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK -Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f -BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl -cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz -LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm -7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z -8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C -12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- - -Comodo Secure Services root -=========================== ------BEGIN CERTIFICATE----- -MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw -MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu -Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi -BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP -9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc -rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC -oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V -p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E -FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w -gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj -YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm -aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm -4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj -Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL -DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw -pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H -RR3B7Hzs/Sk= ------END CERTIFICATE----- - -Comodo Trusted Services root -============================ ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw -MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h -bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw -IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 -3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y -/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 -juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS -ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud -DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp -ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl -cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw -uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 -pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA -BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l -R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O -9y5Xt5hwXsjEeLBi ------END CERTIFICATE----- - -QuoVadis Root CA -================ ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE -ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz -MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp -cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD -EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk -J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL -F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL -YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen -AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w -PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y -ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 -MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj -YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs -ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW -Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu -BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw -FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 -tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo -fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul -LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x -gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi -5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi -5nrQNiOKSnQ2+Q== ------END CERTIFICATE----- - -QuoVadis Root CA 2 -================== ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx -ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 -XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk -lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB -lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy -lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt -66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn -wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh -D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy -BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie -J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud -DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU -a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv -Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 -UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm -VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK -+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW -IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 -WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X -f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II -4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 -VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- - -QuoVadis Root CA 3 -================== ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx -OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg -DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij -KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K -DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv -BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp -p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 -nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX -MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM -Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz -uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT -BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj -YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB -BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD -VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 -ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE -AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV -qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s -hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z -POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 -Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp -8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC -bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu -g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p -vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr -qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- - -Security Communication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw -8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM -DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX -5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd -DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 -JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g -0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a -mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ -s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ -6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi -FL39vmwLAw== ------END CERTIFICATE----- - -Sonera Class 1 Root CA -====================== ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG -U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw -NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh -IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88 -7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9 -EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl -0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645 -2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa -HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT -iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9 -28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV -yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR -vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P -qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z -IRlXvVWa ------END CERTIFICATE----- - -Sonera Class 2 Root CA -====================== ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG -U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw -NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh -IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 -/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT -dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG -f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P -tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH -nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT -XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt -0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI -cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph -Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx -EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH -llpwrN9M ------END CERTIFICATE----- - -Staat der Nederlanden Root CA -============================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE -ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w -HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh -bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt -vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P -jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca -C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth -vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 -22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV -HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v -dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN -BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR -EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw -MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y -nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR -iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== ------END CERTIFICATE----- - -TDC Internet Root CA -==================== ------BEGIN CERTIFICATE----- -MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE -ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx -NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu -ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j -xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL -znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc -5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6 -otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI -AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM -VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM -MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC -AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe -UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G -CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m -gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+ -2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb -O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU -Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l ------END CERTIFICATE----- - -TDC OCES Root CA -================ ------BEGIN CERTIFICATE----- -MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE -ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5 -MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH -nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0 -zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV -iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde -dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO -3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB -5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k -ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm -cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp -Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x -LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM -MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm -aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy -MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647 -+RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6 -NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4 -A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc -A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9 -AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1 -AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw== ------END CERTIFICATE----- - -UTN DATACorp SGC Root CA -======================== ------BEGIN CERTIFICATE----- -MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ -BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa -MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w -HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy -dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys -raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo -wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA -9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv -33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud -DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 -BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD -LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 -DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft -Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 -I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx -EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP -DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI ------END CERTIFICATE----- - -UTN USERFirst Email Root CA -=========================== ------BEGIN CERTIFICATE----- -MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0 -BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05 -OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx -FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx -ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz -dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx -B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8 -om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG -TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl -yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE -AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV -HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll -bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH -AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne -xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+ -5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV -NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ -w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ= ------END CERTIFICATE----- - -UTN USERFirst Hardware Root CA -============================== ------BEGIN CERTIFICATE----- -MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd -BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx -OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 -eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz -ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI -wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd -tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 -i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf -Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw -gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF -lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF -UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF -BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM -//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW -XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 -lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn -iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 -nfhmqA== ------END CERTIFICATE----- - -UTN USERFirst Object Root CA -============================ ------BEGIN CERTIFICATE----- -MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb -BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz -NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx -HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy -dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR -loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ -w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu -lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7 -RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL -BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8 -ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly -c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw -DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw -NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO -PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE -qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG -hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g= ------END CERTIFICATE----- - -Camerfirma Chambers of Commerce Root -==================================== ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe -QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i -ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx -NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp -cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn -MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC -AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU -xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH -NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW -DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV -d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud -EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v -cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P -AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh -bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD -VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz -aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi -fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD -L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN -UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n -ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 -erfutGWaIZDgqtCYvDi1czyL+Nw= ------END CERTIFICATE----- - -Camerfirma Global Chambersign Root -================================== ------BEGIN CERTIFICATE----- -MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe -QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i -ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx -NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt -YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg -MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw -ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J -1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O -by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl -6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c -8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ -BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j -aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B -Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj -aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y -ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh -bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA -PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y -gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ -PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 -IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes -t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== ------END CERTIFICATE----- - -NetLock Qualified (Class QA) Root -================================= ------BEGIN CERTIFICATE----- -MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT -CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV -BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn -eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0 -bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER -MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0 -LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0 -dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP -aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV -CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e -8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb -m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ -0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM -0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV -HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2 -YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh -biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p -a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz -YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg -YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg -ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov -L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr -Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0 -aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg -YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0 -IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3 -DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN -wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg -W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc -R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR -5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko ------END CERTIFICATE----- - -NetLock Notary (Class A) Root -============================= ------BEGIN CERTIFICATE----- -MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI -EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 -dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j -ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX -DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH -EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD -VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz -cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM -D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ -z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC -/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 -tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 -4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG -A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC -Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv -bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu -IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn -LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 -ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz -IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh -IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu -b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh -bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg -Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp -bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 -ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP -ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB -CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr -KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM -8CgHrTwXZoi1/baI ------END CERTIFICATE----- - -NetLock Business (Class B) Root -=============================== ------BEGIN CERTIFICATE----- -MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT -CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV -BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg -VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD -VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv -bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg -VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB -iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S -o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr -1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV -HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ -RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh -dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0 -ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv -c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg -YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh -c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz -Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA -bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl -IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2 -YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj -cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM -43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR -stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI ------END CERTIFICATE----- - -NetLock Express (Class C) Root -============================== ------BEGIN CERTIFICATE----- -MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT -CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV -BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD -KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ -BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 -dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j -ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB -jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z -W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63 -euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw -DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN -RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn -YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB -IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i -aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0 -ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs -ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo -dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y -emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k -IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ -UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg -YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2 -xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW -gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A== ------END CERTIFICATE----- - -XRamp Global CA Root -==================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE -BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj -dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx -HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg -U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu -IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx -foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE -zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs -AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry -xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap -oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC -AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc -/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n -nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz -8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- - -Go Daddy Class 2 CA -=================== ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY -VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG -A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD -ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 -qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j -YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY -vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O -BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o -atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu -MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG -A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim -PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt -I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI -Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b -vZ8= ------END CERTIFICATE----- - -Starfield Class 2 CA -==================== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc -U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo -MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG -A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG -SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY -bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ -JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm -epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN -F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF -MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f -hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo -bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs -afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM -PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD -KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 -QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- - -StartCom Certification Authority -================================ ------BEGIN CERTIFICATE----- -MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu -ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 -NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk -LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg -U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y -o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ -Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d -eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt -2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z -6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ -osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ -untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc -UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT -37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE -FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 -Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj -YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH -AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw -Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg -U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 -LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl -cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh -cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT -dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC -AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh -3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm -vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk -fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 -fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ -EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq -yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl -1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ -lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro -g14= ------END CERTIFICATE----- - -Taiwan GRCA -=========== ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG -EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X -DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv -dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN -w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 -BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O -1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO -htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov -J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 -Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t -B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB -O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 -lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV -HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 -09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj -Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 -Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU -D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz -DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk -Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk -7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ -CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy -+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS ------END CERTIFICATE----- - -Firmaprofesional Root CA -======================== ------BEGIN CERTIFICATE----- -MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT -GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp -Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA -ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL -MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT -OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2 -ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V -j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH -lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf -3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8 -NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww -KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG -AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud -DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD -ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq -u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf -wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm -7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG -VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA= ------END CERTIFICATE----- - -Wells Fargo Root CA -=================== ------BEGIN CERTIFICATE----- -MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV -BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN -MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl -bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv -MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX -x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3 -E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5 -OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j -sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj -YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF -BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD -ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv -m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R -OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx -x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023 -tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s= ------END CERTIFICATE----- - -Swisscom Root CA 1 -================== ------BEGIN CERTIFICATE----- -MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG -EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy -dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 -MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln -aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC -IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM -MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF -NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe -AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC -b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn -7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN -cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp -WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 -haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY -MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw -HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j -BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 -MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn -jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ -MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H -VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl -vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl -OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 -1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq -nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy -x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW -NY6E0F/6MBr1mmz0DlP5OlvRHA== ------END CERTIFICATE----- - -DigiCert Assured ID Root CA -=========================== ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx -MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO -9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy -UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW -/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy -oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf -GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF -66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq -hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc -EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn -SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i -8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - -DigiCert Global Root CA -======================= ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw -MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn -TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 -BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H -4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y -7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB -o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm -8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF -BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr -EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt -tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 -UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- - -DigiCert High Assurance EV Root CA -================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw -KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw -MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ -MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu -Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t -Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS -OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 -MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ -NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe -h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB -Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY -JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ -V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp -myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK -mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K ------END CERTIFICATE----- - -Certplus Class 2 Primary CA -=========================== ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE -BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN -OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy -dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR -5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ -Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO -YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e -e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME -CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ -YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t -L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD -P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R -TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ -7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW -//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 -l7+ijrRU ------END CERTIFICATE----- - -DST Root CA X3 -============== ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK -ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X -DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 -cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT -rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 -UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy -xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d -utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ -MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug -dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE -GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw -RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS -fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- - -DST ACES CA X6 -============== ------BEGIN CERTIFICATE----- -MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT -MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha -MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE -CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI -DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa -pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow -GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy -MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu -Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy -dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU -CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 -5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t -Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq -nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs -vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 -oKfN5XozNmr6mis= ------END CERTIFICATE----- - -TURKTRUST Certificate Services Provider Root 1 -============================================== ------BEGIN CERTIFICATE----- -MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP -MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0 -acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx -MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg -U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB -TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC -aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX -yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i -Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ -8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4 -W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME -BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46 -sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE -q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy -B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY -nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H ------END CERTIFICATE----- - -TURKTRUST Certificate Services Provider Root 2 -============================================== ------BEGIN CERTIFICATE----- -MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP -MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg -QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN -MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr -dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G -A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls -acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe -LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI -x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g -QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr -5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB -AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G -A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt -Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 -Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ -hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P -9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 -UrbnBEI= ------END CERTIFICATE----- - -SwissSign Platinum CA - G2 -========================== ------BEGIN CERTIFICATE----- -MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTAT -BgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIw -HhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMM -U3dpc3NTaWduIEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJ -KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu -669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UF -eNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kne -WCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIo -j5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/6 -8++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34T -aNhxKFrYzt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjy -domyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3HBqi7Ri6Cr2D -+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuWae5ogObnmLo2t/5u7Su9IPhlGdpV -CX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv -zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW -IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1 -Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3 -NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4 -U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8 -KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl -9x8DYSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1B -aYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyIIoK6q8QNs -OktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSY -Mdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAci -IfNAChs0B0QTwoRqjt8ZWr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g== ------END CERTIFICATE----- - -SwissSign Gold CA - G2 -====================== ------BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw -EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN -MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp -c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq -t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C -jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg -vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF -ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR -AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend -jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO -peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR -7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi -GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 -OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov -L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm -5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr -44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf -Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m -Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp -mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk -vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf -KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br -NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj -viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ ------END CERTIFICATE----- - -SwissSign Silver CA - G2 -======================== ------BEGIN CERTIFICATE----- -MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT -BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X -DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 -aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG -9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 -N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm -+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH -6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu -MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h -qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 -FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs -ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc -celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X -CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB -tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 -cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P -4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F -kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L -3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx -/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa -DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP -e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu -WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ -DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub -DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority -======================================== ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx -CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ -cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN -b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 -nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge -RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt -tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI -hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K -Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN -NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa -Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG -1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- - -thawte Primary Root CA -====================== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 -MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg -SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv -KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT -FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs -oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ -1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc -q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K -aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p -afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF -AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE -uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 -jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH -z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G5 -============================================================ ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln -biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh -dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz -j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD -Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ -Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r -fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ -BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv -Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG -SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ -X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE -KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC -Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE -ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- - -SecureTrust CA -============== ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy -dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe -BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX -OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t -DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH -GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b -01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH -ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj -aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu -SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf -mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ -nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- - -Secure Global CA -================ ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH -bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg -MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx -YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ -bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g -8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV -HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi -0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn -oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA -MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ -OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn -CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 -3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- - -COMODO Certification Authority -============================== ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb -MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD -T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH -+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww -xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV -4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA -1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI -rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k -b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC -AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP -OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc -IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN -+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== ------END CERTIFICATE----- - -Network Solutions Certificate Authority -======================================= ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG -EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr -IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx -MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx -jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT -aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT -crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc -/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB -AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv -bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA -A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q -4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ -GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD -ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - -WellsSecure Public Root Certificate Authority -============================================= ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM -F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw -NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN -MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl -bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD -VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 -iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 -i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 -bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB -K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB -AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu -cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm -lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB -i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww -GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI -K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 -bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj -qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es -E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ -tylv2G0xffX8oRAHh84vWdw+WNs= ------END CERTIFICATE----- - -COMODO ECC Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix -GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo -b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X -4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni -wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG -FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA -U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -IGC/A -===== ------BEGIN CERTIFICATE----- -MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD -VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE -Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy -MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI -EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT -STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2 -TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW -So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy -HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd -frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ -tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB -egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC -iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK -q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q -MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg -Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI -lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF -0mBWWg== ------END CERTIFICATE----- - -Security Communication EV RootCA1 -================================= ------BEGIN CERTIFICATE----- -MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE -BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl -Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO -/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX -WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z -ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 -bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK -9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG -SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm -iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG -Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW -mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW -T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 ------END CERTIFICATE----- - -OISTE WISeKey Global Root GA CA -=============================== ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE -BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG -A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH -bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD -VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw -IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 -IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 -Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg -Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD -d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ -/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R -LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm -MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 -+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY -okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= ------END CERTIFICATE----- - -S-TRUST Authentication and Encryption Root CA 2005 PN -===================================================== ------BEGIN CERTIFICATE----- -MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE -BhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcpMRIwEAYDVQQHEwlTdHV0dGdh -cnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVT -LVRSVVNUIEF1dGhlbnRpY2F0aW9uIGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0w -NTA2MjIwMDAwMDBaFw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFk -ZW4tV3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMgRGV1dHNj -aGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJVU1QgQXV0aGVudGljYXRp -b24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBOMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob -4QSwI7+Vio5bG0F/WsPoTUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXL -g3KSwlOyggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1Xgqf -eN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteFhy+S8dF2g08LOlk3 -KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm7QIDAQABo4GSMIGPMBIGA1UdEwEB -/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJv -bmxpbmUxLTIwNDgtNTAdBgNVHQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAU -D8oeXHngovMpttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD -pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFoLtU96G7m1R08 -P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersFiXOMy6ZNwPv2AtawB6MDwidA -nwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0yh9WUUpY6RsZxlj33mA6ykaqP2vROJAA5Veit -F7nTNCtKqUDMFypVZUF0Qn71wK/Ik63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8b -Hz2eBIPdltkdOpQ= ------END CERTIFICATE----- - -Microsec e-Szigno Root CA -========================= ------BEGIN CERTIFICATE----- -MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE -BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL -EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0 -MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz -dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT -GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG -d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N -oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc -QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ -PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb -MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG -IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD -VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3 -LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A -dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn -AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA -4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg -AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA -egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6 -Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO -PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv -c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h -cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw -IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT -WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV -MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER -MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp -Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal -HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT -nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE -aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a -86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK -yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB -S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= ------END CERTIFICATE----- - -Certigna -======== ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw -EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 -MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI -Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q -XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH -GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p -ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg -DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf -Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ -tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ -BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J -SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA -hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ -ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu -PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY -1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- - -AC Ra\xC3\xADz Certic\xC3\xA1mara S.A. -====================================== ------BEGIN CERTIFICATE----- -MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT -AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg -LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w -HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+ -U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh -IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN -yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU -2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3 -4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP -2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm -8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf -HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa -Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK -5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b -czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE -AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g -ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF -BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug -cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf -AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX -EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v -/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3 -MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4 -3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk -eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f -/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h -RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU -Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ== ------END CERTIFICATE----- - -TC TrustCenter Class 2 CA II -============================ ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC -REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy -IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw -MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 -c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE -AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw -IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2 -xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ -Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u -SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB -7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 -Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU -cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i -SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u -TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G -dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ -KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj -TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP -JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk -vQ== ------END CERTIFICATE----- - -TC TrustCenter Class 3 CA II -============================ ------BEGIN CERTIFICATE----- -MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC -REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy -IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw -MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 -c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE -AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W -yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo -6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ -uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk -2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB -7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 -Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU -cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i -SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u -TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE -O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8 -yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9 -IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal -092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc -5A== ------END CERTIFICATE----- - -TC TrustCenter Universal CA I -============================= ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC -REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy -IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN -MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg -VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw -JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC -qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv -xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw -ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O -gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j -BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG -1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy -vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3 -ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT -ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a -7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY ------END CERTIFICATE----- - -Deutsche Telekom Root CA 2 -========================== ------BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT -RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG -A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 -MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G -A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS -b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 -bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI -KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY -AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK -Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV -jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV -HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr -E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy -zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 -rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G -dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU -Cm26OWMohpLzGITY+9HPBVZkVw== ------END CERTIFICATE----- - -ComSign CA -========== ------BEGIN CERTIFICATE----- -MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0MRMwEQYDVQQD -EwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTMy -MThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMTCkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNp -Z24xCzAJBgNVBAYTAklMMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49q -ROR+WCf4C9DklBKK8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTy -P2Q298CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb2CEJKHxN -GGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxCejVb7Us6eva1jsz/D3zk -YDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7KpiXd3DTKaCQeQzC6zJMw9kglcq/QytNuEM -rkvF7zuZ2SOzW120V+x0cAwqTwIDAQABo4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAy -oDCgLoYsaHR0cDovL2ZlZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0P -AQH/BAQDAgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRLAZs+ -VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWdfoPPbrxHbvUanlR2 -QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0McXS6hMTXcpuEfDhOZAYnKuGntewI -mbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb -/627HOkthIDYIb6FUtnUdLlphbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VG -zT2ouvDzuFYkRes3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U -AGegcQCCSA== ------END CERTIFICATE----- - -ComSign Secured CA -================== ------BEGIN CERTIFICATE----- -MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE -AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w -NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD -QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs -49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH -7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB -kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1 -9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw -AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t -U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA -j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC -AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a -BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp -FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP -51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz -OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw== ------END CERTIFICATE----- - -Cybertrust Global Root -====================== ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li -ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 -MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD -ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW -0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL -AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin -89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT -8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 -MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G -A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO -lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi -5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 -hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T -X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - -ePKI Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG -EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg -Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx -MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq -MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs -IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi -lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv -qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX -12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O -WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ -ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao -lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ -vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi -Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi -MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 -1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq -KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV -xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP -NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r -GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE -xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx -gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy -sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD -BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3 -============================================================================================================================= ------BEGIN CERTIFICATE----- -MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH -DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q -aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry -b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV -BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg -S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4 -MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl -IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF -n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl -IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft -dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl -cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO -Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1 -xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR -6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL -hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd -BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4 -N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT -y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh -LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M -dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI= ------END CERTIFICATE----- - -Buypass Class 2 CA 1 -==================== ------BEGIN CERTIFICATE----- -MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2 -MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh -c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M -cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83 -0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4 -0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R -uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P -AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV -1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt -7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2 -fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w -wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho ------END CERTIFICATE----- - -Buypass Class 3 CA 1 -==================== ------BEGIN CERTIFICATE----- -MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1 -MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh -c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx -ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0 -n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia -AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c -1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P -AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7 -pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA -EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5 -htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj -el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915 ------END CERTIFICATE----- - -EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 -========================================================================== ------BEGIN CERTIFICATE----- -MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg -QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe -Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p -ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt -IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by -X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b -gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr -eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ -TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy -Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn -uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI -qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm -ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0 -Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW -Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t -FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm -zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k -XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT -bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU -RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK -1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt -2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ -Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9 -AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT ------END CERTIFICATE----- - -certSIGN ROOT CA -================ ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD -VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa -Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE -CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I -JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH -rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 -ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD -0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 -AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B -Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB -AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 -SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 -x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt -vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz -TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD ------END CERTIFICATE----- - -CNNIC ROOT -========== ------BEGIN CERTIFICATE----- -MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE -ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw -OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD -o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz -VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT -VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or -czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK -y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC -wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S -lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5 -Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM -O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8 -BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2 -G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m -mxE= ------END CERTIFICATE----- - -ApplicationCA - Japanese Government -=================================== ------BEGIN CERTIFICATE----- -MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT -SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw -MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl -cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4 -fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN -wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE -jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu -nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU -WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV -BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD -vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs -o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g -/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD -io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW -dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL -rosot4LKGAfmt1t06SAZf7IbiVQ= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G3 -============================================= ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz -NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo -YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT -LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j -K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE -c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C -IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu -dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr -2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 -cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE -Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s -t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt ------END CERTIFICATE----- - -thawte Primary Root CA - G2 -=========================== ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC -VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu -IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg -Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV -MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG -b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt -IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS -LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 -8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU -mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN -G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K -rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- - -thawte Primary Root CA - G3 -=========================== ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w -ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD -VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG -A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At -P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC -+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY -7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW -vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ -KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK -A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC -8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm -er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G2 -============================================= ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 -OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl -b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG -BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc -KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ -EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m -ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 -npaqBA+K ------END CERTIFICATE----- - -VeriSign Universal Root Certification Authority -=============================================== ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj -1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP -MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 -9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I -AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR -tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G -CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O -a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 -Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx -Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx -P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P -wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 -mJO37M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G4 -============================================================ ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC -VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 -b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz -ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU -cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo -b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 -Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz -rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw -HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u -Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD -A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx -AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- - -NetLock Arany (Class Gold) F?tanstvny -============================================ ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G -A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 -dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB -cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx -MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO -ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv -biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 -c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu -0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw -/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk -H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw -fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 -neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW -qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta -YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna -NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu -dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -Staat der Nederlanden Root CA - G2 -================================== ------BEGIN CERTIFICATE----- -MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ -5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn -vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj -CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil -e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR -OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI -CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 -48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi -trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 -qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB -AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC -ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA -A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz -+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj -f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN -kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk -CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF -URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb -CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h -oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV -IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm -66+KAQ== ------END CERTIFICATE----- - -CA Disig -======== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK -QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw -MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz -bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm -GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD -Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo -hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt -ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w -gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P -AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz -aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff -ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa -BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t -WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3 -mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/ -CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K -ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA -4Z7CRneC9VkGjCFMhwnN5ag= ------END CERTIFICATE----- - -Juur-SK -======= ------BEGIN CERTIFICATE----- -MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA -c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw -DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG -SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy -aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf -TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC -+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw -UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa -Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF -MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD -HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh -AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA -cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr -AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw -cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE -FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G -A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo -ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL -abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678 -IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh -Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2 -yyqcjg== ------END CERTIFICATE----- - -Hongkong Post Root CA 1 -======================= ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT -DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx -NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n -IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 -ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr -auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh -qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY -V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV -HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i -h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio -l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei -IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps -T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT -c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== ------END CERTIFICATE----- - -SecureSign RootCA11 -=================== ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi -SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS -b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw -KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 -cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL -TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO -wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq -g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP -O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA -bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX -t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh -OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r -bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ -Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 -y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 -lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- - -ACEDICOM Root -============= ------BEGIN CERTIFICATE----- -MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD -T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4 -MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG -A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk -WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD -YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew -MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb -m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk -HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT -xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2 -3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9 -2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq -TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz -4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU -9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv -bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg -aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP -eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk -zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1 -ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI -KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq -nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE -I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp -MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o -tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA== ------END CERTIFICATE----- - -Verisign Class 1 Public Primary Certification Authority -======================================================= ------BEGIN CERTIFICATE----- -MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx -FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow -XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAx -IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0fzGVuDLDQ -VoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHiTkVWaR94AoDa3EeRKbs2 -yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFgVKTk8d6Pa -XCUDfGD67gmZPCcQcMgMCeazh88K4hiWNWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n -0a3hUKw8fGJLj7qE1xIVGx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZ -RjXZ+Hxb ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority -======================================================= ------BEGIN CERTIFICATE----- -MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx -FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow -XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz -IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 -f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol -hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky -CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX -bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/ -D/xwzoiQ ------END CERTIFICATE----- - -Microsec e-Szigno Root CA 2009 -============================== ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER -MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv -c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE -BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt -U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA -fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG -0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA -pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm -1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC -AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf -QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE -FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o -lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX -I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 -yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi -LXpUq3DDfSJlgnCW ------END CERTIFICATE----- - -E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi -=================================================== ------BEGIN CERTIFICATE----- -MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz -ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3 -MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0 -cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u -aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY -8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y -jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI -JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk -9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD -AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG -SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d -F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq -D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4 -Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq -fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX ------END CERTIFICATE----- - -GlobalSign Root CA - R3 -======================= ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt -iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ -0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 -rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl -OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 -xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 -lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 -EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E -bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 -YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r -kpeDMdmztcpHWD9f ------END CERTIFICATE----- - -TC TrustCenter Universal CA III -=============================== ------BEGIN CERTIFICATE----- -MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMC -REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy -IFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAe -Fw0wOTA5MDkwODE1MjdaFw0yOTEyMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNU -QyBUcnVzdENlbnRlciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0Ex -KDAmBgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF5+cvAqBNLaT6hdqbJYUt -QCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYvDIRlzg9uwliT6CwLOunBjvvya8o84pxO -juT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8vzArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+Eut -CHnNaYlAJ/Uqwa1D7KRTyGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1 -M4BDj5yjdipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBhMB8G -A1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ -BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI4jANBgkqhkiG9w0BAQUFAAOCAQEA -g8ev6n9NCjw5sWi+e22JLumzCecYV42FmhfzdkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+ -KGwWaODIl0YgoGhnYIg5IFHYaAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhK -BgePxLcHsU0GDeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV -CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPHLQNjO9Po5KIq -woIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg== ------END CERTIFICATE----- - -Autoridad de Certificacion Firmaprofesional CIF A62634068 -========================================================= ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA -BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw -QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB -NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD -Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P -B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY -7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH -ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI -plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX -MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX -LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK -bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU -vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud -EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH -DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA -bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx -ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx -51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk -R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP -T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f -Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl -osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR -crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR -saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD -KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi -6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - -Izenpe.com -========== ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG -EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz -MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu -QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ -03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK -ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU -+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC -PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT -OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK -F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK -0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ -0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB -leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID -AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ -SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG -NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l -Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga -kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q -hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs -g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 -aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 -nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC -ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo -Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z -WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- - -Chambers of Commerce Root - 2008 -================================ ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy -Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl -ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF -EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl -cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA -XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj -h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ -ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk -NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g -D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 -lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ -0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 -EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI -G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ -BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh -bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh -bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC -CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH -AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 -wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH -3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU -RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 -M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 -YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF -9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK -zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG -nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ ------END CERTIFICATE----- - -Global Chambersign Root - 2008 -============================== ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx -NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg -Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ -QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf -VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf -XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 -ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB -/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA -TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M -H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe -Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF -HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB -AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT -BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE -BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm -aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm -aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp -1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 -dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG -/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 -ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s -dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg -9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH -foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du -qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr -P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq -c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- - -Go Daddy Root Certificate Authority - G2 -======================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu -MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G -A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq -9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD -+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd -fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl -NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 -BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac -vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r -5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV -N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 ------END CERTIFICATE----- - -Starfield Root Certificate Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw -DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg -VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB -dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv -W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs -bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk -N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf -ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU -JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol -TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx -4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw -F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ -c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -Starfield Services Root Certificate Authority - G2 -================================================== ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl -IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT -dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 -h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa -hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP -LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB -rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG -SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP -E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy -xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza -YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 ------END CERTIFICATE----- - -AffirmTrust Commercial -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw -MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb -DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV -C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 -BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww -MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV -HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG -hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi -qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv -0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh -sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= ------END CERTIFICATE----- - -AffirmTrust Networking -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw -MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE -Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI -dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 -/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb -h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV -HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu -UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 -12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 -WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 -/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= ------END CERTIFICATE----- - -AffirmTrust Premium -=================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy -OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy -dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn -BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV -5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs -+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd -GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R -p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI -S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 -6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 -/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo -+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv -MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg -Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC -6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S -L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK -+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV -BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg -IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 -g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb -zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== ------END CERTIFICATE----- - -AffirmTrust Premium ECC -======================= ------BEGIN CERTIFICATE----- -MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV -BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx -MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U -cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ -N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW -BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK -BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X -57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM -eQ== ------END CERTIFICATE----- - -Certum Trusted Network CA -========================= ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK -ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy -MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU -ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC -l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J -J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 -fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 -cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB -Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw -DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj -jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 -mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj -Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -Certinomis - Autorit Racine -============================= ------BEGIN CERTIFICATE----- -MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK -Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg -LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG -A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw -JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa -wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly -Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw -2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N -jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q -c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC -lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb -xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g -530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna -4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ -KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x -WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva -R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40 -nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B -CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv -JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE -qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b -WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE -wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/ -vgt2Fl43N+bYdJeimUV5 ------END CERTIFICATE----- - -Root CA Generalitat Valenciana -============================== ------BEGIN CERTIFICATE----- -MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE -ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290 -IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3 -WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE -CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2 -F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B -ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ -D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte -JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB -AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n -dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB -ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl -AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA -YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy -AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA -aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt -AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA -YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu -AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA -OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0 -dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV -BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G -A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S -b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh -TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz -Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63 -NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH -iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt -+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM= ------END CERTIFICATE----- - -A-Trust-nQual-03 -================ ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE -Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy -a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R -dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw -RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0 -ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1 -c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA -zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n -yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE -SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4 -iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V -cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV -eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40 -ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr -sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd -JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS -mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6 -ahq97BvIxYSazQ== ------END CERTIFICATE----- - -TWCA Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ -VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG -EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB -IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx -QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC -oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP -4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r -y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG -9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC -mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW -QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY -T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny -Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -Security Communication RootCA2 -============================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC -SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy -aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ -+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R -3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV -spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K -EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 -QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB -CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj -u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk -3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q -tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 -mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -EC-ACC -====== ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE -BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w -ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD -VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE -CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT -BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 -MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt -SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl -Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh -cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK -w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT -ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 -HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a -E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw -0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD -VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 -Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l -dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ -lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa -Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe -l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 -E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D -5EI= ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2011 -======================================================= ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT -O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y -aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT -AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo -IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI -1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa -71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u -8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH -3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ -MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 -MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu -b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt -XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD -/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N -7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - -Actalis Authentication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM -BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE -AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky -MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz -IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ -wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa -by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 -zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f -YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 -oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l -EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 -hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 -EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 -jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY -iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI -WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 -JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx -K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ -Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC -4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo -2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz -lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem -OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 -vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -Trustis FPS Root CA -=================== ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG -EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 -IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV -BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ -RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk -H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa -cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt -o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA -AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd -BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c -GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC -yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P -8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV -l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl -iB6XzCGcKQENZetX2fNXlrtIzYE= ------END CERTIFICATE----- - -StartCom Certification Authority -================================ ------BEGIN CERTIFICATE----- -MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu -ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 -NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk -LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg -U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y -o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ -Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d -eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt -2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z -6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ -osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ -untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc -UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT -37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD -VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ -Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0 -dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu -c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv -bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0 -aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t -L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG -cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5 -fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm -N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN -Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T -tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX -e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA -2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs -HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE -JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib -D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8= ------END CERTIFICATE----- - -StartCom Certification Authority G2 -=================================== ------BEGIN CERTIFICATE----- -MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE -ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O -o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG -4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi -Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul -Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs -O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H -vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L -nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS -FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa -z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ -KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K -2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk -J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+ -JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG -/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc -nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld -blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc -l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm -7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm -obp573PYtlNXLfbQ4ddI ------END CERTIFICATE----- - -Buypass Class 2 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X -DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 -g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn -9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b -/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU -CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff -awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI -zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn -Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX -Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs -M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI -osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S -aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd -DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD -LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 -oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC -wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS -CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN -rJgWVqA= ------END CERTIFICATE----- - -Buypass Class 3 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X -DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH -sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR -5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh -7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ -ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH -2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV -/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ -RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA -Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq -j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G -uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG -Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 -ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 -KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz -6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug -UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe -eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi -Cp/HuZc= ------END CERTIFICATE----- - -TRKTRUST Elektronik Sertifika Hizmet Sa?lay?c?s? -====================================================== ------BEGIN CERTIFICATE----- -MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP -MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg -QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X -DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl -a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN -BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp -bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N -YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv -KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya -KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT -rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC -AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s -Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I -aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO -Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb -BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK -poRq0Tl9 ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 3 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx -MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK -9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU -NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF -iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W -0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr -AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb -fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT -ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h -P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== ------END CERTIFICATE----- - -EE Certification Centre Root CA -=============================== ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy -dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw -MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB -UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy -ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM -TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 -rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw -93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN -P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ -MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF -BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj -xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM -lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU -3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM -dcGWxZ0= +## +## ca-bundle.crt -- Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Thu Oct 18 19:05:59 2012 +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## http://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1 +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## + +# @(#) $RCSfile: certdata.txt,v $ $Revision: 1.86 $ $Date: 2012/10/18 16:26:52 $ + +GTE CyberTrust Global Root +========================== +-----BEGIN CERTIFICATE----- +MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg +Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG +A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz +MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL +Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0 +IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u +sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql +HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID +AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW +M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF +NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/ +-----END CERTIFICATE----- + +Thawte Server CA +================ +-----BEGIN CERTIFICATE----- +MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE +AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j +b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV +BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u +c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG +A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 +ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl +/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7 +1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J +GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ +GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= +-----END CERTIFICATE----- + +Thawte Premium Server CA +======================== +-----BEGIN CERTIFICATE----- +MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT +DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs +dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE +AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl +ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT +AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU +VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 +aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ +cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2 +aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh +Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/ +qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm +SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf +8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t +UCemDaYj+bvLpgcUQg== +-----END CERTIFICATE----- + +Equifax Secure CA +================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE +ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 +MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT +B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR +fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW +8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE +CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS +spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 +zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB +BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 +70+sB3c4 +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 1 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMTAeFw05ODEy +MTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJE +NySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2i +o74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFGp5fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +ACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lNQseSJqBcNJo4cvj9axY+IO6CizEq +kzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4 +RbyhkwS7hp86W0N6w4pl +-----END CERTIFICATE----- + +Digital Signature Trust Co. Global CA 3 +======================================= +-----BEGIN CERTIFICATE----- +MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJVUzEkMCIGA1UE +ChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQLEwhEU1RDQSBFMjAeFw05ODEy +MDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFs +IFNpZ25hdHVyZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUA +A4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGOD +VvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JS +xhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBo +BgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0 +dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw +IoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQY +MBaAFB6CTShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAM +BgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4GB +AEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHRxdf0CiUPPXiBng+xZ8SQTGPdXqfi +up/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1 +mPnHfxsb1gYgAlihw6ID +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 +f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol +hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtMEivPLCYA +TxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59Ah +WM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2Omuf +Tqj/ZA1k +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgd +k4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIq +WpDBucSmFc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9ZrbWB85a7FkCMM +XErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2uluIncrKTdcu1OofdPvAbT6shkdHvC +lUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68DzFc6PLZ +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h +cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp +Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1h +cnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNp +Z24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjx +nNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRC +wiNPStjwDqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEA +ATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/7aHmZuovCfTK +1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAXrXfMSTWqz9iP0b63GJZHc2pUIjRk +LbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnInjBJ7xUS0rg== +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G2 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz +dCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCO +FoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71 +lSk8UOg013gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQAB +MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT +1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7iF6YM40AIOw7n60RzKprxaZLvcRTD +Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9 +-----END CERTIFICATE----- + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +ValiCert Class 1 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy +MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi +GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm +DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG +lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX +icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP +Orf1LXLI +-----END CERTIFICATE----- + +ValiCert Class 2 VA +=================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC +CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf +ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ +SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV +UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8 +W9ViH0Pd +-----END CERTIFICATE----- + +RSA Root Certificate 1 +====================== +-----BEGIN CERTIFICATE----- +MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp +b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs +YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh +bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw +MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0 +d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg +UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0 +LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td +3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H +BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs +3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF +V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r +on+jjBXu +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/E +bRrsC+MO8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJ +rKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7PoBMAGrgnoeS+ +Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP26KbqxzcSXKMpHgLZ2x87tNcPVkeB +FQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +q2aN17O6x5q25lXQBfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N +y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3 +ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrspSCAaWihT37h +a88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/Pc +D98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g== +-----END CERTIFICATE----- + +Verisign Class 2 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJBgNVBAYTAlVT +MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29y +azE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ug +b25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJ +BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1 +c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y +aXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6 +tW8UvxDOJxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7 +C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQHgiBVrKtaaNS +0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjNqWm6o+sdDZykIKbBoMXRRkwXbdKs +Zj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0 +JhU8wI1NQ0kdvekhktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf +0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU +sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RIsH/7NiXaldDx +JBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//j +GHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Verisign Class 4 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS +tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM +8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW +Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX +Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt +mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm +fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd +RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG +UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== +-----END CERTIFICATE----- + +Entrust.net Secure Server CA +============================ +-----BEGIN CERTIFICATE----- +MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg +cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl +ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG +A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi +eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p +dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ +aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5 +gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw +ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw +CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l +dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF +bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu +dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw +NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow +HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA +BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN +Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9 +n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI= +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo3QwcjARBglghkgBhvhC +AQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdER +gL7YibkIozH5oSQJFrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B +AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo +oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQh7A6tcOdBTcS +o8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z +2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjX +OP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ== +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +Equifax Secure Global eBusiness CA +================================== +-----BEGIN CERTIFICATE----- +MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp +bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx +HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds +b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV +PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN +qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn +hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j +BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs +MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN +I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY +NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 1 +============================= +-----BEGIN CERTIFICATE----- +MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB +LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE +ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz +IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ +1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a +IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk +MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW +Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF +AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5 +lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+ +KpYrtWKmpj29f5JZzVoqgrI3eQ== +-----END CERTIFICATE----- + +Equifax Secure eBusiness CA 2 +============================= +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEXMBUGA1UE +ChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y +MB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT +DkVxdWlmYXggU2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCB +nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn +2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5 +BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAG +A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUx +JjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoG +A1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9e +uSBIplBqy/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMB +Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAAyGgq3oThr1 +jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia +78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUm +V+GRMOrN +-----END CERTIFICATE----- + +AddTrust Low-Value Services Root +================================ +-----BEGIN CERTIFICATE----- +MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU +cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw +CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO +ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 +54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr +oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 +Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui +GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w +HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD +AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT +RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw +HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt +ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph +iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY +eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr +mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj +ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +AddTrust Public Services Root +============================= +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU +cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ +BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l +dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu +nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i +d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG +Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw +HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G +A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G +A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 +JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL ++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao +GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 +Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H +EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= +-----END CERTIFICATE----- + +AddTrust Qualified Certificates Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU +cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx +CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ +IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx +64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 +KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o +L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR +wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU +MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE +BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y +azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG +GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X +dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze +RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB +iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +RSA Security 2048 v3 +==================== +-----BEGIN CERTIFICATE----- +MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK +ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy +MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb +BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 +Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb +WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH +KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP ++Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ +MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E +FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY +v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj +0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj +VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 +nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA +pKnXwiJPZ9d37CAFYd4= +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Global CA 2 +==================== +-----BEGIN CERTIFICATE----- +MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw +MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ +NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k +LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA +Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b +HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH +K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 +srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh +ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL +OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC +x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF +H4z1Ir+rzoPz4iIprn2DQKi6bA== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +UTN-USER First-Network Applications +=================================== +-----BEGIN CERTIFICATE----- +MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCBozELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzAp +BgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5 +WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5T +YWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho +dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBB +cHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZVhawGNFug +mliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4Cj +DUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXu +Ozr0hAReYFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwi +P8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7igEL66S/ozjIE +j3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8w +HQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9j +cmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G +CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y +IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6LzsQCv4AdRWOOTK +RIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4Qp +xFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAq +DbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjisH8SE +-----END CERTIFICATE----- + +America Online Root Certification Authority 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG +v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z +DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh +sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP +8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z +o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf +GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF +VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft +3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g +Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds +sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 +-----END CERTIFICATE----- + +America Online Root Certification Authority 2 +============================================= +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT +QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG +A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg +T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en +fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8 +f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO +qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN +RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0 +gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn +6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid +FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6 +Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj +B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op +aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY +T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p ++DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg +JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy +zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO +ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh +1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf +GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff +Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP +cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk= +-----END CERTIFICATE----- + +Visa eCommerce Root +=================== +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG +EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug +QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 +WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm +VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv +bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL +F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b +RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 +TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI +/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs +GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG +MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc +CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW +YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz +zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu +YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt +398znM/jra6O1I7mT1GvFpLgXPYHDw== +-----END CERTIFICATE----- + +Certum Root CA +============== +-----BEGIN CERTIFICATE----- +MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK +ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla +Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u +by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x +wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL +kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ +89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K +Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P +NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ +GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg +GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ +0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS +qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +Comodo Secure Services root +=========================== +-----BEGIN CERTIFICATE----- +MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw +MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu +Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi +BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP +9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc +rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC +oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V +p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E +FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w +gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj +YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm +aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm +4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj +Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL +DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw +pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H +RR3B7Hzs/Sk= +-----END CERTIFICATE----- + +Comodo Trusted Services root +============================ +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw +MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h +bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw +IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 +3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y +/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 +juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS +ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud +DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp +ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl +cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw +uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 +pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA +BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l +R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O +9y5Xt5hwXsjEeLBi +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx +ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 +XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk +lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB +lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy +lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt +66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn +wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh +D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy +BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie +J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud +DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU +a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv +Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 +UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm +VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK ++JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW +IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 +WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X +f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II +4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 +VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT +EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx +OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg +DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij +KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K +DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv +BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp +p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 +nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX +MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM +Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz +uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT +BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj +YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB +BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD +VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 +ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE +AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV +qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s +hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z +POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 +Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp +8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC +bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu +g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p +vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr +qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 1 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENBMB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQw +NjEwNDkxM1owOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue+H88 +7dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mXy47vPxVnqIJyY1MPQYx9 +EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNYwBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl +0fIdgrvGE+D+qnr9aTCU89JFhfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF645 +2F/NM8EcyonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW1ebZrgUa +HXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIR+IMi/ZT +iFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE9 +28Jj2VuXZfsSZ9gqXLar5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxV +yhbMp6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2nBBhjrZTOqMR +vq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2UvkVrCqIexVmiUefkl98HVrhq4uz2P +qYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2yIx4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9Z +IRlXvVWa +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA +============================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE +ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w +HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh +bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt +vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P +jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca +C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth +vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 +22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV +HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v +dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN +BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR +EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw +MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y +nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR +iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== +-----END CERTIFICATE----- + +TDC Internet Root CA +==================== +-----BEGIN CERTIFICATE----- +MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJESzEVMBMGA1UE +ChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUx +NjMzMTdaFw0yMTA0MDUxNzAzMTdaMEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJu +ZXQxHTAbBgNVBAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4NrXceO+YQwzho7+vvOi20j +xsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaqHF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvL +znWv3Hv6gXPU/Lq9QYjUdLP5Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc +5IogCSEWVmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8nmHj9eQY6 +otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwIDAQABo4IBJTCCASEwEQYJYIZI +AYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBYoFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMM +VERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JM +MTArBgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjALBgNVHQ8EBAMC +AQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAwHQYDVR0OBBYEFGxkAcf9hW2syNqe +UAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0G +CSqGSIb3DQEBBQUAA4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m +gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKsLtB9KOy282A4aW8+ +2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7TmHnaCB4Mb7j4Fifvwm899qNLPg7kbWzb +O0ESm70NRyN/PErQr8Cv9u8btRXE64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrU +Cbz0vGbMPVjQV0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l +-----END CERTIFICATE----- + +TDC OCES Root CA +================ +-----BEGIN CERTIFICATE----- +MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQGEwJESzEMMAoGA1UE +ChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0wMzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5 +MzBaMDExCzAJBgNVBAYTAkRLMQwwCgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSjhFuH +nEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8z3sM8W9Hpg1DTeLpHTk0 +zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJHhNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvV +iGjaXbXqzRowwYCDdlCqT9HU3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBde +dObaE+3pHx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTwtyv6e1mO +3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgewGA1UdIASB +5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5k +ay9yZXBvc2l0b3J5MIGdBggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBm +cmEgZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4xLiBDZXJ0aWZp +Y2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x +LjARBglghkgBhvhCAQEEBAMCAAcwgYEGA1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEM +MAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm +aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0QBCQwIoAPMjAwMzAy +MTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0jBBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647 ++RIwHQYDVR0OBBYEFGC1hexWZH4SGSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6 +NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBuo7E4 +A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjNDfZziChmPyQE+dF10yYsc +A+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8AqtFxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9 +AOoBmbgGglGBTvH1tJFUuSN6AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1 +AoLbrIyigfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2LqL19iUw== +-----END CERTIFICATE----- + +UTN DATACorp SGC Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ +BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa +MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w +HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy +dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys +raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo +wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA +9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv +33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud +DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 +BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD +LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 +DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft +Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 +I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx +EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP +DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI +-----END CERTIFICATE----- + +UTN USERFirst Email Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0 +BgNVBAMTLVVUTi1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAeFw05 +OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQx +FzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx +ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJz +dC1DbGllbnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxqmNVNNRm5pELlzkniii8efNIx +B8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqkkqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8 +om+rWV6lL8/K2m2qL+usobNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHG +TPNpsaguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZUOt4KpLoDd7Nl +yP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws6wIDAQABo4G5MIG2MAsGA1UdDwQE +AwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNV +HR8EUTBPME2gS6BJhkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll +bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH +AwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rkMPxTbyUkxsrt4jFcKw7u7mFVbwQ+zzne +xRtJlOTrIEy05p5QLnLZjfWqo7NK2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+ +5K/r9CYdFip/bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJRwarV +NZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf6QMbzPvprDHBr3wVdAKZ +w7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQjvLzxq4oW6fw8zYX/MMF08oDSlQ= +-----END CERTIFICATE----- + +UTN USERFirst Hardware Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd +BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx +OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 +eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz +ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI +wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd +tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 +i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf +Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw +gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF +lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF +UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF +BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM +//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW +XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 +lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn +iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 +nfhmqA== +-----END CERTIFICATE----- + +UTN USERFirst Object Root CA +============================ +-----BEGIN CERTIFICATE----- +MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UE +BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl +IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAb +BgNVBAMTFFVUTi1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAz +NlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx +HjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2Vy +dHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r5596Uj71VR +loTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQ +w5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vu +lBe3/IW+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7 +RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEAAaOBrzCBrDAL +BgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU2u1kdBScFDyr3ZmpvVsoTYs8 +ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmly +c3QtT2JqZWN0LmNybDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw +DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw +NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNO +PmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFE +qmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCG +hU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g= +-----END CERTIFICATE----- + +Camerfirma Chambers of Commerce Root +==================================== +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx +NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp +cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn +MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC +AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU +xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH +NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW +DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV +d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud +EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v +cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P +AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh +bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD +VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz +aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi +fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD +L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN +UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n +ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 +erfutGWaIZDgqtCYvDi1czyL+Nw= +-----END CERTIFICATE----- + +Camerfirma Global Chambersign Root +================================== +-----BEGIN CERTIFICATE----- +MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe +QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i +ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx +NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt +YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg +MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw +ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J +1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O +by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl +6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c +8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ +BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j +aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B +Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj +aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y +ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh +bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA +PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y +gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ +PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 +IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes +t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== +-----END CERTIFICATE----- + +NetLock Qualified (Class QA) Root +================================= +-----BEGIN CERTIFICATE----- +MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVn +eXpvaSAoQ2xhc3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0 +bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTER +MA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0 +LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0 +dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3DQEJARYP +aW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRV +CacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e +8ia6AFQer7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhb +m+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrqOU+L73Sa58XQ +0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0lmT+1fMptsK6ZmfoIYOcZwvK9UdPM +0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAQYwggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2 +YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh +biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQgZWxla3Ryb25p +a3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFz +YW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwg +YXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kg +ZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczov +L3d3dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2Nr +Lm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVzZSBvZiB0 +aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMg +YXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0 +IGluZm9AbmV0bG9jay5uZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3 +DQEBBQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQMznN +wNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+NFAwLvt/MpqNPfMg +W/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTc +R08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR +5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko +-----END CERTIFICATE----- + +NetLock Notary (Class A) Root +============================= +-----BEGIN CERTIFICATE----- +MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI +EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j +ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX +DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH +EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD +VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz +cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM +D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ +z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC +/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 +tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 +4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG +A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC +Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv +bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu +IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn +LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 +ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz +IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh +IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu +b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh +bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg +Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp +bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 +ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP +ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB +CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr +KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM +8CgHrTwXZoi1/baI +-----END CERTIFICATE----- + +NetLock Business (Class B) Root +=============================== +-----BEGIN CERTIFICATE----- +MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikg +VGFudXNpdHZhbnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQswCQYD +VQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRv +bnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sg +VXpsZXRpIChDbGFzcyBCKSBUYW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB +iQKBgQCx6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp2GQ5o+2S +o/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5sy96YhQJRhTKZPWLgLViqNhr +1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4ICnzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNV +HQ8BAf8EBAMCAAYwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZ +RUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRh +dGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQuIEEgaGl0 +ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRv +c2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg +YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJh +c2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBz +Oi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNA +bmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl +IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sgQ1BTIGF2 +YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBj +cHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM +43WIEJessDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w2y7jfLKR +stE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgBazMpUIaD8QFI +-----END CERTIFICATE----- + +NetLock Express (Class C) Root +============================== +-----BEGIN CERTIFICATE----- +MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMCSFUxETAPBgNVBAcT +CEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNV +BAsTEVRhbnVzaXR2YW55a2lhZG9rMTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBD +KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsxCzAJ +BgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 +dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9j +ayBFeHByZXNzeiAoQ2xhc3MgQykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOB +jQAwgYkCgYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qdQPzm6N3Z +W3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64gXadarfSNnU+sYYJ9m5tfk63 +euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEAAaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQw +DgYDVR0PAQH/BAQDAgAGMBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJN +RklHWUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxhbm9zIFN6b2xn +YWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBB +IGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQgYSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1i +aXp0b3NpdGFzYSB2ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0 +ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4gQXogZWxqYXJhcyBs +ZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0LiBJbnRlcm5ldCBob25sYXBqYW4gYSBo +dHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9y +emVzQG5ldGxvY2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2UgYW5k +IHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRvIHRoZSBOZXRMb2NrIENQ +UyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwg +YXQgY3BzQG5ldGxvY2submV0LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2 +xJZIwVzNmtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5NNwgMvOOW +gyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeAyNDYpQcCNJgEjTME1A== +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE +FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 +Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj +YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH +AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw +Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg +U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 +LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh +cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT +dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC +AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh +3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm +vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk +fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 +fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ +EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq +yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl +1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ +lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro +g14= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +Firmaprofesional Root CA +======================== +-----BEGIN CERTIFICATE----- +MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMCRVMxIjAgBgNVBAcT +GUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZp +Y2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FA +ZmlybWFwcm9mZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCBnTEL +MAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNVBAMT +OUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2 +ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8c9/Qit5V +j1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9ZpTQsHVQERc1ouKDAA6XPhUJH +lShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf +3H5idPayBQC6haD9HThuy1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8 +NeTvtjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMBAAGjgZ8wgZww +KgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lvbmFsLmNvbTASBgNVHRMBAf8ECDAG +AQH/AgEBMCsGA1UdEAQkMCKADzIwMDExMDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD +ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/GzR0iLjJcG1+p+o1wq +u00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvXwOaD7FnMP97/T2u3Z36mhoEyIwOdyPdf +wUpgpZKpsaSgYMN4h7Mi8yrrW6ntBas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm +7YjHX1BiAuiZdBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/ge9YG +VM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA= +-----END CERTIFICATE----- + +Wells Fargo Root CA +=================== +-----BEGIN CERTIFICATE----- +MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UEBhMCVVMxFDASBgNV +BAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDAxMDExMTY0MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoTC1dl +bGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEv +MC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mX +x3Oqfz1cQJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93OvRw6esP3 +E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjBqAr5dE8Hq6T54oN+J3N0Prj5 +OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4j +sNtlAHCEAQgAFG5Uhpq6zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGj +YTBfMA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAyMDAGCCsGAQUF +BwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRwb2xpY3kwDQYJKoZIhvcNAQEFBQAD +ggEBANIn3ZwKdyu7IvICtUpKkfnRLb7kuxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrv +m+0fazbuSCUlFLZWohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R +OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zkr8QA1dhYJPz1j+zx +x32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01QIroTmMatukgalHizqSQ33ZwmVxwQ023 +tqcZZE6St8WRPH9IFmV7Fv3L/PvZ1dZPIWU7Sn9Ho/s= +-----END CERTIFICATE----- + +Swisscom Root CA 1 +================== +-----BEGIN CERTIFICATE----- +MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG +EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy +dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 +MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln +aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM +MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF +NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe +AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC +b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn +7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN +cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp +WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 +haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY +MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw +HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j +BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 +MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn +jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ +MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H +VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl +vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl +OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 +1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq +nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy +x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW +NY6E0F/6MBr1mmz0DlP5OlvRHA== +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +Certplus Class 2 Primary CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE +BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN +OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy +dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR +5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ +Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO +YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e +e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME +CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ +YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t +L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD +P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R +TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ +7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW +//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +DST ACES CA X6 +============== +-----BEGIN CERTIFICATE----- +MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT +MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha +MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE +CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI +DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa +pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow +GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy +MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu +Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy +dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU +CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 +5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t +Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq +nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs +vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 +oKfN5XozNmr6mis= +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 1 +============================================== +-----BEGIN CERTIFICATE----- +MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP +MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0 +acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx +MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg +U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB +TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC +aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX +yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i +Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ +8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4 +W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME +BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46 +sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE +q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy +B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY +nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H +-----END CERTIFICATE----- + +TURKTRUST Certificate Services Provider Root 2 +============================================== +-----BEGIN CERTIFICATE----- +MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN +MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr +dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G +A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls +acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe +LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI +x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g +QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr +5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB +AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt +Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 +Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ +hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P +9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 +UrbnBEI= +-----END CERTIFICATE----- + +SwissSign Platinum CA - G2 +========================== +-----BEGIN CERTIFICATE----- +MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWduIFBsYXRpbnVtIENBIC0gRzIw +HhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMM +U3dpc3NTaWduIEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu +669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UF +eNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kne +WCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIo +j5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/6 +8++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34T +aNhxKFrYzt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjy +domyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3HBqi7Ri6Cr2D ++m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuWae5ogObnmLo2t/5u7Su9IPhlGdpV +CX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv +zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW +IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1 +Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3 +NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4 +U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8 +KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl +9x8DYSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1B +aYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyIIoK6q8QNs +OktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSY +Mdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAci +IfNAChs0B0QTwoRqjt8ZWr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g== +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw +EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN +MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp +c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq +t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C +jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg +vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF +ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR +AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend +jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO +peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR +7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi +GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 +OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov +L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm +5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr +44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf +Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m +Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp +mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk +vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf +KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br +NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj +viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT +BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X +DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 +aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG +9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 +N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm ++/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH +6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu +MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h +qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 +FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs +ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc +celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X +CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB +tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 +cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P +4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F +kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L +3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx +/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa +DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP +e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu +WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ +DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub +DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +WellsSecure Public Root Certificate Authority +============================================= +-----BEGIN CERTIFICATE----- +MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM +F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw +NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN +MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl +bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD +VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 +iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 +i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 +bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB +K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB +AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu +cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm +lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB +i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww +GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI +K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 +bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj +qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es +E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ +tylv2G0xffX8oRAHh84vWdw+WNs= +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +IGC/A +===== +-----BEGIN CERTIFICATE----- +MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD +VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE +Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy +MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI +EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT +STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2 +TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW +So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy +HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd +frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ +tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB +egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC +iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK +q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q +MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg +Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI +lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF +0mBWWg== +-----END CERTIFICATE----- + +Security Communication EV RootCA1 +================================= +-----BEGIN CERTIFICATE----- +MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE +BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl +Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO +/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX +WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z +ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 +bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK +9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG +SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm +iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG +Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW +mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW +T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GA CA +=============================== +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE +BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG +A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH +bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD +VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw +IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 +IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 +Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg +Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD +d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ +/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R +LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm +MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 ++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa +hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY +okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= +-----END CERTIFICATE----- + +S-TRUST Authentication and Encryption Root CA 2005 PN +===================================================== +-----BEGIN CERTIFICATE----- +MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCBrjELMAkGA1UE +BhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcpMRIwEAYDVQQHEwlTdHV0dGdh +cnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVT +LVRSVVNUIEF1dGhlbnRpY2F0aW9uIGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0w +NTA2MjIwMDAwMDBaFw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFk +ZW4tV3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMgRGV1dHNj +aGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJVU1QgQXV0aGVudGljYXRp +b24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBOMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob +4QSwI7+Vio5bG0F/WsPoTUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXL +g3KSwlOyggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1Xgqf +eN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteFhy+S8dF2g08LOlk3 +KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm7QIDAQABo4GSMIGPMBIGA1UdEwEB +/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJv +bmxpbmUxLTIwNDgtNTAdBgNVHQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAU +D8oeXHngovMpttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD +pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFoLtU96G7m1R08 +P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersFiXOMy6ZNwPv2AtawB6MDwidA +nwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0yh9WUUpY6RsZxlj33mA6ykaqP2vROJAA5Veit +F7nTNCtKqUDMFypVZUF0Qn71wK/Ik63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8b +Hz2eBIPdltkdOpQ= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE +BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL +EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0 +MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz +dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT +GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG +d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N +oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc +QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ +PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb +MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG +IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD +VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3 +LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A +dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn +AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA +4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg +AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA +egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6 +Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO +PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv +c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h +cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw +IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT +WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV +MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER +MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp +Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal +HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT +nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE +aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a +86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK +yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB +S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +AC Ra\xC3\xADz Certic\xC3\xA1mara S.A. +====================================== +-----BEGIN CERTIFICATE----- +MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsxCzAJBgNVBAYT +AkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRpZmljYWNpw7NuIERpZ2l0YWwg +LSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwaQUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4w +HhcNMDYxMTI3MjA0NjI5WhcNMzAwNDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+ +U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJh +IFMuQS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeGqentLhM0R7LQcNzJPNCN +yu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzLfDe3fezTf3MZsGqy2IiKLUV0qPezuMDU +2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQY5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU3 +4ojC2I+GdV75LaeHM/J4Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP +2yYe68yQ54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+bMMCm +8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48jilSH5L887uvDdUhf +HjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++EjYfDIJss2yKHzMI+ko6Kh3VOz3vCa +Mh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/ztA/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK +5lw1omdMEWux+IBkAC1vImHFrEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1b +czwmPS9KvqfJpxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE +AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCBlTCBkgYEVR0g +ADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFyYS5jb20vZHBjLzBaBggrBgEF +BQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2Ug +cHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEf +AygPU3zmpFmps4p6xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuX +EpBcunvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/Jre7Ir5v +/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dpezy4ydV/NgIlqmjCMRW3 +MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42gzmRkBDI8ck1fj+404HGIGQatlDCIaR4 +3NAvO2STdPCWkPHv+wlaNECW8DYSwaN0jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wk +eZBWN7PGKX6jD/EpOe9+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f +/RWmnkJDW2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/RL5h +RqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35rMDOhYil/SrnhLecU +Iw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxkBYn8eNZcLCZDqQ== +-----END CERTIFICATE----- + +TC TrustCenter Class 2 CA II +============================ +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy +IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw +MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 +c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE +AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw +IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2 +xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ +Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u +SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB +7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 +Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU +cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i +SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G +dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ +KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj +TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP +JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk +vQ== +-----END CERTIFICATE----- + +TC TrustCenter Class 3 CA II +============================ +-----BEGIN CERTIFICATE----- +MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy +IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw +MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1 +c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE +AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W +yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo +6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ +uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk +2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB +7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90 +Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU +cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i +SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u +TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE +O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8 +yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9 +IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal +092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc +5A== +-----END CERTIFICATE----- + +TC TrustCenter Universal CA I +============================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy +IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN +MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg +VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw +JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC +qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv +xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw +ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O +gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j +BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG +1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy +vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3 +ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT +ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a +7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY +-----END CERTIFICATE----- + +Deutsche Telekom Root CA 2 +========================== +-----BEGIN CERTIFICATE----- +MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT +RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG +A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 +MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G +A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS +b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 +bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI +KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY +AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK +Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV +jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV +HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr +E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy +zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 +rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G +dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU +Cm26OWMohpLzGITY+9HPBVZkVw== +-----END CERTIFICATE----- + +ComSign CA +========== +-----BEGIN CERTIFICATE----- +MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0MRMwEQYDVQQD +EwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTMy +MThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMTCkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNp +Z24xCzAJBgNVBAYTAklMMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49q +ROR+WCf4C9DklBKK8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTy +P2Q298CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb2CEJKHxN +GGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxCejVb7Us6eva1jsz/D3zk +YDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7KpiXd3DTKaCQeQzC6zJMw9kglcq/QytNuEM +rkvF7zuZ2SOzW120V+x0cAwqTwIDAQABo4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAy +oDCgLoYsaHR0cDovL2ZlZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0P +AQH/BAQDAgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRLAZs+ +VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWdfoPPbrxHbvUanlR2 +QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0McXS6hMTXcpuEfDhOZAYnKuGntewI +mbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb +/627HOkthIDYIb6FUtnUdLlphbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VG +zT2ouvDzuFYkRes3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U +AGegcQCCSA== +-----END CERTIFICATE----- + +ComSign Secured CA +================== +-----BEGIN CERTIFICATE----- +MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE +AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w +NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD +QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs +49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH +7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB +kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1 +9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw +AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t +U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA +j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC +AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a +BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp +FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP +51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz +OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw== +-----END CERTIFICATE----- + +Cybertrust Global Root +====================== +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li +ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 +MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD +ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA ++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW +0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL +AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin +89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT +8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 +MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G +A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO +lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi +5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 +hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T +X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3 +============================================================================================================================= +-----BEGIN CERTIFICATE----- +MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH +DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q +aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry +b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV +BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg +S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4 +MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl +IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF +n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl +IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft +dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl +cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO +Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1 +xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR +6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL +hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd +BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4 +N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT +y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh +LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M +dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI= +-----END CERTIFICATE----- + +Buypass Class 2 CA 1 +==================== +-----BEGIN CERTIFICATE----- +MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2 +MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh +c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M +cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83 +0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4 +0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R +uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P +AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV +1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt +7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2 +fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w +wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho +-----END CERTIFICATE----- + +Buypass Class 3 CA 1 +==================== +-----BEGIN CERTIFICATE----- +MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1 +MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh +c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx +ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0 +n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia +AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c +1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P +AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7 +pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA +EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5 +htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj +el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915 +-----END CERTIFICATE----- + +EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 +========================================================================== +-----BEGIN CERTIFICATE----- +MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg +QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe +Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p +ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt +IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by +X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b +gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr +eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ +TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy +Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn +uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI +qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm +ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0 +Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW +Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t +FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm +zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k +XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT +bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU +RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK +1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt +2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ +Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9 +AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +CNNIC ROOT +========== +-----BEGIN CERTIFICATE----- +MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE +ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw +OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD +o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz +VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT +VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or +czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK +y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC +wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S +lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5 +Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM +O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8 +BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2 +G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m +mxE= +-----END CERTIFICATE----- + +ApplicationCA - Japanese Government +=================================== +-----BEGIN CERTIFICATE----- +MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT +SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw +MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl +cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4 +fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN +wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE +jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu +nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU +WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV +BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD +vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs +o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g +/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD +io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW +dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL +rosot4LKGAfmt1t06SAZf7IbiVQ= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G3 +============================================= +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 +IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz +NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo +YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT +LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j +K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE +c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C +IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu +dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr +2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 +cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE +Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s +t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +thawte Primary Root CA - G2 +=========================== +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC +VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu +IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg +Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV +MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG +b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt +IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS +LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 +8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU +mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN +G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K +rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +thawte Primary Root CA - G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w +ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD +VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG +A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At +P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC ++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY +7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW +vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ +KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK +A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC +8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm +er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G2 +============================================= +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu +Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 +OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl +b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG +BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc +KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ +EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m +ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 +npaqBA+K +-----END CERTIFICATE----- + +VeriSign Universal Root Certification Authority +=============================================== +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj +1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP +MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 +9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I +AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR +tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G +CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O +a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 +Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx +Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx +P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P +wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 +mJO37M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G4 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC +VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 +b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz +ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU +cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo +b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 +Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz +rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw +HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u +Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD +A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx +AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) F?tanstvny +============================================ +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G2 +================================== +-----BEGIN CERTIFICATE----- +MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ +5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn +vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj +CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil +e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR +OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI +CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 +48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi +trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 +qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB +AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC +ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA +A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz ++51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj +f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN +kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk +CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF +URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb +CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h +oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV +IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm +66+KAQ== +-----END CERTIFICATE----- + +CA Disig +======== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK +QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw +MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz +bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm +GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD +Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo +hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt +ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w +gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P +AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz +aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff +ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa +BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t +WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3 +mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/ +CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K +ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA +4Z7CRneC9VkGjCFMhwnN5ag= +-----END CERTIFICATE----- + +Juur-SK +======= +-----BEGIN CERTIFICATE----- +MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA +c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw +DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG +SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy +aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf +TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC ++Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw +UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa +Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF +MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD +HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh +AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA +cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr +AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw +cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE +FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G +A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo +ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL +abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678 +IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh +Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2 +yyqcjg== +-----END CERTIFICATE----- + +Hongkong Post Root CA 1 +======================= +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT +DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx +NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n +IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 +ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr +auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh +qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY +V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV +HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i +h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio +l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei +IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps +T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT +c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +ACEDICOM Root +============= +-----BEGIN CERTIFICATE----- +MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD +T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4 +MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG +A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk +WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD +YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew +MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb +m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk +HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT +xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2 +3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9 +2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq +TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz +4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU +9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv +bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg +aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP +eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk +zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1 +ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI +KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq +nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE +I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp +MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o +tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA== +-----END CERTIFICATE----- + +Verisign Class 1 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAx +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0fzGVuDLDQ +VoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHiTkVWaR94AoDa3EeRKbs2 +yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFgVKTk8d6Pa +XCUDfGD67gmZPCcQcMgMCeazh88K4hiWNWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n +0a3hUKw8fGJLj7qE1xIVGx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZ +RjXZ+Hxb +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority +======================================================= +-----BEGIN CERTIFICATE----- +MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow +XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz +IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA +A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94 +f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol +hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky +CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX +bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/ +D/xwzoiQ +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi +=================================================== +-----BEGIN CERTIFICATE----- +MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG +EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz +ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3 +MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0 +cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u +aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY +8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y +jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI +JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk +9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD +AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG +SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d +F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq +D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4 +Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq +fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +TC TrustCenter Universal CA III +=============================== +-----BEGIN CERTIFICATE----- +MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMC +REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy +IFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAe +Fw0wOTA5MDkwODE1MjdaFw0yOTEyMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNU +QyBUcnVzdENlbnRlciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0Ex +KDAmBgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF5+cvAqBNLaT6hdqbJYUt +QCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYvDIRlzg9uwliT6CwLOunBjvvya8o84pxO +juT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8vzArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+Eut +CHnNaYlAJ/Uqwa1D7KRTyGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1 +M4BDj5yjdipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBhMB8G +A1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI4jANBgkqhkiG9w0BAQUFAAOCAQEA +g8ev6n9NCjw5sWi+e22JLumzCecYV42FmhfzdkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+ +KGwWaODIl0YgoGhnYIg5IFHYaAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhK +BgePxLcHsU0GDeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV +CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPHLQNjO9Po5KIq +woIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg== +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud +EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH +DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA +bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx +ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx +51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk +R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP +T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f +Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl +osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR +crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR +saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD +KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi +6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG +EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz +MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu +QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ +03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK +ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU ++zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC +PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT +OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK +F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK +0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ +0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB +leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID +AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ +SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG +NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx +MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l +Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga +kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q +hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs +g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 +aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 +nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC +ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo +Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z +WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== +-----END CERTIFICATE----- + +Chambers of Commerce Root - 2008 +================================ +-----BEGIN CERTIFICATE----- +MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy +Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl +ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF +EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl +cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA +XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj +h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ +ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk +NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g +D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 +lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ +0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj +ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 +EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI +G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ +BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh +bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh +bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC +CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH +AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 +wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH +3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU +RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 +M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 +YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF +9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK +zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG +nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg +OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ +-----END CERTIFICATE----- + +Global Chambersign Root - 2008 +============================== +-----BEGIN CERTIFICATE----- +MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx +NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg +Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ +QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD +aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf +VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf +XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 +ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB +/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA +TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M +H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe +Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF +HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh +wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB +AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT +BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE +BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm +aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm +aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp +1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 +dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG +/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 +ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s +dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg +9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH +foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du +qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr +P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq +c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +Certinomis - Autorit Racine +============================= +-----BEGIN CERTIFICATE----- +MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK +Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg +LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG +A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw +JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa +wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly +Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw +2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N +jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q +c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC +lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb +xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g +530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna +4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ +KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x +WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva +R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40 +nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B +CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv +JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE +qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b +WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE +wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/ +vgt2Fl43N+bYdJeimUV5 +-----END CERTIFICATE----- + +Root CA Generalitat Valenciana +============================== +-----BEGIN CERTIFICATE----- +MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE +ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290 +IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3 +WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE +CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2 +F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B +ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ +D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte +JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB +AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n +dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB +ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl +AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA +YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy +AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA +aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt +AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA +YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu +AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA +OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0 +dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV +BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G +A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S +b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh +TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz +Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63 +NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH +iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt ++GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM= +-----END CERTIFICATE----- + +A-Trust-nQual-03 +================ +-----BEGIN CERTIFICATE----- +MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE +Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy +a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R +dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw +RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0 +ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1 +c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA +zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n +yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE +SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4 +iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V +cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV +eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40 +ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr +sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd +JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS +mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6 +ahq97BvIxYSazQ== +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +EC-ACC +====== +-----BEGIN CERTIFICATE----- +MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE +BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w +ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD +VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE +CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT +BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 +MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt +SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl +Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh +cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK +w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT +ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 +HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a +E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw +0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD +VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 +Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l +dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ +lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa +Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe +l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 +E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D +5EI= +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2011 +======================================================= +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT +O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y +aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT +AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo +IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI +1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa +71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u +8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH +3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ +MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 +MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu +b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt +XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD +/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N +7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM +BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE +AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky +MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz +IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ +wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa +by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 +zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f +YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 +oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l +EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 +hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 +EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 +jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY +iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI +WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 +JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx +K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ +Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC +4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo +2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz +lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem +OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 +vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +Trustis FPS Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 +IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV +BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ +RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk +H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa +cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt +o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA +AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd +BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c +GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC +yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P +8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV +l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl +iB6XzCGcKQENZetX2fNXlrtIzYE= +-----END CERTIFICATE----- + +StartCom Certification Authority +================================ +-----BEGIN CERTIFICATE----- +MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu +ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 +NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk +LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg +U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y +o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ +Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d +eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt +2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z +6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ +osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ +untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc +UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT +37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD +VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ +Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0 +dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu +c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv +bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0 +aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t +L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG +cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5 +fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm +N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN +Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T +tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX +e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA +2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs +HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE +JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib +D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8= +-----END CERTIFICATE----- + +StartCom Certification Authority G2 +=================================== +-----BEGIN CERTIFICATE----- +MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN +U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE +ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O +o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG +4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi +Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul +Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs +O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H +vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L +nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS +FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa +z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ +KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K +2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk +J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+ +JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG +/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc +nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld +blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc +l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm +7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm +obp573PYtlNXLfbQ4ddI +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +TRKTRUST Elektronik Sertifika Hizmet Sa?lay?c?s? +====================================================== +-----BEGIN CERTIFICATE----- +MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP +MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg +QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X +DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl +a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN +BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp +bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N +YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv +KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya +KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT +rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC +AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s +Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I +aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO +Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb +BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK +poRq0Tl9 +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +EE Certification Centre Root CA +=============================== +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG +EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy +dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw +MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB +UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy +ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM +TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 +rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw +93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN +P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ +MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF +BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj +xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM +lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u +uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU +3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM +dcGWxZ0= -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Session/SessionStore b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Session/SessionStore index 4c08da2..96c95d5 100644 --- a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Session/SessionStore +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Session/SessionStore @@ -1,10 +1,10 @@ -AlipayTradeService.php ---------- 所有接口中使用的方法。 - - -AlipayTradeService.php 文件内方法说明 - -1、SDK请求方法 -aopclientRequestExecute($request,$ispage=false) -$request:对应接口请求的对象 -$ispage:是否为页面跳转请求(手机网站支付必须为页面跳转,查询,退款则可以无需页面跳转) - -2、手机网站支付接口的方法 -wapPay($builder,$return_url,$notify_url) -$builder:业务参数,使用buildmodel中的对象生成。 -$return_url:同步跳转地址 -$notify_url:异步通知地址 - -3、手机网站查询接口 -Query($builder) -$builder:业务参数,使用buildmodel中的对象生成。 - -4、手机网站退款接口 -Refund($builder) -$builder:业务参数,使用buildmodel中的对象生成。 - -5、手机网站关闭接口 -Close($builder) -$builder:业务参数,使用buildmodel中的对象生成。 - -6、手机网站退款查询接口 -refundQuery($builder) -$builder:业务参数,使用buildmodel中的对象生成。 - -7、手机网站账单下载接口 -downloadurlQuery($builder) -$builder:业务参数,使用buildmodel中的对象生成。 - -8、支付宝返回的信息验签 -check($arr) -$arr:收到的支付宝返回信息数组 - -9、打印日志 -writeLog($text) +一、免责申明: +此DEMO仅供参考,实际开发中需要结合具体业务场景修改使用。 + +二、demo的运行环境:适用于php5.5以上的开发环境 + +代码简要说明 +wappay文件夹下 + buildermodel ---------- 对应的接口的bizcontent业务参数进行封装处理,且做了json转换,比字符串传参更佳方便。 + service->AlipayTradeService.php ---------- 所有接口中使用的方法。 + + +AlipayTradeService.php 文件内方法说明 + +1、SDK请求方法 +aopclientRequestExecute($request,$ispage=false) +$request:对应接口请求的对象 +$ispage:是否为页面跳转请求(手机网站支付必须为页面跳转,查询,退款则可以无需页面跳转) + +2、手机网站支付接口的方法 +wapPay($builder,$return_url,$notify_url) +$builder:业务参数,使用buildmodel中的对象生成。 +$return_url:同步跳转地址 +$notify_url:异步通知地址 + +3、手机网站查询接口 +Query($builder) +$builder:业务参数,使用buildmodel中的对象生成。 + +4、手机网站退款接口 +Refund($builder) +$builder:业务参数,使用buildmodel中的对象生成。 + +5、手机网站关闭接口 +Close($builder) +$builder:业务参数,使用buildmodel中的对象生成。 + +6、手机网站退款查询接口 +refundQuery($builder) +$builder:业务参数,使用buildmodel中的对象生成。 + +7、手机网站账单下载接口 +downloadurlQuery($builder) +$builder:业务参数,使用buildmodel中的对象生成。 + +8、支付宝返回的信息验签 +check($arr) +$arr:收到的支付宝返回信息数组 + +9、打印日志 +writeLog($text) $text:要打印的字符串 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/ipay/.project b/codes/agent/game-docker/api/payment/ipay/.project index cdd8e1e..068cdef 100644 --- a/codes/agent/game-docker/api/payment/ipay/.project +++ b/codes/agent/game-docker/api/payment/ipay/.project @@ -1,17 +1,17 @@ - - - IapppayCpSyncForPHP_20150901 - - - - - - net.sourceforge.phpeclipse.parserbuilder - - - - - - net.sourceforge.phpeclipse.phpnature - - + + + IapppayCpSyncForPHP_20150901 + + + + + + net.sourceforge.phpeclipse.parserbuilder + + + + + + net.sourceforge.phpeclipse.phpnature + + diff --git a/codes/agent/game-docker/api/payment/ipay/.settings/org.eclipse.core.resources.prefs b/codes/agent/game-docker/api/payment/ipay/.settings/org.eclipse.core.resources.prefs index 99f26c0..4824b80 100644 --- a/codes/agent/game-docker/api/payment/ipay/.settings/org.eclipse.core.resources.prefs +++ b/codes/agent/game-docker/api/payment/ipay/.settings/org.eclipse.core.resources.prefs @@ -1,2 +1,2 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/ReadMe.txt b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/ReadMe.txt index 89b222b..5c3e449 100644 --- a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/ReadMe.txt +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/ReadMe.txt @@ -1,222 +1,222 @@ - - qr - ȫ֧˵ - ts - ӿƣȫ֧ͳһӿ - 汾1.1 - ԣPHP - Ȩȫ - ߣȫ - ϵʽWZ - - - - - ļṹ - - - - gbk.funcļ - - encryptParams.php Կţcvn2룬cvn2Чڴ - - PinBlock.php - - httpClient.php̨ͨŴ - - SDKConfig.php Ϣ - - PublicEncrypte.php /ǩ - - common.php ķ - - secureUtil.phpǩ/ǩ - - log.class.php ־ӡ - - - - - -ע - - openssl֤ʹ еphp_openssl.dll,ssleay32.dll,libeay32.dll3ļwindows/system32/ļ£Apache - - - -Ҫļ˵ - - --------------------------------------------------------------------- - - -SDKConfig.php - - ǩ֤· -const SDK_SIGN_CERT_PATH = ''; - - ǩ֤ - const SDK_SIGN_CERT_PWD = ''; - - ǩ֤ -const SDK_VERIFY_CERT_PATH = ''; - -֤ -const SDK_ENCRYPT_CERT_PATH = ''; - - ǩ֤· -const SDK_VERIFY_CERT_DIR = ''; - - ǰַ̨ -const SDK_FRONT_TRANS_URL = ''; - - ̨ؽַ -const SDK_BACK_TRANS_URL = ''; - - -const SDK_BATCH_TRANS_URL = ''; - -״̬ѯ -const SDK_BATCH_QUERY_URL = ''; - - -ʲѯַ -const SDK_SINGLE_QUERY_URL = ''; - -ļַ -const SDK_FILE_QUERY_URL = ''; - - ǰַ̨֪ͨ -const SDK_FRONT_NOTIFY_URL = ''; - -ַ̨֪ͨ -const SDK_BACK_NOTIFY_URL = ''; - -ļĿ¼ -const SDK_FILE_DOWN_PATH = ''; - -־ Ŀ¼ -const SDK_LOG_FILE_PATH = ''; - -־ -const SDK_LOG_LEVEL = ''; - -п׵ַ -const SDK_Card_Request_Url = ''; - -App׵ַ -const SDK_App_Request_Url = ''; - - - -common.php - -function coverParamsToString($param) -ܣ תΪ崮 - - -function coverStringToArray($val ) -ܣַתΪ - -function deal_params(&$params) -ܣر ͻϢ , ΪGBK תΪutf-8 - - -function deflate_file(&$params) -ܣѹļ - -function deal_file($params) -ܣļ - -function create_html($params, $action) -ܣԶύ - - - - - -HttpClient.php - - -function sendHttpRequest($params, $url) -ܣģԶHTTPPOSTʽ첢ȡĴ - - -function getRequestParamString($params) -ܣװ - - - - -encryptParams.php - -function encrypt_params(&$params) -ܣԿ | cvn2 | | cvn2Чڽд - - - - -PinBlock.php -function Pin2PinBlock( &$sPin ) -ܣתpin ֤ת - - - - - -PublicEncrypte.php - -function EncryptedPin$sPin, $sCardNo ,$sPubKeyURL - -ܣ֤Id֤뷽 - - - - -secureUtil.php - -function sign(&$params) - -ܣǩ - -function verify($params) - -ܣǩ - -function getPulbicKeyByCertId($certId) - -ܣ֤ID֤鷽 - -function getCertId($cert_path) - -ܣȡ֤ID - -function getCertIdByCerPath($cert_path) - -ܣȡ֤ͷ - -function getPublicKey($cert_path) - -ܣȡ֤鹫Կ -ǩ - -function getPrivateKey($cert_path) - -ܣ(ǩ)֤˽Կ - -function encryptPan($pan) - -ܣܿŷ - -function encryptPin($pan, $pwd) - -ܣpinܷ - -function encryptCvn2($cvn2) - -ܣcvn2ܷ - -function encryptDate($certDate) - -ܣЧڼܷ - - + + qr + ȫ֧˵ + ts + ӿƣȫ֧ͳһӿ + 汾1.1 + ԣPHP + Ȩȫ + ߣȫ + ϵʽWZ + + + + + ļṹ + + + + gbk.funcļ + + encryptParams.php Կţcvn2룬cvn2Чڴ + + PinBlock.php + + httpClient.php̨ͨŴ + + SDKConfig.php Ϣ + + PublicEncrypte.php /ǩ + + common.php ķ + + secureUtil.phpǩ/ǩ + + log.class.php ־ӡ + + + + + +ע + + openssl֤ʹ еphp_openssl.dll,ssleay32.dll,libeay32.dll3ļwindows/system32/ļ£Apache + + + +Ҫļ˵ + + +-------------------------------------------------------------------- + + +SDKConfig.php + + ǩ֤· +const SDK_SIGN_CERT_PATH = ''; + + ǩ֤ + const SDK_SIGN_CERT_PWD = ''; + + ǩ֤ +const SDK_VERIFY_CERT_PATH = ''; + +֤ +const SDK_ENCRYPT_CERT_PATH = ''; + + ǩ֤· +const SDK_VERIFY_CERT_DIR = ''; + + ǰַ̨ +const SDK_FRONT_TRANS_URL = ''; + + ̨ؽַ +const SDK_BACK_TRANS_URL = ''; + + +const SDK_BATCH_TRANS_URL = ''; + +״̬ѯ +const SDK_BATCH_QUERY_URL = ''; + + +ʲѯַ +const SDK_SINGLE_QUERY_URL = ''; + +ļַ +const SDK_FILE_QUERY_URL = ''; + + ǰַ̨֪ͨ +const SDK_FRONT_NOTIFY_URL = ''; + +ַ̨֪ͨ +const SDK_BACK_NOTIFY_URL = ''; + +ļĿ¼ +const SDK_FILE_DOWN_PATH = ''; + +־ Ŀ¼ +const SDK_LOG_FILE_PATH = ''; + +־ +const SDK_LOG_LEVEL = ''; + +п׵ַ +const SDK_Card_Request_Url = ''; + +App׵ַ +const SDK_App_Request_Url = ''; + + + +common.php + +function coverParamsToString($param) +ܣ תΪ崮 + + +function coverStringToArray($val ) +ܣַתΪ + +function deal_params(&$params) +ܣر ͻϢ , ΪGBK תΪutf-8 + + +function deflate_file(&$params) +ܣѹļ + +function deal_file($params) +ܣļ + +function create_html($params, $action) +ܣԶύ + + + + + +HttpClient.php + + +function sendHttpRequest($params, $url) +ܣģԶHTTPPOSTʽ첢ȡĴ + + +function getRequestParamString($params) +ܣװ + + + + +encryptParams.php + +function encrypt_params(&$params) +ܣԿ | cvn2 | | cvn2Чڽд + + + + +PinBlock.php +function Pin2PinBlock( &$sPin ) +ܣתpin ֤ת + + + + + +PublicEncrypte.php + +function EncryptedPin$sPin, $sCardNo ,$sPubKeyURL + +ܣ֤Id֤뷽 + + + + +secureUtil.php + +function sign(&$params) + +ܣǩ + +function verify($params) + +ܣǩ + +function getPulbicKeyByCertId($certId) + +ܣ֤ID֤鷽 + +function getCertId($cert_path) + +ܣȡ֤ID + +function getCertIdByCerPath($cert_path) + +ܣȡ֤ͷ + +function getPublicKey($cert_path) + +ܣȡ֤鹫Կ -ǩ + +function getPrivateKey($cert_path) + +ܣ(ǩ)֤˽Կ + +function encryptPan($pan) + +ܣܿŷ + +function encryptPin($pan, $pwd) + +ܣpinܷ + +function encryptCvn2($cvn2) + +ܣcvn2ܷ + +function encryptDate($certDate) + +ܣЧڼܷ + + diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_cert.pem index 38ec637..4bb5334 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYjCCA8ugAwIBAgIDEOVzMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDIwMzA0NDAwN1oX -DTI2MDEzMTA0NDAwN1owgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5aSp55ub572R57uc5pyJ6ZmQ5YWs5Y+4 -MREwDwYDVQQEEwgxMDY4NjEyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAOw+QLt0FlpT6IxEKR30JSyVIYy9ShS9KMfjNsLOUZLQyNmZhov+E6PdcUTs -6YwylWEOfmFKqIiVZG2zd2xlq7qEu8aD9Fk/xxO7RRJP4vnkmUyNLaK5d+Kxc/77 -q8HWZWUyDuCoxEsRuEVez8fkMBbtyqzlysf0V4hrUMdxreIJDqcQbRTCfi4j7D2h -WSb6/xC5xxFC7xr1TdBatCeLaYWiYuMnlUrdC3sXvE+qhFsjxDqM8n+iOVByIQ4R -lOtV8wEKWIRMwgK5WSd4Fetdl+vsRwkdEZwTKli8MDqBTCqJnzYPosXuE0pY8xr6 -nBHkq6mrFskyhso+BLb6svHNfHMCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ -YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud -DgQWBBQ8viOAiSWjFdhsowaiKzIiAloafzCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 -FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 -YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK -BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ -bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV -HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQCPgdGBRrVE5Fet -w/Mi8NMMgOcxZGs/xHZKtw/kHaZqWfmEGa4W5+X3juVG6TrYuek+2RwGE6qfLhAG -HtiESs2Pvws1WbUSaFeyjWFzgbcyjMlj/3DS+J2Hq4voRSBruxJ0DaunwTzlwtIn -MaKfGusX4QlLZIa3Ga+37bHKp29HEA== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYjCCA8ugAwIBAgIDEOVzMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDIwMzA0NDAwN1oX +DTI2MDEzMTA0NDAwN1owgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5aSp55ub572R57uc5pyJ6ZmQ5YWs5Y+4 +MREwDwYDVQQEEwgxMDY4NjEyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAOw+QLt0FlpT6IxEKR30JSyVIYy9ShS9KMfjNsLOUZLQyNmZhov+E6PdcUTs +6YwylWEOfmFKqIiVZG2zd2xlq7qEu8aD9Fk/xxO7RRJP4vnkmUyNLaK5d+Kxc/77 +q8HWZWUyDuCoxEsRuEVez8fkMBbtyqzlysf0V4hrUMdxreIJDqcQbRTCfi4j7D2h +WSb6/xC5xxFC7xr1TdBatCeLaYWiYuMnlUrdC3sXvE+qhFsjxDqM8n+iOVByIQ4R +lOtV8wEKWIRMwgK5WSd4Fetdl+vsRwkdEZwTKli8MDqBTCqJnzYPosXuE0pY8xr6 +nBHkq6mrFskyhso+BLb6svHNfHMCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ +YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud +DgQWBBQ8viOAiSWjFdhsowaiKzIiAloafzCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 +FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 +YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK +BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ +bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV +HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQCPgdGBRrVE5Fet +w/Mi8NMMgOcxZGs/xHZKtw/kHaZqWfmEGa4W5+X3juVG6TrYuek+2RwGE6qfLhAG +HtiESs2Pvws1WbUSaFeyjWFzgbcyjMlj/3DS+J2Hq4voRSBruxJ0DaunwTzlwtIn +MaKfGusX4QlLZIa3Ga+37bHKp29HEA== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_key.pem index 889d51c..44a9472 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEugIBADANBgkqhkiG9w0BAQEFAASCBKQwggSgAgEAAoIBAQDsPkC7dBZaU+iM -RCkd9CUslSGMvUoUvSjH4zbCzlGS0MjZmYaL/hOj3XFE7OmMMpVhDn5hSqiIlWRt -s3dsZau6hLvGg/RZP8cTu0UST+L55JlMjS2iuXfisXP++6vB1mVlMg7gqMRLEbhF -Xs/H5DAW7cqs5crH9FeIa1DHca3iCQ6nEG0Uwn4uI+w9oVkm+v8QuccRQu8a9U3Q -WrQni2mFomLjJ5VK3Qt7F7xPqoRbI8Q6jPJ/ojlQciEOEZTrVfMBCliETMICuVkn -eBXrXZfr7EcJHRGcEypYvDA6gUwqiZ82D6LF7hNKWPMa+pwR5KupqxbJMobKPgS2 -+rLxzXxzAgMBAAECggEALiMOQ02tm+BtNw+MtCPdKrLJRZImKJy0nSz7odnnRnPt -9cks5KQvM75og5x9E/tA/x50gg2xklMStPXqqcnFWvzXKzLUAqYY+/qDx8rAOitx -4OhldDUie6xKSg7egVGcpcG79BYhl8OTKEEW9SPUXHX+MfwCuUA35BWJRhomalEY -csgdCV+g95zcSGHAJAg4Hd1cl/FLVujMyIogdhXtR3lJvfLGNS95fSnELfPG45RR -38d1NPdV28zv7y/nMnypnJ5ccp3vl3TYl8OsSNttLkchFVpuB4p2/3Ze3fe3LtAU -luAJ5xpU790LyaFm7CDo1kcSMasRZgLTecfqJRa/8QKBgQD4dIPFLKKE4fusdVr3 -EbwwF4Lco8n9Osv3RYgvcjXNlP54iv2APOUiNGpf/nKtVuQDhrzYrbRpQ9h1gImH -JRj/xmw8nCMa77fZX6MxUopJ+f0f2Eeogei8GR+4QgD0/buZZA0IFTmSPx3Uqqky -DN+7BbEOU2kNbBACqbairX2fqQKBgQDzas127uRh4X4JtpfHb2zZX2SXEzUnZU8g -jR/TDNp+AnhoXpg1LYmHdKfac+bWNZvUs7TMi6cSF3cXvSNwMbqyraWrFBk1CZir -gwVbE1xau2I8H2wI4BJCC+ZZCqGPY4s1n/5jbFCnzZEDORwjkEDnxq5l0AdgqhTG -vCv2kJR8uwKBgEVgY5sfR5JLd/dEHc53yVC0f/oUUka/sEyvwcNd5OAvBo+qX/b7 -ChBvCnUbm/IDHVBOw1TNzF7Ibx0Ac2alWUGyqm6SOss+vNuZ9PvEzJCzmZbW0cuf -2tkLOuw8of/HCide5LSpGJZZwX6s2On85kxW3oXdjKwOzLmxoinyv+1hAoGACv9r -UxFODkIS4Lt4NhGJuHR/5fd/Mk14er8FjhKJmKHh8M09UUHCcfVKVCtiZZE8fiq0 -Y313yfB3eAIapMoKZmJEFuusi+HoHO+pgUjppkvLD25YAjqleIhzGtjJHeJgesbE -xpcxObOm9p9Q7yZoWFB4tq7kdnCYybXcwqIbo1sCf0HF5pBw9vqB94Pm5QkkEz/l -i7vFKDGciivLV5GpINAZ7Bp6FVzUEyLBtWO50KyLwL/VHIiPJG2p3appShNnKyPN -Ve9NuFqSSFfKygSvHne4uceuY/wW9wDK6io5KPhGHjdE3K4fpXR/xU417wk0sQCo -X6obKKFmExUdyqWiNrs= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEugIBADANBgkqhkiG9w0BAQEFAASCBKQwggSgAgEAAoIBAQDsPkC7dBZaU+iM +RCkd9CUslSGMvUoUvSjH4zbCzlGS0MjZmYaL/hOj3XFE7OmMMpVhDn5hSqiIlWRt +s3dsZau6hLvGg/RZP8cTu0UST+L55JlMjS2iuXfisXP++6vB1mVlMg7gqMRLEbhF +Xs/H5DAW7cqs5crH9FeIa1DHca3iCQ6nEG0Uwn4uI+w9oVkm+v8QuccRQu8a9U3Q +WrQni2mFomLjJ5VK3Qt7F7xPqoRbI8Q6jPJ/ojlQciEOEZTrVfMBCliETMICuVkn +eBXrXZfr7EcJHRGcEypYvDA6gUwqiZ82D6LF7hNKWPMa+pwR5KupqxbJMobKPgS2 ++rLxzXxzAgMBAAECggEALiMOQ02tm+BtNw+MtCPdKrLJRZImKJy0nSz7odnnRnPt +9cks5KQvM75og5x9E/tA/x50gg2xklMStPXqqcnFWvzXKzLUAqYY+/qDx8rAOitx +4OhldDUie6xKSg7egVGcpcG79BYhl8OTKEEW9SPUXHX+MfwCuUA35BWJRhomalEY +csgdCV+g95zcSGHAJAg4Hd1cl/FLVujMyIogdhXtR3lJvfLGNS95fSnELfPG45RR +38d1NPdV28zv7y/nMnypnJ5ccp3vl3TYl8OsSNttLkchFVpuB4p2/3Ze3fe3LtAU +luAJ5xpU790LyaFm7CDo1kcSMasRZgLTecfqJRa/8QKBgQD4dIPFLKKE4fusdVr3 +EbwwF4Lco8n9Osv3RYgvcjXNlP54iv2APOUiNGpf/nKtVuQDhrzYrbRpQ9h1gImH +JRj/xmw8nCMa77fZX6MxUopJ+f0f2Eeogei8GR+4QgD0/buZZA0IFTmSPx3Uqqky +DN+7BbEOU2kNbBACqbairX2fqQKBgQDzas127uRh4X4JtpfHb2zZX2SXEzUnZU8g +jR/TDNp+AnhoXpg1LYmHdKfac+bWNZvUs7TMi6cSF3cXvSNwMbqyraWrFBk1CZir +gwVbE1xau2I8H2wI4BJCC+ZZCqGPY4s1n/5jbFCnzZEDORwjkEDnxq5l0AdgqhTG +vCv2kJR8uwKBgEVgY5sfR5JLd/dEHc53yVC0f/oUUka/sEyvwcNd5OAvBo+qX/b7 +ChBvCnUbm/IDHVBOw1TNzF7Ibx0Ac2alWUGyqm6SOss+vNuZ9PvEzJCzmZbW0cuf +2tkLOuw8of/HCide5LSpGJZZwX6s2On85kxW3oXdjKwOzLmxoinyv+1hAoGACv9r +UxFODkIS4Lt4NhGJuHR/5fd/Mk14er8FjhKJmKHh8M09UUHCcfVKVCtiZZE8fiq0 +Y313yfB3eAIapMoKZmJEFuusi+HoHO+pgUjppkvLD25YAjqleIhzGtjJHeJgesbE +xpcxObOm9p9Q7yZoWFB4tq7kdnCYybXcwqIbo1sCf0HF5pBw9vqB94Pm5QkkEz/l +i7vFKDGciivLV5GpINAZ7Bp6FVzUEyLBtWO50KyLwL/VHIiPJG2p3appShNnKyPN +Ve9NuFqSSFfKygSvHne4uceuY/wW9wDK6io5KPhGHjdE3K4fpXR/xU417wk0sQCo +X6obKKFmExUdyqWiNrs= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/rootca.pem b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/rootca.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_cert.pem index 8d896b7..a4de726 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEazCCA9SgAwIBAgIDFIzzMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDMwNzA5MTAxOVoX -DTI2MDMwNTA5MTAxOVowgZsxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEwMC4GA1UEAxQn5Y2X5piM5biC57qs5bqm5paH5YyW5Lyg5aqS5pyJ -6ZmQ5YWs5Y+4MREwDwYDVQQEEwgxMTQ5OTYzODCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKnCWH1h9+C1ql7MxGqz3h2AA1fDIKmDu7sETB5gmPY8bu1t -1GaxiZb5771jEWMa14/cjUtvTaRgCb0fwANIaP+eeovEC2alZLxytTAgLgsiToxt -8Q6NP4xQBfYmyL3bswggnr1EKIC2Kr8HMcxFb04xJVAx0h4RHqZYd/0q/t1vV1re -yv2VZR+g+E7SGhO2GiKHn9C74QZWU5qe4PDblwLjqYZbxOQslF433zY7DkTrAg7m -wxNxKBXRH3ddvVdVWH0uq1pbuZ9oYJsjhuWARr1BlmUhwXGeXiTiIkSBbO8cxauX -XtsthCjKnn1zHHUcNWKb6n4AS/pqaTALBI4xEZ8CAwEAAaOCAUYwggFCMAkGA1Ud -EwQCMAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNh -dGUiMB0GA1UdDgQWBBQQMIGcrddYlWvqyEDH28EqxguTATCBvwYDVR0jBIG3MIG0 -gBQ+BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQ -BgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1Rl -bmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqG -SIb3DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQE -AwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAU -kvUtbEqjnzI+96Q2i+CqouD5b1VaRppaRFfbuE9oBNwouS3Im/EtIBI+LV4pQmYM -x64fdPZp7sxseOciX1qAruoYSB7mjSdiqB3vbk6hJ62viA2jqzXO4ol+ghKC5nmO -lJIBZaHJZB8jXkxIbeMlLu8EiJMi/VyL6dlGk82fLg== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEazCCA9SgAwIBAgIDFIzzMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDMwNzA5MTAxOVoX +DTI2MDMwNTA5MTAxOVowgZsxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEwMC4GA1UEAxQn5Y2X5piM5biC57qs5bqm5paH5YyW5Lyg5aqS5pyJ +6ZmQ5YWs5Y+4MREwDwYDVQQEEwgxMTQ5OTYzODCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKnCWH1h9+C1ql7MxGqz3h2AA1fDIKmDu7sETB5gmPY8bu1t +1GaxiZb5771jEWMa14/cjUtvTaRgCb0fwANIaP+eeovEC2alZLxytTAgLgsiToxt +8Q6NP4xQBfYmyL3bswggnr1EKIC2Kr8HMcxFb04xJVAx0h4RHqZYd/0q/t1vV1re +yv2VZR+g+E7SGhO2GiKHn9C74QZWU5qe4PDblwLjqYZbxOQslF433zY7DkTrAg7m +wxNxKBXRH3ddvVdVWH0uq1pbuZ9oYJsjhuWARr1BlmUhwXGeXiTiIkSBbO8cxauX +XtsthCjKnn1zHHUcNWKb6n4AS/pqaTALBI4xEZ8CAwEAAaOCAUYwggFCMAkGA1Ud +EwQCMAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNh +dGUiMB0GA1UdDgQWBBQQMIGcrddYlWvqyEDH28EqxguTATCBvwYDVR0jBIG3MIG0 +gBQ+BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQ +BgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1Rl +bmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqG +SIb3DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQE +AwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAU +kvUtbEqjnzI+96Q2i+CqouD5b1VaRppaRFfbuE9oBNwouS3Im/EtIBI+LV4pQmYM +x64fdPZp7sxseOciX1qAruoYSB7mjSdiqB3vbk6hJ62viA2jqzXO4ol+ghKC5nmO +lJIBZaHJZB8jXkxIbeMlLu8EiJMi/VyL6dlGk82fLg== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_key.pem index 08994b5..6f3e912 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpwlh9Yffgtape -zMRqs94dgANXwyCpg7u7BEweYJj2PG7tbdRmsYmW+e+9YxFjGteP3I1Lb02kYAm9 -H8ADSGj/nnqLxAtmpWS8crUwIC4LIk6MbfEOjT+MUAX2Jsi927MIIJ69RCiAtiq/ -BzHMRW9OMSVQMdIeER6mWHf9Kv7db1da3sr9lWUfoPhO0hoTthoih5/Qu+EGVlOa -nuDw25cC46mGW8TkLJReN982Ow5E6wIO5sMTcSgV0R93Xb1XVVh9LqtaW7mfaGCb -I4blgEa9QZZlIcFxnl4k4iJEgWzvHMWrl17bLYQoyp59cxx1HDVim+p+AEv6amkw -CwSOMRGfAgMBAAECggEATNaK9zXA3RVdaEuHHEUN5Ixs9ux7fD8EWkI3sghHNC1m -iFGOMm1pucynlzGgTRt5NsS9r8dRfXV68v/MCbBc1lcFYP37qxpx3lqNaJsoPCHr -K+UXl16XxQrzp9cmRcmL38HkGAchziCmeJDpGWzUVLAqE4J5eOKG3QRuS0mK0u81 -5lU9X29CYab05jrm/4lhQUijR6ubt8XRz6Gpskzf3hvMpiScHSEK8qCRfa6IV9z4 -G6cjwAM9kd8IT8lxCEvA2AQIHBtmwYcSBqfD2o40SBUVqwMlaH+4KtR+5y/VJ7H1 -lF3oogknpWGRgMqSIq2jA7Z3nAZY3SmCihG9C7NaAQKBgQDXwoBBn5y8ZfDYK16X -qiFG78zbi0Bmni8wmyPX4jcvSjA69GWJvx1XBXFFle/sDP74p+6Wv5suZTx93jMI -yaMs67vRzA7neLzFsT8R/QZb93bdvXPDPwORqGE5i9NnXPGzqPXh/UCkLW1u+4Lz -5iqeUj5L+RTP48rBJgO8rFPkCQKBgQDJa4kIf43FBhqHTvK0cgA+iEDw3linHZOV -sfzjU8N0VH4KTrTDABQkC+dtdKj52Ax8WSr93vXBK8bxR9KacQDL/AESKtown8j8 -R5Bp13mDS+y1VxphynK/99ZvP5g8mZArFhHpHzi8O1qArZrwG4LNCp9itYqmCMuR -gFNwf/ZCZwKBgDMzNLxd5BPRHRYvNINJHBx5S2PN57pyT0B5kEfqpq3SLR/QX0gQ -0iWUZQzeR9D8RIU9VKDxVyHrZC96SyIKt24xgqCGjALh4+oF5bGfGaM5VjvIeXAb -w/0MuAWv6Lrek3zO24qFTpGnNhDgHnNCa1qmqaHdudKbe8HaA4kCW+YBAoGAVci+ -7CenMaqP0eEF7WRARmGxhuSrzUEDglXz5r3eGMWDiNBMnGCEM3X+ctekwAQMDUnM -zaMP9921NT3prG1EcZw6uIoXs23aI9g24V0sG4dSoUkfq1aV2LytT2Q+alDc3fzg -U/FAMKr2uKc3vdt5seo8R8YZ7u0ABlApOVjGgTECgYAf7HvCi4SPe7vkaWA3XkYK -LQ1TFgKlcXHXdQA/EkvQ2bXiEDIvB+3jpYN9OUgzVA8AmA7V5ExLhz+QMBIwZQjN -xejgan72hzn01MCd3Ldg8KWfQ4Wvey8S4AHNYi1tj/0xOV1hUROIZFtdMVWxjQ6K -DyE+u6fwkPfMD9qNi/v7Nw== ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpwlh9Yffgtape +zMRqs94dgANXwyCpg7u7BEweYJj2PG7tbdRmsYmW+e+9YxFjGteP3I1Lb02kYAm9 +H8ADSGj/nnqLxAtmpWS8crUwIC4LIk6MbfEOjT+MUAX2Jsi927MIIJ69RCiAtiq/ +BzHMRW9OMSVQMdIeER6mWHf9Kv7db1da3sr9lWUfoPhO0hoTthoih5/Qu+EGVlOa +nuDw25cC46mGW8TkLJReN982Ow5E6wIO5sMTcSgV0R93Xb1XVVh9LqtaW7mfaGCb +I4blgEa9QZZlIcFxnl4k4iJEgWzvHMWrl17bLYQoyp59cxx1HDVim+p+AEv6amkw +CwSOMRGfAgMBAAECggEATNaK9zXA3RVdaEuHHEUN5Ixs9ux7fD8EWkI3sghHNC1m +iFGOMm1pucynlzGgTRt5NsS9r8dRfXV68v/MCbBc1lcFYP37qxpx3lqNaJsoPCHr +K+UXl16XxQrzp9cmRcmL38HkGAchziCmeJDpGWzUVLAqE4J5eOKG3QRuS0mK0u81 +5lU9X29CYab05jrm/4lhQUijR6ubt8XRz6Gpskzf3hvMpiScHSEK8qCRfa6IV9z4 +G6cjwAM9kd8IT8lxCEvA2AQIHBtmwYcSBqfD2o40SBUVqwMlaH+4KtR+5y/VJ7H1 +lF3oogknpWGRgMqSIq2jA7Z3nAZY3SmCihG9C7NaAQKBgQDXwoBBn5y8ZfDYK16X +qiFG78zbi0Bmni8wmyPX4jcvSjA69GWJvx1XBXFFle/sDP74p+6Wv5suZTx93jMI +yaMs67vRzA7neLzFsT8R/QZb93bdvXPDPwORqGE5i9NnXPGzqPXh/UCkLW1u+4Lz +5iqeUj5L+RTP48rBJgO8rFPkCQKBgQDJa4kIf43FBhqHTvK0cgA+iEDw3linHZOV +sfzjU8N0VH4KTrTDABQkC+dtdKj52Ax8WSr93vXBK8bxR9KacQDL/AESKtown8j8 +R5Bp13mDS+y1VxphynK/99ZvP5g8mZArFhHpHzi8O1qArZrwG4LNCp9itYqmCMuR +gFNwf/ZCZwKBgDMzNLxd5BPRHRYvNINJHBx5S2PN57pyT0B5kEfqpq3SLR/QX0gQ +0iWUZQzeR9D8RIU9VKDxVyHrZC96SyIKt24xgqCGjALh4+oF5bGfGaM5VjvIeXAb +w/0MuAWv6Lrek3zO24qFTpGnNhDgHnNCa1qmqaHdudKbe8HaA4kCW+YBAoGAVci+ +7CenMaqP0eEF7WRARmGxhuSrzUEDglXz5r3eGMWDiNBMnGCEM3X+ctekwAQMDUnM +zaMP9921NT3prG1EcZw6uIoXs23aI9g24V0sG4dSoUkfq1aV2LytT2Q+alDc3fzg +U/FAMKr2uKc3vdt5seo8R8YZ7u0ABlApOVjGgTECgYAf7HvCi4SPe7vkaWA3XkYK +LQ1TFgKlcXHXdQA/EkvQ2bXiEDIvB+3jpYN9OUgzVA8AmA7V5ExLhz+QMBIwZQjN +xejgan72hzn01MCd3Ldg8KWfQ4Wvey8S4AHNYi1tj/0xOV1hUROIZFtdMVWxjQ6K +DyE+u6fwkPfMD9qNi/v7Nw== +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_cert.pem index 9e305d4..1c210a3 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYjCCA8ugAwIBAgIDI9viMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDUwNjA1MTAwNloX -DTI2MDUwNDA1MTAwNlowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5LqR5a6256eR5oqA5pyJ6ZmQ5YWs5Y+4 -MREwDwYDVQQEEwgxMjA0MjQ0NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAKMJHRRqSqelvD7BJ/EsWXNkJEmOJW+dsB0/Zc4phMK+oh06FdNr57Ekk2Ga -5vo4fLIw0VEXN49P4XKZRhVKwupVGocIe97/ovt2vzg8uqD4H/Go9Dxc3bphGkzo -0s0ps5Gy5TW0zOVwotBxDwd7tMs2++JzJ2ZcnesqNfYiHYsTb+ljIAYP0bCaYGNi -3NDbaykV9f1BkfgddV1LPn1XGRsOQFMcsjhRGP8TFGs0aLU5Rhm0jimmF4yvZwS7 -81Ah8wBquTCwy9+qrW+SCHmMFpftPmcKWTqhb683GX99l1+wKhWhTvab1UH5eQPR -U+mk2Hak1kSFapTY1ojvlWerB/sCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ -YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud -DgQWBBQG9ruoebdmJpnT3uFhkzVHdpEtUDCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 -FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 -YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK -BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ -bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV -HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBX1xDB9Og/B9lQ -roNlzQcm/LEhRZ1YIgDY8SkuXRBcXRcxpUY45oI8XrpCYEGAfjIxuSC8v1kgduSR -Moy/06aaKT4AGO8z6q2jhBAywKEWGqqkPgiGe/meuba5z/0rSp32dC7upMVW4hlC -F9udaeeGcWiq4qi34nDvg10GgtIZEQ== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYjCCA8ugAwIBAgIDI9viMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDUwNjA1MTAwNloX +DTI2MDUwNDA1MTAwNlowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5LqR5a6256eR5oqA5pyJ6ZmQ5YWs5Y+4 +MREwDwYDVQQEEwgxMjA0MjQ0NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAKMJHRRqSqelvD7BJ/EsWXNkJEmOJW+dsB0/Zc4phMK+oh06FdNr57Ekk2Ga +5vo4fLIw0VEXN49P4XKZRhVKwupVGocIe97/ovt2vzg8uqD4H/Go9Dxc3bphGkzo +0s0ps5Gy5TW0zOVwotBxDwd7tMs2++JzJ2ZcnesqNfYiHYsTb+ljIAYP0bCaYGNi +3NDbaykV9f1BkfgddV1LPn1XGRsOQFMcsjhRGP8TFGs0aLU5Rhm0jimmF4yvZwS7 +81Ah8wBquTCwy9+qrW+SCHmMFpftPmcKWTqhb683GX99l1+wKhWhTvab1UH5eQPR +U+mk2Hak1kSFapTY1ojvlWerB/sCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ +YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud +DgQWBBQG9ruoebdmJpnT3uFhkzVHdpEtUDCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 +FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 +YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK +BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ +bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV +HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBX1xDB9Og/B9lQ +roNlzQcm/LEhRZ1YIgDY8SkuXRBcXRcxpUY45oI8XrpCYEGAfjIxuSC8v1kgduSR +Moy/06aaKT4AGO8z6q2jhBAywKEWGqqkPgiGe/meuba5z/0rSp32dC7upMVW4hlC +F9udaeeGcWiq4qi34nDvg10GgtIZEQ== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_key.pem index 61b83f2..59d3710 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCjCR0Uakqnpbw+ -wSfxLFlzZCRJjiVvnbAdP2XOKYTCvqIdOhXTa+exJJNhmub6OHyyMNFRFzePT+Fy -mUYVSsLqVRqHCHve/6L7dr84PLqg+B/xqPQ8XN26YRpM6NLNKbORsuU1tMzlcKLQ -cQ8He7TLNvvicydmXJ3rKjX2Ih2LE2/pYyAGD9GwmmBjYtzQ22spFfX9QZH4HXVd -Sz59VxkbDkBTHLI4URj/ExRrNGi1OUYZtI4ppheMr2cEu/NQIfMAarkwsMvfqq1v -kgh5jBaX7T5nClk6oW+vNxl/fZdfsCoVoU72m9VB+XkD0VPppNh2pNZEhWqU2NaI -75Vnqwf7AgMBAAECggEAG1ZS3vJ3tCaxKuCefu0NzrBy+TZxhoatWiogOvJxRWpL -qpTrxfio7+YPJGWh50EDf6l535wB//DH/7w9qSJRDpPYj93XT2wT+xBNPfPI42bX -jGDlGx4DO9Y+X7kGZ8pfRsX1cwzu8mXxlvvuJjYS+aQtliny6FINVLpONAhCZehG -3G8GY3Gc7lOR0oNOOO13inL+BxJtsoqWfzXqXXT6hXuiXdBJ9fgQ35wpQwO9nxo2 -3BKuJD0z2z06bZS0Y+Vq4oy/SkhSV6lxpWWZxMkagrghqq4VpfDKC3bGpzDeHhFi -hW02Lq12zpFcavc6PlFMuE9cgu/CGClzF+54nc7FMQKBgQDWB6cMcFIBc/3MhvuZ -NKCNpu9QvI0ta5I+WxaLaDGeyOOqboV+K1hSezoXnWBCYEsHvr/QRLbZtKuIrXud -1obSbimPAf+oDleUQAC7b5xTQWhs0KsyPJ3oeV7N1Ihk+/X2eKYwLCRa5GAdbmor -Sws07VssbRY2KwgaePIV2UZw0wKBgQDDAYlRkJHYWF5rmn72WvA8uKDAjd+uoYzY -Pr4b/8yany3rnKMi2imbippHEVE2FWIGk/LleeGcdkNVquGFDgeHWqfPj2cdJ8f3 -pKvC6F63EKmSIidT0C4pBMOtBczXR8Kq6qH/sXpy1xtxbXtZ+Jp0C3bKwHtFd8fC -e7ifWUrTOQKBgCbWNKW5K+g/l+opBDaEqi2KARrxW9zGDD9sX+bj/T0Gzuj6LRb7 -3ob4/U2TrQfeWT8KidvM3DEc65Ndh3TYnJZKjxf4EN/52kJ4aqmYUxF4aO513tq6 -zRyGCYHn8ugAIF2c/ur215H2psowYuuALoRoHYcuND2YCVxkXelBB9spAoGAaNSH -nGhqbvI6eAAK5qbGZO4fxMPADqHcFFfOXUDrHegaiIGhFVhQa8Rb4X6GuNtP4hdg -yUn3JeRRmFkPeTash3ANrD/7/6lmD1Pf3hyK5kC3184ydBUC65wbEQWAM+7o0Hbn -9YvUNq46m4RuflRtu5p6Fs7YteSJZ5yZCFi5J8kCgYAlWHO1QiEC0ITue2aIKZhT -MmUzl601jG+/T6WoI50JB60RZt6SIPwF881pDt3UmPgAqIxVav5Dbh27P34r8dNE -4ACaxVFUJhjB0l4oWmSH72zibn5XtanoKPHyKQAn7/Pu7SzDrka5ulUn9tYsRmPW -Jfw2Cj+hnWXZZms+9YCboA== ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCjCR0Uakqnpbw+ +wSfxLFlzZCRJjiVvnbAdP2XOKYTCvqIdOhXTa+exJJNhmub6OHyyMNFRFzePT+Fy +mUYVSsLqVRqHCHve/6L7dr84PLqg+B/xqPQ8XN26YRpM6NLNKbORsuU1tMzlcKLQ +cQ8He7TLNvvicydmXJ3rKjX2Ih2LE2/pYyAGD9GwmmBjYtzQ22spFfX9QZH4HXVd +Sz59VxkbDkBTHLI4URj/ExRrNGi1OUYZtI4ppheMr2cEu/NQIfMAarkwsMvfqq1v +kgh5jBaX7T5nClk6oW+vNxl/fZdfsCoVoU72m9VB+XkD0VPppNh2pNZEhWqU2NaI +75Vnqwf7AgMBAAECggEAG1ZS3vJ3tCaxKuCefu0NzrBy+TZxhoatWiogOvJxRWpL +qpTrxfio7+YPJGWh50EDf6l535wB//DH/7w9qSJRDpPYj93XT2wT+xBNPfPI42bX +jGDlGx4DO9Y+X7kGZ8pfRsX1cwzu8mXxlvvuJjYS+aQtliny6FINVLpONAhCZehG +3G8GY3Gc7lOR0oNOOO13inL+BxJtsoqWfzXqXXT6hXuiXdBJ9fgQ35wpQwO9nxo2 +3BKuJD0z2z06bZS0Y+Vq4oy/SkhSV6lxpWWZxMkagrghqq4VpfDKC3bGpzDeHhFi +hW02Lq12zpFcavc6PlFMuE9cgu/CGClzF+54nc7FMQKBgQDWB6cMcFIBc/3MhvuZ +NKCNpu9QvI0ta5I+WxaLaDGeyOOqboV+K1hSezoXnWBCYEsHvr/QRLbZtKuIrXud +1obSbimPAf+oDleUQAC7b5xTQWhs0KsyPJ3oeV7N1Ihk+/X2eKYwLCRa5GAdbmor +Sws07VssbRY2KwgaePIV2UZw0wKBgQDDAYlRkJHYWF5rmn72WvA8uKDAjd+uoYzY +Pr4b/8yany3rnKMi2imbippHEVE2FWIGk/LleeGcdkNVquGFDgeHWqfPj2cdJ8f3 +pKvC6F63EKmSIidT0C4pBMOtBczXR8Kq6qH/sXpy1xtxbXtZ+Jp0C3bKwHtFd8fC +e7ifWUrTOQKBgCbWNKW5K+g/l+opBDaEqi2KARrxW9zGDD9sX+bj/T0Gzuj6LRb7 +3ob4/U2TrQfeWT8KidvM3DEc65Ndh3TYnJZKjxf4EN/52kJ4aqmYUxF4aO513tq6 +zRyGCYHn8ugAIF2c/ur215H2psowYuuALoRoHYcuND2YCVxkXelBB9spAoGAaNSH +nGhqbvI6eAAK5qbGZO4fxMPADqHcFFfOXUDrHegaiIGhFVhQa8Rb4X6GuNtP4hdg +yUn3JeRRmFkPeTash3ANrD/7/6lmD1Pf3hyK5kC3184ydBUC65wbEQWAM+7o0Hbn +9YvUNq46m4RuflRtu5p6Fs7YteSJZ5yZCFi5J8kCgYAlWHO1QiEC0ITue2aIKZhT +MmUzl601jG+/T6WoI50JB60RZt6SIPwF881pDt3UmPgAqIxVav5Dbh27P34r8dNE +4ACaxVFUJhjB0l4oWmSH72zibn5XtanoKPHyKQAn7/Pu7SzDrka5ulUn9tYsRmPW +Jfw2Cj+hnWXZZms+9YCboA== +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/rootca.pem b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/rootca.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_cert.pem index ebb54e9..837f6be 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEZjCCA8+gAwIBAgIEAWC1DTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV -BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf -MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA3MjUwMjI1NTda -Fw0yNzA3MjMwMjI1NTdaMIGVMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk -b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE -CxMFTU1QYXkxKjAoBgNVBAMUIeS4iumltuW4guS8iua1quS/oeaBr+aciemZkOWF -rOWPuDERMA8GA1UEBBMIMTIwNDY3NzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQC5hYq9PSLruYqD7l+BDdLu3paqxBZcxkETopE7TiJR9i4crDZQpFYn -qeF10DuYPPxZedDoW1MWms56u4nyhrwPOx8A+aIWXZKoPhb3TmO7oVC7B9nO6dzT -CK84iwdJk60rAl11nrf8sjHUSsq6jdYt5HeVZSJX0zLKUx6JB0QYouiPbLyVlPfc -2ZcLd5A6cNj/Wfgpf7OLNtUnK40Zd7N4CBPPQpIW72lR8dNIjuTaP2uZv5IlFTXD -hllFTsSKPey/diWegP5rDGWVwVuzlTKpPAroxBO8JHDbWLtTdXo/o++8c/Tl4/p1 -BVOYDyrDCfp+//7tx3FxBW4TG1WjVR83AgMBAAGjggFGMIIBQjAJBgNVHRMEAjAA -MCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAd -BgNVHQ4EFgQUg/gk5Vl0YXBLqldA5sO1VQsZPjswgb8GA1UdIwSBtzCBtIAUPgUm -9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQI -EwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50 -MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0B -CQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAw -FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAspt9yTXN -gSsm1mJQlDFNXi/3Ped4DxQOWAQZ9Dlkpvga9BJ59f3pxqQX8l4IrNlwCSsXbotv -V5tBUe+F39hgZDLhvwQIqN6vkf1Oa4rfhxja4bA3MOpyz3jHB2bRDa9bPniiJKAm -la9nieIxBpFk2/uNU0fJF2jW0VDNGu2/m9Y= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEZjCCA8+gAwIBAgIEAWC1DTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC +Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV +BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf +MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA3MjUwMjI1NTda +Fw0yNzA3MjMwMjI1NTdaMIGVMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk +b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE +CxMFTU1QYXkxKjAoBgNVBAMUIeS4iumltuW4guS8iua1quS/oeaBr+aciemZkOWF +rOWPuDERMA8GA1UEBBMIMTIwNDY3NzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC5hYq9PSLruYqD7l+BDdLu3paqxBZcxkETopE7TiJR9i4crDZQpFYn +qeF10DuYPPxZedDoW1MWms56u4nyhrwPOx8A+aIWXZKoPhb3TmO7oVC7B9nO6dzT +CK84iwdJk60rAl11nrf8sjHUSsq6jdYt5HeVZSJX0zLKUx6JB0QYouiPbLyVlPfc +2ZcLd5A6cNj/Wfgpf7OLNtUnK40Zd7N4CBPPQpIW72lR8dNIjuTaP2uZv5IlFTXD +hllFTsSKPey/diWegP5rDGWVwVuzlTKpPAroxBO8JHDbWLtTdXo/o++8c/Tl4/p1 +BVOYDyrDCfp+//7tx3FxBW4TG1WjVR83AgMBAAGjggFGMIIBQjAJBgNVHRMEAjAA +MCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAd +BgNVHQ4EFgQUg/gk5Vl0YXBLqldA5sO1VQsZPjswgb8GA1UdIwSBtzCBtIAUPgUm +9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQI +EwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50 +MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0B +CQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAw +FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAspt9yTXN +gSsm1mJQlDFNXi/3Ped4DxQOWAQZ9Dlkpvga9BJ59f3pxqQX8l4IrNlwCSsXbotv +V5tBUe+F39hgZDLhvwQIqN6vkf1Oa4rfhxja4bA3MOpyz3jHB2bRDa9bPniiJKAm +la9nieIxBpFk2/uNU0fJF2jW0VDNGu2/m9Y= +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_key.pem index ebdc3d4..cd87de5 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5hYq9PSLruYqD -7l+BDdLu3paqxBZcxkETopE7TiJR9i4crDZQpFYnqeF10DuYPPxZedDoW1MWms56 -u4nyhrwPOx8A+aIWXZKoPhb3TmO7oVC7B9nO6dzTCK84iwdJk60rAl11nrf8sjHU -Ssq6jdYt5HeVZSJX0zLKUx6JB0QYouiPbLyVlPfc2ZcLd5A6cNj/Wfgpf7OLNtUn -K40Zd7N4CBPPQpIW72lR8dNIjuTaP2uZv5IlFTXDhllFTsSKPey/diWegP5rDGWV -wVuzlTKpPAroxBO8JHDbWLtTdXo/o++8c/Tl4/p1BVOYDyrDCfp+//7tx3FxBW4T -G1WjVR83AgMBAAECggEAMRyF9sSpaueKIJTI2XwUW8G29uvD07lz3sPJWH69nR7j -ZBm+oyht2kAhfDOsowd58iHKSMhsPW6rvFfLE9XREOMguPxciTkqKrmNENjClBgH -LAvO//Ruzbrdz8UWH8clL16H6SwkHpP5lu5Zrnr/uNRjR7wnFELHjkHksnem8jIy -pT2xROerN2TzoprF/ESWKunTXw6eFotmRL5CLlRzd3QGWewr8bE1btkja2C63Oh7 -r7IYJbeFyJAf7pNdYP0159wF4Ou6OTHRTXBqtNM/liJ0+gZu3/if9D90qjTkbiRv -IzZBUGJyciZDWRE1+EQMQsV3zIfoL47FTA1bl0KjKQKBgQDbvoJf3Fnp0EvR5aPR -cQdNiEnaq9wtt05fW8agoNeylChoZw5al41g6O2TF+fNMtWCbYJyj95ZDGhr4CVq -QUz02UL6gLoHevFwedlG05Yw+azecv053dhEeZtLarP3GS+Crr8XYleiMY3lJBBW -Pnx3PHklI0s2raDDMD5ttiXGlQKBgQDYIY0r1BZa7SLRpw2fuZmsDbDzQtn4SW55 -1eSE4EpkjYeb+SDuzByAUNaIdPDWu74CujVdNM3d2alsF/vcZa1UMkC3295SMIOg -4OqpY7U4ljkG8YdE9e3a0+4Hk0RMlRizAG9myxLVHn4YAhnoG0iyvzuaHooHzeZr -Ec53GASXmwKBgCVMbOzAhjJ9vKDgDbJbMRYj8AVB7pmD57Wf6lMRegtBwqoV9AXE -e6bbYpf5EsttuXfuBppTeTY8OO02mqMyelGFHy1N9EWYxKqGxC6Vc4TUnFcVxY2w -7iiRS569edaTW9EewCjD9IP/TUp7mJpK+O10QkvfdcDOL99xrOcKZ9cRAoGBALIQ -YmiboZdkC+3Cvhy8Ivl3hjPE/iPrC9Pg/xbiWygg2nsMc6+KBmlJMJbYEZw4rUE9 -/L0/xeRjcYwW7nAUbQsTI/LWeIIqaiffZjYMab+nNHCeCR4tp7tEI7WmBP07UVAY -qa9825UuPCC3inSKFgj+OLKvOnVXk+DemMXRyebFAoGBAJ9BVDxOD+ZM5+JgJbVr -M7wCviZMcs1RBGZXT5Zv2dHOvHwzZm8+My4ZN2Qkn1P0U91dcJcOlHeSIZg3cdn5 -JLPBF752joNVrUkb09Ysz9G3fLPbwmasnhQpGL9qKx5VIb/aUF2nvHMzGx3QB/Rb -jJVyR3ycVyx2qzPlM/JSGVKO ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5hYq9PSLruYqD +7l+BDdLu3paqxBZcxkETopE7TiJR9i4crDZQpFYnqeF10DuYPPxZedDoW1MWms56 +u4nyhrwPOx8A+aIWXZKoPhb3TmO7oVC7B9nO6dzTCK84iwdJk60rAl11nrf8sjHU +Ssq6jdYt5HeVZSJX0zLKUx6JB0QYouiPbLyVlPfc2ZcLd5A6cNj/Wfgpf7OLNtUn +K40Zd7N4CBPPQpIW72lR8dNIjuTaP2uZv5IlFTXDhllFTsSKPey/diWegP5rDGWV +wVuzlTKpPAroxBO8JHDbWLtTdXo/o++8c/Tl4/p1BVOYDyrDCfp+//7tx3FxBW4T +G1WjVR83AgMBAAECggEAMRyF9sSpaueKIJTI2XwUW8G29uvD07lz3sPJWH69nR7j +ZBm+oyht2kAhfDOsowd58iHKSMhsPW6rvFfLE9XREOMguPxciTkqKrmNENjClBgH +LAvO//Ruzbrdz8UWH8clL16H6SwkHpP5lu5Zrnr/uNRjR7wnFELHjkHksnem8jIy +pT2xROerN2TzoprF/ESWKunTXw6eFotmRL5CLlRzd3QGWewr8bE1btkja2C63Oh7 +r7IYJbeFyJAf7pNdYP0159wF4Ou6OTHRTXBqtNM/liJ0+gZu3/if9D90qjTkbiRv +IzZBUGJyciZDWRE1+EQMQsV3zIfoL47FTA1bl0KjKQKBgQDbvoJf3Fnp0EvR5aPR +cQdNiEnaq9wtt05fW8agoNeylChoZw5al41g6O2TF+fNMtWCbYJyj95ZDGhr4CVq +QUz02UL6gLoHevFwedlG05Yw+azecv053dhEeZtLarP3GS+Crr8XYleiMY3lJBBW +Pnx3PHklI0s2raDDMD5ttiXGlQKBgQDYIY0r1BZa7SLRpw2fuZmsDbDzQtn4SW55 +1eSE4EpkjYeb+SDuzByAUNaIdPDWu74CujVdNM3d2alsF/vcZa1UMkC3295SMIOg +4OqpY7U4ljkG8YdE9e3a0+4Hk0RMlRizAG9myxLVHn4YAhnoG0iyvzuaHooHzeZr +Ec53GASXmwKBgCVMbOzAhjJ9vKDgDbJbMRYj8AVB7pmD57Wf6lMRegtBwqoV9AXE +e6bbYpf5EsttuXfuBppTeTY8OO02mqMyelGFHy1N9EWYxKqGxC6Vc4TUnFcVxY2w +7iiRS569edaTW9EewCjD9IP/TUp7mJpK+O10QkvfdcDOL99xrOcKZ9cRAoGBALIQ +YmiboZdkC+3Cvhy8Ivl3hjPE/iPrC9Pg/xbiWygg2nsMc6+KBmlJMJbYEZw4rUE9 +/L0/xeRjcYwW7nAUbQsTI/LWeIIqaiffZjYMab+nNHCeCR4tp7tEI7WmBP07UVAY +qa9825UuPCC3inSKFgj+OLKvOnVXk+DemMXRyebFAoGBAJ9BVDxOD+ZM5+JgJbVr +M7wCviZMcs1RBGZXT5Zv2dHOvHwzZm8+My4ZN2Qkn1P0U91dcJcOlHeSIZg3cdn5 +JLPBF752joNVrUkb09Ysz9G3fLPbwmasnhQpGL9qKx5VIb/aUF2nvHMzGx3QB/Rb +jJVyR3ycVyx2qzPlM/JSGVKO +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/rootca.pem b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/rootca.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/证书使用说明.txt index a775010..2b5178e 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/证书使用说明.txt @@ -1,18 +1,18 @@ -欢迎使用微信支付! -附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem -备注说明: +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_cert.pem index 455305e..a3affa4 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYzCCA8ygAwIBAgIEAdXMTjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV -BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf -MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xODAzMjQwMTU2Mzha -Fw0yODAzMjEwMTU2MzhaMIGSMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk -b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE -CxMFTU1QYXkxJzAlBgNVBAMUHuaxn+ilv+Wkqeebm+e9kee7nOaciemZkOWFrOWP -uDERMA8GA1UEBBMIMTI0NDk3NjkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQDErnYk0r3LopXoX4ar754FFSrfR3VqZiFyQVUbSrzsdkt1eV3ImwOv1ted -iLH/+qwDsKGPDfFVIztLo7nISRFlXfuYKMavi1g0Z4ZSqptJIhqmW3By5RY7oXBm -tWxdgQKawEeEE/l10clQhZHKCtSby399hA6mYhcDs7XANFFzLWtLw8lbsqhKETaF -RofCwi68uP18OBAkNDSZX7NnGtH7BWneTilqtppeD7oVh26Y4RyVSnz6/lIHFn0H -3Bk8WcfAdtIJyFjNP1M5NmO8CLnQn9ru28QJ4j0j3whnZFsAeQSxo0EhqWCA81JX -kZU69+3syYK470tdZn4r73fjO6VHAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAAMCwG -CWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAdBgNV -HQ4EFgQUIfA/oAUCBxi66JhojpXx9yURofowgb8GA1UdIwSBtzCBtIAUPgUm9iJi -tBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlH -dWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQww -CgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0BCQEW -EG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAwFgYD -VR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEACrdyhUP/F+4P -cpb5MAezafFGyYftZ0mlHaUScwqSVDUnm7VZeMHV8MqHYVoedoVOMFVq+gGrl5kh -77KocrWNrG2mnf9fGRm7WD6dtiihQKGRAf3DWIPGVlwGbiRlBg27AMVnZn7GpIUs -j9yZuDQindR2/UpGCWwrYkGoumEeuok= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYzCCA8ygAwIBAgIEAdXMTjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC +Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV +BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf +MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xODAzMjQwMTU2Mzha +Fw0yODAzMjEwMTU2MzhaMIGSMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk +b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE +CxMFTU1QYXkxJzAlBgNVBAMUHuaxn+ilv+Wkqeebm+e9kee7nOaciemZkOWFrOWP +uDERMA8GA1UEBBMIMTI0NDk3NjkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQDErnYk0r3LopXoX4ar754FFSrfR3VqZiFyQVUbSrzsdkt1eV3ImwOv1ted +iLH/+qwDsKGPDfFVIztLo7nISRFlXfuYKMavi1g0Z4ZSqptJIhqmW3By5RY7oXBm +tWxdgQKawEeEE/l10clQhZHKCtSby399hA6mYhcDs7XANFFzLWtLw8lbsqhKETaF +RofCwi68uP18OBAkNDSZX7NnGtH7BWneTilqtppeD7oVh26Y4RyVSnz6/lIHFn0H +3Bk8WcfAdtIJyFjNP1M5NmO8CLnQn9ru28QJ4j0j3whnZFsAeQSxo0EhqWCA81JX +kZU69+3syYK470tdZn4r73fjO6VHAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAAMCwG +CWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAdBgNV +HQ4EFgQUIfA/oAUCBxi66JhojpXx9yURofowgb8GA1UdIwSBtzCBtIAUPgUm9iJi +tBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlH +dWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQww +CgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0BCQEW +EG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAwFgYD +VR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEACrdyhUP/F+4P +cpb5MAezafFGyYftZ0mlHaUScwqSVDUnm7VZeMHV8MqHYVoedoVOMFVq+gGrl5kh +77KocrWNrG2mnf9fGRm7WD6dtiihQKGRAf3DWIPGVlwGbiRlBg27AMVnZn7GpIUs +j9yZuDQindR2/UpGCWwrYkGoumEeuok= +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_key.pem index de3fba2..28d2f32 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDErnYk0r3LopXo -X4ar754FFSrfR3VqZiFyQVUbSrzsdkt1eV3ImwOv1tediLH/+qwDsKGPDfFVIztL -o7nISRFlXfuYKMavi1g0Z4ZSqptJIhqmW3By5RY7oXBmtWxdgQKawEeEE/l10clQ -hZHKCtSby399hA6mYhcDs7XANFFzLWtLw8lbsqhKETaFRofCwi68uP18OBAkNDSZ -X7NnGtH7BWneTilqtppeD7oVh26Y4RyVSnz6/lIHFn0H3Bk8WcfAdtIJyFjNP1M5 -NmO8CLnQn9ru28QJ4j0j3whnZFsAeQSxo0EhqWCA81JXkZU69+3syYK470tdZn4r -73fjO6VHAgMBAAECggEBAIj8slDnb0X70cltb1ElrbwAiEHHdaJLzBPWKT6/CWLw -6ZHCnG1yeljonHieksulflV7mqsWnPYdedkvCeDT84fUs73A+NGfjinByS6eoVWI -qWMg4OtFX/zcbns69WUSzAuYzLbTaraDDWJGBcrhTD/OttdnOQTt4PW1H2vlhK1g -xgQmWajElq/CJtk+uhpwnNRsJTLCDI8xsxsOYIKUyf0oFVYrH57QktFlXI6brfnJ -94GQ6O0BfWr0U06Rzq5ouSfdHnPdNOhI6DIJzArVa7yNMI5/alA3m2Ev47DCjTGl -YGOpZ3/8jPZoqNkApFxHgyq9PCHAPA8hKp71KIs7BpECgYEA7RVmIEIsmFac3kKb -19RcuuH4iIyOG/oVWsup7Lbm/vl9SFbBJJMObBUToLy6qlnCHaNHQvgMfst369vO -vGI7PwzisQ4267FA4LN5KEUzp69st700iB4Pn8vnFPcje7x3SFNPQQVmZ7/m7HKx -vTXhYFj+NYbCoBe69OKkBRbYgB0CgYEA1F/SKKldr19u9/IN5zCMd/Fb+q4BVgvS -lh4O/yMIRDHO6spSVYN/HkpI7x2vraL2NFnYAXUERjl9WlEvQ5F4wLb0DYFAUyJa -2SlhZnc3eOLz6eOpzzMBMzerHHoZsThCd661Y5WA06en44vIVkr921pW9NvH7rMa -5cpJ5GCHhbMCgYBNEX+5TMmiW8VymsR+TJI4Tey0trwbbBg1A6+hO3Orvv5y3YC7 -mvI9QDy5K6Cib7siV0l7A5dMQGgjS7jQlD4eKNooJC7GP0CPyse/x38bK3Nz5xWE -igEaOPZNYmkud/1ujWZeBJtdboxqoH4Wu8UfxM4eKEhsMkqcAHDBFsQaIQKBgCrg -7d2n1HKEIjONe6Eh/Dp7UMbcOwjUekA08XIx8IlURSLClr0NP60t8mvU4pN8Q5lu -Sl6A8cv774M8wP4zcN34Em5nmkUuuoj+AdxeVaTirbybar2a3rMomjO1s1pEsabY -b2cb2FbjktIudtR1b6vKIaRue3+GSff7T8/8bWBhAoGAFg6paqQIBKYNSdfcvbfi -x3YWECDtCLlXFiWha2pHtRE8CfLfSftZQ/49CnNw6EwtPXqgqRGIv4RqXfxYbwYA -RWIGNUYToXI/jeSRpxtpFrlOroF5NhEBulD9Ti9/PgPs0cU0OPqWoxDPvg742stR -uRbAYzG0KnwnasmutR5hjv8= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDErnYk0r3LopXo +X4ar754FFSrfR3VqZiFyQVUbSrzsdkt1eV3ImwOv1tediLH/+qwDsKGPDfFVIztL +o7nISRFlXfuYKMavi1g0Z4ZSqptJIhqmW3By5RY7oXBmtWxdgQKawEeEE/l10clQ +hZHKCtSby399hA6mYhcDs7XANFFzLWtLw8lbsqhKETaFRofCwi68uP18OBAkNDSZ +X7NnGtH7BWneTilqtppeD7oVh26Y4RyVSnz6/lIHFn0H3Bk8WcfAdtIJyFjNP1M5 +NmO8CLnQn9ru28QJ4j0j3whnZFsAeQSxo0EhqWCA81JXkZU69+3syYK470tdZn4r +73fjO6VHAgMBAAECggEBAIj8slDnb0X70cltb1ElrbwAiEHHdaJLzBPWKT6/CWLw +6ZHCnG1yeljonHieksulflV7mqsWnPYdedkvCeDT84fUs73A+NGfjinByS6eoVWI +qWMg4OtFX/zcbns69WUSzAuYzLbTaraDDWJGBcrhTD/OttdnOQTt4PW1H2vlhK1g +xgQmWajElq/CJtk+uhpwnNRsJTLCDI8xsxsOYIKUyf0oFVYrH57QktFlXI6brfnJ +94GQ6O0BfWr0U06Rzq5ouSfdHnPdNOhI6DIJzArVa7yNMI5/alA3m2Ev47DCjTGl +YGOpZ3/8jPZoqNkApFxHgyq9PCHAPA8hKp71KIs7BpECgYEA7RVmIEIsmFac3kKb +19RcuuH4iIyOG/oVWsup7Lbm/vl9SFbBJJMObBUToLy6qlnCHaNHQvgMfst369vO +vGI7PwzisQ4267FA4LN5KEUzp69st700iB4Pn8vnFPcje7x3SFNPQQVmZ7/m7HKx +vTXhYFj+NYbCoBe69OKkBRbYgB0CgYEA1F/SKKldr19u9/IN5zCMd/Fb+q4BVgvS +lh4O/yMIRDHO6spSVYN/HkpI7x2vraL2NFnYAXUERjl9WlEvQ5F4wLb0DYFAUyJa +2SlhZnc3eOLz6eOpzzMBMzerHHoZsThCd661Y5WA06en44vIVkr921pW9NvH7rMa +5cpJ5GCHhbMCgYBNEX+5TMmiW8VymsR+TJI4Tey0trwbbBg1A6+hO3Orvv5y3YC7 +mvI9QDy5K6Cib7siV0l7A5dMQGgjS7jQlD4eKNooJC7GP0CPyse/x38bK3Nz5xWE +igEaOPZNYmkud/1ujWZeBJtdboxqoH4Wu8UfxM4eKEhsMkqcAHDBFsQaIQKBgCrg +7d2n1HKEIjONe6Eh/Dp7UMbcOwjUekA08XIx8IlURSLClr0NP60t8mvU4pN8Q5lu +Sl6A8cv774M8wP4zcN34Em5nmkUuuoj+AdxeVaTirbybar2a3rMomjO1s1pEsabY +b2cb2FbjktIudtR1b6vKIaRue3+GSff7T8/8bWBhAoGAFg6paqQIBKYNSdfcvbfi +x3YWECDtCLlXFiWha2pHtRE8CfLfSftZQ/49CnNw6EwtPXqgqRGIv4RqXfxYbwYA +RWIGNUYToXI/jeSRpxtpFrlOroF5NhEBulD9Ti9/PgPs0cU0OPqWoxDPvg742stR +uRbAYzG0KnwnasmutR5hjv8= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1345625501/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/证书使用说明.txt index a775010..2b5178e 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1345625501/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/证书使用说明.txt @@ -1,18 +1,18 @@ -欢迎使用微信支付! -附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem -备注说明: +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_cert.pem index f1389fa..6074b64 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYjCCA8ugAwIBAgIDKzqrMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDYwNjA1MzAwNFoX -DTI2MDYwNDA1MzAwNFowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5LqR5a6256eR5oqA5pyJ6ZmQ5YWs5Y+4 -MREwDwYDVQQEEwgxMjcxNzUwODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMFQt5XNX8LigHtIrqhv8yGivPkRLPrsiNi1a2h8EYu3C409o/q4uwAuGH7s -Fl/7ccH/+fY1qmfDt2MR5dAMZqV3/l7RG4bEPtJTEwNd6nzFvYZDcv7/KSdGDeF4 -dhNpT9oE0LaiC6P0Zdeur3AA92WbH2eN80IARYHp7vQQ4mXpxIJSB7jK93jCeCee -Ss6ZZuk8PU/8b/B76XdwQ3R8eNvIqctjvWujVg/bA24TeGZEkBOHB4sXDpw8gHrX -7sxYKcNIW6ZIy9/MKCS3hWbojp2JQq2FBktArmZ8pO++P2xpy86BK+x+hHc+ewKK -dtOXGUI8Uxq08odZn8LzSpf9nJkCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ -YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud -DgQWBBTIHrH8dXCHClscuO+GWQNVDiL9hjCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 -FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 -YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK -BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ -bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV -HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBouw/N2u/qILi6 -rpxauVLzCLaDzMiewSpezEQq/jL44rxDkC6dvbphT7vYO487h1k2GfnbUA7R9Hsi -W6l4bfRdHOLFYmF5nuXJSrgtsjko+iUQ+MJm/M2pb8ndHzZb5jq2MdQAN1VlIxdo -uOgQ2R2OKSKNlQV6Ls4zHQ3uBPcd5g== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYjCCA8ugAwIBAgIDKzqrMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDYwNjA1MzAwNFoX +DTI2MDYwNDA1MzAwNFowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5LqR5a6256eR5oqA5pyJ6ZmQ5YWs5Y+4 +MREwDwYDVQQEEwgxMjcxNzUwODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMFQt5XNX8LigHtIrqhv8yGivPkRLPrsiNi1a2h8EYu3C409o/q4uwAuGH7s +Fl/7ccH/+fY1qmfDt2MR5dAMZqV3/l7RG4bEPtJTEwNd6nzFvYZDcv7/KSdGDeF4 +dhNpT9oE0LaiC6P0Zdeur3AA92WbH2eN80IARYHp7vQQ4mXpxIJSB7jK93jCeCee +Ss6ZZuk8PU/8b/B76XdwQ3R8eNvIqctjvWujVg/bA24TeGZEkBOHB4sXDpw8gHrX +7sxYKcNIW6ZIy9/MKCS3hWbojp2JQq2FBktArmZ8pO++P2xpy86BK+x+hHc+ewKK +dtOXGUI8Uxq08odZn8LzSpf9nJkCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ +YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud +DgQWBBTIHrH8dXCHClscuO+GWQNVDiL9hjCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 +FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 +YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK +BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ +bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV +HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBouw/N2u/qILi6 +rpxauVLzCLaDzMiewSpezEQq/jL44rxDkC6dvbphT7vYO487h1k2GfnbUA7R9Hsi +W6l4bfRdHOLFYmF5nuXJSrgtsjko+iUQ+MJm/M2pb8ndHzZb5jq2MdQAN1VlIxdo +uOgQ2R2OKSKNlQV6Ls4zHQ3uBPcd5g== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_key.pem index 847648f..fb9cf6e 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDBULeVzV/C4oB7 -SK6ob/Mhorz5ESz67IjYtWtofBGLtwuNPaP6uLsALhh+7BZf+3HB//n2Napnw7dj -EeXQDGald/5e0RuGxD7SUxMDXep8xb2GQ3L+/yknRg3heHYTaU/aBNC2oguj9GXX -rq9wAPdlmx9njfNCAEWB6e70EOJl6cSCUge4yvd4wngnnkrOmWbpPD1P/G/we+l3 -cEN0fHjbyKnLY71ro1YP2wNuE3hmRJAThweLFw6cPIB61+7MWCnDSFumSMvfzCgk -t4Vm6I6diUKthQZLQK5mfKTvvj9sacvOgSvsfoR3PnsCinbTlxlCPFMatPKHWZ/C -80qX/ZyZAgMBAAECggEAGMoVAKy5XvBUsXp8izTv5JxNx1KghfzW/5MkFt3yEgyC -+rWw1XHi6P8APSZhKCXCTLJah2wSUgQS/C1LXwZ4Ezfz8oy2Du4TcD0e7wuYCjAB -QbpcgL6PtG2TUhp0acDTcI21hfX5sCii9ql77czx7KGbwVe+nfQS9bnd3oZbwd2j -OXFqTRcBtDFyQL20DhNe70EtNOBwMfLpPKRv2sTQ4ONuRHj6PxebAntSUqunpZpb -Thyh4vd13Tr7p7jt4jPLsHwfrAgs+m7T7PojcfDtJhYVloXHff12v75zTzbLXzAq -K1OleCt2XLVA/Dc9ueq9lJwCBU6QKx4nLRQNT8tRQQKBgQDiL8QHyRVVRXwOIJFI -nq8ao/ZRIjaAoc4ykb7RHRD9M9qy+PShyrQPH9yFhaZJhRSAoktRAaZMgKw+qKx2 -AFI81uTi8skZ3EEY7/kJ4YBmZFHtvt25z+K/1TCY6e8X41IkTmNZzr6X6LF7AxIb -qvDVn3nxEJi2UIpuaeQC4UA8tQKBgQDay8XQN82NY41gVcPgUgy/8e00P+DUjNj+ -rbbqJBoZo6fOXzCjurWzj6oHC/IMHXDa6X91ugQq3/RjXkaYQodkFLm79LEDNMZy -4fJ/iiXHQ3mBJOUDgLL1WqxVsHPP/Tn5Rm17+eX8JeVovcmwyCH0NiU+Df3ZtfJW -K0TR5Ijy1QKBgH0kuG0mUGtReoXGdxua0H8I4KubJlSdMZzBDrZcQp4VJpeHLrKl -mGIV2sj1XT+oJePV5532L7B8MNCqOmE/ZEDNFO6MLb/lIQ9PFpbk8Um1j67ev4aj -Am3o4m54YBTzbOsxg76YqNMbp7bLyCUOuxk2lx1NdXDJtw3IAKOnRQdRAoGBANP9 -H5pQlv5o+G/gaTqNBQFs29EGG0aVeSG5GkLd29P/tvTDUhMxMh/aEHlnX4vRcqkI -F5DvPF52QwmMLIYV36xeUF8GBAQBPE3PEe/04AmjHLS+FI5CQiJrShJ0NqHMzkDx -td6rD+Qwq4fCawq3vf4qAAeR8uTf3v8SSUm8TdxJAoGAc2vfH5EeriwsKFhNbgg0 -dUvi0HjfksaUnLDTp6I2ZwgIIMohiYyvK2G0nMOUqjXaVWISebmXI9l7dD0WWiB1 -5oEdvzYSgXts3tG8PsluIYEdN/mMwnOSpZlMda0wK5SEXf7Okjn3b+I6cxryrWsk -Uq3cA5DteK4q4AskLnpHK3w= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDBULeVzV/C4oB7 +SK6ob/Mhorz5ESz67IjYtWtofBGLtwuNPaP6uLsALhh+7BZf+3HB//n2Napnw7dj +EeXQDGald/5e0RuGxD7SUxMDXep8xb2GQ3L+/yknRg3heHYTaU/aBNC2oguj9GXX +rq9wAPdlmx9njfNCAEWB6e70EOJl6cSCUge4yvd4wngnnkrOmWbpPD1P/G/we+l3 +cEN0fHjbyKnLY71ro1YP2wNuE3hmRJAThweLFw6cPIB61+7MWCnDSFumSMvfzCgk +t4Vm6I6diUKthQZLQK5mfKTvvj9sacvOgSvsfoR3PnsCinbTlxlCPFMatPKHWZ/C +80qX/ZyZAgMBAAECggEAGMoVAKy5XvBUsXp8izTv5JxNx1KghfzW/5MkFt3yEgyC ++rWw1XHi6P8APSZhKCXCTLJah2wSUgQS/C1LXwZ4Ezfz8oy2Du4TcD0e7wuYCjAB +QbpcgL6PtG2TUhp0acDTcI21hfX5sCii9ql77czx7KGbwVe+nfQS9bnd3oZbwd2j +OXFqTRcBtDFyQL20DhNe70EtNOBwMfLpPKRv2sTQ4ONuRHj6PxebAntSUqunpZpb +Thyh4vd13Tr7p7jt4jPLsHwfrAgs+m7T7PojcfDtJhYVloXHff12v75zTzbLXzAq +K1OleCt2XLVA/Dc9ueq9lJwCBU6QKx4nLRQNT8tRQQKBgQDiL8QHyRVVRXwOIJFI +nq8ao/ZRIjaAoc4ykb7RHRD9M9qy+PShyrQPH9yFhaZJhRSAoktRAaZMgKw+qKx2 +AFI81uTi8skZ3EEY7/kJ4YBmZFHtvt25z+K/1TCY6e8X41IkTmNZzr6X6LF7AxIb +qvDVn3nxEJi2UIpuaeQC4UA8tQKBgQDay8XQN82NY41gVcPgUgy/8e00P+DUjNj+ +rbbqJBoZo6fOXzCjurWzj6oHC/IMHXDa6X91ugQq3/RjXkaYQodkFLm79LEDNMZy +4fJ/iiXHQ3mBJOUDgLL1WqxVsHPP/Tn5Rm17+eX8JeVovcmwyCH0NiU+Df3ZtfJW +K0TR5Ijy1QKBgH0kuG0mUGtReoXGdxua0H8I4KubJlSdMZzBDrZcQp4VJpeHLrKl +mGIV2sj1XT+oJePV5532L7B8MNCqOmE/ZEDNFO6MLb/lIQ9PFpbk8Um1j67ev4aj +Am3o4m54YBTzbOsxg76YqNMbp7bLyCUOuxk2lx1NdXDJtw3IAKOnRQdRAoGBANP9 +H5pQlv5o+G/gaTqNBQFs29EGG0aVeSG5GkLd29P/tvTDUhMxMh/aEHlnX4vRcqkI +F5DvPF52QwmMLIYV36xeUF8GBAQBPE3PEe/04AmjHLS+FI5CQiJrShJ0NqHMzkDx +td6rD+Qwq4fCawq3vf4qAAeR8uTf3v8SSUm8TdxJAoGAc2vfH5EeriwsKFhNbgg0 +dUvi0HjfksaUnLDTp6I2ZwgIIMohiYyvK2G0nMOUqjXaVWISebmXI9l7dD0WWiB1 +5oEdvzYSgXts3tG8PsluIYEdN/mMwnOSpZlMda0wK5SEXf7Okjn3b+I6cxryrWsk +Uq3cA5DteK4q4AskLnpHK3w= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_cert.pem index 258d5c1..5d18a4b 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEbDCCA9WgAwIBAgIEAgSijTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV -BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf -MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xODA2MTUwMzMwNTFa -Fw0yODA2MTIwMzMwNTFaMIGbMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk -b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE -CxMFTU1QYXkxMDAuBgNVBAMUJ+emj+W7uuWQm+aYk+mBk+e9kee7nOenkeaKgOac -iemZkOWFrOWPuDERMA8GA1UEBBMIMTQ1OTQ3NDAwggEiMA0GCSqGSIb3DQEBAQUA -A4IBDwAwggEKAoIBAQDIqmQiBJ1ZEvcWTl2TnnizE4MkCwUl0+EtivS+aF8ZfIDV -aC6CZIyvLatq847rr252rQYkItdqSYNx9fK1TFiPsJ6kW8IlvhEYtS8z/tN5DhYV -+FOlKQXMhdZlc7HMxU8ZSSN6L/C9nTQVHBUhgH2kyG7GFL3BxU+PjiJGXjAiqtFH -fQcBdF1D3lg/jxlgXSAGmGSw7f2D4G0RxxBjodBXT2hQ75syqZIdCp57LR/SCeao -UaNaX4gCsiWd/jvk5EERmDCKMOHAnVC75If1BWjTdOmdeDOOPo9UP68KX7XlIpJk -wb4hIg0gUW9F7WPnBO8TamZu6pjK5HKlzaENeuANAgMBAAGjggFGMIIBQjAJBgNV -HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmlj -YXRlIjAdBgNVHQ4EFgQUw6vc4Vl+4BidEyfoYFZSDMyI4Tgwgb8GA1UdIwSBtzCB -tIAUPgUm9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIw -EAYDVQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdU -ZW5jZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkq -hkiG9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8E -BAMCBsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEA -MjahXrdYVSNLGhYDyrNnh1ozd+CQShBTrdkLGjjVuGzC5frc/+31FCBcO7kTddJK -N75ttAbkuejSzpLxZHTNBoTG9RAveTcbKMEH4i95TcRkTpHcFLnO6LKAFAkJQbC8 -friAP5g1vbc0eWzHv/OBCT/YojQDQJgAPBJ3nZZt+bQ= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEbDCCA9WgAwIBAgIEAgSijTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC +Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV +BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf +MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xODA2MTUwMzMwNTFa +Fw0yODA2MTIwMzMwNTFaMIGbMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk +b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE +CxMFTU1QYXkxMDAuBgNVBAMUJ+emj+W7uuWQm+aYk+mBk+e9kee7nOenkeaKgOac +iemZkOWFrOWPuDERMA8GA1UEBBMIMTQ1OTQ3NDAwggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQDIqmQiBJ1ZEvcWTl2TnnizE4MkCwUl0+EtivS+aF8ZfIDV +aC6CZIyvLatq847rr252rQYkItdqSYNx9fK1TFiPsJ6kW8IlvhEYtS8z/tN5DhYV ++FOlKQXMhdZlc7HMxU8ZSSN6L/C9nTQVHBUhgH2kyG7GFL3BxU+PjiJGXjAiqtFH +fQcBdF1D3lg/jxlgXSAGmGSw7f2D4G0RxxBjodBXT2hQ75syqZIdCp57LR/SCeao +UaNaX4gCsiWd/jvk5EERmDCKMOHAnVC75If1BWjTdOmdeDOOPo9UP68KX7XlIpJk +wb4hIg0gUW9F7WPnBO8TamZu6pjK5HKlzaENeuANAgMBAAGjggFGMIIBQjAJBgNV +HRMEAjAAMCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmlj +YXRlIjAdBgNVHQ4EFgQUw6vc4Vl+4BidEyfoYFZSDMyI4Tgwgb8GA1UdIwSBtzCB +tIAUPgUm9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIw +EAYDVQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdU +ZW5jZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkq +hkiG9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8E +BAMCBsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEA +MjahXrdYVSNLGhYDyrNnh1ozd+CQShBTrdkLGjjVuGzC5frc/+31FCBcO7kTddJK +N75ttAbkuejSzpLxZHTNBoTG9RAveTcbKMEH4i95TcRkTpHcFLnO6LKAFAkJQbC8 +friAP5g1vbc0eWzHv/OBCT/YojQDQJgAPBJ3nZZt+bQ= +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_key.pem index 642f6bf..1cb7171 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDIqmQiBJ1ZEvcW -Tl2TnnizE4MkCwUl0+EtivS+aF8ZfIDVaC6CZIyvLatq847rr252rQYkItdqSYNx -9fK1TFiPsJ6kW8IlvhEYtS8z/tN5DhYV+FOlKQXMhdZlc7HMxU8ZSSN6L/C9nTQV -HBUhgH2kyG7GFL3BxU+PjiJGXjAiqtFHfQcBdF1D3lg/jxlgXSAGmGSw7f2D4G0R -xxBjodBXT2hQ75syqZIdCp57LR/SCeaoUaNaX4gCsiWd/jvk5EERmDCKMOHAnVC7 -5If1BWjTdOmdeDOOPo9UP68KX7XlIpJkwb4hIg0gUW9F7WPnBO8TamZu6pjK5HKl -zaENeuANAgMBAAECggEBAJBsEiVprNWvEKa9QBw+siAwqvIF/G59UFO27u8br1Zo -hVES6mZud9KczALtyK9YU+iWHxVi/idBQZmDqmtRx2ujcopYgCMp6KQfwxlpDkrS -GJM3Zvw3yjSpHuVln1IBsCxCt4X5ewr9Wb7Xt12lXMh8eT2XL/uGRvzLD2AV6g8I -G71NFJ/UwAlsnCvmyClNU0Ty2Nub0G+5qlaNx5DuoFxgBU8AfAOGWGgM8Buseqsq -2OOXgDf6McfPg7XM+sACyhzbxjKdt9oWOOSDzm7GfFwfikfbL2evU0kJW9CKvrDq -XYLm6YK8pvi6YSsLyz1z8bt1eRnYN4lf1iGpfvoSrwECgYEA6FXc/Qnhr9DL7zH7 -+lO4dGhgHbdEjSDUys7ZhoKqhc45pVlYLaDKws9n+mBEYTlpmWbrHrhdafUjZ/VI -9sPnhvAyhxXXkdy3m1ZVrSX1D0YnWaKwre+Wv6cS2EhS7Gj0MYca+ri82K3g7fa7 -i8j7qh7t12gq7riWs53B0azoUusCgYEA3Rq9HpCIFX3x5wJxfiMayhYGGLLc9KqL -qoKJVk29tc7mr5uC39Pa1liMR30OIzNXrsibHx8WCYxVtlXyfPt8f5prB4JlPS11 -we4WC9vNbHf2g/Srx/LlUfnI8sDMcaDHIsqF3vhXFZcT9+a+k0qAgMo+ccP2c7Oy -TtPx7cBYqucCgYEApVKD36Kqb1rZ4qjkrmnodRzYWAzSwMG96VprOuW7xV7Lcjcz -IbSq0xiW2nip76zU0Y2EfOWfwwfmW9EUTFN2anR839bRAD/YfrZeXMkHqgi3c3bq -1boIwPN322MLbqH4MU38CrBt4JlJ1sqdBYjMW2+Kup6q/hdnVQRKqJKq9mUCgYBw -89/5ZUyf7h9OLGleTwC4jFfA9l76fsWq7dTLShvIbVJcE83gGpKJPeMsAi7evLPm -joTweSkA57hB1dZzEuafKXvT8kFV54to7wBEPp3K893zu2KmWufb4QdPPD81LTWO -CHgrWCLk3LFOy4pAJKdRJACSjdGxefN1YcEN/F1PsQKBgGuwRgSieqhtjAI4IFTQ -FqTYLON0Om1A6LSGNNib59R78/f/74D2qtE70GugfEYQEK92sXXyybHBveT/jIBv -nz1qGxBK0PAgJurEslwLIGybPkO1M2VxOXpXqhyjcuurCv5hr0e1KkrTaNfsaDpn -vcaZwqWYDHMAQ3gaREpRNp/y ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDIqmQiBJ1ZEvcW +Tl2TnnizE4MkCwUl0+EtivS+aF8ZfIDVaC6CZIyvLatq847rr252rQYkItdqSYNx +9fK1TFiPsJ6kW8IlvhEYtS8z/tN5DhYV+FOlKQXMhdZlc7HMxU8ZSSN6L/C9nTQV +HBUhgH2kyG7GFL3BxU+PjiJGXjAiqtFHfQcBdF1D3lg/jxlgXSAGmGSw7f2D4G0R +xxBjodBXT2hQ75syqZIdCp57LR/SCeaoUaNaX4gCsiWd/jvk5EERmDCKMOHAnVC7 +5If1BWjTdOmdeDOOPo9UP68KX7XlIpJkwb4hIg0gUW9F7WPnBO8TamZu6pjK5HKl +zaENeuANAgMBAAECggEBAJBsEiVprNWvEKa9QBw+siAwqvIF/G59UFO27u8br1Zo +hVES6mZud9KczALtyK9YU+iWHxVi/idBQZmDqmtRx2ujcopYgCMp6KQfwxlpDkrS +GJM3Zvw3yjSpHuVln1IBsCxCt4X5ewr9Wb7Xt12lXMh8eT2XL/uGRvzLD2AV6g8I +G71NFJ/UwAlsnCvmyClNU0Ty2Nub0G+5qlaNx5DuoFxgBU8AfAOGWGgM8Buseqsq +2OOXgDf6McfPg7XM+sACyhzbxjKdt9oWOOSDzm7GfFwfikfbL2evU0kJW9CKvrDq +XYLm6YK8pvi6YSsLyz1z8bt1eRnYN4lf1iGpfvoSrwECgYEA6FXc/Qnhr9DL7zH7 ++lO4dGhgHbdEjSDUys7ZhoKqhc45pVlYLaDKws9n+mBEYTlpmWbrHrhdafUjZ/VI +9sPnhvAyhxXXkdy3m1ZVrSX1D0YnWaKwre+Wv6cS2EhS7Gj0MYca+ri82K3g7fa7 +i8j7qh7t12gq7riWs53B0azoUusCgYEA3Rq9HpCIFX3x5wJxfiMayhYGGLLc9KqL +qoKJVk29tc7mr5uC39Pa1liMR30OIzNXrsibHx8WCYxVtlXyfPt8f5prB4JlPS11 +we4WC9vNbHf2g/Srx/LlUfnI8sDMcaDHIsqF3vhXFZcT9+a+k0qAgMo+ccP2c7Oy +TtPx7cBYqucCgYEApVKD36Kqb1rZ4qjkrmnodRzYWAzSwMG96VprOuW7xV7Lcjcz +IbSq0xiW2nip76zU0Y2EfOWfwwfmW9EUTFN2anR839bRAD/YfrZeXMkHqgi3c3bq +1boIwPN322MLbqH4MU38CrBt4JlJ1sqdBYjMW2+Kup6q/hdnVQRKqJKq9mUCgYBw +89/5ZUyf7h9OLGleTwC4jFfA9l76fsWq7dTLShvIbVJcE83gGpKJPeMsAi7evLPm +joTweSkA57hB1dZzEuafKXvT8kFV54to7wBEPp3K893zu2KmWufb4QdPPD81LTWO +CHgrWCLk3LFOy4pAJKdRJACSjdGxefN1YcEN/F1PsQKBgGuwRgSieqhtjAI4IFTQ +FqTYLON0Om1A6LSGNNib59R78/f/74D2qtE70GugfEYQEK92sXXyybHBveT/jIBv +nz1qGxBK0PAgJurEslwLIGybPkO1M2VxOXpXqhyjcuurCv5hr0e1KkrTaNfsaDpn +vcaZwqWYDHMAQ3gaREpRNp/y +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1390950502/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/证书使用说明.txt index a775010..2b5178e 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1390950502/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/证书使用说明.txt @@ -1,18 +1,18 @@ -欢迎使用微信支付! -附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem -备注说明: +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_cert.pem index 14b3558..3fff431 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYzCCA8ygAwIBAgIEAdibtDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV -BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf -MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xODAzMjcwMTM1MjZa -Fw0yODAzMjQwMTM1MjZaMIGSMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk -b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE -CxMFTU1QYXkxJzAlBgNVBAMUHuaxn+ilv+Wkqeebm+e9kee7nOaciemZkOWFrOWP -uDERMA8GA1UEBBMIMTUxODk1NTQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQC7Czq0IV1MdUywAltpzJr9hiDoK3lnqo1VP+oU7rP0D7jC6EzcCjx8J9sL -ukF+AAJVypYvK8seSXgKS5+x2LL0JbBQtvGJLYy5MM9t0w4xwhT6MV7xO1CkTNdJ -gBsS9H+bU66WNWh4mkDmdVoA02bCYErkzQ0JDwr6GN8WZp4j2TNWQ8MHsKFNGRML -sGAJwP7DVezy9Id503hTDHVn9naw13JjGXI6J20WUiBmeyxDO538Vgy2psrJCKM5 -jOHjRWnKnGoi7bUpu2xjcWgib5fjV3dFTyjqRoH0ciM+uc96z9Amk8WEXY0sRM1l -PwZzgeB998pZQOcYjlMpAhXbogZNAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAAMCwG -CWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAdBgNV -HQ4EFgQUWv5LtuMGBrWRp0fqeygAYwx5Pt8wgb8GA1UdIwSBtzCBtIAUPgUm9iJi -tBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlH -dWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQww -CgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0BCQEW -EG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAwFgYD -VR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAvSZI4FwJ29hQ -2tL7iS3gLhB3K0exK9lQfBQ6JQAfoFmvXQUtA23H41AEKFjt/INB0DL7JhEMEa9H -aykFFO+qrjzut6HU25mFcVSsfTC5F6mtf/K5KPTRw6X5QQHNBazYH3Q4IiPJWAMX -gc3OOYfC21kUXyC4KlE4gpfwcKsZcLc= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYzCCA8ygAwIBAgIEAdibtDANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC +Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV +BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf +MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xODAzMjcwMTM1MjZa +Fw0yODAzMjQwMTM1MjZaMIGSMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk +b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE +CxMFTU1QYXkxJzAlBgNVBAMUHuaxn+ilv+Wkqeebm+e9kee7nOaciemZkOWFrOWP +uDERMA8GA1UEBBMIMTUxODk1NTQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC7Czq0IV1MdUywAltpzJr9hiDoK3lnqo1VP+oU7rP0D7jC6EzcCjx8J9sL +ukF+AAJVypYvK8seSXgKS5+x2LL0JbBQtvGJLYy5MM9t0w4xwhT6MV7xO1CkTNdJ +gBsS9H+bU66WNWh4mkDmdVoA02bCYErkzQ0JDwr6GN8WZp4j2TNWQ8MHsKFNGRML +sGAJwP7DVezy9Id503hTDHVn9naw13JjGXI6J20WUiBmeyxDO538Vgy2psrJCKM5 +jOHjRWnKnGoi7bUpu2xjcWgib5fjV3dFTyjqRoH0ciM+uc96z9Amk8WEXY0sRM1l +PwZzgeB998pZQOcYjlMpAhXbogZNAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAAMCwG +CWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAdBgNV +HQ4EFgQUWv5LtuMGBrWRp0fqeygAYwx5Pt8wgb8GA1UdIwSBtzCBtIAUPgUm9iJi +tBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlH +dWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQww +CgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0BCQEW +EG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAwFgYD +VR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAvSZI4FwJ29hQ +2tL7iS3gLhB3K0exK9lQfBQ6JQAfoFmvXQUtA23H41AEKFjt/INB0DL7JhEMEa9H +aykFFO+qrjzut6HU25mFcVSsfTC5F6mtf/K5KPTRw6X5QQHNBazYH3Q4IiPJWAMX +gc3OOYfC21kUXyC4KlE4gpfwcKsZcLc= +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_key.pem index 5400451..8f490ca 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC7Czq0IV1MdUyw -AltpzJr9hiDoK3lnqo1VP+oU7rP0D7jC6EzcCjx8J9sLukF+AAJVypYvK8seSXgK -S5+x2LL0JbBQtvGJLYy5MM9t0w4xwhT6MV7xO1CkTNdJgBsS9H+bU66WNWh4mkDm -dVoA02bCYErkzQ0JDwr6GN8WZp4j2TNWQ8MHsKFNGRMLsGAJwP7DVezy9Id503hT -DHVn9naw13JjGXI6J20WUiBmeyxDO538Vgy2psrJCKM5jOHjRWnKnGoi7bUpu2xj -cWgib5fjV3dFTyjqRoH0ciM+uc96z9Amk8WEXY0sRM1lPwZzgeB998pZQOcYjlMp -AhXbogZNAgMBAAECggEBAJrA5LYKcNYEqwlpOdbkWUvvQKS264Cw5LSm5/aftLX2 -mAhzCLx5n6edlicy2GL2gPgYYH/wvOJ3KOFjxmHwB8fmsuVlJ5w22pqSXtzf5XuX -t6F1Xbc7OzJk/S6r1jqtnjKWXvmagLBf99h1OZ07S2cBIpYBbYqULqHUGCfBiY/g -BoEvZvA3ViK4W0APQNCi2GEHbCkLewBFyquuBSw1frefjFa0HKdR/v/XRaZx2OpS -uPrxK7nwwHl4PdcSp7R/vUBGImIx8j9ecFgItq8spaaa1oGBxpgYpxLNFZVBRr+b -keaD87Ywmdge8C6Xgv6Dj2FK2cxl1zadYhyHBqlCdOECgYEA72VIZl7UHrwbBJ3/ -5Ylvy2ww9LSz1nj8KVnv7Mqq5uxYo9g6NcPtHC8p4y9CNb2I2d9H125hwIzCUJ3o -hdFM4jQTM740ovrK9xfkuOZQGpMryacxTa5LXA7Le+zQLmjD9tCS0RLKjP1IxMIJ -r+jbq3LEbW8hkHhYYkfE06Y1RQkCgYEAyARi+n9QKPKMw/oq59rvAg+HX6oe4xjK -+0ltDh7lFlw3SiJNxKwhw5jOjoknEo5jGS61H+KWBEy/mvIFAmASf2a9sz2PBE5e -vjoGJjcnmfcXtPGBsjA7weiO+/ON87nRo2tAAYj1AkRUjQhqFL3TLXPjbo6A8BGd -7ENMgxdlrCUCgYBzvl5g0Fxyd7QAaXu9uNNKYQbSaUPB4EDapVcw/1PdzkuU/Ag4 -0n+jbtIruz+hx/+Qhzmu2Pl+JRAV9iLkACvR+ieGjuHYIrVa/jxhgUkdcCZtmt5l -lm1tFuIfCoIkzhZhELrLRvCTdipmpwIUANukaxq5Zk+uD+F7swNg6S08MQKBgQCY -xpD7mQcXX7yZbJodIqLwxf+22HBjMerI6Zq88Gg3HhS1MWKJWJkpl6wePzBzAgM7 -luuOATpo6l5n8XhWCh/W5Bj9sYVt2paPYi6UPginl46qDNXtzt22DPY6CBxjD4nK -8v6erYfHRX33g3fTg/KrgxsytPJTbIFdl0H314U3aQKBgA1T6PFKA14VI6sgjxuT -I+j5JSnu0BnRecsWiDdT5oi+UEkQ0QIvBOzpLe5SQnqO9LMSo9mRW/UjRCUvFWjQ -XQBcdmWX01bb5bAs1K9dePuMR8QLuRBDTsAYfx3GttC9QgwAHdNVR9NvkuVeb8Ar -Y5QC0ufmlFpBTHzYmdMuS/VF ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC7Czq0IV1MdUyw +AltpzJr9hiDoK3lnqo1VP+oU7rP0D7jC6EzcCjx8J9sLukF+AAJVypYvK8seSXgK +S5+x2LL0JbBQtvGJLYy5MM9t0w4xwhT6MV7xO1CkTNdJgBsS9H+bU66WNWh4mkDm +dVoA02bCYErkzQ0JDwr6GN8WZp4j2TNWQ8MHsKFNGRMLsGAJwP7DVezy9Id503hT +DHVn9naw13JjGXI6J20WUiBmeyxDO538Vgy2psrJCKM5jOHjRWnKnGoi7bUpu2xj +cWgib5fjV3dFTyjqRoH0ciM+uc96z9Amk8WEXY0sRM1lPwZzgeB998pZQOcYjlMp +AhXbogZNAgMBAAECggEBAJrA5LYKcNYEqwlpOdbkWUvvQKS264Cw5LSm5/aftLX2 +mAhzCLx5n6edlicy2GL2gPgYYH/wvOJ3KOFjxmHwB8fmsuVlJ5w22pqSXtzf5XuX +t6F1Xbc7OzJk/S6r1jqtnjKWXvmagLBf99h1OZ07S2cBIpYBbYqULqHUGCfBiY/g +BoEvZvA3ViK4W0APQNCi2GEHbCkLewBFyquuBSw1frefjFa0HKdR/v/XRaZx2OpS +uPrxK7nwwHl4PdcSp7R/vUBGImIx8j9ecFgItq8spaaa1oGBxpgYpxLNFZVBRr+b +keaD87Ywmdge8C6Xgv6Dj2FK2cxl1zadYhyHBqlCdOECgYEA72VIZl7UHrwbBJ3/ +5Ylvy2ww9LSz1nj8KVnv7Mqq5uxYo9g6NcPtHC8p4y9CNb2I2d9H125hwIzCUJ3o +hdFM4jQTM740ovrK9xfkuOZQGpMryacxTa5LXA7Le+zQLmjD9tCS0RLKjP1IxMIJ +r+jbq3LEbW8hkHhYYkfE06Y1RQkCgYEAyARi+n9QKPKMw/oq59rvAg+HX6oe4xjK ++0ltDh7lFlw3SiJNxKwhw5jOjoknEo5jGS61H+KWBEy/mvIFAmASf2a9sz2PBE5e +vjoGJjcnmfcXtPGBsjA7weiO+/ON87nRo2tAAYj1AkRUjQhqFL3TLXPjbo6A8BGd +7ENMgxdlrCUCgYBzvl5g0Fxyd7QAaXu9uNNKYQbSaUPB4EDapVcw/1PdzkuU/Ag4 +0n+jbtIruz+hx/+Qhzmu2Pl+JRAV9iLkACvR+ieGjuHYIrVa/jxhgUkdcCZtmt5l +lm1tFuIfCoIkzhZhELrLRvCTdipmpwIUANukaxq5Zk+uD+F7swNg6S08MQKBgQCY +xpD7mQcXX7yZbJodIqLwxf+22HBjMerI6Zq88Gg3HhS1MWKJWJkpl6wePzBzAgM7 +luuOATpo6l5n8XhWCh/W5Bj9sYVt2paPYi6UPginl46qDNXtzt22DPY6CBxjD4nK +8v6erYfHRX33g3fTg/KrgxsytPJTbIFdl0H314U3aQKBgA1T6PFKA14VI6sgjxuT +I+j5JSnu0BnRecsWiDdT5oi+UEkQ0QIvBOzpLe5SQnqO9LMSo9mRW/UjRCUvFWjQ +XQBcdmWX01bb5bAs1K9dePuMR8QLuRBDTsAYfx3GttC9QgwAHdNVR9NvkuVeb8Ar +Y5QC0ufmlFpBTHzYmdMuS/VF +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/rootca.pem b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/rootca.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/证书使用说明.txt index a775010..2b5178e 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/证书使用说明.txt @@ -1,18 +1,18 @@ -欢迎使用微信支付! -附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem -备注说明: +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_cert.pem index 006c695..79d9ab3 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEazCCA9SgAwIBAgIDdCZUMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTIzMDA3NTA1M1oX -DTI2MTIyODA3NTA1M1owgZsxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEwMC4GA1UEAxQn5rGf6KW/5riU5LmQ5a62572R57uc56eR5oqA5pyJ -6ZmQ5YWs5Y+4MREwDwYDVQQEEwgxNzY2NTIwMjCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKHpH7LqOvYdWFl3mLUc7gG8/9E90d0gN83xhWvegah7VT3s -oOJoygX4599jcgVFZXVWiyEzqTRZZQ7f5FeDSb9ZynBg6fanYb1C/FqswN3pYJWy -d+a+Op2XsT7QoSK+4Eev/vqP6OX9xt3Kys4tu2190XvScI2Gsk5So31zkrIkHX3W -HLCa+J/cI2cbcR4pSsJRBGgvLNxbfes98xUPqI9j9Ui0KT/5+4qgmvKbXuwvmOYQ -h9m62+K4H+33V/ANetNouIJWh92LSorlDzRtazZSMth4utTw9WRy0mVRu7qd6s7A -aMv+uslrrRnzIbjf0cZDUAXRn0U3POwIkaIgpp8CAwEAAaOCAUYwggFCMAkGA1Ud -EwQCMAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNh -dGUiMB0GA1UdDgQWBBTHAqvjBd+m7degGIxTjZBKj22lkzCBvwYDVR0jBIG3MIG0 -gBQ+BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQ -BgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1Rl -bmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqG -SIb3DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQE -AwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAa -caf82+6e5AgCTOyP6Ozq1+ao1nWVjzgMy4yRKmsUUczf/v+rUdz8U7UFZ1ICN3NY -bs57gJ/ZLSHtCk/L6AkvBwY+ri0iC2oD88AiMjdycgyjHHoheEYSV6T3qLwkMqZY -FCXJMDqIgoakpVv+l+du1kJVoOwAY1M9SHN791z5nw== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEazCCA9SgAwIBAgIDdCZUMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTIzMDA3NTA1M1oX +DTI2MTIyODA3NTA1M1owgZsxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEwMC4GA1UEAxQn5rGf6KW/5riU5LmQ5a62572R57uc56eR5oqA5pyJ +6ZmQ5YWs5Y+4MREwDwYDVQQEEwgxNzY2NTIwMjCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKHpH7LqOvYdWFl3mLUc7gG8/9E90d0gN83xhWvegah7VT3s +oOJoygX4599jcgVFZXVWiyEzqTRZZQ7f5FeDSb9ZynBg6fanYb1C/FqswN3pYJWy +d+a+Op2XsT7QoSK+4Eev/vqP6OX9xt3Kys4tu2190XvScI2Gsk5So31zkrIkHX3W +HLCa+J/cI2cbcR4pSsJRBGgvLNxbfes98xUPqI9j9Ui0KT/5+4qgmvKbXuwvmOYQ +h9m62+K4H+33V/ANetNouIJWh92LSorlDzRtazZSMth4utTw9WRy0mVRu7qd6s7A +aMv+uslrrRnzIbjf0cZDUAXRn0U3POwIkaIgpp8CAwEAAaOCAUYwggFCMAkGA1Ud +EwQCMAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNh +dGUiMB0GA1UdDgQWBBTHAqvjBd+m7degGIxTjZBKj22lkzCBvwYDVR0jBIG3MIG0 +gBQ+BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQ +BgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1Rl +bmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqG +SIb3DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQE +AwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAa +caf82+6e5AgCTOyP6Ozq1+ao1nWVjzgMy4yRKmsUUczf/v+rUdz8U7UFZ1ICN3NY +bs57gJ/ZLSHtCk/L6AkvBwY+ri0iC2oD88AiMjdycgyjHHoheEYSV6T3qLwkMqZY +FCXJMDqIgoakpVv+l+du1kJVoOwAY1M9SHN791z5nw== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_key.pem index fd1b6d2..dbb8d8d 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCh6R+y6jr2HVhZ -d5i1HO4BvP/RPdHdIDfN8YVr3oGoe1U97KDiaMoF+OffY3IFRWV1VoshM6k0WWUO -3+RXg0m/WcpwYOn2p2G9QvxarMDd6WCVsnfmvjqdl7E+0KEivuBHr/76j+jl/cbd -ysrOLbttfdF70nCNhrJOUqN9c5KyJB191hywmvif3CNnG3EeKUrCUQRoLyzcW33r -PfMVD6iPY/VItCk/+fuKoJrym17sL5jmEIfZutviuB/t91fwDXrTaLiCVofdi0qK -5Q80bWs2UjLYeLrU8PVkctJlUbu6nerOwGjL/rrJa60Z8yG439HGQ1AF0Z9FNzzs -CJGiIKafAgMBAAECggEAahlcPmAjlxgPx0EJ/tUgWl9BvBoopiDwsLHuXouGp6N6 -boPbwcItcNB1EfwWwcGCBOxba7xwyu8xvBeXiIluEEiE0jOP3aQ99kopGDpQgJro -QfCbhcduncrDyYfpr90pF5ELI6KeWeh9IuY7E/T/93YVinCSdQupWI3quNC9dqIN -EgYKDctBFGe+f1KtzcJfUWDeD8MWTOqhDnt77gxekFxli4O//ARDRN6i1mZjU/Bo -GH02DsdK/rA12qGhrfJP6sfyNoBlTBIurUT7VG9AIT2UknG+uH4qLGCEMU09cKzg -F1cH+6qsI6s03tfQK8voYtGvK4fg1KXrolaQgL4mQQKBgQDQhOjUdpfsz1KyRZKd -s41aovGi1dkzZS4AXWbIGW1ovB7IdbGd/NZq7N194SbG5+sn7JFED6statvV/gwa -7XviGWAWh4AWnQT3A+EH6x0izRLs3iQB3x6JnL6tDdA3XfcwvSAUjicHP+HTfJPK -6zqY5Mihz07r6lt6tg01DYOnjwKBgQDGx0oI0JQML6tLfK7EReBmOQ0lmbh5Jkst -Hzm2V2Uuc11FGQ47AU3wlMkWk5OCURgOQWoZnxYlAhy2OB8MnAQku0ZAWSwjeHEW -vZu+XQFVFMs23FVb/dD5eB7eJSCNKSugzhHgs6nNj5MreHU+3cmJDTJThwBU+kY1 -QZGe8TUH8QKBgQCBFBVxGCy5yik98/Vrq+9v0PhVvZ1jxFlynl72tU7WC8Xef4TA -8PfmXtRJjSvM61nVcAsIn85uIf0N/eKOdL5AW0bxC1YOKYseQgd2OGPj3CDAAk81 -3WFw/FfIlolzDLbtM9X9A3ZDdZccrLxsW6r9ZHqSN9t6DKwuTS3lzoTWHwKBgBdd -HzeQBIa2J6UUv5n0OJ7rP79WpRcgSB/Cls720L638pOHkWOgEKAhbM1JhUIA9Bng -2G6wgzLQX72PNR8PS3Fhza0MjiKRKoGowaCLX/e3HPeSyDmqyKA53S7xIDVXTHh3 -ICTQGTo/EOZAH0/HU8PXGD43FPPoAs6JqWsMINaRAoGAJA7PlrCzd4rbm0IOFqj+ -rsF16/NqS3GN34j74JWvTxkDew7sa2hmsndZAVsn+6l7PT3pxzRiq0lDFt8NiciO -oc4dTRcvKFQMcfClYlE9/PckFKZpCl/XDfNirwEJilTY4E5kLWG1Jsrf7k5F/Q99 -AY3pNzVB+L03PIBLjvAdBXI= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCh6R+y6jr2HVhZ +d5i1HO4BvP/RPdHdIDfN8YVr3oGoe1U97KDiaMoF+OffY3IFRWV1VoshM6k0WWUO +3+RXg0m/WcpwYOn2p2G9QvxarMDd6WCVsnfmvjqdl7E+0KEivuBHr/76j+jl/cbd +ysrOLbttfdF70nCNhrJOUqN9c5KyJB191hywmvif3CNnG3EeKUrCUQRoLyzcW33r +PfMVD6iPY/VItCk/+fuKoJrym17sL5jmEIfZutviuB/t91fwDXrTaLiCVofdi0qK +5Q80bWs2UjLYeLrU8PVkctJlUbu6nerOwGjL/rrJa60Z8yG439HGQ1AF0Z9FNzzs +CJGiIKafAgMBAAECggEAahlcPmAjlxgPx0EJ/tUgWl9BvBoopiDwsLHuXouGp6N6 +boPbwcItcNB1EfwWwcGCBOxba7xwyu8xvBeXiIluEEiE0jOP3aQ99kopGDpQgJro +QfCbhcduncrDyYfpr90pF5ELI6KeWeh9IuY7E/T/93YVinCSdQupWI3quNC9dqIN +EgYKDctBFGe+f1KtzcJfUWDeD8MWTOqhDnt77gxekFxli4O//ARDRN6i1mZjU/Bo +GH02DsdK/rA12qGhrfJP6sfyNoBlTBIurUT7VG9AIT2UknG+uH4qLGCEMU09cKzg +F1cH+6qsI6s03tfQK8voYtGvK4fg1KXrolaQgL4mQQKBgQDQhOjUdpfsz1KyRZKd +s41aovGi1dkzZS4AXWbIGW1ovB7IdbGd/NZq7N194SbG5+sn7JFED6statvV/gwa +7XviGWAWh4AWnQT3A+EH6x0izRLs3iQB3x6JnL6tDdA3XfcwvSAUjicHP+HTfJPK +6zqY5Mihz07r6lt6tg01DYOnjwKBgQDGx0oI0JQML6tLfK7EReBmOQ0lmbh5Jkst +Hzm2V2Uuc11FGQ47AU3wlMkWk5OCURgOQWoZnxYlAhy2OB8MnAQku0ZAWSwjeHEW +vZu+XQFVFMs23FVb/dD5eB7eJSCNKSugzhHgs6nNj5MreHU+3cmJDTJThwBU+kY1 +QZGe8TUH8QKBgQCBFBVxGCy5yik98/Vrq+9v0PhVvZ1jxFlynl72tU7WC8Xef4TA +8PfmXtRJjSvM61nVcAsIn85uIf0N/eKOdL5AW0bxC1YOKYseQgd2OGPj3CDAAk81 +3WFw/FfIlolzDLbtM9X9A3ZDdZccrLxsW6r9ZHqSN9t6DKwuTS3lzoTWHwKBgBdd +HzeQBIa2J6UUv5n0OJ7rP79WpRcgSB/Cls720L638pOHkWOgEKAhbM1JhUIA9Bng +2G6wgzLQX72PNR8PS3Fhza0MjiKRKoGowaCLX/e3HPeSyDmqyKA53S7xIDVXTHh3 +ICTQGTo/EOZAH0/HU8PXGD43FPPoAs6JqWsMINaRAoGAJA7PlrCzd4rbm0IOFqj+ +rsF16/NqS3GN34j74JWvTxkDew7sa2hmsndZAVsn+6l7PT3pxzRiq0lDFt8NiciO +oc4dTRcvKFQMcfClYlE9/PckFKZpCl/XDfNirwEJilTY4E5kLWG1Jsrf7k5F/Q99 +AY3pNzVB+L03PIBLjvAdBXI= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1430158002/rootca.pem b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1430158002/rootca.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1430158002/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1430158002/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_cert.pem index 2c45c69..b6720b0 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEbzCCA9igAwIBAgIEAWDOITANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV -BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf -MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA3MjUwODMwMDZa -Fw0yNzA3MjMwODMwMDZaMIGeMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk -b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE -CxMFTU1QYXkxMzAxBgNVBAMUKuaxn+ilv+Wkqeebm+S6keeUn+enkeaKgOmbhuWb -ouaciemZkOWFrOWPuDERMA8GA1UEBBMIMTkwMzMxNzYwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQC5zkWrOL620z9w7lU+JvbnFQ/6Wee+6Wh/wwM1y3q5 -nTM6C8ipfEnPjLXaEx57INAxk/ncjCUtHqJchh5fsBOmV/ZaUgFvFZmp3LuVqmYr -qN4YcgljW5ClR+V6skphGrJO6TAzgEhROqZ9b9aUfoINhVgeAF6X+Wehm5RA+bD3 -LzT36TvioRfiJCAYNLXCjlYi+L4SR5cTQfUAp9qdGHMrMKiE8m3oq+lcTOiQOQp4 -lD6/LBe5MvBfDYoOuYKseMX7kbTH6gD+nbPdEnqTruxZmLLQv+wflhHb6KOd++ws -mm3hPyydZ+GKhXJnP5pGnA81M+AeY2llVe19YUrkE+1LAgMBAAGjggFGMIIBQjAJ -BgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRp -ZmljYXRlIjAdBgNVHQ4EFgQU/IkmV0gg2CEi4kb54RrA4MkdQ8cwgb8GA1UdIwSB -tzCBtIAUPgUm9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNO -MRIwEAYDVQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQK -EwdUZW5jZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAd -BgkqhkiG9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8B -Af8EBAMCBsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQAD -gYEAJXxC7IF6E8P7rRAiTGxmKY735aS1/AiKBURdO4tJDWv4vLgFSZX8Fy7VrdDg -DTLOl+P9/qSdNhm+L6S9PtCSMQWpc3FdsE5s1wS112WHvswGHXrvHPnG3p30AUiv -uYJH/hYLKUnsH2agL1lFlHWxpwjS27Lad1qfSHqB2YjxqoQ= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEbzCCA9igAwIBAgIEAWDOITANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC +Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV +BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf +MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA3MjUwODMwMDZa +Fw0yNzA3MjMwODMwMDZaMIGeMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk +b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE +CxMFTU1QYXkxMzAxBgNVBAMUKuaxn+ilv+Wkqeebm+S6keeUn+enkeaKgOmbhuWb +ouaciemZkOWFrOWPuDERMA8GA1UEBBMIMTkwMzMxNzYwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQC5zkWrOL620z9w7lU+JvbnFQ/6Wee+6Wh/wwM1y3q5 +nTM6C8ipfEnPjLXaEx57INAxk/ncjCUtHqJchh5fsBOmV/ZaUgFvFZmp3LuVqmYr +qN4YcgljW5ClR+V6skphGrJO6TAzgEhROqZ9b9aUfoINhVgeAF6X+Wehm5RA+bD3 +LzT36TvioRfiJCAYNLXCjlYi+L4SR5cTQfUAp9qdGHMrMKiE8m3oq+lcTOiQOQp4 +lD6/LBe5MvBfDYoOuYKseMX7kbTH6gD+nbPdEnqTruxZmLLQv+wflhHb6KOd++ws +mm3hPyydZ+GKhXJnP5pGnA81M+AeY2llVe19YUrkE+1LAgMBAAGjggFGMIIBQjAJ +BgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRp +ZmljYXRlIjAdBgNVHQ4EFgQU/IkmV0gg2CEi4kb54RrA4MkdQ8cwgb8GA1UdIwSB +tzCBtIAUPgUm9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNO +MRIwEAYDVQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQK +EwdUZW5jZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAd +BgkqhkiG9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8B +Af8EBAMCBsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQAD +gYEAJXxC7IF6E8P7rRAiTGxmKY735aS1/AiKBURdO4tJDWv4vLgFSZX8Fy7VrdDg +DTLOl+P9/qSdNhm+L6S9PtCSMQWpc3FdsE5s1wS112WHvswGHXrvHPnG3p30AUiv +uYJH/hYLKUnsH2agL1lFlHWxpwjS27Lad1qfSHqB2YjxqoQ= +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_key.pem index 6705fb5..8753e37 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5zkWrOL620z9w -7lU+JvbnFQ/6Wee+6Wh/wwM1y3q5nTM6C8ipfEnPjLXaEx57INAxk/ncjCUtHqJc -hh5fsBOmV/ZaUgFvFZmp3LuVqmYrqN4YcgljW5ClR+V6skphGrJO6TAzgEhROqZ9 -b9aUfoINhVgeAF6X+Wehm5RA+bD3LzT36TvioRfiJCAYNLXCjlYi+L4SR5cTQfUA -p9qdGHMrMKiE8m3oq+lcTOiQOQp4lD6/LBe5MvBfDYoOuYKseMX7kbTH6gD+nbPd -EnqTruxZmLLQv+wflhHb6KOd++wsmm3hPyydZ+GKhXJnP5pGnA81M+AeY2llVe19 -YUrkE+1LAgMBAAECggEAG6jVPjPoUBcKbqlMD0CFqMi95CrWENl2MO6635s23cLF -CXMPoAtcgYUU3S3Tb8jmtTquC2LhdeIFkXh1tRDlG/IkPjXO+NZiVaMCWblQFFfD -GCiBtUTAN5qIUsePwvzSZmTYRBJosY7lke7AJsLeYVzkTTMI4d7Cyo/6deG1slYX -bq3FBx+Zd7SpVUyvzNZOrduqwXZN9Du+YuApy7MtMyLDUxkg9alHkVn9XWut3+yo -u4xGZkrYgw21gi4mGrhBW54HxbaI0RogFd82BudchkMke2/8Q9xM8MYeiiA0ewrP -uOGa9HOewQxv1epnSPicfsEk6/NDqcUj1WEr7VOUQQKBgQDw+I6k5fFYIFRNRuSf -Qm/Uoz8k6x9XD38ZAUuQv4YYKykdBIJJrRLuBOQzrNU3YLXCrMiuf/Sdbu6V8JH9 -xZsY3SugB3Wzh96OxXvot7nviDT2fsrzwdw/2LRMipy2ICBEBT+ASqMrigb5GLwW -GAoTR5bZEUVvaCYcs4x9HQ2ruQKBgQDFZOy0Ca9rLTxuUYWxsqez4DpDr15s3xXQ -l81QYG7ABFV3Z8Kjr/DNTKmAUXd4hbJiPvhnlPJdEcFQRsiFnR8QoAqtDpb6cv7u -F7YqasXFJV3+5xgj0vPXwdagwHxSaHEQd4QjZm76hiF0hY89jz36DjaYFCUE4Lik -iJ/DoriLIwKBgQC9LbX2+VsHH6JvZLe53FOlcV/yYPCizdSvUdf8VJA2yzOkx1Rt -+QWCfa6WbxqZNkCcDEAk1um46009w7cprwg7de943EJoZsOv/JRxuEOuLJW/6vz0 -b361VTD/YlbzmLccD66xzmbZmKwuxV9sTQUj67EeyzNi6jX5lHA4DSYdaQKBgA1X -yyBIX1ExV5plbFIcr3VbPNUCb7GQSts0x64dNp9IK7bMjr2d0PsvqW2BFEBTWUGG -3Ce0S8W6w4R3pGpTupvXFaGpEM+RImZZt/iaCxBOfFIUsO8K/WyiL63iFQVFBg+E -5Ku36tyIYI6N0KbqndffShVxlycDQbftfE8vGqZdAoGBANRCo20aqSnwdrRqNbaR -fD0BwfvxYqaoA9ODojsD+NtPtaamTcZXGEK5ySmcM4Vibf7bx7K9Q9lCm2BVKBe6 -Tli63g+PpBMzPFfW5Wo5ip3MU7tYiB5XLoEaUtS3xfkR/sue3XrgDUP1ZTh7qlRI -+NoCBl7bAQVmf1CV46W24PhI ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC5zkWrOL620z9w +7lU+JvbnFQ/6Wee+6Wh/wwM1y3q5nTM6C8ipfEnPjLXaEx57INAxk/ncjCUtHqJc +hh5fsBOmV/ZaUgFvFZmp3LuVqmYrqN4YcgljW5ClR+V6skphGrJO6TAzgEhROqZ9 +b9aUfoINhVgeAF6X+Wehm5RA+bD3LzT36TvioRfiJCAYNLXCjlYi+L4SR5cTQfUA +p9qdGHMrMKiE8m3oq+lcTOiQOQp4lD6/LBe5MvBfDYoOuYKseMX7kbTH6gD+nbPd +EnqTruxZmLLQv+wflhHb6KOd++wsmm3hPyydZ+GKhXJnP5pGnA81M+AeY2llVe19 +YUrkE+1LAgMBAAECggEAG6jVPjPoUBcKbqlMD0CFqMi95CrWENl2MO6635s23cLF +CXMPoAtcgYUU3S3Tb8jmtTquC2LhdeIFkXh1tRDlG/IkPjXO+NZiVaMCWblQFFfD +GCiBtUTAN5qIUsePwvzSZmTYRBJosY7lke7AJsLeYVzkTTMI4d7Cyo/6deG1slYX +bq3FBx+Zd7SpVUyvzNZOrduqwXZN9Du+YuApy7MtMyLDUxkg9alHkVn9XWut3+yo +u4xGZkrYgw21gi4mGrhBW54HxbaI0RogFd82BudchkMke2/8Q9xM8MYeiiA0ewrP +uOGa9HOewQxv1epnSPicfsEk6/NDqcUj1WEr7VOUQQKBgQDw+I6k5fFYIFRNRuSf +Qm/Uoz8k6x9XD38ZAUuQv4YYKykdBIJJrRLuBOQzrNU3YLXCrMiuf/Sdbu6V8JH9 +xZsY3SugB3Wzh96OxXvot7nviDT2fsrzwdw/2LRMipy2ICBEBT+ASqMrigb5GLwW +GAoTR5bZEUVvaCYcs4x9HQ2ruQKBgQDFZOy0Ca9rLTxuUYWxsqez4DpDr15s3xXQ +l81QYG7ABFV3Z8Kjr/DNTKmAUXd4hbJiPvhnlPJdEcFQRsiFnR8QoAqtDpb6cv7u +F7YqasXFJV3+5xgj0vPXwdagwHxSaHEQd4QjZm76hiF0hY89jz36DjaYFCUE4Lik +iJ/DoriLIwKBgQC9LbX2+VsHH6JvZLe53FOlcV/yYPCizdSvUdf8VJA2yzOkx1Rt ++QWCfa6WbxqZNkCcDEAk1um46009w7cprwg7de943EJoZsOv/JRxuEOuLJW/6vz0 +b361VTD/YlbzmLccD66xzmbZmKwuxV9sTQUj67EeyzNi6jX5lHA4DSYdaQKBgA1X +yyBIX1ExV5plbFIcr3VbPNUCb7GQSts0x64dNp9IK7bMjr2d0PsvqW2BFEBTWUGG +3Ce0S8W6w4R3pGpTupvXFaGpEM+RImZZt/iaCxBOfFIUsO8K/WyiL63iFQVFBg+E +5Ku36tyIYI6N0KbqndffShVxlycDQbftfE8vGqZdAoGBANRCo20aqSnwdrRqNbaR +fD0BwfvxYqaoA9ODojsD+NtPtaamTcZXGEK5ySmcM4Vibf7bx7K9Q9lCm2BVKBe6 +Tli63g+PpBMzPFfW5Wo5ip3MU7tYiB5XLoEaUtS3xfkR/sue3XrgDUP1ZTh7qlRI ++NoCBl7bAQVmf1CV46W24PhI +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1435214302/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/证书使用说明.txt index a775010..2b5178e 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1435214302/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/证书使用说明.txt @@ -1,18 +1,18 @@ -欢迎使用微信支付! -附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem -备注说明: +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_cert.pem index 6142b00..77d7e45 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEaTCCA9KgAwIBAgIEATvOWzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV -BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf -MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA2MDgwOTIwMzda -Fw0yNzA2MDYwOTIwMzdaMIGYMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk -b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE -CxMFTU1QYXkxLTArBgNVBAMUJOaxn+ilv+mBk+aji+e9kee7nOenkeaKgOaciemZ -kOWFrOWPuDERMA8GA1UEBBMIMzA4MjM1NzAwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDvZswXWvmNdJskZQzKM87hmyyiq+4gqWWllBndpEgnvxpFEIP0 -clr+Rt5EUEqw/MDa4lDw6uE5jUmdKNpthhx91r/C7YKUDXybXfz0X/N3VWI0dSQk -KwI5nLj7tUskqapWTCXqRP7yOcEs5Yeh1AlpNtJEiCNGuyq+YQ2+r2sYR/xUCdcB -Rohio+Y6EZKycQydWR/KYCfMN/fiBlHefaNMFeMqWy7hCG+XaLTHdL/CBH2GJjYn -UiWFQPlm50z4L6UatOwjZ4aa71UMlBLq6km/Q6a9XyckQp6yxbDqj7dkCWpgYCrk -ocyoIqew6Anh0GhaSic2IrJuhvIsVu/Qw5FTAgMBAAGjggFGMIIBQjAJBgNVHRME -AjAAMCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRl -IjAdBgNVHQ4EFgQUCwNohxijGGjT5ggasz84R3zfVxEwgb8GA1UdIwSBtzCBtIAU -PgUm9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYD -VQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5j -ZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG -9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMC -BsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAEs73 -7x81NnfpHPi4Bo2IvGkwQsfmRdCT2LGk3cHwdHBjpeaEbNmtfrmwf6jfMHk7FL30 -Uix3RkhUM2hRerHF9qQnwKTziSZGrmeIDMjH1PbsKvLFgzDbI4BhM6zCQvdAr4j7 -bHs3ERujqhwO00NOuFxDhLYATF7WpfUlKlstwfE= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEaTCCA9KgAwIBAgIEATvOWzANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC +Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV +BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf +MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA2MDgwOTIwMzda +Fw0yNzA2MDYwOTIwMzdaMIGYMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk +b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE +CxMFTU1QYXkxLTArBgNVBAMUJOaxn+ilv+mBk+aji+e9kee7nOenkeaKgOaciemZ +kOWFrOWPuDERMA8GA1UEBBMIMzA4MjM1NzAwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDvZswXWvmNdJskZQzKM87hmyyiq+4gqWWllBndpEgnvxpFEIP0 +clr+Rt5EUEqw/MDa4lDw6uE5jUmdKNpthhx91r/C7YKUDXybXfz0X/N3VWI0dSQk +KwI5nLj7tUskqapWTCXqRP7yOcEs5Yeh1AlpNtJEiCNGuyq+YQ2+r2sYR/xUCdcB +Rohio+Y6EZKycQydWR/KYCfMN/fiBlHefaNMFeMqWy7hCG+XaLTHdL/CBH2GJjYn +UiWFQPlm50z4L6UatOwjZ4aa71UMlBLq6km/Q6a9XyckQp6yxbDqj7dkCWpgYCrk +ocyoIqew6Anh0GhaSic2IrJuhvIsVu/Qw5FTAgMBAAGjggFGMIIBQjAJBgNVHRME +AjAAMCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRl +IjAdBgNVHQ4EFgQUCwNohxijGGjT5ggasz84R3zfVxEwgb8GA1UdIwSBtzCBtIAU +PgUm9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYD +VQQIEwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5j +ZW50MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG +9w0BCQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMC +BsAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAEs73 +7x81NnfpHPi4Bo2IvGkwQsfmRdCT2LGk3cHwdHBjpeaEbNmtfrmwf6jfMHk7FL30 +Uix3RkhUM2hRerHF9qQnwKTziSZGrmeIDMjH1PbsKvLFgzDbI4BhM6zCQvdAr4j7 +bHs3ERujqhwO00NOuFxDhLYATF7WpfUlKlstwfE= +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_key.pem index 283a0f3..1242049 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDvZswXWvmNdJsk -ZQzKM87hmyyiq+4gqWWllBndpEgnvxpFEIP0clr+Rt5EUEqw/MDa4lDw6uE5jUmd -KNpthhx91r/C7YKUDXybXfz0X/N3VWI0dSQkKwI5nLj7tUskqapWTCXqRP7yOcEs -5Yeh1AlpNtJEiCNGuyq+YQ2+r2sYR/xUCdcBRohio+Y6EZKycQydWR/KYCfMN/fi -BlHefaNMFeMqWy7hCG+XaLTHdL/CBH2GJjYnUiWFQPlm50z4L6UatOwjZ4aa71UM -lBLq6km/Q6a9XyckQp6yxbDqj7dkCWpgYCrkocyoIqew6Anh0GhaSic2IrJuhvIs -Vu/Qw5FTAgMBAAECggEAOY8gsNjZuU344yY8jf0o14tkjvQBe+7elpHmKikOhCfp -XAOdhk9cW1iUph4b5zPN9pKFXXdLkXfL5DJnWf/tp7/TOT27sHcRp5VQdT0An4dy -5iPn/Z4tmcZ5n2M2XulAICGM2CegmIKUVIQXOSxu2tIoefu1Z5MmssFI+bjZaeul -zDVbA2KBxwA5nuXw4jtVgIX/Pgwsae5MyAXZ0O2p5Wy3y7FY/TPY6QBtNtvbfcit -JPZWlHzn8jXHJsaPF4pX69W7MeW3bk8OVF8hgp8MFLr9BpOaezt75K84R3KyjbJu -lgYkSwIAGuUsIVtThnrB6r3swd+jo6gOi1gETIQk+QKBgQD7AkRLMs5KPUOQb3wM -Njoxkkk6NhW1A1wXtba2jGkUIb1IpdKGK2SySyDbqTAc+JDhOpYdbNpiOiKFT/n6 -v5zHGGLtN/9hstZLoVN0R1xy2OjQam3rAigRJFkujvURNX9CX0Gf/Me6KJmHlJXB -10LBIHMVigsiMpCkV0ukR212hQKBgQD0KXHbA32Z/zJIIDYpFHFZJxyz+irbccft -6Z/BKbMIadg8BRu2qBOD5pIPS+dwWLqcJ6IroE17Va8PVaDAnbPfhGGTb+aFtE++ -1uVY7ZkBfHUYjYSTYYPtZKbRwtYYkZio9rF9QYd0qaixREfvJGW2V/KqBXFVqO8a -fGi0E1yL9wKBgB+yhZVJcSuG2QVgTrXsEyU3Z+/l7I/TQMnttIkQ6iQUrqaB6jfv -OuQZAKk8kErYSNNoZpSIrntBBCL5moPDtrSdq8BxFdrsjos2cCd6633FToEjL4ZB -23VutaRfgSsPKmbjSJI/halIfzrT1KWJ3XAt/Np3eDh1Ujaun2q7amNRAoGAbNPI -PsFoi2pW5BUPbvIAr6ciQQohbhxh66Y1IajPdtGOovn350s1H5Z2xcCkUMwLqSx1 -ORLDVlTTqXcWJqRkFx1vTIMU8cVzwfEQ2rlUeHgbzSzOyc4uOnKhdF9uhBbpP25t -oBHEKXixiwmPMoU7nLHIpIW2hWK96EVJefIjTvMCgYEAijO14yXlv1LrF+Do8OZU -+5VE9R9mYjeDzGMhNsoaAH/Xzx3BCKSxjN+yz86SdVnF+O+NBzUJUMm5+RIjAYrK -4AQeqjZ3ftRyrA3x73M7puw7+sC+j+DiqH8Ka7M8GQBBAfx4/4M+P6bQYTJl0r7C -nmwWTUwsbJSDG0wsnNb+NWY= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDvZswXWvmNdJsk +ZQzKM87hmyyiq+4gqWWllBndpEgnvxpFEIP0clr+Rt5EUEqw/MDa4lDw6uE5jUmd +KNpthhx91r/C7YKUDXybXfz0X/N3VWI0dSQkKwI5nLj7tUskqapWTCXqRP7yOcEs +5Yeh1AlpNtJEiCNGuyq+YQ2+r2sYR/xUCdcBRohio+Y6EZKycQydWR/KYCfMN/fi +BlHefaNMFeMqWy7hCG+XaLTHdL/CBH2GJjYnUiWFQPlm50z4L6UatOwjZ4aa71UM +lBLq6km/Q6a9XyckQp6yxbDqj7dkCWpgYCrkocyoIqew6Anh0GhaSic2IrJuhvIs +Vu/Qw5FTAgMBAAECggEAOY8gsNjZuU344yY8jf0o14tkjvQBe+7elpHmKikOhCfp +XAOdhk9cW1iUph4b5zPN9pKFXXdLkXfL5DJnWf/tp7/TOT27sHcRp5VQdT0An4dy +5iPn/Z4tmcZ5n2M2XulAICGM2CegmIKUVIQXOSxu2tIoefu1Z5MmssFI+bjZaeul +zDVbA2KBxwA5nuXw4jtVgIX/Pgwsae5MyAXZ0O2p5Wy3y7FY/TPY6QBtNtvbfcit +JPZWlHzn8jXHJsaPF4pX69W7MeW3bk8OVF8hgp8MFLr9BpOaezt75K84R3KyjbJu +lgYkSwIAGuUsIVtThnrB6r3swd+jo6gOi1gETIQk+QKBgQD7AkRLMs5KPUOQb3wM +Njoxkkk6NhW1A1wXtba2jGkUIb1IpdKGK2SySyDbqTAc+JDhOpYdbNpiOiKFT/n6 +v5zHGGLtN/9hstZLoVN0R1xy2OjQam3rAigRJFkujvURNX9CX0Gf/Me6KJmHlJXB +10LBIHMVigsiMpCkV0ukR212hQKBgQD0KXHbA32Z/zJIIDYpFHFZJxyz+irbccft +6Z/BKbMIadg8BRu2qBOD5pIPS+dwWLqcJ6IroE17Va8PVaDAnbPfhGGTb+aFtE++ +1uVY7ZkBfHUYjYSTYYPtZKbRwtYYkZio9rF9QYd0qaixREfvJGW2V/KqBXFVqO8a +fGi0E1yL9wKBgB+yhZVJcSuG2QVgTrXsEyU3Z+/l7I/TQMnttIkQ6iQUrqaB6jfv +OuQZAKk8kErYSNNoZpSIrntBBCL5moPDtrSdq8BxFdrsjos2cCd6633FToEjL4ZB +23VutaRfgSsPKmbjSJI/halIfzrT1KWJ3XAt/Np3eDh1Ujaun2q7amNRAoGAbNPI +PsFoi2pW5BUPbvIAr6ciQQohbhxh66Y1IajPdtGOovn350s1H5Z2xcCkUMwLqSx1 +ORLDVlTTqXcWJqRkFx1vTIMU8cVzwfEQ2rlUeHgbzSzOyc4uOnKhdF9uhBbpP25t +oBHEKXixiwmPMoU7nLHIpIW2hWK96EVJefIjTvMCgYEAijO14yXlv1LrF+Do8OZU ++5VE9R9mYjeDzGMhNsoaAH/Xzx3BCKSxjN+yz86SdVnF+O+NBzUJUMm5+RIjAYrK +4AQeqjZ3ftRyrA3x73M7puw7+sC+j+DiqH8Ka7M8GQBBAfx4/4M+P6bQYTJl0r7C +nmwWTUwsbJSDG0wsnNb+NWY= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1482148292/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/证书使用说明.txt index a775010..2b5178e 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1482148292/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/证书使用说明.txt @@ -1,18 +1,18 @@ -欢迎使用微信支付! -附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem -备注说明: +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_cert.pem index ff588b3..dbd2b34 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEZjCCA8+gAwIBAgIEAWfCjTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV -BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf -MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA5MDUwNDEwMjla -Fw0yNzA5MDMwNDEwMjlaMIGVMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk -b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE -CxMFTU1QYXkxKjAoBgNVBAMUIeWNl+aYjOW4guaWh+W8uuenkeaKgOaciemZkOWF -rOWPuDERMA8GA1UEBBMINDkxODkxOTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQC6flKweU34nNrTRaqQZHa4zJLyC8EKcM5hcwa5AJRYwMg4EI+/bdIY -JQPxH1ZNYpI5NOUNwMNyDSeaPLqZ1vcXZ2ODAqvb5sxJhLrqunkz7mnnqmF72N2P -LuZ9w67n9cbtF2WaqBY7vHmgC9WecG4HRTAGufUeyAKeq4oxF39t/mW9axeRk4ek -cLTIKpqjfj9RUdHrcLs15B5ucw5d9XV4N+b6xWV77WKSQUQvR7gIL9HKLBRbxSwu -J+NP/sBCTRxapJ90H2ZqBQO6B/uOVTFjRVlPqbMFbM+iLGULUqxuMc+rGnHIlhmo -UbPtjX688aQjFaj4QH2D9b/cfYRc/CiRAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAA -MCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAd -BgNVHQ4EFgQUMJV6/7fryLEMxA4j3nrT+vFxW+Ewgb8GA1UdIwSBtzCBtIAUPgUm -9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQI -EwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50 -MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0B -CQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAw -FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAZ8Y0YT+X -XGxBVqCieWA4Z4nWXPHEjbW/eokx9US1nVvAlUC4+oNrk59sBwctaEDj2Lkiq7gt -rSp05z0V+VSb21jbnFx4yq7NSTyZeWODaBF5Vql/GX/r6eY9mDtq5YoIfU/gcBh8 -5/CPh0jHitr/gZZIDGvZUyOkDsTfDSPVaJQ= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEZjCCA8+gAwIBAgIEAWfCjTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC +Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV +BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf +MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzA5MDUwNDEwMjla +Fw0yNzA5MDMwNDEwMjlaMIGVMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk +b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE +CxMFTU1QYXkxKjAoBgNVBAMUIeWNl+aYjOW4guaWh+W8uuenkeaKgOaciemZkOWF +rOWPuDERMA8GA1UEBBMINDkxODkxOTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC6flKweU34nNrTRaqQZHa4zJLyC8EKcM5hcwa5AJRYwMg4EI+/bdIY +JQPxH1ZNYpI5NOUNwMNyDSeaPLqZ1vcXZ2ODAqvb5sxJhLrqunkz7mnnqmF72N2P +LuZ9w67n9cbtF2WaqBY7vHmgC9WecG4HRTAGufUeyAKeq4oxF39t/mW9axeRk4ek +cLTIKpqjfj9RUdHrcLs15B5ucw5d9XV4N+b6xWV77WKSQUQvR7gIL9HKLBRbxSwu +J+NP/sBCTRxapJ90H2ZqBQO6B/uOVTFjRVlPqbMFbM+iLGULUqxuMc+rGnHIlhmo +UbPtjX688aQjFaj4QH2D9b/cfYRc/CiRAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAA +MCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAd +BgNVHQ4EFgQUMJV6/7fryLEMxA4j3nrT+vFxW+Ewgb8GA1UdIwSBtzCBtIAUPgUm +9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQI +EwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50 +MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0B +CQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAw +FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAZ8Y0YT+X +XGxBVqCieWA4Z4nWXPHEjbW/eokx9US1nVvAlUC4+oNrk59sBwctaEDj2Lkiq7gt +rSp05z0V+VSb21jbnFx4yq7NSTyZeWODaBF5Vql/GX/r6eY9mDtq5YoIfU/gcBh8 +5/CPh0jHitr/gZZIDGvZUyOkDsTfDSPVaJQ= +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_key.pem index f7269a0..051372c 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC6flKweU34nNrT -RaqQZHa4zJLyC8EKcM5hcwa5AJRYwMg4EI+/bdIYJQPxH1ZNYpI5NOUNwMNyDSea -PLqZ1vcXZ2ODAqvb5sxJhLrqunkz7mnnqmF72N2PLuZ9w67n9cbtF2WaqBY7vHmg -C9WecG4HRTAGufUeyAKeq4oxF39t/mW9axeRk4ekcLTIKpqjfj9RUdHrcLs15B5u -cw5d9XV4N+b6xWV77WKSQUQvR7gIL9HKLBRbxSwuJ+NP/sBCTRxapJ90H2ZqBQO6 -B/uOVTFjRVlPqbMFbM+iLGULUqxuMc+rGnHIlhmoUbPtjX688aQjFaj4QH2D9b/c -fYRc/CiRAgMBAAECggEAfGS6PyAKlCP8CiRT6tA4KHe8JFsWviIUZwfUmh361WBx -rIPPfj6Afr5h7LmcVS3EnwfbKNtFApQnsEeFqAus8R1zUPW9MIa4COnRy7PqGGuU -lIQfVf6HenQsJgMabXqQ36BVk10+x0WmUszSBkaz/YF20WXETG3Y4YFGQgyMYQ7F -xehNqUMJ8knGykTe0NoYlpV7DsGvT9QLWPmv3h54UVMoUdMEeHiDDORIrOzhEmCM -/py/IMLs8e93n920e3+BFBjO8e3PciNjn+D6mJzqj9Am3mPP/6AZJ1xK/pfMLKRr -Qx86QSQXKfv87sSnUSeGP1J/RWjieRGJdPvQZ6rqyQKBgQDdgprKfS6q9eUWKNKv -L2BeU0gZ8uQeCft2b50O3P/VzXYPQUsfy3NbI/I3vGW5exPuhVhEcFtwSObtTOps -HiF7ycdbQbTxGaUwJfw3HPov709aNjSFdLs57S7w23NATgKrR3RkJWZiejABn+Dq -Rp5AxbToDa3+XazwjD5RnqvZBwKBgQDXh/Oj5S1EeF1xUXgTbhFWi/I2uN01DN/d -bwAce0nkfafL0aH20gb34VRSYIIsp+vJyZENb72P3/sQOn7CEVY44KOHhxq/JltR -jOvWGI3gvFcHz3RGGy6BdZH0WgV4xcucI/cGgJvs7avIDJEaF1gcncfU7vmpOJpK -YqPG6NWDpwKBgQDJoEZRplzCVQzvfL05pQAtG9V3eTXXefKgvbvSeauN63VZMW+2 -QzR/c1rZDO3zRWrBJDNSKIuyy0kYG3kObObBjMuf71FKXLOV/h1z9TZuR4CNduWb -zMNXWOPvbXGcyOV5DpONTNXDMcFc2TCbTyhhgRTIXRtRe+cdFirrlGiMJQKBgCdo -jUznZ4qAc513pvvugS8Q8Z292XyMuRYU6LFMfatQqnCjCPlHV8zVH4TcbpDZt0wz -FdmeF8wJyS8jcu/rGZfWwy/RrTtMOSBFIw4HeVGhPkyISxtSdwNmyuQh3aRCjkMj -dFR1CY2du24dlh5uLEc3NkWh2HZvig6V0JpbEkc7AoGAJG++n85sHGFInWX2kfhn -WzewdGPA1EOTsp0cBqhicqwsjkmBREnR8XwNi8iwnQnVOY2/ejmVXLBufK0sBXKf -rzJ4UIPpZFa86eSbTZC9dKXl5dH1Y1iqoaqE5pybhz5/K5yIlwJyN/mjoBdG928k -bvhdWlP6Od9fw/UFGd2Q6TA= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC6flKweU34nNrT +RaqQZHa4zJLyC8EKcM5hcwa5AJRYwMg4EI+/bdIYJQPxH1ZNYpI5NOUNwMNyDSea +PLqZ1vcXZ2ODAqvb5sxJhLrqunkz7mnnqmF72N2PLuZ9w67n9cbtF2WaqBY7vHmg +C9WecG4HRTAGufUeyAKeq4oxF39t/mW9axeRk4ekcLTIKpqjfj9RUdHrcLs15B5u +cw5d9XV4N+b6xWV77WKSQUQvR7gIL9HKLBRbxSwuJ+NP/sBCTRxapJ90H2ZqBQO6 +B/uOVTFjRVlPqbMFbM+iLGULUqxuMc+rGnHIlhmoUbPtjX688aQjFaj4QH2D9b/c +fYRc/CiRAgMBAAECggEAfGS6PyAKlCP8CiRT6tA4KHe8JFsWviIUZwfUmh361WBx +rIPPfj6Afr5h7LmcVS3EnwfbKNtFApQnsEeFqAus8R1zUPW9MIa4COnRy7PqGGuU +lIQfVf6HenQsJgMabXqQ36BVk10+x0WmUszSBkaz/YF20WXETG3Y4YFGQgyMYQ7F +xehNqUMJ8knGykTe0NoYlpV7DsGvT9QLWPmv3h54UVMoUdMEeHiDDORIrOzhEmCM +/py/IMLs8e93n920e3+BFBjO8e3PciNjn+D6mJzqj9Am3mPP/6AZJ1xK/pfMLKRr +Qx86QSQXKfv87sSnUSeGP1J/RWjieRGJdPvQZ6rqyQKBgQDdgprKfS6q9eUWKNKv +L2BeU0gZ8uQeCft2b50O3P/VzXYPQUsfy3NbI/I3vGW5exPuhVhEcFtwSObtTOps +HiF7ycdbQbTxGaUwJfw3HPov709aNjSFdLs57S7w23NATgKrR3RkJWZiejABn+Dq +Rp5AxbToDa3+XazwjD5RnqvZBwKBgQDXh/Oj5S1EeF1xUXgTbhFWi/I2uN01DN/d +bwAce0nkfafL0aH20gb34VRSYIIsp+vJyZENb72P3/sQOn7CEVY44KOHhxq/JltR +jOvWGI3gvFcHz3RGGy6BdZH0WgV4xcucI/cGgJvs7avIDJEaF1gcncfU7vmpOJpK +YqPG6NWDpwKBgQDJoEZRplzCVQzvfL05pQAtG9V3eTXXefKgvbvSeauN63VZMW+2 +QzR/c1rZDO3zRWrBJDNSKIuyy0kYG3kObObBjMuf71FKXLOV/h1z9TZuR4CNduWb +zMNXWOPvbXGcyOV5DpONTNXDMcFc2TCbTyhhgRTIXRtRe+cdFirrlGiMJQKBgCdo +jUznZ4qAc513pvvugS8Q8Z292XyMuRYU6LFMfatQqnCjCPlHV8zVH4TcbpDZt0wz +FdmeF8wJyS8jcu/rGZfWwy/RrTtMOSBFIw4HeVGhPkyISxtSdwNmyuQh3aRCjkMj +dFR1CY2du24dlh5uLEc3NkWh2HZvig6V0JpbEkc7AoGAJG++n85sHGFInWX2kfhn +WzewdGPA1EOTsp0cBqhicqwsjkmBREnR8XwNi8iwnQnVOY2/ejmVXLBufK0sBXKf +rzJ4UIPpZFa86eSbTZC9dKXl5dH1Y1iqoaqE5pybhz5/K5yIlwJyN/mjoBdG928k +bvhdWlP6Od9fw/UFGd2Q6TA= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1488598262/rootca.pem b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1488598262/rootca.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1488598262/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1488598262/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_cert.pem b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_cert.pem index 29ff916..8d7b532 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_cert.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEZjCCA8+gAwIBAgIEAXc9yTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC -Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV -BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf -MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzExMTAxMDAwMzZa -Fw0yNzExMDgxMDAwMzZaMIGVMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk -b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE -CxMFTU1QYXkxKjAoBgNVBAMUIeaxn+ilv+eggeWuouihl+enkeaKgOaciemZkOWF -rOWPuDERMA8GA1UEBBMINjUyMTk5MDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDInMTnbvdJg6CXRbfiFT/lokX/aN7tUVXvlckjQdWegHQKAckOalZF -T3YuYRDmdOhLQIb7sc1VdS5Tjw8BoNbRHo5WGNQuHjigVdWv8nRRzdrEXTEX0neM -7R0mrL7C5T4Nj5e6f4EhD8jVkhRisWiY9yecLtawohDrXrF61Sea356rDXl+00g1 -YcELw8NaKOzEJ3QEdQh+23cBwasXPnCI/ntQOWLBfJdGarD3zyAcC7D6exr5/8QY -AGvFaBmJs9SarivynDMaALh/q98A9LR0MeQA9Tj8/8ABl1T+i53EP9ftq1xSwpmX -qFQRzAdR9a66OTJ/oq+eDueiqz64UGItAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAA -MCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAd -BgNVHQ4EFgQU23fb4qrlRqBzgX0/TPfPHzEh4Iwwgb8GA1UdIwSBtzCBtIAUPgUm -9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQI -EwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50 -MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0B -CQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAw -FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAIH/KP1Q9 -/XpV8OAhN3xUJl62KezCjoAScTsLIAF6T0FA68kELRP+YBDV7cxvmhVO2+eLHBJ0 -GZc1UUFmibEuW+uSrqvoVp6WL11X+XGlGETeMajjdzU0t8DDFInlmBgPjO9Y+dhC -L8yws7GjNcTIuRMgIDHYCluRSdOHwpQbS6Q= ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEZjCCA8+gAwIBAgIEAXc9yTANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC +Q04xEjAQBgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNV +BAoTB1RlbmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEf +MB0GCSqGSIb3DQEJARYQbW1wYXltY2hAdGVuY2VudDAeFw0xNzExMTAxMDAwMzZa +Fw0yNzExMDgxMDAwMzZaMIGVMQswCQYDVQQGEwJDTjESMBAGA1UECBMJR3Vhbmdk +b25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UEChMHVGVuY2VudDEOMAwGA1UE +CxMFTU1QYXkxKjAoBgNVBAMUIeaxn+ilv+eggeWuouihl+enkeaKgOaciemZkOWF +rOWPuDERMA8GA1UEBBMINjUyMTk5MDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQDInMTnbvdJg6CXRbfiFT/lokX/aN7tUVXvlckjQdWegHQKAckOalZF +T3YuYRDmdOhLQIb7sc1VdS5Tjw8BoNbRHo5WGNQuHjigVdWv8nRRzdrEXTEX0neM +7R0mrL7C5T4Nj5e6f4EhD8jVkhRisWiY9yecLtawohDrXrF61Sea356rDXl+00g1 +YcELw8NaKOzEJ3QEdQh+23cBwasXPnCI/ntQOWLBfJdGarD3zyAcC7D6exr5/8QY +AGvFaBmJs9SarivynDMaALh/q98A9LR0MeQA9Tj8/8ABl1T+i53EP9ftq1xSwpmX +qFQRzAdR9a66OTJ/oq+eDueiqz64UGItAgMBAAGjggFGMIIBQjAJBgNVHRMEAjAA +MCwGCWCGSAGG+EIBDQQfFh0iQ0VTLUNBIEdlbmVyYXRlIENlcnRpZmljYXRlIjAd +BgNVHQ4EFgQU23fb4qrlRqBzgX0/TPfPHzEh4Iwwgb8GA1UdIwSBtzCBtIAUPgUm +9iJitBVbiM1kfrDUYqflhnShgZCkgY0wgYoxCzAJBgNVBAYTAkNOMRIwEAYDVQQI +EwlHdWFuZ2RvbmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50 +MQwwCgYDVQQLEwNXWEcxEzARBgNVBAMTCk1tcGF5bWNoQ0ExHzAdBgkqhkiG9w0B +CQEWEG1tcGF5bWNoQHRlbmNlbnSCCQC7VJcrvADoVzAOBgNVHQ8BAf8EBAMCBsAw +FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADgYEAIH/KP1Q9 +/XpV8OAhN3xUJl62KezCjoAScTsLIAF6T0FA68kELRP+YBDV7cxvmhVO2+eLHBJ0 +GZc1UUFmibEuW+uSrqvoVp6WL11X+XGlGETeMajjdzU0t8DDFInlmBgPjO9Y+dhC +L8yws7GjNcTIuRMgIDHYCluRSdOHwpQbS6Q= +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_key.pem b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_key.pem index bb7e51d..18649c0 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_key.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDInMTnbvdJg6CX -RbfiFT/lokX/aN7tUVXvlckjQdWegHQKAckOalZFT3YuYRDmdOhLQIb7sc1VdS5T -jw8BoNbRHo5WGNQuHjigVdWv8nRRzdrEXTEX0neM7R0mrL7C5T4Nj5e6f4EhD8jV -khRisWiY9yecLtawohDrXrF61Sea356rDXl+00g1YcELw8NaKOzEJ3QEdQh+23cB -wasXPnCI/ntQOWLBfJdGarD3zyAcC7D6exr5/8QYAGvFaBmJs9SarivynDMaALh/ -q98A9LR0MeQA9Tj8/8ABl1T+i53EP9ftq1xSwpmXqFQRzAdR9a66OTJ/oq+eDuei -qz64UGItAgMBAAECggEACfXuuOcDlDza3mfxx2HyuD4kZ5gXaYUeVTUEtaFxL9uE -53JLP1H8Upitb4QWSLsJRaNAkIK1hUa6NB/oSNZplByGSLQW5OtPOHbKk1/gcqdb -82AFLf+fO/oR9nehSSAEwrucdwAZs0CLYj9Mj9HrNZ0f9FtHAaIqYOVkvoqS2tek -6DOV8gqGHc5myiFJk058GExbaJaWXfiqCJE325v9aeC1XH8K9Zq0is5dsAQoYhs6 -ct13vNo+vCVm/5ru72twagbSuJ3ya+Dg/lP5UAk9QtAbEVMKQaOWGUtbO3CICZEr -N3/AWKpM3677zgVxL7oWI34vqWyiN7k7gFCHnFW2wQKBgQD/otGvnJC/pjykI+x4 -GbuH2ytcb99qprs4PtCCKOd6RO9J6/lMrQrSDBovC6kHwV9taSmSuVzsfBZbzyHI -cXMY+Z4SdEJNaEb7+sHHkAuEneRnO5ErxkHtvSY9T68grtblIZLK0Lw5EpoZ0D1w -aWzfepg0HTKyEZStlTr/D/I4CQKBgQDI5eTD7yAQAc7/mQFUBCjWxCFn6MOkuTSK -0cqTs/oMTfZkbxNJKn/DOIMiOgvxyK//HYTvwpqxV+44ekrWVoguN9v1qbnLvv9f -HmgnLLy2rXFfE+W8mZD/q7PsMXnf42/PV5Wrb+EfYVl6h/MJrZZaD0xon3bIz2Rq -tSpkuRl6BQKBgQCbAOTX8L0sF+ZJOKcXo7K8C77dC9CSYIrA7gWMBrVkxAu77ON7 -BKm89y2hPRa+5xevxcY5ez/G/O6puIypd3Dswd6BHhFd0k7IVyHMmaECRqLJnarG -ui4bs0dOgdSUoq8WvCa/55VZndfmswet857aWwGTB+lHY7WdExF0uvyJ0QKBgA/S -28P7D8FzAwTq3knp0fWomSEAGnjdBaBxic08fdN+SIv8m75FlK6hwuJtRAeVURd9 -Eb14zIpvbJoSN9bOFgfd6ntdFP9RWff6AyYixfJ1ktp0TMIgLmWU9qUB+KGD3ois -U2OfelHobw3Rq3j1rUQGtHQBK3ABtd0Zy+8HDVSpAoGBALVz3p85CgntTjXO5Cnt -x2K74bRkblPsyhG04aXiqLHMBnLLbSYuXfhVEG2moqnmipG3IJ4CMKGZYA5GyLwr -DmMhzaer+pGjN/KLFnV/fHv5HaoA+sKhhNHDB/54yqV8+6es/RbohznMrO0b9Ek9 -+uOVXgMrOYo1kF+na5mv4+7E ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDInMTnbvdJg6CX +RbfiFT/lokX/aN7tUVXvlckjQdWegHQKAckOalZFT3YuYRDmdOhLQIb7sc1VdS5T +jw8BoNbRHo5WGNQuHjigVdWv8nRRzdrEXTEX0neM7R0mrL7C5T4Nj5e6f4EhD8jV +khRisWiY9yecLtawohDrXrF61Sea356rDXl+00g1YcELw8NaKOzEJ3QEdQh+23cB +wasXPnCI/ntQOWLBfJdGarD3zyAcC7D6exr5/8QYAGvFaBmJs9SarivynDMaALh/ +q98A9LR0MeQA9Tj8/8ABl1T+i53EP9ftq1xSwpmXqFQRzAdR9a66OTJ/oq+eDuei +qz64UGItAgMBAAECggEACfXuuOcDlDza3mfxx2HyuD4kZ5gXaYUeVTUEtaFxL9uE +53JLP1H8Upitb4QWSLsJRaNAkIK1hUa6NB/oSNZplByGSLQW5OtPOHbKk1/gcqdb +82AFLf+fO/oR9nehSSAEwrucdwAZs0CLYj9Mj9HrNZ0f9FtHAaIqYOVkvoqS2tek +6DOV8gqGHc5myiFJk058GExbaJaWXfiqCJE325v9aeC1XH8K9Zq0is5dsAQoYhs6 +ct13vNo+vCVm/5ru72twagbSuJ3ya+Dg/lP5UAk9QtAbEVMKQaOWGUtbO3CICZEr +N3/AWKpM3677zgVxL7oWI34vqWyiN7k7gFCHnFW2wQKBgQD/otGvnJC/pjykI+x4 +GbuH2ytcb99qprs4PtCCKOd6RO9J6/lMrQrSDBovC6kHwV9taSmSuVzsfBZbzyHI +cXMY+Z4SdEJNaEb7+sHHkAuEneRnO5ErxkHtvSY9T68grtblIZLK0Lw5EpoZ0D1w +aWzfepg0HTKyEZStlTr/D/I4CQKBgQDI5eTD7yAQAc7/mQFUBCjWxCFn6MOkuTSK +0cqTs/oMTfZkbxNJKn/DOIMiOgvxyK//HYTvwpqxV+44ekrWVoguN9v1qbnLvv9f +HmgnLLy2rXFfE+W8mZD/q7PsMXnf42/PV5Wrb+EfYVl6h/MJrZZaD0xon3bIz2Rq +tSpkuRl6BQKBgQCbAOTX8L0sF+ZJOKcXo7K8C77dC9CSYIrA7gWMBrVkxAu77ON7 +BKm89y2hPRa+5xevxcY5ez/G/O6puIypd3Dswd6BHhFd0k7IVyHMmaECRqLJnarG +ui4bs0dOgdSUoq8WvCa/55VZndfmswet857aWwGTB+lHY7WdExF0uvyJ0QKBgA/S +28P7D8FzAwTq3knp0fWomSEAGnjdBaBxic08fdN+SIv8m75FlK6hwuJtRAeVURd9 +Eb14zIpvbJoSN9bOFgfd6ntdFP9RWff6AyYixfJ1ktp0TMIgLmWU9qUB+KGD3ois +U2OfelHobw3Rq3j1rUQGtHQBK3ABtd0Zy+8HDVSpAoGBALVz3p85CgntTjXO5Cnt +x2K74bRkblPsyhG04aXiqLHMBnLLbSYuXfhVEG2moqnmipG3IJ4CMKGZYA5GyLwr +DmMhzaer+pGjN/KLFnV/fHv5HaoA+sKhhNHDB/54yqV8+6es/RbohznMrO0b9Ek9 ++uOVXgMrOYo1kF+na5mv4+7E +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/rootca.pem b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/rootca.pem +++ b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/证书使用说明.txt +++ b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/sample/readme.txt b/codes/agent/game-docker/api/sample/readme.txt index 0f200f4..2d8242b 100644 --- a/codes/agent/game-docker/api/sample/readme.txt +++ b/codes/agent/game-docker/api/sample/readme.txt @@ -1,11 +1,11 @@ -Ŀ¼ṹ -mobilepayֻƶ֧԰صַҳ档 -offlinepayɨ֧롣 -onlinepayվ֧롣 -qrpay϶ά֧롣 -refund˿롣 - -װ룺 -Ŀ¼°Ŀ¼loginpay -loginΪװĵ¼ӿڵַҪ޸ģֱ޸ݴ룻Ҫ޸ֱʹãֱͨhttps://api.tscce.cn/source/login/login.phpʹüɣĵ +Ŀ¼ṹ +mobilepayֻƶ֧԰صַҳ档 +offlinepayɨ֧롣 +onlinepayվ֧롣 +qrpay϶ά֧롣 +refund˿롣 + +װ룺 +Ŀ¼°Ŀ¼loginpay +loginΪװĵ¼ӿڵַҪ޸ģֱ޸ݴ룻Ҫ޸ֱʹãֱͨhttps://api.tscce.cn/source/login/login.phpʹüɣĵ payΪװ֧ϣӿڣҪ޸Ŀֱͨhttps://api.tscce.cn/source/pay/pay.phpʹãpayĿ¼еreadme.txt˵ \ No newline at end of file diff --git a/codes/agent/game-docker/api/source/apis/login.php.bak b/codes/agent/game-docker/api/source/apis/login.php.bak index c545086..842074c 100644 --- a/codes/agent/game-docker/api/source/apis/login.php.bak +++ b/codes/agent/game-docker/api/source/apis/login.php.bak @@ -1,1861 +1,1861 @@ -sid = $sid; - $this->scode = $scode; - $this->app_id = $app_id; - $this->dev_key = $dev_key; - $this->market_key = $market_key; - $this->return_url = $return_url; - $this->return_parameter = $return_parameter; - $this->fail_url = $fail_url; - } - - public function to_array() - { - return (array)$this; - } - - public function to_string() - { - return json_encode($this, JSON_UNESCAPED_UNICODE); - } - - public function from_array($array) - { - foreach ($array as $key => $value) - { - if (property_exists($this, $key)) - $this->$key = $value; - } - - return true; - } - - public function from_string($string) - { - return $this->from_array((array)json_decode($string)); - } - - - /** - * @param $string - * @return LoginCallbackInformation - */ - static public function CreateWithString($string) - { - $return = new LoginCallbackInformation(); - $return->from_string($string); - - return $return; - } - - /** - * @param $array - * @return LoginCallbackInformation - */ - static public function CreateWithArray($array) - { - $return = new LoginCallbackInformation(); - $return->from_array($array); - - return $return; - } -} - - - -/** - * - * 登录管理 - * @path("/login") - */ -class Login extends apiBase -{ - /** - * 获得登录方式 - * @route({"GET","/"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return("body") - */ - public function getLoginType() - { - $result = array( - //0 => array( - // 'name' => '微信登录', - // 'url' => $this->getFullUrl('/api/login/weixin'), - // 'third' => 'weixin', - //), - - //1 => array( - // 'name' => 'QQ登录', - // 'url' => $this->getFullUrl('/api/login/qq'), - // 'third' => 'qq', - //), - - 0 => array( - 'name' => '聚开心登录', - 'url' => $this->getFullUrl('/api/login/jkx'), - 'third' => 'jkx', - ), - ); - - return $result; - } - - - /** - * 获得登录方式 - * @route({"GET","/querylist"}) - * @route({"POST","/querylist"}) - * @param({"market_key","$._POST.market_key"}) 门店key - * @param({"logintype","$._POST.logintype"}) 登陆方式 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return("body") - */ - public function getLoginList($market_key = '', $logintype = 0) - { - if (empty($market_key)) - { - $condition = 'is_enabled = 1'; - - if (!empty($logintype)) - $condition .= sprintf(' and type_id = %d', intval($logintype)); - - $data = Sql::Select('type_id,type_key,type_name,image,url,component,is_third,third_flag') - ->from('syweb_logintype_base') - ->where($condition) - ->get($this->db); - } - else - { - $condition = 'a.type_key = b.type_key and a.is_enabled = 1 and b.is_enabled = 1 and market_key = ?'; - - if (!empty($logintype)) - $condition .= sprintf(' and a.type_id = %d', intval($logintype)); - - $data = Sql::Select('a.type_id,a.type_key,a.type_name,a.image,a.url,a.component,a.is_third,a.third_flag') - ->from('syweb_logintype_base a, syweb_logintype_market b') - ->where($condition, $market_key) - ->get($this->db); - } - - foreach ($data as $key=>&$value) - { - $value['url'] = $this->getFullUrl($value['url']); - } - - return json_encode($data, JSON_UNESCAPED_UNICODE); - } - - - /** - * 使用QQ授权登录 - * @route({"GET","/qq"}) - * @param({"appid","$._GET.appid"}) 应用appid - * @param({"devkey","$._GET.devkey"}) 开发者key - * @param({"market_key","$._GET.market_key"}) 门店key - * @param({"scode","$._GET.scode"}) 客户端生成的Scode - * @param({"target","$._GET.target"}) 客户端需要回调的地址 - * @param({"state","$._POST.state"}) 随机参数 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function qqLogin($appid = "", $devkey = "", $market_key = "", $scode, $target, $state = '') - { - require_once __DIR__ . '/../../loginLib/qq/API/qqConnectAPI.php'; - if (empty($appid)) - { - $result["error"] = '1'; - $result["error_code"] = 10001; // 未传入appid参数 - return $result; - } - if (empty($devkey)) - { - $result["error"] = '1'; - $result["error_code"] = 10002; // 未传入devkey参数 - return $result; - } - $devList = Sql::select('syweb_admin.*') - ->from('syweb_admin') - ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1', $devkey) - ->get($this->db, null); - if (empty($devList) || count($devList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10003; // devkey无效 - return $result; - } - $devInfo = $devList[0]; - - $appList = Sql::select('syweb_app.*') - ->from('syweb_app') - ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid, $devInfo['id']) - ->get($this->db, null); - if (empty($appList) || count($appList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10004; // 指定的应用不存在或未被审核 - return $result; - } - $appInfo = $appList[0]; - - $marketList = Sql::select('syweb_market.*') - ->from('syweb_market') - ->where('syweb_market.marketid=?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10007; // 指定的商家不存在 - return $result; - } - $marketInfo = $marketList[0]; - - //开启一个会话 - session_start(); - $_SESSION[LOGINPARAMETER_CALLBACK] = (new LoginCallbackInformation('', $scode, $appInfo['id'], $devkey, $marketInfo['id'], $target))->to_string(); - - $qc = new QC(); - $qc->qq_login(); - } - - /** - * QQ授权登录回调 - * @route({"GET","/qq/callback"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function qqLoginCallback() - { - session_start(); - - $scode = ""; - $target = ""; - $app_id = ""; - $devkey = ""; - $market_id = ""; - - if (isset($_SESSION[LOGINPARAMETER_CALLBACK])) - { - $login = LoginCallbackInformation::CreateWithString($_SESSION[LOGINPARAMETER_CALLBACK]); - - $scode = $login->scode; - $target = $login->return_url; - $app_id = $login->app_id; - $devkey = $login->dev_key; - $market_id = $login->market_key; - } - - if (!$scode || !$target || !$app_id || !$devkey || !$market_id) - { - return "登录失败!"; - } - - require_once __DIR__ . '/../../loginLib/qq/API/qqConnectAPI.php'; - - $qc = new QC(); - $access_token = $qc->qq_callback(); - $openId = $qc->get_openid(); - - if (empty($openId)) - { - return "授权登录失败!"; - } - - // 获得QQ授权获得的QQ信息 - $qc = new QC($access_token, $openId); - $userinfo = $qc->get_user_info(); - /* - foreach($userinfo as $k => $v){ - echo $k.'=='.$v.'
          '; - } - - $ret = $qc->get_info(); - if($ret['ret'] == 0){ - foreach($ret['data'] as $k => $v){ - echo $k.'=='.$v.'
          '; - } - }else{ - echo ""; - echo "获取失败,请开启调试查看原因"; - } - exit;*/ - - // 根据QQ对应的openId查询数据库对应的全局用户信息 - $fan = getUserByOpenId($market_id, $openId, $this->db); - $sid = ""; - - $pdo = $this->db; - $pdo->beginTransaction(); - if (!empty($fan)) - { - // 查询粉丝对应的会员详细信息 - $members = getQqUserByUId($fan['id'], $this->db); - - if (empty($member)) - { - if ($userinfo['ret'] == 0) - {// 假如授权返回错误消息,则重新登录 - header('Location: ' . $target); - } - } - - $member["uid"] = $fan['id']; - $member["openid"] = $fan['openid']; - // 粉丝昵称 - $member['nickname'] = stripcslashes($userinfo['nickname']); - $member['province'] = $userinfo['province'];//所属省份 - $member['city'] = $userinfo['city'];//所属省份 - $member['year'] = $userinfo['year'];//所属城市 - $member['gender'] = $userinfo['gender'];// 性别 - $member['figureurl_qq_1'] = $userinfo['figureurl_qq_1'];// QQ小头像 - $member['figureurl_qq_2'] = $userinfo['figureurl_qq_2'];// QQ大头像 - $member['figureurl'] = $userinfo['figureurl'];// 大头像 - $member['figureurl_1'] = $userinfo['figureurl_1'];// 中头像 - $member['figureurl_2'] = $userinfo['figureurl_2'];// 小头像 - $member['vip'] = $userinfo['vip']; - $member['level'] = $userinfo['level']; - $member['yellow_vip_level'] = $userinfo['yellow_vip_level']; - $member['is_yellow_year_vip'] = $userinfo['is_yellow_year_vip']; - - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_QQ, $fan['openid'], $market_id, $this->db, $pdo); - - updateQqUserInfo($member, $this->db, $pdo); - } - else - {// 假如数据库中还不存在对应的粉丝信息记录 - if ($userinfo['ret'] == 0) - {// 假如授权返回错误消息,则重新登录 - header('Location: ' . $target); - } - - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_QQ, $openId, $market_id, $this->db, $pdo); - - $userinfo['uid'] = $globalUserInfoId;// 全局用户ID - $userinfo['openid'] = $openId; - - updateQqUserInfo($userinfo, $this->db, $pdo); - } - $pdo->commit(); - - // 新创建的全局用户信息,从中获取新创建的sid - $globalUserInfo = getUserById($globalUserInfoId, $this->db); - $sid = $globalUserInfo["sid"]; - - if (strstr($target, '?')) - { - if (strstr($target, '&')) - { - $target .= '&sid=' . $sid; - } - else - { - $target .= 'sid=' . $sid; - } - } - else - { - $target .= '?sid=' . $sid; - } - // 登录成功后跳转到客户端传入的回调页面 - header('Location: ' . $target); - } - - /** - * 使用微信授权登录 - * @route({"GET","/weixin"}) - * @param({"appid","$._GET.appid"}) 应用appid - * @param({"devkey","$._GET.devkey"}) 开发者key - * @param({"market_key","$._GET.market_key"}) 门店key - * @param({"scode","$._GET.scode"}) 客户端生成的Scode - * @param({"target","$._GET.target"}) 客户端需要回调的地址 - * @param({"fail_target","$._GET.fail_target"}) 发生错误时,客户端回调的页面 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function weixinLogin($appid = "", $devkey = "", $market_key = "", $scode = "", $target = "", $fail_target = "") - { - if (empty($appid)) - { - $this->forwardUrl($fail_target, new returnObject(1, 10001, '未传入appid参数!')); - } - if (empty($devkey)) - { - $this->forwardUrl($fail_target, new returnObject(1, 10002, '未传入devkey参数!')); - } - - $devList = Sql::select('a.*') - ->from('syweb_admin a') - ->where('a.type=2 and a.admin_key=? and a.status=1', $devkey) - ->get($this->db, null); - if (empty($devList) || count($devList) <= 0) - { - $this->forwardUrl($fail_target, new returnObject(1, 10003, 'devkey无效或未经过审核!')); - } - $devInfo = $devList[0]; -/* - $appBaseList = Sql::select('a.*') - ->from('syweb_app_base a') - ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appid, $devInfo['admin_key']) - ->get($this->db, null); - if (empty($appBaseList) || count($appBaseList) <= 0) - { - $this->forwardUrl($fail_target, new returnObject(1, 10004, '指定的应用不存在或未被审核!')); - } - $appBaseKey = $appBaseList[0]["app_key"]; - - $appList = Sql::select('a.*') - ->from('syweb_app a') - ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appBaseKey, $devInfo['admin_key']) - ->get($this->db, null); - if (empty($appList) || count($appList) <= 0) - { - $this->forwardUrl($fail_target, new returnObject(1, 10005, '指定的应用不存在或未被审核!')); - } - $appInfo = $appList[0]; - - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key=?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - $this->forwardUrl($fail_target, new returnObject(1, 10007, '指定的门店不存在或已经被删除!')); - } - $marketInfo = $marketList[0]; -*/ - - $appList = Sql::select('b.*') - ->from('syweb_app_base a, syweb_app b') - ->where('a.app_key = b.ref_key and a.status = b.status and a.dev_key = b.dev_key and a.ref_key = ? and a.dev_key = ? and a.status = 10', $appid, $devInfo['admin_key']) - ->get($this->db, null); - if (empty($appList) || count($appList) <= 0) - { - $this->forwardUrl($fail_target, new returnObject(1, 10005, '指定的应用不存在或未被审核!')); - } - $appInfo = $appList[0]; - - $marketList = Sql::select('a.*') - ->from('syweb_market a, syweb_logintype_market b') - ->where('a.market_key = b.market_key and b.type_key = \'0002\' and b.is_enabled != 0 and a.market_key = ?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - $this->forwardUrl($fail_target, new returnObject(1, 10007, '指定的门店不存在或已经被删除, 或该门店不支持该登录方式!')); - } - $marketInfo = $marketList[0]; - - $account = array(); - $account["key"] = $marketInfo['weixin_appid']; - $weixin = new WeiXinAccount($account); - -/* - // 分析主域名中的参数 begin - $referUrls = parse_url($_SERVER['HTTP_REFERER']); /// 请求方的参数 - $callback_paramers = ""; - if (!empty($referUrls['query'])) - { - // 假如传入了参数 - $callback_paramers_list = explode("&", $referUrls['query']); - if (!empty($callback_paramers_list) && count($callback_paramers_list) > 0) - { - foreach ($callback_paramers_list as $key => $value) - { - if (!strstr($value, 'appid=') && - !strstr($value, 'devkey=') && - !strstr($value, 'market_key=') && - !strstr($value, 'scode=') && - !strstr($value, 'target=') && - !strstr($value, 'state=') - ) - { - if (empty($callback_paramers)) - { - $callback_paramers = $value; - } - else - { - $callback_paramers .= '&' . $value; - } - } - } - } - } - - $newTarget = ''; - $targetUrls = parse_url($target); - if (!empty($targetUrls)) - { - $newTarget = $targetUrls['scheme'] . '://' . $targetUrls['host'] . ((!empty($targetUrls['port']) && $targetUrls['port'] != '80') ? ':' . $targetUrls['port'] : '') . $targetUrls['path']; - } - - if (!empty($callback_paramers)) - { - if (strstr($newTarget, '?')) - { - if (strstr($newTarget, '&')) - { - $newTarget .= '&' . $callback_paramers; - } - else - { - $newTarget .= $callback_paramers; - } - } - else - { - $newTarget .= '?' . $callback_paramers; - } - } - // 分析主域名中的参数 -*/ - - - /// 剔除必须的参数. - $needed = array('sid', 'scode', 'appid', 'devkey', 'market_key', 'target', 'fail_target'); - /// 获取请求参数 - $refer_paramers = GetAttachParameters($needed); - $parameters = ''; - foreach ($refer_paramers as $k => $v) - { - $parameters .= "&{$k}={$v}"; - } - - - // 开启一个会话 - session_start(); - $_SESSION[LOGINPARAMETER_CALLBACK] = (new LoginCallbackInformation('', $scode, $appInfo['id'], $devkey, $marketInfo["market_key"], $target, $parameters, $fail_target))->to_string(); - - ///$callback = "http://" . $this::$domain . "/api/login/weixin/callback"; - $callback = $this->getFullUrl('/api/login/weixin/callback'); - $state = 'ylsid-' . session_name(); - $forward = $weixin->getOauthUserInfoUrl($callback, $state); - //exit($forward); - header('Location: ' . $forward); - exit(); - } - - /** - * 微信授权登录回调(10010-10030) - * @route({"GET","/weixin/callback"}) - * @param({"code", "$._GET.code"}) - * @param({"state", "$._GET.state"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function weixinLoginCallback($code = '', $state = '') - { - session_start(); - - $scode = ''; - $app_id = ''; - $devkey = ''; - $market_key = ''; - $return_url = ''; - $return_parameter = ''; - $fail_url = ''; - - if (isset($_SESSION[LOGINPARAMETER_CALLBACK])) - { - $login = LoginCallbackInformation::CreateWithString($_SESSION[LOGINPARAMETER_CALLBACK]); - - $scode = $login->scode; - $app_id = $login->app_id; - $devkey = $login->dev_key; - $market_key = $login->market_key; - $return_url = $login->return_url; - $return_parameter = $login->return_parameter; - $fail_url = $login->fail_url; - } - - - if (!$scode || !$return_url || !$fail_url || !$app_id || !$devkey || !$market_key) - { - $this->forwardUrl($fail_url, (new returnObject(1, 10010, '缺少必要参数,登录失败!'))->to_array()); - } - - if (!$state || !$code) - { - header('Location: ' . $return_url); - } - - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key=?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - $this->forwardUrl($fail_url, (new returnObject(1, 10007, '指定的门店不存在或已经被删除'))->to_array()); - } - $marketInfo = $marketList[0]; - - $account = array(); - $account["key"] = $marketInfo["weixin_appid"]; - $account["secret"] = $marketInfo["weixin_secret_appid"]; - $weixin = new WeiXinAccount($account); - - // 通过授权获得的code去换取网页授权的Access_token和openId - $oauth = $weixin->getOauthInfo($code); - - // 假如没有获得openId,则重新发起一次网页授权请求 - if (is_error($oauth) || empty($oauth['openid'])) - { - $state = 'ylsid-' . session_name(); - - // 设置授权的回调地址 - ///$callback = rawurlencode("http://" . $this::$domain . "/api/login/weixin/callback"); - $callback = $this->getFullUrl('/api/login/weixin/callback'); - - // 返回网页非静默授权的授权访问地址 - // 参数1:回调页面地址 - // 参数2:重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值, - // 最多128字节 - $forward = $weixin->getOauthUserInfoUrl($callback, $state); - header('Location: ' . $forward); - exit; - } - - // 根据openId和门店Key从数据库中查询全局用户信息 - $fan = getUserByOpenId($market_key, $oauth['openid'], 0, $this->db); - $sid = ""; - $pdo = $this->db; - $pdo->beginTransaction(); - - // 通过网页授权查询用户详细信息 - $userinfo = $weixin->getOauthUserInfo($oauth['access_token'], $oauth['openid']); - - // 通过openId拉取用户信息,判断用户是否关注了公众号 - $baseUserInfo = $weixin->fansQueryInfo($oauth['openid'], $this->db, $pdo); - - if (!empty($fan)) - {// 假如数据库中已经存在全局用户信息 - // 查询粉丝对应的会员详细信息 - $members = getWeixinUserByUId($fan['id'], $this->db); - if (!empty($userinfo["errcode"])) - { - // 假如授权返回错误消息,则重新登录 - $this->forwardUrl($fail_url, (new returnObject(1, 10011, '缺少state或code参数,登录失败!'))->to_array()); - } - else - { - if (!empty($baseUserInfo["errcode"])) - { - // 假如授权返回错误消息,则重新登录 - $this->forwardUrl($fail_url, (new returnObject(1, 10012, '缺少state或code参数,登录失败!'))->to_array()); - } - else - { - if ($baseUserInfo["subscribe"] == 1) - { - $userinfo["subscribe"] = 1; - $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; - } - else - { - $userinfo["subscribe"] = 0; - $userinfo["subscribe_time"] = 0; - } - } - } - - $member["uid"] = $fan['id']; - $member["openid"] = $fan['openid']; - - require_once __DIR__ . '/../../lib/emoji/emoji.php'; - $member['nickname'] = emoji_docomo_to_unified($userinfo['nickname']); - $member['nickname'] = emoji_kddi_to_unified($member['nickname']); - $member['nickname'] = emoji_softbank_to_unified($member['nickname']); - $member['nickname'] = emoji_google_to_unified($member['nickname']); - - if (!empty($userinfo['headimgurl'])) - {// 粉丝头像 - $member['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; - } - $member['sex'] = $userinfo['sex'];// 性别 - $member['province'] = $userinfo['province'];// 所属省份 - $member['city'] = $userinfo['city'];// 所属城市 - $member['country'] = $userinfo['country'];// 所属国家 - $member['privilege'] = $userinfo['privilege']; - $member['subscribe'] = $userinfo['subscribe'];// 粉丝是否关注 - // 粉丝是否关注 - $member['subscribe_time'] = $userinfo['subscribe_time']; - $member['unionid'] = $userinfo['unionid']; // unionid - - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_WECHAT, $fan['openid'], $market_key, $this->db, $pdo); - - // 更新微信用户信息 - updateWeixinUserInfo($member, $this->db, $pdo); - } - else - {// 假如数据库中还不存在对应的粉丝信息记录 - // 通过网页授权接口获得粉丝信息(无论关注或未关注) - $userinfo = $weixin->getOauthUserInfo($oauth['access_token'], $oauth['openid']); - - if (!empty($userinfo["errcode"])) - { - // 假如授权返回错误消息,则重新登录 - $this->forwardUrl($fail_url, (new returnObject(1, 10011, '缺少state或code参数,登录失败!'))->to_array()); - } - else - { - // 通过openId拉取用户信息,判断用户是否关注了公众号 - $baseUserInfo = $weixin->fansQueryInfo($userinfo['openid'], $this->db, $pdo); - if (!empty($baseUserInfo["errcode"])) - { - // 假如授权返回错误消息,则重新登录 - $this->forwardUrl($fail_url, (new returnObject(1, 10012, '缺少state或code参数,登录失败!'))->to_array()); - } - else - { - if ($baseUserInfo["subscribe"] == 1) - { - $userinfo["subscribe"] = 1; - $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; - } - else - { - $userinfo["subscribe"] = 0; - $userinfo["subscribe_time"] = 0; - } - } - } - - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_WECHAT, $userinfo['openid'], $market_key, $this->db, $pdo); - - $userinfo['uid'] = $globalUserInfoId;// 全局用户ID - require_once __DIR__ . '/../../lib/emoji/emoji.php'; - $userinfo['nickname'] = emoji_softbank_to_unified($userinfo['nickname']); - if (!empty($userinfo['headimgurl'])) - {// 粉丝头像 - $userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; - } - ///$userinfo['unionid'] = $userinfo['unionid']; // unionid - updateWeixinUserInfo($userinfo, $this->db, $pdo); - } - $pdo->commit(); - - // 新创建的全局用户信息,从中获取新创建的sid - $globalUserInfo = getUserById($globalUserInfoId, $this->db); - $sid = $globalUserInfo["sid"]; - - /* - $newTarget = ''; - $targetUrls = parse_url($target); - if (!empty($targetUrls)) - { - $newTarget = $targetUrls['scheme'] . '://' . $targetUrls['host'] . ((!empty($targetUrls['port']) && $targetUrls['port'] != '80') ? ':' . $targetUrls['port'] : '') . $targetUrls['path']; - } - - $paramers = ""; - if (!empty($targetUrls['query'])) - { - // 假如传入了参数 - $paramerList = explode("&", $targetUrls['query']); - if (!empty($paramerList) && count($paramerList) > 0) - { - foreach ($paramerList as $key => $value) - { - if (!strstr($value, 'sid=')) - { - if (empty($paramers)) - { - $paramers = $value; - } - else - { - $paramers .= '&' . $value; - } - } - } - } - } - - $stateParamers = ""; - if (!empty($state)) - { - $stateParamers = "&state=" . $state; - } - if (empty($paramers)) - { - $newTarget .= '?sid=' . $sid . $stateParamers; - } - else - { - $newTarget .= '?' . $paramers . '&sid=' . $sid . $stateParamers; - } - */ - - $p = strstr($return_url, '?'); - if (empty($p)) - $return_url .= "?sid={$sid}&scode={$scode}{$return_parameter}"; - elseif ('?' == $p) - $return_url .= "sid={$sid}&scode={$scode}{$return_parameter}"; - else - $return_url .= "&sid={$sid}&scode={$scode}{$return_parameter}"; - - // 登录成功后跳转到客户端传入的回调页面 - header('Location: ' . $return_url); - } - - /** - * 使用微信授权登录 - * @route({"GET","/weixin_url"}) - * @param({"appid","$._GET.appid"}) 应用appid - * @param({"devkey","$._GET.devkey"}) 开发者key - * @param({"market_key","$._GET.market_key"}) 商家key - * @param({"target","$._GET.target"}) 客户端需要回调的地址 - * @param({"state","$._POST.state"}) 随机参数 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function weixinUrlLogin($appid = "", $devkey = "", $market_key = "", $target = "", $state = '') - { - if (empty($appid)) - { - $result["error"] = '1'; - $result["error_code"] = 10001; // 未传入appid参数 - return $result; - } - if (empty($devkey)) - { - $result["error"] = '1'; - $result["error_code"] = 10002; // 未传入devkey参数 - return $result; - } - $devList = Sql::select('syweb_admin.*') - ->from('syweb_admin') - ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1', $devkey) - ->get($this->db, null); - if (empty($devList) || count($devList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10003; // devkey无效 - return $result; - } - $devInfo = $devList[0]; - - $appList = Sql::select('syweb_app.*') - ->from('syweb_app') - ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid, $devInfo['id']) - ->get($this->db, null); - if (empty($appList) || count($appList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10004; // 指定的应用不存在或未被审核 - return $result; - } - $appInfo = $appList[0]; - - $marketList = Sql::select('syweb_market.*') - ->from('syweb_market') - ->where('syweb_market.marketid=?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10007; // 指定的商户不存在或未被审核 - return $result; - } - $marketInfo = $marketList[0]; - - $account = array(); - $account["key"] = $marketInfo['weixin_appid']; - $weixin = new WeiXinAccount($account); - - // 开启一个会话 - session_start(); - $_SESSION['user_app_id'] = $appInfo["id"]; - $_SESSION['user_devkey'] = $devkey; - $_SESSION['user_market_id'] = $marketInfo["id"]; - $_SESSION['user_target'] = $target; - $_SESSION['state'] = $state; - - $callback = $this->getFullUrl('/api/login/weixin/callback_url'); - $state = 'ylsid-' . session_name(); - $forward = $weixin->getOauthCodeUrl($callback, $state); - header('Location: ' . $forward); - exit(); - } - - /** - * 微信授权登录回调 - * @route({"GET","/weixin/callback_url"}) - * @param({"code", "$._GET.code"}) - * @param({"state", "$._GET.state"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function weixinLoginUrlCallback($code, $state) - { - session_start(); - - $target = ""; - $app_id = ""; - $devkey = ""; - $market_id = ""; - $state = ""; - - if (isset($_SESSION['user_target'])) - { - $target = $_SESSION['user_target']; - $app_id = $_SESSION['user_app_id']; - $devkey = $_SESSION['user_devkey']; - $market_id = $_SESSION['user_market_id']; - $state = $_SESSION['state']; - } - if (!$target || !$app_id || !$devkey || !$market_id) - { - return "登录失败!"; - } - - if (!$state || !$code) - { - header('Location: ' . $target); - } - - $marketList = Sql::select('syweb_market.*') - ->from('syweb_market') - ->where('syweb_market.id=?', $market_id) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - return "登录失败,未找到对应门店。"; - } - $marketInfo = $marketList[0]; - - $account = array(); - $account["key"] = $marketInfo["weixin_appid"]; - $account["secret"] = $marketInfo["weixin_secret_appid"]; - $weixin = new WeiXinAccount($account); - - // 通过授权获得的code去换取网页授权的Access_token和openId - $oauth = $weixin->getOauthInfo($code); - - // 假如没有获得openId,则重新发起一次网页授权请求 - if (is_error($oauth) || empty($oauth['openid'])) - { - $state = 'ylsid-' . session_name(); - - // 设置授权的回调地址 - $callback = $this->getFullUrl('/api/login/weixin/callback_url'); - - // 返回网页非静默授权的授权访问地址 - // 参数1:回调页面地址 - // 参数2:重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值, - // 最多128字节 - $forward = $weixin->getOauthCodeUrl($callback, $state); - header('Location: ' . $forward); - exit; - } - - /*// 根据openId和商家ID从数据库中查询全局用户信息 - $fan = getUserByOpenId($market_id,$oauth['openid'],$this->db); - $sid = ""; - $pdo = $this->db; - $pdo->beginTransaction(); - - // 通过网页授权查询用户详细信息 - $userinfo = $weixin->getOauthUserInfo($oauth['access_token'],$oauth['openid']); - // 通过openId拉取用户信息,判断用户是否关注了公众号 - $baseUserInfo = $weixin->fansQueryInfo($oauth['openid'],$this->db,$pdo); - - if (!empty($fan)) {// 假如数据库中已经存在全局用户信息 - // 查询粉丝对应的会员详细信息 - $members = getWeixinUserByUId($fan['id'],$this->db); - if(!empty($userinfo["errcode"])){// 假如授权返回错误消息,则重新登录 - header('Location: ' . $target); - }else{ - if(!empty($baseUserInfo["errcode"])){// 假如授权返回错误消息,则重新登录 - header('Location: ' . $target); - }else{ - if( $baseUserInfo["subscribe"]==1 ){ - $userinfo["subscribe"] = 1; - $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; - }else{ - $userinfo["subscribe"] = 0; - $userinfo["subscribe_time"] = 0; - } - } - } - - $member["uid"] = $fan['id']; - $member["openid"] = $fan['openid']; - - require_once __DIR__.'/../../lib/emoji/emoji.php'; - $member['nickname'] = emoji_docomo_to_unified($userinfo['nickname']); - $member['nickname'] = emoji_kddi_to_unified($member['nickname']); - $member['nickname'] = emoji_softbank_to_unified($member['nickname']); - $member['nickname'] = emoji_google_to_unified($member['nickname']); - - // 粉丝昵称 - //$member['nickname'] = stripslashes(stripcslashes($userinfo['nickname'])); - if (!empty($userinfo['headimgurl'])) {// 粉丝头像 - $member['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; - } - $member['sex'] = $userinfo['sex'];// 性别 - $member['province'] = $userinfo['province'];// 所属省份 - $member['city'] = $userinfo['city'];// 所属城市 - $member['country'] = $userinfo['country'];// 所属国家 - $member['privilege'] = $userinfo['privilege']; - $member['subscribe'] = $userinfo['subscribe'];// 粉丝是否关注 - // 粉丝是否关注 - $member['subscribe_time'] = $userinfo['subscribe_time']; - - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_WECHAT,$fan['openid'],$market_id,$this->db,$pdo); - - updateWeixinUserInfo($member,$this->db,$pdo); - } else {// 假如数据库中还不存在对应的粉丝信息记录 - // 通过网页授权接口获得粉丝信息(无论关注或未关注) - $userinfo = $weixin->getOauthUserInfo($oauth['access_token'],$oauth['openid']); - - if(!empty($userinfo["errcode"])){// 假如授权返回错误消息,则重新登录 - header('Location: ' . $target); - }else{ - // 通过openId拉取用户信息,判断用户是否关注了公众号 - $baseUserInfo = $weixin->fansQueryInfo($userinfo['openid'],$this->db,$pdo); - if(!empty($baseUserInfo["errcode"])){// 假如授权返回错误消息,则重新登录 - header('Location: ' . $target); - }else{ - if( $baseUserInfo["subscribe"]==1 ){ - $userinfo["subscribe"] = 1; - $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; - }else{ - $userinfo["subscribe"] = 0; - $userinfo["subscribe_time"] = 0; - } - } - } - - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_WECHAT,$userinfo['openid'],$market_id,$this->db,$pdo); - - $userinfo['uid'] = $globalUserInfoId;// 全局用户ID - require_once __DIR__.'/../../lib/emoji/emoji.php'; - //$userinfo['nickname'] = emoji_docomo_to_unified($userinfo['nickname']); - //$userinfo['nickname'] = emoji_kddi_to_unified($userinfo['nickname']); - $userinfo['nickname'] = emoji_softbank_to_unified($userinfo['nickname']); - //$userinfo['nickname'] = emoji_google_to_unified($userinfo['nickname']); - //exit; - //$userinfo['nickname'] = stripslashes(stripcslashes($userinfo['nickname'])); - if (!empty($userinfo['headimgurl'])) {// 粉丝头像 - $userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; - } - - updateWeixinUserInfo($userinfo,$this->db,$pdo); - } - $pdo->commit();*/ - - // 新创建的全局用户信息,从中获取新创建的sid - /*$globalUserInfo = getUserById($globalUserInfoId,$this->db); - $sid = $globalUserInfo["sid"];*/ - - if (strstr($target, '?')) - { - if (strstr($target, '&')) - { - $target .= '&openid=' . $oauth['openid']; - } - else - { - if (strstr($target, '=')) - { - $target .= '&openid=' . $oauth['openid']; - } - else - { - $target .= 'openid=' . $oauth['openid']; - } - } - } - else - { - $target .= '?openid=' . $oauth['openid']; - } - // 登录成功后跳转到客户端传入的回调页面 - header('Location: ' . $target); - } - - /** - * 使用微信授权登录(直接跳转方式),获取用户信息 - * @route({"GET","/weixin_user_url"}) - * @param({"appid","$._GET.appid"}) 应用appid - * @param({"devkey","$._GET.devkey"}) 开发者key - * @param({"market_key","$._GET.market_key"}) 门店key - * @param({"target","$._GET.target"}) 客户端需要回调的地址 - * @param({"fail_target","$._GET.fail_target"}) 发生错误时,客户端回调的页面 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function weixinUserUrlLogin($appid = "", $devkey = "", $market_key = "", $target = "", $fail_target = '') - { - if (empty($appid)) - { - return "未传入appid参数。"; - } - if (empty($devkey)) - { - return "未传入devkey参数。"; - } - $devList = Sql::select('syweb_admin.*') - ->from('syweb_admin') - ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1', $devkey) - ->get($this->db, null); - if (empty($devList) || count($devList) <= 0) - { - return "指定的devkey不存在或未被审核。"; - } - $devInfo = $devList[0]; - - $appList = Sql::select('syweb_app.*') - ->from('syweb_app') - ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid, $devInfo['id']) - ->get($this->db, null); - if (empty($appList) || count($appList) <= 0) - { - return "指定的应用不存在或未被审核。"; - } - $appInfo = $appList[0]; - - $marketList = Sql::select('syweb_market.*') - ->from('syweb_market') - ->where('syweb_market.marketid=?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - return "指定的商户不存在或未被审核。"; - } - $marketInfo = $marketList[0]; - - $account = array(); - $account["key"] = $marketInfo['weixin_appid']; - $weixin = new WeiXinAccount($account); - - - /// 剔除必须的参数. - $needed = array('sid', 'scode', 'appid', 'devkey', 'market_key', 'target', 'fail_target'); - /// 获取请求参数 - $refer_paramers = GetAttachParameters($needed); - $parameters = ''; - foreach ($refer_paramers as $k => $v) - { - $parameters .= "&{$k}={$v}"; - } - - // 开启一个会话 - session_start(); - $_SESSION[LOGINPARAMETER_CALLBACK] = (new LoginCallbackInformation('', '', $appInfo['id'], $devkey, $marketInfo["market_key"], $target, $parameters, $fail_target))->to_string(); - - $callback = $this->getFullUrl('/api/login/weixin/callback_user_url'); - $state = 'ylsid-' . session_name(); - $forward = $weixin->getOauthUserInfoUrl($callback, $state); - header('Location: ' . $forward); - exit(); - } - - /** - * 微信授权登录回调 - * @route({"GET","/weixin/callback_user_url"}) - * @param({"code", "$._GET.code"}) - * @param({"state", "$._GET.state"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function weixinUserUrlLoginCallback($code, $state) - { - session_start(); - - $app_id = ''; - $devkey = ''; - $market_key = ''; - $return_url = ''; - $return_parameter = ''; - $fail_url = ''; - - if (isset($_SESSION[LOGINPARAMETER_CALLBACK])) - { - $login = LoginCallbackInformation::CreateWithString($_SESSION[LOGINPARAMETER_CALLBACK]); - - $app_id = $login->app_id; - $devkey = $login->dev_key; - $market_key = $login->market_key; - $return_url = $login->return_url; - $return_parameter = $login->return_parameter; - $fail_url = $login->fail_url; - } - if (!$app_id || !$devkey || !$market_key || !$return_url || !$fail_url) - { - return "登录失败!"; - } - - if (!$state || !$code) - { - header('Location: ' . $return_url); - } - - $marketList = Sql::select('syweb_market.*') - ->from('syweb_market') - ->where('syweb_market.market_key = ?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - return "指定的商户ID不存在!"; - } - $marketInfo = $marketList[0]; - - $account = array(); - $account["key"] = $marketInfo["weixin_appid"]; - $account["secret"] = $marketInfo["weixin_secret_appid"]; - $weixin = new WeiXinAccount($account); - - // 通过授权获得的code去换取网页授权的Access_token和openId - $oauth = $weixin->getOauthInfo($code); - - // 假如没有获得openId,则重新发起一次网页授权请求 - if (is_error($oauth) || empty($oauth['openid'])) - { - $state = 'ylsid-' . session_name(); - - // 设置授权的回调地址 - $callback = $this->getFullUrl('/api/login/weixin/callback_user_url'); - - // 返回网页非静默授权的授权访问地址 - // 参数1:回调页面地址 - // 参数2:重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值, - // 最多128字节 - $forward = $weixin->getOauthUserInfoUrl($callback, $state); - header('Location: ' . $forward); - exit; - } - - $pdo = $this->db; - // 通过网页授权查询用户详细信息 - $userinfo = $weixin->getOauthUserInfo($oauth['access_token'], $oauth['openid']); - // 通过openId拉取用户信息,判断用户是否关注了公众号 - $baseUserInfo = $weixin->fansQueryInfo($oauth['openid'], $this->db, $pdo); - - if (!empty($userinfo["errcode"])) - { - // 假如授权返回错误消息,则重新登录 - header('Location: ' . $return_url); - } - else - { - if (!empty($baseUserInfo["errcode"])) - { - // 假如授权返回错误消息,则重新登录 - header('Location: ' . $return_url); - } - else - { - if ($baseUserInfo["subscribe"] == 1) - { - $userinfo["subscribe"] = 1; - $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; - } - else - { - $userinfo["subscribe"] = 0; - $userinfo["subscribe_time"] = 0; - } - } - } - - // 根据当前openId创建一条全局用户记录或更新用户记录 - //require_once __DIR__.'/../../lib/emoji/emoji.php'; - //$userinfo['nickname'] = emoji_docomo_to_unified($userinfo['nickname']); - //$userinfo['nickname'] = emoji_kddi_to_unified($userinfo['nickname']); - //$userinfo['nickname'] = emoji_softbank_to_unified($userinfo['nickname']); - //$userinfo['nickname'] = emoji_google_to_unified($userinfo['nickname']); - //exit; - //$userinfo['nickname'] = stripslashes(stripcslashes($userinfo['nickname'])); - if (!empty($userinfo['headimgurl'])) - { - // 粉丝头像 - $userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; - } - - $extend_paramers = "nickname=" . $userinfo["nickname"]; - $extend_paramers .= "&sex=" . $userinfo["sex"]; - $extend_paramers .= "&province=" . $userinfo["province"]; - $extend_paramers .= "&city=" . $userinfo["city"]; - $extend_paramers .= "&country=" . $userinfo["country"]; - $extend_paramers .= "&headimgurl=" . $userinfo["headimgurl"]; - $extend_paramers .= "&privilege=" . $userinfo["privilege"]; - $extend_paramers .= "&subscribe=" . $userinfo["subscribe"]; - $extend_paramers .= "&subscribe_time=" . $userinfo["subscribe_time"]; - $extend_paramers .= "&openid=" . $userinfo["openid"]; - $extend_paramers .= "&state=" . $state; - - $p = strstr($return_url, '?'); - if (empty($p)) - $return_url .= "?{$extend_paramers}{$return_parameter}"; - elseif ('?' == $p) - $return_url .= "{$extend_paramers}{$return_parameter}"; - else - $return_url .= "&{$extend_paramers}{$return_parameter}"; - - // 登录成功后跳转到客户端传入的回调页面 - header('Location: ' . $return_url); - } - - - /** - * 使用聚开心授权登录 - * @route({"GET","/jkx"}) - * @param({"appid","$._GET.appid"}) 应用appid - * @param({"devkey","$._GET.devkey"}) 开发者key - * @param({"market_key","$._GET.market_key"}) 门店key - * @param({"scode","$._GET.scode"}) 客户端生成的Scode - * @param({"target","$._GET.target"}) 客户端需要回调的地址 - * @param({"fail_target","$._GET.fail_target"}) 发生错误时,客户端回调的页面 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function jkxLogin($appid = "", $devkey = "", $market_key = "", $scode = "", $target = "", $fail_target = "") - { - $result = array(); - - if (empty($appid)) - { - $result["error"] = '1'; - $result["error_code"] = 10001; // 未传入appid参数 - $result["msg"] = "未传入appid参数"; - $this->forwardUrl($fail_target, $result); - } - if (empty($devkey)) - { - $result["error"] = '1'; - $result["error_code"] = 10002; // 未传入devkey参数 - $result["msg"] = "未传入devkey参数"; - $this->forwardUrl($fail_target, $result); - } - $devList = Sql::select('a.*') - ->from('syweb_admin a') - ->where('a.type=2 and a.admin_key=? and a.status=1', $devkey) - ->get($this->db, null); - if (empty($devList) || count($devList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10003; // devkey无效 - $result["msg"] = "devkey无效或未经过审核"; - $this->forwardUrl($fail_target, $result); - } - $devInfo = $devList[0]; - - $appBaseList = Sql::select('a.*') - ->from('syweb_app_base a') - ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appid, $devInfo['admin_key']) - ->get($this->db, null); - if (empty($appBaseList) || count($appBaseList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10004; // 指定的应用不存在或未被审核 - $result["msg"] = "指定的应用不存在或未被审核"; - $this->forwardUrl($fail_target, $result); - } - $appBaseKey = $appBaseList[0]["app_key"]; - - $appList = Sql::select('a.*') - ->from('syweb_app a') - ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appBaseKey, $devInfo['admin_key']) - ->get($this->db, null); - if (empty($appList) || count($appList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10005; // 指定的应用不存在或未被审核 - $result["msg"] = "指定的应用不存在或未被审核"; - $this->forwardUrl($fail_target, $result); - } - $appInfo = $appList[0]; - - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key=?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - $result["error"] = '1'; - $result["error_code"] = 10007; // 指定的门店不存在 - $result["msg"] = "指定的门店不存在或已经被删除"; - $this->forwardUrl($fail_target, $result); - } - $marketInfo = $marketList[0]; - - $account = array(); - $account["key"] = $marketInfo['weixin_appid']; - //$weixin = new WeiXinAccount($account); - -/* - // 分析主域名中的参数 begin - $referUrls = parse_url($_SERVER['HTTP_REFERER']); - $callback_paramers = ""; - if (!empty($referUrls['query'])) - { - // 假如传入了参数 - $callback_paramers_list = explode("&", $referUrls['query']); - if (!empty($callback_paramers_list) && count($callback_paramers_list) > 0) - { - foreach ($callback_paramers_list as $key => $value) - { - if (!strstr($value, 'appid=') && - !strstr($value, 'devkey=') && - !strstr($value, 'market_key=') && - !strstr($value, 'scode=') && - !strstr($value, 'target=') && - !strstr($value, 'state=') - ) - { - if (empty($callback_paramers)) - { - $callback_paramers = $value; - } - else - { - $callback_paramers .= '&' . $value; - } - } - } - } - } - - $newTarget = ''; - $targetUrls = parse_url($target); - if (!empty($targetUrls)) - { - $newTarget = $targetUrls['scheme'] . '://' . $targetUrls['host'] . ((!empty($targetUrls['port']) && $targetUrls['port'] != '80') ? ':' . $targetUrls['port'] : '') . $targetUrls['path']; - } - - if (!empty($callback_paramers)) - { - if (strstr($newTarget, '?')) - { - if (strstr($newTarget, '&')) - { - $newTarget .= '&' . $callback_paramers; - } - else - { - $newTarget .= $callback_paramers; - } - } - else - { - $newTarget .= '?' . $callback_paramers; - } - } - // 分析主域名中的参数 -*/ - - /// 剔除必须的参数. - $needed = array('sid', 'scode', 'appid', 'devkey', 'market_key', 'target', 'fail_target'); - /// 获取请求参数 - $refer_paramers = GetAttachParameters($needed); - $parameters = ''; - foreach ($refer_paramers as $k => $v) - { - $parameters .= "&{$k}={$v}"; - } - - // 开启一个会话 - session_start(); - $_SESSION[LOGINPARAMETER_CALLBACK] = (new LoginCallbackInformation('', $scode, $appInfo['id'], $devkey, $marketInfo["market_key"], $target, $parameters, $fail_target))->to_string(); - - ///$callback = "http://" . $this::$domain . "/api/login/jkx/callback"; - $callback = $this->getFullUrl('/api/login/jkx/callback'); - //$state = 'ylsid-' . session_name(); - - $jkxParamers = array(); - $jkxParamers["appid"] = "G3CI8FQF"; - $jkxParamers["Appkey"] = "28de5f4a54cbbb62b2264ab555ff7f62"; - //$secret = "ecd10d48daf3138b88727bc65ca3e0bd"; - $jkxParamers["returnUrl"] = $callback; - - $forward = "http://www.0792it.com/partnerApi/GetAccessToken.aspx"; - $this->forwardUrl($forward, $jkxParamers); - } - - /** - * 聚开心授权登录回调(10010-10030) - * @route({"GET","/jkx/callback"}) - * @param({"spid", "$._GET.spid"}) - * @param({"accessToken", "$._GET.accessToken"}) - * @param({"uid", "$._GET.uid"}) uid - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function jkxLoginCallback($spid, $accessToken, $uid) - { - session_start(); - - $scode = ''; - $app_id = ''; - $devkey = ''; - $market_key = ''; - $return_url = ''; - $return_parameter = ''; - $fail_url = ''; - - if (isset($_SESSION[LOGINPARAMETER_CALLBACK])) - { - $login = LoginCallbackInformation::CreateWithString($_SESSION[LOGINPARAMETER_CALLBACK]); - - $scode = $login->scode; - $app_id = $login->app_id; - $devkey = $login->dev_key; - $market_key = $login->market_key; - $return_url = $login->return_url; - $return_parameter = $login->return_parameter; - $fail_url = $login->fail_url; - } - - if (!$scode || !$return_url || !$fail_url || !$app_id || !$devkey || !$market_key) - { - $this->forwardUrl($fail_url, (new returnObject(1, 10010, '缺少必要参数,登录失败!'))->to_array()); - } - - if (!$spid || !$accessToken || !$uid) - { - $this->forwardUrl($fail_url, (new returnObject(1, 10011, '缺少spid或accessToken或uid参数,登录失败!'))->to_array()); - } - - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key=?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - $this->forwardUrl($fail_url, (new returnObject(1, 10007, '指定的门店不存在或已经被删除'))->to_array()); - } - //$marketInfo = $marketList[0]; - - //$account = array(); - //$account["key"] = $marketInfo["weixin_appid"]; - //$account["secret"] = $marketInfo["weixin_secret_appid"]; - //$weixin = new WeiXinAccount($account); - - $appid = "G3CI8FQF"; - $appkey = "28de5f4a54cbbb62b2264ab555ff7f62"; - - $url = "http://www.0792it.com/partnerApi/GetSpidFromUid.ashx?appid={$appid}&appkey={$appkey}&uid={$uid}"; - $response = ihttp_get($url); - if (empty($response)) - { - $this->forwardUrl($fail_url, (new returnObject(1, 10012, '获取授权信息错误,登录失败!'))->to_array()); - } - - $response = @json_decode($response['content'], true); - - $spid = $response["spid"]; - $accessToken = $response["accessToken"]; - - // 开始获取用户信息 - $url = "http://www.0792it.com/partnerApi/GetUserInfo.ashx?spid={$spid}&accessToken={$accessToken}"; - - $sign = "accessToken={$accessToken}&spid={$spid}&secret=ecd10d48daf3138b88727bc65ca3e0bd"; - $sign = md5($sign); - - $url .= "&sign={$sign}"; - - $response = ihttp_get($url); - if (empty($response)) - { - $this->forwardUrl($fail_url, (new returnObject(1, 10012, '获取授权信息错误,登录失败!'))->to_array()); - } - $response = @json_decode($response['content'], true); - - $retCode = $response["RetCode"]; - if ($retCode == 1) - { - $this->forwardUrl($fail_url, (new returnObject(1, 10013, $response["RetMsg"]))->to_array()); - } - - $level = $response["Level"]; - $enum = $response["Enum"]; - $realname = $response["Realname"]; - $img = $response["Img"]; - $tel = $response["Tel"]; - $integral = $response["Integral"]; - - // 根据openId和门店Key从数据库中查询全局用户信息 - $fan = getUserByOpenId($market_key, $uid, 2, $this->db); - //$sid = ""; - $pdo = $this->db; - $pdo->beginTransaction(); - - if (!empty($fan)) - { - // 假如数据库中已经存在全局用户信息 - // 查询粉丝对应的会员详细信息 - $members = getJkxUserByUId($fan['id'], $this->db); - - $member["uid"] = $fan['id']; - $member["username"] = $uid; - $member['headimgurl'] = $img; - $member['level'] = $level; - $member['enum'] = $enum; - $member['realname'] = $realname; - $member['tel'] = $tel; - $member['integral'] = $integral; - - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_JKX, $uid, $market_key, $this->db, $pdo); - - // 更新微信用户信息 - updateJkxUserInfo($member, $this->db, $pdo); - } - else - { - // 假如数据库中还不存在对应的粉丝信息记录 - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_JKX, $uid, $market_key, $this->db, $pdo); - - $userinfo['uid'] = $globalUserInfoId;// 全局用户ID - $userinfo["username"] = $uid; - $userinfo['level'] = $level; - $userinfo['enum'] = $enum; - $userinfo['realname'] = $realname; - $userinfo['tel'] = $tel; - $userinfo['headimgurl'] = $img; - $userinfo['integral'] = $integral; - updateJkxUserInfo($userinfo, $this->db, $pdo); - } - $pdo->commit(); - - // 新创建的全局用户信息,从中获取新创建的sid - $globalUserInfo = getUserById($globalUserInfoId, $this->db); - $sid = $globalUserInfo["sid"]; -/* - $newTarget = ''; - $targetUrls = parse_url($target); - if (!empty($targetUrls)) - { - $newTarget = $targetUrls['scheme'] . '://' . $targetUrls['host'] . ((!empty($targetUrls['port']) && $targetUrls['port'] != '80') ? ':' . $targetUrls['port'] : '') . $targetUrls['path']; - } - - $paramers = ""; - if (!empty($targetUrls['query'])) - { - // 假如传入了参数 - $paramerList = explode("&", $targetUrls['query']); - if (!empty($paramerList) && count($paramerList) > 0) - { - foreach ($paramerList as $key => $value) - { - if (!strstr($value, 'sid=')) - { - if (empty($paramers)) - { - $paramers = $value; - } - else - { - $paramers .= '&' . $value; - } - } - } - } - } - - $stateParamers = ""; - if (!empty($state)) - { - $stateParamers = "&state=" . $state; - } - if (empty($paramers)) - { - $newTarget .= '?sid=' . $sid . $stateParamers; - } - else - { - $newTarget .= '?' . $paramers . '&sid=' . $sid . $stateParamers; - } -*/ - - $p = strstr($return_url, '?'); - if (empty($p)) - $return_url .= "?sid={$sid}&scode={$scode}{$return_parameter}"; - elseif ('?' == $p) - $return_url .= "sid={$sid}&scode={$scode}{$return_parameter}"; - else - $return_url .= "&sid={$sid}&scode={$scode}{$return_parameter}"; - - // 登录成功后跳转到客户端传入的回调页面 - header('Location: ' . $return_url); - } - - /** - * 使用APP登录 - * @route({"POST","/ylnn"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"market_key","$._POST.market_key"}) 门店key - * @param({"scode","$._POST.scode"}) 客户端生成的Scode - * @param({"agent_key","$._POST.agent_key"}) 代理商Key - * @param({"game_key","$._POST.game_key"}) 游戏Key - * @param({"user_key","$._POST.user_key"}) 用户Key - * @param({"headImg","$._POST.headImg"}) 用户头像 - * @param({"nickname","$._POST.nickname"}) 用户昵称 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function ylnnLogin( - $appid = "", - $devkey = "", - $market_key = "", - $scode = "", - $agent_key = "", - $game_key = "", - $user_key = '', - $headImg = '', - $nickname = '' - ) - { - if (empty($appid)) - return new returnObject(1, 10001, '未传入appid参数!'); - - if (empty($devkey)) - return new returnObject(1, 10002, '未传入devkey参数!'); - - $devList = Sql::select('a.*') - ->from('syweb_admin a') - ->where('a.type=2 and a.admin_key=? and a.status=1', $devkey) - ->get($this->db, null); - if (empty($devList) || count($devList) <= 0) - return new returnObject(1, 10002, 'devkey无效或未经过审核!'); - - $devInfo = $devList[0]; -/* - $appBaseList = Sql::select('a.*') - ->from('syweb_app_base a') - ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appid, $devInfo['admin_key']) - ->get($this->db, null); - if (empty($appBaseList) || count($appBaseList) <= 0) - return new returnObject(1, 10004, '指定的应用不存在或未被审核!'); - - $appBaseKey = $appBaseList[0]["app_key"]; - - $appList = Sql::select('a.*') - ->from('syweb_app a') - ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appBaseKey, $devInfo['admin_key']) - ->get($this->db, null); - if (empty($appList) || count($appList) <= 0) - return new returnObject(1, 10005, '指定的应用不存在或未被审核!'); -*/ - $appList = Sql::select('b.*') - ->from('syweb_app_base a, syweb_app b') - ->where('a.app_key = b.ref_key and a.status = b.status and a.dev_key = b.dev_key and a.ref_key = ? and a.dev_key = ? and a.status = 10', $appid, $devInfo['admin_key']) - ->get($this->db, null); - if (empty($appList) || count($appList) <= 0) - { - return new returnObject(1, 10004, '指定的应用不存在或未被审核!'); - } - ///$appInfo = $appList[0]; - - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key=?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - { - return new returnObject(1, 10007, '指定的门店不存在或已经被删除!'); - } - ///$marketInfo = $marketList[0]; - - $uid = md5($agent_key . $game_key . $user_key); - - // 根据openId和门店Key从数据库中查询全局用户信息 - $fan = getUserByOpenId($market_key, $uid, AUTHTYPE_NIUNIUGAME, $this->db); - $sid = ""; - $pdo = $this->db; - $pdo->beginTransaction(); - - if (!empty($fan)) - { - // 假如数据库中已经存在全局用户信息 - // 查询粉丝对应的会员详细信息 - $member = getYlnnUserByUId($fan['id'], $this->db); - - $member["uid"] = $fan['id']; - $member["user_key"] = $uid; - $member["agent_key"] = $agent_key; - $member['game_key'] = $game_key; - $member['player_key'] = $user_key; - $member['headimgurl'] = $headImg; - $member['nickname'] = $nickname; - - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_NIUNIUGAME, $uid, $market_key, $this->db, $pdo); - - // 更新微信用户信息 - updateYlnnUserInfo($member, $this->db, $pdo); - } - else - { - // 假如数据库中还不存在对应的粉丝信息记录 - // 根据当前openId创建一条全局用户记录或更新用户记录 - $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_NIUNIUGAME, $uid, $market_key, $this->db, $pdo); - - $userinfo["uid"] = $globalUserInfoId;// 全局用户ID - $userinfo["user_key"] = $uid; - $userinfo["agent_key"] = $agent_key; - $userinfo['game_key'] = $game_key; - $userinfo['player_key'] = $user_key; - $userinfo['headimgurl'] = $headImg; - $userinfo['nickname'] = $nickname; - - updateYlnnUserInfo($userinfo, $this->db, $pdo); - } - $pdo->commit(); - - // 新创建的全局用户信息,从中获取新创建的sid - $globalUserInfo = getUserById($globalUserInfoId, $this->db); - $sid = $globalUserInfo["sid"]; - - if (empty($sid)) - return new returnObject(1, 13000, '登录失败,无法获取SID!'); - else - return new returnObject(0, 0, '登录成功!', array('sid' => $sid, 'scode' => $scode)); - } - - /** @inject("ioc_factory") */ - private $factory; - /** - * @property({"default":"@db"}) - * @var PDO - */ - public $db; - // 此处删除了代码 +sid = $sid; + $this->scode = $scode; + $this->app_id = $app_id; + $this->dev_key = $dev_key; + $this->market_key = $market_key; + $this->return_url = $return_url; + $this->return_parameter = $return_parameter; + $this->fail_url = $fail_url; + } + + public function to_array() + { + return (array)$this; + } + + public function to_string() + { + return json_encode($this, JSON_UNESCAPED_UNICODE); + } + + public function from_array($array) + { + foreach ($array as $key => $value) + { + if (property_exists($this, $key)) + $this->$key = $value; + } + + return true; + } + + public function from_string($string) + { + return $this->from_array((array)json_decode($string)); + } + + + /** + * @param $string + * @return LoginCallbackInformation + */ + static public function CreateWithString($string) + { + $return = new LoginCallbackInformation(); + $return->from_string($string); + + return $return; + } + + /** + * @param $array + * @return LoginCallbackInformation + */ + static public function CreateWithArray($array) + { + $return = new LoginCallbackInformation(); + $return->from_array($array); + + return $return; + } +} + + + +/** + * + * 登录管理 + * @path("/login") + */ +class Login extends apiBase +{ + /** + * 获得登录方式 + * @route({"GET","/"}) + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + * @return("body") + */ + public function getLoginType() + { + $result = array( + //0 => array( + // 'name' => '微信登录', + // 'url' => $this->getFullUrl('/api/login/weixin'), + // 'third' => 'weixin', + //), + + //1 => array( + // 'name' => 'QQ登录', + // 'url' => $this->getFullUrl('/api/login/qq'), + // 'third' => 'qq', + //), + + 0 => array( + 'name' => '聚开心登录', + 'url' => $this->getFullUrl('/api/login/jkx'), + 'third' => 'jkx', + ), + ); + + return $result; + } + + + /** + * 获得登录方式 + * @route({"GET","/querylist"}) + * @route({"POST","/querylist"}) + * @param({"market_key","$._POST.market_key"}) 门店key + * @param({"logintype","$._POST.logintype"}) 登陆方式 + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + * @return("body") + */ + public function getLoginList($market_key = '', $logintype = 0) + { + if (empty($market_key)) + { + $condition = 'is_enabled = 1'; + + if (!empty($logintype)) + $condition .= sprintf(' and type_id = %d', intval($logintype)); + + $data = Sql::Select('type_id,type_key,type_name,image,url,component,is_third,third_flag') + ->from('syweb_logintype_base') + ->where($condition) + ->get($this->db); + } + else + { + $condition = 'a.type_key = b.type_key and a.is_enabled = 1 and b.is_enabled = 1 and market_key = ?'; + + if (!empty($logintype)) + $condition .= sprintf(' and a.type_id = %d', intval($logintype)); + + $data = Sql::Select('a.type_id,a.type_key,a.type_name,a.image,a.url,a.component,a.is_third,a.third_flag') + ->from('syweb_logintype_base a, syweb_logintype_market b') + ->where($condition, $market_key) + ->get($this->db); + } + + foreach ($data as $key=>&$value) + { + $value['url'] = $this->getFullUrl($value['url']); + } + + return json_encode($data, JSON_UNESCAPED_UNICODE); + } + + + /** + * 使用QQ授权登录 + * @route({"GET","/qq"}) + * @param({"appid","$._GET.appid"}) 应用appid + * @param({"devkey","$._GET.devkey"}) 开发者key + * @param({"market_key","$._GET.market_key"}) 门店key + * @param({"scode","$._GET.scode"}) 客户端生成的Scode + * @param({"target","$._GET.target"}) 客户端需要回调的地址 + * @param({"state","$._POST.state"}) 随机参数 + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function qqLogin($appid = "", $devkey = "", $market_key = "", $scode, $target, $state = '') + { + require_once __DIR__ . '/../../loginLib/qq/API/qqConnectAPI.php'; + if (empty($appid)) + { + $result["error"] = '1'; + $result["error_code"] = 10001; // 未传入appid参数 + return $result; + } + if (empty($devkey)) + { + $result["error"] = '1'; + $result["error_code"] = 10002; // 未传入devkey参数 + return $result; + } + $devList = Sql::select('syweb_admin.*') + ->from('syweb_admin') + ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1', $devkey) + ->get($this->db, null); + if (empty($devList) || count($devList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10003; // devkey无效 + return $result; + } + $devInfo = $devList[0]; + + $appList = Sql::select('syweb_app.*') + ->from('syweb_app') + ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid, $devInfo['id']) + ->get($this->db, null); + if (empty($appList) || count($appList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10004; // 指定的应用不存在或未被审核 + return $result; + } + $appInfo = $appList[0]; + + $marketList = Sql::select('syweb_market.*') + ->from('syweb_market') + ->where('syweb_market.marketid=?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10007; // 指定的商家不存在 + return $result; + } + $marketInfo = $marketList[0]; + + //开启一个会话 + session_start(); + $_SESSION[LOGINPARAMETER_CALLBACK] = (new LoginCallbackInformation('', $scode, $appInfo['id'], $devkey, $marketInfo['id'], $target))->to_string(); + + $qc = new QC(); + $qc->qq_login(); + } + + /** + * QQ授权登录回调 + * @route({"GET","/qq/callback"}) + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function qqLoginCallback() + { + session_start(); + + $scode = ""; + $target = ""; + $app_id = ""; + $devkey = ""; + $market_id = ""; + + if (isset($_SESSION[LOGINPARAMETER_CALLBACK])) + { + $login = LoginCallbackInformation::CreateWithString($_SESSION[LOGINPARAMETER_CALLBACK]); + + $scode = $login->scode; + $target = $login->return_url; + $app_id = $login->app_id; + $devkey = $login->dev_key; + $market_id = $login->market_key; + } + + if (!$scode || !$target || !$app_id || !$devkey || !$market_id) + { + return "登录失败!"; + } + + require_once __DIR__ . '/../../loginLib/qq/API/qqConnectAPI.php'; + + $qc = new QC(); + $access_token = $qc->qq_callback(); + $openId = $qc->get_openid(); + + if (empty($openId)) + { + return "授权登录失败!"; + } + + // 获得QQ授权获得的QQ信息 + $qc = new QC($access_token, $openId); + $userinfo = $qc->get_user_info(); + /* + foreach($userinfo as $k => $v){ + echo $k.'=='.$v.'
          '; + } + + $ret = $qc->get_info(); + if($ret['ret'] == 0){ + foreach($ret['data'] as $k => $v){ + echo $k.'=='.$v.'
          '; + } + }else{ + echo ""; + echo "获取失败,请开启调试查看原因"; + } + exit;*/ + + // 根据QQ对应的openId查询数据库对应的全局用户信息 + $fan = getUserByOpenId($market_id, $openId, $this->db); + $sid = ""; + + $pdo = $this->db; + $pdo->beginTransaction(); + if (!empty($fan)) + { + // 查询粉丝对应的会员详细信息 + $members = getQqUserByUId($fan['id'], $this->db); + + if (empty($member)) + { + if ($userinfo['ret'] == 0) + {// 假如授权返回错误消息,则重新登录 + header('Location: ' . $target); + } + } + + $member["uid"] = $fan['id']; + $member["openid"] = $fan['openid']; + // 粉丝昵称 + $member['nickname'] = stripcslashes($userinfo['nickname']); + $member['province'] = $userinfo['province'];//所属省份 + $member['city'] = $userinfo['city'];//所属省份 + $member['year'] = $userinfo['year'];//所属城市 + $member['gender'] = $userinfo['gender'];// 性别 + $member['figureurl_qq_1'] = $userinfo['figureurl_qq_1'];// QQ小头像 + $member['figureurl_qq_2'] = $userinfo['figureurl_qq_2'];// QQ大头像 + $member['figureurl'] = $userinfo['figureurl'];// 大头像 + $member['figureurl_1'] = $userinfo['figureurl_1'];// 中头像 + $member['figureurl_2'] = $userinfo['figureurl_2'];// 小头像 + $member['vip'] = $userinfo['vip']; + $member['level'] = $userinfo['level']; + $member['yellow_vip_level'] = $userinfo['yellow_vip_level']; + $member['is_yellow_year_vip'] = $userinfo['is_yellow_year_vip']; + + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_QQ, $fan['openid'], $market_id, $this->db, $pdo); + + updateQqUserInfo($member, $this->db, $pdo); + } + else + {// 假如数据库中还不存在对应的粉丝信息记录 + if ($userinfo['ret'] == 0) + {// 假如授权返回错误消息,则重新登录 + header('Location: ' . $target); + } + + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_QQ, $openId, $market_id, $this->db, $pdo); + + $userinfo['uid'] = $globalUserInfoId;// 全局用户ID + $userinfo['openid'] = $openId; + + updateQqUserInfo($userinfo, $this->db, $pdo); + } + $pdo->commit(); + + // 新创建的全局用户信息,从中获取新创建的sid + $globalUserInfo = getUserById($globalUserInfoId, $this->db); + $sid = $globalUserInfo["sid"]; + + if (strstr($target, '?')) + { + if (strstr($target, '&')) + { + $target .= '&sid=' . $sid; + } + else + { + $target .= 'sid=' . $sid; + } + } + else + { + $target .= '?sid=' . $sid; + } + // 登录成功后跳转到客户端传入的回调页面 + header('Location: ' . $target); + } + + /** + * 使用微信授权登录 + * @route({"GET","/weixin"}) + * @param({"appid","$._GET.appid"}) 应用appid + * @param({"devkey","$._GET.devkey"}) 开发者key + * @param({"market_key","$._GET.market_key"}) 门店key + * @param({"scode","$._GET.scode"}) 客户端生成的Scode + * @param({"target","$._GET.target"}) 客户端需要回调的地址 + * @param({"fail_target","$._GET.fail_target"}) 发生错误时,客户端回调的页面 + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function weixinLogin($appid = "", $devkey = "", $market_key = "", $scode = "", $target = "", $fail_target = "") + { + if (empty($appid)) + { + $this->forwardUrl($fail_target, new returnObject(1, 10001, '未传入appid参数!')); + } + if (empty($devkey)) + { + $this->forwardUrl($fail_target, new returnObject(1, 10002, '未传入devkey参数!')); + } + + $devList = Sql::select('a.*') + ->from('syweb_admin a') + ->where('a.type=2 and a.admin_key=? and a.status=1', $devkey) + ->get($this->db, null); + if (empty($devList) || count($devList) <= 0) + { + $this->forwardUrl($fail_target, new returnObject(1, 10003, 'devkey无效或未经过审核!')); + } + $devInfo = $devList[0]; +/* + $appBaseList = Sql::select('a.*') + ->from('syweb_app_base a') + ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appid, $devInfo['admin_key']) + ->get($this->db, null); + if (empty($appBaseList) || count($appBaseList) <= 0) + { + $this->forwardUrl($fail_target, new returnObject(1, 10004, '指定的应用不存在或未被审核!')); + } + $appBaseKey = $appBaseList[0]["app_key"]; + + $appList = Sql::select('a.*') + ->from('syweb_app a') + ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appBaseKey, $devInfo['admin_key']) + ->get($this->db, null); + if (empty($appList) || count($appList) <= 0) + { + $this->forwardUrl($fail_target, new returnObject(1, 10005, '指定的应用不存在或未被审核!')); + } + $appInfo = $appList[0]; + + $marketList = Sql::select('a.*') + ->from('syweb_market a') + ->where('a.market_key=?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + $this->forwardUrl($fail_target, new returnObject(1, 10007, '指定的门店不存在或已经被删除!')); + } + $marketInfo = $marketList[0]; +*/ + + $appList = Sql::select('b.*') + ->from('syweb_app_base a, syweb_app b') + ->where('a.app_key = b.ref_key and a.status = b.status and a.dev_key = b.dev_key and a.ref_key = ? and a.dev_key = ? and a.status = 10', $appid, $devInfo['admin_key']) + ->get($this->db, null); + if (empty($appList) || count($appList) <= 0) + { + $this->forwardUrl($fail_target, new returnObject(1, 10005, '指定的应用不存在或未被审核!')); + } + $appInfo = $appList[0]; + + $marketList = Sql::select('a.*') + ->from('syweb_market a, syweb_logintype_market b') + ->where('a.market_key = b.market_key and b.type_key = \'0002\' and b.is_enabled != 0 and a.market_key = ?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + $this->forwardUrl($fail_target, new returnObject(1, 10007, '指定的门店不存在或已经被删除, 或该门店不支持该登录方式!')); + } + $marketInfo = $marketList[0]; + + $account = array(); + $account["key"] = $marketInfo['weixin_appid']; + $weixin = new WeiXinAccount($account); + +/* + // 分析主域名中的参数 begin + $referUrls = parse_url($_SERVER['HTTP_REFERER']); /// 请求方的参数 + $callback_paramers = ""; + if (!empty($referUrls['query'])) + { + // 假如传入了参数 + $callback_paramers_list = explode("&", $referUrls['query']); + if (!empty($callback_paramers_list) && count($callback_paramers_list) > 0) + { + foreach ($callback_paramers_list as $key => $value) + { + if (!strstr($value, 'appid=') && + !strstr($value, 'devkey=') && + !strstr($value, 'market_key=') && + !strstr($value, 'scode=') && + !strstr($value, 'target=') && + !strstr($value, 'state=') + ) + { + if (empty($callback_paramers)) + { + $callback_paramers = $value; + } + else + { + $callback_paramers .= '&' . $value; + } + } + } + } + } + + $newTarget = ''; + $targetUrls = parse_url($target); + if (!empty($targetUrls)) + { + $newTarget = $targetUrls['scheme'] . '://' . $targetUrls['host'] . ((!empty($targetUrls['port']) && $targetUrls['port'] != '80') ? ':' . $targetUrls['port'] : '') . $targetUrls['path']; + } + + if (!empty($callback_paramers)) + { + if (strstr($newTarget, '?')) + { + if (strstr($newTarget, '&')) + { + $newTarget .= '&' . $callback_paramers; + } + else + { + $newTarget .= $callback_paramers; + } + } + else + { + $newTarget .= '?' . $callback_paramers; + } + } + // 分析主域名中的参数 +*/ + + + /// 剔除必须的参数. + $needed = array('sid', 'scode', 'appid', 'devkey', 'market_key', 'target', 'fail_target'); + /// 获取请求参数 + $refer_paramers = GetAttachParameters($needed); + $parameters = ''; + foreach ($refer_paramers as $k => $v) + { + $parameters .= "&{$k}={$v}"; + } + + + // 开启一个会话 + session_start(); + $_SESSION[LOGINPARAMETER_CALLBACK] = (new LoginCallbackInformation('', $scode, $appInfo['id'], $devkey, $marketInfo["market_key"], $target, $parameters, $fail_target))->to_string(); + + ///$callback = "http://" . $this::$domain . "/api/login/weixin/callback"; + $callback = $this->getFullUrl('/api/login/weixin/callback'); + $state = 'ylsid-' . session_name(); + $forward = $weixin->getOauthUserInfoUrl($callback, $state); + //exit($forward); + header('Location: ' . $forward); + exit(); + } + + /** + * 微信授权登录回调(10010-10030) + * @route({"GET","/weixin/callback"}) + * @param({"code", "$._GET.code"}) + * @param({"state", "$._GET.state"}) + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function weixinLoginCallback($code = '', $state = '') + { + session_start(); + + $scode = ''; + $app_id = ''; + $devkey = ''; + $market_key = ''; + $return_url = ''; + $return_parameter = ''; + $fail_url = ''; + + if (isset($_SESSION[LOGINPARAMETER_CALLBACK])) + { + $login = LoginCallbackInformation::CreateWithString($_SESSION[LOGINPARAMETER_CALLBACK]); + + $scode = $login->scode; + $app_id = $login->app_id; + $devkey = $login->dev_key; + $market_key = $login->market_key; + $return_url = $login->return_url; + $return_parameter = $login->return_parameter; + $fail_url = $login->fail_url; + } + + + if (!$scode || !$return_url || !$fail_url || !$app_id || !$devkey || !$market_key) + { + $this->forwardUrl($fail_url, (new returnObject(1, 10010, '缺少必要参数,登录失败!'))->to_array()); + } + + if (!$state || !$code) + { + header('Location: ' . $return_url); + } + + $marketList = Sql::select('a.*') + ->from('syweb_market a') + ->where('a.market_key=?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + $this->forwardUrl($fail_url, (new returnObject(1, 10007, '指定的门店不存在或已经被删除'))->to_array()); + } + $marketInfo = $marketList[0]; + + $account = array(); + $account["key"] = $marketInfo["weixin_appid"]; + $account["secret"] = $marketInfo["weixin_secret_appid"]; + $weixin = new WeiXinAccount($account); + + // 通过授权获得的code去换取网页授权的Access_token和openId + $oauth = $weixin->getOauthInfo($code); + + // 假如没有获得openId,则重新发起一次网页授权请求 + if (is_error($oauth) || empty($oauth['openid'])) + { + $state = 'ylsid-' . session_name(); + + // 设置授权的回调地址 + ///$callback = rawurlencode("http://" . $this::$domain . "/api/login/weixin/callback"); + $callback = $this->getFullUrl('/api/login/weixin/callback'); + + // 返回网页非静默授权的授权访问地址 + // 参数1:回调页面地址 + // 参数2:重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值, + // 最多128字节 + $forward = $weixin->getOauthUserInfoUrl($callback, $state); + header('Location: ' . $forward); + exit; + } + + // 根据openId和门店Key从数据库中查询全局用户信息 + $fan = getUserByOpenId($market_key, $oauth['openid'], 0, $this->db); + $sid = ""; + $pdo = $this->db; + $pdo->beginTransaction(); + + // 通过网页授权查询用户详细信息 + $userinfo = $weixin->getOauthUserInfo($oauth['access_token'], $oauth['openid']); + + // 通过openId拉取用户信息,判断用户是否关注了公众号 + $baseUserInfo = $weixin->fansQueryInfo($oauth['openid'], $this->db, $pdo); + + if (!empty($fan)) + {// 假如数据库中已经存在全局用户信息 + // 查询粉丝对应的会员详细信息 + $members = getWeixinUserByUId($fan['id'], $this->db); + if (!empty($userinfo["errcode"])) + { + // 假如授权返回错误消息,则重新登录 + $this->forwardUrl($fail_url, (new returnObject(1, 10011, '缺少state或code参数,登录失败!'))->to_array()); + } + else + { + if (!empty($baseUserInfo["errcode"])) + { + // 假如授权返回错误消息,则重新登录 + $this->forwardUrl($fail_url, (new returnObject(1, 10012, '缺少state或code参数,登录失败!'))->to_array()); + } + else + { + if ($baseUserInfo["subscribe"] == 1) + { + $userinfo["subscribe"] = 1; + $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; + } + else + { + $userinfo["subscribe"] = 0; + $userinfo["subscribe_time"] = 0; + } + } + } + + $member["uid"] = $fan['id']; + $member["openid"] = $fan['openid']; + + require_once __DIR__ . '/../../lib/emoji/emoji.php'; + $member['nickname'] = emoji_docomo_to_unified($userinfo['nickname']); + $member['nickname'] = emoji_kddi_to_unified($member['nickname']); + $member['nickname'] = emoji_softbank_to_unified($member['nickname']); + $member['nickname'] = emoji_google_to_unified($member['nickname']); + + if (!empty($userinfo['headimgurl'])) + {// 粉丝头像 + $member['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; + } + $member['sex'] = $userinfo['sex'];// 性别 + $member['province'] = $userinfo['province'];// 所属省份 + $member['city'] = $userinfo['city'];// 所属城市 + $member['country'] = $userinfo['country'];// 所属国家 + $member['privilege'] = $userinfo['privilege']; + $member['subscribe'] = $userinfo['subscribe'];// 粉丝是否关注 + // 粉丝是否关注 + $member['subscribe_time'] = $userinfo['subscribe_time']; + $member['unionid'] = $userinfo['unionid']; // unionid + + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_WECHAT, $fan['openid'], $market_key, $this->db, $pdo); + + // 更新微信用户信息 + updateWeixinUserInfo($member, $this->db, $pdo); + } + else + {// 假如数据库中还不存在对应的粉丝信息记录 + // 通过网页授权接口获得粉丝信息(无论关注或未关注) + $userinfo = $weixin->getOauthUserInfo($oauth['access_token'], $oauth['openid']); + + if (!empty($userinfo["errcode"])) + { + // 假如授权返回错误消息,则重新登录 + $this->forwardUrl($fail_url, (new returnObject(1, 10011, '缺少state或code参数,登录失败!'))->to_array()); + } + else + { + // 通过openId拉取用户信息,判断用户是否关注了公众号 + $baseUserInfo = $weixin->fansQueryInfo($userinfo['openid'], $this->db, $pdo); + if (!empty($baseUserInfo["errcode"])) + { + // 假如授权返回错误消息,则重新登录 + $this->forwardUrl($fail_url, (new returnObject(1, 10012, '缺少state或code参数,登录失败!'))->to_array()); + } + else + { + if ($baseUserInfo["subscribe"] == 1) + { + $userinfo["subscribe"] = 1; + $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; + } + else + { + $userinfo["subscribe"] = 0; + $userinfo["subscribe_time"] = 0; + } + } + } + + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_WECHAT, $userinfo['openid'], $market_key, $this->db, $pdo); + + $userinfo['uid'] = $globalUserInfoId;// 全局用户ID + require_once __DIR__ . '/../../lib/emoji/emoji.php'; + $userinfo['nickname'] = emoji_softbank_to_unified($userinfo['nickname']); + if (!empty($userinfo['headimgurl'])) + {// 粉丝头像 + $userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; + } + ///$userinfo['unionid'] = $userinfo['unionid']; // unionid + updateWeixinUserInfo($userinfo, $this->db, $pdo); + } + $pdo->commit(); + + // 新创建的全局用户信息,从中获取新创建的sid + $globalUserInfo = getUserById($globalUserInfoId, $this->db); + $sid = $globalUserInfo["sid"]; + + /* + $newTarget = ''; + $targetUrls = parse_url($target); + if (!empty($targetUrls)) + { + $newTarget = $targetUrls['scheme'] . '://' . $targetUrls['host'] . ((!empty($targetUrls['port']) && $targetUrls['port'] != '80') ? ':' . $targetUrls['port'] : '') . $targetUrls['path']; + } + + $paramers = ""; + if (!empty($targetUrls['query'])) + { + // 假如传入了参数 + $paramerList = explode("&", $targetUrls['query']); + if (!empty($paramerList) && count($paramerList) > 0) + { + foreach ($paramerList as $key => $value) + { + if (!strstr($value, 'sid=')) + { + if (empty($paramers)) + { + $paramers = $value; + } + else + { + $paramers .= '&' . $value; + } + } + } + } + } + + $stateParamers = ""; + if (!empty($state)) + { + $stateParamers = "&state=" . $state; + } + if (empty($paramers)) + { + $newTarget .= '?sid=' . $sid . $stateParamers; + } + else + { + $newTarget .= '?' . $paramers . '&sid=' . $sid . $stateParamers; + } + */ + + $p = strstr($return_url, '?'); + if (empty($p)) + $return_url .= "?sid={$sid}&scode={$scode}{$return_parameter}"; + elseif ('?' == $p) + $return_url .= "sid={$sid}&scode={$scode}{$return_parameter}"; + else + $return_url .= "&sid={$sid}&scode={$scode}{$return_parameter}"; + + // 登录成功后跳转到客户端传入的回调页面 + header('Location: ' . $return_url); + } + + /** + * 使用微信授权登录 + * @route({"GET","/weixin_url"}) + * @param({"appid","$._GET.appid"}) 应用appid + * @param({"devkey","$._GET.devkey"}) 开发者key + * @param({"market_key","$._GET.market_key"}) 商家key + * @param({"target","$._GET.target"}) 客户端需要回调的地址 + * @param({"state","$._POST.state"}) 随机参数 + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function weixinUrlLogin($appid = "", $devkey = "", $market_key = "", $target = "", $state = '') + { + if (empty($appid)) + { + $result["error"] = '1'; + $result["error_code"] = 10001; // 未传入appid参数 + return $result; + } + if (empty($devkey)) + { + $result["error"] = '1'; + $result["error_code"] = 10002; // 未传入devkey参数 + return $result; + } + $devList = Sql::select('syweb_admin.*') + ->from('syweb_admin') + ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1', $devkey) + ->get($this->db, null); + if (empty($devList) || count($devList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10003; // devkey无效 + return $result; + } + $devInfo = $devList[0]; + + $appList = Sql::select('syweb_app.*') + ->from('syweb_app') + ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid, $devInfo['id']) + ->get($this->db, null); + if (empty($appList) || count($appList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10004; // 指定的应用不存在或未被审核 + return $result; + } + $appInfo = $appList[0]; + + $marketList = Sql::select('syweb_market.*') + ->from('syweb_market') + ->where('syweb_market.marketid=?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10007; // 指定的商户不存在或未被审核 + return $result; + } + $marketInfo = $marketList[0]; + + $account = array(); + $account["key"] = $marketInfo['weixin_appid']; + $weixin = new WeiXinAccount($account); + + // 开启一个会话 + session_start(); + $_SESSION['user_app_id'] = $appInfo["id"]; + $_SESSION['user_devkey'] = $devkey; + $_SESSION['user_market_id'] = $marketInfo["id"]; + $_SESSION['user_target'] = $target; + $_SESSION['state'] = $state; + + $callback = $this->getFullUrl('/api/login/weixin/callback_url'); + $state = 'ylsid-' . session_name(); + $forward = $weixin->getOauthCodeUrl($callback, $state); + header('Location: ' . $forward); + exit(); + } + + /** + * 微信授权登录回调 + * @route({"GET","/weixin/callback_url"}) + * @param({"code", "$._GET.code"}) + * @param({"state", "$._GET.state"}) + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function weixinLoginUrlCallback($code, $state) + { + session_start(); + + $target = ""; + $app_id = ""; + $devkey = ""; + $market_id = ""; + $state = ""; + + if (isset($_SESSION['user_target'])) + { + $target = $_SESSION['user_target']; + $app_id = $_SESSION['user_app_id']; + $devkey = $_SESSION['user_devkey']; + $market_id = $_SESSION['user_market_id']; + $state = $_SESSION['state']; + } + if (!$target || !$app_id || !$devkey || !$market_id) + { + return "登录失败!"; + } + + if (!$state || !$code) + { + header('Location: ' . $target); + } + + $marketList = Sql::select('syweb_market.*') + ->from('syweb_market') + ->where('syweb_market.id=?', $market_id) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + return "登录失败,未找到对应门店。"; + } + $marketInfo = $marketList[0]; + + $account = array(); + $account["key"] = $marketInfo["weixin_appid"]; + $account["secret"] = $marketInfo["weixin_secret_appid"]; + $weixin = new WeiXinAccount($account); + + // 通过授权获得的code去换取网页授权的Access_token和openId + $oauth = $weixin->getOauthInfo($code); + + // 假如没有获得openId,则重新发起一次网页授权请求 + if (is_error($oauth) || empty($oauth['openid'])) + { + $state = 'ylsid-' . session_name(); + + // 设置授权的回调地址 + $callback = $this->getFullUrl('/api/login/weixin/callback_url'); + + // 返回网页非静默授权的授权访问地址 + // 参数1:回调页面地址 + // 参数2:重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值, + // 最多128字节 + $forward = $weixin->getOauthCodeUrl($callback, $state); + header('Location: ' . $forward); + exit; + } + + /*// 根据openId和商家ID从数据库中查询全局用户信息 + $fan = getUserByOpenId($market_id,$oauth['openid'],$this->db); + $sid = ""; + $pdo = $this->db; + $pdo->beginTransaction(); + + // 通过网页授权查询用户详细信息 + $userinfo = $weixin->getOauthUserInfo($oauth['access_token'],$oauth['openid']); + // 通过openId拉取用户信息,判断用户是否关注了公众号 + $baseUserInfo = $weixin->fansQueryInfo($oauth['openid'],$this->db,$pdo); + + if (!empty($fan)) {// 假如数据库中已经存在全局用户信息 + // 查询粉丝对应的会员详细信息 + $members = getWeixinUserByUId($fan['id'],$this->db); + if(!empty($userinfo["errcode"])){// 假如授权返回错误消息,则重新登录 + header('Location: ' . $target); + }else{ + if(!empty($baseUserInfo["errcode"])){// 假如授权返回错误消息,则重新登录 + header('Location: ' . $target); + }else{ + if( $baseUserInfo["subscribe"]==1 ){ + $userinfo["subscribe"] = 1; + $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; + }else{ + $userinfo["subscribe"] = 0; + $userinfo["subscribe_time"] = 0; + } + } + } + + $member["uid"] = $fan['id']; + $member["openid"] = $fan['openid']; + + require_once __DIR__.'/../../lib/emoji/emoji.php'; + $member['nickname'] = emoji_docomo_to_unified($userinfo['nickname']); + $member['nickname'] = emoji_kddi_to_unified($member['nickname']); + $member['nickname'] = emoji_softbank_to_unified($member['nickname']); + $member['nickname'] = emoji_google_to_unified($member['nickname']); + + // 粉丝昵称 + //$member['nickname'] = stripslashes(stripcslashes($userinfo['nickname'])); + if (!empty($userinfo['headimgurl'])) {// 粉丝头像 + $member['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; + } + $member['sex'] = $userinfo['sex'];// 性别 + $member['province'] = $userinfo['province'];// 所属省份 + $member['city'] = $userinfo['city'];// 所属城市 + $member['country'] = $userinfo['country'];// 所属国家 + $member['privilege'] = $userinfo['privilege']; + $member['subscribe'] = $userinfo['subscribe'];// 粉丝是否关注 + // 粉丝是否关注 + $member['subscribe_time'] = $userinfo['subscribe_time']; + + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_WECHAT,$fan['openid'],$market_id,$this->db,$pdo); + + updateWeixinUserInfo($member,$this->db,$pdo); + } else {// 假如数据库中还不存在对应的粉丝信息记录 + // 通过网页授权接口获得粉丝信息(无论关注或未关注) + $userinfo = $weixin->getOauthUserInfo($oauth['access_token'],$oauth['openid']); + + if(!empty($userinfo["errcode"])){// 假如授权返回错误消息,则重新登录 + header('Location: ' . $target); + }else{ + // 通过openId拉取用户信息,判断用户是否关注了公众号 + $baseUserInfo = $weixin->fansQueryInfo($userinfo['openid'],$this->db,$pdo); + if(!empty($baseUserInfo["errcode"])){// 假如授权返回错误消息,则重新登录 + header('Location: ' . $target); + }else{ + if( $baseUserInfo["subscribe"]==1 ){ + $userinfo["subscribe"] = 1; + $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; + }else{ + $userinfo["subscribe"] = 0; + $userinfo["subscribe_time"] = 0; + } + } + } + + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode,AUTHTYPE_WECHAT,$userinfo['openid'],$market_id,$this->db,$pdo); + + $userinfo['uid'] = $globalUserInfoId;// 全局用户ID + require_once __DIR__.'/../../lib/emoji/emoji.php'; + //$userinfo['nickname'] = emoji_docomo_to_unified($userinfo['nickname']); + //$userinfo['nickname'] = emoji_kddi_to_unified($userinfo['nickname']); + $userinfo['nickname'] = emoji_softbank_to_unified($userinfo['nickname']); + //$userinfo['nickname'] = emoji_google_to_unified($userinfo['nickname']); + //exit; + //$userinfo['nickname'] = stripslashes(stripcslashes($userinfo['nickname'])); + if (!empty($userinfo['headimgurl'])) {// 粉丝头像 + $userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; + } + + updateWeixinUserInfo($userinfo,$this->db,$pdo); + } + $pdo->commit();*/ + + // 新创建的全局用户信息,从中获取新创建的sid + /*$globalUserInfo = getUserById($globalUserInfoId,$this->db); + $sid = $globalUserInfo["sid"];*/ + + if (strstr($target, '?')) + { + if (strstr($target, '&')) + { + $target .= '&openid=' . $oauth['openid']; + } + else + { + if (strstr($target, '=')) + { + $target .= '&openid=' . $oauth['openid']; + } + else + { + $target .= 'openid=' . $oauth['openid']; + } + } + } + else + { + $target .= '?openid=' . $oauth['openid']; + } + // 登录成功后跳转到客户端传入的回调页面 + header('Location: ' . $target); + } + + /** + * 使用微信授权登录(直接跳转方式),获取用户信息 + * @route({"GET","/weixin_user_url"}) + * @param({"appid","$._GET.appid"}) 应用appid + * @param({"devkey","$._GET.devkey"}) 开发者key + * @param({"market_key","$._GET.market_key"}) 门店key + * @param({"target","$._GET.target"}) 客户端需要回调的地址 + * @param({"fail_target","$._GET.fail_target"}) 发生错误时,客户端回调的页面 + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function weixinUserUrlLogin($appid = "", $devkey = "", $market_key = "", $target = "", $fail_target = '') + { + if (empty($appid)) + { + return "未传入appid参数。"; + } + if (empty($devkey)) + { + return "未传入devkey参数。"; + } + $devList = Sql::select('syweb_admin.*') + ->from('syweb_admin') + ->where('syweb_admin.type=2 and syweb_admin.devkey=? and syweb_admin.status=1', $devkey) + ->get($this->db, null); + if (empty($devList) || count($devList) <= 0) + { + return "指定的devkey不存在或未被审核。"; + } + $devInfo = $devList[0]; + + $appList = Sql::select('syweb_app.*') + ->from('syweb_app') + ->where('syweb_app.appid=? and syweb_app.dev_id=? and status=1', $appid, $devInfo['id']) + ->get($this->db, null); + if (empty($appList) || count($appList) <= 0) + { + return "指定的应用不存在或未被审核。"; + } + $appInfo = $appList[0]; + + $marketList = Sql::select('syweb_market.*') + ->from('syweb_market') + ->where('syweb_market.marketid=?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + return "指定的商户不存在或未被审核。"; + } + $marketInfo = $marketList[0]; + + $account = array(); + $account["key"] = $marketInfo['weixin_appid']; + $weixin = new WeiXinAccount($account); + + + /// 剔除必须的参数. + $needed = array('sid', 'scode', 'appid', 'devkey', 'market_key', 'target', 'fail_target'); + /// 获取请求参数 + $refer_paramers = GetAttachParameters($needed); + $parameters = ''; + foreach ($refer_paramers as $k => $v) + { + $parameters .= "&{$k}={$v}"; + } + + // 开启一个会话 + session_start(); + $_SESSION[LOGINPARAMETER_CALLBACK] = (new LoginCallbackInformation('', '', $appInfo['id'], $devkey, $marketInfo["market_key"], $target, $parameters, $fail_target))->to_string(); + + $callback = $this->getFullUrl('/api/login/weixin/callback_user_url'); + $state = 'ylsid-' . session_name(); + $forward = $weixin->getOauthUserInfoUrl($callback, $state); + header('Location: ' . $forward); + exit(); + } + + /** + * 微信授权登录回调 + * @route({"GET","/weixin/callback_user_url"}) + * @param({"code", "$._GET.code"}) + * @param({"state", "$._GET.state"}) + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function weixinUserUrlLoginCallback($code, $state) + { + session_start(); + + $app_id = ''; + $devkey = ''; + $market_key = ''; + $return_url = ''; + $return_parameter = ''; + $fail_url = ''; + + if (isset($_SESSION[LOGINPARAMETER_CALLBACK])) + { + $login = LoginCallbackInformation::CreateWithString($_SESSION[LOGINPARAMETER_CALLBACK]); + + $app_id = $login->app_id; + $devkey = $login->dev_key; + $market_key = $login->market_key; + $return_url = $login->return_url; + $return_parameter = $login->return_parameter; + $fail_url = $login->fail_url; + } + if (!$app_id || !$devkey || !$market_key || !$return_url || !$fail_url) + { + return "登录失败!"; + } + + if (!$state || !$code) + { + header('Location: ' . $return_url); + } + + $marketList = Sql::select('syweb_market.*') + ->from('syweb_market') + ->where('syweb_market.market_key = ?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + return "指定的商户ID不存在!"; + } + $marketInfo = $marketList[0]; + + $account = array(); + $account["key"] = $marketInfo["weixin_appid"]; + $account["secret"] = $marketInfo["weixin_secret_appid"]; + $weixin = new WeiXinAccount($account); + + // 通过授权获得的code去换取网页授权的Access_token和openId + $oauth = $weixin->getOauthInfo($code); + + // 假如没有获得openId,则重新发起一次网页授权请求 + if (is_error($oauth) || empty($oauth['openid'])) + { + $state = 'ylsid-' . session_name(); + + // 设置授权的回调地址 + $callback = $this->getFullUrl('/api/login/weixin/callback_user_url'); + + // 返回网页非静默授权的授权访问地址 + // 参数1:回调页面地址 + // 参数2:重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值, + // 最多128字节 + $forward = $weixin->getOauthUserInfoUrl($callback, $state); + header('Location: ' . $forward); + exit; + } + + $pdo = $this->db; + // 通过网页授权查询用户详细信息 + $userinfo = $weixin->getOauthUserInfo($oauth['access_token'], $oauth['openid']); + // 通过openId拉取用户信息,判断用户是否关注了公众号 + $baseUserInfo = $weixin->fansQueryInfo($oauth['openid'], $this->db, $pdo); + + if (!empty($userinfo["errcode"])) + { + // 假如授权返回错误消息,则重新登录 + header('Location: ' . $return_url); + } + else + { + if (!empty($baseUserInfo["errcode"])) + { + // 假如授权返回错误消息,则重新登录 + header('Location: ' . $return_url); + } + else + { + if ($baseUserInfo["subscribe"] == 1) + { + $userinfo["subscribe"] = 1; + $userinfo["subscribe_time"] = $baseUserInfo["subscribe_time"]; + } + else + { + $userinfo["subscribe"] = 0; + $userinfo["subscribe_time"] = 0; + } + } + } + + // 根据当前openId创建一条全局用户记录或更新用户记录 + //require_once __DIR__.'/../../lib/emoji/emoji.php'; + //$userinfo['nickname'] = emoji_docomo_to_unified($userinfo['nickname']); + //$userinfo['nickname'] = emoji_kddi_to_unified($userinfo['nickname']); + //$userinfo['nickname'] = emoji_softbank_to_unified($userinfo['nickname']); + //$userinfo['nickname'] = emoji_google_to_unified($userinfo['nickname']); + //exit; + //$userinfo['nickname'] = stripslashes(stripcslashes($userinfo['nickname'])); + if (!empty($userinfo['headimgurl'])) + { + // 粉丝头像 + $userinfo['headimgurl'] = rtrim($userinfo['headimgurl'], '0') . 132; + } + + $extend_paramers = "nickname=" . $userinfo["nickname"]; + $extend_paramers .= "&sex=" . $userinfo["sex"]; + $extend_paramers .= "&province=" . $userinfo["province"]; + $extend_paramers .= "&city=" . $userinfo["city"]; + $extend_paramers .= "&country=" . $userinfo["country"]; + $extend_paramers .= "&headimgurl=" . $userinfo["headimgurl"]; + $extend_paramers .= "&privilege=" . $userinfo["privilege"]; + $extend_paramers .= "&subscribe=" . $userinfo["subscribe"]; + $extend_paramers .= "&subscribe_time=" . $userinfo["subscribe_time"]; + $extend_paramers .= "&openid=" . $userinfo["openid"]; + $extend_paramers .= "&state=" . $state; + + $p = strstr($return_url, '?'); + if (empty($p)) + $return_url .= "?{$extend_paramers}{$return_parameter}"; + elseif ('?' == $p) + $return_url .= "{$extend_paramers}{$return_parameter}"; + else + $return_url .= "&{$extend_paramers}{$return_parameter}"; + + // 登录成功后跳转到客户端传入的回调页面 + header('Location: ' . $return_url); + } + + + /** + * 使用聚开心授权登录 + * @route({"GET","/jkx"}) + * @param({"appid","$._GET.appid"}) 应用appid + * @param({"devkey","$._GET.devkey"}) 开发者key + * @param({"market_key","$._GET.market_key"}) 门店key + * @param({"scode","$._GET.scode"}) 客户端生成的Scode + * @param({"target","$._GET.target"}) 客户端需要回调的地址 + * @param({"fail_target","$._GET.fail_target"}) 发生错误时,客户端回调的页面 + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function jkxLogin($appid = "", $devkey = "", $market_key = "", $scode = "", $target = "", $fail_target = "") + { + $result = array(); + + if (empty($appid)) + { + $result["error"] = '1'; + $result["error_code"] = 10001; // 未传入appid参数 + $result["msg"] = "未传入appid参数"; + $this->forwardUrl($fail_target, $result); + } + if (empty($devkey)) + { + $result["error"] = '1'; + $result["error_code"] = 10002; // 未传入devkey参数 + $result["msg"] = "未传入devkey参数"; + $this->forwardUrl($fail_target, $result); + } + $devList = Sql::select('a.*') + ->from('syweb_admin a') + ->where('a.type=2 and a.admin_key=? and a.status=1', $devkey) + ->get($this->db, null); + if (empty($devList) || count($devList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10003; // devkey无效 + $result["msg"] = "devkey无效或未经过审核"; + $this->forwardUrl($fail_target, $result); + } + $devInfo = $devList[0]; + + $appBaseList = Sql::select('a.*') + ->from('syweb_app_base a') + ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appid, $devInfo['admin_key']) + ->get($this->db, null); + if (empty($appBaseList) || count($appBaseList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10004; // 指定的应用不存在或未被审核 + $result["msg"] = "指定的应用不存在或未被审核"; + $this->forwardUrl($fail_target, $result); + } + $appBaseKey = $appBaseList[0]["app_key"]; + + $appList = Sql::select('a.*') + ->from('syweb_app a') + ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appBaseKey, $devInfo['admin_key']) + ->get($this->db, null); + if (empty($appList) || count($appList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10005; // 指定的应用不存在或未被审核 + $result["msg"] = "指定的应用不存在或未被审核"; + $this->forwardUrl($fail_target, $result); + } + $appInfo = $appList[0]; + + $marketList = Sql::select('a.*') + ->from('syweb_market a') + ->where('a.market_key=?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + $result["error"] = '1'; + $result["error_code"] = 10007; // 指定的门店不存在 + $result["msg"] = "指定的门店不存在或已经被删除"; + $this->forwardUrl($fail_target, $result); + } + $marketInfo = $marketList[0]; + + $account = array(); + $account["key"] = $marketInfo['weixin_appid']; + //$weixin = new WeiXinAccount($account); + +/* + // 分析主域名中的参数 begin + $referUrls = parse_url($_SERVER['HTTP_REFERER']); + $callback_paramers = ""; + if (!empty($referUrls['query'])) + { + // 假如传入了参数 + $callback_paramers_list = explode("&", $referUrls['query']); + if (!empty($callback_paramers_list) && count($callback_paramers_list) > 0) + { + foreach ($callback_paramers_list as $key => $value) + { + if (!strstr($value, 'appid=') && + !strstr($value, 'devkey=') && + !strstr($value, 'market_key=') && + !strstr($value, 'scode=') && + !strstr($value, 'target=') && + !strstr($value, 'state=') + ) + { + if (empty($callback_paramers)) + { + $callback_paramers = $value; + } + else + { + $callback_paramers .= '&' . $value; + } + } + } + } + } + + $newTarget = ''; + $targetUrls = parse_url($target); + if (!empty($targetUrls)) + { + $newTarget = $targetUrls['scheme'] . '://' . $targetUrls['host'] . ((!empty($targetUrls['port']) && $targetUrls['port'] != '80') ? ':' . $targetUrls['port'] : '') . $targetUrls['path']; + } + + if (!empty($callback_paramers)) + { + if (strstr($newTarget, '?')) + { + if (strstr($newTarget, '&')) + { + $newTarget .= '&' . $callback_paramers; + } + else + { + $newTarget .= $callback_paramers; + } + } + else + { + $newTarget .= '?' . $callback_paramers; + } + } + // 分析主域名中的参数 +*/ + + /// 剔除必须的参数. + $needed = array('sid', 'scode', 'appid', 'devkey', 'market_key', 'target', 'fail_target'); + /// 获取请求参数 + $refer_paramers = GetAttachParameters($needed); + $parameters = ''; + foreach ($refer_paramers as $k => $v) + { + $parameters .= "&{$k}={$v}"; + } + + // 开启一个会话 + session_start(); + $_SESSION[LOGINPARAMETER_CALLBACK] = (new LoginCallbackInformation('', $scode, $appInfo['id'], $devkey, $marketInfo["market_key"], $target, $parameters, $fail_target))->to_string(); + + ///$callback = "http://" . $this::$domain . "/api/login/jkx/callback"; + $callback = $this->getFullUrl('/api/login/jkx/callback'); + //$state = 'ylsid-' . session_name(); + + $jkxParamers = array(); + $jkxParamers["appid"] = "G3CI8FQF"; + $jkxParamers["Appkey"] = "28de5f4a54cbbb62b2264ab555ff7f62"; + //$secret = "ecd10d48daf3138b88727bc65ca3e0bd"; + $jkxParamers["returnUrl"] = $callback; + + $forward = "http://www.0792it.com/partnerApi/GetAccessToken.aspx"; + $this->forwardUrl($forward, $jkxParamers); + } + + /** + * 聚开心授权登录回调(10010-10030) + * @route({"GET","/jkx/callback"}) + * @param({"spid", "$._GET.spid"}) + * @param({"accessToken", "$._GET.accessToken"}) + * @param({"uid", "$._GET.uid"}) uid + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function jkxLoginCallback($spid, $accessToken, $uid) + { + session_start(); + + $scode = ''; + $app_id = ''; + $devkey = ''; + $market_key = ''; + $return_url = ''; + $return_parameter = ''; + $fail_url = ''; + + if (isset($_SESSION[LOGINPARAMETER_CALLBACK])) + { + $login = LoginCallbackInformation::CreateWithString($_SESSION[LOGINPARAMETER_CALLBACK]); + + $scode = $login->scode; + $app_id = $login->app_id; + $devkey = $login->dev_key; + $market_key = $login->market_key; + $return_url = $login->return_url; + $return_parameter = $login->return_parameter; + $fail_url = $login->fail_url; + } + + if (!$scode || !$return_url || !$fail_url || !$app_id || !$devkey || !$market_key) + { + $this->forwardUrl($fail_url, (new returnObject(1, 10010, '缺少必要参数,登录失败!'))->to_array()); + } + + if (!$spid || !$accessToken || !$uid) + { + $this->forwardUrl($fail_url, (new returnObject(1, 10011, '缺少spid或accessToken或uid参数,登录失败!'))->to_array()); + } + + $marketList = Sql::select('a.*') + ->from('syweb_market a') + ->where('a.market_key=?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + $this->forwardUrl($fail_url, (new returnObject(1, 10007, '指定的门店不存在或已经被删除'))->to_array()); + } + //$marketInfo = $marketList[0]; + + //$account = array(); + //$account["key"] = $marketInfo["weixin_appid"]; + //$account["secret"] = $marketInfo["weixin_secret_appid"]; + //$weixin = new WeiXinAccount($account); + + $appid = "G3CI8FQF"; + $appkey = "28de5f4a54cbbb62b2264ab555ff7f62"; + + $url = "http://www.0792it.com/partnerApi/GetSpidFromUid.ashx?appid={$appid}&appkey={$appkey}&uid={$uid}"; + $response = ihttp_get($url); + if (empty($response)) + { + $this->forwardUrl($fail_url, (new returnObject(1, 10012, '获取授权信息错误,登录失败!'))->to_array()); + } + + $response = @json_decode($response['content'], true); + + $spid = $response["spid"]; + $accessToken = $response["accessToken"]; + + // 开始获取用户信息 + $url = "http://www.0792it.com/partnerApi/GetUserInfo.ashx?spid={$spid}&accessToken={$accessToken}"; + + $sign = "accessToken={$accessToken}&spid={$spid}&secret=ecd10d48daf3138b88727bc65ca3e0bd"; + $sign = md5($sign); + + $url .= "&sign={$sign}"; + + $response = ihttp_get($url); + if (empty($response)) + { + $this->forwardUrl($fail_url, (new returnObject(1, 10012, '获取授权信息错误,登录失败!'))->to_array()); + } + $response = @json_decode($response['content'], true); + + $retCode = $response["RetCode"]; + if ($retCode == 1) + { + $this->forwardUrl($fail_url, (new returnObject(1, 10013, $response["RetMsg"]))->to_array()); + } + + $level = $response["Level"]; + $enum = $response["Enum"]; + $realname = $response["Realname"]; + $img = $response["Img"]; + $tel = $response["Tel"]; + $integral = $response["Integral"]; + + // 根据openId和门店Key从数据库中查询全局用户信息 + $fan = getUserByOpenId($market_key, $uid, 2, $this->db); + //$sid = ""; + $pdo = $this->db; + $pdo->beginTransaction(); + + if (!empty($fan)) + { + // 假如数据库中已经存在全局用户信息 + // 查询粉丝对应的会员详细信息 + $members = getJkxUserByUId($fan['id'], $this->db); + + $member["uid"] = $fan['id']; + $member["username"] = $uid; + $member['headimgurl'] = $img; + $member['level'] = $level; + $member['enum'] = $enum; + $member['realname'] = $realname; + $member['tel'] = $tel; + $member['integral'] = $integral; + + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_JKX, $uid, $market_key, $this->db, $pdo); + + // 更新微信用户信息 + updateJkxUserInfo($member, $this->db, $pdo); + } + else + { + // 假如数据库中还不存在对应的粉丝信息记录 + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_JKX, $uid, $market_key, $this->db, $pdo); + + $userinfo['uid'] = $globalUserInfoId;// 全局用户ID + $userinfo["username"] = $uid; + $userinfo['level'] = $level; + $userinfo['enum'] = $enum; + $userinfo['realname'] = $realname; + $userinfo['tel'] = $tel; + $userinfo['headimgurl'] = $img; + $userinfo['integral'] = $integral; + updateJkxUserInfo($userinfo, $this->db, $pdo); + } + $pdo->commit(); + + // 新创建的全局用户信息,从中获取新创建的sid + $globalUserInfo = getUserById($globalUserInfoId, $this->db); + $sid = $globalUserInfo["sid"]; +/* + $newTarget = ''; + $targetUrls = parse_url($target); + if (!empty($targetUrls)) + { + $newTarget = $targetUrls['scheme'] . '://' . $targetUrls['host'] . ((!empty($targetUrls['port']) && $targetUrls['port'] != '80') ? ':' . $targetUrls['port'] : '') . $targetUrls['path']; + } + + $paramers = ""; + if (!empty($targetUrls['query'])) + { + // 假如传入了参数 + $paramerList = explode("&", $targetUrls['query']); + if (!empty($paramerList) && count($paramerList) > 0) + { + foreach ($paramerList as $key => $value) + { + if (!strstr($value, 'sid=')) + { + if (empty($paramers)) + { + $paramers = $value; + } + else + { + $paramers .= '&' . $value; + } + } + } + } + } + + $stateParamers = ""; + if (!empty($state)) + { + $stateParamers = "&state=" . $state; + } + if (empty($paramers)) + { + $newTarget .= '?sid=' . $sid . $stateParamers; + } + else + { + $newTarget .= '?' . $paramers . '&sid=' . $sid . $stateParamers; + } +*/ + + $p = strstr($return_url, '?'); + if (empty($p)) + $return_url .= "?sid={$sid}&scode={$scode}{$return_parameter}"; + elseif ('?' == $p) + $return_url .= "sid={$sid}&scode={$scode}{$return_parameter}"; + else + $return_url .= "&sid={$sid}&scode={$scode}{$return_parameter}"; + + // 登录成功后跳转到客户端传入的回调页面 + header('Location: ' . $return_url); + } + + /** + * 使用APP登录 + * @route({"POST","/ylnn"}) + * @param({"appid","$._POST.appid"}) 应用appid + * @param({"devkey","$._POST.devkey"}) 开发者key + * @param({"market_key","$._POST.market_key"}) 门店key + * @param({"scode","$._POST.scode"}) 客户端生成的Scode + * @param({"agent_key","$._POST.agent_key"}) 代理商Key + * @param({"game_key","$._POST.game_key"}) 游戏Key + * @param({"user_key","$._POST.user_key"}) 用户Key + * @param({"headImg","$._POST.headImg"}) 用户头像 + * @param({"nickname","$._POST.nickname"}) 用户昵称 + * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 + */ + public function ylnnLogin( + $appid = "", + $devkey = "", + $market_key = "", + $scode = "", + $agent_key = "", + $game_key = "", + $user_key = '', + $headImg = '', + $nickname = '' + ) + { + if (empty($appid)) + return new returnObject(1, 10001, '未传入appid参数!'); + + if (empty($devkey)) + return new returnObject(1, 10002, '未传入devkey参数!'); + + $devList = Sql::select('a.*') + ->from('syweb_admin a') + ->where('a.type=2 and a.admin_key=? and a.status=1', $devkey) + ->get($this->db, null); + if (empty($devList) || count($devList) <= 0) + return new returnObject(1, 10002, 'devkey无效或未经过审核!'); + + $devInfo = $devList[0]; +/* + $appBaseList = Sql::select('a.*') + ->from('syweb_app_base a') + ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appid, $devInfo['admin_key']) + ->get($this->db, null); + if (empty($appBaseList) || count($appBaseList) <= 0) + return new returnObject(1, 10004, '指定的应用不存在或未被审核!'); + + $appBaseKey = $appBaseList[0]["app_key"]; + + $appList = Sql::select('a.*') + ->from('syweb_app a') + ->where('a.ref_key=? and a.dev_key=? and a.status=10', $appBaseKey, $devInfo['admin_key']) + ->get($this->db, null); + if (empty($appList) || count($appList) <= 0) + return new returnObject(1, 10005, '指定的应用不存在或未被审核!'); +*/ + $appList = Sql::select('b.*') + ->from('syweb_app_base a, syweb_app b') + ->where('a.app_key = b.ref_key and a.status = b.status and a.dev_key = b.dev_key and a.ref_key = ? and a.dev_key = ? and a.status = 10', $appid, $devInfo['admin_key']) + ->get($this->db, null); + if (empty($appList) || count($appList) <= 0) + { + return new returnObject(1, 10004, '指定的应用不存在或未被审核!'); + } + ///$appInfo = $appList[0]; + + $marketList = Sql::select('a.*') + ->from('syweb_market a') + ->where('a.market_key=?', $market_key) + ->get($this->db, null); + if (empty($marketList) || count($marketList) <= 0) + { + return new returnObject(1, 10007, '指定的门店不存在或已经被删除!'); + } + ///$marketInfo = $marketList[0]; + + $uid = md5($agent_key . $game_key . $user_key); + + // 根据openId和门店Key从数据库中查询全局用户信息 + $fan = getUserByOpenId($market_key, $uid, AUTHTYPE_NIUNIUGAME, $this->db); + $sid = ""; + $pdo = $this->db; + $pdo->beginTransaction(); + + if (!empty($fan)) + { + // 假如数据库中已经存在全局用户信息 + // 查询粉丝对应的会员详细信息 + $member = getYlnnUserByUId($fan['id'], $this->db); + + $member["uid"] = $fan['id']; + $member["user_key"] = $uid; + $member["agent_key"] = $agent_key; + $member['game_key'] = $game_key; + $member['player_key'] = $user_key; + $member['headimgurl'] = $headImg; + $member['nickname'] = $nickname; + + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_NIUNIUGAME, $uid, $market_key, $this->db, $pdo); + + // 更新微信用户信息 + updateYlnnUserInfo($member, $this->db, $pdo); + } + else + { + // 假如数据库中还不存在对应的粉丝信息记录 + // 根据当前openId创建一条全局用户记录或更新用户记录 + $globalUserInfoId = updateUserInfo($scode, AUTHTYPE_NIUNIUGAME, $uid, $market_key, $this->db, $pdo); + + $userinfo["uid"] = $globalUserInfoId;// 全局用户ID + $userinfo["user_key"] = $uid; + $userinfo["agent_key"] = $agent_key; + $userinfo['game_key'] = $game_key; + $userinfo['player_key'] = $user_key; + $userinfo['headimgurl'] = $headImg; + $userinfo['nickname'] = $nickname; + + updateYlnnUserInfo($userinfo, $this->db, $pdo); + } + $pdo->commit(); + + // 新创建的全局用户信息,从中获取新创建的sid + $globalUserInfo = getUserById($globalUserInfoId, $this->db); + $sid = $globalUserInfo["sid"]; + + if (empty($sid)) + return new returnObject(1, 13000, '登录失败,无法获取SID!'); + else + return new returnObject(0, 0, '登录成功!', array('sid' => $sid, 'scode' => $scode)); + } + + /** @inject("ioc_factory") */ + private $factory; + /** + * @property({"default":"@db"}) + * @var PDO + */ + public $db; + // 此处删除了代码 } \ No newline at end of file diff --git a/codes/agent/game-docker/api/source/apis/newpay.bak b/codes/agent/game-docker/api/source/apis/newpay.bak index 3d471fd..6ba1e3f 100644 --- a/codes/agent/game-docker/api/source/apis/newpay.bak +++ b/codes/agent/game-docker/api/source/apis/newpay.bak @@ -1,4337 +1,4337 @@ -getLocaleUrl(true); - } - - - /** - * 获取门店付款方式列表 - * @route({"POST","/querylist"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"market_key","$._POST.market_key"}) 门店key - * @param({"paytype","$._POST.paytype"}) 支付类型 - * @param({"level","$._POST.level"}) 类型(1: 线上支付; 2: 线下扫码支付; 3: 移动app支付) - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return string|returnObject|mixed - */ - public function getPayList($appid = '', $devkey = '', $market_key = '', $paytype = 0, $level = 0, $version = null, $sign = null) - { - /// 验证公共参数是否合法 - $this->init($appid, $devkey); - $verify_result = $this->verify_admin($market_key); - if (is_error_api($verify_result)) - { - if ($verify_result instanceof returnObject) - { - return $verify_result; - } - else - { - $return = new returnObject(); - $return->from_array((array)$verify_result); - return $verify_result; - } - } - - switch ($version) - { - case 1: - { - if (empty($market_key)) - { - $condition = 'is_enabled = 1'; - if (!empty($level)) - $condition .= sprintf(' and type_level = %d', intval($level)); - - if (!empty($paytype)) - $condition .= sprintf(' and type_id = %d', intval($paytype)); - - $data = Sql::Select('type_id, type_key, type_name, image, url, is_third, third_flag, type_level') - ->from('syweb_paytype_base') - ->where($condition) - ->get($this->db); - - return new returnObject(0, 0, '', $data); - } - else - { - $condition = 'a.type_key = b.type_key and a.is_enabled = 1 and b.is_enabled = 1 and b.market_key = ?'; - if (!empty($level)) - $condition .= sprintf(' and a.type_level = %d', intval($level)); - - if (!empty($paytype)) - $condition .= sprintf(' and a.type_id = %d', intval($paytype)); - - $data = Sql::Select('a.type_id, a.type_key, a.type_name, a.image, a.url, a.is_third, a.third_flag, a.type_level') - ->from('syweb_paytype_base a, syweb_paytype_market b') - ->where($condition, $market_key) - ->get($this->db); - - return new returnObject(0, 0, '', $data); - } - - break; - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - - /** - * 聚合支付-线上 - * @route({"POST","/pay/online"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"orderid","$._POST.orderid"}) 订单编号 - * @param({"fee","$._POST.fee"}) 支付总价 - * @param({"title","$._POST.title"}) 支付主题 - * - * @param({"notice_url","$._POST.notice_url"}) 回调地址(异步) - * @param({"return_url","$._POST.return_url"}) 回调地址(同步) - * - * @param({"paytype","$._POST.paytype"}) 支付类型(1: 微信支付; 2: 支付宝支付; 3: 威富通聚合支付(微信); 4: 威富通聚合支付(支付宝)) - * - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function pay_online($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $paytype, $version = null, $sign = null) - { - switch ($version) - { - case 1: - { - /// 支付前校验 - $attach = $this->verify_pay_online_v1($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $sign); - if ($attach instanceof returnObject) - return $attach; - - switch ($paytype) - { - case PAYCODE_ONLINE_WECHAT: /// 微信支付 - return $this->_pay_online_wechat_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - case PAYCODE_ONLINE_ALIPAY: /// 支付宝支付 - return $this->_pay_online_ali_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - case PAYCODE_ONLINE_SWIFTPASS_WECHAT: /// 威富通聚合支付-微信 - return $this->_pay_online_swiftpass_wechat_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - case PAYCODE_ONLINE_SWIFTPASS_ALIPAY: /// 威富通聚合支付-支付 - return $this->_pay_online_swiftpass_ali_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - case PAYCODE_ONLINE_HEEPAY_WECHAT: /// 汇付宝微信支付(线上网页支付) - return $this->_pay_online_heepay_wechat_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - case PAYCODE_ONLINE_HEEPAY_ALIPAY: /// 汇付宝支付宝支付(线上网页支付) - return $this->_pay_online_heepay_ali_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - case PAYCODE_ONLINE_WECHATWITHBROWSER: /// /// 微信支付(线上网页支付)(非微信环境) - return $this->_pay_online_wechat_with_browser_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - case PAYCODE_ONLINE_HEEPAY_WECHATWITHBROWSER: /// 汇付宝微信支付(线上网页支付)(非微信环境) - return $this->_pay_online_heepay_wechat_with_browser_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - default: - echo sprintf('未知的支付类型: %d' . PHP_EOL . '支付类型(%d: 微信支付; %d: 支付宝支付; %d: 威富通聚合支付(微信); %d: 威富通聚合支付(支付宝))', - $paytype, PAYCODE_ONLINE_WECHAT, PAYCODE_ONLINE_ALIPAY, PAYCODE_ONLINE_SWIFTPASS_WECHAT, PAYCODE_ONLINE_SWIFTPASS_ALIPAY); - return -1; - } - - break; - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - /** - * 微信支付 - * @route({"POST","/pay/online/wechat"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"orderid","$._POST.orderid"}) 订单编号 - * @param({"fee","$._POST.fee"}) 支付总价 - * @param({"title","$._POST.title"}) 支付主题 - * - * @param({"notice_url","$._POST.notice_url"}) 回调地址(异步) - * @param({"return_url","$._POST.return_url"}) 回调地址(同步) - * - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function pay_online_wechat($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $version = null, $sign = null) - { - switch ($version) - { - case 1: - { - $attach = $this->verify_pay_online_v1($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $sign); - if ($attach instanceof returnObject) - return $attach; - - return $this->_pay_online_wechat_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - /** - * 支付宝支付 - * @route({"POST","/pay/online/ali"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"orderid","$._POST.orderid"}) 订单编号 - * @param({"fee","$._POST.fee"}) 支付总价 - * @param({"title","$._POST.title"}) 支付主题 - * - * @param({"notice_url","$._POST.notice_url"}) 回调地址(异步) - * @param({"return_url","$._POST.return_url"}) 回调地址(同步) - * - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function pay_online_ali($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $version = null, $sign = null) - { - switch ($version) - { - case 1: - { - $attach = $this->verify_pay_online_v1($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $sign); - if ($attach instanceof returnObject) - return $attach; - - return $this->_pay_online_ali_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - - /** - * 威富通聚合支付--微信 - * @route({"POST","/pay/online/swiftpasswechat"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"orderid","$._POST.orderid"}) 订单编号 - * @param({"fee","$._POST.fee"}) 支付总价 - * @param({"title","$._POST.title"}) 支付主题 - * - * @param({"notice_url","$._POST.notice_url"}) 回调地址(异步) - * @param({"return_url","$._POST.return_url"}) 回调地址(同步) - * - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function pay_online_swiftpass_wechat($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $version = null, $sign = null) - { - switch ($version) - { - case 1: - { - $attach = $this->verify_pay_online_v1($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $sign); - if ($attach instanceof returnObject) - return $attach; - - return $this->_pay_online_swiftpass_wechat_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - - /** - * 威富通聚合支付--支付宝 - * @route({"POST","/pay/online/swiftpassali"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"orderid","$._POST.orderid"}) 订单编号 - * @param({"fee","$._POST.fee"}) 支付总价 - * @param({"title","$._POST.title"}) 支付主题 - * - * @param({"notice_url","$._POST.notice_url"}) 回调地址(异步) - * @param({"return_url","$._POST.return_url"}) 回调地址(同步) - * - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function pay_online_swiftpass_ali($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $version = null, $sign = null) - { - switch ($version) - { - case 1: - { - $attach = $this->verify_pay_online_v1($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $sign); - if ($attach instanceof returnObject) - return $attach; - - return $this->_pay_online_swiftpass_ali_v1($orderid, $fee, $title, $notice_url, $return_url, $attach); - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - - /** - * 聚合支付-线下 - * @route({"POST","/pay/offline"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"market_key","$._POST.market_key"}) 门店key - * @param({"orderid","$._POST.orderid"}) 订单编号 - * @param({"fee","$._POST.fee"}) 支付总价 - * @param({"title","$._POST.title"}) 支付主题 - * - * @param({"notice_url","$._POST.notice_url"}) 回调地址(异步) - * @param({"paytype","$._POST.paytype"}) 支付类型(1: 微信支付; 2: 支付宝支付; 3: 威富通聚合支付(微信); 4: 威富通聚合支付(支付宝)) - * - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function pay_offline($appid, $devkey, $market_key, $orderid, $fee, $title, $notice_url, $paytype, $version = null, $sign = null) - { - switch ($version) - { - case 1: - { - /// 支付前校验 - $attach = $this->verify_pay_offline_v1($appid, $devkey, $market_key, $orderid, $fee, $title, $notice_url, $sign); - if ($attach instanceof returnObject) - { - return $attach; - } - - switch ($paytype) - { - case PAYCODE_OFFLINE_WECHAT: /// 微信支付 - return $this->_pay_offline_wechat_v1($orderid, $fee, $title, $notice_url, $attach); - case PAYCODE_OFFLINE_ALIPAY: /// 支付宝支付 - return $this->_pay_offline_ali_v1($orderid, $fee, $title, $notice_url, $attach); - case PAYCODE_OFFLINE_SWIFTPASS_WECHAT: /// 威富通聚合支付-微信 - return $this->_pay_offline_swiftpass_wechat_v1($orderid, $fee, $title, $notice_url, $attach); - case PAYCODE_OFFLINE_SWIFTPASS_ALIPAY: /// 威富通聚合支付-支付宝 - return $this->_pay_offline_swiftpass_ali_v1($orderid, $fee, $title, $notice_url, $attach); - case PAYCODE_OFFLINE_HEEPAY_WECHAT: /// 汇付宝微信支付(线下扫码支付) - return $this->_pay_offline_heepay_wechat_v1($orderid, $fee, $title, $notice_url, $attach); - case PAYCODE_OFFLINE_HEEPAY_ALIPAY: /// 汇付宝支付宝支付(线下扫码支付) - return $this->_pay_offline_heepay_ali_v1($orderid, $fee, $title, $notice_url, $attach); - default: - echo sprintf('未知的支付类型: %d' . PHP_EOL . '支付类型(%d: 微信支付; %d: 支付宝支付; %d: 威富通聚合支付(微信); %d: 威富通聚合支付(支付宝)); %d: 汇付宝聚合支付(微信); %d: 汇付宝聚合支付(支付宝));', - $paytype, PAYCODE_OFFLINE_WECHAT, PAYCODE_OFFLINE_ALIPAY, PAYCODE_OFFLINE_SWIFTPASS_WECHAT, PAYCODE_OFFLINE_SWIFTPASS_ALIPAY, PAYCODE_OFFLINE_HEEPAY_WECHAT, PAYCODE_OFFLINE_HEEPAY_ALIPAY); - return -1; - } - } - - default: - { - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - } - - - - /** - * 聚合支付-移动端 - * @route({"POST","/pay/mobile"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"market_key","$._POST.market_key"}) 门店key - * @param({"from_user","$._POST.from_user"}) 要支付的用户标志(openid或userid) - * @param({"orderid","$._POST.orderid"}) 订单编号 - * @param({"fee","$._POST.fee"}) 支付总价 - * @param({"title","$._POST.title"}) 支付主题 - * - * @param({"notice_url","$._POST.notice_url"}) 回调地址(异步) - * @param({"paytype","$._POST.paytype"}) 支付类型(1: 微信支付; 2: 支付宝支付; 3: 威富通聚合支付(微信); 4: 威富通聚合支付(支付宝)) - * - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function pay_mobile($appid, $devkey, $sid, $scode, $market_key, $from_user, $orderid, $fee, $title, $notice_url, $paytype, $version, $sign) - { - switch ($version) - { - case 1: - { - /// 支付前校验 - $attach = $this->verify_pay_mobile_v1($appid, $devkey, $market_key, $from_user, $orderid, $fee, $title, $notice_url, $sign); - if ($attach instanceof returnObject) - return $attach; - - switch ($paytype) - { - case PAYCODE_MOBILE_WECHAT: /// 微信支付 - return $this->_pay_mobile_wechat_v1($orderid, $fee, $title, $notice_url, $attach); - case PAYCODE_MOBILE_ALIPAY: /// 支付宝支付 - return $this->_pay_mobile_ali_v1($orderid, $fee, $title, $notice_url, $attach); - case PAYCODE_MOBILE_SWIFTPASS_WECHAT: /// 威富通聚合支付-微信 - return $this->_pay_mobile_swiftpass_wechat_v1($orderid, $fee, $title, $notice_url, $attach); - case PAYCODE_MOBILE_SWIFTPASS_ALIPAY: /// 威富通聚合支付-支付宝 - return $this->_pay_mobile_swiftpass_ali_v1($orderid, $fee, $title, $notice_url, $attach); - default: - echo sprintf('未知的支付类型: %d' . PHP_EOL . '支付类型(%d: 微信支付; %d: 支付宝支付; %d: 威富通聚合支付(微信); %d: 威富通聚合支付(支付宝))', - $paytype, PAYCODE_MOBILE_WECHAT, PAYCODE_MOBILE_ALIPAY, PAYCODE_MOBILE_SWIFTPASS_WECHAT, PAYCODE_MOBILE_SWIFTPASS_ALIPAY); - return -1; - } - } - - default: - { - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - } - - - - /** - * 退款(错误码:13000-13050) - * @route({"POST","/refund"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"transaction_id","$._POST.transaction_id"}) 微信订单号 - * @param({"out_trade_no","$._POST.out_trade_no"}) 商户单号 - * @param({"refund_fee","$._POST.refund_fee"}) 退款金额(单位分) - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function refund($appid, $devkey, $sid, $scode, $transaction_id, $out_trade_no, $refund_fee, $version, $sign) - { - switch ($version) - { - case 1: - { - /// 腿款前校验 - $attach = $this->verify_refund_v1($appid, $devkey, $sid, $scode, $transaction_id, $out_trade_no, $refund_fee, $sign); - if ($attach instanceof returnObject) - return $attach; - - if (!empty($out_trade_no) && !empty($transaction_id)) - { - $pay_log = Sql::Select('*') - ->from('syweb_core_paylog a') - ->where('out_trade_no = ? and transaction_id = ? and app_key = ? and market_key = ?', $out_trade_no, $transaction_id, $this->appid, $this->market_key) - ->get($this->db, null); - } - elseif (!empty($out_trade_no)) - { - $pay_log = Sql::Select('*') - ->from('syweb_core_paylog a') - ->where('out_trade_no = ? and app_key = ? and market_key = ?', $out_trade_no, $this->appid, $this->market_key) - ->get($this->db, null); - } - elseif (!empty($transaction_id)) - { - $pay_log = Sql::Select('*') - ->from('syweb_core_paylog a') - ->where('transaction_id = ? and app_key = ? and market_key = ?', $transaction_id, $this->appid, $this->market_key) - ->get($this->db, null); - } - else - $pay_log = null; - - if (!empty($pay_log) && count($pay_log) > 0) - { - $pay_log = $pay_log[0]; - switch ($pay_log['status']) - { - case PAYSTATUS_NORMAL: - return new returnObject(500, 1, '该订单尚未付款, 申请退款失败!'); - case PAYSTATUS_REFUND: - case PAYSTATUS_PAY: - $total_fee = intval($pay_log['pay_fee']) - intval($pay_log['refund_fee']); - if ($refund_fee > $total_fee) - return new returnObject(500, 2, '超过订单最大可退金额!'); - break; - default: - return new returnObject(500, 3, sprintf('未知的订单状态 %d, 申请退款失败!', $pay_log['status'])); - } - } - else - return new returnObject(500, 4, '找不到对应的支付记录,请核实后再试!'); - - switch ($pay_log['type']) - { - case PAYTYPE_ONLINE_WECHAT: /// 微信在线支付 - return $this->_refund_online_wechat_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_ONLINE_ALIPAY: /// 支付宝在线支付 - return $this->_refund_online_ali_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_ONLINE_SWIFTPASS_WECHAT: /// 威富通微信在线支付 - return $this->_refund_online_swiftpass_wechat_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_ONLINE_SWIFTPASS_ALIPAY: /// 威富通支付宝在线支付 - return $this->_refund_online_swiftpass_ali_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_ONLINE_HEEPAY_WECHAT: /// 汇付宝微信支付(线上网页支付) - return $this->_refund_online_heepay_wechat_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_ONLINE_HEEPAY_ALIPAY: /// 汇付宝支付宝支付(线上网页支付) - return $this->_refund_online_heepay_ali_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_ONLINE_WECHATWITHBROWSER: /// 微信支付(线上网页支付)(非微信环境) - return $this->_refund_online_wechat_with_browser_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_ONLINE_HEEPAY_WECHATWITHBROWSER: /// 汇付宝微信支付(线上网页支付)(非微信环境) - return $this->_refund_online_heepay_wechat_with_browser_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - - case PAYTYPE_OFFLINE_WECHAT: /// 微信扫码支付 - return $this->_refund_offline_wechat_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_OFFLINE_ALIPAY: /// 支付宝扫码支付 - return $this->_refund_offline_ali_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_OFFLINE_SWIFTPASS_WECHAT: /// 威富通微信扫码支付 - return $this->_refund_offline_swiftpass_wechat_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_OFFLINE_SWIFTPASS_ALIPAY: /// 威富通支付宝扫码支付 - return $this->_refund_offline_swiftpass_ali_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_OFFLINE_HEEPAY_WECHAT: /// 汇付宝微信支付(线下扫码支付) - return $this->_refund_offline_heepay_wechat_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_OFFLINE_HEEPAY_ALIPAY: /// 汇付宝支付宝支付(线下扫码支付) - return $this->_refund_offline_heepay_ali_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - - case PAYTYPE_MOBILE_WECHAT: /// 微信支付(移动平台支付) - return $this->_refund_mobile_wechat_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_MOBILE_ALIPAY: /// 支付宝支付(移动平台支付) - return $this->_refund_mobile_ali_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_MOBILE_SWIFTPASS_WECHAT: /// 威富通微信支付(移动平台支付) - return $this->_refund_mobile_swiftpass_wechat_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - case PAYTYPE_MOBILE_SWIFTPASS_ALIPAY: /// 威富通支付宝支付(移动平台支付) - return $this->_refund_mobile_swiftpass_ali_v1($pay_log['transaction_id'], $pay_log['out_trade_no'], $pay_log['order_id'], $pay_log['pay_fee'], $refund_fee, $attach); - - default: - return new returnObject(500, -1, '不正确的支付信息, 请联系管理员!!'); - } - } - - default: - { - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - } - - /** - * 检测支付是否成功(错误代码:12000-12050) - * @route({"POST","/querystatus"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"transaction_id","$._POST.transaction_id"}) 微信订单号 - * @param({"out_trade_no","$._POST.out_trade_no"}) 商户单号 - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return string|returnObject|mixed - */ - public function query_pay_status($appid, $devkey, $sid, $scode, $transaction_id, $out_trade_no, $version, $sign) - { - switch ($version) - { - case 1: - { - /// 验证公共参数是否合法 - parent::init($appid, $devkey, $sid, $scode); - $verify_result = parent::verify(); - - if (is_error_api($verify_result)) - return json_encode($verify_result, JSON_UNESCAPED_UNICODE); - - if (empty($orderid)) - return new returnObject(1, 12001, '请指定订单编号'); - - /// 根据order_id查询指定支付纪录的状态 - if (!empty($out_trade_no) && !empty($transaction_id)) - { - $payLog = Sql::Select('*') - ->from('syweb_core_paylog a') - ->where('out_trade_no = ? and transaction_id = ? and app_key = ? and market_key = ?', $out_trade_no, $transaction_id, $this->appInfo['id'], $this->market_key) - ->get($this->db, null); - } - elseif (!empty($out_trade_no)) - { - $payLog = Sql::Select('*') - ->from('syweb_core_paylog a') - ->where('out_trade_no = ? and app_key = ? and market_key = ?', $out_trade_no, $this->appInfo['id'], $this->market_key) - ->get($this->db, null); - } - elseif (!empty($transaction_id)) - { - $payLog = Sql::Select('*') - ->from('syweb_core_paylog a') - ->where('transaction_id = ? and app_key = ? and market_key = ?', $transaction_id, $this->appInfo['id'], $this->market_key) - ->get($this->db, null); - } - else - { - $payLog = null; - } - - if (!empty($payLog) && count($payLog) > 0) - $payLog['tag'] = json_decode($payLog['tag']); - - return new returnObject(0, 0, '', $payLog); - } - - default: - { - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - } - - - - /** - * @note 通知微信订单状态. - * @param string $app_id appid - * @param string $market_key 门店id - * @param string $out_trade_no 订单号 - * @param string $transaction_id 微信订单号 - * @param string $from_user 来源用户(用户openid) - * @param int $pay_fee 支付金额 - * @param int $refund_fee 退款金额(单位分) - * @param string $sign_key 签名key - * @param int $status 通知订单状态(0: 正常; 1: 已付款; -1: 已退款) - * @return bool - */ - private function _notify_wechat_order_status_v1($app_id, $market_key, $out_trade_no, $transaction_id, $from_user, $pay_fee, $refund_fee, $status, $sign_key) - { - switch ($status) - { - case PAYSTATUS_NORMAL: /// 普通状态 - break; - - case PAYSTATUS_PAY: /// 已支付 - { - $log = Sql::select('syweb_core_paylog.*') - ->from('syweb_core_paylog') - ->where('`app_key` = ? and `market_key` = ? and `out_trade_no` = ?', $app_id, $market_key, $out_trade_no) - ->get($this->db, null); - if (!empty($log) && count($log) > 0) - { - $log = $log[0]; - } - - if (!empty($log) && !empty($log['plid']) && is_numeric($log['status']) && $log['status'] != '0') - { - ///exit('订单已经付款'); - return true; - } - - $log['tag'] = json_decode($log['tag']); - $log['tag']->transaction_id = $transaction_id; - $log['tag']->total_fee = $pay_fee; - /// 提前设置为已经支付成功状态 - $recordTemp = array( - 'status' => PAYSTATUS_PAY, - 'transaction_id' => $transaction_id, - ///'openid' => $open_id, - 'tag' => json_encode($log['tag'], JSON_UNESCAPED_UNICODE), - ); - try - { - $db = $this->db; - $db->beginTransaction(); - Sql::update('syweb_core_paylog')->setArgs($recordTemp)->where('plid = ?', $log['plid'])->exec($db); - $db->commit(); - } - catch (PDOException $e) - { - var_dump($e); - } - $notice_url = $log['tag']->notice_url; /// 回调地址 - //$param_mask = $log['tag']->param_mask; /// 回调参数格式 - /// 验证客户端逻辑处理 - if (!empty($notice_url)) - { -// if (!empty($param_mask)) -// { -// $callback_data = str_replace("%orderNo%", $log['order_id'], $param_mask); -// $callback_data = str_replace("%money%", $log["fee"], $callback_data); -// -// $callback_data = str_replace("%outtradeNo%", $log['out_trade_no'], $callback_data); -// $callback_data = str_replace("%transactionid%", $log['tag']->transaction_id, $callback_data); -// $callback_data = str_replace("%signkey%", $sign_key, $callback_data); -// -// $callback_response = ihttp_request($notice_url . "?" . $callback_data, "", false); -// $callback_response = mb_convert_encoding($callback_response, "UTF-8"); -// -// $begin_position = strstr($callback_response, "\r\n"); -// if ($begin_position >= 0) -// { -// $callback_response = substr($callback_response, $begin_position + 17); -// } -// else -// { -// $callback_response = ""; -// } -// -// if (!empty($callback_response) && !is_null(json_decode($callback_response))) -// { -// $callback_result = @json_decode($callback_response, true); -// if ($callback_result['error'] != '0') -// { -// /// 假如客户端返回非0,则表示逻辑处理失败,则将再次发起 -// //$msg = "订单处理出错。"; -// return false; -// } -// } -// else -// { -// /// 假如客户端返回非0,则表示支付失败 -// //$msg = "订单处理出错。"; -// return false; -// } -// } -// else - { - /// 获取附带的参数 - $attach = $log['tag']->attach; - if (is_string($attach)) - $attach = json_decode($attach); - - $callback_data = (array)$attach; - $callback_data['order_no'] = $log['order_id']; /// 订单号 - $callback_data['out_trade_no'] = $log['out_trade_no']; /// 商家订单号 - $callback_data['transaction_id'] = $transaction_id; /// 微信订单号 - $callback_data['total_fee'] = $log['tag']->total_fee; /// 支付金额(单位分) - $callback_data['version'] = 1; /// 版本号 - - $callback_data['sign'] = SignParameter($callback_data, $sign_key); /// 生成签名 - //$callback_data = json_encode($callback_data, JSON_UNESCAPED_UNICODE); - //$callback_response = ihttp_request($notice_url, $callback_data, false); - try - { - /// 发送post请求 - $callback_response = @SendPost($notice_url, $callback_data); - /// 返回success表示成功, 否则表示失败. - return strcasecmp(NOTIFYSTATUS_SUCCESS, $callback_response) == 0; - } - catch (Exception $e) - { - return false; - } - } - } - } - break; - - case PAYSTATUS_REFUND: /// 已退款 - { - try - { - $db = $this->db; - - if (!empty($transaction_id)) - { - $pay_log = Sql::Select('*') - ->from('syweb_core_paylog') - ->where('`app_key` = ? and `market_key` = ? and `transaction_id` = ?', $app_id, $market_key, $transaction_id) - ->get($db); - - $refund_fee += intval((empty($pay_log) || count($pay_log) == 0) ? 0 : $pay_log[0]['refund_fee']); - - $recordTemp = array( - 'status' => PAYSTATUS_REFUND, - 'refund_fee' => $refund_fee, - ); - - $db->beginTransaction(); - Sql::update('syweb_core_paylog') - ->setArgs($recordTemp) - ->where('`app_key` = ? and `market_key` = ? and `transaction_id` = ?', $app_id, $market_key, $transaction_id) - ->exec($db); - $db->commit(); - } - elseif (!empty($out_trade_no)) - { - $pay_log = Sql::Select('*') - ->from('syweb_core_paylog') - ->where('`app_key` = ? and `market_key` = ? and `out_trade_no` = ?', $app_id, $market_key, $out_trade_no) - ->get($db); - - $refund_fee += intval((empty($pay_log) || count($pay_log) == 0) ? 0 : $pay_log[0]['refund_fee']); - - $recordTemp = array( - 'status' => PAYSTATUS_REFUND, - 'refund_fee' => $refund_fee, - ); - - $db->beginTransaction(); - Sql::update('syweb_core_paylog') - ->setArgs($recordTemp) - ->where('`app_key` = ? and `market_key` = ? and `out_trade_no` = ?', $app_id, $market_key, $out_trade_no) - ->exec($db); - $db->commit(); - - return true; - } - else - return false; - } - catch (PDOException $e) - { - //var_dump($e); - return false; - } - } - break; - } - - return true; - } - - - /** - * @note 通知支付宝订单状态. - * @param string $app_id appid - * @param string $market_key 门店id - * @param string $out_trade_no 订单号 - * @param string $trade_no 支付宝交易订单号 - * @param string $from_user 来源用户(用户openid) - * @param int $pay_fee 支付金额 - * @param int $refund_fee 退款金额(单位分) - * @param string $sign_key 签名key - * @param int $status 通知订单状态(0: 正常; 1: 已付款; -1: 已退款) - * @return bool - */ - private function _notify_alipay_order_status_v1($app_id = '', $market_key = '', $out_trade_no = '', $trade_no = '', $from_user = '', $pay_fee = 0, $refund_fee = 0, $status = PAYSTATUS_REFUND, $sign_key = '') - { - switch ($status) - { - case PAYSTATUS_NORMAL: /// 普通状态 - break; - - case PAYSTATUS_PAY: /// 已支付 - { - $log = Sql::select('syweb_core_paylog.*') - ->from('syweb_core_paylog') - ->where('`app_key` = ? and `market_key` = ? and `out_trade_no` = ?', $app_id, $market_key, $out_trade_no) - ->get($this->db, null); - if (!empty($log) && count($log) > 0) - $log = $log[0]; - - if (!empty($log) && !empty($log['plid']) && is_numeric($log['status']) && $log['status'] != '0') - return true; - - $log['tag'] = json_decode($log['tag']); - $log['tag']->transaction_id = $trade_no; - $log['tag']->total_fee = $pay_fee; - /// 提前设置为已经支付成功状态 - $recordTemp = array( - 'status' => PAYSTATUS_PAY, - 'transaction_id' => $trade_no, - ///'openid' => $open_id, - 'tag' => json_encode($log['tag'], JSON_UNESCAPED_UNICODE), - ); - try - { - $db = $this->db; - $db->beginTransaction(); - Sql::update('syweb_core_paylog')->setArgs($recordTemp)->where('plid = ?', $log['plid'])->exec($db); - $db->commit(); - } - catch (PDOException $e) - { - var_dump($e); - } - $notice_url = $log['tag']->notice_url; /// 回调地址 - //$param_mask = $log['tag']->param_mask; /// 回调参数格式 - /// 验证客户端逻辑处理 - if (!empty($notice_url)) - { - /// 获取附带的参数 - $attach = $log['tag']->attach; - if (is_string($attach)) - $attach = json_decode($attach); - - $callback_data = (array)$attach; - $callback_data['order_no'] = $log['order_id']; /// 订单号(用户) - $callback_data['out_trade_no'] = $log['out_trade_no']; /// 商户订单号(平台) - $callback_data['transaction_id'] = $trade_no; /// 支付宝交易订单号 - $callback_data['total_fee'] = $log['tag']->total_fee; /// 支付金额(单位分) - $callback_data['version'] = 1; /// 版本号 - - $callback_data['sign'] = SignParameter($callback_data, $sign_key); /// 生成签名 - //$callback_data = json_encode($callback_data, JSON_UNESCAPED_UNICODE); - //$callback_response = ihttp_request($notice_url, $callback_data, false); - try - { - /// 发送post请求 - $callback_response = @SendPost($notice_url, $callback_data); - /// 返回success表示成功, 否则表示失败. - return strcasecmp(NOTIFYSTATUS_SUCCESS, $callback_response) == 0; - } - catch (Exception $e) - { - return false; - } - } - - break; - } - - case PAYSTATUS_REFUND: /// 已退款 - { - try - { - $db = $this->db; - $pay_log = Sql::Select('*') - ->from('syweb_core_paylog') - ->where('`app_key` = ? and `market_key` = ? and `out_trade_no` = ?', $app_id, $market_key, $out_trade_no) - ->get($db); - - $refund_fee += intval((empty($pay_log) || count($pay_log) == 0) ? 0 : $pay_log[0]['refund_fee']); - - $recordTemp = array( - 'status' => PAYSTATUS_REFUND, - 'refund_fee' => $refund_fee, - ); - - $db->beginTransaction(); - Sql::update('syweb_core_paylog') - ->setArgs($recordTemp) - ->where('`app_key` = ? and `market_key` = ? and `out_trade_no` = ?', $app_id, $market_key, $out_trade_no) - ->exec($db); - $db->commit(); - - return true; - } - catch (PDOException $e) - { - var_dump($e); - return false; - } - - break; - } - } - - return true; - } - - - - - /** - * 支付完成回调到客户端(同步回调页面) - * @route({"GET","/callback/v1"}) - * @param({"plid","$._GET.plid"}) 订单编号 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return null - */ - public function online_callback_v1($plid) - { - $log = Sql::select('a.*, b.signkey') - ->from('syweb_core_paylog a') - ->leftJoin('syweb_market b') - ->on('a.market_key = b.market_key') - ->where('a.plid = ?', $plid) - ->get($this->db, null); - - if (!empty($log)) - { - $log = $log[0]; - - /// 判断支付订单号(内部) - $log['tag'] = json_decode($log['tag']); - $returnUrl = $log['tag']->return_url; /// 客户端回调地址 - $attach = (array)json_decode($log['tag']->attach); /// 客户端传回的参数 - $order_no = $log['order_id']; /// 订单号 - $out_trade_no = $log['out_trade_no']; /// 商家订单号 - $transaction_id = $log['transaction_id']; /// 微信订单号 - //$total_fee = $log['tag']->total_fee; /// 支付金额(单位分) - /// tag中的支付金额为实际回调的支付金额,这里需要判断一下是因为有可能在执行同步回调的时候,异步回调还没有通知,所以这里需要做一个判断 - $total_fee = empty($log['tag']->total_fee) ? $log['pay_fee'] : $log['tag']->total_fee; /// 支付金额(单位分) - $signkey = $log['signkey']; /// 签名key - - /// 这里生成参数的签名 - $param = $attach; - $param['order_no'] = $order_no; /// 订单号 - $param['out_trade_no'] = $out_trade_no; /// 商家订单号 - $param['transaction_id'] = $transaction_id; /// 微信订单号 - $param['total_fee'] = $total_fee; /// 支付金额(单位分) - - $sign = SignParameter($param, $signkey); - - $param = ''; - foreach ($attach as $k => $v) - { - $param .= "&{$k}={$v}"; - } - - if (!empty($returnUrl)) - { - $p = strstr($returnUrl, '?'); - if (empty($p)) - $returnUrl .= "?order_no={$order_no}&out_trade_no={$out_trade_no}&transaction_id={$transaction_id}&total_fee={$total_fee}{$param}&sign={$sign}"; - elseif ('?' == $p) - $returnUrl .= "order_no={$order_no}&out_trade_no={$out_trade_no}&transaction_id={$transaction_id}&total_fee={$total_fee}{$param}&sign={$sign}"; - else - $returnUrl .= "&order_no={$order_no}&out_trade_no={$out_trade_no}&transaction_id={$transaction_id}&total_fee={$total_fee}{$param}&sign={$sign}"; - - header('location: ' . $returnUrl); - } - else - header('location: ' . $this->getLocaleUrl()); - } - else - echo '无效的支付信息!'; - } - - - /** - * 支付完成回调到客户端(同步回调页面) - * @route({"GET","/callback"}) - * @param({"plid","$._GET.plid"}) 订单编号 - * @param({"version","$._GET.version"}) 版本号 - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return null - */ - public function online_callback($plid = 0, $version = 1) - { - switch ($version) - { - case 1: - $this->online_callback_v1($plid); - break; - - default: - echo JsonObjectToJsonString('不正确的支付信息, 请联系管理员!!'); - } - } - - - /** - * 微信支付 异步回调用页面 - * @route({"POST","/notify/online/wechatpay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return string|returnObject - */ - public function online_wechat_notify() - { - $content = file_get_contents('php://input'); - - $resultObj = new WxPayResults(); - $resultObj->FromXml($content, 2); - if (!array_key_exists('attach', $resultObj->GetValues())) - return new returnObject(1, 10001, '回调参数缺少attach参数。'); - - $attach = json_decode($resultObj->GetValues()['attach']); - if (empty($attach)) - return new returnObject(1, 10002, '回调参数attach不能为空。'); - - $app_id = $attach->app_id; - $market_key = $attach->market_key; - $version = $attach->version; - switch ($version) - { - case 1: - { - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key = ?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - return new returnObject(1, 10004, '找不到的商户信息。'); - - $wechatInfo["appid"] = $marketList[0]['weixin_appid']; - $wechatInfo["secret"] = $marketList[0]['weixin_secret_appid']; - $wechatInfo["mchid"] = $marketList[0]['weixin_mchid']; - $wechatInfo["signkey"] = $marketList[0]['weixin_paykey']; - $sign_key = $marketList[0]['signkey']; /// 签名key - - $resultObj->CheckSign($wechatInfo); - - $values = $resultObj->GetValues(); - /// 订单号 - $tradeno = $values['out_trade_no']; - /// 支付订单号(微信) - $out_transaction_id = $values['transaction_id']; - /// 支付金额(单位分) - $total_fee = $values['total_fee']; - /// 用户openid - $open_id = $values['openid']; - /// 此处可以在添加相关处理业务,校验通知参数中的商户订单号out_trade_no和金额total_fee是否和商户业务系统的单号和金额是否一致,一致后方可更新数据库表中的记录。 - /// 更改订单状态 - if ($this->_notify_wechat_order_status_v1($app_id, $market_key, $tradeno, $out_transaction_id, $open_id, $total_fee, 0, PAYSTATUS_PAY, $sign_key)) - echo NOTIFYSTATUS_SUCCESS; - else - echo NOTIFYSTATUS_ERROR; - - exit; - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - /** - * 支付宝支付 异步回调用页面 - * @route({"POST","/notify/online/alipay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return string|returnObject - */ - public function online_alipay_notify() - { - //$content = (array)JsonStringToJsonObject(rawurldecode(file_get_contents('php://input'))); - $content = $_POST; - if (!array_key_exists('passback_params', $content)) - //return new returnObject(1, 10001, '回调参数缺少passback_params参数。'); - die(NOTIFYSTATUS_FAIL); - - if (is_string($content['passback_params'])) - $attach = (array)json_decode($content['passback_params']); - else - $attach = (array)$content['passback_params']; - - if (empty($attach)) - //return new returnObject(1, 10002, '回调参数passback_params不能为空。'); - die(NOTIFYSTATUS_FAIL); - - $app_id = $attach['app_id']; - $market_key = $attach['market_key']; - $version = $attach['version']; - - switch ($version) - { - case 1: - { - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key = ?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - return new returnObject(1, 10004, '找不到的商户信息。'); - - $alipay_appid = $marketList[0]['alipay_appid']; /// 支付宝appid - $sign_key = $marketList[0]['signkey']; /// 签名key - - //============== - $aop = new AopClient(); - $aop->alipayPublicKey = dirname(dirname(__DIR__)) . '/payment/alipay/key/' . $alipay_appid . '/alipay_rsa_public_key.pem'; - $result = $aop->rsaCheckV1($content, $aop->alipayPublicKey, 'RSA2'); - if (!$result) - { - file_put_contents('d:/signerror.txt', JsonObjectToJsonString($content)); - die(NOTIFYSTATUS_FAIL); - } - //============== - - // 验证成功 - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //$seller_id = isset($content['seller_id']) ? $content['seller_id'] : ''; /// seller_id卖家支付宝用户号 - $out_trade_no = $content['out_trade_no']; /// 商户订单号 - $trade_no = $content['trade_no']; /// 支付宝交易号 - $trade_status = $content['trade_status']; /// 交易状态 - - $buyer_id = isset($content['buyer_id']) ? $content['buyer_id'] : ''; /// 买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字 - //$buyer_logon_id = isset($content['buyer_logon_id']) ? $content['buyer_logon_id'] : ''; /// 买家支付宝账号 - - //$total_amount = intval(isset($content['total_amount']) ? floatval($content['total_amount']) * 100 : 0); /// 订单金额 - $receipt_amount = intval(isset($content['receipt_amount']) ? floatval($content['receipt_amount']) * 100 : 0); /// 实收金额 - //$invoice_amount = intval(isset($content['invoice_amount']) ? floatval($content['invoice_amount']) * 100 : 0); /// 开票金额 - //$buyer_pay_amount = intval(isset($content['buyer_pay_amount']) ? floatval($content['buyer_pay_amount']) * 100 : 0); /// 用户在交易中支付的金额 - //$point_amount = intval(isset($content['point_amount']) ? floatval($content['point_amount']) : 0); /// 使用集分宝支付的金额 - //$refund_fee = intval(isset($content['refund_fee']) ? floatval($content['refund_fee']) : 0); /// 退款通知中,返回总退款金额,单位为元,支持两位小数 - - if ('TRADE_FINISHED' == $trade_status) - { - // 判断该笔订单是否在商户网站中已经做过处理 - // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 - // 请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 - // 如果有做过处理,不执行商户的业务程序 - - // 注意: - // 退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 - - // 调试用,写文本函数记录程序运行情况是否正常 - // logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); - } - elseif ('TRADE_SUCCESS' == $trade_status) - { - // 判断该笔订单是否在商户网站中已经做过处理 - // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 - // 请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 - // 如果有做过处理,不执行商户的业务程序 - - // 注意: - // 付款完成后,支付宝系统发送该交易状态通知 - - // 调试用,写文本函数记录程序运行情况是否正常 - // logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); - } - - /// 更改订单状态 - if ($this->_notify_alipay_order_status_v1($app_id, $market_key, $out_trade_no, $trade_no, $buyer_id, $receipt_amount, 0, PAYSTATUS_PAY, $sign_key)) - die(NOTIFYSTATUS_SUCCESS); - else - die(NOTIFYSTATUS_FAIL); - } - - default: - //return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - die(NOTIFYSTATUS_FAIL); - } - } - - - /** - * 威富通聚合支付-微信支付 异步回调用页面 - * @route({"POST","/notify/online/swiftpasswechatpay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return string|returnObject - */ - public function online_swiftpass_wechat_notify() - { - $xml = file_get_contents('php://input'); - - $resHandler = new ClientResponseHandler(); - - $resHandler->setContent($xml); - $attach = $resHandler->getParameter('attach'); - /// {"app_id":"14936872341446","market_key":"0000"} - $attach = json_decode($attach); - if (!is_object($attach)) - return new returnObject(1, 10002, '回调参数attach不能为空。'); - - $app_id = $attach->app_id; - $market_key = $attach->market_key; - $version = $attach->version; - switch($version) - { - case 1: - { - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key = ?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - return new returnObject(1, 10003, '找不到的商户信息。'); - - $mchid = $marketList[0]['swiftpass_mchid']; /// 商户号 - $secret_key = $marketList[0]['swiftpass_paykey']; /// 签名key - $sign_key = $marketList[0]['signkey']; /// 签名key - - $resHandler->setKey($secret_key); - - if (!$resHandler->isTenpaySign()) /// 验签 - return new returnObject(1, 10004, 'bad signature.'); - - if ($resHandler->getParameter('status') == 0 && $resHandler->getParameter('result_code') == 0) - { - /// 订单号 - $tradeno = $resHandler->getParameter('out_trade_no'); - /// 支付订单号(威富通平台) - $transaction_id = $resHandler->getParameter('transaction_id'); - /// 支付订单号(微信) - $out_transaction_id = $resHandler->getParameter('out_transaction_id'); - /// 支付金额(单位分) - $total_fee = $resHandler->getParameter('total_fee'); - /// 用户openid - $open_id = $resHandler->getParameter('sub_openid'); - /// 此处可以在添加相关处理业务,校验通知参数中的商户订单号out_trade_no和金额total_fee是否和商户业务系统的单号和金额是否一致,一致后方可更新数据库表中的记录。 - /// 更改订单状态 - if ($this->_notify_wechat_order_status_v1($app_id, $market_key, $tradeno, $out_transaction_id, $open_id, $total_fee, 0, PAYSTATUS_PAY, $sign_key)) - echo NOTIFYSTATUS_SUCCESS; - else - echo NOTIFYSTATUS_ERROR; - - exit; - } - elseif (0 != $resHandler->getParameter('status')) - return new returnObject(500, $resHandler->getParameter('status'), $resHandler->getParameter('message'), null); - elseif (0 != $resHandler->getParameter('result_code')) - return new returnObject(500, $resHandler->getParameter('result_code'), $resHandler->getParameter('err_msg'), null); - else - return new returnObject(500, -1, $resHandler->getAllParameters()); - - break; - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - - /** - * 汇付宝聚合支付-微信支付 异步回调用页面 - * @route({"GET","/notify/online/heepaywechatpay"}) - * @route({"POST","/notify/online/heepaywechatpay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return string|returnObject - */ - public function online_heepay_wechat_notify() - { - $result = $_REQUEST['result']; /// 必填 支付结果,1=成功 其它为未知 - $pay_message = $_REQUEST['pay_message']; /// 选填 支付结果信息,支付成功时为空 - $agent_id = $_REQUEST['agent_id']; /// 必填 商户编号 如1234567 - $jnet_bill_no = $_REQUEST['jnet_bill_no']; /// 必填 汇付宝交易号(订单号) - $agent_bill_id = $_REQUEST['agent_bill_id']; /// 必填 商户系统内部的订单号 - $pay_type = $_REQUEST['pay_type']; /// 必填 支付类型 - $pay_amt = $_REQUEST['pay_amt']; /// 必填 订单实际支付金额(注意:此金额是用户的实付金额) - $remark = $_REQUEST['remark']; /// 必填 商家数据包,原样返回 - $return_sign = $_REQUEST['sign']; /// 必填 MD5签名结果 - - $remark = iconv("GB2312","UTF-8//IGNORE", urldecode($remark)); /// 签名验证中的中文采用UTF-8编码; -/* - $attach = json_decode($remark); - if (!is_object($attach)) - return new returnObject(1, 10002, '回调参数attach不能为空。'); - $id = $attach->id; - $version = $attach->ver; -*/ - - $record = Sql::select('a.plid, a.app_key, a.market_key, b.heepay_paykey, b.signkey, a.version') - ->from('syweb_core_paylog a, syweb_market b') - ->where('a.market_key = b.market_key and a.out_trade_no = ?', $agent_bill_id) - ->get($this->db, null); - if (empty($record) || count($record) <= 0) - return new returnObject(1, 10003, '找不到对应的支付信息。'); - - $version = $record[0]['version']; /// 版本号 - - switch($version) - { - case 1: - { -/* - $record = Sql::select('a.plid, a.app_key, a.market_key, b.heepay_paykey, b.signkey, a.version') - ->from('syweb_core_paylog a, syweb_market b') - ->where('a.market_key = b.market_key and a.plid = ?', $id) - ->get($this->db, null); - if (empty($record) || count($record) <= 0) - return new returnObject(1, 10003, '找不到对应的支付信息。'); -*/ - $key = $record[0]['heepay_paykey']; /// 商户签名密钥 - $Params = "result={$result}&agent_id={$agent_id}&jnet_bill_no={$jnet_bill_no}&agent_bill_id={$agent_bill_id}&pay_type={$pay_type}&pay_amt={$pay_amt}&remark={$remark}&key={$key}"; - $Sign = md5($Params); - if($Sign == $return_sign) { /// 比较签名密钥结果是否一致,一致则保证了数据的一致性 - /// 商户自行处理自己的业务逻辑 - - /// 订单号 - $tradeno = $agent_bill_id; - /// 支付订单号(汇付宝平台) - $transaction_id = $jnet_bill_no; - /// 支付订单号(微信) - //$out_transaction_id = ''; - /// 支付金额(单位分) - $total_fee = intval($pay_amt * 100); - /// 用户openid - $open_id = ''; - /// 此处可以在添加相关处理业务,校验通知参数中的商户订单号out_trade_no和金额total_fee是否和商户业务系统的单号和金额是否一致,一致后方可更新数据库表中的记录。 - /// 更改订单状态 - if ($this->_notify_wechat_order_status_v1($record[0]['app_key'], $record[0]['market_key'], $tradeno, $transaction_id, $open_id, $total_fee, 0, PAYSTATUS_PAY, $record[0]['signkey'])) - //echo NOTIFYSTATUS_SUCCESS; - echo 'ok'; - else - echo NOTIFYSTATUS_ERROR; - - exit; - } else { - //echo NOTIFYSTATUS_ERROR; - echo 'error'; - /// 商户自行处理,可通过查询接口更新订单状态,也可以通过商户后台自行补发通知,或者反馈运营人工补发 - return new returnObject(1, 10004, 'bad signature.'); - } - - break; - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - - /** - * 微信支付 异步回调用页面 - * @route({"POST","/notify/offline/wechatpay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function offline_wechat_notify() - { - return $this->online_wechat_notify(); - } - - - /** - * 支付宝支付 异步回调用页面 - * @route({"POST","/notify/offline/alipay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function offline_alipay_notify() - { - $content = $_POST; - if (!array_key_exists('body', $content)) - //return new returnObject(1, 10001, '回调参数缺少body参数。'); - die(NOTIFYSTATUS_FAIL); - - if (is_string($content['body'])) - $attach = (array)json_decode($content['body']); - else - $attach = (array)$content['body']; - - if (empty($attach)) - //return new returnObject(1, 10002, '回调参数body不能为空。'); - die(NOTIFYSTATUS_FAIL); - - $app_id = $attach['app_id']; - $market_key = $attach['market_key']; - $version = $attach['version']; - - switch ($version) - { - case 1: - { - $marketList = Sql::select('a.*') - ->from('syweb_market a') - ->where('a.market_key = ?', $market_key) - ->get($this->db, null); - if (empty($marketList) || count($marketList) <= 0) - return new returnObject(1, 10004, '找不到的商户信息。'); - - $alipay_appid = $marketList[0]['alipay_appid']; /// 支付宝appid - $sign_key = $marketList[0]['signkey']; /// 签名key - - //============== - $aop = new AopClient(); - $aop->alipayPublicKey = dirname(dirname(__DIR__)) . '/payment/alipay/key/' . $alipay_appid . '/alipay_rsa_public_key.pem'; - $result = $aop->rsaCheckV1($content, $aop->alipayPublicKey, 'RSA2'); - if (!$result) - { - file_put_contents('d:/signerror.txt', JsonObjectToJsonString($content)); - die(NOTIFYSTATUS_FAIL); - } - //============== - - // 验证成功 - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - //$seller_id = isset($content['seller_id']) ? $content['seller_id'] : ''; /// seller_id卖家支付宝用户号 - $out_trade_no = $content['out_trade_no']; /// 商户订单号 - $trade_no = $content['trade_no']; /// 支付宝交易号 - $trade_status = $content['trade_status']; /// 交易状态 - - $buyer_id = isset($content['buyer_id']) ? $content['buyer_id'] : ''; /// 买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字 - //$buyer_logon_id = isset($content['buyer_logon_id']) ? $content['buyer_logon_id'] : ''; /// 买家支付宝账号 - - //$total_amount = intval(isset($content['total_amount']) ? floatval($content['total_amount']) * 100 : 0); /// 订单金额 - $receipt_amount = intval(isset($content['receipt_amount']) ? floatval($content['receipt_amount']) * 100 : 0); /// 实收金额 - //$invoice_amount = intval(isset($content['invoice_amount']) ? floatval($content['invoice_amount']) * 100 : 0); /// 开票金额 - //$buyer_pay_amount = intval(isset($content['buyer_pay_amount']) ? floatval($content['buyer_pay_amount']) * 100 : 0); /// 用户在交易中支付的金额 - //$point_amount = intval(isset($content['point_amount']) ? floatval($content['point_amount']) : 0); /// 使用集分宝支付的金额 - //$refund_fee = intval(isset($content['refund_fee']) ? floatval($content['refund_fee']) : 0); /// 退款通知中,返回总退款金额,单位为元,支持两位小数 - - if ('TRADE_FINISHED' == $trade_status) - { - // 判断该笔订单是否在商户网站中已经做过处理 - // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 - // 请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 - // 如果有做过处理,不执行商户的业务程序 - - // 注意: - // 退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 - - // 调试用,写文本函数记录程序运行情况是否正常 - // logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); - } - elseif ('TRADE_SUCCESS' == $trade_status) - { - // 判断该笔订单是否在商户网站中已经做过处理 - // 如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 - // 请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 - // 如果有做过处理,不执行商户的业务程序 - - // 注意: - // 付款完成后,支付宝系统发送该交易状态通知 - - // 调试用,写文本函数记录程序运行情况是否正常 - // logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); - } - - /// 更改订单状态 - if ($this->_notify_alipay_order_status_v1($app_id, $market_key, $out_trade_no, $trade_no, $buyer_id, $receipt_amount, 0, PAYSTATUS_PAY, $sign_key)) - die(NOTIFYSTATUS_SUCCESS); - else - die(NOTIFYSTATUS_FAIL); - } - - default: - //return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - die(NOTIFYSTATUS_FAIL); - } - } - - - /** - * 威富通聚合支付-微信支付 异步回调用页面 - * @route({"POST","/notify/offline/swiftpasswechatpay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function offline_swiftpass_wechat_notify() - { - return $this->online_swiftpass_wechat_notify(); - } - - /** - * 汇付宝聚合支付-微信支付 异步回调用页面 - * @route({"POST","/notify/offline/heepaywechatpay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function offline_heepay_wechat_notify() - { - return $this->offline_heepay_wechat_notify(); - } - - - /** - * 微信支付 异步回调用页面 - * @route({"POST","/notify/mobile/wechatpay"}) - * @return returnObject|string - */ - public function mobile_wechat_notify() - { - return $this->online_wechat_notify(); - } - - - /** - * 威富通聚合支付-微信支付 异步回调用页面 - * @route({"POST","/notify/mobile/swiftpasswechatpay"}) - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - */ - public function mobile_swiftpass_wechat_notify() - { - return $this->online_swiftpass_wechat_notify(); - } - - - /** - * 发红包 - * @route({"GET","/sendredpack"}) - * @route({"POST","/sendredpack"}) - * @param({"appid","$._POST.appid"}) 应用appid - * @param({"devkey","$._POST.devkey"}) 开发者key - * @param({"sid","$._POST.sid"}) sid - * @param({"scode","$._POST.scode"}) scode - * @param({"orderid","$._POST.orderid"}) 订单编号 - * @param({"fee","$._POST.fee"}) 红包金额(单位分) - * @param({"wishing","$._POST.wishing"}) 红包祝福语 - * @param({"act_name","$._POST.act_name"}) 活动名称 - * @param({"remark","$._POST.remark"}) 备注 - * - * @param({"send_type","$._POST.send_type"}) 支付类型(1: 微信支付; 2: 支付宝支付) - * - * @param({"version","$._POST.version"}) 版本号 - * @param({"sign","$._POST.sign"}) 签名 - * - * @throws({"phprs\util\exceptions\Forbidden","res", "403 Forbidden",{"error":"Forbidden"}}) cookie不可用 - * @return returnObject - */ - public function send_red_pack($appid, $devkey, $sid, $scode, $orderid, $fee, $wishing, $act_name, $remark, $send_type = 1, $version = 1, $sign = '') - { - switch ($version) - { - case 1: - { - /// 发送前校验 - $attach = $this->verify_send_red_pack_v1($appid, $devkey, $sid, $scode, $orderid, $fee, $wishing, $act_name, $remark, $sign); - if ($attach instanceof returnObject) - return $attach; - - switch ($send_type) - { - case PAYCODE_ONLINE_WECHAT: /// 微信红包 - return $this->_send_red_pack_wechat_v1($orderid, $fee, $wishing, $act_name, $remark, $attach); - case PAYCODE_ONLINE_ALIPAY: /// 支付宝红包 - return $this->_send_red_pack_ali_v1($orderid, $fee, $wishing, $act_name, $remark, $attach); - default: - echo sprintf('未知的红包类型: %d' . PHP_EOL . '支付类型(%d: 微信红包; %d: 支付宝红包; %d)', - $send_type, PAYCODE_ONLINE_WECHAT, PAYCODE_ONLINE_ALIPAY); - return -1; - } - - break; - } - - default: - return new returnObject(500, -1, "不支持的接口版本:{$version}!"); - } - } - - - - - /** - * @note 在线支付前校验 - * @param string $appid 应用id - * @param string $devkey 开发者key - * @param string $sid sid - * @param string $scode scode - * @param string $orderid 订单号 - * @param int $fee 支付金额(分) - * @param string $title 支付标题 - * @param string $notice_url 异步通知地址 - * @param string $return_url 同步通知地址 - * @param string $sign 签名 - * @return array|returnObject - */ - private function verify_pay_online_v1($appid, $devkey, $sid, $scode, $orderid, $fee, $title, $notice_url, $return_url, $sign) - { - /// 验证公共参数是否合法 - parent::init($appid, $devkey, $sid, $scode); - $verify_result = parent::verify(); - if (!is_error_api($verify_result)) - { - if (false) - { - /// 校验签名 - $param = $_REQUEST; - $sign_str = ''; - if (isset($param['sign'])) - { - unset($param['sign']); - $sign_str = SignParameter($param, $this->marketInfo['signkey']); - } - - if ($sign_str != $sign) - return new returnObject(500, -1, '签名错误', null); - } - - if (empty($orderid)) - return new returnObject(500, 500, '请指定订单编号!', null); - if (!is_numeric($fee)) - return new returnObject(500, 500, '请正确指定订单价格!', null); - if (empty($title)) - return new returnObject(500, 500, '请指定title!', null); - if (empty($notice_url) && empty($return_url)) - return new returnObject(500, 500, '请至少指定一个支付回调通知页面!', null); - - /// 获取附加的参数 - $attach = GetAttachParameters(array('appid', 'devkey', 'sid', 'scode', 'orderid', 'fee', 'title', 'notice_url', 'return_url', 'paytype', 'version', 'sign',)); - $attach['paytime'] = time(); - - return $attach; - } - elseif ($verify_result instanceof returnObject) - { - return $verify_result; - } - else - { - $return = new returnObject(); - $return->from_array((array)$verify_result); - return $verify_result; - } - } - - - /** - * @note 扫码支付前校验 - * @param string $appid 应用id - * @param string $devkey 开发者key - * @param string $market_key 门店key - * @param string $orderid 订单号 - * @param int $fee 支付金额(分) - * @param string $title 支付标题 - * @param string $notice_url 异步通知地址 - * @param string $sign 签名 - * @return array|returnObject - */ - private function verify_pay_offline_v1($appid, $devkey, $market_key, $orderid, $fee, $title, $notice_url, $sign) - { - /// 验证公共参数是否合法 - parent::init($appid, $devkey, '', ''); - $verify_result = parent::verify_admin($market_key); - if (!is_error_api($verify_result)) - { - if (false) - { - /// 校验签名 - $param = $_REQUEST; - $sign_str = ''; - if (isset($param['sign'])) - { - unset($param['sign']); - $sign_str = SignParameter($param, $this->marketInfo['signkey']); - } - - if ($sign_str != $sign) - return new returnObject(500, -1, '签名错误', null); - } - - if (empty($orderid)) - return new returnObject(500, 500, '请指定订单编号!', null); - - if (!is_numeric($fee)) - return new returnObject(500, 500, '请正确指定订单价格!', null); - - if (empty($title)) - return new returnObject(500, 500, '请指定title!', null); - - if (empty($notice_url)) - return new returnObject(500, 500, '请指定一个支付回调通知页面!', null); - - /// 获取附加的参数 - $attach = GetAttachParameters(array('appid', 'devkey', 'market_key', 'orderid', 'fee', 'title', 'notice_url', 'paytype', 'version', 'sign',)); - $attach['paytime'] = time(); - - return $attach; - } - elseif ($verify_result instanceof returnObject) - { - return $verify_result; - } - else - { - $return = new returnObject(); - $return->from_array((array)$verify_result); - return $verify_result; - } - } - - - /** - * @param string $appid 应用id - * @param string $devkey 开发者id - * @param string $market_key 门店key - * @param string $from_user 支付用户 - * @param string $orderid 订单号 - * @param int $fee 支付总价 - * @param string $title 支付主题 - * @param string $notice_url 回调地址(异步) - * @param string $sign 签名 - * @return array|null|returnObject - */ - private function verify_pay_mobile_v1($appid, $devkey, $market_key, $from_user, $orderid, $fee, $title, $notice_url, $sign) - { - /// 验证公共参数是否合法 - parent::init($appid, $devkey, '', ''); - $verify_result = parent::verify_admin($market_key); - if (!is_error_api($verify_result)) - { - if (false) - { - /// 校验签名 - $param = $_REQUEST; - $sign_str = ''; - if (isset($param['sign'])) - { - unset($param['sign']); - $sign_str = SignParameter($param, $this->marketInfo['signkey']); - } - - if ($sign_str != $sign) - return new returnObject(500, -1, '签名错误', null); - } - - if (empty($orderid)) - return new returnObject(500, 500, '请指定订单编号!', null); - - if (!is_numeric($fee)) - return new returnObject(500, 500, '请正确指定订单价格!', null); - - if (empty($title)) - return new returnObject(500, 500, '请指定title!', null); - - if (empty($notice_url)) - return new returnObject(500, 500, '请指定一个支付回调通知页面!', null); - - /// 获取附加的参数 - $attach = GetAttachParameters(array('appid', 'devkey', 'sid', 'scode', 'market_key', 'from_user', 'orderid', 'fee', 'title', 'notice_url', 'paytype', 'version', 'sign',)); - $attach['paytime'] = time(); - - return $attach; - } - elseif ($verify_result instanceof returnObject) - { - return $verify_result; - } - else - { - $return = new returnObject(); - $return->from_array((array)$verify_result); - return $verify_result; - } - } - - - - /** - * @note 退款校验 - * @param string $appid 应用id - * @param string $devkey 开发者key - * @param string $sid sid - * @param string $scode scode - * @param string $transaction_id 三方订单号(微信等) - * @param string $out_trade_no 平台订单号 - * @param int $refund_fee 退款金额 - * @param string $sign 签名 - * @return array|returnObject - */ - private function verify_refund_v1($appid, $devkey, $sid, $scode, $transaction_id, $out_trade_no, $refund_fee, $sign) - { - /// 验证公共参数是否合法 - parent::init($appid, $devkey, $sid, $scode); - $verify_result = parent::verify(); - if (!is_error_api($verify_result)) - { - /// 校验签名 - $param = $_REQUEST; - $sign_str = ''; - if (isset($param['sign'])) - { - unset($param['sign']); - $sign_str = SignParameter($param, $this->marketInfo['signkey']); - } - if ($sign_str != $sign) - return new returnObject(500, -1, '签名错误', null); - if (!isset($transaction_id) && !isset($out_trade_no)) - return new returnObject(500, 13001, 'transaction_id和out_trade_no参数必须至少传入一个。', null); - if (empty($transaction_id) && empty($out_trade_no)) - return new returnObject(500, 13002, 'transaction_id和out_trade_no参数必须有一个不为空。', null); - if (empty($refund_fee) || (!is_numeric($refund_fee) && !is_float($refund_fee))) - return new returnObject(500, 13004, 'refund_fee不能为空,并且需要为数字。', null); - - $refererUrl = $_SERVER['HTTP_REFERER']; /// 当前调用退款的域名 - $localUrl = $this->getLocaleUrl(); /// 本地域名 - - /// 退款安全域名 - $refund_safe_domain = json_decode($this->marketInfo['refund_safe_domain']); - $refund_safe_domain1 = $refund_safe_domain->refund_safe_domain1; - $refund_safe_domain2 = $refund_safe_domain->refund_safe_domain2; - $refund_safe_domain3 = $refund_safe_domain->refund_safe_domain3; - - $referer_paths = parse_url($refererUrl); - $local_paths = parse_url($localUrl); - - if (!empty($referer_paths) && count($referer_paths) > 0) - { - $referer_domain = $referer_paths['host']; - $local_domain = $local_paths['host']; - - if ($refund_safe_domain1 != $referer_domain && $refund_safe_domain2 != $referer_domain && $refund_safe_domain3 != $referer_domain && $local_domain != $referer_domain) - return new returnObject(500, 13006, '不是安全的域名。', $referer_domain); - } - - $attach = GetAttachParameters(array('appid', 'devkey', 'sid', 'scode', 'transaction_id', 'out_trade_no', 'total_fee', 'refund_fee', 'version', 'sign',)); - return $attach; - } - else - { - $return = new returnObject(); - $return->from_array((array)$verify_result); - return $return; - } - } - - - /** - * @note 保存支付信息 - * @param string $app_id 支付应用(int) - * @param string $market_key 门店key - * @param string $fromUser 支付用户 - * @param string $orderid 订单ID - * @param integer $fee 支付价格 - * @param string $title 支付主题 - * @param string $notice_url 支付成功回调地址 - * @param string $return_url 支付回调地址 - * @param array $attach 支付附加参数 - // * @param string $param_mask 自定义的参数格式(回调通知时使用) - * @param string $type 支付方式 - * @return mixed - **/ - private function saved_payinfo_v1($app_id, $market_key, $fromUser, $orderid, $fee, $title, $notice_url, $return_url, $attach, $type) - { - $log = Sql::select('syweb_core_paylog.*') - ->from('syweb_core_paylog') - ->where('app_key = ? and market_key = ? and `order_id` = ?', $app_id, $market_key, $orderid) - ->get($this->db, null); - if (!empty($log) && count($log) > 0) - $log = $log[0]; - - if (!empty($log) && !empty($log['plid']) && is_numeric($log['status'])) - { - switch ($log['status']) - { - case PAYSTATUS_PAY: - echo '订单已经付款'; - return false; - - case PAYSTATUS_REFUND: - echo '订单已经退款'; - return false; - - case PAYSTATUS_NORMAL: - break; - - default: - break; - } - } - - /// 重置支付记录 - if (!empty($log)) - $log = null; - - if (empty($log)) - { - $tag = array(); - $tag['return_url'] = $return_url; /// 支付完成页面跳转地址 - $tag['notice_url'] = $notice_url; /// 支付回调页面请求地址 - //$tag['param_mask'] = $param_mask; /// 支付回复参数格式 - $tag['total_fee'] = $fee; /// 支付金额 - $tag['attach'] = json_encode($attach, JSON_UNESCAPED_UNICODE); - $tag = json_encode($tag, JSON_UNESCAPED_UNICODE); - - $record = array(); - $record['type'] = $type; /// 支付方式 - $record['app_key'] = $app_id; /// 支付应用(int) - $record['market_key'] = $market_key; /// 支付商家(int) - $record['openid'] = $fromUser; /// 支付来源用户 - $record['order_id'] = $orderid; /// 订单编号 - $record['pay_fee'] = $fee; /// 支付金额 - $record['refund_fee'] = 0; /// 退款金额 - $record['tag'] = $tag; /// 其他附加内容 - $record['title'] = $title; /// 支付主题 - $record['status'] = PAYSTATUS_NORMAL; /// 支付状态 - $record['encrypt_code'] = ''; /// 编码 - $record['createtime'] = TIMESTAMP; /// 支付创建时间戳 - $record['out_trade_no'] = md5(date('YmdHis') . '_' . $app_id . '_' . $market_key . '_' . random(8, 1)); /// 支付唯一ID - $record['version'] = 1; /// 版本号 - - $pdo = $this->db; - try - { - $pdo->beginTransaction(); - /// 插入一条支付记录 - $plid = Sql::insertInto('syweb_core_paylog')->values($record)->exec($pdo)->lastInsertId(); - $pdo->commit(); - - $record['plid'] = $plid; - return $record; - } - catch(Exception $e) - { - $pdo->rollBack(); - echo $e->getMessage(); - return false; - } - } - - return true; - } - - - /** - * 微信支付-线上 - * @param string $orderid 订单号 - * @param integer $fee 支付金额(单位分) - * @param string $title 支付标题 - * @param string $notice_url 回调地址(异步) - * @param string $return_url 回调地址(同步) - //* @param string $param_mask - * @param array|mixed $attach 附带的其他参数 - * @return returnObject - */ - private function _pay_online_wechat_v1($orderid, $fee, $title, $notice_url, $return_url, $attach) - { - /// 验证用户登陆方式 - if (AUTHTYPE_WECHAT != $this->userInfo['auth_type']) - return new returnObject(500, 500, '请使用微信登录再进行支付!', null); - - /// 保存支付记录 - $pay_log = $this->saved_payinfo_v1($this->appid, $this->market_key, $this->userInfo['openid'], - $orderid, $fee, $title, $notice_url, $return_url, $attach, PAYTYPE_ONLINE_WECHAT); - if (!$pay_log) - return new returnObject(500, 500, '写入支付信息失败, 请联系管理员或稍候再试!', null); - - $notify_url = $this->getFullUrl('/api/newpay/notify/online/wechatpay'); /// 异步通知地址 - $callback_url = $this->getFullUrl('/api/newpay/callback/v1?plid=' . $pay_log['plid']); /// 同步通知地址 - - load()->model('payment'); - $wechat = array(); - $wechat['appid'] = $this->marketInfo['weixin_appid']; /// 微信公众号APPID - $wechat['secret'] = $this->marketInfo['weixin_secret_appid']; - $wechat['mchid'] = $this->marketInfo['weixin_mchid']; /// 微信公众号商户号 - $wechat['signkey'] = $this->marketInfo['weixin_paykey']; /// 支付秘钥 - - //$openid = $this->userInfo['openid']; - $attach = json_encode(array('app_id' => $this->appid, 'market_key' => $this->market_key, 'version' => 1,), JSON_UNESCAPED_UNICODE); - - $tools = new JsApiPay(); - /// ②、实例化统一下单对象 - $input = new WxPayUnifiedOrder(); - $input->SetAppid($wechat['appid']); /// 公众号APPID - $input->SetMch_id($wechat['mchid']); /// 公众号商户ID - //$input->SetPayKey($wechat['signkey']); /// 公众号APPID - //$input->SetSecretId($wechat['secret']); /// 公众号商户ID - - $input->SetBody($title); /// 本次支付主题 - $input->SetAttach($attach); /// 支付回传的值 - $input->SetOut_trade_no($pay_log['out_trade_no']); - $input->SetTotal_fee($fee); /// 微信支付单位为分 - $input->SetTime_start(date("YmdHis")); /// 支付发起时间戳 - $input->SetTime_expire(date("YmdHis", time() + 600));/// 支付有效期 - $input->SetGoods_tag(""); - $input->SetNotify_url($notify_url); - $input->SetTrade_type("JSAPI"); - $input->SetOpenid($pay_log['openid']); - try - { - $order = WxPayApi::unifiedOrder($input, 6, $wechat); /// 提交统一订单 - } - catch (Exception $e) - { - if (isset($order['return_msg'])) - echo $order['return_msg'], '
          '; - exit($e->getMessage()); - } - - /// $wOpt = wechat_build($params, $wechat); - $jsApiParameters = $tools->GetJsApiParameters($order, $wechat); - - if (is_error($jsApiParameters)) - { - /* - if ($jsApiParameters['message'] == 'invalid out_trade_no' || $jsApiParameters['message'] == 'OUT_TRADE_NO_USED') - { - $id = date('YmdH'); - pdo_update('syweb_core_paylog', array('plid' => $id), array('plid' => $log['plid'])); - pdo_query("ALTER TABLE " . tablename('syweb_core_paylog') . " auto_increment = " . ($id + 1) . ";"); - exit('抱歉,发起支付失败,系统已经修复此问题,请重新尝试支付。'); - } - */ - exit("抱歉,发起支付失败,具体原因为:“{$jsApiParameters['errno']}:{$jsApiParameters['message']}”。请及时联系站点管理员。"); - } - - $htmlContent = << - function jsApiCall() { - WeixinJSBridge.invoke( - 'getBrandWCPayRequest', - {$jsApiParameters}, - function(res) { - if ('get_brand_wcpay_request:ok' == res.err_msg) { /// 支付成功 - window.location.href="{$callback_url}"; - } else if ('get_brand_wcpay_request:cancel' == res.err_msg) { /// 用户取消 - //alert('启动微信支付失败, 请检查你的支付参数. 详细错误为: ' + res.err_msg); - history.go(-1); - } else { /// 其他错误 - //alert('启动微信支付失败, 请检查你的支付参数. 详细错误为: ' + res.err_msg); - history.go(-1); - } - } - ); - } - - if (typeof WeixinJSBridge == "undefined") { - if (document.addEventListener) { - document.addEventListener('WeixinJSBridgeReady', jsApiCall, false); - } else if (document.attachEvent) { - document.attachEvent('WeixinJSBridgeReady', jsApiCall); - document.attachEvent('onWeixinJSBridgeReady', jsApiCall); - } - } else { - jsApiCall(); - } - -EOF; - - exit($htmlContent); - } - - - /** - * 支付宝支付-线上 - * @param string $orderid 订单号 - * @param integer $fee 支付金额(单位分) - * @param string $title 支付标题 - * @param string $notice_url 回调地址(异步) - * @param string $return_url 回调地址(同步) - * @param array|mixed $attach 附带的其他参数 - * @return boolean - */ - private function _pay_online_ali_v1($orderid, $fee, $title, $notice_url, $return_url, $attach) - { - /// 保存支付记录 - $pay_log = $this->saved_payinfo_v1($this->appid, $this->market_key, @$this->userInfo['openid'], - $orderid, $fee, $title, $notice_url, $return_url, $attach, PAYTYPE_ONLINE_ALIPAY); - if (!$pay_log) - return new returnObject(500, 500, '写入支付信息失败, 请联系管理员或稍候再试!', null); - - $alipay_appid = $this->marketInfo['alipay_appid']; - $attach = json_encode(array('app_id' => $this->appid, 'market_key' => $this->market_key, 'version' => 1,), JSON_UNESCAPED_UNICODE); - - $notify_url = $this->getFullUrl('/api/newpay/notify/online/alipay'); /// 异步通知地址 - $callback_url = $this->getFullUrl('/api/newpay/callback/v1?plid=' . $pay_log['plid']); /// 同步通知地址 - - $payRequestBuilder = new AlipayTradeWapPayContentBuilder(); - $payRequestBuilder->setBody($title); /// 商品描述,可空 - $payRequestBuilder->setSubject($title); /// 订单名称,必填 - $payRequestBuilder->setOutTradeNo($pay_log['out_trade_no']); /// 商户订单号,商户网站订单系统中唯一订单号,必填 - $payRequestBuilder->setTotalAmount($fee / 100); /// 付款金额,必填 - $payRequestBuilder->setTimeExpress('1m'); - $payRequestBuilder->setPassbackParams($attach); /// 回传参数 - - $config = array ( - 'app_id' => $alipay_appid, /// 应用id - //'merchant_private_key' => '', /// 商户私钥,您的原始格式RSA私钥 - 'merchant_private_key_filepath' => dirname(dirname(__DIR__)) . '/payment/alipay/key/' . $alipay_appid . '/rsa_private_key.pem', /// 商户私钥文件名 - 'notify_url' => $notify_url, /// 异步通知地址 - 'return_url' => $callback_url, /// 同步通知地址 - 'charset' => 'utf-8', /// 编码格式 - 'sign_type' => 'RSA2', /// 签名方式 - 'gatewayUrl' => 'https://openapi.alipay.com/gateway.do', /// 支付宝网关 - //'alipay_public_key' => '', /// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。 - 'alipay_public_key_filepath' => dirname(dirname(__DIR__)) . '/payment/alipay/key/' . $alipay_appid . '/alipay_rsa_public_key.pem', /// 支付宝公钥文件名 - ); - - $payResponse = new AlipayTradeService_wappay($config); - $result = $payResponse->wapPay($payRequestBuilder, $config['return_url'], $config['notify_url']); - - exit($result); - } - - - /** - * 威富通聚合支付--微信-线上 - * @param string $orderid 订单号 - * @param integer $fee 支付金额(单位分) - * @param string $title 支付标题 - * @param string $notice_url 回调地址(异步) - * @param string $return_url 回调地址(同步) - * @param array|mixed $attach 附带的其他参数 - * @return returnObject - */ - private function _pay_online_swiftpass_wechat_v1($orderid, $fee, $title, $notice_url, $return_url, $attach) - { - if (AUTHTYPE_WECHAT != $this->userInfo['auth_type']) - { - return new returnObject(500, 500, '请使用微信登录再进行支付!', null); - } - - $pay_log = $this->saved_payinfo_v1($this->appid, $this->market_key, $this->userInfo['openid'], - $orderid, $fee, $title, $notice_url, $return_url, $attach, PAYTYPE_ONLINE_SWIFTPASS_WECHAT); - if (!$pay_log) - { - return new returnObject(500, 500, '写入支付信息失败, 请联系管理员或稍候再试!', null); - } - - $openid = $this->userInfo['openid']; - $mch_id = $this->marketInfo['swiftpass_mchid']; - $secret_key = $this->marketInfo['swiftpass_paykey']; - $attach = json_encode(array('app_id' => $this->appid, 'market_key' => $this->market_key, 'version' => 1), JSON_UNESCAPED_UNICODE); - - $resHandler = new ClientResponseHandler(); - $reqHandler = new RequestHandler(); - $pay = new PayHttpClient(); - - $reqHandler->setGateUrl('https://pay.swiftpass.cn/pay/gateway'); - $reqHandler->setKey($secret_key); - - $notify_url = $this->getFullUrl('/api/newpay/notify/online/swiftpasswechatpay', true); /// 异步通知地址 - $callback_url = $this->getFullUrl('/api/newpay/callback/v1?plid=' . $pay_log['plid']); /// 同步通知地址 - -/* -service 是 String(32) 接口类型:pay.weixin.jspay -version 否 String(8) 版本号,version默认值是2.0 -charset 否 String(8) 可选值 UTF-8 ,默认为 UTF-8 -sign_type 否 String(8) 签名类型,取值:MD5默认:MD5 -mch_id 是 String(32) 商户号,由平台分配 -is_raw 否 String(1) 是否原生态 值为1:是;值为0:否;不传默认是0 -is_minipg 否 String(1) 值为1,表示小程序支付;不传或值不为1,表示公众账号内支付 -out_trade_no 是 String(32) 商户系统内部的订单号 ,32个字符内、 可包含字母,确保在商户系统唯一 -device_info 否 String(32) 终端设备号 -body 是 String(127) 商品描述 -sub_openid 是 String(128) 微信用户关注商家公众号的openid(注:使用测试号时此参数置空,即不要传这个参数,使用正式商户号时才传入,参数名是sub_openid,具体请看文档最后注意事项第7点) -sub_appid 否 String(32) 微信公众平台基本配置中的AppID(应用ID) -attach 否 String(128) 商户附加信息,可做扩展参数,255字符内 -total_fee 是 Int 总金额,以分为单位,不允许包含任何字、符号 -mch_create_ip 是 String(16) 订单生成的机器 IP -notify_url 是 String(255) 接收平台通知的URL,需给绝对路径,255字符内格式如:http://wap.tenpay.com/tenpay.asp,确保平台能通过互联网访问该地址 -callback_url 否 String(255) 交易完成后跳转的URL,需给绝对路径,255字符内格式如:http://wap.tenpay.com/callback.asp注:该地址只作为前端页面的一个跳转,需使用notify_url通知结果作为支付最终结果。 -time_start 否 String(14) 订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。时区为GMT+8 beijing。该时间取自商户服务器 -time_expire 否 String(14) 订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。时区为GMT+8 beijing。该时间取自商户服务器 -goods_tag 否 String(32) 商品标记,微信平台配置的商品标记,用于优惠券或者满减使用 -nonce_str 是 String(32) 随机字符串,不长于 32 位 -limit_credit_pay 否 String(32) 限定用户使用微信支付时能否使用信用卡,值为1,禁用信用卡;值为0或者不传此参数则不禁用 -sign 是 String(32) MD5签名结果,详见“安全规范” -*/ - //$reqHandler->setReqParams($_POST, array('method')); - $reqHandler->setParameter('service', 'pay.weixin.jspay'); /// 接口类型 - $reqHandler->setParameter('mch_id', $mch_id); /// 商户号,由平台分配 - $reqHandler->setParameter('version', '2.0'); /// 版本号,version默认值是2.0 - $reqHandler->setParameter('is_raw', '1'); /// 是否原生态 值为1:是;值为0:否;不传默认是0 - $reqHandler->setParameter('out_trade_no', $pay_log['out_trade_no']); /// 商户系统内部的订单号 ,32个字符内、 可包含字母,确保在商户系统唯一 - $reqHandler->setParameter('body', $title); /// 商品描述 - $reqHandler->setParameter('sub_openid', $openid); /// 微信用户关注商家公众号的openid(注:使用测试号时此参数置空,即不要传这个参数,使用正式商户号时才传入,参数名是sub_openid,具体请看文档最后注意事项第7点) - $reqHandler->setParameter('attach', $attach); /// 商户附加信息,可做扩展参数,255字符内 - $reqHandler->setParameter('total_fee', $fee); /// 总金额,以分为单位,不允许包含任何字、符号 - $reqHandler->setParameter('mch_create_ip', $_SERVER['REMOTE_ADDR']); /// 订单生成的机器 IP - $reqHandler->setParameter('notify_url', $notify_url); /// 异步通知地址 - $reqHandler->setParameter('callback_url', $callback_url); /// 同步通知地址 - $reqHandler->setParameter('nonce_str', mt_rand(time(), time() + rand())); /// 随机字符串,必填项,不长于 32 位 - - $reqHandler->createSign(); /// 创建签名 - - $data = Utils::toXml($reqHandler->getAllParameters()); - - //var_dump($data); - //var_dump($pay->getResContent()); - $pay->setReqContent($reqHandler->getGateURL(), $data); - if ($pay->call()) - { - $resHandler->setContent($pay->getResContent()); - $resHandler->setKey($reqHandler->getKey()); - //var_dump($resHandler->getAllParameters()); - if ($resHandler->isTenpaySign()) - { - //var_dump($resHandler->getAllParameters()); - /// 当返回状态与业务结果都为0时才返回,其它结果请查看接口文档 - $status_code = $resHandler->getParameter('status'); - $result_code = $resHandler->getParameter('result_code'); - if (0 == $status_code && 0 == $result_code) - { -/* - $payInfo = json_decode($resHandler->getParameter('pay_info')); - $htmlContent = << - function jsApiCall() { - WeixinJSBridge.invoke( - 'getBrandWCPayRequest', { - "appId": "{$payInfo->appId}", /// 公众号名称,由商户传入 - "timeStamp": "{$payInfo->timeStamp}", /// 时间戳,自1970 年以来的秒数 - "nonceStr": "{$payInfo->nonceStr}", /// 随机串 - "package": "{$payInfo->package}", - "signType": "{$payInfo->signType}", /// 微信签名方式: - "paySign": "{$payInfo->paySign}" /// 微信签名, - }, function (res) { - if (res.err_msg == "get_brand_wcpay_request:ok") { - /// 此处可以使用此方式判断前端返回,微信团队郑重提示:res.err_msg 将在用户支付成功后返回ok,但并不保证它绝对可靠。 - window.location.href="{$callback_url}"; - } else { - //alert('启动微信支付失败, 请检查你的支付参数. 详细错误为: ' + res.err_msg); - history.go(-1); - } - } - ); - } - - if (typeof WeixinJSBridge == "undefined") { - if( document.addEventListener ){ - document.addEventListener('WeixinJSBridgeReady', jsApiCall, false); - }else if (document.attachEvent){ - document.attachEvent('WeixinJSBridgeReady', jsApiCall); - document.attachEvent('onWeixinJSBridgeReady', jsApiCall); - } - }else{ - jsApiCall(); - } - -EOF; -*/ - $htmlContent = << -window.location.href="https://pay.swiftpass.cn/pay/jspay?token_id={$resHandler->getParameter('token_id')}&showwxtitle=1"; - -EOF; - die($htmlContent); - //return new returnObject(0, 0, '', array('token_id' => $resHandler->getParameter('token_id'), 'pay_info' => $resHandler->getParameter('pay_info'),)); - } - elseif (0 != $status_code) - return new returnObject(500, $status_code, $resHandler->getParameter('message'), null); - elseif (0 != $result_code) - return new returnObject(500, $result_code, $resHandler->getParameter('err_msg'), null); - else - return new returnObject(500, 500, '未知错误!'); - } - else - { - if (0 != $resHandler->getParameter('status')) - return new returnObject(502, $resHandler->getParameter('status'), $resHandler->getParameter('message'), null); - elseif (0 != $resHandler->getParameter('result_code')) - return new returnObject(502, $resHandler->getParameter('result_code'), $resHandler->getParameter('err_msg'), null); - else - return new returnObject(502, 502, '签名错误'); - } - } - else - return new returnObject(501, $pay->getResponseCode(), $pay->getErrInfo(), null); - } - - - /** - * 威富通聚合支付--支付宝-线上 - * @param string $orderid 订单号 - * @param integer $fee 支付金额(单位分) - * @param string $title 支付标题 - * @param string $notice_url 回调地址(异步) - * @param string $return_url 回调地址(同步) - * @param array|mixed $attach 附带的其他参数 - * @return returnObject - */ - private function _pay_online_swiftpass_ali_v1($orderid, $fee, $title, $notice_url, $return_url, $attach) - { - return new returnObject(500, 500, '还没有实现该支付功能, 请关注平台后续更新!', null); - } - - /** - * 汇付宝聚合支付--微信-线上 - * @param string $orderid 订单号 - * @param integer $fee 支付金额(单位分) - * @param string $title 支付标题 - * @param string $notice_url 回调地址(异步) - * @param string $return_url 回调地址(同步) - * @param array|mixed $attach 附带的其他参数 - * @return returnObject - */ - private function _pay_online_heepay_wechat_v1($orderid, $fee, $title, $notice_url, $return_url, $attach) - { - if (AUTHTYPE_WECHAT != $this->userInfo['auth_type']) - return new returnObject(500, 500, '请使用微信登录再进行支付!', null); - - $pay_log = $this->saved_payinfo_v1($this->appid, $this->market_key, $this->userInfo['openid'], - $orderid, $fee, $title, $notice_url, $return_url, $attach, PAYTYPE_ONLINE_HEEPAY_WECHAT); - if (!$pay_log) - return new returnObject(500, 500, '写入支付信息失败, 请联系管理员或稍候再试!', null); - - //$openid = $this->userInfo['openid']; - $mch_id = $this->marketInfo['heepay_mchid']; - $secret_key = $this->marketInfo['heepay_paykey']; - //$attach = JsonObjectToJsonString(array('app_id' => $this->appid, 'market_key' => $this->market_key, 'version' => 1)); - - $notify_url = $this->getFullUrl('/api/newpay/notify/online/heepaywechatpay'); /// 异步通知地址 - $callback_url = $this->getFullUrl('/api/newpay/callback/v1?plid=' . $pay_log['plid']); /// 同步通知地址 - - /// 获取用户IP - if (isset($_SERVER['HTTP_CLIENT_IP'])) - $ClientIP = $_SERVER['HTTP_CLIENT_IP']; - elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) - $ClientIP = $_SERVER['HTTP_X_FORWARDED_FOR']; - elseif (isset($_SERVER['REMOTE_ADDR'])) - $ClientIP = $_SERVER['REMOTE_ADDR']; - else - $ClientIP = null; - - $version = 1; /// 必填 当前接口版本号1 - $is_phone = 1; /// 必填 是否使用手机触屏版,1=是(不参加签名) - $is_frame = 1; /// 必填 =0代表在除了微信浏览器之外的浏览器支付(不参加签名) - $pay_type = 30; /// 必填 支付类型30,(数据类型:int) - $agent_id = $mch_id; /// 必填 商户编号 如1234567(汇付宝商户编号:七位整数数字) - $agent_bill_id = $pay_log['out_trade_no']; /// 必填 商户系统内部的订单号(要保证唯一)。长度最长50字符 - $pay_amt = $fee / 100; /// 必填 订单总金额 不可为空,取值范围(0.01到10000000.00),单位:元,小数点后保留两位。 - //$notify_url = $notify_url; /// 必填 (异步回调)支付后返回的商户处理页面,URL参数是以http://或https://开头的完整URL地址(后台处理) 提交的url地址必须外网能访问到,否则无法通知商户。值可以为空,但不可以为null。 - $return_url = $callback_url; /// 必填 (同步回调)支付后返回的商户显示页面,URL参数是以http://或https://开头的完整URL地址(前台显示),原则上该参数与notify_url提交的参数不一致。值可以为空,但不可以为null。 - /// 微信支付不涉及同步返回,此处可填写任意URL,没有实际使用 - $user_ip = str_ireplace('.', '_', $ClientIP); /// 必填 用户所在客户端的真实ip其中的“.”替换为“_” 。如 127_127_12_12。因为近期我司发现用户在提交数据时,user_ip在网络层被篡改,导致签名错误,所以我们规定使用这种格式。 - $agent_bill_time = date('YmdHis', time()); /// 必填 提交单据的时间yyyyMMddHHmmss 如:20100225102000该参数共计14位,当时不满14位时,在后面加0补足14位 - $goods_name = rawurlencode($title); /// 必填 商品名称,长度最长50字符,不能为空(不参加签名) - $goods_num = 1; /// 选填 产品数量,长度最长20字符(不参加签名) - //$remark = rawurlencode($attach); /// 必填 商户自定义 原样返回,长度最长50字符,可以为空。(不参加签名) - $remark = empty(@$attach['remark']) ? JsonObjectToJsonString(array('id' => $pay_log['plid'], 'ver' => 1,)) : $attach['remark']; /// - $goods_note = ''; /// 选填 支付说明,长度50字符(不参加签名) - $meta_option = JsonObjectToJsonString(array('s' => 'WAP', 'n' => $this->marketInfo['market_name'], 'id' => $this->getLocaleUrl(),)); /// 必填 {“s”:”WAP”,”n”:”WAP网站名”,”id”:”WAP网站的首页URL”}(不参加签名) - //$timestamp = time(); /// 选填 时间戳,订单在+-1min内有效,超过时间订单不能提交。如果传此参数,此参数也需要参与签名,参数加在key后面 - $pay_code = ''; //char型,空字符串 - $sign_key = $secret_key; /// 签名密钥,需要商户使用为自己的真实KEY - - $meta_option = rawurlencode(base64_encode(Characet($meta_option, 'GBK'))); /// - - /*************创建签名***************/ - $sign_str = ''; - $sign_str = $sign_str . 'version=' . $version; - $sign_str = $sign_str . '&agent_id=' . $agent_id; - $sign_str = $sign_str . '&agent_bill_id=' . $agent_bill_id; - $sign_str = $sign_str . '&agent_bill_time=' . $agent_bill_time; - $sign_str = $sign_str . '&pay_type=' . $pay_type; - $sign_str = $sign_str . '&pay_amt=' . $pay_amt; - $sign_str = $sign_str . '¬ify_url=' . $notify_url; - $sign_str = $sign_str . '&return_url=' . $return_url; - $sign_str = $sign_str . '&user_ip=' . $user_ip; - $sign_str = $sign_str . '&key=' . $sign_key; - $sign = md5($sign_str); /// 签名值 - - $html = <<
        -EOL; - } - - if (!empty($alipay)) { - /// 支付要用的参数 - $data = $attach + array( - 'appid' => $app_id, /// appid - 'devkey' => $dev_key, /// 开发者key - 'sid' => $sid, /// sid - 'scode' => $scode, /// scode - 'orderid' => $order_id, /// 订单号 - 'fee' => $fee, /// 支付金额(单位分) - 'title' => $title, /// 支付标题 - 'notice_url' => $notice_url, /// 回调页面地址(异步) - 'return_url' => $return_url, /// 回调页面地址(同步) - 'paytype' => $alipay->type_id, /// 支付类型(可通过接口获取所有支持的类型列表) - 'version' => 1, /// 接口版本号, 整型, 目前只支持1 - ); - $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 - - $alipayform = ''; - - $alipayhtml = << - -
    -EOL; - } - - if (!empty($browser)) { - /// 支付要用的参数 - $data = $attach + array( - 'appid' => $app_id, /// appid - 'devkey' => $dev_key, /// 开发者key - 'sid' => $sid, /// sid - 'scode' => $scode, /// scode - 'orderid' => $order_id, /// 订单号 - 'fee' => $fee, /// 支付金额(单位分) - 'title' => $title, /// 支付标题 - 'notice_url' => $notice_url, /// 回调页面地址(异步) - 'return_url' => $return_url, /// 回调页面地址(同步) - 'paytype' => $browser->type_id, /// 支付类型(可通过接口获取所有支持的类型列表) - 'version' => 1, /// 接口版本号, 整型, 目前只支持1 - ); - $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 - - $browserform = ''; - - $browserhtml = << - - -EOL; - } -/* - if (empty($wechat)) - $html = << - alipayform.submit(); - -EOL; - elseif (empty($alipay)) - $html = << - wechatform.submit(); - -EOL; - else -*/ - $html = << -{$wechathtml} -{$alipayhtml} -{$browserhtml} - - - - -EOL; - } - } elseif (0 != $result->error) { /// 有错误发生 - $html = << - alert('{$result->msg}'); - -EOL; - } else { - $html = << - alert('该门店不支援任何的支付方式!'); - -EOL; - } - } - - echo $html; -} -?> - - - - + $v) { + if (strcasecmp('is_qrcode', $k) == 0) continue; + + $url .= "&{$k}={$v}"; + } + + if (empty($url)) + $url = GetLocaleUrl(); + else { + $sublen = mb_strlen('&', USEDCHARSET); + $url = GetLocaleUrl() . '?' . mb_substr($url, $sublen, mb_strlen($url, USEDCHARSET) - $sublen, USEDCHARSET); + } + + $local_path = dirname(__FILE__); + $short_name = '/qrcodeimg/' . date('YmdHis') . '.png'; + $logo_name = $local_path . '/img/qr_logo.png'; + $long_name = $local_path . $short_name; + QRcode::png($url, $long_name, QR_ECLEVEL_L, 8, 2); + + /// 合并二维码和logo图片 + $img = imagecreatefromstring(file_get_contents($long_name)); + $logo = imagecreatefromstring(file_get_contents($logo_name)); + + if ($img && $logo) { + $img_width = imagesx($img); /// 二维码图片宽度 + $img_height = imagesy($img); /// 二维码图片高度 + $logo_width = imagesx($logo); /// logo图片宽度 + $logo_height = imagesy($logo); /// logo图片高度 + $logo_qr_width = $img_width / 6; + $scale = $logo_width / $logo_qr_width; + $logo_qr_height = $logo_height / $scale; + $from_width = ($img_width - $logo_qr_width) / 2; + + /// 重新组合图片并调整大小 + imagecopyresampled($img, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); + + /// 输出图片 + header('Content-type: image/png'); + imagepng($img); + + imagedestroy($logo); + imagedestroy($img); + } + + ///$img_link = dirname(GetLocaleUrl()) . $short_name; + ///echo "

    在线支付
    "; + unlink($long_name); + exit; +} + +?> + + + + + + + + + + + + + + + + + + + + + $v) { + $param .= " \" \" + " . PHP_EOL; + } + + $attach = GetAttachParameters(array('attach', 'is_qrcode',)); + foreach ($attach as $k => $v) { + $param .= " \" \" + " . PHP_EOL; + } + $html = << + function submit() { + var fee = document.getElementById('fee').value; + + if ('' == fee || undefined == fee) { + alert('请输入要支付的金额(单位为分)'); + return; + } + + var script = + ""; + + $('#mainbody').append(script); + $('#frm').submit(); + } + + +
    +
    +
      +
    • 总金额: *
    • +
    + +
    +
    + +EOL; + } else { /// 有fee参数表示已提交页面中输入的支付金额 + /// 获取附加参数 + $ignore = array('sid','scode','app_id','dev_key','market_key','fee','title','order_id','notice_url','return_url','sign_key','is_qrcode','attach',); + $attach1 = GetAttachParameters($ignore, $attach); + $attach2 = GetAttachParameters($ignore); + $attach = $attach1 + $attach2; + + /// 通过接口获取门店所支援的支付方式 + $data = array( + 'appid' => $app_id, /// appid + 'devkey' => $dev_key, /// 开发者key + 'market_key' => $market_key, /// 门店key + 'level' => 1, /// 支付类型(1: 线上, 2: 扫码, 3: app) + 'version' => 1,/// 版本号 + ); + $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 + + $result = new ResultObject(rawurldecode(SendPost('https://api.tscce.cn/api/newpay/querylist', $data))); + if (0 == $result->error && count($result->data) > 0) { /// 成功 + /// 获取详细的支付接口信息,这里区分是微信还是支付宝,每种方式只取第一种 + $wechat = null; /// 微信限定 + $alipay = null; /// 支付宝限定 + $browser = null; /// 浏览器限定 + foreach ($result->data as $item) { + if (mb_strstr($item->third_flag, 'wechat', false, USEDCHARSET)) { /// 包含wechat表示都是各种类型的微信支付 + if (empty($wechat)) $wechat = $item; + } elseif (mb_strstr($item->third_flag, 'alipay', false, USEDCHARSET)) { /// 包含alipay表示都是各种类型的支付宝支付 + if (empty($alipay)) $alipay = $item; + } else { + if (empty($browser)) $browser = $item; + } + } + + if (empty($wechat) && empty($alipay) && empty($browser)) { + $html = << + alert('该门店不支援任何的支付方式!'); + +EOL; + } else { + $wechatform = ''; + $alipayform = ''; + $browserform = ''; + + $wechathtml = ''; + $alipayhtml = ''; + $browserhtml = ''; + + if (!empty($wechat)) { + /// 支付要用的参数 + $data = $attach + array( + 'appid' => $app_id, /// appid + 'devkey' => $dev_key, /// 开发者key + 'sid' => $sid, /// sid + 'scode' => $scode, /// scode + 'orderid' => $order_id, /// 订单号 + 'fee' => $fee, /// 支付金额(单位分) + 'title' => $title, /// 支付标题 + 'notice_url' => $notice_url, /// 回调页面地址(异步) + 'return_url' => $return_url, /// 回调页面地址(同步) + 'paytype' => $wechat->type_id, /// 支付类型(可通过接口获取所有支持的类型列表) + 'version' => 1, /// 接口版本号, 整型, 目前只支持1 + ); + $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 + + /// ==== ↓生成form表单↓ ==== + $wechatform = ''; + /// ==== ↑生成form表单↑ ==== + + $wechathtml = << + + +EOL; + } + + if (!empty($alipay)) { + /// 支付要用的参数 + $data = $attach + array( + 'appid' => $app_id, /// appid + 'devkey' => $dev_key, /// 开发者key + 'sid' => $sid, /// sid + 'scode' => $scode, /// scode + 'orderid' => $order_id, /// 订单号 + 'fee' => $fee, /// 支付金额(单位分) + 'title' => $title, /// 支付标题 + 'notice_url' => $notice_url, /// 回调页面地址(异步) + 'return_url' => $return_url, /// 回调页面地址(同步) + 'paytype' => $alipay->type_id, /// 支付类型(可通过接口获取所有支持的类型列表) + 'version' => 1, /// 接口版本号, 整型, 目前只支持1 + ); + $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 + + $alipayform = ''; + + $alipayhtml = << + + +EOL; + } + + if (!empty($browser)) { + /// 支付要用的参数 + $data = $attach + array( + 'appid' => $app_id, /// appid + 'devkey' => $dev_key, /// 开发者key + 'sid' => $sid, /// sid + 'scode' => $scode, /// scode + 'orderid' => $order_id, /// 订单号 + 'fee' => $fee, /// 支付金额(单位分) + 'title' => $title, /// 支付标题 + 'notice_url' => $notice_url, /// 回调页面地址(异步) + 'return_url' => $return_url, /// 回调页面地址(同步) + 'paytype' => $browser->type_id, /// 支付类型(可通过接口获取所有支持的类型列表) + 'version' => 1, /// 接口版本号, 整型, 目前只支持1 + ); + $data['sign'] = SignParameter($data, $sign_key); /// 生成签名 + + $browserform = ''; + + $browserhtml = << + + +EOL; + } +/* + if (empty($wechat)) + $html = << + alipayform.submit(); + +EOL; + elseif (empty($alipay)) + $html = << + wechatform.submit(); + +EOL; + else +*/ + $html = << +{$wechathtml} +{$alipayhtml} +{$browserhtml} + + + + +EOL; + } + } elseif (0 != $result->error) { /// 有错误发生 + $html = << + alert('{$result->msg}'); + +EOL; + } else { + $html = << + alert('该门店不支援任何的支付方式!'); + +EOL; + } + } + + echo $html; +} +?> + + + + diff --git a/codes/agent/game-docker/api/source/pay/readme.txt b/codes/agent/game-docker/api/source/pay/readme.txt index 2a9682e..058b4a0 100644 --- a/codes/agent/game-docker/api/source/pay/readme.txt +++ b/codes/agent/game-docker/api/source/pay/readme.txt @@ -1,24 +1,24 @@ -页面地址: - https://api.tscce.cn/source/pay/pay.php -主要功能: - 实现无关业务的支付调用 -调用方式: - get/post - -所需参数: - sid: sid - scode: scode - app_id: appid - dev_key: 开发者key - market_key: 门店key - fee: 支付金额(分) - title: 支付标题 - order_id: 订单号 - notice_url: 回调地址(异步) - return_url: 回调地址(同步) - is_qrcode: 是否需要生成二维码(y: 是) - sign_key: 签名key(客户端用户生成签名的key,目前支付时不校验签名,只在退款才会校验签名。) - 用户其他参数 - -调用示例: +页面地址: + https://api.tscce.cn/source/pay/pay.php +主要功能: + 实现无关业务的支付调用 +调用方式: + get/post + +所需参数: + sid: sid + scode: scode + app_id: appid + dev_key: 开发者key + market_key: 门店key + fee: 支付金额(分) + title: 支付标题 + order_id: 订单号 + notice_url: 回调地址(异步) + return_url: 回调地址(同步) + is_qrcode: 是否需要生成二维码(y: 是) + sign_key: 签名key(客户端用户生成签名的key,目前支付时不校验签名,只在退款才会校验签名。) + 用户其他参数 + +调用示例: https://api.tscce.cn/source/pay/pay.php?app_id=14936872341446&dev_key=14915485974028&market_key=test¬ice_url=https://api.tscce.cn/source/pay/notice.php&return_url=https://api.tscce.cn/source/pay/notice.php&title=aaa&fee=4&p1=p1&is_qrcode=y \ No newline at end of file diff --git a/codes/agent/game-docker/api/tests/README.md b/codes/agent/game-docker/api/tests/README.md index 9054222..e36ca09 100644 --- a/codes/agent/game-docker/api/tests/README.md +++ b/codes/agent/game-docker/api/tests/README.md @@ -1,121 +1,121 @@ -# PHP8升级测试套件 - -## 📁 目录结构 - -``` -tests/ -├── README.md # 本文档 - 测试套件说明 -├── run_all_tests.php # 主测试运行器 -├── unit/ # 单元测试 - 测试单个功能组件 -│ ├── check_session_config.php # Session配置检查 -│ ├── test_session_persistence.php # Session持久化测试 -│ ├── test_curl_fix.php # CURL修复验证 -│ └── test_weixin_curl_fix.php # 微信CURL修复测试 -├── integration/ # 集成测试 - 测试完整业务流程 -│ ├── business_function_test.php # 核心业务功能测试 -│ ├── system_verification.php # 系统功能验证 -│ └── test_full_weixin_flow.php # 完整微信登录流程测试 -└── debug/ # 调试工具 - 问题排查和诊断 - ├── debug_weixin.php # 微信登录调试工具 - └── test_weixin_callback.php # 微信回调测试 -``` - -## 🎯 测试分类说明 - -### Unit Tests (单元测试) -- **目的**: 验证单个组件或功能模块的正确性 -- **范围**: 独立的函数、类方法、配置项 -- **特点**: 快速执行,隔离性强,无外部依赖 - -### Integration Tests (集成测试) -- **目的**: 验证多个模块组合后的完整业务流程 -- **范围**: 完整的业务场景,如登录→支付→回调 -- **特点**: 真实环境测试,涉及数据库、外部API - -### Debug Tools (调试工具) -- **目的**: 问题排查和系统诊断 -- **范围**: 错误定位、参数检查、流程跟踪 -- **特点**: 详细日志输出,步骤可视化 - -## 🚀 使用方法 - -### 1. 运行完整测试套件 -```bash -# 使用PHP8运行完整测试 -C:\xampp8\php\php.exe tests/run_all_tests.php -``` - -### 2. 运行特定类型测试 -```bash -# 只运行单元测试 -C:\xampp8\php\php.exe tests/run_all_tests.php --type=unit - -# 只运行集成测试 -C:\xampp8\php\php.exe tests/run_all_tests.php --type=integration - -# 只运行调试工具 -C:\xampp8\php\php.exe tests/run_all_tests.php --type=debug -``` - -### 3. 运行单个测试文件 -```bash -# 运行核心业务功能测试 -C:\xampp8\php\php.exe tests/integration/business_function_test.php - -# 运行系统验证 -C:\xampp8\php\php.exe tests/integration/system_verification.php - -# 运行微信登录调试 -C:\xampp8\php\php.exe tests/debug/debug_weixin.php -``` - -## 📊 测试报告 - -每个测试脚本都会生成详细的HTML报告,包括: -- ✅ 成功项目数量和详情 -- ⚠️ 警告项目和建议 -- ❌ 失败项目和修复建议 -- 📈 性能指标和耗时统计 -- 🔗 相关测试工具链接 - -## 🚨 重要测试项目 - -### 必须通过的核心测试 -1. **加密解密功能** - mcrypt→OpenSSL替换验证 -2. **微信登录流程** - 完整的OAuth2.0流程 -3. **API路由系统** - each()函数替换验证 -4. **数据库连接** - MySQL连接和基本查询 -5. **Session管理** - Session创建、存储、读取 - -### 生产部署前检查清单 -- [ ] 所有单元测试100%通过 -- [ ] 所有集成测试成功率≥95% -- [ ] 微信登录流程完全正常 -- [ ] 支付功能验证通过 -- [ ] 性能指标符合要求 -- [ ] 错误处理机制正常 - -## 🔧 环境要求 - -- **PHP版本**: 8.0+ -- **必需扩展**: openssl, curl, pdo_mysql, session -- **数据库**: MySQL (测试数据库连接配置) -- **网络**: 能访问外部API进行HTTP测试 - -## 📝 测试结果解读 - -### 状态标识 -- 🟢 **Success**: 功能完全正常,可以部署 -- 🟡 **Warning**: 有小问题但不影响核心功能 -- 🔴 **Error**: 严重问题,必须修复后才能部署 - -### 建议处理方式 -1. **Error项目**: 立即停止部署,优先修复 -2. **Warning项目**: 评估影响,制定修复计划 -3. **Success项目**: 继续保持,定期回归测试 - ---- - -**测试套件版本**: v1.0 -**最后更新**: 2025-07-06 -**适用范围**: PHP8升级后的完整系统验证 +# PHP8升级测试套件 + +## 📁 目录结构 + +``` +tests/ +├── README.md # 本文档 - 测试套件说明 +├── run_all_tests.php # 主测试运行器 +├── unit/ # 单元测试 - 测试单个功能组件 +│ ├── check_session_config.php # Session配置检查 +│ ├── test_session_persistence.php # Session持久化测试 +│ ├── test_curl_fix.php # CURL修复验证 +│ └── test_weixin_curl_fix.php # 微信CURL修复测试 +├── integration/ # 集成测试 - 测试完整业务流程 +│ ├── business_function_test.php # 核心业务功能测试 +│ ├── system_verification.php # 系统功能验证 +│ └── test_full_weixin_flow.php # 完整微信登录流程测试 +└── debug/ # 调试工具 - 问题排查和诊断 + ├── debug_weixin.php # 微信登录调试工具 + └── test_weixin_callback.php # 微信回调测试 +``` + +## 🎯 测试分类说明 + +### Unit Tests (单元测试) +- **目的**: 验证单个组件或功能模块的正确性 +- **范围**: 独立的函数、类方法、配置项 +- **特点**: 快速执行,隔离性强,无外部依赖 + +### Integration Tests (集成测试) +- **目的**: 验证多个模块组合后的完整业务流程 +- **范围**: 完整的业务场景,如登录→支付→回调 +- **特点**: 真实环境测试,涉及数据库、外部API + +### Debug Tools (调试工具) +- **目的**: 问题排查和系统诊断 +- **范围**: 错误定位、参数检查、流程跟踪 +- **特点**: 详细日志输出,步骤可视化 + +## 🚀 使用方法 + +### 1. 运行完整测试套件 +```bash +# 使用PHP8运行完整测试 +C:\xampp8\php\php.exe tests/run_all_tests.php +``` + +### 2. 运行特定类型测试 +```bash +# 只运行单元测试 +C:\xampp8\php\php.exe tests/run_all_tests.php --type=unit + +# 只运行集成测试 +C:\xampp8\php\php.exe tests/run_all_tests.php --type=integration + +# 只运行调试工具 +C:\xampp8\php\php.exe tests/run_all_tests.php --type=debug +``` + +### 3. 运行单个测试文件 +```bash +# 运行核心业务功能测试 +C:\xampp8\php\php.exe tests/integration/business_function_test.php + +# 运行系统验证 +C:\xampp8\php\php.exe tests/integration/system_verification.php + +# 运行微信登录调试 +C:\xampp8\php\php.exe tests/debug/debug_weixin.php +``` + +## 📊 测试报告 + +每个测试脚本都会生成详细的HTML报告,包括: +- ✅ 成功项目数量和详情 +- ⚠️ 警告项目和建议 +- ❌ 失败项目和修复建议 +- 📈 性能指标和耗时统计 +- 🔗 相关测试工具链接 + +## 🚨 重要测试项目 + +### 必须通过的核心测试 +1. **加密解密功能** - mcrypt→OpenSSL替换验证 +2. **微信登录流程** - 完整的OAuth2.0流程 +3. **API路由系统** - each()函数替换验证 +4. **数据库连接** - MySQL连接和基本查询 +5. **Session管理** - Session创建、存储、读取 + +### 生产部署前检查清单 +- [ ] 所有单元测试100%通过 +- [ ] 所有集成测试成功率≥95% +- [ ] 微信登录流程完全正常 +- [ ] 支付功能验证通过 +- [ ] 性能指标符合要求 +- [ ] 错误处理机制正常 + +## 🔧 环境要求 + +- **PHP版本**: 8.0+ +- **必需扩展**: openssl, curl, pdo_mysql, session +- **数据库**: MySQL (测试数据库连接配置) +- **网络**: 能访问外部API进行HTTP测试 + +## 📝 测试结果解读 + +### 状态标识 +- 🟢 **Success**: 功能完全正常,可以部署 +- 🟡 **Warning**: 有小问题但不影响核心功能 +- 🔴 **Error**: 严重问题,必须修复后才能部署 + +### 建议处理方式 +1. **Error项目**: 立即停止部署,优先修复 +2. **Warning项目**: 评估影响,制定修复计划 +3. **Success项目**: 继续保持,定期回归测试 + +--- + +**测试套件版本**: v1.0 +**最后更新**: 2025-07-06 +**适用范围**: PHP8升级后的完整系统验证 diff --git a/codes/agent/game-docker/dlweb/api/document/微信开发判断用户是否已关注公众号.txt b/codes/agent/game-docker/dlweb/api/document/微信开发判断用户是否已关注公众号.txt index 9117a50..4069e3f 100644 --- a/codes/agent/game-docker/dlweb/api/document/微信开发判断用户是否已关注公众号.txt +++ b/codes/agent/game-docker/dlweb/api/document/微信开发判断用户是否已关注公众号.txt @@ -1,46 +1,46 @@ -΢ſʱʱҪжûǷѹעںţԱͬĻӦûעںŵȡ - -жûǷѹעںſͨȡûϢ - -ѹעںţô΢ŷصJSONݰsubscribe: 1Ϣ -δעںţô΢ŷصJSONݰsubscribe: 0Ϣ -߿ͨOpenIDhttp GETʽýӿȡûϢ - -ʾ - -https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN - - - Ƿ ˵ -access_token ýӿƾ֤ -openid ͨûıʶԵǰںΨһ -lang عҵ԰汾zh_CN 壬zh_TW 壬en Ӣ -PHPжûǷѹעںŵʾ - -function verification($openid,$accestoken){ - - $url = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$accestoken.'&openid='.$openid.'&lang=zh_CN'; - $json_Wxuser=json_decode(curlGet($url),true); - //ȡûϢжsubcribe == 0 ôδע - if(isset($json_Wxuser['subscribe']) && $json_Wxuser['subscribe'] == 0){ - //תʾûעҳ - $this->redirect('Guanzhu/index', array('id' => $id), 0, 'ҳת...'); - } - } - -function curlGet($url){ - $ch = curl_init(); - $header = "Accept-Charset: utf-8"; - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); - curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); - curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); - curl_setopt($curl, CURLOPT_HTTPHEADER, $header); - curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); - curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); - curl_setopt($ch, CURLOPT_AUTOREFERER, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, $data); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - $temp = curl_exec($ch); - return $temp; +΢ſʱʱҪжûǷѹעںţԱͬĻӦûעںŵȡ + +жûǷѹעںſͨȡûϢ + +ѹעںţô΢ŷصJSONݰsubscribe: 1Ϣ +δעںţô΢ŷصJSONݰsubscribe: 0Ϣ +߿ͨOpenIDhttp GETʽýӿȡûϢ + +ʾ + +https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN + + + Ƿ ˵ +access_token ýӿƾ֤ +openid ͨûıʶԵǰںΨһ +lang عҵ԰汾zh_CN 壬zh_TW 壬en Ӣ +PHPжûǷѹעںŵʾ + +function verification($openid,$accestoken){ + + $url = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$accestoken.'&openid='.$openid.'&lang=zh_CN'; + $json_Wxuser=json_decode(curlGet($url),true); + //ȡûϢжsubcribe == 0 ôδע + if(isset($json_Wxuser['subscribe']) && $json_Wxuser['subscribe'] == 0){ + //תʾûעҳ + $this->redirect('Guanzhu/index', array('id' => $id), 0, 'ҳת...'); + } + } + +function curlGet($url){ + $ch = curl_init(); + $header = "Accept-Charset: utf-8"; + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); + curl_setopt($curl, CURLOPT_HTTPHEADER, $header); + curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($ch, CURLOPT_AUTOREFERER, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $data); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $temp = curl_exec($ch); + return $temp; } \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/document/红包接口.txt b/codes/agent/game-docker/dlweb/api/document/红包接口.txt index 5339571..7689372 100644 --- a/codes/agent/game-docker/dlweb/api/document/红包接口.txt +++ b/codes/agent/game-docker/dlweb/api/document/红包接口.txt @@ -1,18 +1,18 @@ -红包接口: -请求地址:https://api.tscce.cn/api/newpay/sendredpack -请求类型:post -请求参数: -appid: appid -devkey: 开发者key -sid: 登录sid -scode: scode -orderid: 订单号 -fee: 红包金额(单位分,1元起步) -wishing: 红包祝福语 -act_name: 活动名称 -remark: 备注 -send_type: 红包类型(1;微信;2:支付宝) -version: 版本号(1) - - +红包接口: +请求地址:https://api.tscce.cn/api/newpay/sendredpack +请求类型:post +请求参数: +appid: appid +devkey: 开发者key +sid: 登录sid +scode: scode +orderid: 订单号 +fee: 红包金额(单位分,1元起步) +wishing: 红包祝福语 +act_name: 活动名称 +remark: 备注 +send_type: 红包类型(1;微信;2:支付宝) +version: 版本号(1) + + https://api.tscce.cn/api/newpay/sendredpack?appid=14936872341446&devkey=14915485974028&sid=YzT0CfCcZgqQV1dG0dZ77GR17d1R1Dqf&scode=005e15ed67176af569d6a170ef3981fa&orderid=1&fee=100&wishing=红包祝福语&act_name=活动名称&remark=备注&send_type=1&version=1 \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/apiclient_cert.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/apiclient_cert.pem index 38ec637..4bb5334 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/apiclient_cert.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYjCCA8ugAwIBAgIDEOVzMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDIwMzA0NDAwN1oX -DTI2MDEzMTA0NDAwN1owgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5aSp55ub572R57uc5pyJ6ZmQ5YWs5Y+4 -MREwDwYDVQQEEwgxMDY4NjEyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAOw+QLt0FlpT6IxEKR30JSyVIYy9ShS9KMfjNsLOUZLQyNmZhov+E6PdcUTs -6YwylWEOfmFKqIiVZG2zd2xlq7qEu8aD9Fk/xxO7RRJP4vnkmUyNLaK5d+Kxc/77 -q8HWZWUyDuCoxEsRuEVez8fkMBbtyqzlysf0V4hrUMdxreIJDqcQbRTCfi4j7D2h -WSb6/xC5xxFC7xr1TdBatCeLaYWiYuMnlUrdC3sXvE+qhFsjxDqM8n+iOVByIQ4R -lOtV8wEKWIRMwgK5WSd4Fetdl+vsRwkdEZwTKli8MDqBTCqJnzYPosXuE0pY8xr6 -nBHkq6mrFskyhso+BLb6svHNfHMCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ -YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud -DgQWBBQ8viOAiSWjFdhsowaiKzIiAloafzCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 -FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 -YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK -BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ -bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV -HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQCPgdGBRrVE5Fet -w/Mi8NMMgOcxZGs/xHZKtw/kHaZqWfmEGa4W5+X3juVG6TrYuek+2RwGE6qfLhAG -HtiESs2Pvws1WbUSaFeyjWFzgbcyjMlj/3DS+J2Hq4voRSBruxJ0DaunwTzlwtIn -MaKfGusX4QlLZIa3Ga+37bHKp29HEA== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYjCCA8ugAwIBAgIDEOVzMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDIwMzA0NDAwN1oX +DTI2MDEzMTA0NDAwN1owgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5aSp55ub572R57uc5pyJ6ZmQ5YWs5Y+4 +MREwDwYDVQQEEwgxMDY4NjEyMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAOw+QLt0FlpT6IxEKR30JSyVIYy9ShS9KMfjNsLOUZLQyNmZhov+E6PdcUTs +6YwylWEOfmFKqIiVZG2zd2xlq7qEu8aD9Fk/xxO7RRJP4vnkmUyNLaK5d+Kxc/77 +q8HWZWUyDuCoxEsRuEVez8fkMBbtyqzlysf0V4hrUMdxreIJDqcQbRTCfi4j7D2h +WSb6/xC5xxFC7xr1TdBatCeLaYWiYuMnlUrdC3sXvE+qhFsjxDqM8n+iOVByIQ4R +lOtV8wEKWIRMwgK5WSd4Fetdl+vsRwkdEZwTKli8MDqBTCqJnzYPosXuE0pY8xr6 +nBHkq6mrFskyhso+BLb6svHNfHMCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ +YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud +DgQWBBQ8viOAiSWjFdhsowaiKzIiAloafzCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 +FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 +YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK +BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ +bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV +HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQCPgdGBRrVE5Fet +w/Mi8NMMgOcxZGs/xHZKtw/kHaZqWfmEGa4W5+X3juVG6TrYuek+2RwGE6qfLhAG +HtiESs2Pvws1WbUSaFeyjWFzgbcyjMlj/3DS+J2Hq4voRSBruxJ0DaunwTzlwtIn +MaKfGusX4QlLZIa3Ga+37bHKp29HEA== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/apiclient_key.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/apiclient_key.pem index 889d51c..44a9472 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/apiclient_key.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEugIBADANBgkqhkiG9w0BAQEFAASCBKQwggSgAgEAAoIBAQDsPkC7dBZaU+iM -RCkd9CUslSGMvUoUvSjH4zbCzlGS0MjZmYaL/hOj3XFE7OmMMpVhDn5hSqiIlWRt -s3dsZau6hLvGg/RZP8cTu0UST+L55JlMjS2iuXfisXP++6vB1mVlMg7gqMRLEbhF -Xs/H5DAW7cqs5crH9FeIa1DHca3iCQ6nEG0Uwn4uI+w9oVkm+v8QuccRQu8a9U3Q -WrQni2mFomLjJ5VK3Qt7F7xPqoRbI8Q6jPJ/ojlQciEOEZTrVfMBCliETMICuVkn -eBXrXZfr7EcJHRGcEypYvDA6gUwqiZ82D6LF7hNKWPMa+pwR5KupqxbJMobKPgS2 -+rLxzXxzAgMBAAECggEALiMOQ02tm+BtNw+MtCPdKrLJRZImKJy0nSz7odnnRnPt -9cks5KQvM75og5x9E/tA/x50gg2xklMStPXqqcnFWvzXKzLUAqYY+/qDx8rAOitx -4OhldDUie6xKSg7egVGcpcG79BYhl8OTKEEW9SPUXHX+MfwCuUA35BWJRhomalEY -csgdCV+g95zcSGHAJAg4Hd1cl/FLVujMyIogdhXtR3lJvfLGNS95fSnELfPG45RR -38d1NPdV28zv7y/nMnypnJ5ccp3vl3TYl8OsSNttLkchFVpuB4p2/3Ze3fe3LtAU -luAJ5xpU790LyaFm7CDo1kcSMasRZgLTecfqJRa/8QKBgQD4dIPFLKKE4fusdVr3 -EbwwF4Lco8n9Osv3RYgvcjXNlP54iv2APOUiNGpf/nKtVuQDhrzYrbRpQ9h1gImH -JRj/xmw8nCMa77fZX6MxUopJ+f0f2Eeogei8GR+4QgD0/buZZA0IFTmSPx3Uqqky -DN+7BbEOU2kNbBACqbairX2fqQKBgQDzas127uRh4X4JtpfHb2zZX2SXEzUnZU8g -jR/TDNp+AnhoXpg1LYmHdKfac+bWNZvUs7TMi6cSF3cXvSNwMbqyraWrFBk1CZir -gwVbE1xau2I8H2wI4BJCC+ZZCqGPY4s1n/5jbFCnzZEDORwjkEDnxq5l0AdgqhTG -vCv2kJR8uwKBgEVgY5sfR5JLd/dEHc53yVC0f/oUUka/sEyvwcNd5OAvBo+qX/b7 -ChBvCnUbm/IDHVBOw1TNzF7Ibx0Ac2alWUGyqm6SOss+vNuZ9PvEzJCzmZbW0cuf -2tkLOuw8of/HCide5LSpGJZZwX6s2On85kxW3oXdjKwOzLmxoinyv+1hAoGACv9r -UxFODkIS4Lt4NhGJuHR/5fd/Mk14er8FjhKJmKHh8M09UUHCcfVKVCtiZZE8fiq0 -Y313yfB3eAIapMoKZmJEFuusi+HoHO+pgUjppkvLD25YAjqleIhzGtjJHeJgesbE -xpcxObOm9p9Q7yZoWFB4tq7kdnCYybXcwqIbo1sCf0HF5pBw9vqB94Pm5QkkEz/l -i7vFKDGciivLV5GpINAZ7Bp6FVzUEyLBtWO50KyLwL/VHIiPJG2p3appShNnKyPN -Ve9NuFqSSFfKygSvHne4uceuY/wW9wDK6io5KPhGHjdE3K4fpXR/xU417wk0sQCo -X6obKKFmExUdyqWiNrs= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEugIBADANBgkqhkiG9w0BAQEFAASCBKQwggSgAgEAAoIBAQDsPkC7dBZaU+iM +RCkd9CUslSGMvUoUvSjH4zbCzlGS0MjZmYaL/hOj3XFE7OmMMpVhDn5hSqiIlWRt +s3dsZau6hLvGg/RZP8cTu0UST+L55JlMjS2iuXfisXP++6vB1mVlMg7gqMRLEbhF +Xs/H5DAW7cqs5crH9FeIa1DHca3iCQ6nEG0Uwn4uI+w9oVkm+v8QuccRQu8a9U3Q +WrQni2mFomLjJ5VK3Qt7F7xPqoRbI8Q6jPJ/ojlQciEOEZTrVfMBCliETMICuVkn +eBXrXZfr7EcJHRGcEypYvDA6gUwqiZ82D6LF7hNKWPMa+pwR5KupqxbJMobKPgS2 ++rLxzXxzAgMBAAECggEALiMOQ02tm+BtNw+MtCPdKrLJRZImKJy0nSz7odnnRnPt +9cks5KQvM75og5x9E/tA/x50gg2xklMStPXqqcnFWvzXKzLUAqYY+/qDx8rAOitx +4OhldDUie6xKSg7egVGcpcG79BYhl8OTKEEW9SPUXHX+MfwCuUA35BWJRhomalEY +csgdCV+g95zcSGHAJAg4Hd1cl/FLVujMyIogdhXtR3lJvfLGNS95fSnELfPG45RR +38d1NPdV28zv7y/nMnypnJ5ccp3vl3TYl8OsSNttLkchFVpuB4p2/3Ze3fe3LtAU +luAJ5xpU790LyaFm7CDo1kcSMasRZgLTecfqJRa/8QKBgQD4dIPFLKKE4fusdVr3 +EbwwF4Lco8n9Osv3RYgvcjXNlP54iv2APOUiNGpf/nKtVuQDhrzYrbRpQ9h1gImH +JRj/xmw8nCMa77fZX6MxUopJ+f0f2Eeogei8GR+4QgD0/buZZA0IFTmSPx3Uqqky +DN+7BbEOU2kNbBACqbairX2fqQKBgQDzas127uRh4X4JtpfHb2zZX2SXEzUnZU8g +jR/TDNp+AnhoXpg1LYmHdKfac+bWNZvUs7TMi6cSF3cXvSNwMbqyraWrFBk1CZir +gwVbE1xau2I8H2wI4BJCC+ZZCqGPY4s1n/5jbFCnzZEDORwjkEDnxq5l0AdgqhTG +vCv2kJR8uwKBgEVgY5sfR5JLd/dEHc53yVC0f/oUUka/sEyvwcNd5OAvBo+qX/b7 +ChBvCnUbm/IDHVBOw1TNzF7Ibx0Ac2alWUGyqm6SOss+vNuZ9PvEzJCzmZbW0cuf +2tkLOuw8of/HCide5LSpGJZZwX6s2On85kxW3oXdjKwOzLmxoinyv+1hAoGACv9r +UxFODkIS4Lt4NhGJuHR/5fd/Mk14er8FjhKJmKHh8M09UUHCcfVKVCtiZZE8fiq0 +Y313yfB3eAIapMoKZmJEFuusi+HoHO+pgUjppkvLD25YAjqleIhzGtjJHeJgesbE +xpcxObOm9p9Q7yZoWFB4tq7kdnCYybXcwqIbo1sCf0HF5pBw9vqB94Pm5QkkEz/l +i7vFKDGciivLV5GpINAZ7Bp6FVzUEyLBtWO50KyLwL/VHIiPJG2p3appShNnKyPN +Ve9NuFqSSFfKygSvHne4uceuY/wW9wDK6io5KPhGHjdE3K4fpXR/xU417wk0sQCo +X6obKKFmExUdyqWiNrs= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/rootca.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/rootca.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/证书使用说明.txt b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/证书使用说明.txt +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1277120701/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1319664901/apiclient_cert.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1319664901/apiclient_cert.pem index 8d896b7..a4de726 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1319664901/apiclient_cert.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1319664901/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEazCCA9SgAwIBAgIDFIzzMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDMwNzA5MTAxOVoX -DTI2MDMwNTA5MTAxOVowgZsxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEwMC4GA1UEAxQn5Y2X5piM5biC57qs5bqm5paH5YyW5Lyg5aqS5pyJ -6ZmQ5YWs5Y+4MREwDwYDVQQEEwgxMTQ5OTYzODCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKnCWH1h9+C1ql7MxGqz3h2AA1fDIKmDu7sETB5gmPY8bu1t -1GaxiZb5771jEWMa14/cjUtvTaRgCb0fwANIaP+eeovEC2alZLxytTAgLgsiToxt -8Q6NP4xQBfYmyL3bswggnr1EKIC2Kr8HMcxFb04xJVAx0h4RHqZYd/0q/t1vV1re -yv2VZR+g+E7SGhO2GiKHn9C74QZWU5qe4PDblwLjqYZbxOQslF433zY7DkTrAg7m -wxNxKBXRH3ddvVdVWH0uq1pbuZ9oYJsjhuWARr1BlmUhwXGeXiTiIkSBbO8cxauX -XtsthCjKnn1zHHUcNWKb6n4AS/pqaTALBI4xEZ8CAwEAAaOCAUYwggFCMAkGA1Ud -EwQCMAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNh -dGUiMB0GA1UdDgQWBBQQMIGcrddYlWvqyEDH28EqxguTATCBvwYDVR0jBIG3MIG0 -gBQ+BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQ -BgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1Rl -bmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqG -SIb3DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQE -AwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAU -kvUtbEqjnzI+96Q2i+CqouD5b1VaRppaRFfbuE9oBNwouS3Im/EtIBI+LV4pQmYM -x64fdPZp7sxseOciX1qAruoYSB7mjSdiqB3vbk6hJ62viA2jqzXO4ol+ghKC5nmO -lJIBZaHJZB8jXkxIbeMlLu8EiJMi/VyL6dlGk82fLg== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEazCCA9SgAwIBAgIDFIzzMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDMwNzA5MTAxOVoX +DTI2MDMwNTA5MTAxOVowgZsxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEwMC4GA1UEAxQn5Y2X5piM5biC57qs5bqm5paH5YyW5Lyg5aqS5pyJ +6ZmQ5YWs5Y+4MREwDwYDVQQEEwgxMTQ5OTYzODCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKnCWH1h9+C1ql7MxGqz3h2AA1fDIKmDu7sETB5gmPY8bu1t +1GaxiZb5771jEWMa14/cjUtvTaRgCb0fwANIaP+eeovEC2alZLxytTAgLgsiToxt +8Q6NP4xQBfYmyL3bswggnr1EKIC2Kr8HMcxFb04xJVAx0h4RHqZYd/0q/t1vV1re +yv2VZR+g+E7SGhO2GiKHn9C74QZWU5qe4PDblwLjqYZbxOQslF433zY7DkTrAg7m +wxNxKBXRH3ddvVdVWH0uq1pbuZ9oYJsjhuWARr1BlmUhwXGeXiTiIkSBbO8cxauX +XtsthCjKnn1zHHUcNWKb6n4AS/pqaTALBI4xEZ8CAwEAAaOCAUYwggFCMAkGA1Ud +EwQCMAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNh +dGUiMB0GA1UdDgQWBBQQMIGcrddYlWvqyEDH28EqxguTATCBvwYDVR0jBIG3MIG0 +gBQ+BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQ +BgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1Rl +bmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqG +SIb3DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQE +AwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAU +kvUtbEqjnzI+96Q2i+CqouD5b1VaRppaRFfbuE9oBNwouS3Im/EtIBI+LV4pQmYM +x64fdPZp7sxseOciX1qAruoYSB7mjSdiqB3vbk6hJ62viA2jqzXO4ol+ghKC5nmO +lJIBZaHJZB8jXkxIbeMlLu8EiJMi/VyL6dlGk82fLg== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1319664901/apiclient_key.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1319664901/apiclient_key.pem index 08994b5..6f3e912 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1319664901/apiclient_key.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1319664901/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpwlh9Yffgtape -zMRqs94dgANXwyCpg7u7BEweYJj2PG7tbdRmsYmW+e+9YxFjGteP3I1Lb02kYAm9 -H8ADSGj/nnqLxAtmpWS8crUwIC4LIk6MbfEOjT+MUAX2Jsi927MIIJ69RCiAtiq/ -BzHMRW9OMSVQMdIeER6mWHf9Kv7db1da3sr9lWUfoPhO0hoTthoih5/Qu+EGVlOa -nuDw25cC46mGW8TkLJReN982Ow5E6wIO5sMTcSgV0R93Xb1XVVh9LqtaW7mfaGCb -I4blgEa9QZZlIcFxnl4k4iJEgWzvHMWrl17bLYQoyp59cxx1HDVim+p+AEv6amkw -CwSOMRGfAgMBAAECggEATNaK9zXA3RVdaEuHHEUN5Ixs9ux7fD8EWkI3sghHNC1m -iFGOMm1pucynlzGgTRt5NsS9r8dRfXV68v/MCbBc1lcFYP37qxpx3lqNaJsoPCHr -K+UXl16XxQrzp9cmRcmL38HkGAchziCmeJDpGWzUVLAqE4J5eOKG3QRuS0mK0u81 -5lU9X29CYab05jrm/4lhQUijR6ubt8XRz6Gpskzf3hvMpiScHSEK8qCRfa6IV9z4 -G6cjwAM9kd8IT8lxCEvA2AQIHBtmwYcSBqfD2o40SBUVqwMlaH+4KtR+5y/VJ7H1 -lF3oogknpWGRgMqSIq2jA7Z3nAZY3SmCihG9C7NaAQKBgQDXwoBBn5y8ZfDYK16X -qiFG78zbi0Bmni8wmyPX4jcvSjA69GWJvx1XBXFFle/sDP74p+6Wv5suZTx93jMI -yaMs67vRzA7neLzFsT8R/QZb93bdvXPDPwORqGE5i9NnXPGzqPXh/UCkLW1u+4Lz -5iqeUj5L+RTP48rBJgO8rFPkCQKBgQDJa4kIf43FBhqHTvK0cgA+iEDw3linHZOV -sfzjU8N0VH4KTrTDABQkC+dtdKj52Ax8WSr93vXBK8bxR9KacQDL/AESKtown8j8 -R5Bp13mDS+y1VxphynK/99ZvP5g8mZArFhHpHzi8O1qArZrwG4LNCp9itYqmCMuR -gFNwf/ZCZwKBgDMzNLxd5BPRHRYvNINJHBx5S2PN57pyT0B5kEfqpq3SLR/QX0gQ -0iWUZQzeR9D8RIU9VKDxVyHrZC96SyIKt24xgqCGjALh4+oF5bGfGaM5VjvIeXAb -w/0MuAWv6Lrek3zO24qFTpGnNhDgHnNCa1qmqaHdudKbe8HaA4kCW+YBAoGAVci+ -7CenMaqP0eEF7WRARmGxhuSrzUEDglXz5r3eGMWDiNBMnGCEM3X+ctekwAQMDUnM -zaMP9921NT3prG1EcZw6uIoXs23aI9g24V0sG4dSoUkfq1aV2LytT2Q+alDc3fzg -U/FAMKr2uKc3vdt5seo8R8YZ7u0ABlApOVjGgTECgYAf7HvCi4SPe7vkaWA3XkYK -LQ1TFgKlcXHXdQA/EkvQ2bXiEDIvB+3jpYN9OUgzVA8AmA7V5ExLhz+QMBIwZQjN -xejgan72hzn01MCd3Ldg8KWfQ4Wvey8S4AHNYi1tj/0xOV1hUROIZFtdMVWxjQ6K -DyE+u6fwkPfMD9qNi/v7Nw== ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpwlh9Yffgtape +zMRqs94dgANXwyCpg7u7BEweYJj2PG7tbdRmsYmW+e+9YxFjGteP3I1Lb02kYAm9 +H8ADSGj/nnqLxAtmpWS8crUwIC4LIk6MbfEOjT+MUAX2Jsi927MIIJ69RCiAtiq/ +BzHMRW9OMSVQMdIeER6mWHf9Kv7db1da3sr9lWUfoPhO0hoTthoih5/Qu+EGVlOa +nuDw25cC46mGW8TkLJReN982Ow5E6wIO5sMTcSgV0R93Xb1XVVh9LqtaW7mfaGCb +I4blgEa9QZZlIcFxnl4k4iJEgWzvHMWrl17bLYQoyp59cxx1HDVim+p+AEv6amkw +CwSOMRGfAgMBAAECggEATNaK9zXA3RVdaEuHHEUN5Ixs9ux7fD8EWkI3sghHNC1m +iFGOMm1pucynlzGgTRt5NsS9r8dRfXV68v/MCbBc1lcFYP37qxpx3lqNaJsoPCHr +K+UXl16XxQrzp9cmRcmL38HkGAchziCmeJDpGWzUVLAqE4J5eOKG3QRuS0mK0u81 +5lU9X29CYab05jrm/4lhQUijR6ubt8XRz6Gpskzf3hvMpiScHSEK8qCRfa6IV9z4 +G6cjwAM9kd8IT8lxCEvA2AQIHBtmwYcSBqfD2o40SBUVqwMlaH+4KtR+5y/VJ7H1 +lF3oogknpWGRgMqSIq2jA7Z3nAZY3SmCihG9C7NaAQKBgQDXwoBBn5y8ZfDYK16X +qiFG78zbi0Bmni8wmyPX4jcvSjA69GWJvx1XBXFFle/sDP74p+6Wv5suZTx93jMI +yaMs67vRzA7neLzFsT8R/QZb93bdvXPDPwORqGE5i9NnXPGzqPXh/UCkLW1u+4Lz +5iqeUj5L+RTP48rBJgO8rFPkCQKBgQDJa4kIf43FBhqHTvK0cgA+iEDw3linHZOV +sfzjU8N0VH4KTrTDABQkC+dtdKj52Ax8WSr93vXBK8bxR9KacQDL/AESKtown8j8 +R5Bp13mDS+y1VxphynK/99ZvP5g8mZArFhHpHzi8O1qArZrwG4LNCp9itYqmCMuR +gFNwf/ZCZwKBgDMzNLxd5BPRHRYvNINJHBx5S2PN57pyT0B5kEfqpq3SLR/QX0gQ +0iWUZQzeR9D8RIU9VKDxVyHrZC96SyIKt24xgqCGjALh4+oF5bGfGaM5VjvIeXAb +w/0MuAWv6Lrek3zO24qFTpGnNhDgHnNCa1qmqaHdudKbe8HaA4kCW+YBAoGAVci+ +7CenMaqP0eEF7WRARmGxhuSrzUEDglXz5r3eGMWDiNBMnGCEM3X+ctekwAQMDUnM +zaMP9921NT3prG1EcZw6uIoXs23aI9g24V0sG4dSoUkfq1aV2LytT2Q+alDc3fzg +U/FAMKr2uKc3vdt5seo8R8YZ7u0ABlApOVjGgTECgYAf7HvCi4SPe7vkaWA3XkYK +LQ1TFgKlcXHXdQA/EkvQ2bXiEDIvB+3jpYN9OUgzVA8AmA7V5ExLhz+QMBIwZQjN +xejgan72hzn01MCd3Ldg8KWfQ4Wvey8S4AHNYi1tj/0xOV1hUROIZFtdMVWxjQ6K +DyE+u6fwkPfMD9qNi/v7Nw== +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/apiclient_cert.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/apiclient_cert.pem index 9e305d4..1c210a3 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/apiclient_cert.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYjCCA8ugAwIBAgIDI9viMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDUwNjA1MTAwNloX -DTI2MDUwNDA1MTAwNlowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5LqR5a6256eR5oqA5pyJ6ZmQ5YWs5Y+4 -MREwDwYDVQQEEwgxMjA0MjQ0NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAKMJHRRqSqelvD7BJ/EsWXNkJEmOJW+dsB0/Zc4phMK+oh06FdNr57Ekk2Ga -5vo4fLIw0VEXN49P4XKZRhVKwupVGocIe97/ovt2vzg8uqD4H/Go9Dxc3bphGkzo -0s0ps5Gy5TW0zOVwotBxDwd7tMs2++JzJ2ZcnesqNfYiHYsTb+ljIAYP0bCaYGNi -3NDbaykV9f1BkfgddV1LPn1XGRsOQFMcsjhRGP8TFGs0aLU5Rhm0jimmF4yvZwS7 -81Ah8wBquTCwy9+qrW+SCHmMFpftPmcKWTqhb683GX99l1+wKhWhTvab1UH5eQPR -U+mk2Hak1kSFapTY1ojvlWerB/sCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ -YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud -DgQWBBQG9ruoebdmJpnT3uFhkzVHdpEtUDCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 -FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 -YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK -BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ -bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV -HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBX1xDB9Og/B9lQ -roNlzQcm/LEhRZ1YIgDY8SkuXRBcXRcxpUY45oI8XrpCYEGAfjIxuSC8v1kgduSR -Moy/06aaKT4AGO8z6q2jhBAywKEWGqqkPgiGe/meuba5z/0rSp32dC7upMVW4hlC -F9udaeeGcWiq4qi34nDvg10GgtIZEQ== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYjCCA8ugAwIBAgIDI9viMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDUwNjA1MTAwNloX +DTI2MDUwNDA1MTAwNlowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5LqR5a6256eR5oqA5pyJ6ZmQ5YWs5Y+4 +MREwDwYDVQQEEwgxMjA0MjQ0NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAKMJHRRqSqelvD7BJ/EsWXNkJEmOJW+dsB0/Zc4phMK+oh06FdNr57Ekk2Ga +5vo4fLIw0VEXN49P4XKZRhVKwupVGocIe97/ovt2vzg8uqD4H/Go9Dxc3bphGkzo +0s0ps5Gy5TW0zOVwotBxDwd7tMs2++JzJ2ZcnesqNfYiHYsTb+ljIAYP0bCaYGNi +3NDbaykV9f1BkfgddV1LPn1XGRsOQFMcsjhRGP8TFGs0aLU5Rhm0jimmF4yvZwS7 +81Ah8wBquTCwy9+qrW+SCHmMFpftPmcKWTqhb683GX99l1+wKhWhTvab1UH5eQPR +U+mk2Hak1kSFapTY1ojvlWerB/sCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ +YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud +DgQWBBQG9ruoebdmJpnT3uFhkzVHdpEtUDCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 +FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 +YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK +BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ +bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV +HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBX1xDB9Og/B9lQ +roNlzQcm/LEhRZ1YIgDY8SkuXRBcXRcxpUY45oI8XrpCYEGAfjIxuSC8v1kgduSR +Moy/06aaKT4AGO8z6q2jhBAywKEWGqqkPgiGe/meuba5z/0rSp32dC7upMVW4hlC +F9udaeeGcWiq4qi34nDvg10GgtIZEQ== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/apiclient_key.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/apiclient_key.pem index 61b83f2..59d3710 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/apiclient_key.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCjCR0Uakqnpbw+ -wSfxLFlzZCRJjiVvnbAdP2XOKYTCvqIdOhXTa+exJJNhmub6OHyyMNFRFzePT+Fy -mUYVSsLqVRqHCHve/6L7dr84PLqg+B/xqPQ8XN26YRpM6NLNKbORsuU1tMzlcKLQ -cQ8He7TLNvvicydmXJ3rKjX2Ih2LE2/pYyAGD9GwmmBjYtzQ22spFfX9QZH4HXVd -Sz59VxkbDkBTHLI4URj/ExRrNGi1OUYZtI4ppheMr2cEu/NQIfMAarkwsMvfqq1v -kgh5jBaX7T5nClk6oW+vNxl/fZdfsCoVoU72m9VB+XkD0VPppNh2pNZEhWqU2NaI -75Vnqwf7AgMBAAECggEAG1ZS3vJ3tCaxKuCefu0NzrBy+TZxhoatWiogOvJxRWpL -qpTrxfio7+YPJGWh50EDf6l535wB//DH/7w9qSJRDpPYj93XT2wT+xBNPfPI42bX -jGDlGx4DO9Y+X7kGZ8pfRsX1cwzu8mXxlvvuJjYS+aQtliny6FINVLpONAhCZehG -3G8GY3Gc7lOR0oNOOO13inL+BxJtsoqWfzXqXXT6hXuiXdBJ9fgQ35wpQwO9nxo2 -3BKuJD0z2z06bZS0Y+Vq4oy/SkhSV6lxpWWZxMkagrghqq4VpfDKC3bGpzDeHhFi -hW02Lq12zpFcavc6PlFMuE9cgu/CGClzF+54nc7FMQKBgQDWB6cMcFIBc/3MhvuZ -NKCNpu9QvI0ta5I+WxaLaDGeyOOqboV+K1hSezoXnWBCYEsHvr/QRLbZtKuIrXud -1obSbimPAf+oDleUQAC7b5xTQWhs0KsyPJ3oeV7N1Ihk+/X2eKYwLCRa5GAdbmor -Sws07VssbRY2KwgaePIV2UZw0wKBgQDDAYlRkJHYWF5rmn72WvA8uKDAjd+uoYzY -Pr4b/8yany3rnKMi2imbippHEVE2FWIGk/LleeGcdkNVquGFDgeHWqfPj2cdJ8f3 -pKvC6F63EKmSIidT0C4pBMOtBczXR8Kq6qH/sXpy1xtxbXtZ+Jp0C3bKwHtFd8fC -e7ifWUrTOQKBgCbWNKW5K+g/l+opBDaEqi2KARrxW9zGDD9sX+bj/T0Gzuj6LRb7 -3ob4/U2TrQfeWT8KidvM3DEc65Ndh3TYnJZKjxf4EN/52kJ4aqmYUxF4aO513tq6 -zRyGCYHn8ugAIF2c/ur215H2psowYuuALoRoHYcuND2YCVxkXelBB9spAoGAaNSH -nGhqbvI6eAAK5qbGZO4fxMPADqHcFFfOXUDrHegaiIGhFVhQa8Rb4X6GuNtP4hdg -yUn3JeRRmFkPeTash3ANrD/7/6lmD1Pf3hyK5kC3184ydBUC65wbEQWAM+7o0Hbn -9YvUNq46m4RuflRtu5p6Fs7YteSJZ5yZCFi5J8kCgYAlWHO1QiEC0ITue2aIKZhT -MmUzl601jG+/T6WoI50JB60RZt6SIPwF881pDt3UmPgAqIxVav5Dbh27P34r8dNE -4ACaxVFUJhjB0l4oWmSH72zibn5XtanoKPHyKQAn7/Pu7SzDrka5ulUn9tYsRmPW -Jfw2Cj+hnWXZZms+9YCboA== ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCjCR0Uakqnpbw+ +wSfxLFlzZCRJjiVvnbAdP2XOKYTCvqIdOhXTa+exJJNhmub6OHyyMNFRFzePT+Fy +mUYVSsLqVRqHCHve/6L7dr84PLqg+B/xqPQ8XN26YRpM6NLNKbORsuU1tMzlcKLQ +cQ8He7TLNvvicydmXJ3rKjX2Ih2LE2/pYyAGD9GwmmBjYtzQ22spFfX9QZH4HXVd +Sz59VxkbDkBTHLI4URj/ExRrNGi1OUYZtI4ppheMr2cEu/NQIfMAarkwsMvfqq1v +kgh5jBaX7T5nClk6oW+vNxl/fZdfsCoVoU72m9VB+XkD0VPppNh2pNZEhWqU2NaI +75Vnqwf7AgMBAAECggEAG1ZS3vJ3tCaxKuCefu0NzrBy+TZxhoatWiogOvJxRWpL +qpTrxfio7+YPJGWh50EDf6l535wB//DH/7w9qSJRDpPYj93XT2wT+xBNPfPI42bX +jGDlGx4DO9Y+X7kGZ8pfRsX1cwzu8mXxlvvuJjYS+aQtliny6FINVLpONAhCZehG +3G8GY3Gc7lOR0oNOOO13inL+BxJtsoqWfzXqXXT6hXuiXdBJ9fgQ35wpQwO9nxo2 +3BKuJD0z2z06bZS0Y+Vq4oy/SkhSV6lxpWWZxMkagrghqq4VpfDKC3bGpzDeHhFi +hW02Lq12zpFcavc6PlFMuE9cgu/CGClzF+54nc7FMQKBgQDWB6cMcFIBc/3MhvuZ +NKCNpu9QvI0ta5I+WxaLaDGeyOOqboV+K1hSezoXnWBCYEsHvr/QRLbZtKuIrXud +1obSbimPAf+oDleUQAC7b5xTQWhs0KsyPJ3oeV7N1Ihk+/X2eKYwLCRa5GAdbmor +Sws07VssbRY2KwgaePIV2UZw0wKBgQDDAYlRkJHYWF5rmn72WvA8uKDAjd+uoYzY +Pr4b/8yany3rnKMi2imbippHEVE2FWIGk/LleeGcdkNVquGFDgeHWqfPj2cdJ8f3 +pKvC6F63EKmSIidT0C4pBMOtBczXR8Kq6qH/sXpy1xtxbXtZ+Jp0C3bKwHtFd8fC +e7ifWUrTOQKBgCbWNKW5K+g/l+opBDaEqi2KARrxW9zGDD9sX+bj/T0Gzuj6LRb7 +3ob4/U2TrQfeWT8KidvM3DEc65Ndh3TYnJZKjxf4EN/52kJ4aqmYUxF4aO513tq6 +zRyGCYHn8ugAIF2c/ur215H2psowYuuALoRoHYcuND2YCVxkXelBB9spAoGAaNSH +nGhqbvI6eAAK5qbGZO4fxMPADqHcFFfOXUDrHegaiIGhFVhQa8Rb4X6GuNtP4hdg +yUn3JeRRmFkPeTash3ANrD/7/6lmD1Pf3hyK5kC3184ydBUC65wbEQWAM+7o0Hbn +9YvUNq46m4RuflRtu5p6Fs7YteSJZ5yZCFi5J8kCgYAlWHO1QiEC0ITue2aIKZhT +MmUzl601jG+/T6WoI50JB60RZt6SIPwF881pDt3UmPgAqIxVav5Dbh27P34r8dNE +4ACaxVFUJhjB0l4oWmSH72zibn5XtanoKPHyKQAn7/Pu7SzDrka5ulUn9tYsRmPW +Jfw2Cj+hnWXZZms+9YCboA== +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/rootca.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/rootca.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/证书使用说明.txt b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/证书使用说明.txt +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1336943701/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1352126501/apiclient_cert.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1352126501/apiclient_cert.pem index f1389fa..6074b64 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1352126501/apiclient_cert.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1352126501/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYjCCA8ugAwIBAgIDKzqrMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDYwNjA1MzAwNFoX -DTI2MDYwNDA1MzAwNFowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5LqR5a6256eR5oqA5pyJ6ZmQ5YWs5Y+4 -MREwDwYDVQQEEwgxMjcxNzUwODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMFQt5XNX8LigHtIrqhv8yGivPkRLPrsiNi1a2h8EYu3C409o/q4uwAuGH7s -Fl/7ccH/+fY1qmfDt2MR5dAMZqV3/l7RG4bEPtJTEwNd6nzFvYZDcv7/KSdGDeF4 -dhNpT9oE0LaiC6P0Zdeur3AA92WbH2eN80IARYHp7vQQ4mXpxIJSB7jK93jCeCee -Ss6ZZuk8PU/8b/B76XdwQ3R8eNvIqctjvWujVg/bA24TeGZEkBOHB4sXDpw8gHrX -7sxYKcNIW6ZIy9/MKCS3hWbojp2JQq2FBktArmZ8pO++P2xpy86BK+x+hHc+ewKK -dtOXGUI8Uxq08odZn8LzSpf9nJkCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ -YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud -DgQWBBTIHrH8dXCHClscuO+GWQNVDiL9hjCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 -FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 -YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK -BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ -bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV -HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBouw/N2u/qILi6 -rpxauVLzCLaDzMiewSpezEQq/jL44rxDkC6dvbphT7vYO487h1k2GfnbUA7R9Hsi -W6l4bfRdHOLFYmF5nuXJSrgtsjko+iUQ+MJm/M2pb8ndHzZb5jq2MdQAN1VlIxdo -uOgQ2R2OKSKNlQV6Ls4zHQ3uBPcd5g== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYjCCA8ugAwIBAgIDKzqrMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MDYwNjA1MzAwNFoX +DTI2MDYwNDA1MzAwNFowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5LqR5a6256eR5oqA5pyJ6ZmQ5YWs5Y+4 +MREwDwYDVQQEEwgxMjcxNzUwODCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMFQt5XNX8LigHtIrqhv8yGivPkRLPrsiNi1a2h8EYu3C409o/q4uwAuGH7s +Fl/7ccH/+fY1qmfDt2MR5dAMZqV3/l7RG4bEPtJTEwNd6nzFvYZDcv7/KSdGDeF4 +dhNpT9oE0LaiC6P0Zdeur3AA92WbH2eN80IARYHp7vQQ4mXpxIJSB7jK93jCeCee +Ss6ZZuk8PU/8b/B76XdwQ3R8eNvIqctjvWujVg/bA24TeGZEkBOHB4sXDpw8gHrX +7sxYKcNIW6ZIy9/MKCS3hWbojp2JQq2FBktArmZ8pO++P2xpy86BK+x+hHc+ewKK +dtOXGUI8Uxq08odZn8LzSpf9nJkCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ +YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud +DgQWBBTIHrH8dXCHClscuO+GWQNVDiL9hjCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 +FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 +YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK +BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ +bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV +HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBouw/N2u/qILi6 +rpxauVLzCLaDzMiewSpezEQq/jL44rxDkC6dvbphT7vYO487h1k2GfnbUA7R9Hsi +W6l4bfRdHOLFYmF5nuXJSrgtsjko+iUQ+MJm/M2pb8ndHzZb5jq2MdQAN1VlIxdo +uOgQ2R2OKSKNlQV6Ls4zHQ3uBPcd5g== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1352126501/apiclient_key.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1352126501/apiclient_key.pem index 847648f..fb9cf6e 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1352126501/apiclient_key.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1352126501/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDBULeVzV/C4oB7 -SK6ob/Mhorz5ESz67IjYtWtofBGLtwuNPaP6uLsALhh+7BZf+3HB//n2Napnw7dj -EeXQDGald/5e0RuGxD7SUxMDXep8xb2GQ3L+/yknRg3heHYTaU/aBNC2oguj9GXX -rq9wAPdlmx9njfNCAEWB6e70EOJl6cSCUge4yvd4wngnnkrOmWbpPD1P/G/we+l3 -cEN0fHjbyKnLY71ro1YP2wNuE3hmRJAThweLFw6cPIB61+7MWCnDSFumSMvfzCgk -t4Vm6I6diUKthQZLQK5mfKTvvj9sacvOgSvsfoR3PnsCinbTlxlCPFMatPKHWZ/C -80qX/ZyZAgMBAAECggEAGMoVAKy5XvBUsXp8izTv5JxNx1KghfzW/5MkFt3yEgyC -+rWw1XHi6P8APSZhKCXCTLJah2wSUgQS/C1LXwZ4Ezfz8oy2Du4TcD0e7wuYCjAB -QbpcgL6PtG2TUhp0acDTcI21hfX5sCii9ql77czx7KGbwVe+nfQS9bnd3oZbwd2j -OXFqTRcBtDFyQL20DhNe70EtNOBwMfLpPKRv2sTQ4ONuRHj6PxebAntSUqunpZpb -Thyh4vd13Tr7p7jt4jPLsHwfrAgs+m7T7PojcfDtJhYVloXHff12v75zTzbLXzAq -K1OleCt2XLVA/Dc9ueq9lJwCBU6QKx4nLRQNT8tRQQKBgQDiL8QHyRVVRXwOIJFI -nq8ao/ZRIjaAoc4ykb7RHRD9M9qy+PShyrQPH9yFhaZJhRSAoktRAaZMgKw+qKx2 -AFI81uTi8skZ3EEY7/kJ4YBmZFHtvt25z+K/1TCY6e8X41IkTmNZzr6X6LF7AxIb -qvDVn3nxEJi2UIpuaeQC4UA8tQKBgQDay8XQN82NY41gVcPgUgy/8e00P+DUjNj+ -rbbqJBoZo6fOXzCjurWzj6oHC/IMHXDa6X91ugQq3/RjXkaYQodkFLm79LEDNMZy -4fJ/iiXHQ3mBJOUDgLL1WqxVsHPP/Tn5Rm17+eX8JeVovcmwyCH0NiU+Df3ZtfJW -K0TR5Ijy1QKBgH0kuG0mUGtReoXGdxua0H8I4KubJlSdMZzBDrZcQp4VJpeHLrKl -mGIV2sj1XT+oJePV5532L7B8MNCqOmE/ZEDNFO6MLb/lIQ9PFpbk8Um1j67ev4aj -Am3o4m54YBTzbOsxg76YqNMbp7bLyCUOuxk2lx1NdXDJtw3IAKOnRQdRAoGBANP9 -H5pQlv5o+G/gaTqNBQFs29EGG0aVeSG5GkLd29P/tvTDUhMxMh/aEHlnX4vRcqkI -F5DvPF52QwmMLIYV36xeUF8GBAQBPE3PEe/04AmjHLS+FI5CQiJrShJ0NqHMzkDx -td6rD+Qwq4fCawq3vf4qAAeR8uTf3v8SSUm8TdxJAoGAc2vfH5EeriwsKFhNbgg0 -dUvi0HjfksaUnLDTp6I2ZwgIIMohiYyvK2G0nMOUqjXaVWISebmXI9l7dD0WWiB1 -5oEdvzYSgXts3tG8PsluIYEdN/mMwnOSpZlMda0wK5SEXf7Okjn3b+I6cxryrWsk -Uq3cA5DteK4q4AskLnpHK3w= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDBULeVzV/C4oB7 +SK6ob/Mhorz5ESz67IjYtWtofBGLtwuNPaP6uLsALhh+7BZf+3HB//n2Napnw7dj +EeXQDGald/5e0RuGxD7SUxMDXep8xb2GQ3L+/yknRg3heHYTaU/aBNC2oguj9GXX +rq9wAPdlmx9njfNCAEWB6e70EOJl6cSCUge4yvd4wngnnkrOmWbpPD1P/G/we+l3 +cEN0fHjbyKnLY71ro1YP2wNuE3hmRJAThweLFw6cPIB61+7MWCnDSFumSMvfzCgk +t4Vm6I6diUKthQZLQK5mfKTvvj9sacvOgSvsfoR3PnsCinbTlxlCPFMatPKHWZ/C +80qX/ZyZAgMBAAECggEAGMoVAKy5XvBUsXp8izTv5JxNx1KghfzW/5MkFt3yEgyC ++rWw1XHi6P8APSZhKCXCTLJah2wSUgQS/C1LXwZ4Ezfz8oy2Du4TcD0e7wuYCjAB +QbpcgL6PtG2TUhp0acDTcI21hfX5sCii9ql77czx7KGbwVe+nfQS9bnd3oZbwd2j +OXFqTRcBtDFyQL20DhNe70EtNOBwMfLpPKRv2sTQ4ONuRHj6PxebAntSUqunpZpb +Thyh4vd13Tr7p7jt4jPLsHwfrAgs+m7T7PojcfDtJhYVloXHff12v75zTzbLXzAq +K1OleCt2XLVA/Dc9ueq9lJwCBU6QKx4nLRQNT8tRQQKBgQDiL8QHyRVVRXwOIJFI +nq8ao/ZRIjaAoc4ykb7RHRD9M9qy+PShyrQPH9yFhaZJhRSAoktRAaZMgKw+qKx2 +AFI81uTi8skZ3EEY7/kJ4YBmZFHtvt25z+K/1TCY6e8X41IkTmNZzr6X6LF7AxIb +qvDVn3nxEJi2UIpuaeQC4UA8tQKBgQDay8XQN82NY41gVcPgUgy/8e00P+DUjNj+ +rbbqJBoZo6fOXzCjurWzj6oHC/IMHXDa6X91ugQq3/RjXkaYQodkFLm79LEDNMZy +4fJ/iiXHQ3mBJOUDgLL1WqxVsHPP/Tn5Rm17+eX8JeVovcmwyCH0NiU+Df3ZtfJW +K0TR5Ijy1QKBgH0kuG0mUGtReoXGdxua0H8I4KubJlSdMZzBDrZcQp4VJpeHLrKl +mGIV2sj1XT+oJePV5532L7B8MNCqOmE/ZEDNFO6MLb/lIQ9PFpbk8Um1j67ev4aj +Am3o4m54YBTzbOsxg76YqNMbp7bLyCUOuxk2lx1NdXDJtw3IAKOnRQdRAoGBANP9 +H5pQlv5o+G/gaTqNBQFs29EGG0aVeSG5GkLd29P/tvTDUhMxMh/aEHlnX4vRcqkI +F5DvPF52QwmMLIYV36xeUF8GBAQBPE3PEe/04AmjHLS+FI5CQiJrShJ0NqHMzkDx +td6rD+Qwq4fCawq3vf4qAAeR8uTf3v8SSUm8TdxJAoGAc2vfH5EeriwsKFhNbgg0 +dUvi0HjfksaUnLDTp6I2ZwgIIMohiYyvK2G0nMOUqjXaVWISebmXI9l7dD0WWiB1 +5oEdvzYSgXts3tG8PsluIYEdN/mMwnOSpZlMda0wK5SEXf7Okjn3b+I6cxryrWsk +Uq3cA5DteK4q4AskLnpHK3w= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/apiclient_cert.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/apiclient_cert.pem index 9830d7b..bfa8fd1 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/apiclient_cert.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEYjCCA8ugAwIBAgIDXpxMMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTEwNzAzMDAwOVoX -DTI2MTEwNTAzMDAwOVowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5aSp55ub572R57uc5pyJ6ZmQ5YWs5Y+4 -MREwDwYDVQQEEwgxNTE4OTU1NDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMvhG0BGBoncCvsq4SPNgKrUb++quF++L7+LR//zQ2WvFYbwwAcEadPH5gMh -eTCoMKYsTFCOndlnhEO11ViGxoYeF9TmyTBGddk70HlAs5/kqerNRIvIxovvKhJ1 -AX1Kdt6QupKISUaQpX8DrzAuyGT+H2rlvUNiw5BlwncKmEY7NmYOum5n/T6EbSHw -n8+/ZQc0pPK9C+QzmbRLL0GssFxPVuBQGAEgdCnNJq5Skzg7wyChZGZm6S4LjHqU -f1+Sv6SuOO7VKrrbvwneT3qbrn2IQJHqVEooP+j3/9QJ6R89AO1eEIIrlnk3Q5PE -wTPPWYCakrfvG9DQ3/ctN8R/LEkCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ -YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud -DgQWBBQSWXDhGBe7ETTFO6eJXF4IvRDl4jCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 -FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 -YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK -BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ -bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV -HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAv4TowAS6g2zac -SCC4yt4tgz4kqZNGGWYzbjV1r2GOJCyHClr6d+O+iFimogCmTqObhzQcKqPq0PuH -5fTO6L2vfhfrBOTEEAwOzCRyHgt+QdN0JWWgXjTWSIfv1+Y1Dyf446RrI14JvRuL -Q5ayU6KR+9z8HEv9utjEA51lMg17Wg== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEYjCCA8ugAwIBAgIDXpxMMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTEwNzAzMDAwOVoX +DTI2MTEwNTAzMDAwOVowgZIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEnMCUGA1UEAxQe5rGf6KW/5aSp55ub572R57uc5pyJ6ZmQ5YWs5Y+4 +MREwDwYDVQQEEwgxNTE4OTU1NDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMvhG0BGBoncCvsq4SPNgKrUb++quF++L7+LR//zQ2WvFYbwwAcEadPH5gMh +eTCoMKYsTFCOndlnhEO11ViGxoYeF9TmyTBGddk70HlAs5/kqerNRIvIxovvKhJ1 +AX1Kdt6QupKISUaQpX8DrzAuyGT+H2rlvUNiw5BlwncKmEY7NmYOum5n/T6EbSHw +n8+/ZQc0pPK9C+QzmbRLL0GssFxPVuBQGAEgdCnNJq5Skzg7wyChZGZm6S4LjHqU +f1+Sv6SuOO7VKrrbvwneT3qbrn2IQJHqVEooP+j3/9QJ6R89AO1eEIIrlnk3Q5PE +wTPPWYCakrfvG9DQ3/ctN8R/LEkCAwEAAaOCAUYwggFCMAkGA1UdEwQCMAAwLAYJ +YIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUiMB0GA1Ud +DgQWBBQSWXDhGBe7ETTFO6eJXF4IvRDl4jCBvwYDVR0jBIG3MIG0gBQ+BSb2ImK0 +FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNVBAgTCUd1 +YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNlbnQxDDAK +BgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3DQEJARYQ +bW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIGwDAWBgNV +HSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAv4TowAS6g2zac +SCC4yt4tgz4kqZNGGWYzbjV1r2GOJCyHClr6d+O+iFimogCmTqObhzQcKqPq0PuH +5fTO6L2vfhfrBOTEEAwOzCRyHgt+QdN0JWWgXjTWSIfv1+Y1Dyf446RrI14JvRuL +Q5ayU6KR+9z8HEv9utjEA51lMg17Wg== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/apiclient_key.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/apiclient_key.pem index 60f3e6e..bddefef 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/apiclient_key.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDL4RtARgaJ3Ar7 -KuEjzYCq1G/vqrhfvi+/i0f/80NlrxWG8MAHBGnTx+YDIXkwqDCmLExQjp3ZZ4RD -tdVYhsaGHhfU5skwRnXZO9B5QLOf5KnqzUSLyMaL7yoSdQF9SnbekLqSiElGkKV/ -A68wLshk/h9q5b1DYsOQZcJ3CphGOzZmDrpuZ/0+hG0h8J/Pv2UHNKTyvQvkM5m0 -Sy9BrLBcT1bgUBgBIHQpzSauUpM4O8MgoWRmZukuC4x6lH9fkr+krjju1Sq6278J -3k96m659iECR6lRKKD/o9//UCekfPQDtXhCCK5Z5N0OTxMEzz1mAmpK37xvQ0N/3 -LTfEfyxJAgMBAAECggEBAK4Ei4AGxRnySSUs6lHm3AXzoT9N1mVSLest9NyQRFyM -XrF42E6lA7cSDk9pyMkxJaUQdmrj7/Namdg5YcpX7ycWlHzSJ7Me0QQEO+LiyO6W -/Dk/z1wImP9jueNbH1RTtLYvji/4R6MFX1zURjm4FK+vAB37zdmweP/M+3kj/+kg -pdY//QxrpJcoS2EAKuWK1UDFqX0S0yp+VPym19349RkZWIrwfSYMmAlD3NZS345o -faSSHkkbUcQ0gQfGD3La6hV/V4GQQJmu2otX18MKaJ+Pfh0aFDqYSKd5jtEHc0zm -QvhzpyW3QApM2O+2LfTTEA/LEf9jqyrN7zrntRqYiAECgYEA+N8nJ7k4I6mEm5c7 -akMa6r6QC+sIL4aJZbNosMRnNR9GakBaXp9kVNAeOnB6YTKWsQZPRtcV74fhGt2p -Sy2vy05QgPdmNLNY9I3nkFLDcPgm4Fvm5T9tS6qbVL5bq3e5l+8lLx6kmM8EKJxh -lXRUazmfIhikD9JzADAc8krHHIECgYEA0bgMO+h3zAXVU/BFga0XUQ0k8u/CxbJx -MQiL7DiHV2d5qdDcDLLw/WAEgxBPSRdDnAPlo7NRG8YLX3YYj33kLTioecSP7euK -t2Y7ni66Gd7JSDWJXQaXPhdOIcvZ9Do6hoRwVMGG1h3oXZHy5t37ggezz0C+iWfe -QPp/w5DQS8kCgYBi0/LvklzZxJJ1WuvsObOxrnTzVqUMgmeDbGhRcdzuOnoy7VU1 -qCQmjfLDEDF48abnq3LF1dnPIe1hRs7YnM7ndDUB0bzThrj3fHaNWGBmNxTxGW2q -cbKMTraaQ3GRuNyJmhzxBkEksWicW+VgfS6c2ef4mUJlShQC6hhEmy9QgQKBgQDA -+57uZd4PNXL4GcqsKK6jG/hbQTw3FhxI5bd0eRQ53vM6zAIiAWv3jKq6PIDpHmpN -n9xqRjEl4JlIj/DL4indXxzRaIqVgkEUwROtXQxNkBAizXkIzG7SaTmxqdd3gTmn -3SlNJQTB9aWErTAbODwfjJzu44IyCQ2hN6HoQVMb2QKBgEBdrjQGvdjlrn5jP1OG -dWbiSSTmDLSNVO4ck3HDWD4ngrpyr/W3HOnC1mrTY9yWlIsDxAUedKmRTqkCYzV/ -WdHA55LgvLWIUDnrdk/NFmLs/y4pW63rq/3uvaOT6zEOuz/UfA5YiE0NsiTbGhu5 -Vr0Uc1b37c+KPUm2XbIFrY+V ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDL4RtARgaJ3Ar7 +KuEjzYCq1G/vqrhfvi+/i0f/80NlrxWG8MAHBGnTx+YDIXkwqDCmLExQjp3ZZ4RD +tdVYhsaGHhfU5skwRnXZO9B5QLOf5KnqzUSLyMaL7yoSdQF9SnbekLqSiElGkKV/ +A68wLshk/h9q5b1DYsOQZcJ3CphGOzZmDrpuZ/0+hG0h8J/Pv2UHNKTyvQvkM5m0 +Sy9BrLBcT1bgUBgBIHQpzSauUpM4O8MgoWRmZukuC4x6lH9fkr+krjju1Sq6278J +3k96m659iECR6lRKKD/o9//UCekfPQDtXhCCK5Z5N0OTxMEzz1mAmpK37xvQ0N/3 +LTfEfyxJAgMBAAECggEBAK4Ei4AGxRnySSUs6lHm3AXzoT9N1mVSLest9NyQRFyM +XrF42E6lA7cSDk9pyMkxJaUQdmrj7/Namdg5YcpX7ycWlHzSJ7Me0QQEO+LiyO6W +/Dk/z1wImP9jueNbH1RTtLYvji/4R6MFX1zURjm4FK+vAB37zdmweP/M+3kj/+kg +pdY//QxrpJcoS2EAKuWK1UDFqX0S0yp+VPym19349RkZWIrwfSYMmAlD3NZS345o +faSSHkkbUcQ0gQfGD3La6hV/V4GQQJmu2otX18MKaJ+Pfh0aFDqYSKd5jtEHc0zm +QvhzpyW3QApM2O+2LfTTEA/LEf9jqyrN7zrntRqYiAECgYEA+N8nJ7k4I6mEm5c7 +akMa6r6QC+sIL4aJZbNosMRnNR9GakBaXp9kVNAeOnB6YTKWsQZPRtcV74fhGt2p +Sy2vy05QgPdmNLNY9I3nkFLDcPgm4Fvm5T9tS6qbVL5bq3e5l+8lLx6kmM8EKJxh +lXRUazmfIhikD9JzADAc8krHHIECgYEA0bgMO+h3zAXVU/BFga0XUQ0k8u/CxbJx +MQiL7DiHV2d5qdDcDLLw/WAEgxBPSRdDnAPlo7NRG8YLX3YYj33kLTioecSP7euK +t2Y7ni66Gd7JSDWJXQaXPhdOIcvZ9Do6hoRwVMGG1h3oXZHy5t37ggezz0C+iWfe +QPp/w5DQS8kCgYBi0/LvklzZxJJ1WuvsObOxrnTzVqUMgmeDbGhRcdzuOnoy7VU1 +qCQmjfLDEDF48abnq3LF1dnPIe1hRs7YnM7ndDUB0bzThrj3fHaNWGBmNxTxGW2q +cbKMTraaQ3GRuNyJmhzxBkEksWicW+VgfS6c2ef4mUJlShQC6hhEmy9QgQKBgQDA ++57uZd4PNXL4GcqsKK6jG/hbQTw3FhxI5bd0eRQ53vM6zAIiAWv3jKq6PIDpHmpN +n9xqRjEl4JlIj/DL4indXxzRaIqVgkEUwROtXQxNkBAizXkIzG7SaTmxqdd3gTmn +3SlNJQTB9aWErTAbODwfjJzu44IyCQ2hN6HoQVMb2QKBgEBdrjQGvdjlrn5jP1OG +dWbiSSTmDLSNVO4ck3HDWD4ngrpyr/W3HOnC1mrTY9yWlIsDxAUedKmRTqkCYzV/ +WdHA55LgvLWIUDnrdk/NFmLs/y4pW63rq/3uvaOT6zEOuz/UfA5YiE0NsiTbGhu5 +Vr0Uc1b37c+KPUm2XbIFrY+V +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/rootca.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/rootca.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/证书使用说明.txt b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/证书使用说明.txt +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1399351902/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/apiclient_cert.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/apiclient_cert.pem index 006c695..79d9ab3 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/apiclient_cert.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/apiclient_cert.pem @@ -1,26 +1,26 @@ ------BEGIN CERTIFICATE----- -MIIEazCCA9SgAwIBAgIDdCZUMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD -TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE -ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w -HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTIzMDA3NTA1M1oX -DTI2MTIyODA3NTA1M1owgZsxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv -bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL -EwVNTVBheTEwMC4GA1UEAxQn5rGf6KW/5riU5LmQ5a62572R57uc56eR5oqA5pyJ -6ZmQ5YWs5Y+4MREwDwYDVQQEEwgxNzY2NTIwMjCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKHpH7LqOvYdWFl3mLUc7gG8/9E90d0gN83xhWvegah7VT3s -oOJoygX4599jcgVFZXVWiyEzqTRZZQ7f5FeDSb9ZynBg6fanYb1C/FqswN3pYJWy -d+a+Op2XsT7QoSK+4Eev/vqP6OX9xt3Kys4tu2190XvScI2Gsk5So31zkrIkHX3W -HLCa+J/cI2cbcR4pSsJRBGgvLNxbfes98xUPqI9j9Ui0KT/5+4qgmvKbXuwvmOYQ -h9m62+K4H+33V/ANetNouIJWh92LSorlDzRtazZSMth4utTw9WRy0mVRu7qd6s7A -aMv+uslrrRnzIbjf0cZDUAXRn0U3POwIkaIgpp8CAwEAAaOCAUYwggFCMAkGA1Ud -EwQCMAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNh -dGUiMB0GA1UdDgQWBBTHAqvjBd+m7degGIxTjZBKj22lkzCBvwYDVR0jBIG3MIG0 -gBQ+BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQ -BgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1Rl -bmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqG -SIb3DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQE -AwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAa -caf82+6e5AgCTOyP6Ozq1+ao1nWVjzgMy4yRKmsUUczf/v+rUdz8U7UFZ1ICN3NY -bs57gJ/ZLSHtCk/L6AkvBwY+ri0iC2oD88AiMjdycgyjHHoheEYSV6T3qLwkMqZY -FCXJMDqIgoakpVv+l+du1kJVoOwAY1M9SHN791z5nw== ------END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIEazCCA9SgAwIBAgIDdCZUMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD +TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE +ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w +HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE2MTIzMDA3NTA1M1oX +DTI2MTIyODA3NTA1M1owgZsxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv +bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL +EwVNTVBheTEwMC4GA1UEAxQn5rGf6KW/5riU5LmQ5a62572R57uc56eR5oqA5pyJ +6ZmQ5YWs5Y+4MREwDwYDVQQEEwgxNzY2NTIwMjCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAKHpH7LqOvYdWFl3mLUc7gG8/9E90d0gN83xhWvegah7VT3s +oOJoygX4599jcgVFZXVWiyEzqTRZZQ7f5FeDSb9ZynBg6fanYb1C/FqswN3pYJWy +d+a+Op2XsT7QoSK+4Eev/vqP6OX9xt3Kys4tu2190XvScI2Gsk5So31zkrIkHX3W +HLCa+J/cI2cbcR4pSsJRBGgvLNxbfes98xUPqI9j9Ui0KT/5+4qgmvKbXuwvmOYQ +h9m62+K4H+33V/ANetNouIJWh92LSorlDzRtazZSMth4utTw9WRy0mVRu7qd6s7A +aMv+uslrrRnzIbjf0cZDUAXRn0U3POwIkaIgpp8CAwEAAaOCAUYwggFCMAkGA1Ud +EwQCMAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNh +dGUiMB0GA1UdDgQWBBTHAqvjBd+m7degGIxTjZBKj22lkzCBvwYDVR0jBIG3MIG0 +gBQ+BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQ +BgNVBAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1Rl +bmNlbnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqG +SIb3DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQE +AwIGwDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQAa +caf82+6e5AgCTOyP6Ozq1+ao1nWVjzgMy4yRKmsUUczf/v+rUdz8U7UFZ1ICN3NY +bs57gJ/ZLSHtCk/L6AkvBwY+ri0iC2oD88AiMjdycgyjHHoheEYSV6T3qLwkMqZY +FCXJMDqIgoakpVv+l+du1kJVoOwAY1M9SHN791z5nw== +-----END CERTIFICATE----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/apiclient_key.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/apiclient_key.pem index fd1b6d2..dbb8d8d 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/apiclient_key.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/apiclient_key.pem @@ -1,28 +1,28 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCh6R+y6jr2HVhZ -d5i1HO4BvP/RPdHdIDfN8YVr3oGoe1U97KDiaMoF+OffY3IFRWV1VoshM6k0WWUO -3+RXg0m/WcpwYOn2p2G9QvxarMDd6WCVsnfmvjqdl7E+0KEivuBHr/76j+jl/cbd -ysrOLbttfdF70nCNhrJOUqN9c5KyJB191hywmvif3CNnG3EeKUrCUQRoLyzcW33r -PfMVD6iPY/VItCk/+fuKoJrym17sL5jmEIfZutviuB/t91fwDXrTaLiCVofdi0qK -5Q80bWs2UjLYeLrU8PVkctJlUbu6nerOwGjL/rrJa60Z8yG439HGQ1AF0Z9FNzzs -CJGiIKafAgMBAAECggEAahlcPmAjlxgPx0EJ/tUgWl9BvBoopiDwsLHuXouGp6N6 -boPbwcItcNB1EfwWwcGCBOxba7xwyu8xvBeXiIluEEiE0jOP3aQ99kopGDpQgJro -QfCbhcduncrDyYfpr90pF5ELI6KeWeh9IuY7E/T/93YVinCSdQupWI3quNC9dqIN -EgYKDctBFGe+f1KtzcJfUWDeD8MWTOqhDnt77gxekFxli4O//ARDRN6i1mZjU/Bo -GH02DsdK/rA12qGhrfJP6sfyNoBlTBIurUT7VG9AIT2UknG+uH4qLGCEMU09cKzg -F1cH+6qsI6s03tfQK8voYtGvK4fg1KXrolaQgL4mQQKBgQDQhOjUdpfsz1KyRZKd -s41aovGi1dkzZS4AXWbIGW1ovB7IdbGd/NZq7N194SbG5+sn7JFED6statvV/gwa -7XviGWAWh4AWnQT3A+EH6x0izRLs3iQB3x6JnL6tDdA3XfcwvSAUjicHP+HTfJPK -6zqY5Mihz07r6lt6tg01DYOnjwKBgQDGx0oI0JQML6tLfK7EReBmOQ0lmbh5Jkst -Hzm2V2Uuc11FGQ47AU3wlMkWk5OCURgOQWoZnxYlAhy2OB8MnAQku0ZAWSwjeHEW -vZu+XQFVFMs23FVb/dD5eB7eJSCNKSugzhHgs6nNj5MreHU+3cmJDTJThwBU+kY1 -QZGe8TUH8QKBgQCBFBVxGCy5yik98/Vrq+9v0PhVvZ1jxFlynl72tU7WC8Xef4TA -8PfmXtRJjSvM61nVcAsIn85uIf0N/eKOdL5AW0bxC1YOKYseQgd2OGPj3CDAAk81 -3WFw/FfIlolzDLbtM9X9A3ZDdZccrLxsW6r9ZHqSN9t6DKwuTS3lzoTWHwKBgBdd -HzeQBIa2J6UUv5n0OJ7rP79WpRcgSB/Cls720L638pOHkWOgEKAhbM1JhUIA9Bng -2G6wgzLQX72PNR8PS3Fhza0MjiKRKoGowaCLX/e3HPeSyDmqyKA53S7xIDVXTHh3 -ICTQGTo/EOZAH0/HU8PXGD43FPPoAs6JqWsMINaRAoGAJA7PlrCzd4rbm0IOFqj+ -rsF16/NqS3GN34j74JWvTxkDew7sa2hmsndZAVsn+6l7PT3pxzRiq0lDFt8NiciO -oc4dTRcvKFQMcfClYlE9/PckFKZpCl/XDfNirwEJilTY4E5kLWG1Jsrf7k5F/Q99 -AY3pNzVB+L03PIBLjvAdBXI= ------END PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCh6R+y6jr2HVhZ +d5i1HO4BvP/RPdHdIDfN8YVr3oGoe1U97KDiaMoF+OffY3IFRWV1VoshM6k0WWUO +3+RXg0m/WcpwYOn2p2G9QvxarMDd6WCVsnfmvjqdl7E+0KEivuBHr/76j+jl/cbd +ysrOLbttfdF70nCNhrJOUqN9c5KyJB191hywmvif3CNnG3EeKUrCUQRoLyzcW33r +PfMVD6iPY/VItCk/+fuKoJrym17sL5jmEIfZutviuB/t91fwDXrTaLiCVofdi0qK +5Q80bWs2UjLYeLrU8PVkctJlUbu6nerOwGjL/rrJa60Z8yG439HGQ1AF0Z9FNzzs +CJGiIKafAgMBAAECggEAahlcPmAjlxgPx0EJ/tUgWl9BvBoopiDwsLHuXouGp6N6 +boPbwcItcNB1EfwWwcGCBOxba7xwyu8xvBeXiIluEEiE0jOP3aQ99kopGDpQgJro +QfCbhcduncrDyYfpr90pF5ELI6KeWeh9IuY7E/T/93YVinCSdQupWI3quNC9dqIN +EgYKDctBFGe+f1KtzcJfUWDeD8MWTOqhDnt77gxekFxli4O//ARDRN6i1mZjU/Bo +GH02DsdK/rA12qGhrfJP6sfyNoBlTBIurUT7VG9AIT2UknG+uH4qLGCEMU09cKzg +F1cH+6qsI6s03tfQK8voYtGvK4fg1KXrolaQgL4mQQKBgQDQhOjUdpfsz1KyRZKd +s41aovGi1dkzZS4AXWbIGW1ovB7IdbGd/NZq7N194SbG5+sn7JFED6statvV/gwa +7XviGWAWh4AWnQT3A+EH6x0izRLs3iQB3x6JnL6tDdA3XfcwvSAUjicHP+HTfJPK +6zqY5Mihz07r6lt6tg01DYOnjwKBgQDGx0oI0JQML6tLfK7EReBmOQ0lmbh5Jkst +Hzm2V2Uuc11FGQ47AU3wlMkWk5OCURgOQWoZnxYlAhy2OB8MnAQku0ZAWSwjeHEW +vZu+XQFVFMs23FVb/dD5eB7eJSCNKSugzhHgs6nNj5MreHU+3cmJDTJThwBU+kY1 +QZGe8TUH8QKBgQCBFBVxGCy5yik98/Vrq+9v0PhVvZ1jxFlynl72tU7WC8Xef4TA +8PfmXtRJjSvM61nVcAsIn85uIf0N/eKOdL5AW0bxC1YOKYseQgd2OGPj3CDAAk81 +3WFw/FfIlolzDLbtM9X9A3ZDdZccrLxsW6r9ZHqSN9t6DKwuTS3lzoTWHwKBgBdd +HzeQBIa2J6UUv5n0OJ7rP79WpRcgSB/Cls720L638pOHkWOgEKAhbM1JhUIA9Bng +2G6wgzLQX72PNR8PS3Fhza0MjiKRKoGowaCLX/e3HPeSyDmqyKA53S7xIDVXTHh3 +ICTQGTo/EOZAH0/HU8PXGD43FPPoAs6JqWsMINaRAoGAJA7PlrCzd4rbm0IOFqj+ +rsF16/NqS3GN34j74JWvTxkDew7sa2hmsndZAVsn+6l7PT3pxzRiq0lDFt8NiciO +oc4dTRcvKFQMcfClYlE9/PckFKZpCl/XDfNirwEJilTY4E5kLWG1Jsrf7k5F/Q99 +AY3pNzVB+L03PIBLjvAdBXI= +-----END PRIVATE KEY----- diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/rootca.pem b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/rootca.pem index 7a36225..b5dd02f 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/rootca.pem +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/rootca.pem @@ -1,19 +1,19 @@ ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV -UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy -dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 -MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx -dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B -AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f -BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A -cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC -AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ -MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm -aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw -ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj -IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF -MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA -A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y -7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh -1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 +-----BEGIN CERTIFICATE----- +MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV +UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy +dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1 +MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx +dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B +AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f +BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A +cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC +AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ +MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm +aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw +ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj +IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF +MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA +A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y +7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh +1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4 -----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/证书使用说明.txt b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/证书使用说明.txt index e8a73dd..f016323 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/证书使用说明.txt +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/cert/1430158002/证书使用说明.txt @@ -1,20 +1,20 @@ -欢迎使用微信支付! -微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 -证书属于敏感信息,请妥善保管不要泄露和被他人复制。 -不同开发语言下的证书格式不同,以下为说明指引: - 证书pkcs12格式(apiclient_cert.p12) - 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 - 部分安全性要求较高的API需要使用该证书来确认您的调用身份 - windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) - 证书pem格式(apiclient_cert.pem) - 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem - 证书密钥pem格式(apiclient_key.pem) - 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 - 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 - 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem - CA证书(rootca.pem) - 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 - 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 +欢迎使用微信支付! +微信支付API共四份(证书pkcs12格式、证书pem格式、证书密钥pem格式、CA证书),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户ID(如:10010000) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem + CA证书(rootca.pem) + 微信支付api服务器上也部署了证明微信支付身份的服务器证书,您在使用api进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/model/agent.php.bak b/codes/agent/game-docker/dlweb/api/lib/1.0/model/agent.php.bak index 0be1339..b3c7ca8 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/model/agent.php.bak +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/model/agent.php.bak @@ -1,3521 +1,3521 @@ -biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - $channelData = $this->PDO_Request(' - SELECT - a.agen_agentid, a.agen_name, a.agen_server, - b.agch_channelid, b.agch_channelname, b.agch_service_tel, b.agch_service_wechat, - b.agch_youle_appid, b.agch_youle_devkey, b.agch_youle_busiid, b.agch_pay_appid, b.agch_pay_devkey, - b.agch_pay_marketid - FROM - agent a - LEFT JOIN agent_channel b ON a.agen_agentid=b.agch_agentid - WHERE - a.agen_agentid=? AND b.agch_channelid=? - ', $agentID, $channelID); - - if (!is_array($channelData)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($channelData) < 1) - { - $outParam->SetErrors(ERRORCODE_NODATAERROR, ERRORINFO_NODATAERROR); - return false; - } - - $db_agent_info = $this->PDO_Request(' - SELECT - html_buyroomcard, logo - FROM - config_agent - WHERE - agent_id=?', $agentID); - - if (!is_array($db_agent_info)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($db_agent_info) < 1) - { - $outParam->SetErrors(ERRORCODE_AGENTNOTEXISTERROR, ERRORINFO_AGENTNOTEXISTERROR); - return false; - } - - $outParam->biz_content = array( - 'state' => 0, - 'error' => '', - 'agentid' => $channelData[0]['agen_agentid'], - 'agentname' => $channelData[0]['agen_name'], - 'agentlogo' => $db_agent_info[0]['logo'], - 'urlserver' => $channelData[0]['agen_server'], - 'channelid' => $channelData[0]['agch_channelid'], - 'channeltel' => $channelData[0]['agch_service_tel'], - 'channelwechat' => $channelData[0]['agch_service_wechat'], - 'html_buyroomcard' => $db_agent_info[0]['html_buyroomcard'], - 'youle_appid' => $channelData[0]['agch_youle_appid'], - 'youle_devkey' => $channelData[0]['agch_youle_devkey'], - 'youle_busiid' => $channelData[0]['agch_youle_busiid'], - 'youle_appid_pay' => $channelData[0]['agch_pay_appid'], - 'youle_devkey_pay' => $channelData[0]['agch_pay_devkey'], - 'youle_busiid_pay' => $channelData[0]['agch_pay_marketid'], - ); - - return true; - - } - - - /** - * 查询推荐人 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function recommend($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $db_data = $this->PDO_Request(' - SELECT - saus_nickname, saus_avatar - FROM - sales_user - WHERE - saus_agentid = ? and saus_salesid = ?;', $agentID, $salesID); - - if (!is_array($db_data)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($db_data) < 1) - { - $outParam->biz_content = array( - 'state' => 1, - 'error' => '未查到推荐人', - ); - return true; - } - - $outParam->biz_content = array( - 'state' => 0, - 'salesid' => $salesID, - 'name' => $db_data[0]['saus_nickname'], - 'avatar' => $db_data[0]['saus_avatar'], - ); - return true; - } - - /** - * 绑定推荐人 代理绑定代理 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function bindRecommend($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $db_data = $this->PDO_Request( - 'call cp_sales_binding_parent(?,?,?);', - $agentID, - $openID, - $salesID - ); - - if (!is_array($db_data) || count($db_data) < 1) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (!isset($db_data[0]['result'])) - { - return false; - } - - $res_flag = intval($db_data[0]['result']); - - if ($res_flag != 0) - { - $outParam->biz_content = array( - 'state' => $res_flag, - 'error' => isset($db_data[0]['error']) ? $db_data[0]['error'] : '', - ); - - if ($res_flag == 2) - { - $outParam->biz_content['salesid'] = isset($db_data[0]['salesid']) ? $db_data[0]['salesid'] : ''; - $outParam->biz_content['wechat'] = isset($db_data[0]['wechat']) ? $db_data[0]['wechat'] : ''; - $outParam->biz_content['tel'] = isset($db_data[0]['tel']) ? $db_data[0]['tel'] : ''; - $outParam->biz_content['nickname'] = isset($db_data[0]['nickname']) ? $db_data[0]['nickname'] : ''; - $outParam->biz_content['avatar'] = isset($db_data[0]['avatar']) ? $db_data[0]['avatar'] : ''; - } - - return true; - } - - $outParam->biz_content = array( - 'state' => 0, - 'salesid' => isset($db_data[0]['salesid']) ? $db_data[0]['salesid'] : '', - 'wechat' => isset($db_data[0]['wechat']) ? $db_data[0]['wechat'] : '', - 'tel' => isset($db_data[0]['tel']) ? $db_data[0]['tel'] : '', - 'nickname' => isset($db_data[0]['nickname']) ? $db_data[0]['nickname'] : '', - 'avatar' => isset($db_data[0]['avatar']) ? $db_data[0]['avatar'] : '', - ); - return true; - - } - - /** - * 我的推荐人 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function myRecommend($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $type = isset($request_data['type']) ? $request_data['type'] : ''; - - $db_data = array(); - if (empty($type)) - { - $db_data = $this->PDO_Request( - 'call cp_sales_get_parentinfo(?,?);', - $agentID, $openID); - } - else - { - $db_data = $this->PDO_Request( - 'call cp_sales_get_invitecodeinfo(?,?);', - $agentID, $openID); - } - - if (!is_array($db_data)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($db_data) != 1) - { - $outParam->biz_content = array( - 'parentid' => '', - 'name' => '', - 'avatar' => '', - ); - return true; - } - - $outParam->biz_content = array( - 'parentid' => $db_data[0]['saus_salesid'], - 'name' => $db_data[0]['saus_nickname'], - 'avatar' => $db_data[0]['saus_avatar'], - ); - return true; - } - - /** - * 我的子代理 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function myAgent($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $db_data = $this->PDO_Request( - 'call cp_sales_get_child(?,?);', - $agentID, - $openID - ); - - if (!is_array($db_data)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $outParam->biz_content = array('childs' => $db_data); - return true; - - } - - /** - * 我的奖励 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function myAward($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $db_data = $this->PDO_Request( - 'call cp_sales_get_award(?,?);', - $agentID, - $openID - ); - - if (!is_array($db_data)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $outParam->biz_content = array('awards' => $db_data); - return true; - } - - /** - * 领取奖励 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function getAward($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $awardID = isset($request_data['awardid']) ? $request_data['awardid'] : ''; - if (empty($awardID)) - { - $outParam->SetErrors(ERRORCODE_AWARDIDERROR, ERRORINFO_AWARDIDERROR); - return false; - } - - $db_data = $this->PDO_Request( - 'call cp_sales_accept_award(?,?,?);', - $agentID, - $openID, - $awardID - ); - - if (!is_array($db_data) || count($db_data) < 1) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (!isset($db_data[0]['result']) || intval($db_data[0]['result']) != 0) - { - $outParam->SetErrors($db_data[0]['result'], $db_data[0]['error']); - return false; - } - - $outParam->biz_content = array( - 'state' => 0, - 'roomcard' => isset($db_data[0]['myroomcard']) ? intval($db_data[0]['myroomcard']) : 0, - 'awardstate' => isset($db_data[0]['mystate']) ? intval($db_data[0]['mystate']) : 0, - ); - return true; - - } - - /** - * 查询个人代理 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function queryAgent($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $db_data = $this->PDO_Request( - 'call cp_sales_query_salesman(?,?,?);', - $agentID, - $openID, - $salesID - ); - - if (!is_array($db_data) || count($db_data) < 1) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (!isset($db_data[0]['result'])) - { - return false; - } - - if (intval($db_data[0]['result']) != 0) - { - $outParam->biz_content = array( - 'state' => $db_data[0]['result'], - 'error' => $db_data[0]['error'], - ); - return true; - } - - $dbSaleInfo = $this->PDO_Request(' - SELECT - saus_status, saus_bean - FROM - sales_user - WHERE - saus_agentid=? AND saus_salesid=?', $agentID, $salesID); - - if (!is_array($dbSaleInfo) || count($dbSaleInfo) < 1) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $outParam->biz_content = array( - 'state' => 0, - 'salesid' => $db_data[0]['salesid'], - 'salesname' => $db_data[0]['salesname'], - 'roomcard' => $db_data[0]['salesroomcard'], - 'salesstatus' => $dbSaleInfo[0]['saus_status'], - 'bean' => $dbSaleInfo[0]['saus_bean'], - ); - return true; - - } - - - /** - * 获取绑定了我的邀请码的玩家列表 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function myPlayer($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $db_data = $this->PDO_Request( - 'call cp_sales_get_myplayer(?,?);', - $agentID, - $openID - ); - - if (!is_array($db_data)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $outParam->biz_content = array('list' => $db_data); - return true; - } - - - /** - * 获取我的下级代理列表 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function mySales($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $db_data = $this->PDO_Request( - 'call cp_sales_get_mysalesman(?,?);', - $agentID, - $openID - ); - - if (!is_array($db_data)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $outParam->biz_content = array('list' => $db_data); - return true; - - } - - /** - * 绑定推荐人 玩家绑定代理 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function bindSales($inParam, $outParam) - { - $param = $inParam->biz_content; - $agentid = isset($param['agentid']) ? $param['agentid'] : ''; - $channelid = isset($param['channelid']) ? $param['channelid'] : ''; - $openid = isset($param['openid']) ? $param['openid'] : ''; - $unionid = isset($param['unionid']) ? $param['unionid'] : ''; - $salesid = isset($param['salesid']) ? $param['salesid'] : ''; - - if (empty($agentid)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - if (empty($channelid)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - if (empty($openid)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - if (empty($salesid)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $cmd = $this->NewMasterCommand(); - - $player_info = $cmd - ->select('play_playerid', 'play_invitecode') - ->from('player') - ->where(array( - 'play_agentid' => $agentid, - 'play_unionid' => $unionid - )) - ->request(); - if(empty($player_info)) - { - $outParam->biz_content = array('state' => 1, 'error' => '未查询到你的玩家信息,如果你是新注册的玩家,请稍等几分钟!'); - return true; - } - - if(!empty($player_info[0]['play_invitecode'])) - { - $outParam->biz_content = array('state' => 2, 'error' => '你已在游戏中绑定过代理!邀请码为:'.$player_info[0]['play_invitecode']); - return true; - } - - - $sales_user = $cmd - ->select('saus_salesid', 'saus_nickname', 'saus_avatar', 'saus_wechat', 'saus_tel') - ->from('sales_user') - ->where(array( - 'saus_agentid' => $agentid, - 'saus_salesid' => $salesid, - 'saus_salesman' => 1, - )) - ->request(); - if (!empty($sales_user)) - { - $saus_salesid = $sales_user[0]['saus_salesid']; - $nickname = $sales_user[0]['saus_nickname']; - $avatar = $sales_user[0]['saus_avatar']; - $wechat = $sales_user[0]['saus_wechat']; - $tel = $sales_user[0]['saus_tel']; - } - else - { - $saus_salesid = 0; - $nickname = ''; - $avatar = ''; - $wechat = ''; - $tel = ''; - } - - if (empty($saus_salesid)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $sales_user = $cmd - ->select('saus_invitecode') - ->from('sales_user') - ->where(array( - 'saus_agentid' => $agentid, - 'saus_openid' => $openid, - )) - ->request(); - if (!empty($sales_user)) - $myinvitecode = $sales_user[0]['saus_invitecode']; - else - $myinvitecode = null; - - if (empty($myinvitecode)) - { - $this->PDO_BeginTransaction(); - try - { - /// 修改代理表的代理号 - $ret = $cmd - ->update('sales_user') - ->fields('saus_invitecode') - ->values($salesid) - ->where(array('saus_agentid' => $agentid, 'saus_openid' => $openid,)) - ->execute(); - if (!$ret) - throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); - - /// 修改玩家表的代理号 - $ret = $cmd - ->update('player') - ->fields('play_invitecode') - ->values($salesid) - ->where(array('play_agentid' => $agentid, 'play_unionid' => $unionid,)) - ->execute(); - if (!$ret) - throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); - - $outParam->biz_content = array('salesid' => $saus_salesid, 'nickname' => $nickname, 'avatar' => $avatar, 'wechat' => $wechat, 'tel' => $tel,); - - /// 记录绑定日志 - $ret = $cmd->execute( - /** @lang text */ - 'insert into ct_user_process_log( - from_agent, from_channel, from_user, to_agent, to_channel, to_user, - oper_type, oper_data, remark, oper_time, is_process) - values(?, ?, ?, ?, ?, ?, 101, ?, ?, ?, 0)', - $agentid, $channelid, $salesid, $agentid, $channelid, $openid, - $unionid, '来源用户为要绑定的代理,目标用户为要绑定的玩家。其中目标用户的userid为用户的openid,oper_data为用户unionid。', time()); - if (!$ret) - throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); - else - { - $this->PDO_Commit(); - return true; - } - } - catch (Exception $e) - { - $this->PDO_Rollback(); - $outParam->SetErrors($e->getCode(), $e->getMessage()); - return false; - } - } - else - { - $sales_user = $cmd - ->select('saus_salesid', 'saus_nickname', 'saus_avatar', 'saus_wechat', 'saus_tel') - ->from('sales_user') - ->where(array('saus_agentid' => $agentid, 'saus_salesid' => $myinvitecode, 'saus_salesman' => 1,)) - ->request(); - - if (!empty($sales_user)) - { - $saus_salesid = $sales_user[0]['saus_salesid']; - $nickname = $sales_user[0]['saus_nickname']; - $avatar = $sales_user[0]['saus_avatar']; - $wechat = $sales_user[0]['saus_wechat']; - $tel = $sales_user[0]['saus_tel']; - } - else - { - $saus_salesid = 0; - $nickname = ''; - $avatar = ''; - $wechat = ''; - $tel = ''; - } - - $outParam->biz_content = array( - 'salesid' => $saus_salesid, - 'nickname' => $nickname, - 'avatar' => $avatar, - 'wechat' => $wechat, - 'tel' => $tel, - ); - - $outParam->SetErrors(ERRORCODE_INVITECODEEXISTS, ERRORINFO_INVITECODEEXISTS); - - return false; - } - } - - /** - * 申请为个人代理 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - * @throws Exception - */ - public function applySales($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - $wechat = isset($request_data['wechat']) ? $request_data['wechat'] : ''; - if (empty($wechat)) - { - $outParam->SetErrors(ERRORCODE_WECHATERROR, ERRORINFO_WECHATERROR); - return false; - } - - $tel = isset($request_data['tel']) ? $request_data['tel'] : ''; -// if(empty($tel)) -// { -// $outParam->SetErrors(ERRORCODE_TELERROR, ERRORINFO_TELERROR); -// return false; -// } - - $inivtecode = isset($request_data['inivtecode']) ? $request_data['inivtecode'] : ''; - -// $db_data = $this->PDO_Request( -// 'call cp_sales_apply_sales(?,?,?,?,?,?);', -// $agentID, -// $openID, -// $channelID, -// $wechat, -// $tel, -// $inivteCode -// ); - - $cmd = $this->NewMasterCommand(); - /// 业务开始 - $this->PDO_BeginTransaction(); - try - { - /// 检验agentid - $agent = $cmd->request(/** @lang text */ - 'select 1 from agent where agen_agentid = ?', $agentID); - if (empty($agent)) - throw new Exception(ERRORINFO_AGENTIDERROR, ERRORCODE_AGENTIDERROR); - - /// 检验微信公众号用户 - $sales_user = $cmd->request(/** @lang text */ - 'select saus_salesman from sales_user where saus_agentid = ? and saus_openid = ?', $agentID, $openID); - if (empty($sales_user)) - throw new Exception(ERRORINFO_OPENIDERROR, ERRORCODE_OPENIDERROR); - elseif (1 == $sales_user[0]['saus_salesman']) - throw new Exception(ERRORINFO_INVITECODEEXISTS, ERRORCODE_INVITECODEEXISTS); - - /// 新个人代理 - $ret = $cmd->execute(/** @lang text */ - 'update agent set agen_maxsalesid = agen_maxsalesid + floor(rand() * (12-6) + 6) where agen_agentid = ?', $agentID); - if (!$ret) - throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); - - $agent = $cmd->request(/** @lang text */ - 'select agen_maxsalesid, agen_salespower from agent where agen_agentid = ?', $agentID); - if (empty($agent)) - throw new Exception(ERRORINFO_AGENTIDERROR, ERRORCODE_AGENTIDERROR); - $salesid = $agent[0]['agen_maxsalesid']; - $salespower = $agent[0]['agen_salespower']; - - $parentid = null; - if (!empty($inivtecode)) - { - $sales_user = $cmd->request(/** @lang text */ - 'select saus_salesid from sales_user where saus_agentid = ? and saus_salesid = ?', $agentID, $inivtecode); - if (empty($sales_user)) - throw new Exception(ERRORINFO_OPENIDERROR, ERRORCODE_OPENIDERROR); - $parentid = $sales_user[0]['saus_salesid']; - } - - if ('oIv1dwGjgqhngUd3fkJa5Zlc13zE' == $openID) - { - $sql = /** @lang text */ - <<execute($sql, $salesid, $wechat, $tel, $salespower, $parentid, $agentID, $openID); - if (!$ret) - throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); - - /// 按日期统计新增个人代理人数 - $ret = $cmd->CallStoredProcedure('cp_report_agent_day')->Values($agentID, 1, 1); - if (!$ret) - throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); - - - $sql = /** @lang text */ - <<request($sql, $agentID, $openID); - if (is_array($sales_user) && count($sales_user) > 0) - { - $sales_user[0]['nickname'] = usefull::getInstance()->check_name($sales_user[0]['nickname']); - - /// 记录注册日志 - $ret = $cmd->execute(/** @lang text */ - 'insert into ct_user_process_log( - to_agent, to_channel, to_user, - oper_type, oper_data, remark, oper_time, is_process) - values(?, ?, ?, 21, ?, ?, ?, 0)', - $agentID, $channelID, $salesid, - JsonObjectToJsonString($sales_user[0]), '目标用户为注册的代理信息。oper_data为用户unionid。', time()); - if (!$ret) - throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); - } - - $this->PDO_Commit(); - } - catch (Exception $Exception) - { - $this->PDO_Rollback(); - $outParam->SetErrors($Exception->getCode(), $Exception->getMessage()); - return false; - } - - $outParam->biz_content = array('inivtecode' => $parentid); - - return true; - } - - - /** - * 修改个人代理的联系方式 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function updateInfo($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; - if (empty($openID)) - { - $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); - return false; - } - - $unionID = isset($request_data['unionid']) ? $request_data['unionid'] : ''; - if(empty($unionID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - $wechat = isset($request_data['wechat']) ? $request_data['wechat'] : ''; - if (empty($wechat)) - { - $outParam->SetErrors(ERRORCODE_WECHATERROR, ERRORINFO_WECHATERROR); - return false; - } - - $tel = isset($request_data['tel']) ? $request_data['tel'] : ''; - if (empty($tel)) - { - $outParam->SetErrors(ERRORCODE_TELERROR, ERRORINFO_TELERROR); - return false; - } - - $dbSaleInfo = $this->PDO_Request(' - SELECT - idx - FROM - sales_user - WHERE saus_agentid = ? and saus_unionid = ?;', $agentID, $unionID); - - if(!is_array($dbSaleInfo)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if(count($dbSaleInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - - $this->PDO_Execute(' - UPDATE sales_user - SET saus_wechat = ?, saus_tel = ? - WHERE saus_agentid = ? and saus_unionid = ?;', $wechat, $tel, $agentID, $unionID); - - if (!$this->PDO_IsDone()) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $outParam->biz_content = array( - 'state' => 0, - 'error' => '', - ); - return true; - } - - - /** - * 客服联系方式 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function contactWay($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $db_data = $this->PDO_Request(' - SELECT - sale_qq, sale_wechat, sale_tel - FROM - config_agent - WHERE - agent_id=?', $agentID); - - if (!is_array($db_data)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($db_data) < 1) - { - $outParam->biz_content = array(); - return true; - } - - $outParam->biz_content = array( - 'qq' => $db_data[0]['sale_qq'], - 'wechat' => $db_data[0]['sale_wechat'], - 'tel' => $db_data[0]['sale_tel'], - ); - return true; - } - - /** - * 代理城市列表 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function cityList($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - -// $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; -// if(empty($channelID)) -// { -// $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); -// return false; -// } - - $db_data = $this->PDO_Request(" - SELECT - agent_id as agentid, agent_name as name, channel_id as channelid - FROM - config_agent - WHERE - agent_id=? OR rel_agent_id=? ", $agentID, $agentID); - - if (!is_array($db_data)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $outParam->biz_content = array('list' => $db_data); - return true; - } - - - /** - * 封号或者解封 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function closeSale($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //1、封玩家, 2、解封 - $type = isset($request_data['type']) ? intval($request_data['type']) : 0; - if ($type != 1 && $type != 2) - { - return false; - } - - $dbSaleInfo = $this->PDO_Request(' - SELECT - idx, saus_salesman, saus_status - FROM - sales_user - WHERE - saus_agentid = ? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if (!is_array($dbSaleInfo) || count($dbSaleInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - if (intval($dbSaleInfo[0]['saus_salesman']) != 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - $status = 0; - $operate_type = 32; - if ($type == 1) - { - $operate_type = 31; - $status = 1; - } - - if ($operate_type == 31 && $dbSaleInfo[0]['saus_status'] == 1) - { - return true; - } - - if ($operate_type == 32 && $dbSaleInfo[0]['saus_status'] == 0) - { - return true; - } - - $ret = $this->PDO_Execute('UPDATE sales_user SET saus_status = ? WHERE idx=?', $status, $dbSaleInfo[0]['idx']); - if (!$ret) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $log_res = $this->PDO_Execute(' - INSERT INTO - ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', '', '', '', $agentID, $channelID, $salesID, $operate_type, '', '', time(), 0); - - if (!$log_res) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - return true; - - } - - /** - * 解绑绑定我的玩家或代理 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function unbind($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //判断自己是否是代理身份 - $dbData = $this->PDO_Request(' - SELECT - idx, saus_salesman - FROM - sales_user - WHERE - saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if (!is_array($dbData)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($dbData) < 1 || intval($dbData[0]['saus_salesman']) != 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //解除绑定了我的代理 - $dbSaleInfo = $this->PDO_Request(' - SELECT - idx, saus_salesid - FROM - sales_user - WHERE - saus_salesman=1 AND saus_agentid=? AND saus_channelid=? AND saus_parentid=?', $agentID, $channelID, $salesID); - - if (!is_array($dbSaleInfo)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $this->PDO_BeginTransaction(); - $this->PDO_Execute(' - UPDATE sales_user - SET saus_parentid=0 - WHERE saus_salesman=1 AND saus_agentid=? AND saus_channelid=? AND saus_parentid=?', $agentID, $channelID, $salesID); - - if (!$this->PDO_IsDone()) - { - $this->PDO_Rollback(); - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - - - $arrayUnbind = array(); - foreach ($dbSaleInfo as $item) - { - if(empty($item['saus_salesid'])) - { - continue; - } - $arrayUnbind['sales']['par'][] = $item['saus_salesid']; - } - - - //解除绑定了我的玩家 - $dbPlayerInfo = $this->PDO_Request(' - SELECT - idx, play_playerid - FROM - player - WHERE - play_agentid = ? AND play_channelid=? AND play_invitecode=?', $agentID, $channelID, $salesID); - - - $this->PDO_Execute(' - UPDATE player - SET play_invitecode=0 - WHERE play_agentid = ? AND play_channelid=? AND play_invitecode=?', $agentID, $channelID, $salesID); - - if (!$this->PDO_IsDone()) - { - $this->PDO_Rollback(); - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - foreach ($dbPlayerInfo as $item) - { - if(empty($item['play_playerid'])) - { - continue; - } - $arrayUnbind['player'][] = $item['play_playerid']; - } - - $dbSaleInfoTwo = $this->PDO_Request(' - SELECT - idx, saus_salesid - FROM - sales_user - WHERE - saus_agentid=? AND saus_channelid=? AND saus_invitecode=?', $agentID, $channelID, $salesID); - if (!is_array($dbSaleInfoTwo)) - { - $this->PDO_Rollback(); - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - foreach ($dbSaleInfoTwo as $item) - { - if(empty($item['saus_salesid'])) - { - continue; - } - $arrayUnbind['sales']['inv'][] = $item['saus_salesid']; - } - - $this->PDO_Execute(' - UPDATE sales_user - SET saus_invitecode=0 - WHERE saus_agentid=? AND saus_channelid=? AND saus_invitecode=?', $agentID, $channelID, $salesID); - - if (!$this->PDO_IsDone()) - { - $this->PDO_Rollback(); - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($arrayUnbind['player']) > 0 || count($arrayUnbind['sales']) > 0) - { - //记录日志 - $log_res = $this->PDO_Execute(' - INSERT INTO - ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $agentID, $channelID, $salesID, $agentID, $channelID, '', 41, json_encode($arrayUnbind), '', time(), 0); - - if (!$log_res) - { - $this->PDO_Rollback(); - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - //记录本地日志 - $log_res = $this->PDO_Execute(' - INSERT INTO - sales_operate_log(agent_id, channel_id, sales_id, operate_type, operate_data, create_time) - VALUES (?, ?, ?, ?, ?, ?)', $agentID, $channelID, $salesID, 0, json_encode($arrayUnbind), date('Y-m-d H:i:s', time())); - - if (!$log_res) - { - $this->PDO_Rollback(); - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - } - $this->PDO_Commit(); - return true; - } - - - /** - * 封禁或解封玩家 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function closePlayer($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - $playerID = isset($request_data['playerid']) ? $request_data['playerid'] : ''; - if (empty($playerID)) - { - $outParam->SetErrors(ERRORCODE_PLAYERIDERROR, ERRORINFO_PLAYERIDERROR); - return false; - } - - //1、封玩家, 2、解封 - $type = isset($request_data['type']) ? intval($request_data['type']) : 0; - if ($type != 1 && $type != 2) - { - return false; - } - - $dbPlayerInfo = $this->PDO_Request(' - SELECT - play_status - FROM - player - WHERE - play_agentid=? AND play_channelid=? AND play_playerid=?', $agentID, $channelID, $playerID); - - if (!is_array($dbPlayerInfo)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($dbPlayerInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); - return false; - } - - $status = 0; - $operate_type = 34; - if ($type == 1) - { - $status = 1; - $operate_type = 33; - } - - if ($operate_type == 33 && $dbPlayerInfo[0]['play_status'] == 1) - { - return true; - } - - if ($operate_type == 34 && $dbPlayerInfo[0]['play_status'] == 0) - { - return true; - } - - $log_res = $this->PDO_Execute(' - INSERT INTO - ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', '', '', '', $agentID, $channelID, $playerID, $operate_type, '', '', time(), 0); - - if (!$log_res) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $ret = $this->PDO_Execute(' - UPDATE player - SET play_status=?, status_change_time=? - WHERE play_agentid=? AND play_channelid=? AND play_playerid=?', $status, date('Y-m-d H:i:s', time()), - $agentID, $channelID, $playerID); - - if (!$ret) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - return true; - } - - - /** - * 新查询代理信息 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function findAgent($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $dbSaleInfo = $this->PDO_Request(' - SELECT - saus_nickname, saus_salesid, saus_roomcard, saus_bean, saus_status, saus_parentid - FROM - sales_user - WHERE - saus_salesman=1 AND saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if (!is_array($dbSaleInfo)) - { - $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - if (count($dbSaleInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - $outParam->biz_content = array( - 'state' => 0, - 'salesid' => $dbSaleInfo[0]['saus_salesid'], - 'salesname' => $dbSaleInfo[0]['saus_nickname'], - 'roomcard' => $dbSaleInfo[0]['saus_roomcard'], - 'been' => $dbSaleInfo[0]['saus_bean'], - 'salesstatus' => $dbSaleInfo[0]['saus_status'], - 'parentid' => $dbSaleInfo[0]['saus_parentid'] - ); - return true; - } - - - /** - * 总代理扣除 玩家 的房卡或星星 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function deductPlayer($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - //操作人id - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //被扣id - $deductID = isset($request_data['deductid']) ? $request_data['deductid'] : ''; - if (empty($deductID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //扣除数量 - $amount = isset($request_data['amount']) ? intval($request_data['amount']) : 0; - if($amount <= 0) - { - $outParam->SetErrors(ERRORCODE_AMOUNTERROR, ERRORINFO_AMOUNTERROR); - return false; - } - - //操作类型 0、扣除房卡,1、扣除星星 - $type = isset($request_data['type']) ? intval($request_data['type']) : 0; - - - //只有总代理才有权限 - $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, global_power - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if(!is_array($dbSalesInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbSalesInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //不是总代理,没有权限 - if(intval($dbSalesInfo[0]['global_power']) != 1) - { - $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - if($type == 0) - { - //扣玩家房卡,判断玩家是否存在 - $dbPlayerInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, play_roomcard - FROM player - WHERE play_agentid=? AND play_channelid=? AND play_playerid=?', $agentID, $channelID, $deductID); - - if(!is_array($dbPlayerInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbPlayerInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); - return false; - } - - //判断玩家房卡数是否够 - //获取游戏中,玩家房卡数量 - $gamePlayerInfo = outData::getInstance()->getGamePlayerInfo($agentID, $deductID, REQUEST_USER_INFO); - if(!is_array($gamePlayerInfo)) - { - $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); - return false; - } - - if(!isset($gamePlayerInfo['data']['roomcard'])) - { - $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); - return false; - } - - $gamePlayerCard = intval($gamePlayerInfo['data']['roomcard']); - //判断房卡数是否够 - if($gamePlayerCard < $amount) - { - $outParam->SetErrors(ERRORCODE_ROOMCARDENOUGHERROR, ERRORINFO_ROOMCARDENOUGHERROR); - return false; - } - - $leftCard = $gamePlayerCard - $amount; - if($leftCard < 0) - { - $leftCard = 0; - } - - //事务开始 - //扣除玩家房卡 - $this->GetHelper()->PDO_BeginTransaction(); - try - { - //扣除玩家房卡 - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE player - SET play_roomcard=? - WHERE idx=?;', $leftCard, $dbPlayerInfo[0]['idx']); - - if(!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //把房卡加入到总代理里面 - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE sales_user - SET saus_roomcard=saus_roomcard+? - WHERE idx=?;', $amount, $dbSalesInfo[0]['idx']); - if(!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //记录日志 - $log_res = $this->GetHelper()->PDO_Execute(/** @lang text */' - INSERT INTO - ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 2, -$amount, '总代理扣除玩家房卡', time(), 0); - - if(!$log_res) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //记录本地日志 - $ret = $this->GetHelper()->PDO_Execute(/** @lang */ ' - insert into sales_operate_log - (agent_id, channel_id, player_id, to_agent_id, to_channel_id, to_player_id, operate_type, operate_data, create_time) - values - (?, ?, ?, ?, ?, ?, ?, ?, ?)', - $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 21, - json_encode(array('before' => $gamePlayerCard, 'deduct' => $amount, 'after' => $leftCard)), - date('Y-m-d H:i:s', time())); - if (!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - $this->GetHelper()->PDO_Commit(); - return true; - - }catch (Exception $e) - { - $this->GetHelper()->PDO_Rollback(); - $outParam->SetErrors($e->getCode(), $e->getMessage()); - return false; - } - //事务结束 - - } - else if($type == 1) - { - //扣玩家星星,判断玩家是否存在 - $dbPlayerInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, play_bean - FROM player - WHERE play_agentid=? AND play_channelid=? AND play_playerid=?', $agentID, $channelID, $deductID); - - if(!is_array($dbPlayerInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbPlayerInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); - return false; - } - - //判断玩家房卡数是否够 - //获取游戏中,玩家房卡数量 - $gamePlayerInfo = outData::getInstance()->getGamePlayerInfo($agentID, $deductID, REQUEST_USER_INFO); - if(!is_array($gamePlayerInfo)) - { - $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); - return false; - } - - if(!isset($gamePlayerInfo['data']['bean'])) - { - $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); - return false; - } - - $gamePlayerBean = intval($gamePlayerInfo['data']['bean']); - //判断房卡数是否够 - if($gamePlayerBean < $amount) - { - $outParam->SetErrors(ERRORCODE_ROOMCARDENOUGHERROR, ERRORINFO_ROOMCARDENOUGHERROR); - return false; - } - - $leftBean = $gamePlayerBean - $amount; - if($leftBean < 0) - { - $leftBean = 0; - } - - //事务开始 - //扣除玩家星星 - $this->GetHelper()->PDO_BeginTransaction(); - try - { - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE player - SET play_bean=? - WHERE idx=?;', $leftBean, $dbPlayerInfo[0]['idx']); - - if(!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //把星星加入到总代理里面 - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE sales_user - SET saus_bean=saus_bean+? - WHERE idx=?;', $amount, $dbSalesInfo[0]['idx']); - if(!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //记录日志 - $log_res = $this->GetHelper()->PDO_Execute(/** @lang text */' - INSERT INTO - ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 12, -$amount, '总代理扣除玩家星星', time(), 0); - - if(!$log_res) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //记录本地日志 - //记录本地日志 - $ret = $this->GetHelper()->PDO_Execute(/** @lang */ ' - insert into sales_operate_log - (agent_id, channel_id, player_id, to_agent_id, to_channel_id, to_player_id, operate_type, operate_data, create_time) - values - (?, ?, ?, ?, ?, ?, ?, ?, ?)', - $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 23, - json_encode(array('before' => $gamePlayerBean, 'deduct' => $amount, 'after' => $leftBean)), - date('Y-m-d H:i:s', time())); - if (!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - $this->GetHelper()->PDO_Commit(); - return true; - - }catch (Exception $e) - { - $this->GetHelper()->PDO_Rollback(); - $outParam->SetErrors($e->getCode(), $e->getMessage()); - return false; - } - //事务结束 - - } - else - { - return false; - } - - - return true; - } - - - /** - * 总代理扣除 代理 的房卡或星星 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function deductSales($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - //操作人id - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //被扣id - $deductID = isset($request_data['deductid']) ? $request_data['deductid'] : ''; - if (empty($deductID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //扣除数量 - $amount = isset($request_data['amount']) ? intval($request_data['amount']) : 0; - if($amount <= 0) - { - $outParam->SetErrors(ERRORCODE_AMOUNTERROR, ERRORINFO_AMOUNTERROR); - return false; - } - - //操作类型 0、扣除代理房卡,1、扣除代理星星 - $type = isset($request_data['type']) ? intval($request_data['type']) : 0; - - - //只有总代理才有权限 - $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, global_power - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if(!is_array($dbSalesInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbSalesInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //不是总代理,没有权限 - if(intval($dbSalesInfo[0]['global_power']) != 1) - { - $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - if($type == 0) - { - //扣代理房卡, 获取代理信息 - $dbDeductInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, saus_roomcard - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $deductID); - - if (!is_array($dbDeductInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if (count($dbDeductInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - $salesCard = intval($dbDeductInfo[0]['saus_roomcard']); - if($salesCard < $amount) - { - $outParam->SetErrors(ERRORCODE_ROOMCARDENOUGHERROR, ERRORINFO_ROOMCARDENOUGHERROR); - return false; - } - - $leftCard = $salesCard - $amount; - if($leftCard < 0) - { - $leftCard = 0; - } - - //事务开始 - $this->GetHelper()->PDO_BeginTransaction(); - try - { - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE sales_user - SET saus_roomcard=? - WHERE idx=?;', $leftCard, $dbDeductInfo[0]['idx']); - - if(!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //把代理扣除房卡,加入到总代里面 - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE sales_user - SET saus_roomcard=saus_roomcard+? - WHERE idx=?;', $amount, $dbSalesInfo[0]['idx']); - - if(!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //记录本地日志 - $ret = $this->GetHelper()->PDO_Execute(/** @lang */ ' - insert into sales_operate_log - (agent_id, channel_id, player_id, to_agent_id, to_channel_id, to_player_id, operate_type, operate_data, create_time) - values - (?, ?, ?, ?, ?, ?, ?, ?, ?)', - $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 22, - json_encode(array('before' => $salesCard, 'deduct' => $amount, 'after' => $leftCard)), - date('Y-m-d H:i:s', time())); - if (!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - $this->GetHelper()->PDO_Commit(); - return true; - - }catch (Exception $e) - { - $this->GetHelper()->PDO_Rollback(); - $outParam->SetErrors($e->getCode(), $e->getMessage()); - return false; - } - //事务结束 - - } - else if($type == 1) - { - //扣代理星星, 获取代理信息 - $dbDeductInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, saus_bean - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $deductID); - - if (!is_array($dbDeductInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if (count($dbDeductInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - $saleBean = intval($dbDeductInfo[0]['saus_bean']); - if($saleBean < $amount) - { - $outParam->SetErrors(ERRORCODE_ROOMCARDENOUGHERROR, ERRORINFO_ROOMCARDENOUGHERROR); - return false; - } - - $leftBean = $saleBean - $amount; - if($leftBean < 0) - { - $leftBean = 0; - } - - //事务开始 - $this->GetHelper()->PDO_BeginTransaction(); - try - { - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE sales_user - SET saus_bean=? - WHERE idx=?;', $leftBean, $dbDeductInfo[0]['idx']); - - if(!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE sales_user - SET saus_bean=saus_bean+? - WHERE idx=?;', $amount, $dbSalesInfo[0]['idx']); - - if(!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - //记录本地日志 - $ret = $this->GetHelper()->PDO_Execute(/** @lang */ ' - insert into sales_operate_log - (agent_id, channel_id, player_id, to_agent_id, to_channel_id, to_player_id, operate_type, operate_data, create_time) - values - (?, ?, ?, ?, ?, ?, ?, ?, ?)', - $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 24, - json_encode(array('before' => $saleBean, 'deduct' => $amount, 'after' => $leftBean)), - date('Y-m-d H:i:s', time())); - if (!$ret || !$this->GetHelper()->PDO_IsDone()) - { - throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); - } - - $this->GetHelper()->PDO_Commit(); - return true; - - }catch (Exception $e) - { - $this->GetHelper()->PDO_Rollback(); - $outParam->SetErrors($e->getCode(), $e->getMessage()); - return false; - } - //事务结束 - - } - else - { - return false; - } - - - return true; - } - - - /** - * 总代理查询代理下面的所有子代理或者玩家 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function salesChilds($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - //操作人id - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //查询的代理id - $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; - if (empty($queryID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //操作类型 0、查询子代理,1、查询绑定的玩家 - $type = isset($request_data['type']) ? intval($request_data['type']) : 0; - - $page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']); - $page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']); - - $start = ($page_index - 1) * $page_size; - - $strPage = ''; - if(!empty($request_data['page_index'])) - { - $strPage .= " LIMIT {$start},{$page_size} "; - } - - - //只有总代理才有权限 - $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, global_power - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if(!is_array($dbSalesInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbSalesInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //不是总代理,没有权限 - if(intval($dbSalesInfo[0]['global_power']) != 1) - { - $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, saus_bean - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $queryID); - - if (!is_array($dbQueryInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if (count($dbQueryInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - if($type == 0) - { - //查询代理下面的所有子代理 - $childs = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT saus_nickname as nickname, saus_avatar as avatar, saus_sex, saus_salesid as id, saus_level, saus_roomcard as roomcard, saus_bean as star, saus_power, - saus_status, global_power, saus_tel as tel, saus_wechat as wechat - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_parentid=? - ORDER BY idx desc {$strPage};", $agentID, $channelID, $queryID); - - if(!is_array($childs)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = 1; - if(!empty($request_data['page_index'])) - { - $dbData = $this->GetHelper()->PDO_Request(/** @lang text */ " - SELECT count(1) num - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_parentid=?;", $agentID, $channelID, $queryID); - - if(!is_array($dbData) || count($dbData) < 1) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = intval($dbData[0]['num']) / $page_size + 1; - - } - - $outParam->biz_content = array( - 'detail' => $childs, - 'page_index' => $page_index, - 'page_size' => $page_size, - 'page_count' => $page_count - ); - return true; - } - else if($type == 1) - { - //查询代理下面的所有玩家 - $childs = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT play_playerid as id, play_nickname as nickname, play_avatar as avatar, play_sex, play_roomcard as roomcard, play_bean as star, play_status - FROM player - WHERE play_agentid=? AND play_channelid=? AND play_invitecode=? - ORDER BY idx DESC {$strPage};", $agentID, $channelID, $queryID); - - if(!is_array($childs)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = 1; - if(!empty($request_data['page_index'])) - { - $dbData = $this->GetHelper()->PDO_Request(/** @lang text */ " - SELECT count(1) num - FROM player - WHERE play_agentid=? AND play_channelid=? AND play_invitecode=?;", $agentID, $channelID, $queryID); - - if(!is_array($dbData) || count($dbData) < 1) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = intval($dbData[0]['num']) / $page_size + 1; - - } - - $outParam->biz_content = array( - 'detail' => $childs, - 'page_index' => $page_index, - 'page_size' => $page_size, - 'page_count' => $page_count - ); - return true; - - } - else - { - return false; - } - - return true; - } - - - /** - * 总代理查询玩家房卡或星星流水记录 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function playerCardStarRecord($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - //操作人id - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $playerID = isset($request_data['playerid']) ? $request_data['playerid'] : ''; - if (empty($playerID)) - { - $outParam->SetErrors(ERRORCODE_PLAYERIDERROR, ERRORINFO_PLAYERIDERROR); - return false; - } - - $str_time = ''; - $array_param = array( - $agentID, - $playerID - ); - $beginTime = isset($request_data['begintime']) ? $request_data['begintime'] : ''; - $endTime = isset($request_data['endtime']) ? $request_data['endtime'] : ''; - - $page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']); - $page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']); - - $start = ($page_index - 1) * $page_size; - - $strPage = ''; - if (!empty($request_data['page_index'])) - { - $strPage .= " LIMIT {$start},{$page_size} "; - } - - //操作类型 0、查询房卡,1、查询星星 - $type = isset($request_data['type']) ? intval($request_data['type']) : 0; - - //只有总代理才有权限 - $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, global_power - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if(!is_array($dbSalesInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbSalesInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //不是总代理,没有权限 - if(intval($dbSalesInfo[0]['global_power']) != 1) - { - $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - //判断玩家是否存在 - $dbPlayerInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, play_openid - FROM player - WHERE play_agentid=? AND play_playerid=?;', $agentID, $playerID); - if (!is_array($dbPlayerInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbPlayerInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); - return false; - } - - $dbRecord = array(); - $page_count = 1; - //0、房卡记录,1、星星记录 - if($type == 0) - { - if (!empty($beginTime)) - { - $str_time .= ' and a.sase_selltime >= ? '; - $array_param[] = $beginTime; - } - - if (!empty($endTime)) - { - $str_time .= ' and a.sase_selltime <= ? '; - $array_param[] = $endTime; - } - - if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) - { - $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); - return false; - } - - $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - a.idx, a.sase_amount amount, a.sase_selltime time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar - FROM - sales_sellbill a - LEFT JOIN sales_user b ON a.sase_openid=b.saus_openid AND a.sase_agentid = b.saus_agentid - WHERE - a.sase_agentid=? AND a.sase_playerid=? {$str_time} - ORDER BY a.idx DESC {$strPage};", $array_param); - - if(!$this->GetHelper()->PDO_IsDone() || !is_array($dbRecord)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if (!empty($request_data['page_index'])) - { - $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - count(1) num - FROM - sales_sellbill a - WHERE - a.sase_agentid=? AND a.sase_playerid=? {$str_time} - ", $array_param); - - if (!is_array($dbCount) || count($dbCount) < 1) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = intval($dbCount[0]['num']) / $page_size + 1; - } - - } - elseif ($type == 1) - { - if (!empty($beginTime)) - { - $str_time .= ' and a.ssbe_selltime >= ? '; - $array_param[] = $beginTime; - } - - if (!empty($endTime)) - { - $str_time .= ' and a.ssbe_selltime <= ? '; - $array_param[] = $endTime; - } - - if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) - { - $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); - return false; - } - - $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - a.idx, a.ssbe_amount amount, a.ssbe_selltime time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar - FROM - sales_sellbill_bean a - LEFT JOIN sales_user b ON a.ssbe_openid=b.saus_openid AND a.ssbe_agentid=b.saus_agentid - WHERE - a.ssbe_agentid=? AND a.ssbe_playerid=? {$str_time} - ORDER BY a.idx DESC {$strPage};", $array_param); - - if(!$this->GetHelper()->PDO_IsDone() || !is_array($dbRecord)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - - if (!empty($request_data['page_index'])) - { - $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - count(1) num - FROM - sales_sellbill_bean a - WHERE - a.ssbe_agentid=? AND a.ssbe_playerid=? {$str_time} - ", $array_param); - - if (!is_array($dbCount) || count($dbCount) < 1) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = intval($dbCount[0]['num']) / $page_size + 1; - } - } - else - { - return false; - } - - $outParam->biz_content = array( - 'record' => $dbRecord, - 'page_index' => $page_index, - 'page_size' => $page_size, - 'page_count' => intval($page_count), - ); - return true; - } - - /** - * 总代理查询代理房卡或星星 获得 记录 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function salesCardStarRecord($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - //操作人id - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //查询的id - $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; - if (empty($queryID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $str_time = ''; - $array_param = array( - $agentID, - $queryID, - $channelID - ); - $beginTime = isset($request_data['begintime']) ? $request_data['begintime'] : ''; - $endTime = isset($request_data['endtime']) ? $request_data['endtime'] : ''; - $page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']); - $page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']); - - $start = ($page_index - 1) * $page_size; - - $strPage = ''; - if (!empty($request_data['page_index'])) - { - $strPage .= " LIMIT {$start},{$page_size} "; - } - - //操作类型 0、查询房卡,1、查询星星 - $type = isset($request_data['type']) ? intval($request_data['type']) : 0; - - //只有总代理才有权限 - $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, global_power - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if(!is_array($dbSalesInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbSalesInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //不是总代理,没有权限 - if(intval($dbSalesInfo[0]['global_power']) != 1) - { - $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - //要查询的代理信息 - $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, saus_openid, saus_unionid - FROM sales_user - WHERE saus_agentid=? AND saus_salesid=?;', $agentID, $queryID); - - if(!is_array($dbQueryInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbQueryInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - $page_count = 1; - $dbRecord = array(); - if($type == 0) - { - if (!empty($beginTime)) - { - $str_time .= ' and a.satr_transfertime >= ? '; - $array_param[] = $beginTime; - } - - if (!empty($endTime)) - { - $str_time .= ' and a.satr_transfertime <= ? '; - $array_param[] = $endTime; - } - - if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) - { - $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); - return false; - } - - $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - a.idx, a.satr_amount amount, a.satr_transfertime time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar - FROM - sales_transferbill a - LEFT JOIN sales_user b ON a.satr_openid=b.saus_openid AND a.satr_agentid=b.saus_agentid - WHERE - a.satr_agentid=? AND a.satr_salesid=? {$str_time} - ORDER BY a.idx DESC {$strPage};", $array_param); - - if (!is_array($dbRecord)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if (!empty($request_data['page_index'])) - { - $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - count(1) num - FROM - sales_transferbill a - WHERE - a.satr_agentid=? AND a.satr_salesid=? {$str_time} - ", $array_param); - - if (!is_array($dbCount) || count($dbCount) < 1) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = intval($dbCount[0]['num']) / $page_size + 1; - } - - } - elseif ($type == 1) - { - if (!empty($beginTime)) - { - $str_time .= ' and a.op_time >= ? '; - $array_param[] = $beginTime; - } - - if (!empty($endTime)) - { - $str_time .= ' and a.op_time <= ? '; - $array_param[] = $endTime; - } - - if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) - { - $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); - return false; - } - - $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - a.id idx, a.amount, a.op_time time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar - FROM - trans_star_record a - LEFT JOIN sales_user b ON a.send_id=b.saus_salesid AND a.agent_id=b.saus_agentid - WHERE - a.agent_id=? AND a.get_id=? AND a.channel_id=? {$str_time} - ORDER BY a.id DESC {$strPage};", $array_param); - - if (!is_array($dbRecord)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if (!empty($request_data['page_index'])) - { - $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - count(1) num - FROM - trans_star_record a - WHERE - a.agent_id=? AND a.get_id=? AND a.channel_id=? {$str_time} - ", $array_param); - - if (!is_array($dbCount) || count($dbCount) < 1) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = intval($dbCount[0]['num']) / $page_size + 1; - } - } - else - { - return false; - } - - $outParam->biz_content = array( - 'record' => $dbRecord, - 'page_index' => $page_index, - 'page_size' => $page_size, - 'page_count' => intval($page_count), - ); - return true; - } - - - /** - * 总代理查询代理房卡或星星 消耗 记录 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function salesCardStarDeduct($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - //操作人id - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //查询的id - $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; - if (empty($queryID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - $str_time = ''; - - $beginTime = isset($request_data['begintime']) ? $request_data['begintime'] : ''; - $endTime = isset($request_data['endtime']) ? $request_data['endtime'] : ''; - $page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']); - $page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']); - - $start = ($page_index - 1) * $page_size; - - $strPage = ''; - if (!empty($request_data['page_index'])) - { - $strPage .= " LIMIT {$start},{$page_size} "; - } - - //操作类型 0、查询房卡,1、查询星星 - $type = isset($request_data['type']) ? intval($request_data['type']) : 0; - - //只有总代理才有权限 - $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, global_power - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if(!is_array($dbSalesInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbSalesInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //不是总代理,没有权限 - if(intval($dbSalesInfo[0]['global_power']) != 1) - { - $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - //要查询的代理信息 - $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, saus_openid, saus_unionid - FROM sales_user - WHERE saus_agentid=? AND saus_salesid=?;', $agentID, $queryID); - - if(!is_array($dbQueryInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbQueryInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - $page_count = 1; - $dbRecord = array(); - if($type == 0) - { - $array_param = array( - $agentID, - $dbQueryInfo[0]['saus_openid'], - $channelID - ); - if (!empty($beginTime)) - { - $str_time .= ' and a.satr_transfertime >= ? '; - $array_param[] = $beginTime; - } - - if (!empty($endTime)) - { - $str_time .= ' and a.satr_transfertime <= ? '; - $array_param[] = $endTime; - } - - if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) - { - $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); - return false; - } - - $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - a.idx, a.satr_amount amount, a.satr_transfertime time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar - FROM - sales_transferbill a - LEFT JOIN sales_user b ON a.satr_salesid=b.saus_salesid AND a.satr_agentid=b.saus_agentid - WHERE - a.satr_agentid=? AND a.satr_openid=? {$str_time} - ORDER BY a.idx DESC {$strPage};", $array_param); - - if (!is_array($dbRecord)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if (!empty($request_data['page_index'])) - { - $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - count(1) num - FROM - sales_transferbill a - WHERE - a.satr_agentid=? AND a.satr_openid=? {$str_time} - ", $array_param); - - if (!is_array($dbCount) || count($dbCount) < 1) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = intval($dbCount[0]['num']) / $page_size + 1; - } - - } - elseif ($type == 1) - { - $array_param = array( - $agentID, - $queryID - ); - if (!empty($beginTime)) - { - $str_time .= ' and a.op_time >= ? '; - $array_param[] = $beginTime; - } - - if (!empty($endTime)) - { - $str_time .= ' and a.op_time <= ? '; - $array_param[] = $endTime; - } - - if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) - { - $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); - return false; - } - - $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - a.id idx, a.amount, a.op_time time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar - FROM - trans_star_record a - LEFT JOIN sales_user b ON a.get_id=b.saus_salesid AND a.agent_id=b.saus_agentid - WHERE - a.agent_id=? AND a.send_id=? AND a.channel_id=? {$str_time} - ORDER BY a.id DESC {$strPage};", $array_param); - - if (!is_array($dbRecord)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if (!empty($request_data['page_index'])) - { - $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" - SELECT - count(1) num - FROM - trans_star_record a - WHERE - a.agent_id=? AND a.send_id=? AND a.channel_id=? {$str_time} - ", $array_param); - - if (!is_array($dbCount) || count($dbCount) < 1) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $page_count = intval($dbCount[0]['num']) / $page_size + 1; - } - } - else - { - return false; - } - - $outParam->biz_content = array( - 'record' => $dbRecord, - 'page_index' => $page_index, - 'page_size' => $page_size, - 'page_count' => intval($page_count), - ); - return true; - } - - /** - * 总代理查询代理权限 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function getPower($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - //操作人id - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //查询的id - $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; - if (empty($queryID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //判断操作人是否是总代身份 - //只有总代理才有权限 - $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, global_power - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if(!is_array($dbSalesInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbSalesInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //不是总代理,没有权限 - if(intval($dbSalesInfo[0]['global_power']) != 1) - { - $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - //要查询的代理信息 - $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, saus_openid, saus_unionid, saus_power, saus_nickname, saus_salesid, saus_avatar - FROM sales_user - WHERE saus_agentid=? AND saus_salesid=?;', $agentID, $queryID); - - if(!is_array($dbQueryInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbQueryInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - $outParam->biz_content = $dbQueryInfo[0]; - return true; - - } - - /** - * 总代理设置代理权限 - * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) - * @param RequestParameter $inParam - * @param ReturnParameter $outParam - * @return bool - */ - public function setPower($inParam, $outParam) - { - $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; - - if (!is_array($request_data)) - { - //参数格式错误 - $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; - if (empty($agentID)) - { - $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; - if (empty($channelID)) - { - $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - //操作人id - $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; - if (empty($salesID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //设置的id - $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; - if (empty($queryID)) - { - $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); - return false; - } - - //设置的权限 - if(!isset($request_data['power'])) - { - $outParam->SetErrors(ERRORCODE_POWERERROR, ERRORINFO_POWERERROR); - return false; - } - $power = $request_data['power']; - - //判断操作人是否是总代身份 - //只有总代理才有权限 - $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, global_power - FROM sales_user - WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); - - if(!is_array($dbSalesInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbSalesInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - //不是总代理,没有权限 - if(intval($dbSalesInfo[0]['global_power']) != 1) - { - $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - //要设置的代理信息 - $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' - SELECT idx, saus_openid, saus_unionid, saus_power - FROM sales_user - WHERE saus_agentid=? AND saus_salesid=?;', $agentID, $queryID); - - if(!is_array($dbQueryInfo)) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - if(count($dbQueryInfo) < 1) - { - $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); - return false; - } - - $ret = $this->GetHelper()->PDO_Execute(/** @lang */' - UPDATE sales_user - SET saus_power=? - WHERE idx=?;', $power, $dbQueryInfo[0]['idx']); - - if (!$ret) - { - $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); - return false; - } - - $outParam->biz_content = array('salesid' => $salesID, 'power' => $power); - return true; - - } - - +biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + $channelData = $this->PDO_Request(' + SELECT + a.agen_agentid, a.agen_name, a.agen_server, + b.agch_channelid, b.agch_channelname, b.agch_service_tel, b.agch_service_wechat, + b.agch_youle_appid, b.agch_youle_devkey, b.agch_youle_busiid, b.agch_pay_appid, b.agch_pay_devkey, + b.agch_pay_marketid + FROM + agent a + LEFT JOIN agent_channel b ON a.agen_agentid=b.agch_agentid + WHERE + a.agen_agentid=? AND b.agch_channelid=? + ', $agentID, $channelID); + + if (!is_array($channelData)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($channelData) < 1) + { + $outParam->SetErrors(ERRORCODE_NODATAERROR, ERRORINFO_NODATAERROR); + return false; + } + + $db_agent_info = $this->PDO_Request(' + SELECT + html_buyroomcard, logo + FROM + config_agent + WHERE + agent_id=?', $agentID); + + if (!is_array($db_agent_info)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($db_agent_info) < 1) + { + $outParam->SetErrors(ERRORCODE_AGENTNOTEXISTERROR, ERRORINFO_AGENTNOTEXISTERROR); + return false; + } + + $outParam->biz_content = array( + 'state' => 0, + 'error' => '', + 'agentid' => $channelData[0]['agen_agentid'], + 'agentname' => $channelData[0]['agen_name'], + 'agentlogo' => $db_agent_info[0]['logo'], + 'urlserver' => $channelData[0]['agen_server'], + 'channelid' => $channelData[0]['agch_channelid'], + 'channeltel' => $channelData[0]['agch_service_tel'], + 'channelwechat' => $channelData[0]['agch_service_wechat'], + 'html_buyroomcard' => $db_agent_info[0]['html_buyroomcard'], + 'youle_appid' => $channelData[0]['agch_youle_appid'], + 'youle_devkey' => $channelData[0]['agch_youle_devkey'], + 'youle_busiid' => $channelData[0]['agch_youle_busiid'], + 'youle_appid_pay' => $channelData[0]['agch_pay_appid'], + 'youle_devkey_pay' => $channelData[0]['agch_pay_devkey'], + 'youle_busiid_pay' => $channelData[0]['agch_pay_marketid'], + ); + + return true; + + } + + + /** + * 查询推荐人 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function recommend($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $db_data = $this->PDO_Request(' + SELECT + saus_nickname, saus_avatar + FROM + sales_user + WHERE + saus_agentid = ? and saus_salesid = ?;', $agentID, $salesID); + + if (!is_array($db_data)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($db_data) < 1) + { + $outParam->biz_content = array( + 'state' => 1, + 'error' => '未查到推荐人', + ); + return true; + } + + $outParam->biz_content = array( + 'state' => 0, + 'salesid' => $salesID, + 'name' => $db_data[0]['saus_nickname'], + 'avatar' => $db_data[0]['saus_avatar'], + ); + return true; + } + + /** + * 绑定推荐人 代理绑定代理 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function bindRecommend($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $db_data = $this->PDO_Request( + 'call cp_sales_binding_parent(?,?,?);', + $agentID, + $openID, + $salesID + ); + + if (!is_array($db_data) || count($db_data) < 1) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (!isset($db_data[0]['result'])) + { + return false; + } + + $res_flag = intval($db_data[0]['result']); + + if ($res_flag != 0) + { + $outParam->biz_content = array( + 'state' => $res_flag, + 'error' => isset($db_data[0]['error']) ? $db_data[0]['error'] : '', + ); + + if ($res_flag == 2) + { + $outParam->biz_content['salesid'] = isset($db_data[0]['salesid']) ? $db_data[0]['salesid'] : ''; + $outParam->biz_content['wechat'] = isset($db_data[0]['wechat']) ? $db_data[0]['wechat'] : ''; + $outParam->biz_content['tel'] = isset($db_data[0]['tel']) ? $db_data[0]['tel'] : ''; + $outParam->biz_content['nickname'] = isset($db_data[0]['nickname']) ? $db_data[0]['nickname'] : ''; + $outParam->biz_content['avatar'] = isset($db_data[0]['avatar']) ? $db_data[0]['avatar'] : ''; + } + + return true; + } + + $outParam->biz_content = array( + 'state' => 0, + 'salesid' => isset($db_data[0]['salesid']) ? $db_data[0]['salesid'] : '', + 'wechat' => isset($db_data[0]['wechat']) ? $db_data[0]['wechat'] : '', + 'tel' => isset($db_data[0]['tel']) ? $db_data[0]['tel'] : '', + 'nickname' => isset($db_data[0]['nickname']) ? $db_data[0]['nickname'] : '', + 'avatar' => isset($db_data[0]['avatar']) ? $db_data[0]['avatar'] : '', + ); + return true; + + } + + /** + * 我的推荐人 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function myRecommend($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $type = isset($request_data['type']) ? $request_data['type'] : ''; + + $db_data = array(); + if (empty($type)) + { + $db_data = $this->PDO_Request( + 'call cp_sales_get_parentinfo(?,?);', + $agentID, $openID); + } + else + { + $db_data = $this->PDO_Request( + 'call cp_sales_get_invitecodeinfo(?,?);', + $agentID, $openID); + } + + if (!is_array($db_data)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($db_data) != 1) + { + $outParam->biz_content = array( + 'parentid' => '', + 'name' => '', + 'avatar' => '', + ); + return true; + } + + $outParam->biz_content = array( + 'parentid' => $db_data[0]['saus_salesid'], + 'name' => $db_data[0]['saus_nickname'], + 'avatar' => $db_data[0]['saus_avatar'], + ); + return true; + } + + /** + * 我的子代理 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function myAgent($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $db_data = $this->PDO_Request( + 'call cp_sales_get_child(?,?);', + $agentID, + $openID + ); + + if (!is_array($db_data)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $outParam->biz_content = array('childs' => $db_data); + return true; + + } + + /** + * 我的奖励 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function myAward($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $db_data = $this->PDO_Request( + 'call cp_sales_get_award(?,?);', + $agentID, + $openID + ); + + if (!is_array($db_data)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $outParam->biz_content = array('awards' => $db_data); + return true; + } + + /** + * 领取奖励 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function getAward($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $awardID = isset($request_data['awardid']) ? $request_data['awardid'] : ''; + if (empty($awardID)) + { + $outParam->SetErrors(ERRORCODE_AWARDIDERROR, ERRORINFO_AWARDIDERROR); + return false; + } + + $db_data = $this->PDO_Request( + 'call cp_sales_accept_award(?,?,?);', + $agentID, + $openID, + $awardID + ); + + if (!is_array($db_data) || count($db_data) < 1) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (!isset($db_data[0]['result']) || intval($db_data[0]['result']) != 0) + { + $outParam->SetErrors($db_data[0]['result'], $db_data[0]['error']); + return false; + } + + $outParam->biz_content = array( + 'state' => 0, + 'roomcard' => isset($db_data[0]['myroomcard']) ? intval($db_data[0]['myroomcard']) : 0, + 'awardstate' => isset($db_data[0]['mystate']) ? intval($db_data[0]['mystate']) : 0, + ); + return true; + + } + + /** + * 查询个人代理 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function queryAgent($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $db_data = $this->PDO_Request( + 'call cp_sales_query_salesman(?,?,?);', + $agentID, + $openID, + $salesID + ); + + if (!is_array($db_data) || count($db_data) < 1) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (!isset($db_data[0]['result'])) + { + return false; + } + + if (intval($db_data[0]['result']) != 0) + { + $outParam->biz_content = array( + 'state' => $db_data[0]['result'], + 'error' => $db_data[0]['error'], + ); + return true; + } + + $dbSaleInfo = $this->PDO_Request(' + SELECT + saus_status, saus_bean + FROM + sales_user + WHERE + saus_agentid=? AND saus_salesid=?', $agentID, $salesID); + + if (!is_array($dbSaleInfo) || count($dbSaleInfo) < 1) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $outParam->biz_content = array( + 'state' => 0, + 'salesid' => $db_data[0]['salesid'], + 'salesname' => $db_data[0]['salesname'], + 'roomcard' => $db_data[0]['salesroomcard'], + 'salesstatus' => $dbSaleInfo[0]['saus_status'], + 'bean' => $dbSaleInfo[0]['saus_bean'], + ); + return true; + + } + + + /** + * 获取绑定了我的邀请码的玩家列表 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function myPlayer($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $db_data = $this->PDO_Request( + 'call cp_sales_get_myplayer(?,?);', + $agentID, + $openID + ); + + if (!is_array($db_data)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $outParam->biz_content = array('list' => $db_data); + return true; + } + + + /** + * 获取我的下级代理列表 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function mySales($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $db_data = $this->PDO_Request( + 'call cp_sales_get_mysalesman(?,?);', + $agentID, + $openID + ); + + if (!is_array($db_data)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $outParam->biz_content = array('list' => $db_data); + return true; + + } + + /** + * 绑定推荐人 玩家绑定代理 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function bindSales($inParam, $outParam) + { + $param = $inParam->biz_content; + $agentid = isset($param['agentid']) ? $param['agentid'] : ''; + $channelid = isset($param['channelid']) ? $param['channelid'] : ''; + $openid = isset($param['openid']) ? $param['openid'] : ''; + $unionid = isset($param['unionid']) ? $param['unionid'] : ''; + $salesid = isset($param['salesid']) ? $param['salesid'] : ''; + + if (empty($agentid)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + if (empty($channelid)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + if (empty($openid)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + if (empty($salesid)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $cmd = $this->NewMasterCommand(); + + $player_info = $cmd + ->select('play_playerid', 'play_invitecode') + ->from('player') + ->where(array( + 'play_agentid' => $agentid, + 'play_unionid' => $unionid + )) + ->request(); + if(empty($player_info)) + { + $outParam->biz_content = array('state' => 1, 'error' => '未查询到你的玩家信息,如果你是新注册的玩家,请稍等几分钟!'); + return true; + } + + if(!empty($player_info[0]['play_invitecode'])) + { + $outParam->biz_content = array('state' => 2, 'error' => '你已在游戏中绑定过代理!邀请码为:'.$player_info[0]['play_invitecode']); + return true; + } + + + $sales_user = $cmd + ->select('saus_salesid', 'saus_nickname', 'saus_avatar', 'saus_wechat', 'saus_tel') + ->from('sales_user') + ->where(array( + 'saus_agentid' => $agentid, + 'saus_salesid' => $salesid, + 'saus_salesman' => 1, + )) + ->request(); + if (!empty($sales_user)) + { + $saus_salesid = $sales_user[0]['saus_salesid']; + $nickname = $sales_user[0]['saus_nickname']; + $avatar = $sales_user[0]['saus_avatar']; + $wechat = $sales_user[0]['saus_wechat']; + $tel = $sales_user[0]['saus_tel']; + } + else + { + $saus_salesid = 0; + $nickname = ''; + $avatar = ''; + $wechat = ''; + $tel = ''; + } + + if (empty($saus_salesid)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $sales_user = $cmd + ->select('saus_invitecode') + ->from('sales_user') + ->where(array( + 'saus_agentid' => $agentid, + 'saus_openid' => $openid, + )) + ->request(); + if (!empty($sales_user)) + $myinvitecode = $sales_user[0]['saus_invitecode']; + else + $myinvitecode = null; + + if (empty($myinvitecode)) + { + $this->PDO_BeginTransaction(); + try + { + /// 修改代理表的代理号 + $ret = $cmd + ->update('sales_user') + ->fields('saus_invitecode') + ->values($salesid) + ->where(array('saus_agentid' => $agentid, 'saus_openid' => $openid,)) + ->execute(); + if (!$ret) + throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); + + /// 修改玩家表的代理号 + $ret = $cmd + ->update('player') + ->fields('play_invitecode') + ->values($salesid) + ->where(array('play_agentid' => $agentid, 'play_unionid' => $unionid,)) + ->execute(); + if (!$ret) + throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); + + $outParam->biz_content = array('salesid' => $saus_salesid, 'nickname' => $nickname, 'avatar' => $avatar, 'wechat' => $wechat, 'tel' => $tel,); + + /// 记录绑定日志 + $ret = $cmd->execute( + /** @lang text */ + 'insert into ct_user_process_log( + from_agent, from_channel, from_user, to_agent, to_channel, to_user, + oper_type, oper_data, remark, oper_time, is_process) + values(?, ?, ?, ?, ?, ?, 101, ?, ?, ?, 0)', + $agentid, $channelid, $salesid, $agentid, $channelid, $openid, + $unionid, '来源用户为要绑定的代理,目标用户为要绑定的玩家。其中目标用户的userid为用户的openid,oper_data为用户unionid。', time()); + if (!$ret) + throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); + else + { + $this->PDO_Commit(); + return true; + } + } + catch (Exception $e) + { + $this->PDO_Rollback(); + $outParam->SetErrors($e->getCode(), $e->getMessage()); + return false; + } + } + else + { + $sales_user = $cmd + ->select('saus_salesid', 'saus_nickname', 'saus_avatar', 'saus_wechat', 'saus_tel') + ->from('sales_user') + ->where(array('saus_agentid' => $agentid, 'saus_salesid' => $myinvitecode, 'saus_salesman' => 1,)) + ->request(); + + if (!empty($sales_user)) + { + $saus_salesid = $sales_user[0]['saus_salesid']; + $nickname = $sales_user[0]['saus_nickname']; + $avatar = $sales_user[0]['saus_avatar']; + $wechat = $sales_user[0]['saus_wechat']; + $tel = $sales_user[0]['saus_tel']; + } + else + { + $saus_salesid = 0; + $nickname = ''; + $avatar = ''; + $wechat = ''; + $tel = ''; + } + + $outParam->biz_content = array( + 'salesid' => $saus_salesid, + 'nickname' => $nickname, + 'avatar' => $avatar, + 'wechat' => $wechat, + 'tel' => $tel, + ); + + $outParam->SetErrors(ERRORCODE_INVITECODEEXISTS, ERRORINFO_INVITECODEEXISTS); + + return false; + } + } + + /** + * 申请为个人代理 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + * @throws Exception + */ + public function applySales($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + $wechat = isset($request_data['wechat']) ? $request_data['wechat'] : ''; + if (empty($wechat)) + { + $outParam->SetErrors(ERRORCODE_WECHATERROR, ERRORINFO_WECHATERROR); + return false; + } + + $tel = isset($request_data['tel']) ? $request_data['tel'] : ''; +// if(empty($tel)) +// { +// $outParam->SetErrors(ERRORCODE_TELERROR, ERRORINFO_TELERROR); +// return false; +// } + + $inivtecode = isset($request_data['inivtecode']) ? $request_data['inivtecode'] : ''; + +// $db_data = $this->PDO_Request( +// 'call cp_sales_apply_sales(?,?,?,?,?,?);', +// $agentID, +// $openID, +// $channelID, +// $wechat, +// $tel, +// $inivteCode +// ); + + $cmd = $this->NewMasterCommand(); + /// 业务开始 + $this->PDO_BeginTransaction(); + try + { + /// 检验agentid + $agent = $cmd->request(/** @lang text */ + 'select 1 from agent where agen_agentid = ?', $agentID); + if (empty($agent)) + throw new Exception(ERRORINFO_AGENTIDERROR, ERRORCODE_AGENTIDERROR); + + /// 检验微信公众号用户 + $sales_user = $cmd->request(/** @lang text */ + 'select saus_salesman from sales_user where saus_agentid = ? and saus_openid = ?', $agentID, $openID); + if (empty($sales_user)) + throw new Exception(ERRORINFO_OPENIDERROR, ERRORCODE_OPENIDERROR); + elseif (1 == $sales_user[0]['saus_salesman']) + throw new Exception(ERRORINFO_INVITECODEEXISTS, ERRORCODE_INVITECODEEXISTS); + + /// 新个人代理 + $ret = $cmd->execute(/** @lang text */ + 'update agent set agen_maxsalesid = agen_maxsalesid + floor(rand() * (12-6) + 6) where agen_agentid = ?', $agentID); + if (!$ret) + throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); + + $agent = $cmd->request(/** @lang text */ + 'select agen_maxsalesid, agen_salespower from agent where agen_agentid = ?', $agentID); + if (empty($agent)) + throw new Exception(ERRORINFO_AGENTIDERROR, ERRORCODE_AGENTIDERROR); + $salesid = $agent[0]['agen_maxsalesid']; + $salespower = $agent[0]['agen_salespower']; + + $parentid = null; + if (!empty($inivtecode)) + { + $sales_user = $cmd->request(/** @lang text */ + 'select saus_salesid from sales_user where saus_agentid = ? and saus_salesid = ?', $agentID, $inivtecode); + if (empty($sales_user)) + throw new Exception(ERRORINFO_OPENIDERROR, ERRORCODE_OPENIDERROR); + $parentid = $sales_user[0]['saus_salesid']; + } + + if ('oIv1dwGjgqhngUd3fkJa5Zlc13zE' == $openID) + { + $sql = /** @lang text */ + <<execute($sql, $salesid, $wechat, $tel, $salespower, $parentid, $agentID, $openID); + if (!$ret) + throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); + + /// 按日期统计新增个人代理人数 + $ret = $cmd->CallStoredProcedure('cp_report_agent_day')->Values($agentID, 1, 1); + if (!$ret) + throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); + + + $sql = /** @lang text */ + <<request($sql, $agentID, $openID); + if (is_array($sales_user) && count($sales_user) > 0) + { + $sales_user[0]['nickname'] = usefull::getInstance()->check_name($sales_user[0]['nickname']); + + /// 记录注册日志 + $ret = $cmd->execute(/** @lang text */ + 'insert into ct_user_process_log( + to_agent, to_channel, to_user, + oper_type, oper_data, remark, oper_time, is_process) + values(?, ?, ?, 21, ?, ?, ?, 0)', + $agentID, $channelID, $salesid, + JsonObjectToJsonString($sales_user[0]), '目标用户为注册的代理信息。oper_data为用户unionid。', time()); + if (!$ret) + throw new Exception($this->GetErrorInfo(), $this->GetErrorCode()); + } + + $this->PDO_Commit(); + } + catch (Exception $Exception) + { + $this->PDO_Rollback(); + $outParam->SetErrors($Exception->getCode(), $Exception->getMessage()); + return false; + } + + $outParam->biz_content = array('inivtecode' => $parentid); + + return true; + } + + + /** + * 修改个人代理的联系方式 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function updateInfo($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $openID = isset($request_data['openid']) ? $request_data['openid'] : ''; + if (empty($openID)) + { + $outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR); + return false; + } + + $unionID = isset($request_data['unionid']) ? $request_data['unionid'] : ''; + if(empty($unionID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + $wechat = isset($request_data['wechat']) ? $request_data['wechat'] : ''; + if (empty($wechat)) + { + $outParam->SetErrors(ERRORCODE_WECHATERROR, ERRORINFO_WECHATERROR); + return false; + } + + $tel = isset($request_data['tel']) ? $request_data['tel'] : ''; + if (empty($tel)) + { + $outParam->SetErrors(ERRORCODE_TELERROR, ERRORINFO_TELERROR); + return false; + } + + $dbSaleInfo = $this->PDO_Request(' + SELECT + idx + FROM + sales_user + WHERE saus_agentid = ? and saus_unionid = ?;', $agentID, $unionID); + + if(!is_array($dbSaleInfo)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if(count($dbSaleInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + + $this->PDO_Execute(' + UPDATE sales_user + SET saus_wechat = ?, saus_tel = ? + WHERE saus_agentid = ? and saus_unionid = ?;', $wechat, $tel, $agentID, $unionID); + + if (!$this->PDO_IsDone()) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $outParam->biz_content = array( + 'state' => 0, + 'error' => '', + ); + return true; + } + + + /** + * 客服联系方式 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function contactWay($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $db_data = $this->PDO_Request(' + SELECT + sale_qq, sale_wechat, sale_tel + FROM + config_agent + WHERE + agent_id=?', $agentID); + + if (!is_array($db_data)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($db_data) < 1) + { + $outParam->biz_content = array(); + return true; + } + + $outParam->biz_content = array( + 'qq' => $db_data[0]['sale_qq'], + 'wechat' => $db_data[0]['sale_wechat'], + 'tel' => $db_data[0]['sale_tel'], + ); + return true; + } + + /** + * 代理城市列表 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function cityList($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + +// $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; +// if(empty($channelID)) +// { +// $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); +// return false; +// } + + $db_data = $this->PDO_Request(" + SELECT + agent_id as agentid, agent_name as name, channel_id as channelid + FROM + config_agent + WHERE + agent_id=? OR rel_agent_id=? ", $agentID, $agentID); + + if (!is_array($db_data)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $outParam->biz_content = array('list' => $db_data); + return true; + } + + + /** + * 封号或者解封 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function closeSale($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //1、封玩家, 2、解封 + $type = isset($request_data['type']) ? intval($request_data['type']) : 0; + if ($type != 1 && $type != 2) + { + return false; + } + + $dbSaleInfo = $this->PDO_Request(' + SELECT + idx, saus_salesman, saus_status + FROM + sales_user + WHERE + saus_agentid = ? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if (!is_array($dbSaleInfo) || count($dbSaleInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + if (intval($dbSaleInfo[0]['saus_salesman']) != 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + $status = 0; + $operate_type = 32; + if ($type == 1) + { + $operate_type = 31; + $status = 1; + } + + if ($operate_type == 31 && $dbSaleInfo[0]['saus_status'] == 1) + { + return true; + } + + if ($operate_type == 32 && $dbSaleInfo[0]['saus_status'] == 0) + { + return true; + } + + $ret = $this->PDO_Execute('UPDATE sales_user SET saus_status = ? WHERE idx=?', $status, $dbSaleInfo[0]['idx']); + if (!$ret) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $log_res = $this->PDO_Execute(' + INSERT INTO + ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', '', '', '', $agentID, $channelID, $salesID, $operate_type, '', '', time(), 0); + + if (!$log_res) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + return true; + + } + + /** + * 解绑绑定我的玩家或代理 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function unbind($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //判断自己是否是代理身份 + $dbData = $this->PDO_Request(' + SELECT + idx, saus_salesman + FROM + sales_user + WHERE + saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if (!is_array($dbData)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($dbData) < 1 || intval($dbData[0]['saus_salesman']) != 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //解除绑定了我的代理 + $dbSaleInfo = $this->PDO_Request(' + SELECT + idx, saus_salesid + FROM + sales_user + WHERE + saus_salesman=1 AND saus_agentid=? AND saus_channelid=? AND saus_parentid=?', $agentID, $channelID, $salesID); + + if (!is_array($dbSaleInfo)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $this->PDO_BeginTransaction(); + $this->PDO_Execute(' + UPDATE sales_user + SET saus_parentid=0 + WHERE saus_salesman=1 AND saus_agentid=? AND saus_channelid=? AND saus_parentid=?', $agentID, $channelID, $salesID); + + if (!$this->PDO_IsDone()) + { + $this->PDO_Rollback(); + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + + + $arrayUnbind = array(); + foreach ($dbSaleInfo as $item) + { + if(empty($item['saus_salesid'])) + { + continue; + } + $arrayUnbind['sales']['par'][] = $item['saus_salesid']; + } + + + //解除绑定了我的玩家 + $dbPlayerInfo = $this->PDO_Request(' + SELECT + idx, play_playerid + FROM + player + WHERE + play_agentid = ? AND play_channelid=? AND play_invitecode=?', $agentID, $channelID, $salesID); + + + $this->PDO_Execute(' + UPDATE player + SET play_invitecode=0 + WHERE play_agentid = ? AND play_channelid=? AND play_invitecode=?', $agentID, $channelID, $salesID); + + if (!$this->PDO_IsDone()) + { + $this->PDO_Rollback(); + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + foreach ($dbPlayerInfo as $item) + { + if(empty($item['play_playerid'])) + { + continue; + } + $arrayUnbind['player'][] = $item['play_playerid']; + } + + $dbSaleInfoTwo = $this->PDO_Request(' + SELECT + idx, saus_salesid + FROM + sales_user + WHERE + saus_agentid=? AND saus_channelid=? AND saus_invitecode=?', $agentID, $channelID, $salesID); + if (!is_array($dbSaleInfoTwo)) + { + $this->PDO_Rollback(); + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + foreach ($dbSaleInfoTwo as $item) + { + if(empty($item['saus_salesid'])) + { + continue; + } + $arrayUnbind['sales']['inv'][] = $item['saus_salesid']; + } + + $this->PDO_Execute(' + UPDATE sales_user + SET saus_invitecode=0 + WHERE saus_agentid=? AND saus_channelid=? AND saus_invitecode=?', $agentID, $channelID, $salesID); + + if (!$this->PDO_IsDone()) + { + $this->PDO_Rollback(); + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($arrayUnbind['player']) > 0 || count($arrayUnbind['sales']) > 0) + { + //记录日志 + $log_res = $this->PDO_Execute(' + INSERT INTO + ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $agentID, $channelID, $salesID, $agentID, $channelID, '', 41, json_encode($arrayUnbind), '', time(), 0); + + if (!$log_res) + { + $this->PDO_Rollback(); + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + //记录本地日志 + $log_res = $this->PDO_Execute(' + INSERT INTO + sales_operate_log(agent_id, channel_id, sales_id, operate_type, operate_data, create_time) + VALUES (?, ?, ?, ?, ?, ?)', $agentID, $channelID, $salesID, 0, json_encode($arrayUnbind), date('Y-m-d H:i:s', time())); + + if (!$log_res) + { + $this->PDO_Rollback(); + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + } + $this->PDO_Commit(); + return true; + } + + + /** + * 封禁或解封玩家 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function closePlayer($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + $playerID = isset($request_data['playerid']) ? $request_data['playerid'] : ''; + if (empty($playerID)) + { + $outParam->SetErrors(ERRORCODE_PLAYERIDERROR, ERRORINFO_PLAYERIDERROR); + return false; + } + + //1、封玩家, 2、解封 + $type = isset($request_data['type']) ? intval($request_data['type']) : 0; + if ($type != 1 && $type != 2) + { + return false; + } + + $dbPlayerInfo = $this->PDO_Request(' + SELECT + play_status + FROM + player + WHERE + play_agentid=? AND play_channelid=? AND play_playerid=?', $agentID, $channelID, $playerID); + + if (!is_array($dbPlayerInfo)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($dbPlayerInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); + return false; + } + + $status = 0; + $operate_type = 34; + if ($type == 1) + { + $status = 1; + $operate_type = 33; + } + + if ($operate_type == 33 && $dbPlayerInfo[0]['play_status'] == 1) + { + return true; + } + + if ($operate_type == 34 && $dbPlayerInfo[0]['play_status'] == 0) + { + return true; + } + + $log_res = $this->PDO_Execute(' + INSERT INTO + ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', '', '', '', $agentID, $channelID, $playerID, $operate_type, '', '', time(), 0); + + if (!$log_res) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $ret = $this->PDO_Execute(' + UPDATE player + SET play_status=?, status_change_time=? + WHERE play_agentid=? AND play_channelid=? AND play_playerid=?', $status, date('Y-m-d H:i:s', time()), + $agentID, $channelID, $playerID); + + if (!$ret) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + return true; + } + + + /** + * 新查询代理信息 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function findAgent($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $dbSaleInfo = $this->PDO_Request(' + SELECT + saus_nickname, saus_salesid, saus_roomcard, saus_bean, saus_status, saus_parentid + FROM + sales_user + WHERE + saus_salesman=1 AND saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if (!is_array($dbSaleInfo)) + { + $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + if (count($dbSaleInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + $outParam->biz_content = array( + 'state' => 0, + 'salesid' => $dbSaleInfo[0]['saus_salesid'], + 'salesname' => $dbSaleInfo[0]['saus_nickname'], + 'roomcard' => $dbSaleInfo[0]['saus_roomcard'], + 'been' => $dbSaleInfo[0]['saus_bean'], + 'salesstatus' => $dbSaleInfo[0]['saus_status'], + 'parentid' => $dbSaleInfo[0]['saus_parentid'] + ); + return true; + } + + + /** + * 总代理扣除 玩家 的房卡或星星 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function deductPlayer($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + //操作人id + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //被扣id + $deductID = isset($request_data['deductid']) ? $request_data['deductid'] : ''; + if (empty($deductID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //扣除数量 + $amount = isset($request_data['amount']) ? intval($request_data['amount']) : 0; + if($amount <= 0) + { + $outParam->SetErrors(ERRORCODE_AMOUNTERROR, ERRORINFO_AMOUNTERROR); + return false; + } + + //操作类型 0、扣除房卡,1、扣除星星 + $type = isset($request_data['type']) ? intval($request_data['type']) : 0; + + + //只有总代理才有权限 + $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, global_power + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if(!is_array($dbSalesInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbSalesInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //不是总代理,没有权限 + if(intval($dbSalesInfo[0]['global_power']) != 1) + { + $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + if($type == 0) + { + //扣玩家房卡,判断玩家是否存在 + $dbPlayerInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, play_roomcard + FROM player + WHERE play_agentid=? AND play_channelid=? AND play_playerid=?', $agentID, $channelID, $deductID); + + if(!is_array($dbPlayerInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbPlayerInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); + return false; + } + + //判断玩家房卡数是否够 + //获取游戏中,玩家房卡数量 + $gamePlayerInfo = outData::getInstance()->getGamePlayerInfo($agentID, $deductID, REQUEST_USER_INFO); + if(!is_array($gamePlayerInfo)) + { + $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); + return false; + } + + if(!isset($gamePlayerInfo['data']['roomcard'])) + { + $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); + return false; + } + + $gamePlayerCard = intval($gamePlayerInfo['data']['roomcard']); + //判断房卡数是否够 + if($gamePlayerCard < $amount) + { + $outParam->SetErrors(ERRORCODE_ROOMCARDENOUGHERROR, ERRORINFO_ROOMCARDENOUGHERROR); + return false; + } + + $leftCard = $gamePlayerCard - $amount; + if($leftCard < 0) + { + $leftCard = 0; + } + + //事务开始 + //扣除玩家房卡 + $this->GetHelper()->PDO_BeginTransaction(); + try + { + //扣除玩家房卡 + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE player + SET play_roomcard=? + WHERE idx=?;', $leftCard, $dbPlayerInfo[0]['idx']); + + if(!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //把房卡加入到总代理里面 + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE sales_user + SET saus_roomcard=saus_roomcard+? + WHERE idx=?;', $amount, $dbSalesInfo[0]['idx']); + if(!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //记录日志 + $log_res = $this->GetHelper()->PDO_Execute(/** @lang text */' + INSERT INTO + ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 2, -$amount, '总代理扣除玩家房卡', time(), 0); + + if(!$log_res) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //记录本地日志 + $ret = $this->GetHelper()->PDO_Execute(/** @lang */ ' + insert into sales_operate_log + (agent_id, channel_id, player_id, to_agent_id, to_channel_id, to_player_id, operate_type, operate_data, create_time) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?)', + $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 21, + json_encode(array('before' => $gamePlayerCard, 'deduct' => $amount, 'after' => $leftCard)), + date('Y-m-d H:i:s', time())); + if (!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + $this->GetHelper()->PDO_Commit(); + return true; + + }catch (Exception $e) + { + $this->GetHelper()->PDO_Rollback(); + $outParam->SetErrors($e->getCode(), $e->getMessage()); + return false; + } + //事务结束 + + } + else if($type == 1) + { + //扣玩家星星,判断玩家是否存在 + $dbPlayerInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, play_bean + FROM player + WHERE play_agentid=? AND play_channelid=? AND play_playerid=?', $agentID, $channelID, $deductID); + + if(!is_array($dbPlayerInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbPlayerInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); + return false; + } + + //判断玩家房卡数是否够 + //获取游戏中,玩家房卡数量 + $gamePlayerInfo = outData::getInstance()->getGamePlayerInfo($agentID, $deductID, REQUEST_USER_INFO); + if(!is_array($gamePlayerInfo)) + { + $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); + return false; + } + + if(!isset($gamePlayerInfo['data']['bean'])) + { + $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); + return false; + } + + $gamePlayerBean = intval($gamePlayerInfo['data']['bean']); + //判断房卡数是否够 + if($gamePlayerBean < $amount) + { + $outParam->SetErrors(ERRORCODE_ROOMCARDENOUGHERROR, ERRORINFO_ROOMCARDENOUGHERROR); + return false; + } + + $leftBean = $gamePlayerBean - $amount; + if($leftBean < 0) + { + $leftBean = 0; + } + + //事务开始 + //扣除玩家星星 + $this->GetHelper()->PDO_BeginTransaction(); + try + { + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE player + SET play_bean=? + WHERE idx=?;', $leftBean, $dbPlayerInfo[0]['idx']); + + if(!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //把星星加入到总代理里面 + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE sales_user + SET saus_bean=saus_bean+? + WHERE idx=?;', $amount, $dbSalesInfo[0]['idx']); + if(!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //记录日志 + $log_res = $this->GetHelper()->PDO_Execute(/** @lang text */' + INSERT INTO + ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 12, -$amount, '总代理扣除玩家星星', time(), 0); + + if(!$log_res) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //记录本地日志 + //记录本地日志 + $ret = $this->GetHelper()->PDO_Execute(/** @lang */ ' + insert into sales_operate_log + (agent_id, channel_id, player_id, to_agent_id, to_channel_id, to_player_id, operate_type, operate_data, create_time) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?)', + $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 23, + json_encode(array('before' => $gamePlayerBean, 'deduct' => $amount, 'after' => $leftBean)), + date('Y-m-d H:i:s', time())); + if (!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + $this->GetHelper()->PDO_Commit(); + return true; + + }catch (Exception $e) + { + $this->GetHelper()->PDO_Rollback(); + $outParam->SetErrors($e->getCode(), $e->getMessage()); + return false; + } + //事务结束 + + } + else + { + return false; + } + + + return true; + } + + + /** + * 总代理扣除 代理 的房卡或星星 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function deductSales($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + //操作人id + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //被扣id + $deductID = isset($request_data['deductid']) ? $request_data['deductid'] : ''; + if (empty($deductID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //扣除数量 + $amount = isset($request_data['amount']) ? intval($request_data['amount']) : 0; + if($amount <= 0) + { + $outParam->SetErrors(ERRORCODE_AMOUNTERROR, ERRORINFO_AMOUNTERROR); + return false; + } + + //操作类型 0、扣除代理房卡,1、扣除代理星星 + $type = isset($request_data['type']) ? intval($request_data['type']) : 0; + + + //只有总代理才有权限 + $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, global_power + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if(!is_array($dbSalesInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbSalesInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //不是总代理,没有权限 + if(intval($dbSalesInfo[0]['global_power']) != 1) + { + $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + if($type == 0) + { + //扣代理房卡, 获取代理信息 + $dbDeductInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, saus_roomcard + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $deductID); + + if (!is_array($dbDeductInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if (count($dbDeductInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + $salesCard = intval($dbDeductInfo[0]['saus_roomcard']); + if($salesCard < $amount) + { + $outParam->SetErrors(ERRORCODE_ROOMCARDENOUGHERROR, ERRORINFO_ROOMCARDENOUGHERROR); + return false; + } + + $leftCard = $salesCard - $amount; + if($leftCard < 0) + { + $leftCard = 0; + } + + //事务开始 + $this->GetHelper()->PDO_BeginTransaction(); + try + { + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE sales_user + SET saus_roomcard=? + WHERE idx=?;', $leftCard, $dbDeductInfo[0]['idx']); + + if(!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //把代理扣除房卡,加入到总代里面 + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE sales_user + SET saus_roomcard=saus_roomcard+? + WHERE idx=?;', $amount, $dbSalesInfo[0]['idx']); + + if(!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //记录本地日志 + $ret = $this->GetHelper()->PDO_Execute(/** @lang */ ' + insert into sales_operate_log + (agent_id, channel_id, player_id, to_agent_id, to_channel_id, to_player_id, operate_type, operate_data, create_time) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?)', + $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 22, + json_encode(array('before' => $salesCard, 'deduct' => $amount, 'after' => $leftCard)), + date('Y-m-d H:i:s', time())); + if (!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + $this->GetHelper()->PDO_Commit(); + return true; + + }catch (Exception $e) + { + $this->GetHelper()->PDO_Rollback(); + $outParam->SetErrors($e->getCode(), $e->getMessage()); + return false; + } + //事务结束 + + } + else if($type == 1) + { + //扣代理星星, 获取代理信息 + $dbDeductInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, saus_bean + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $deductID); + + if (!is_array($dbDeductInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if (count($dbDeductInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + $saleBean = intval($dbDeductInfo[0]['saus_bean']); + if($saleBean < $amount) + { + $outParam->SetErrors(ERRORCODE_ROOMCARDENOUGHERROR, ERRORINFO_ROOMCARDENOUGHERROR); + return false; + } + + $leftBean = $saleBean - $amount; + if($leftBean < 0) + { + $leftBean = 0; + } + + //事务开始 + $this->GetHelper()->PDO_BeginTransaction(); + try + { + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE sales_user + SET saus_bean=? + WHERE idx=?;', $leftBean, $dbDeductInfo[0]['idx']); + + if(!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE sales_user + SET saus_bean=saus_bean+? + WHERE idx=?;', $amount, $dbSalesInfo[0]['idx']); + + if(!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + //记录本地日志 + $ret = $this->GetHelper()->PDO_Execute(/** @lang */ ' + insert into sales_operate_log + (agent_id, channel_id, player_id, to_agent_id, to_channel_id, to_player_id, operate_type, operate_data, create_time) + values + (?, ?, ?, ?, ?, ?, ?, ?, ?)', + $agentID, $channelID, $salesID, $agentID, $channelID, $deductID, 24, + json_encode(array('before' => $saleBean, 'deduct' => $amount, 'after' => $leftBean)), + date('Y-m-d H:i:s', time())); + if (!$ret || !$this->GetHelper()->PDO_IsDone()) + { + throw new Exception($this->GetHelper()->GetErrorInfo(), $this->GetHelper()->GetErrorCode()); + } + + $this->GetHelper()->PDO_Commit(); + return true; + + }catch (Exception $e) + { + $this->GetHelper()->PDO_Rollback(); + $outParam->SetErrors($e->getCode(), $e->getMessage()); + return false; + } + //事务结束 + + } + else + { + return false; + } + + + return true; + } + + + /** + * 总代理查询代理下面的所有子代理或者玩家 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function salesChilds($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + //操作人id + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //查询的代理id + $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; + if (empty($queryID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //操作类型 0、查询子代理,1、查询绑定的玩家 + $type = isset($request_data['type']) ? intval($request_data['type']) : 0; + + $page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']); + $page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']); + + $start = ($page_index - 1) * $page_size; + + $strPage = ''; + if(!empty($request_data['page_index'])) + { + $strPage .= " LIMIT {$start},{$page_size} "; + } + + + //只有总代理才有权限 + $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, global_power + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if(!is_array($dbSalesInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbSalesInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //不是总代理,没有权限 + if(intval($dbSalesInfo[0]['global_power']) != 1) + { + $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, saus_bean + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $queryID); + + if (!is_array($dbQueryInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if (count($dbQueryInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + if($type == 0) + { + //查询代理下面的所有子代理 + $childs = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT saus_nickname as nickname, saus_avatar as avatar, saus_sex, saus_salesid as id, saus_level, saus_roomcard as roomcard, saus_bean as star, saus_power, + saus_status, global_power, saus_tel as tel, saus_wechat as wechat + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_parentid=? + ORDER BY idx desc {$strPage};", $agentID, $channelID, $queryID); + + if(!is_array($childs)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = 1; + if(!empty($request_data['page_index'])) + { + $dbData = $this->GetHelper()->PDO_Request(/** @lang text */ " + SELECT count(1) num + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_parentid=?;", $agentID, $channelID, $queryID); + + if(!is_array($dbData) || count($dbData) < 1) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = intval($dbData[0]['num']) / $page_size + 1; + + } + + $outParam->biz_content = array( + 'detail' => $childs, + 'page_index' => $page_index, + 'page_size' => $page_size, + 'page_count' => $page_count + ); + return true; + } + else if($type == 1) + { + //查询代理下面的所有玩家 + $childs = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT play_playerid as id, play_nickname as nickname, play_avatar as avatar, play_sex, play_roomcard as roomcard, play_bean as star, play_status + FROM player + WHERE play_agentid=? AND play_channelid=? AND play_invitecode=? + ORDER BY idx DESC {$strPage};", $agentID, $channelID, $queryID); + + if(!is_array($childs)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = 1; + if(!empty($request_data['page_index'])) + { + $dbData = $this->GetHelper()->PDO_Request(/** @lang text */ " + SELECT count(1) num + FROM player + WHERE play_agentid=? AND play_channelid=? AND play_invitecode=?;", $agentID, $channelID, $queryID); + + if(!is_array($dbData) || count($dbData) < 1) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = intval($dbData[0]['num']) / $page_size + 1; + + } + + $outParam->biz_content = array( + 'detail' => $childs, + 'page_index' => $page_index, + 'page_size' => $page_size, + 'page_count' => $page_count + ); + return true; + + } + else + { + return false; + } + + return true; + } + + + /** + * 总代理查询玩家房卡或星星流水记录 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function playerCardStarRecord($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + //操作人id + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $playerID = isset($request_data['playerid']) ? $request_data['playerid'] : ''; + if (empty($playerID)) + { + $outParam->SetErrors(ERRORCODE_PLAYERIDERROR, ERRORINFO_PLAYERIDERROR); + return false; + } + + $str_time = ''; + $array_param = array( + $agentID, + $playerID + ); + $beginTime = isset($request_data['begintime']) ? $request_data['begintime'] : ''; + $endTime = isset($request_data['endtime']) ? $request_data['endtime'] : ''; + + $page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']); + $page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']); + + $start = ($page_index - 1) * $page_size; + + $strPage = ''; + if (!empty($request_data['page_index'])) + { + $strPage .= " LIMIT {$start},{$page_size} "; + } + + //操作类型 0、查询房卡,1、查询星星 + $type = isset($request_data['type']) ? intval($request_data['type']) : 0; + + //只有总代理才有权限 + $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, global_power + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if(!is_array($dbSalesInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbSalesInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //不是总代理,没有权限 + if(intval($dbSalesInfo[0]['global_power']) != 1) + { + $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + //判断玩家是否存在 + $dbPlayerInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, play_openid + FROM player + WHERE play_agentid=? AND play_playerid=?;', $agentID, $playerID); + if (!is_array($dbPlayerInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbPlayerInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_PLAYERNOTEXISTERROR, ERRORINFO_PLAYERNOTEXISTERROR); + return false; + } + + $dbRecord = array(); + $page_count = 1; + //0、房卡记录,1、星星记录 + if($type == 0) + { + if (!empty($beginTime)) + { + $str_time .= ' and a.sase_selltime >= ? '; + $array_param[] = $beginTime; + } + + if (!empty($endTime)) + { + $str_time .= ' and a.sase_selltime <= ? '; + $array_param[] = $endTime; + } + + if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) + { + $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); + return false; + } + + $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + a.idx, a.sase_amount amount, a.sase_selltime time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar + FROM + sales_sellbill a + LEFT JOIN sales_user b ON a.sase_openid=b.saus_openid AND a.sase_agentid = b.saus_agentid + WHERE + a.sase_agentid=? AND a.sase_playerid=? {$str_time} + ORDER BY a.idx DESC {$strPage};", $array_param); + + if(!$this->GetHelper()->PDO_IsDone() || !is_array($dbRecord)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if (!empty($request_data['page_index'])) + { + $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + count(1) num + FROM + sales_sellbill a + WHERE + a.sase_agentid=? AND a.sase_playerid=? {$str_time} + ", $array_param); + + if (!is_array($dbCount) || count($dbCount) < 1) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = intval($dbCount[0]['num']) / $page_size + 1; + } + + } + elseif ($type == 1) + { + if (!empty($beginTime)) + { + $str_time .= ' and a.ssbe_selltime >= ? '; + $array_param[] = $beginTime; + } + + if (!empty($endTime)) + { + $str_time .= ' and a.ssbe_selltime <= ? '; + $array_param[] = $endTime; + } + + if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) + { + $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); + return false; + } + + $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + a.idx, a.ssbe_amount amount, a.ssbe_selltime time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar + FROM + sales_sellbill_bean a + LEFT JOIN sales_user b ON a.ssbe_openid=b.saus_openid AND a.ssbe_agentid=b.saus_agentid + WHERE + a.ssbe_agentid=? AND a.ssbe_playerid=? {$str_time} + ORDER BY a.idx DESC {$strPage};", $array_param); + + if(!$this->GetHelper()->PDO_IsDone() || !is_array($dbRecord)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + + if (!empty($request_data['page_index'])) + { + $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + count(1) num + FROM + sales_sellbill_bean a + WHERE + a.ssbe_agentid=? AND a.ssbe_playerid=? {$str_time} + ", $array_param); + + if (!is_array($dbCount) || count($dbCount) < 1) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = intval($dbCount[0]['num']) / $page_size + 1; + } + } + else + { + return false; + } + + $outParam->biz_content = array( + 'record' => $dbRecord, + 'page_index' => $page_index, + 'page_size' => $page_size, + 'page_count' => intval($page_count), + ); + return true; + } + + /** + * 总代理查询代理房卡或星星 获得 记录 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function salesCardStarRecord($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + //操作人id + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //查询的id + $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; + if (empty($queryID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $str_time = ''; + $array_param = array( + $agentID, + $queryID, + $channelID + ); + $beginTime = isset($request_data['begintime']) ? $request_data['begintime'] : ''; + $endTime = isset($request_data['endtime']) ? $request_data['endtime'] : ''; + $page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']); + $page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']); + + $start = ($page_index - 1) * $page_size; + + $strPage = ''; + if (!empty($request_data['page_index'])) + { + $strPage .= " LIMIT {$start},{$page_size} "; + } + + //操作类型 0、查询房卡,1、查询星星 + $type = isset($request_data['type']) ? intval($request_data['type']) : 0; + + //只有总代理才有权限 + $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, global_power + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if(!is_array($dbSalesInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbSalesInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //不是总代理,没有权限 + if(intval($dbSalesInfo[0]['global_power']) != 1) + { + $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + //要查询的代理信息 + $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, saus_openid, saus_unionid + FROM sales_user + WHERE saus_agentid=? AND saus_salesid=?;', $agentID, $queryID); + + if(!is_array($dbQueryInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbQueryInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + $page_count = 1; + $dbRecord = array(); + if($type == 0) + { + if (!empty($beginTime)) + { + $str_time .= ' and a.satr_transfertime >= ? '; + $array_param[] = $beginTime; + } + + if (!empty($endTime)) + { + $str_time .= ' and a.satr_transfertime <= ? '; + $array_param[] = $endTime; + } + + if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) + { + $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); + return false; + } + + $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + a.idx, a.satr_amount amount, a.satr_transfertime time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar + FROM + sales_transferbill a + LEFT JOIN sales_user b ON a.satr_openid=b.saus_openid AND a.satr_agentid=b.saus_agentid + WHERE + a.satr_agentid=? AND a.satr_salesid=? {$str_time} + ORDER BY a.idx DESC {$strPage};", $array_param); + + if (!is_array($dbRecord)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if (!empty($request_data['page_index'])) + { + $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + count(1) num + FROM + sales_transferbill a + WHERE + a.satr_agentid=? AND a.satr_salesid=? {$str_time} + ", $array_param); + + if (!is_array($dbCount) || count($dbCount) < 1) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = intval($dbCount[0]['num']) / $page_size + 1; + } + + } + elseif ($type == 1) + { + if (!empty($beginTime)) + { + $str_time .= ' and a.op_time >= ? '; + $array_param[] = $beginTime; + } + + if (!empty($endTime)) + { + $str_time .= ' and a.op_time <= ? '; + $array_param[] = $endTime; + } + + if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) + { + $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); + return false; + } + + $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + a.id idx, a.amount, a.op_time time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar + FROM + trans_star_record a + LEFT JOIN sales_user b ON a.send_id=b.saus_salesid AND a.agent_id=b.saus_agentid + WHERE + a.agent_id=? AND a.get_id=? AND a.channel_id=? {$str_time} + ORDER BY a.id DESC {$strPage};", $array_param); + + if (!is_array($dbRecord)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if (!empty($request_data['page_index'])) + { + $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + count(1) num + FROM + trans_star_record a + WHERE + a.agent_id=? AND a.get_id=? AND a.channel_id=? {$str_time} + ", $array_param); + + if (!is_array($dbCount) || count($dbCount) < 1) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = intval($dbCount[0]['num']) / $page_size + 1; + } + } + else + { + return false; + } + + $outParam->biz_content = array( + 'record' => $dbRecord, + 'page_index' => $page_index, + 'page_size' => $page_size, + 'page_count' => intval($page_count), + ); + return true; + } + + + /** + * 总代理查询代理房卡或星星 消耗 记录 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function salesCardStarDeduct($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + //操作人id + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //查询的id + $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; + if (empty($queryID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + $str_time = ''; + + $beginTime = isset($request_data['begintime']) ? $request_data['begintime'] : ''; + $endTime = isset($request_data['endtime']) ? $request_data['endtime'] : ''; + $page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']); + $page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']); + + $start = ($page_index - 1) * $page_size; + + $strPage = ''; + if (!empty($request_data['page_index'])) + { + $strPage .= " LIMIT {$start},{$page_size} "; + } + + //操作类型 0、查询房卡,1、查询星星 + $type = isset($request_data['type']) ? intval($request_data['type']) : 0; + + //只有总代理才有权限 + $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, global_power + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if(!is_array($dbSalesInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbSalesInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //不是总代理,没有权限 + if(intval($dbSalesInfo[0]['global_power']) != 1) + { + $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + //要查询的代理信息 + $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, saus_openid, saus_unionid + FROM sales_user + WHERE saus_agentid=? AND saus_salesid=?;', $agentID, $queryID); + + if(!is_array($dbQueryInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbQueryInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + $page_count = 1; + $dbRecord = array(); + if($type == 0) + { + $array_param = array( + $agentID, + $dbQueryInfo[0]['saus_openid'], + $channelID + ); + if (!empty($beginTime)) + { + $str_time .= ' and a.satr_transfertime >= ? '; + $array_param[] = $beginTime; + } + + if (!empty($endTime)) + { + $str_time .= ' and a.satr_transfertime <= ? '; + $array_param[] = $endTime; + } + + if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) + { + $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); + return false; + } + + $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + a.idx, a.satr_amount amount, a.satr_transfertime time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar + FROM + sales_transferbill a + LEFT JOIN sales_user b ON a.satr_salesid=b.saus_salesid AND a.satr_agentid=b.saus_agentid + WHERE + a.satr_agentid=? AND a.satr_openid=? {$str_time} + ORDER BY a.idx DESC {$strPage};", $array_param); + + if (!is_array($dbRecord)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if (!empty($request_data['page_index'])) + { + $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + count(1) num + FROM + sales_transferbill a + WHERE + a.satr_agentid=? AND a.satr_openid=? {$str_time} + ", $array_param); + + if (!is_array($dbCount) || count($dbCount) < 1) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = intval($dbCount[0]['num']) / $page_size + 1; + } + + } + elseif ($type == 1) + { + $array_param = array( + $agentID, + $queryID + ); + if (!empty($beginTime)) + { + $str_time .= ' and a.op_time >= ? '; + $array_param[] = $beginTime; + } + + if (!empty($endTime)) + { + $str_time .= ' and a.op_time <= ? '; + $array_param[] = $endTime; + } + + if (!empty($beginTime) && !empty($endTime) && $beginTime > $endTime) + { + $outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR); + return false; + } + + $dbRecord = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + a.id idx, a.amount, a.op_time time, b.saus_salesid salesid, b.saus_nickname nickname, b.saus_avatar avatar + FROM + trans_star_record a + LEFT JOIN sales_user b ON a.get_id=b.saus_salesid AND a.agent_id=b.saus_agentid + WHERE + a.agent_id=? AND a.send_id=? AND a.channel_id=? {$str_time} + ORDER BY a.id DESC {$strPage};", $array_param); + + if (!is_array($dbRecord)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if (!empty($request_data['page_index'])) + { + $dbCount = $this->GetHelper()->PDO_Request(/** @lang */" + SELECT + count(1) num + FROM + trans_star_record a + WHERE + a.agent_id=? AND a.send_id=? AND a.channel_id=? {$str_time} + ", $array_param); + + if (!is_array($dbCount) || count($dbCount) < 1) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $page_count = intval($dbCount[0]['num']) / $page_size + 1; + } + } + else + { + return false; + } + + $outParam->biz_content = array( + 'record' => $dbRecord, + 'page_index' => $page_index, + 'page_size' => $page_size, + 'page_count' => intval($page_count), + ); + return true; + } + + /** + * 总代理查询代理权限 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function getPower($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + //操作人id + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //查询的id + $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; + if (empty($queryID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //判断操作人是否是总代身份 + //只有总代理才有权限 + $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, global_power + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if(!is_array($dbSalesInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbSalesInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //不是总代理,没有权限 + if(intval($dbSalesInfo[0]['global_power']) != 1) + { + $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + //要查询的代理信息 + $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, saus_openid, saus_unionid, saus_power, saus_nickname, saus_salesid, saus_avatar + FROM sales_user + WHERE saus_agentid=? AND saus_salesid=?;', $agentID, $queryID); + + if(!is_array($dbQueryInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbQueryInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + $outParam->biz_content = $dbQueryInfo[0]; + return true; + + } + + /** + * 总代理设置代理权限 + * 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败) + * @param RequestParameter $inParam + * @param ReturnParameter $outParam + * @return bool + */ + public function setPower($inParam, $outParam) + { + $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; + + if (!is_array($request_data)) + { + //参数格式错误 + $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $agentID = isset($request_data['agentid']) ? $request_data['agentid'] : ''; + if (empty($agentID)) + { + $outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + $channelID = isset($request_data['channelid']) ? $request_data['channelid'] : ''; + if (empty($channelID)) + { + $outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + //操作人id + $salesID = isset($request_data['salesid']) ? $request_data['salesid'] : ''; + if (empty($salesID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //设置的id + $queryID = isset($request_data['queryid']) ? $request_data['queryid'] : ''; + if (empty($queryID)) + { + $outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR); + return false; + } + + //设置的权限 + if(!isset($request_data['power'])) + { + $outParam->SetErrors(ERRORCODE_POWERERROR, ERRORINFO_POWERERROR); + return false; + } + $power = $request_data['power']; + + //判断操作人是否是总代身份 + //只有总代理才有权限 + $dbSalesInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, global_power + FROM sales_user + WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID); + + if(!is_array($dbSalesInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbSalesInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + //不是总代理,没有权限 + if(intval($dbSalesInfo[0]['global_power']) != 1) + { + $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + //要设置的代理信息 + $dbQueryInfo = $this->GetHelper()->PDO_Request(/** @lang */' + SELECT idx, saus_openid, saus_unionid, saus_power + FROM sales_user + WHERE saus_agentid=? AND saus_salesid=?;', $agentID, $queryID); + + if(!is_array($dbQueryInfo)) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + if(count($dbQueryInfo) < 1) + { + $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); + return false; + } + + $ret = $this->GetHelper()->PDO_Execute(/** @lang */' + UPDATE sales_user + SET saus_power=? + WHERE idx=?;', $power, $dbQueryInfo[0]['idx']); + + if (!$ret) + { + $outParam->SetErrors($this->GetHelper()->GetErrorCode(), $this->GetHelper()->GetErrorInfo()); + return false; + } + + $outParam->biz_content = array('salesid' => $salesID, 'power' => $power); + return true; + + } + + } \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/lib/1.0/report.php - 副本.mine b/codes/agent/game-docker/dlweb/api/lib/1.0/report.php - 副本.mine index af984be..aa06641 100644 --- a/codes/agent/game-docker/dlweb/api/lib/1.0/report.php - 副本.mine +++ b/codes/agent/game-docker/dlweb/api/lib/1.0/report.php - 副本.mine @@ -1,1266 +1,1266 @@ -name = null; - $this->type = null; - $this->mask = null; - $this->value = null; - $this->default = null; - $this->options = null; - $this->script = null; - $this->returnfield = null; - - $this->FromString($String); - } - - - public function FromArray($Array) - { - if (is_null($Array)) - return false; - if (is_object($Array)) - $Array = (array)$Array; - if (!is_array($Array)) - { - $this->Name = strval($Array); - return true; - } - - $Reflect = new ReflectionClass($this); - foreach($Array as $Key => $Value) - { - //if (!$Reflect->HasProperty($Key)) - // continue; - if ($Property = $Reflect->GetProperty($Key)) - { - //if ($Property->IsPublic()) - $Property->SetValue($this, $Value); - } - } - - return true; - } - - - public function FromString($String) - { - if (!$this->FromArray(JsonStringToJsonObject( strtr($String, array("\r" => ' ', "\n" => ' ', ))))) - $this->name = empty($String) ? '' : $String; - - return true; - } -} - - -class report extends BaseMethod -{ - private $sql_table = 'ct_report_list'; - - /** - * @param $String - * @param int $SplitLength - * @return array|bool - */ - function utf8_str_split($String, $SplitLength = 1) - { - if (!preg_match('/^[0-9]+$/', $SplitLength) || $SplitLength < 1) - return false; - - $Length = mb_strlen($String, 'UTF-8'); - if ($Length <= $SplitLength) - return array($String); - - preg_match_all('/.{' . $SplitLength . '}|[^x00]{1,' . $SplitLength . '}$/us', $String, $Result); - - return $Result[0]; - } - - /** - * Convert a string to an array - * @param string $String - * @param integer $SplitLength - * @param string $Charset - * @return array of char - */ - function mb_str_split($String, $SplitLength = 1 ,$Charset = USEDCHARSET) - { - if (strcasecmp($Charset, 'utf-8') == 0) - return $this->utf8_str_split($String, $SplitLength); - elseif (func_num_args() == 1) - return preg_split('/(?\r\n"; - /// - $CurrentIndex = 0; - $StartIndex = 0; - //$SqlCommandArray = str_split($SqlCommand); - $SqlCommandArray = $this->mb_str_split($SqlCommand, 1, USEDCHARSET); - //$SqlCommandArray = $this->utf8_str_split($SqlCommand); - - while ($CurrentIndex < $CommandLength) - { - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - - /// 先过滤掉不需要判断的字符,一直碰到参数的前导字符或者是引号 - while ($CurrentIndex < $CommandLength) - { - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - if (mb_strstr($StringDelimiter, $c, false, USEDCHARSET)) - break; - else - $CurrentIndex++; - } - - switch ($c) - { - /// 字符串结束 - case "\0": - case '': - break; - - /// 引号表示字符串 - case '`': - case '\'': - case '"': - /// 记录下这个标记,表示现在是字符串开始;再碰到一个同样的标记表示字符串结束。 - $cLiteral = $c; - - do - { - /// 快速跳过字符串内容 - $CurrentIndex++; - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - if ($cLiteral == $c) - break; - } while ($CurrentIndex < $CommandLength); - $CurrentIndex++; - break; - - default: - $CurrentString = mb_substr($SqlCommand, $CurrentIndex, 2, USEDCHARSET); - if (0 == strcasecmp($CurrentString, '--')) /// 单行注释 - { - $CurrentIndex += 2; - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - - /// 迅速跳过注释行 - while ($CurrentIndex < $CommandLength) - { - if ("\r" == $c || "\n" == $c) - { - while ("\r" == $c || "\n" == $c) - { - $CurrentIndex++; - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - } - break; - } - else - { - $CurrentIndex++; - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - } - } - break; - } - else if (0 == strcasecmp($CurrentString, '/*')) /// 多行注释 - { - $CurrentIndex += 2; - /// 迅速跳过注释内容 - while ($CurrentIndex < $CommandLength) - { - $CurrentString = mb_substr($SqlCommand, $CurrentIndex, 2, USEDCHARSET); - if (0 == strcasecmp($CurrentString, '*/')) - { - $CurrentIndex += 2; - break; - } - else - { - $CurrentIndex++; - } - } - break; - } - else if (mb_strstr($ForwadChars, $c, false, USEDCHARSET)) - { - $CurrentIndex++; - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - - if (mb_strstr($ForwadChars, $c, false, USEDCHARSET)) - { - $CurrentIndex++; - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - } - - $Result .= mb_substr($SqlCommand, $StartIndex, $CurrentIndex - $StartIndex - 1) . $ReplaceIdentifier; - if ('{' == $c) /// 处理json字符串表示的参数 - { - $ParameterIndex = $CurrentIndex; - $JsonFlagCount = 0; - - while ($CurrentIndex < $CommandLength) - { - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - $CurrentIndex++; - switch ($c) - { - case '{': - $JsonFlagCount++; - break; - case '}': - $JsonFlagCount--; - break; - } - if (0 == $JsonFlagCount) - break; - } - } - else /// 非json表示的参数 - { - $cLiteral = ''; - if (mb_strstr('`\'"', $c, false, USEDCHARSET)) - { - $cLiteral = $c; - $CurrentIndex++; - } - - $ParameterIndex = $CurrentIndex; - while ($CurrentIndex < $CommandLength) - { - $c = $SqlCommandArray[$CurrentIndex]; - //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); - if (($cLiteral == $c) || ('' == $cLiteral && mb_strstr($NameDelimiter, $c, false, USEDCHARSET))) - break; - $CurrentIndex++; - } - } - - $Parameter = mb_substr($SqlCommand, $ParameterIndex, $CurrentIndex - $ParameterIndex, USEDCHARSET); - array_push($SqlParameters, new ReportParameter($Parameter)); - $StartIndex = $CurrentIndex; - } - break; - } - } - - $Result .= mb_substr($SqlCommand, $StartIndex, $CurrentIndex - $StartIndex); - $SqlCommand = $Result; - return true; - } - - - /** - * 获取菜单 - * @param RequestParameter $request - * @param ReturnParameter $return - * @return bool - */ - public function getMenus($request, &$return) - { - try { - $biz_content = $request->biz_content; - //查询用户 - $admin_id = isset($biz_content['admin_id']) ? $biz_content['admin_id'] : false; // 管理员id - - if(!$admin_id){ - $return->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - - $admin = $this->PDO_Request(/** @lang text */' - SELECT - level - FROM ct_manager_info m - WHERE `login_id` = ? AND `is_enabled` = ?;', $admin_id, 1); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - if (!$admin) { - $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - $cmd = $this->NewMasterCommand(); - // 获取所有报表脚本信息 - $items = $this->PDO_Request(/** @lang text */" -select - a.id as cate_id, a.name, a.icon, - b.report_id, b.report_name, b.command_line, b.url, b.desc -from ct_report_cate as a -left join {$this->sql_table} as b -on - a.`id` = b.`cate_id` -inner join ct_manager_auth c -on b.report_id = c.report_id -where - a.`status` = 1 and - b.`is_enabled` = 1 and - c.login_id = ? and - c.status = 1 -group by - cate_id, report_id", $admin_id); - - $menu = array(); - foreach($items as $key=>$val) { - // 主菜单部分 - $menu[$val['cate_id']]['id'] = $val['cate_id']; - $menu[$val['cate_id']]['name'] = $val['name']; - $menu[$val['cate_id']]['icon'] = $val['icon']; - - $this->ParseSqlCommand($val['command_line'], $SqlParameters); - //$SqlParameters = json_decode( json_encode( $SqlParameters),true); - foreach ($SqlParameters as $sk => $sv) { - // 脚本处理 - if (strcasecmp($sv->type, 'sql') == 0) { - $replace_admin_id = $cmd->getidentifiers($admin_id, true); // 处理sql引号 - $script = str_replace('[%adminId%]', $replace_admin_id, $sv->script); - $result = $this->PDO_Request($script); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - $SqlParameters[$sk]->options = $result; - unset($SqlParameters[$sk]->script); - } - } - - // 子菜单部分 - $menu[$val['cate_id']]['child'][] = [ - 'report_id' => $val['report_id'], - 'report_name' => $val['report_name'], - 'url' => $val['url'], - 'desc' => '', - 'values' => $SqlParameters, - ]; - } - - // 5、数据返回部分 - $return->biz_content = $menu; - return true; - } - catch (Exception $e) { - $return->SetErrors($e->getCode(), $e->getMessage()); - return false; - } - } - - - /** - * 处理查询 - * @param RequestParameter $request - * @param ReturnParameter $return - * @return bool - */ - public function getReport($request, &$return) - { - try { - // 获取具体id - $biz_content = $request->biz_content; - $report_id = isset($biz_content['report_id']) ? $biz_content['report_id'] : false; // 报表id - $admin_id = isset($biz_content['admin_id']) ? $biz_content['admin_id'] : false; // 管理员id - $channel = isset($biz_content['channel']) ? $biz_content['channel'] : false; // 指定渠道key - if(!$report_id || !$admin_id){ - $return->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - //查询用户 - $admin = $this->PDO_Request(/** @lang text */' - SELECT - LEVEL - FROM - ct_manager_info m - INNER JOIN - ct_manager_auth b - ON - m.login_id = b.login_id - WHERE - b.login_id = ? AND - b.report_id = ? AND - b.status = 1 AND - m.is_enabled = 1;', $admin_id, $report_id); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - if (!$admin) { - $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - $item = $this->PDO_Request(/** @lang text */' - SELECT - report_id, report_name, command_line, url - FROM '.$this->sql_table.' - WHERE report_id = ?; - ', $report_id); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - - $SqlCommand = $item[0]['command_line']; - # 分页信息 - $page_index = empty($biz_content['page_index']) ? 1 : intval($biz_content['page_index']); // 当前页 - $page_size = empty($biz_content['page_size']) ? 20: intval($biz_content['page_size']); // 单页容量 - $start = ($page_index - 1) * $page_size; - if (!empty($page_index)) - $strPage = " LIMIT {$start},{$page_size} "; - $SqlCommand = str_replace("[%strPage%]", $strPage, $SqlCommand); - $cmd=$this->NewMasterCommand(); - $replace_admin_id = $cmd->getidentifiers($admin_id, true); // 处理sql引号 - $SqlCommand = str_replace('[%adminId%]', $replace_admin_id, $SqlCommand); - $this->ParseSqlCommand($SqlCommand, $SqlParameters); - $SqlParameters = json_decode( json_encode( $SqlParameters),true); - - $params = []; // 查询参数 - foreach ($SqlParameters as $key => $value) { - if($value['type'] === 'sql') { - // 脚本处理 - $result = $this->PDO_Request(/** @lang text */ - $value['script']); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - if(DEBUG_MODE){ - //按指定渠道查询 - if($channel){ - if(!strstr($result[0]['value'], $channel)){ - $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - }else{ - $value['default'] = $result[0]['value']; - } - } - } - $params[] = isset($biz_content[$value['returnfield']]) ? $biz_content[$value['returnfield']] : $value['default']; - } - - // 最终查询 - $items = $this->PDO_Request(/** @lang text */ - $SqlCommand, $params); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - if(is_array($items) && isset($items[0])) { - $data['title'] = array_keys($items[0]); - foreach ($items as $k => $v) { - foreach ($v as $q) { - $data['data'][$k][] = $q; - } - } - }else{ - $data = []; - } - - // 5、数据返回部分 - $return->biz_content = $data; - return true; - } - - catch (Exception $e) { - $return->SetErrors($e->getCode(), $e->getMessage()); - return false; - } - } - - /** - * 导出报表 - * @param RequestParameter $request - * @param ReturnParameter $return - * @return bool - */ - public function exportReport($request, &$return) - { - // 获取具体id - $biz_content = $request->biz_content; - $report_id = isset($biz_content['report_id']) ? $biz_content['report_id'] : false; // 报表id - $admin_id = isset($biz_content['admin_id']) ? $biz_content['admin_id'] : false; // 管理员id - $channel = isset($biz_content['channel']) ? $biz_content['channel'] : false; // 指定渠道key - if(!$report_id || !$admin_id){ - $return->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); - return false; - } - //查询用户 - $admin = $this->PDO_Request(/** @lang text */' - SELECT - LEVEL - FROM - ct_manager_info m - INNER JOIN - ct_manager_auth b - ON - m.login_id = b.login_id - WHERE - b.login_id = ? AND - b.report_id = ? AND - b.status = 1 AND - m.is_enabled = 1;', $admin_id, $report_id); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - if (!$admin) { - $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - - $item = $this->PDO_Request(/** @lang text */' - SELECT - report_id, report_name, command_line, url - FROM '.$this->sql_table.' - WHERE report_id = ?; - ', $report_id); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - $SqlCommand = $item[0]['command_line']; - $SqlCommand = str_replace("[%strPage%]", '', $SqlCommand); // 去掉分页 - $cmd=$this->NewMasterCommand(); - $replace_admin_id = $cmd->getidentifiers($admin_id, true); // 处理sql引号 - $SqlCommand = str_replace('[%adminId%]', $replace_admin_id, $SqlCommand); - $this->ParseSqlCommand($SqlCommand, $SqlParameters); - $SqlParameters = json_decode( json_encode( $SqlParameters),true); - - $params = []; // 查询参数 - foreach ($SqlParameters as $key => $value) { - if($value['type'] === 'sql') { - // 脚本处理 - $result = $this->PDO_Request(/** @lang text */ - $value['script']); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - if(DEBUG_MODE){ - //按指定渠道查询 - if($channel){ - if(!strstr($result[0]['value'], $channel)){ - $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); - return false; - } - }else{ - $value['default'] = $result[0]['value']; - } - } - } - $params[] = isset($biz_content[$value['returnfield']]) ? $biz_content[$value['returnfield']] : $value['default']; - } - $Helper = $this->GetMasterDatabase(); - // $Helper->ExportToFile('test', $SqlCommand, $params); - $Helper->ExportToBrowser($SqlCommand, $params); - die; - } - - /** - * 导出报表工具方法 - * @param RequestParameter $request - * @param ReturnParameter $return - * @return bool - */ - public function exportData($confg) - { - $name = isset($confg['name']) ? $confg['name'] : time(); // 导出文件名 - $body = isset($confg['body'])&&is_array($confg['body']) ? $confg['body'] : false; // 表格结构 - $data = isset($confg['data'])&&is_array($confg['data']) ? $confg['data'] : false; // 表数据 - $type = isset($confg['type']) ? $confg['type'] : 'xls'; // 导出拓展名 - - if (!$body || !$data) { - return false; - } - $table = ''; - $table .= ' - - '; - foreach ($body as $v) { - $table .= ""; - } - - $table .= ' - - '; - foreach ($data as $k=>$v) { - $v = array_values($v); - $table .= ""; - foreach ($body as $bk=>$bv) { - $table .= ""; - } - $table .= " "; - } - $table .= ' -
    {$v}
    {$v[$bk]}
    '; - - // 通过header头控制输出excel表格 - header("Pragma: public"); - header("Expires: 0"); - header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); - header("Content-Type:application/force-download"); - header("Content-Type:application/vnd.ms-execl"); - header("Content-Type:application/octet-stream"); - header("Content-Type:application/download"); - header('Content-Disposition:attachment;filename='.$name.'.'.$type); - header("Content-Transfer-Encoding:binary"); - echo $table; - die; - } - - /** - * 返回营业收入的sql语句 - */ - /*private function _businessIncomeSql($start_time, $end_time) - { - $business_income_sql = <<biz_content; - $start_time = isset($params['date']) ? $params['date'] : '201801'; - //$end_time = isset($params['end_time']) ? $params['end_time'] : '2018-12-31'; - - $sql = $this->_businessIncomeSql($start_time); - - $items = $this->PDO_Request($sql); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $data = []; - if(is_array($items) && isset($items[0])) { - $data['title'] = array_keys($items[0]); - foreach ($items as $k => $v) { - foreach ($v as $q) { - if(is_numeric($q)) - $q = round($q, 2); - - $data['data'][$k][] = $q; - } - } - } - - // 5、数据返回部分 - $return->biz_content = $data; - - return true; - } - - /** - * 导出营业收入 - */ - public function exportBusinessIncome($request, &$return) - { - $params = $request->biz_content; - $start_time = isset($params['start_time']) ? $params['start_time'] : '2018-01-01'; - $end_time = isset($params['end_time']) ? $params['end_time'] : '2018-12-31'; - - $sql = $this->_businessIncomeSql($start_time, $end_time); - $Helper = $this->GetMasterDatabase(); - // $Helper->ExportToFile('test', $SqlCommand, $params); - $Helper->ExportToBrowser($sql); - - die; - } - - /** - * 添加线下数据 - * @param $request - * @param $return - * @return bool - */ - public function addOfflineData($request, &$return) - { - $param = $request->biz_content; - - $agent_id = @$param['agentid']; /// 代理id - $channel_id = @$param['channelid']; /// 渠道id - $checked_time = @$param['checked_time']; /// 选中的时间 - /// 类型 0-待定 1-房卡赠送数 2-房卡实收款 3-平台实收款 4-金币实收款 - $type = intval(@$param['type']) ? intval($param['type']) : 0; - $remark = isset($param['remark']) ? $param['remark'] : ''; - $data = isset($param['data']) ? intval($param['data']) : 0; - - if (empty($agent_id)) - { - $return->seterrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); - return false; - } - - if (empty($channel_id)) - { - $return->seterrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); - return false; - } - - if (empty($checked_time)) - { - $return->seterrors(ERRORCODE_FINANCEYEARERROR, '请输入年份年份'); - return false; - } - - $sql = 'update ct_report_offline_data set `status` = 0 WHERE `agent_id` = ? AND `channel_id` = ? AND `type` = ? AND `status` = 1 AND date_format(`checked_time`, "%Y-%m") = date_format(?, "%Y-%m");'; - $this->PDO_Request($sql, $agent_id, $channel_id, $type, $checked_time); - - $sql = /** @lang text */'insert into ct_report_offline_data ( - agent_id, channel_id, data, type, remark, checked_time, status - ) VALUES (?,?,?,?,?,?,1);'; - $items = $this->PDO_Request($sql, $agent_id, $channel_id, $data, $type, $remark, $checked_time); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - return true; - } - - /** - * 区域玩家人数统计 - * @param $request - * @param $return - * @return bool - */ - public function areaNumberOfPeople($request, &$return) - { - $param = $request->biz_content; - - // agentid eg: '00bA05haB0d9ZC0fwGD09Q2OA30insbQ','1B2h0ccl205c390Y28m1Ajdplkuu4wgy' - $channel_array = isset($param['channel_array']) ? $param['channel_array'] : ''; - $group_by = isset($param['group_by']) ? $param['group_by'] : 'play_a_province'; - - // 筛选渠道 - $sql_channel_where = ''; - if(!empty($channel_array)) - $sql_channel_where = "and play_agentid in ({$channel_array})"; - - // 查询字段集 - $query_field = ['play_a_country', 'play_a_province', 'play_a_city', 'play_a_citycode', 'play_a_district']; - - // 筛除不需要的查询字段 - $tmp = []; - foreach ($query_field as $k => $v) { - array_push($tmp, $v); - if($group_by == $v) - break; - } - $sql_query_field = implode($tmp, ','); - - $sql = <<PDO_Request($sql); - if (!$this->pdo_isdone()) - { - $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); - return false; - } - - $data = []; - if(is_array($items) && isset($items[0])) { - $data['header'] = array_keys($items[0]); - foreach ($items as $k => $v) { - foreach ($v as $q) { - $data['body'][$k][] = $q; - } - } - } - - $return->biz_content = $data; - - return true; - } +name = null; + $this->type = null; + $this->mask = null; + $this->value = null; + $this->default = null; + $this->options = null; + $this->script = null; + $this->returnfield = null; + + $this->FromString($String); + } + + + public function FromArray($Array) + { + if (is_null($Array)) + return false; + if (is_object($Array)) + $Array = (array)$Array; + if (!is_array($Array)) + { + $this->Name = strval($Array); + return true; + } + + $Reflect = new ReflectionClass($this); + foreach($Array as $Key => $Value) + { + //if (!$Reflect->HasProperty($Key)) + // continue; + if ($Property = $Reflect->GetProperty($Key)) + { + //if ($Property->IsPublic()) + $Property->SetValue($this, $Value); + } + } + + return true; + } + + + public function FromString($String) + { + if (!$this->FromArray(JsonStringToJsonObject( strtr($String, array("\r" => ' ', "\n" => ' ', ))))) + $this->name = empty($String) ? '' : $String; + + return true; + } +} + + +class report extends BaseMethod +{ + private $sql_table = 'ct_report_list'; + + /** + * @param $String + * @param int $SplitLength + * @return array|bool + */ + function utf8_str_split($String, $SplitLength = 1) + { + if (!preg_match('/^[0-9]+$/', $SplitLength) || $SplitLength < 1) + return false; + + $Length = mb_strlen($String, 'UTF-8'); + if ($Length <= $SplitLength) + return array($String); + + preg_match_all('/.{' . $SplitLength . '}|[^x00]{1,' . $SplitLength . '}$/us', $String, $Result); + + return $Result[0]; + } + + /** + * Convert a string to an array + * @param string $String + * @param integer $SplitLength + * @param string $Charset + * @return array of char + */ + function mb_str_split($String, $SplitLength = 1 ,$Charset = USEDCHARSET) + { + if (strcasecmp($Charset, 'utf-8') == 0) + return $this->utf8_str_split($String, $SplitLength); + elseif (func_num_args() == 1) + return preg_split('/(?\r\n"; + /// + $CurrentIndex = 0; + $StartIndex = 0; + //$SqlCommandArray = str_split($SqlCommand); + $SqlCommandArray = $this->mb_str_split($SqlCommand, 1, USEDCHARSET); + //$SqlCommandArray = $this->utf8_str_split($SqlCommand); + + while ($CurrentIndex < $CommandLength) + { + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + + /// 先过滤掉不需要判断的字符,一直碰到参数的前导字符或者是引号 + while ($CurrentIndex < $CommandLength) + { + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + if (mb_strstr($StringDelimiter, $c, false, USEDCHARSET)) + break; + else + $CurrentIndex++; + } + + switch ($c) + { + /// 字符串结束 + case "\0": + case '': + break; + + /// 引号表示字符串 + case '`': + case '\'': + case '"': + /// 记录下这个标记,表示现在是字符串开始;再碰到一个同样的标记表示字符串结束。 + $cLiteral = $c; + + do + { + /// 快速跳过字符串内容 + $CurrentIndex++; + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + if ($cLiteral == $c) + break; + } while ($CurrentIndex < $CommandLength); + $CurrentIndex++; + break; + + default: + $CurrentString = mb_substr($SqlCommand, $CurrentIndex, 2, USEDCHARSET); + if (0 == strcasecmp($CurrentString, '--')) /// 单行注释 + { + $CurrentIndex += 2; + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + + /// 迅速跳过注释行 + while ($CurrentIndex < $CommandLength) + { + if ("\r" == $c || "\n" == $c) + { + while ("\r" == $c || "\n" == $c) + { + $CurrentIndex++; + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + } + break; + } + else + { + $CurrentIndex++; + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + } + } + break; + } + else if (0 == strcasecmp($CurrentString, '/*')) /// 多行注释 + { + $CurrentIndex += 2; + /// 迅速跳过注释内容 + while ($CurrentIndex < $CommandLength) + { + $CurrentString = mb_substr($SqlCommand, $CurrentIndex, 2, USEDCHARSET); + if (0 == strcasecmp($CurrentString, '*/')) + { + $CurrentIndex += 2; + break; + } + else + { + $CurrentIndex++; + } + } + break; + } + else if (mb_strstr($ForwadChars, $c, false, USEDCHARSET)) + { + $CurrentIndex++; + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + + if (mb_strstr($ForwadChars, $c, false, USEDCHARSET)) + { + $CurrentIndex++; + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + } + + $Result .= mb_substr($SqlCommand, $StartIndex, $CurrentIndex - $StartIndex - 1) . $ReplaceIdentifier; + if ('{' == $c) /// 处理json字符串表示的参数 + { + $ParameterIndex = $CurrentIndex; + $JsonFlagCount = 0; + + while ($CurrentIndex < $CommandLength) + { + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + $CurrentIndex++; + switch ($c) + { + case '{': + $JsonFlagCount++; + break; + case '}': + $JsonFlagCount--; + break; + } + if (0 == $JsonFlagCount) + break; + } + } + else /// 非json表示的参数 + { + $cLiteral = ''; + if (mb_strstr('`\'"', $c, false, USEDCHARSET)) + { + $cLiteral = $c; + $CurrentIndex++; + } + + $ParameterIndex = $CurrentIndex; + while ($CurrentIndex < $CommandLength) + { + $c = $SqlCommandArray[$CurrentIndex]; + //$c = mb_substr($SqlCommand, $CurrentIndex, 1, USEDCHARSET); + if (($cLiteral == $c) || ('' == $cLiteral && mb_strstr($NameDelimiter, $c, false, USEDCHARSET))) + break; + $CurrentIndex++; + } + } + + $Parameter = mb_substr($SqlCommand, $ParameterIndex, $CurrentIndex - $ParameterIndex, USEDCHARSET); + array_push($SqlParameters, new ReportParameter($Parameter)); + $StartIndex = $CurrentIndex; + } + break; + } + } + + $Result .= mb_substr($SqlCommand, $StartIndex, $CurrentIndex - $StartIndex); + $SqlCommand = $Result; + return true; + } + + + /** + * 获取菜单 + * @param RequestParameter $request + * @param ReturnParameter $return + * @return bool + */ + public function getMenus($request, &$return) + { + try { + $biz_content = $request->biz_content; + //查询用户 + $admin_id = isset($biz_content['admin_id']) ? $biz_content['admin_id'] : false; // 管理员id + + if(!$admin_id){ + $return->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + + $admin = $this->PDO_Request(/** @lang text */' + SELECT + level + FROM ct_manager_info m + WHERE `login_id` = ? AND `is_enabled` = ?;', $admin_id, 1); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + if (!$admin) { + $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + $cmd = $this->NewMasterCommand(); + // 获取所有报表脚本信息 + $items = $this->PDO_Request(/** @lang text */" +select + a.id as cate_id, a.name, a.icon, + b.report_id, b.report_name, b.command_line, b.url, b.desc +from ct_report_cate as a +left join {$this->sql_table} as b +on + a.`id` = b.`cate_id` +inner join ct_manager_auth c +on b.report_id = c.report_id +where + a.`status` = 1 and + b.`is_enabled` = 1 and + c.login_id = ? and + c.status = 1 +group by + cate_id, report_id", $admin_id); + + $menu = array(); + foreach($items as $key=>$val) { + // 主菜单部分 + $menu[$val['cate_id']]['id'] = $val['cate_id']; + $menu[$val['cate_id']]['name'] = $val['name']; + $menu[$val['cate_id']]['icon'] = $val['icon']; + + $this->ParseSqlCommand($val['command_line'], $SqlParameters); + //$SqlParameters = json_decode( json_encode( $SqlParameters),true); + foreach ($SqlParameters as $sk => $sv) { + // 脚本处理 + if (strcasecmp($sv->type, 'sql') == 0) { + $replace_admin_id = $cmd->getidentifiers($admin_id, true); // 处理sql引号 + $script = str_replace('[%adminId%]', $replace_admin_id, $sv->script); + $result = $this->PDO_Request($script); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + $SqlParameters[$sk]->options = $result; + unset($SqlParameters[$sk]->script); + } + } + + // 子菜单部分 + $menu[$val['cate_id']]['child'][] = [ + 'report_id' => $val['report_id'], + 'report_name' => $val['report_name'], + 'url' => $val['url'], + 'desc' => '', + 'values' => $SqlParameters, + ]; + } + + // 5、数据返回部分 + $return->biz_content = $menu; + return true; + } + catch (Exception $e) { + $return->SetErrors($e->getCode(), $e->getMessage()); + return false; + } + } + + + /** + * 处理查询 + * @param RequestParameter $request + * @param ReturnParameter $return + * @return bool + */ + public function getReport($request, &$return) + { + try { + // 获取具体id + $biz_content = $request->biz_content; + $report_id = isset($biz_content['report_id']) ? $biz_content['report_id'] : false; // 报表id + $admin_id = isset($biz_content['admin_id']) ? $biz_content['admin_id'] : false; // 管理员id + $channel = isset($biz_content['channel']) ? $biz_content['channel'] : false; // 指定渠道key + if(!$report_id || !$admin_id){ + $return->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + //查询用户 + $admin = $this->PDO_Request(/** @lang text */' + SELECT + LEVEL + FROM + ct_manager_info m + INNER JOIN + ct_manager_auth b + ON + m.login_id = b.login_id + WHERE + b.login_id = ? AND + b.report_id = ? AND + b.status = 1 AND + m.is_enabled = 1;', $admin_id, $report_id); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + if (!$admin) { + $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + $item = $this->PDO_Request(/** @lang text */' + SELECT + report_id, report_name, command_line, url + FROM '.$this->sql_table.' + WHERE report_id = ?; + ', $report_id); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + + $SqlCommand = $item[0]['command_line']; + # 分页信息 + $page_index = empty($biz_content['page_index']) ? 1 : intval($biz_content['page_index']); // 当前页 + $page_size = empty($biz_content['page_size']) ? 20: intval($biz_content['page_size']); // 单页容量 + $start = ($page_index - 1) * $page_size; + if (!empty($page_index)) + $strPage = " LIMIT {$start},{$page_size} "; + $SqlCommand = str_replace("[%strPage%]", $strPage, $SqlCommand); + $cmd=$this->NewMasterCommand(); + $replace_admin_id = $cmd->getidentifiers($admin_id, true); // 处理sql引号 + $SqlCommand = str_replace('[%adminId%]', $replace_admin_id, $SqlCommand); + $this->ParseSqlCommand($SqlCommand, $SqlParameters); + $SqlParameters = json_decode( json_encode( $SqlParameters),true); + + $params = []; // 查询参数 + foreach ($SqlParameters as $key => $value) { + if($value['type'] === 'sql') { + // 脚本处理 + $result = $this->PDO_Request(/** @lang text */ + $value['script']); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + if(DEBUG_MODE){ + //按指定渠道查询 + if($channel){ + if(!strstr($result[0]['value'], $channel)){ + $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + }else{ + $value['default'] = $result[0]['value']; + } + } + } + $params[] = isset($biz_content[$value['returnfield']]) ? $biz_content[$value['returnfield']] : $value['default']; + } + + // 最终查询 + $items = $this->PDO_Request(/** @lang text */ + $SqlCommand, $params); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + if(is_array($items) && isset($items[0])) { + $data['title'] = array_keys($items[0]); + foreach ($items as $k => $v) { + foreach ($v as $q) { + $data['data'][$k][] = $q; + } + } + }else{ + $data = []; + } + + // 5、数据返回部分 + $return->biz_content = $data; + return true; + } + + catch (Exception $e) { + $return->SetErrors($e->getCode(), $e->getMessage()); + return false; + } + } + + /** + * 导出报表 + * @param RequestParameter $request + * @param ReturnParameter $return + * @return bool + */ + public function exportReport($request, &$return) + { + // 获取具体id + $biz_content = $request->biz_content; + $report_id = isset($biz_content['report_id']) ? $biz_content['report_id'] : false; // 报表id + $admin_id = isset($biz_content['admin_id']) ? $biz_content['admin_id'] : false; // 管理员id + $channel = isset($biz_content['channel']) ? $biz_content['channel'] : false; // 指定渠道key + if(!$report_id || !$admin_id){ + $return->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); + return false; + } + //查询用户 + $admin = $this->PDO_Request(/** @lang text */' + SELECT + LEVEL + FROM + ct_manager_info m + INNER JOIN + ct_manager_auth b + ON + m.login_id = b.login_id + WHERE + b.login_id = ? AND + b.report_id = ? AND + b.status = 1 AND + m.is_enabled = 1;', $admin_id, $report_id); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + if (!$admin) { + $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + + $item = $this->PDO_Request(/** @lang text */' + SELECT + report_id, report_name, command_line, url + FROM '.$this->sql_table.' + WHERE report_id = ?; + ', $report_id); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + $SqlCommand = $item[0]['command_line']; + $SqlCommand = str_replace("[%strPage%]", '', $SqlCommand); // 去掉分页 + $cmd=$this->NewMasterCommand(); + $replace_admin_id = $cmd->getidentifiers($admin_id, true); // 处理sql引号 + $SqlCommand = str_replace('[%adminId%]', $replace_admin_id, $SqlCommand); + $this->ParseSqlCommand($SqlCommand, $SqlParameters); + $SqlParameters = json_decode( json_encode( $SqlParameters),true); + + $params = []; // 查询参数 + foreach ($SqlParameters as $key => $value) { + if($value['type'] === 'sql') { + // 脚本处理 + $result = $this->PDO_Request(/** @lang text */ + $value['script']); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + if(DEBUG_MODE){ + //按指定渠道查询 + if($channel){ + if(!strstr($result[0]['value'], $channel)){ + $return->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); + return false; + } + }else{ + $value['default'] = $result[0]['value']; + } + } + } + $params[] = isset($biz_content[$value['returnfield']]) ? $biz_content[$value['returnfield']] : $value['default']; + } + $Helper = $this->GetMasterDatabase(); + // $Helper->ExportToFile('test', $SqlCommand, $params); + $Helper->ExportToBrowser($SqlCommand, $params); + die; + } + + /** + * 导出报表工具方法 + * @param RequestParameter $request + * @param ReturnParameter $return + * @return bool + */ + public function exportData($confg) + { + $name = isset($confg['name']) ? $confg['name'] : time(); // 导出文件名 + $body = isset($confg['body'])&&is_array($confg['body']) ? $confg['body'] : false; // 表格结构 + $data = isset($confg['data'])&&is_array($confg['data']) ? $confg['data'] : false; // 表数据 + $type = isset($confg['type']) ? $confg['type'] : 'xls'; // 导出拓展名 + + if (!$body || !$data) { + return false; + } + $table = ''; + $table .= ' + + '; + foreach ($body as $v) { + $table .= ""; + } + + $table .= ' + + '; + foreach ($data as $k=>$v) { + $v = array_values($v); + $table .= ""; + foreach ($body as $bk=>$bv) { + $table .= ""; + } + $table .= " "; + } + $table .= ' +
    {$v}
    {$v[$bk]}
    '; + + // 通过header头控制输出excel表格 + header("Pragma: public"); + header("Expires: 0"); + header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); + header("Content-Type:application/force-download"); + header("Content-Type:application/vnd.ms-execl"); + header("Content-Type:application/octet-stream"); + header("Content-Type:application/download"); + header('Content-Disposition:attachment;filename='.$name.'.'.$type); + header("Content-Transfer-Encoding:binary"); + echo $table; + die; + } + + /** + * 返回营业收入的sql语句 + */ + /*private function _businessIncomeSql($start_time, $end_time) + { + $business_income_sql = <<biz_content; + $start_time = isset($params['date']) ? $params['date'] : '201801'; + //$end_time = isset($params['end_time']) ? $params['end_time'] : '2018-12-31'; + + $sql = $this->_businessIncomeSql($start_time); + + $items = $this->PDO_Request($sql); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $data = []; + if(is_array($items) && isset($items[0])) { + $data['title'] = array_keys($items[0]); + foreach ($items as $k => $v) { + foreach ($v as $q) { + if(is_numeric($q)) + $q = round($q, 2); + + $data['data'][$k][] = $q; + } + } + } + + // 5、数据返回部分 + $return->biz_content = $data; + + return true; + } + + /** + * 导出营业收入 + */ + public function exportBusinessIncome($request, &$return) + { + $params = $request->biz_content; + $start_time = isset($params['start_time']) ? $params['start_time'] : '2018-01-01'; + $end_time = isset($params['end_time']) ? $params['end_time'] : '2018-12-31'; + + $sql = $this->_businessIncomeSql($start_time, $end_time); + $Helper = $this->GetMasterDatabase(); + // $Helper->ExportToFile('test', $SqlCommand, $params); + $Helper->ExportToBrowser($sql); + + die; + } + + /** + * 添加线下数据 + * @param $request + * @param $return + * @return bool + */ + public function addOfflineData($request, &$return) + { + $param = $request->biz_content; + + $agent_id = @$param['agentid']; /// 代理id + $channel_id = @$param['channelid']; /// 渠道id + $checked_time = @$param['checked_time']; /// 选中的时间 + /// 类型 0-待定 1-房卡赠送数 2-房卡实收款 3-平台实收款 4-金币实收款 + $type = intval(@$param['type']) ? intval($param['type']) : 0; + $remark = isset($param['remark']) ? $param['remark'] : ''; + $data = isset($param['data']) ? intval($param['data']) : 0; + + if (empty($agent_id)) + { + $return->seterrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR); + return false; + } + + if (empty($channel_id)) + { + $return->seterrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR); + return false; + } + + if (empty($checked_time)) + { + $return->seterrors(ERRORCODE_FINANCEYEARERROR, '请输入年份年份'); + return false; + } + + $sql = 'update ct_report_offline_data set `status` = 0 WHERE `agent_id` = ? AND `channel_id` = ? AND `type` = ? AND `status` = 1 AND date_format(`checked_time`, "%Y-%m") = date_format(?, "%Y-%m");'; + $this->PDO_Request($sql, $agent_id, $channel_id, $type, $checked_time); + + $sql = /** @lang text */'insert into ct_report_offline_data ( + agent_id, channel_id, data, type, remark, checked_time, status + ) VALUES (?,?,?,?,?,?,1);'; + $items = $this->PDO_Request($sql, $agent_id, $channel_id, $data, $type, $remark, $checked_time); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + return true; + } + + /** + * 区域玩家人数统计 + * @param $request + * @param $return + * @return bool + */ + public function areaNumberOfPeople($request, &$return) + { + $param = $request->biz_content; + + // agentid eg: '00bA05haB0d9ZC0fwGD09Q2OA30insbQ','1B2h0ccl205c390Y28m1Ajdplkuu4wgy' + $channel_array = isset($param['channel_array']) ? $param['channel_array'] : ''; + $group_by = isset($param['group_by']) ? $param['group_by'] : 'play_a_province'; + + // 筛选渠道 + $sql_channel_where = ''; + if(!empty($channel_array)) + $sql_channel_where = "and play_agentid in ({$channel_array})"; + + // 查询字段集 + $query_field = ['play_a_country', 'play_a_province', 'play_a_city', 'play_a_citycode', 'play_a_district']; + + // 筛除不需要的查询字段 + $tmp = []; + foreach ($query_field as $k => $v) { + array_push($tmp, $v); + if($group_by == $v) + break; + } + $sql_query_field = implode($tmp, ','); + + $sql = <<PDO_Request($sql); + if (!$this->pdo_isdone()) + { + $return->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); + return false; + } + + $data = []; + if(is_array($items) && isset($items[0])) { + $data['header'] = array_keys($items[0]); + foreach ($items as $k => $v) { + foreach ($v as $q) { + $data['body'][$k][] = $q; + } + } + } + + $return->biz_content = $data; + + return true; + } } \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/qrcode/CHANGELOG b/codes/agent/game-docker/dlweb/api/qrcode/CHANGELOG index a6c53d2..1088530 100644 --- a/codes/agent/game-docker/dlweb/api/qrcode/CHANGELOG +++ b/codes/agent/game-docker/dlweb/api/qrcode/CHANGELOG @@ -1,38 +1,38 @@ -* 1.0.0 build 2010031920 - - - first public release - - help in readme, install - - cleanup ans separation of QRtools and QRspec - - now TCPDF binding requires minimal changes in TCPDF, having most of job - done in QRtools tcpdfBarcodeArray - - nicer QRtools::timeBenchmark output - - license and copyright notices in files - - indent cleanup - from tab to 4spc, keep it that way please :) - - sf project, repository, wiki - - simple code generator in index.php - -* 1.1.0 build 2010032113 - - - added merge tool wich generate merged version of code - located in phpqrcode.php - - splited qrconst.php from qrlib.php - -* 1.1.1 build 2010032405 - - - patch by Rick Seymour allowing saving PNG and displaying it at the same time - - added version info in VERSION file - - modified merge tool to include version info into generated file - - fixed e-mail in almost all head comments - -* 1.1.2 build 2010032722 - - - full integration with TCPDF thanks to Nicola Asuni, it's author - - fixed bug with alphanumeric encoding detection - -* 1.1.3 build 2010081807 - - - short opening tags replaced with standard ones - -* 1.1.4 build 2010100721 - - - added missing static keyword QRinput::check (found by Luke Brookhart, Onjax LLC) +* 1.0.0 build 2010031920 + + - first public release + - help in readme, install + - cleanup ans separation of QRtools and QRspec + - now TCPDF binding requires minimal changes in TCPDF, having most of job + done in QRtools tcpdfBarcodeArray + - nicer QRtools::timeBenchmark output + - license and copyright notices in files + - indent cleanup - from tab to 4spc, keep it that way please :) + - sf project, repository, wiki + - simple code generator in index.php + +* 1.1.0 build 2010032113 + + - added merge tool wich generate merged version of code + located in phpqrcode.php + - splited qrconst.php from qrlib.php + +* 1.1.1 build 2010032405 + + - patch by Rick Seymour allowing saving PNG and displaying it at the same time + - added version info in VERSION file + - modified merge tool to include version info into generated file + - fixed e-mail in almost all head comments + +* 1.1.2 build 2010032722 + + - full integration with TCPDF thanks to Nicola Asuni, it's author + - fixed bug with alphanumeric encoding detection + +* 1.1.3 build 2010081807 + + - short opening tags replaced with standard ones + +* 1.1.4 build 2010100721 + + - added missing static keyword QRinput::check (found by Luke Brookhart, Onjax LLC) diff --git a/codes/agent/game-docker/dlweb/api/qrcode/INSTALL b/codes/agent/game-docker/dlweb/api/qrcode/INSTALL index 945c95a..eac6b07 100644 --- a/codes/agent/game-docker/dlweb/api/qrcode/INSTALL +++ b/codes/agent/game-docker/dlweb/api/qrcode/INSTALL @@ -1,67 +1,67 @@ -== REQUIREMENTS == - - * PHP5 - * PHP GD2 extension with JPEG and PNG support - -== INSTALLATION == - -If you want to recreate cache by yourself make sure cache directory is -writable and you have permisions to write into it. Also make sure you are -able to read files in it if you have cache option enabled - -== CONFIGURATION == - -Feel free to modify config constants in qrconfig.php file. Read about it in -provided comments and project wiki page (links in README file) - -== QUICK START == - -Notice: probably you should'nt use all of this in same script :) - -encode('PHP QR Code :)'); -QRspec::debug($tab, true); - -== TCPDF INTEGRATION == - -Inside bindings/tcpdf you will find slightly modified 2dbarcodes.php. -Instal phpqrcode liblaty inside tcpdf folder, then overwrite (or merge) -2dbarcodes.php - -Then use similar as example #50 from TCPDF examples: - - true, - 'padding' => 4, - 'fgcolor' => array(0,0,0), - 'bgcolor' => false, //array(255,255,255) -); - -//code name: QR, specify error correction level after semicolon (L,M,Q,H) -$pdf->write2DBarcode('PHP QR Code :)', 'QR,L', '', '', 30, 30, $style, 'N'); +== REQUIREMENTS == + + * PHP5 + * PHP GD2 extension with JPEG and PNG support + +== INSTALLATION == + +If you want to recreate cache by yourself make sure cache directory is +writable and you have permisions to write into it. Also make sure you are +able to read files in it if you have cache option enabled + +== CONFIGURATION == + +Feel free to modify config constants in qrconfig.php file. Read about it in +provided comments and project wiki page (links in README file) + +== QUICK START == + +Notice: probably you should'nt use all of this in same script :) + +encode('PHP QR Code :)'); +QRspec::debug($tab, true); + +== TCPDF INTEGRATION == + +Inside bindings/tcpdf you will find slightly modified 2dbarcodes.php. +Instal phpqrcode liblaty inside tcpdf folder, then overwrite (or merge) +2dbarcodes.php + +Then use similar as example #50 from TCPDF examples: + + true, + 'padding' => 4, + 'fgcolor' => array(0,0,0), + 'bgcolor' => false, //array(255,255,255) +); + +//code name: QR, specify error correction level after semicolon (L,M,Q,H) +$pdf->write2DBarcode('PHP QR Code :)', 'QR,L', '', '', 30, 30, $style, 'N'); diff --git a/codes/agent/game-docker/dlweb/api/qrcode/LICENSE b/codes/agent/game-docker/dlweb/api/qrcode/LICENSE index 31afd6d..1883303 100644 --- a/codes/agent/game-docker/dlweb/api/qrcode/LICENSE +++ b/codes/agent/game-docker/dlweb/api/qrcode/LICENSE @@ -1,165 +1,165 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/codes/agent/game-docker/dlweb/api/qrcode/README b/codes/agent/game-docker/dlweb/api/qrcode/README index dd598f0..a022fb5 100644 --- a/codes/agent/game-docker/dlweb/api/qrcode/README +++ b/codes/agent/game-docker/dlweb/api/qrcode/README @@ -1,45 +1,45 @@ -This is PHP implementation of QR Code 2-D barcode generator. It is pure-php -LGPL-licensed implementation based on C libqrencode by Kentaro Fukuchi. - -== LICENSING == - -Copyright (C) 2010 by Dominik Dzienia - -This library is free software; you can redistribute it and/or modify it under -the terms of the GNU Lesser General Public License as published by the Free -Software Foundation; either version 3 of the License, or any later version. - -This library is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE. See the GNU Lesser General Public License (LICENSE file) -for more details. - -You should have received a copy of the GNU Lesser General Public License along -with this library; if not, write to the Free Software Foundation, Inc., 51 -Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -== INSTALATION AND USAGE == - - * INSTALL file - * http://sourceforge.net/apps/mediawiki/phpqrcode/index.php?title=Main_Page - -== CONTACT == - -Fell free to contact me via e-mail (deltalab at poczta dot fm) or using -folowing project pages: - - * http://sourceforge.net/projects/phpqrcode/ - * http://phpqrcode.sourceforge.net/ - -== ACKNOWLEDGMENTS == - -Based on C libqrencode library (ver. 3.1.1) -Copyright (C) 2006-2010 by Kentaro Fukuchi -http://megaui.net/fukuchi/works/qrencode/index.en.html - -QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other -countries. - -Reed-Solomon code encoder is written by Phil Karn, KA9Q. -Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q +This is PHP implementation of QR Code 2-D barcode generator. It is pure-php +LGPL-licensed implementation based on C libqrencode by Kentaro Fukuchi. + +== LICENSING == + +Copyright (C) 2010 by Dominik Dzienia + +This library is free software; you can redistribute it and/or modify it under +the terms of the GNU Lesser General Public License as published by the Free +Software Foundation; either version 3 of the License, or any later version. + +This library is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU Lesser General Public License (LICENSE file) +for more details. + +You should have received a copy of the GNU Lesser General Public License along +with this library; if not, write to the Free Software Foundation, Inc., 51 +Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +== INSTALATION AND USAGE == + + * INSTALL file + * http://sourceforge.net/apps/mediawiki/phpqrcode/index.php?title=Main_Page + +== CONTACT == + +Fell free to contact me via e-mail (deltalab at poczta dot fm) or using +folowing project pages: + + * http://sourceforge.net/projects/phpqrcode/ + * http://phpqrcode.sourceforge.net/ + +== ACKNOWLEDGMENTS == + +Based on C libqrencode library (ver. 3.1.1) +Copyright (C) 2006-2010 by Kentaro Fukuchi +http://megaui.net/fukuchi/works/qrencode/index.en.html + +QR Code is registered trademarks of DENSO WAVE INCORPORATED in JAPAN and other +countries. + +Reed-Solomon code encoder is written by Phil Karn, KA9Q. +Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/qrcode/VERSION b/codes/agent/game-docker/dlweb/api/qrcode/VERSION index 2677b36..9f99279 100644 --- a/codes/agent/game-docker/dlweb/api/qrcode/VERSION +++ b/codes/agent/game-docker/dlweb/api/qrcode/VERSION @@ -1,2 +1,2 @@ -1.1.4 +1.1.4 2010100721 \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/qrcode/tools/merge.bat b/codes/agent/game-docker/dlweb/api/qrcode/tools/merge.bat index 2b5eebb..b60a485 100644 --- a/codes/agent/game-docker/dlweb/api/qrcode/tools/merge.bat +++ b/codes/agent/game-docker/dlweb/api/qrcode/tools/merge.bat @@ -1,2 +1,2 @@ -php ./merge.php +php ./merge.php pause \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/web2/fonts/fontawesome-webfont.svg b/codes/agent/game-docker/dlweb/api/web2/fonts/fontawesome-webfont.svg index 855c845..d7534c9 100644 --- a/codes/agent/game-docker/dlweb/api/web2/fonts/fontawesome-webfont.svg +++ b/codes/agent/game-docker/dlweb/api/web2/fonts/fontawesome-webfont.svg @@ -1,2671 +1,2671 @@ - - - - -Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 - By ,,, -Copyright Dave Gandy 2016. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/codes/agent/game-docker/dlweb/api/web2/fonts/glyphicons-halflings-regular.svg b/codes/agent/game-docker/dlweb/api/web2/fonts/glyphicons-halflings-regular.svg index 94fb549..8376c0f 100644 --- a/codes/agent/game-docker/dlweb/api/web2/fonts/glyphicons-halflings-regular.svg +++ b/codes/agent/game-docker/dlweb/api/web2/fonts/glyphicons-halflings-regular.svg @@ -1,288 +1,288 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/web2/images/svg/circle.svg b/codes/agent/game-docker/dlweb/api/web2/images/svg/circle.svg index 4099b29..1fb5058 100644 --- a/codes/agent/game-docker/dlweb/api/web2/images/svg/circle.svg +++ b/codes/agent/game-docker/dlweb/api/web2/images/svg/circle.svg @@ -1,41 +1,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/web2/libs/fonts/glyphicons-halflings-regular.svg b/codes/agent/game-docker/dlweb/api/web2/libs/fonts/glyphicons-halflings-regular.svg index 94fb549..8376c0f 100644 --- a/codes/agent/game-docker/dlweb/api/web2/libs/fonts/glyphicons-halflings-regular.svg +++ b/codes/agent/game-docker/dlweb/api/web2/libs/fonts/glyphicons-halflings-regular.svg @@ -1,288 +1,288 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/web2/note.txt b/codes/agent/game-docker/dlweb/api/web2/note.txt index a70e73f..dcc290f 100644 --- a/codes/agent/game-docker/dlweb/api/web2/note.txt +++ b/codes/agent/game-docker/dlweb/api/web2/note.txt @@ -1,115 +1,115 @@ - - -/** - * 支付成功后的回调接口 - */ -http://localhost/proxy/trunk/api/Index.php?method=agent.order.ordersuccess&format=json&charset=utf-8&version=1.0&user_auth_token=&biz_content={%22agentid%22:%22i33v0llvp0euhd1n9qo1fM2RV8vtog4y%22,%22channelid%22:%227N0e0z2u2098pf1M2fj0kyB1D4n4ylkA%22,%22openid%22:%22oIv1dwNhQf5Qi035Hz_IaV9YUN7E%22,%22unionid%22:%22oLVKiszIKAdCfJ70AS6QBe6Yq27A%22,%22orderno%22:%22SD201099201808171731138569%22,%22money%22:%22100%22,%22player%22:%22as%22,%22playerid%22:%22201099%22,%22salesid%22:%22%22,%22signkey%22:%220t3xm3w1foyhcmhlux31mwrmybqh4cgd%22} - -/** - * 支付成功后的同步跳转页面 - */ -https://proxytest.tscce.cn/web2/notify.html?order_no=PE100005201710191741532680&out_trade_no=ee9bd8043f2ce1b5814612128526d9d8&transaction_id=4200000025201710199032857393&total_fee=1&agentid=00bA05haB0d9ZC0fwGD09Q2OA30insbQ&channelid=frdt0C1GG0t91P0McFo0rbA1he5yurbS&billcode=PE100005201710191741532680&type=0&state=0&paytime=1508406124&sign=6cfb74600d530055de52df58543e4afe -https://proxytest.tscce.cn/web2/notify.html?order_no=SA957153201804181748296062&out_trade_no=7835d935207fa357a4766094439e2f20&transaction_id=2018041821001004600544861566&total_fee=1&agentid=i33v0llvp0euhd1n9qo1fM2RV8vtog4y&channelid=7N0e0z2u2098pf1M2fj0kyB1D4n4ylkA&type=0&state=become&paytime=1524044917&sign=ec0e5b2b3670f6f2bdba38c811586350 -https://proxytest.tscce.cn/web2/notify.html?order_no=SD201099201808221631406615&out_trade_no=ed956aced29570f81b35a9b70a2c3e64&transaction_id=4200000165201808222932252294&total_fee=1&agentid=i33v0llvp0euhd1n9qo1fM2RV8vtog4y&channelid=7N0e0z2u2098pf1M2fj0kyB1D4n4ylkA&type=undefined&silence=1&state=sales&paytime=1534926706&sign=2d3e514a32b5fb4e81de642479b02ca4 - - - -// 香港-代理后台 -http://dlwebv8.cn-tuyang.com/manage_login.html?agentid=V60103nhs0NVyt4582m6mk8jot0Bto01&channelid=qrim0tKKn0qiqm0FgXs1RwHtsyfinAff -王二哥账号:201316 2013168521 -唐建账号:201872 123456 - - -/** - * 修改代理权限 - */ -UPDATE sales_user set saus_power = CONCAT(saus_power, '2') where saus_agentid = 'Cm2K0jK8e0tUl20gywl8iOkeKhSV4lSa' and saus_channelid = 'y2SK0h4df0rfGa0c9D17o589g7vXtw3L' and saus_salesman = 1 and LENGTH(saus_power) = 2; - - -/** - * 将玩家购买房卡的选项都关闭 - */ -update sales_product set sapr_state=1 where product_type=0 and sapr_type=0 and sapr_agentid='i33v0llvp0euhd1n9qo1fM2RV8vtog4y'; - -/** - * 如月的测试玩家id - */ -457642 - -/** - * 从游戏查玩家信息 - */ -http://121.43.232.182:31089/index.html?{%22app%22:%22youle%22,%22route%22:%22agent%22,%22rpc%22:%22query_player2%22,%22data%22:{%22agentid%22:%22veRa0qrBf0df2K1G4de2tgfmVxB2jxpv%22,%22playerid%22:%22626467%22}} -# 海外渠道版 -http://150.109.40.74:31089/index.html?{%22app%22:%22youle%22,%22route%22:%22agent%22,%22rpc%22:%22query_player2%22,%22data%22:{%22agentid%22:%22V60103nhs0NVyt4582m6mk8jot0Bto01%22,%22playerid%22:%22331349%22}} -https://gameproxy.tscce.cn/api/Index.php?method=agent.agent.serverAddress&format=json&charset=utf-8&version=1.0&biz_content={"agentid":"00bA05haB0d9ZC0fwGD09Q2OA30insbQ","channelid":"frdt0C1GG0t91P0McFo0rbA1he5yurbS"}&user_auth_token=6a48NEDW5RzBoFWfBFLlul4OVAtseD5WvCSgsoFcZ43IZlqRXVJgGIbSC9JziQQsW2qO6j7fwg - -/** - * 测试地址 - */ -INSERT INTO `config_agent` (`agent_id`, `agent_name`, `html_buyroomcard`, `html_applysales`, `agent_mode`, `sale_qq`, `sale_wechat`, `sale_tel`, `rel_agent_id`, `logo`, `channel_id`) VALUES ('i33v0llvp0euhd1n9qo1fM2RV8vtog4y', '测试', '2', '2', '2', '1911719060
    (工作时间:8:00--24:00)', 'youlehudong11', '', '', 'http://op0g0jeqa.bkt.clouddn.com/log2-YL.jpg', '7N0e0z2u2098pf1M2fj0kyB1D4n4ylkA'); -INSERT INTO `config_agent` (`agent_id`, `agent_name`, `html_buyroomcard`, `html_applysales`, `agent_mode`, `sale_qq`, `sale_wechat`, `sale_tel`, `rel_agent_id`, `logo`, `channel_id`) VALUES -('nkTs0yPsV0jepu2kqFL5LafiuyF8fvoA', '测试', '2', '2', '2', '1911719060
    (工作时间:8:00--24:00)', 'youlehudong11', '', '', 'http://op0g0jeqa.bkt.clouddn.com/log2-YL.jpg', 'mGoU0pJNt0hjkD0jdgq1pqThbcd8SEus'); - -/** - * 添加新的渠道 - */ -# cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5 RGsj0TiHx0Kmju0IUVo1dv6e9j6ZV39y 崇仁聚友棋牌 -INSERT INTO `agent` (`agen_agentid`, `agen_name`, `agen_logo`, `agen_parentid`, `agen_idxcode`, `agen_state`, `agen_sharingmode`, `agen_sharingrate`, `agen_selftotal`, `agen_selfsharing`, `agen_childsharing`, `agen_maxplayerid`, `agen_maxsalesid`, `agen_scrollmsg`, `agen_noticemsg`, `agen_server`, `agen_server_visitor`, `agen_port_tcp`, `agen_port_http`, `agen_downloadhtml`, `agen_freeroom`, `agen_salespower`, `agen_managecode`, `agen_user`, `agen_pwd`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', '崇仁聚友棋牌', NULL, NULL, '', '0', '0', '100', '0.00', '0.00', '0.00', '100000', '200000', NULL, NULL, '', '', '', '', '', '300', '11', '', '', ''); -INSERT INTO `agent_channel` (`agch_agentid`, `agch_channelid`, `agch_channelname`, `agch_WechatPublicNo`, `agch_wechat_ewm`, `agch_service_wechat`, `agch_service_qq`, `agch_service_tel`, `agch_sales_tel`, `agch_sales_wechat`, `agch_youle_appid`, `agch_youle_devkey`, `agch_youle_busiid`, `agch_youle_signkey`, `agch_invitecode`, `agch_pay_appid`, `agch_pay_devkey`, `agch_pay_marketid`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', 'RGsj0TiHx0Kmju0IUVo1dv6e9j6ZV39y', '崇仁聚友棋牌', '崇仁聚友棋牌', '', '', '', '', '', '', '14966338932488', '14966329712475', 'ylhdyx', '0t3xm3w1foyhcmhlux31mwrmybqh4cgd', NULL, '14966338932488', '14966329712475', 'ylhdyx'); -# 玩家购房卡 -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+1), '0', '15元', '5', '15.00', '5张F卡', '0', '0'); -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+2), '0', '30元', '10', '30.00', '10张F卡', '0', '0'); -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+3), '0', '208元', '80', '208.00', '80张F卡', '0', '0'); -# 代理购房卡 -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+4), '1', '10元', '1', '10.00', '1张F卡', '0', '0'); -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+5), '1', '10元', '1', '10.00', '1张F卡', '0', '0'); -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+6), '1', '10元', '1', '10.00', '1张F卡', '0', '0'); -# 玩家购星星 -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+7), '0', '105元', '10000', '105.00', '一万个星星', '1', '1'); -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+8), '0', '525元', '50000', '525.00', '五万个星星', '1', '1'); -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+9), '0', '1050元', '100000', '1050.00', '十万个星星', '1', '1'); -# 代理购星星 -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+7), '1', '105元', '10000', '105.00', '一万个星星', '1', '1'); -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+8), '1', '525元', '50000', '525.00', '五万个星星', '1', '1'); -INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+9), '1', '1050元', '100000', '1050.00', '十万个星星', '1', '1'); - - -ts已修改2021 -https://operate.tscce.cn/login.html -https://operate.tscce.cn/login.html -200000 -mimazijigai - -/** - * 小聂游戏测试数据库地址 - */ -rm-bp16sbf0l9cavp7h9o.mysql.rds.aliyuncs.com  -develop  -develop123!@# - -// 小梦对应渠道的统计口径 -update sales_user SET statistic_type=1 where saus_salesid in (200036, 200011, 200057, 200020, 200884,200010,200018,200008,200057,200161,200017,200007,200006,200025,200019,200031,200009) and saus_unionid ='oLVKisy_h3TdO8WQf6wdPJjcE-A8'; - -sales_sellbill 代理给玩家 转卡记录表 - -agent.demand.dealOrder 处理(代理、玩家)索取(房卡、星星)请求 -Youle.Youle.productList 获取产品列表 -agent.order.createStarOrder 生成星星订单 -agent.order.createOrder 生成房卡订单 -agent.order.starPaySuccess 星星 -agent.order.paySuccess 房卡 -agent.agent.deductPlayer 减玩家房卡/星星 -agent.agent.deductSales 减代理房卡/星星 -agent.agent.applySales -agent.card.addRecord 转卡记录 -agent.demand.addStarRecord 转星星记录 -agent.agent.playerCardStarRecord 玩家的房卡星星流水 -agent.agent.salesCardStarRecord 代理房卡转入 -agent.agent.salesCardStarDeduct 代理房卡转出 -agent.agent.salesCardStarRecord 代理星星转入 -agent.agent.salesCardStarDeduct 代理星星转出 - -agent.agent.bindSales 玩家绑定代理 -agent.agent.bindRecommend 代理绑定代理 - + + +/** + * 支付成功后的回调接口 + */ +http://localhost/proxy/trunk/api/Index.php?method=agent.order.ordersuccess&format=json&charset=utf-8&version=1.0&user_auth_token=&biz_content={%22agentid%22:%22i33v0llvp0euhd1n9qo1fM2RV8vtog4y%22,%22channelid%22:%227N0e0z2u2098pf1M2fj0kyB1D4n4ylkA%22,%22openid%22:%22oIv1dwNhQf5Qi035Hz_IaV9YUN7E%22,%22unionid%22:%22oLVKiszIKAdCfJ70AS6QBe6Yq27A%22,%22orderno%22:%22SD201099201808171731138569%22,%22money%22:%22100%22,%22player%22:%22as%22,%22playerid%22:%22201099%22,%22salesid%22:%22%22,%22signkey%22:%220t3xm3w1foyhcmhlux31mwrmybqh4cgd%22} + +/** + * 支付成功后的同步跳转页面 + */ +https://proxytest.tscce.cn/web2/notify.html?order_no=PE100005201710191741532680&out_trade_no=ee9bd8043f2ce1b5814612128526d9d8&transaction_id=4200000025201710199032857393&total_fee=1&agentid=00bA05haB0d9ZC0fwGD09Q2OA30insbQ&channelid=frdt0C1GG0t91P0McFo0rbA1he5yurbS&billcode=PE100005201710191741532680&type=0&state=0&paytime=1508406124&sign=6cfb74600d530055de52df58543e4afe +https://proxytest.tscce.cn/web2/notify.html?order_no=SA957153201804181748296062&out_trade_no=7835d935207fa357a4766094439e2f20&transaction_id=2018041821001004600544861566&total_fee=1&agentid=i33v0llvp0euhd1n9qo1fM2RV8vtog4y&channelid=7N0e0z2u2098pf1M2fj0kyB1D4n4ylkA&type=0&state=become&paytime=1524044917&sign=ec0e5b2b3670f6f2bdba38c811586350 +https://proxytest.tscce.cn/web2/notify.html?order_no=SD201099201808221631406615&out_trade_no=ed956aced29570f81b35a9b70a2c3e64&transaction_id=4200000165201808222932252294&total_fee=1&agentid=i33v0llvp0euhd1n9qo1fM2RV8vtog4y&channelid=7N0e0z2u2098pf1M2fj0kyB1D4n4ylkA&type=undefined&silence=1&state=sales&paytime=1534926706&sign=2d3e514a32b5fb4e81de642479b02ca4 + + + +// 香港-代理后台 +http://dlwebv8.cn-tuyang.com/manage_login.html?agentid=V60103nhs0NVyt4582m6mk8jot0Bto01&channelid=qrim0tKKn0qiqm0FgXs1RwHtsyfinAff +王二哥账号:201316 2013168521 +唐建账号:201872 123456 + + +/** + * 修改代理权限 + */ +UPDATE sales_user set saus_power = CONCAT(saus_power, '2') where saus_agentid = 'Cm2K0jK8e0tUl20gywl8iOkeKhSV4lSa' and saus_channelid = 'y2SK0h4df0rfGa0c9D17o589g7vXtw3L' and saus_salesman = 1 and LENGTH(saus_power) = 2; + + +/** + * 将玩家购买房卡的选项都关闭 + */ +update sales_product set sapr_state=1 where product_type=0 and sapr_type=0 and sapr_agentid='i33v0llvp0euhd1n9qo1fM2RV8vtog4y'; + +/** + * 如月的测试玩家id + */ +457642 + +/** + * 从游戏查玩家信息 + */ +http://121.43.232.182:31089/index.html?{%22app%22:%22youle%22,%22route%22:%22agent%22,%22rpc%22:%22query_player2%22,%22data%22:{%22agentid%22:%22veRa0qrBf0df2K1G4de2tgfmVxB2jxpv%22,%22playerid%22:%22626467%22}} +# 海外渠道版 +http://150.109.40.74:31089/index.html?{%22app%22:%22youle%22,%22route%22:%22agent%22,%22rpc%22:%22query_player2%22,%22data%22:{%22agentid%22:%22V60103nhs0NVyt4582m6mk8jot0Bto01%22,%22playerid%22:%22331349%22}} +https://gameproxy.tscce.cn/api/Index.php?method=agent.agent.serverAddress&format=json&charset=utf-8&version=1.0&biz_content={"agentid":"00bA05haB0d9ZC0fwGD09Q2OA30insbQ","channelid":"frdt0C1GG0t91P0McFo0rbA1he5yurbS"}&user_auth_token=6a48NEDW5RzBoFWfBFLlul4OVAtseD5WvCSgsoFcZ43IZlqRXVJgGIbSC9JziQQsW2qO6j7fwg + +/** + * 测试地址 + */ +INSERT INTO `config_agent` (`agent_id`, `agent_name`, `html_buyroomcard`, `html_applysales`, `agent_mode`, `sale_qq`, `sale_wechat`, `sale_tel`, `rel_agent_id`, `logo`, `channel_id`) VALUES ('i33v0llvp0euhd1n9qo1fM2RV8vtog4y', '测试', '2', '2', '2', '1911719060
    (工作时间:8:00--24:00)', 'youlehudong11', '', '', 'http://op0g0jeqa.bkt.clouddn.com/log2-YL.jpg', '7N0e0z2u2098pf1M2fj0kyB1D4n4ylkA'); +INSERT INTO `config_agent` (`agent_id`, `agent_name`, `html_buyroomcard`, `html_applysales`, `agent_mode`, `sale_qq`, `sale_wechat`, `sale_tel`, `rel_agent_id`, `logo`, `channel_id`) VALUES +('nkTs0yPsV0jepu2kqFL5LafiuyF8fvoA', '测试', '2', '2', '2', '1911719060
    (工作时间:8:00--24:00)', 'youlehudong11', '', '', 'http://op0g0jeqa.bkt.clouddn.com/log2-YL.jpg', 'mGoU0pJNt0hjkD0jdgq1pqThbcd8SEus'); + +/** + * 添加新的渠道 + */ +# cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5 RGsj0TiHx0Kmju0IUVo1dv6e9j6ZV39y 崇仁聚友棋牌 +INSERT INTO `agent` (`agen_agentid`, `agen_name`, `agen_logo`, `agen_parentid`, `agen_idxcode`, `agen_state`, `agen_sharingmode`, `agen_sharingrate`, `agen_selftotal`, `agen_selfsharing`, `agen_childsharing`, `agen_maxplayerid`, `agen_maxsalesid`, `agen_scrollmsg`, `agen_noticemsg`, `agen_server`, `agen_server_visitor`, `agen_port_tcp`, `agen_port_http`, `agen_downloadhtml`, `agen_freeroom`, `agen_salespower`, `agen_managecode`, `agen_user`, `agen_pwd`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', '崇仁聚友棋牌', NULL, NULL, '', '0', '0', '100', '0.00', '0.00', '0.00', '100000', '200000', NULL, NULL, '', '', '', '', '', '300', '11', '', '', ''); +INSERT INTO `agent_channel` (`agch_agentid`, `agch_channelid`, `agch_channelname`, `agch_WechatPublicNo`, `agch_wechat_ewm`, `agch_service_wechat`, `agch_service_qq`, `agch_service_tel`, `agch_sales_tel`, `agch_sales_wechat`, `agch_youle_appid`, `agch_youle_devkey`, `agch_youle_busiid`, `agch_youle_signkey`, `agch_invitecode`, `agch_pay_appid`, `agch_pay_devkey`, `agch_pay_marketid`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', 'RGsj0TiHx0Kmju0IUVo1dv6e9j6ZV39y', '崇仁聚友棋牌', '崇仁聚友棋牌', '', '', '', '', '', '', '14966338932488', '14966329712475', 'ylhdyx', '0t3xm3w1foyhcmhlux31mwrmybqh4cgd', NULL, '14966338932488', '14966329712475', 'ylhdyx'); +# 玩家购房卡 +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+1), '0', '15元', '5', '15.00', '5张F卡', '0', '0'); +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+2), '0', '30元', '10', '30.00', '10张F卡', '0', '0'); +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+3), '0', '208元', '80', '208.00', '80张F卡', '0', '0'); +# 代理购房卡 +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+4), '1', '10元', '1', '10.00', '1张F卡', '0', '0'); +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+5), '1', '10元', '1', '10.00', '1张F卡', '0', '0'); +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+6), '1', '10元', '1', '10.00', '1张F卡', '0', '0'); +# 玩家购星星 +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+7), '0', '105元', '10000', '105.00', '一万个星星', '1', '1'); +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+8), '0', '525元', '50000', '525.00', '五万个星星', '1', '1'); +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+9), '0', '1050元', '100000', '1050.00', '十万个星星', '1', '1'); +# 代理购星星 +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+7), '1', '105元', '10000', '105.00', '一万个星星', '1', '1'); +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+8), '1', '525元', '50000', '525.00', '五万个星星', '1', '1'); +INSERT INTO `sales_product` (`sapr_agentid`, `sapr_productid`, `sapr_type`, `sapr_name`, `sapr_amount`, `sapr_money`, `sapr_memo`, `sapr_state`, `product_type`) VALUES ('cjcH0Yrkq0EUfb2NvZu3pm7CG4y5fmo5', MD5(unix_timestamp(now())+9), '1', '1050元', '100000', '1050.00', '十万个星星', '1', '1'); + + +ts已修改2021 +https://operate.tscce.cn/login.html +https://operate.tscce.cn/login.html +200000 +mimazijigai + +/** + * 小聂游戏测试数据库地址 + */ +rm-bp16sbf0l9cavp7h9o.mysql.rds.aliyuncs.com  +develop  +develop123!@# + +// 小梦对应渠道的统计口径 +update sales_user SET statistic_type=1 where saus_salesid in (200036, 200011, 200057, 200020, 200884,200010,200018,200008,200057,200161,200017,200007,200006,200025,200019,200031,200009) and saus_unionid ='oLVKisy_h3TdO8WQf6wdPJjcE-A8'; + +sales_sellbill 代理给玩家 转卡记录表 + +agent.demand.dealOrder 处理(代理、玩家)索取(房卡、星星)请求 +Youle.Youle.productList 获取产品列表 +agent.order.createStarOrder 生成星星订单 +agent.order.createOrder 生成房卡订单 +agent.order.starPaySuccess 星星 +agent.order.paySuccess 房卡 +agent.agent.deductPlayer 减玩家房卡/星星 +agent.agent.deductSales 减代理房卡/星星 +agent.agent.applySales +agent.card.addRecord 转卡记录 +agent.demand.addStarRecord 转星星记录 +agent.agent.playerCardStarRecord 玩家的房卡星星流水 +agent.agent.salesCardStarRecord 代理房卡转入 +agent.agent.salesCardStarDeduct 代理房卡转出 +agent.agent.salesCardStarRecord 代理星星转入 +agent.agent.salesCardStarDeduct 代理星星转出 + +agent.agent.bindSales 玩家绑定代理 +agent.agent.bindRecommend 代理绑定代理 + diff --git a/codes/agent/game-docker/docker-compose.yml b/codes/agent/game-docker/docker-compose.yml index 402118a..44d4a6c 100644 --- a/codes/agent/game-docker/docker-compose.yml +++ b/codes/agent/game-docker/docker-compose.yml @@ -13,12 +13,11 @@ services: - certbot-webroot:/var/www/certbot:ro - certbot-certs:/etc/letsencrypt:ro environment: - # 只替换这 4 个变量,不影响 nginx 内置的 $host $scheme 等 - NGINX_ENVSUBST_FILTER: "API_DOMAIN|DLWEB_DOMAIN|WX_DOMAIN|ROOT_DOMAIN" + # 只替换这 3 个变量,不影响 nginx 内置的 $host $scheme 等 + NGINX_ENVSUBST_FILTER: "API_DOMAIN|DLWEB_DOMAIN|ROOT_DOMAIN" ROOT_DOMAIN: ${ROOT_DOMAIN} API_DOMAIN: api.${ROOT_DOMAIN} DLWEB_DOMAIN: dlapi.${ROOT_DOMAIN} - WX_DOMAIN: wxapi.${ROOT_DOMAIN} depends_on: - api - dlweb diff --git a/codes/agent/game-docker/docker/nginx/default.conf.template b/codes/agent/game-docker/docker/nginx/default.conf.template index 5db05bf..3e0096e 100644 --- a/codes/agent/game-docker/docker/nginx/default.conf.template +++ b/codes/agent/game-docker/docker/nginx/default.conf.template @@ -13,20 +13,20 @@ upstream wxserver_service { # ============================================= # 域名路由模式 + SSL(Let's Encrypt 自动证书) # -# 域名由 .env 文件中的 API_DOMAIN / DLWEB_DOMAIN / WX_DOMAIN 自动注入 +# 域名由 .env 文件中的 API_DOMAIN / DLWEB_DOMAIN 自动注入 # 修改域名只需编辑 .env 然后 docker compose restart nginx # # ================== 微信域名配置指南 ================== # -# .env 中配置的 3 个域名对应: -# ${API_DOMAIN} → 网站1: game-docker/api +# .env 中配置的 2 个域名对应: +# ${API_DOMAIN} → 网站1: game-docker/api + wxserver(通过 /wx/ 前缀路由转发) # ${DLWEB_DOMAIN} → 网站2: game-docker/dlweb/api -# ${WX_DOMAIN} → 网站3: game-docker/wxserver_daoqi # # 【微信小程序后台】(mp.weixin.qq.com → 开发管理 → 开发设置) -# - request 合法域名: https://${WX_DOMAIN} -# - 业务域名: ${WX_DOMAIN} -# (验证文件放到 wxserver_daoqi/public/MP_verify_xxx.txt) +# - request 合法域名: https://${API_DOMAIN} +# - 业务域名: ${API_DOMAIN} +# (验证文件放到 api/ 根目录,小程序和公众号的 MP_verify_xxx.txt 均放这里) +# wxserver 接口通过 ${API_DOMAIN}/wx/* 访问 # # 【微信公众号后台】(mp.weixin.qq.com → 设置与开发 → 公众号设置) # - 业务域名: ${API_DOMAIN} @@ -110,6 +110,7 @@ server { # wxserver 路由:/wx/ 前缀转发给 wxserver 容器,自动去除 /wx 前缀 # 例:/wx/auth/oa/callback → wxserver:/auth/oa/callback + # 例:/wx/api/login → wxserver:/api/login location /wx/ { proxy_pass http://wxserver_service/; proxy_set_header Host $host; @@ -119,6 +120,16 @@ server { proxy_set_header X-Forwarded-Port $server_port; } + # wxserver 上传文件访问(/wx/api/upload 上传后返回的 /uploads/ 地址) + location /uploads/ { + proxy_pass http://wxserver_service/uploads/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Port $server_port; + } + # PHP API(所有其他请求) location / { proxy_pass http://api_service; @@ -150,25 +161,4 @@ server { } } -# ===== 网站3: 微信小程序后端 ===== -server { - listen 443 ssl http2; - listen [::]:443 ssl http2; - server_name ${WX_DOMAIN}; - - ssl_certificate /etc/letsencrypt/live/${WX_DOMAIN}/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/${WX_DOMAIN}/privkey.pem; - include /etc/nginx/snippets/ssl-params.conf; - - location / { - proxy_pass http://wxserver_service; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Port $server_port; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - } -} +# 注:wxserver 不再独立占用域名,所有接口统一通过 api.xxx/wx/* 路由访问 diff --git a/codes/agent/game-docker/fix-lf.ps1 b/codes/agent/game-docker/fix-lf.ps1 new file mode 100644 index 0000000..a74616f --- /dev/null +++ b/codes/agent/game-docker/fix-lf.ps1 @@ -0,0 +1,39 @@ +#!/usr/bin/env pwsh +# fix-lf.ps1 — 检查并修复 game-docker 中关键文件的行尾符(CRLF → LF) +# 在上传部署前运行,确保 shell 脚本等文件在 Linux 容器中可正常执行 + +$root = $PSScriptRoot + +$patterns = @('*.sh', '*.conf', '*.env', 'Dockerfile', 'deploy.sh', 'init-ssl.sh', + 'docker-compose*.yml', '*.yaml', 'entrypoint*') + +Write-Host "扫描目录: $root" -ForegroundColor Cyan +Write-Host "" + +$files = $patterns | ForEach-Object { + Get-ChildItem -Path $root -Recurse -Filter $_ -File +} | Sort-Object FullName -Unique + +$crlfFiles = $files | Where-Object { + $bytes = [System.IO.File]::ReadAllBytes($_.FullName) + ($bytes | Where-Object { $_ -eq 13 } | Measure-Object).Count -gt 0 +} + +if (-not $crlfFiles) { + Write-Host "✓ 所有关键文件行尾符正常(LF),无需修复。" -ForegroundColor Green + exit 0 +} + +Write-Host "发现 $($crlfFiles.Count) 个文件含 CRLF,正在修复..." -ForegroundColor Yellow +Write-Host "" + +foreach ($f in $crlfFiles) { + $content = [System.IO.File]::ReadAllText($f.FullName) + $fixed = $content -replace "`r`n", "`n" + [System.IO.File]::WriteAllText($f.FullName, $fixed, [System.Text.UTF8Encoding]::new($false)) + $rel = $f.FullName.Substring($root.Length + 1) + Write-Host " 已修复: $rel" -ForegroundColor Green +} + +Write-Host "" +Write-Host "✓ 修复完成,共处理 $($crlfFiles.Count) 个文件。" -ForegroundColor Green diff --git a/codes/agent/game-docker/init-ssl.sh b/codes/agent/game-docker/init-ssl.sh index 7e8a0be..99947a7 100644 --- a/codes/agent/game-docker/init-ssl.sh +++ b/codes/agent/game-docker/init-ssl.sh @@ -48,9 +48,8 @@ if [ -z "$ROOT_DOMAIN" ]; then fi : ${API_DOMAIN:="api.${ROOT_DOMAIN}"} : ${DLWEB_DOMAIN:="dlapi.${ROOT_DOMAIN}"} -: ${WX_DOMAIN:="wxapi.${ROOT_DOMAIN}"} -DOMAINS=("$API_DOMAIN" "$DLWEB_DOMAIN" "$WX_DOMAIN") +DOMAINS=("$API_DOMAIN" "$DLWEB_DOMAIN") # 判断使用 docker-compose 还是 docker compose COMPOSE_CMD="docker compose" diff --git a/codes/agent/game-docker/sync.ps1 b/codes/agent/game-docker/sync.ps1 index b67ee56..61eee81 100644 --- a/codes/agent/game-docker/sync.ps1 +++ b/codes/agent/game-docker/sync.ps1 @@ -1,142 +1,142 @@ -#!/usr/bin/env pwsh -# ============================================================== -# sync.ps1 — 将 game-docker 同步到服务器 -# -# 替代 scp -r 的智能上传脚本: -# - config 模式:只传 Docker 配置 + 脚本,~几 KB,秒级完成 -# - app 模式:传应用代码,排除静态三方库(默认) -# - full 模式:全量同步,适合首次部署 -# -# 用法: -# .\sync.ps1 # app 模式(默认) -# .\sync.ps1 -Mode config # 只传 docker/ 配置文件 -# .\sync.ps1 -Mode full # 全量(首次部署) -# .\sync.ps1 -Mode app -DryRun # 预览 tar 内容,不实际上传 -# ============================================================== - -param( - [ValidateSet('config', 'app', 'full')] - [string]$Mode = 'app', - [string]$Server = 'root@47.98.203.17', - [string]$RemotePath = '/opt/youle/game-docker', - [switch]$DryRun -) - -Set-StrictMode -Version Latest -$ErrorActionPreference = 'Stop' - -$LocalDir = Split-Path -Parent $MyInvocation.MyCommand.Path -$TmpTar = Join-Path $env:TEMP 'game-docker-sync.tar.gz' - -# ===================== 排除规则 ===================== -# 任何模式都不上传 -$AlwaysExclude = @( - './.env' # 密钥,绝不上传 - './.git' - './*.bak' - './game' # 原始未修改代码备份,仅本地保留 -) - -# app / config 模式额外排除的静态三方库(几乎不变动,Docker build 也不需要) -# 这些目录已在 .dockerignore 中排除,服务器上不需要它们 -$VendorExclude = @( - './api/document' # 接口文档,228 files / 2.07 MB - './api/sample' # 示例代码,72 files / 3.18 MB - './api/tests' # 单元测试 - # dlweb/api/third(阿里云短信SDK)已从项目中删除,见 .dockerignore -) - -# ===================== config 模式:精确文件列表 ===================== -$ConfigFiles = @( - 'docker-compose.yml' - '.env.example' - 'deploy.sh' - 'init-ssl.sh' - 'env_config.php' - 'README.md' - 'sync.ps1' - 'docker' # 目录 -) - -# ===================== 辅助函数 ===================== -function Write-Step([string]$msg) { - Write-Host "[sync] $msg" -ForegroundColor Cyan -} -function Write-Ok([string]$msg) { - Write-Host "[OK] $msg" -ForegroundColor Green -} -function Write-Warn([string]$msg) { - Write-Host "[!!] $msg" -ForegroundColor Yellow -} - -# ===================== 主逻辑 ===================== -try { - if ($Mode -eq 'config') { - # ── Config 模式:用 scp 精确传输少量关键文件(最快) ────────────── - Write-Step 'Config mode: uploading docker configs only...' - - $missing = @() - foreach ($f in $ConfigFiles) { - $src = Join-Path $LocalDir $f - if (-not (Test-Path $src)) { $missing += $f; continue } - - if ($DryRun) { - Write-Host " [dry] would scp: $f" - continue - } - - if (Test-Path $src -PathType Container) { - scp -r -O $src "${Server}:${RemotePath}/" - } else { - scp -O $src "${Server}:${RemotePath}/$f" - } - } - if ($missing) { Write-Warn "Skipped (not found): $($missing -join ', ')" } - if (-not $DryRun) { Write-Ok 'Config files uploaded.' } - } - else { - # ── App / Full 模式:tar + ssh,单连接传全部文件 ──────────────────── - # - # 性能对比(约 5000 文件): - # scp -r : ~5000 次 SSH 握手,极慢 - # tar+ssh: 1 次 SSH 连接 + gzip 压缩,快 10-50x - # - $excludeArgs = [System.Collections.Generic.List[string]]::new() - foreach ($e in $AlwaysExclude) { $excludeArgs.Add("--exclude=$e") } - if ($Mode -eq 'app') { - foreach ($e in $VendorExclude) { $excludeArgs.Add("--exclude=$e") } - } - - if ($DryRun) { - Write-Step "DryRun ($Mode): listing archive contents..." - Write-Host " tar args: $($excludeArgs -join ' ')" - & tar -tvf - @excludeArgs -C $LocalDir . 2>&1 | Select-Object -First 60 - Write-Warn "(dry-run, nothing uploaded)" - return - } - - # 1. 在本地打包(gzip 压缩减小传输量) - Write-Step "$Mode mode: creating archive (this may take a few seconds)..." - & tar -czf $TmpTar @excludeArgs -C $LocalDir . - $sizeMB = [math]::Round((Get-Item $TmpTar).Length / 1MB, 2) - Write-Ok "Archive created: $sizeMB MB" - - # 2. 上传单个 tar 文件(单连接,比 scp -r 快得多) - Write-Step "Uploading $sizeMB MB to $Server ..." - scp -O $TmpTar "${Server}:/tmp/game-docker-sync.tar.gz" - - # 3. 服务器端解压(先建目录,保留已有文件,覆盖更新内容) - Write-Step 'Extracting on server...' - ssh $Server "mkdir -p ${RemotePath} && tar xzf /tmp/game-docker-sync.tar.gz -C ${RemotePath} --overwrite && rm /tmp/game-docker-sync.tar.gz" - - Write-Ok "Sync complete ($Mode mode, $sizeMB MB transferred)." - Write-Host "" - Write-Host " Next steps (if needed):" -ForegroundColor DarkGray - Write-Host " docker compose up -d --build api # 重建应用镜像" -ForegroundColor DarkGray - Write-Host " docker compose up -d --build dlweb # 重建 dlweb" -ForegroundColor DarkGray - Write-Host " docker compose restart nginx # 重载配置" -ForegroundColor DarkGray - } -} -finally { - if (Test-Path $TmpTar) { Remove-Item $TmpTar -Force } -} +#!/usr/bin/env pwsh +# ============================================================== +# sync.ps1 — 将 game-docker 同步到服务器 +# +# 替代 scp -r 的智能上传脚本: +# - config 模式:只传 Docker 配置 + 脚本,~几 KB,秒级完成 +# - app 模式:传应用代码,排除静态三方库(默认) +# - full 模式:全量同步,适合首次部署 +# +# 用法: +# .\sync.ps1 # app 模式(默认) +# .\sync.ps1 -Mode config # 只传 docker/ 配置文件 +# .\sync.ps1 -Mode full # 全量(首次部署) +# .\sync.ps1 -Mode app -DryRun # 预览 tar 内容,不实际上传 +# ============================================================== + +param( + [ValidateSet('config', 'app', 'full')] + [string]$Mode = 'app', + [string]$Server = 'root@47.98.203.17', + [string]$RemotePath = '/opt/youle/game-docker', + [switch]$DryRun +) + +Set-StrictMode -Version Latest +$ErrorActionPreference = 'Stop' + +$LocalDir = Split-Path -Parent $MyInvocation.MyCommand.Path +$TmpTar = Join-Path $env:TEMP 'game-docker-sync.tar.gz' + +# ===================== 排除规则 ===================== +# 任何模式都不上传 +$AlwaysExclude = @( + './.env' # 密钥,绝不上传 + './.git' + './*.bak' + './game' # 原始未修改代码备份,仅本地保留 +) + +# app / config 模式额外排除的静态三方库(几乎不变动,Docker build 也不需要) +# 这些目录已在 .dockerignore 中排除,服务器上不需要它们 +$VendorExclude = @( + './api/document' # 接口文档,228 files / 2.07 MB + './api/sample' # 示例代码,72 files / 3.18 MB + './api/tests' # 单元测试 + # dlweb/api/third(阿里云短信SDK)已从项目中删除,见 .dockerignore +) + +# ===================== config 模式:精确文件列表 ===================== +$ConfigFiles = @( + 'docker-compose.yml' + '.env.example' + 'deploy.sh' + 'init-ssl.sh' + 'env_config.php' + 'README.md' + 'sync.ps1' + 'docker' # 目录 +) + +# ===================== 辅助函数 ===================== +function Write-Step([string]$msg) { + Write-Host "[sync] $msg" -ForegroundColor Cyan +} +function Write-Ok([string]$msg) { + Write-Host "[OK] $msg" -ForegroundColor Green +} +function Write-Warn([string]$msg) { + Write-Host "[!!] $msg" -ForegroundColor Yellow +} + +# ===================== 主逻辑 ===================== +try { + if ($Mode -eq 'config') { + # ── Config 模式:用 scp 精确传输少量关键文件(最快) ────────────── + Write-Step 'Config mode: uploading docker configs only...' + + $missing = @() + foreach ($f in $ConfigFiles) { + $src = Join-Path $LocalDir $f + if (-not (Test-Path $src)) { $missing += $f; continue } + + if ($DryRun) { + Write-Host " [dry] would scp: $f" + continue + } + + if (Test-Path $src -PathType Container) { + scp -r -O $src "${Server}:${RemotePath}/" + } else { + scp -O $src "${Server}:${RemotePath}/$f" + } + } + if ($missing) { Write-Warn "Skipped (not found): $($missing -join ', ')" } + if (-not $DryRun) { Write-Ok 'Config files uploaded.' } + } + else { + # ── App / Full 模式:tar + ssh,单连接传全部文件 ──────────────────── + # + # 性能对比(约 5000 文件): + # scp -r : ~5000 次 SSH 握手,极慢 + # tar+ssh: 1 次 SSH 连接 + gzip 压缩,快 10-50x + # + $excludeArgs = [System.Collections.Generic.List[string]]::new() + foreach ($e in $AlwaysExclude) { $excludeArgs.Add("--exclude=$e") } + if ($Mode -eq 'app') { + foreach ($e in $VendorExclude) { $excludeArgs.Add("--exclude=$e") } + } + + if ($DryRun) { + Write-Step "DryRun ($Mode): listing archive contents..." + Write-Host " tar args: $($excludeArgs -join ' ')" + & tar -tvf - @excludeArgs -C $LocalDir . 2>&1 | Select-Object -First 60 + Write-Warn "(dry-run, nothing uploaded)" + return + } + + # 1. 在本地打包(gzip 压缩减小传输量) + Write-Step "$Mode mode: creating archive (this may take a few seconds)..." + & tar -czf $TmpTar @excludeArgs -C $LocalDir . + $sizeMB = [math]::Round((Get-Item $TmpTar).Length / 1MB, 2) + Write-Ok "Archive created: $sizeMB MB" + + # 2. 上传单个 tar 文件(单连接,比 scp -r 快得多) + Write-Step "Uploading $sizeMB MB to $Server ..." + scp -O $TmpTar "${Server}:/tmp/game-docker-sync.tar.gz" + + # 3. 服务器端解压(先建目录,保留已有文件,覆盖更新内容) + Write-Step 'Extracting on server...' + ssh $Server "mkdir -p ${RemotePath} && tar xzf /tmp/game-docker-sync.tar.gz -C ${RemotePath} --overwrite && rm /tmp/game-docker-sync.tar.gz" + + Write-Ok "Sync complete ($Mode mode, $sizeMB MB transferred)." + Write-Host "" + Write-Host " Next steps (if needed):" -ForegroundColor DarkGray + Write-Host " docker compose up -d --build api # 重建应用镜像" -ForegroundColor DarkGray + Write-Host " docker compose up -d --build dlweb # 重建 dlweb" -ForegroundColor DarkGray + Write-Host " docker compose restart nginx # 重载配置" -ForegroundColor DarkGray + } +} +finally { + if (Test-Path $TmpTar) { Remove-Item $TmpTar -Force } +} diff --git a/codes/agent/game-docker/wxserver_daoqi/debug/geturl.txt b/codes/agent/game-docker/wxserver_daoqi/debug/geturl.txt index 0c3736a..7fbd720 100644 --- a/codes/agent/game-docker/wxserver_daoqi/debug/geturl.txt +++ b/codes/agent/game-docker/wxserver_daoqi/debug/geturl.txt @@ -1,2 +1,2 @@ -# Debug URL template - replace IP:PORT with actual game server address +# Debug URL template - replace IP:PORT with actual game server address # http://GAME_SERVER_IP:PORT?data=... \ No newline at end of file diff --git a/codes/agent/game-docker/wxserver_daoqi/sql/player.txt b/codes/agent/game-docker/wxserver_daoqi/sql/player.txt index 3329fae..0877172 100644 --- a/codes/agent/game-docker/wxserver_daoqi/sql/player.txt +++ b/codes/agent/game-docker/wxserver_daoqi/sql/player.txt @@ -1 +1 @@ -"idx" "play_agentid" "play_playerid" "play_channelid" "play_openid" "play_unionid" "play_nickname" "play_avatar" "play_sex" "play_province" "play_city" "play_roomcard" "play_bean" "play_regtime" "play_lasttime" "play_logindate" "play_usecard" "play_taskaward" "play_type" "play_score" "play_a_country" "play_a_province" "play_a_city" "play_a_citycode" "play_a_district" "play_a_street" "play_a_address" "play_longitude" "play_latitude" "play_invitecode" "play_inviteid" "play_state" "play_advanced" "play_shortcode" "play_roomcodes" "play_desone" "play_destwo" "play_whitelist" "play_limit" "play_notice" "play_bankpower" "play_bank" "play_bankpwd" "play_tel" "play_wechat" "play_marketid" "play_phoneinfo" "play_sign" +"idx" "play_agentid" "play_playerid" "play_channelid" "play_openid" "play_unionid" "play_nickname" "play_avatar" "play_sex" "play_province" "play_city" "play_roomcard" "play_bean" "play_regtime" "play_lasttime" "play_logindate" "play_usecard" "play_taskaward" "play_type" "play_score" "play_a_country" "play_a_province" "play_a_city" "play_a_citycode" "play_a_district" "play_a_street" "play_a_address" "play_longitude" "play_latitude" "play_invitecode" "play_inviteid" "play_state" "play_advanced" "play_shortcode" "play_roomcodes" "play_desone" "play_destwo" "play_whitelist" "play_limit" "play_notice" "play_bankpower" "play_bank" "play_bankpwd" "play_tel" "play_wechat" "play_marketid" "play_phoneinfo" "play_sign" diff --git a/codes/agent/game-docker/wxserver_daoqi/start_server.bat b/codes/agent/game-docker/wxserver_daoqi/start_server.bat deleted file mode 100644 index fb25647..0000000 --- a/codes/agent/game-docker/wxserver_daoqi/start_server.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off -title BaibaoxiangServer -cd /d "%~dp0" -echo Starting Baibaoxiang Server... -echo Server will run on port 3000 (or configured port) -node index.js -pause \ No newline at end of file diff --git a/codes/agent/game-docker/wxserver_daoqi/start_server_colored.bat b/codes/agent/game-docker/wxserver_daoqi/start_server_colored.bat deleted file mode 100644 index c36d001..0000000 --- a/codes/agent/game-docker/wxserver_daoqi/start_server_colored.bat +++ /dev/null @@ -1,12 +0,0 @@ -@echo off -title WeChat Server - Running -color 0A -cls - -:: 切换到脚本所在目录,确保 node 能找到 index.js -cd /d "%~dp0" - -echo Starting WeChat Server... -echo. -node index.js -pause \ No newline at end of file diff --git a/codes/agent/game-docker/wxserver_daoqi/stop_server.bat b/codes/agent/game-docker/wxserver_daoqi/stop_server.bat deleted file mode 100644 index 7fbce14..0000000 --- a/codes/agent/game-docker/wxserver_daoqi/stop_server.bat +++ /dev/null @@ -1,21 +0,0 @@ -@echo off -setlocal -set PORT=3000 -echo Looking for process on port %PORT%... - -:: 查找占用端口 3000 的进程 PID -set PID= -for /f "tokens=5" %%a in ('netstat -aon ^| findstr ":%PORT% " ^| findstr "LISTENING"') do ( - set PID=%%a -) - -if defined PID ( - echo Found process with PID: %PID% - echo Killing process... - taskkill /F /PID %PID% - echo Server stopped successfully. -) else ( - echo No server found running on port %PORT%. -) - -pause \ No newline at end of file