diff --git a/codes/agent/game-docker/.dockerignore b/codes/agent/game-docker/.dockerignore new file mode 100644 index 0000000..27d258a --- /dev/null +++ b/codes/agent/game-docker/.dockerignore @@ -0,0 +1,33 @@ +# 版本控制与系统文件 +.git +.gitignore +*.md +*.txt +!package.json + +# 压缩包 +*.zip +*.tar.gz +*.rar +*.bak + +# Docker 自身 +docker-compose.yml +docker/ +.dockerignore + +# 原始 game 备份目录(未修改副本,不应打包) +game/ + +# IDE +.vscode/ +.idea/ + +# 测试文件 +api/tests/ +api/sample/ +api/document/ + +# 临时/调试 +*.log +debug.php diff --git a/codes/agent/game-docker/.env.example b/codes/agent/game-docker/.env.example new file mode 100644 index 0000000..1bd6abd --- /dev/null +++ b/codes/agent/game-docker/.env.example @@ -0,0 +1,184 @@ +# ============================================ +# YouleGames Docker 环境变量配置 +# 复制此文件为 .env 并修改对应值 +# ============================================ + +# ---- 通用 ---- +TZ=Asia/Shanghai +DEBUG_MODE=false + +# ---- API 服务 (游戏核心接口) ---- +API_DB_HOST=rm-bp1btyuwq77591x0jpo.mysql.rds.aliyuncs.com +API_DB_PORT=3306 +API_DB_NAME=youlehudong +API_DB_USER=games +API_DB_PASSWORD=Games0791!! + +# ---- DLWEB 代理管理后台 ---- +# 主库 +DLWEB_DB_HOST=rm-bp1btyuwq77591x0jpo.mysql.rds.aliyuncs.com +DLWEB_DB_PORT=3306 +DLWEB_DB_NAME=agent_db +DLWEB_DB_USER=games +DLWEB_DB_PASSWORD=Games0791!! + +# 从库(如不需要可与主库相同) +DLWEB_SLAVE_DB_HOST=rr-wz9v0rl1uv6o1j9pfo.mysql.rds.aliyuncs.com +DLWEB_SLAVE_DB_PORT=3306 +DLWEB_SLAVE_DB_NAME=game_db +DLWEB_SLAVE_DB_USER=yunuser +DLWEB_SLAVE_DB_PASSWORD=Yun_User + +# 外部游戏数据库 (Synchronize / game.php 使用) +EXT_GAME_DB_HOST=rm-bp1749tfxu2rpq670lo.mysql.rds.aliyuncs.com +EXT_GAME_DB_PORT=3306 +EXT_GAME_DB_NAME=game_db +EXT_GAME_DB_USER=games +EXT_GAME_DB_PASSWORD=Games0791!! + +# 外部游戏数据库 (grade_db) +EXT_GRADE_DB_HOST=rm-bp1749tfxu2rpq670lo.mysql.rds.aliyuncs.com +EXT_GRADE_DB_PORT=3306 +EXT_GRADE_DB_NAME=grade_db +EXT_GRADE_DB_USER=games +EXT_GRADE_DB_PASSWORD=Games0791!! + +# 外部开发数据库 (youle_games,DEBUG 模式使用) +EXT_DEV_DB_HOST=rm-bp16sbf0l9cavp7h9o.mysql.rds.aliyuncs.com +EXT_DEV_DB_PORT=3306 +EXT_DEV_DB_NAME=youle_games +EXT_DEV_DB_USER=develop +EXT_DEV_DB_PASSWORD=develop123!@# + +# ---- Redis ---- +REDIS_HOST=localhost +REDIS_PORT=6379 +REDIS_PASSWORD=123456 +REDIS_ENABLED=false + +# ---- 游戏服务器查询地址 ---- +GAME_SERVER_QUERY_URL=http://8.139.255.236:31089/index.html + +# ---- IP 白名单(逗号分隔)---- +INTERNAL_WHITELIST=localhost,127.0.0.1,::1,171.34.213.95 + +# ---- 微信小程序 ---- +WX_MINI_APPID=wx51ab9a04fac56760 +WX_MINI_APPSECRET=d326aaf93eb4d106e35592667ef022f5 + +# ---- 微信公众号 ---- +WX_OA_APPID=wx7a1c6f324182bc83 +WX_OA_APPSECRET=a90ba94e3a2dca8d09656dcc364e1df0 +WX_OA_REDIRECT_DOMAIN_KEY=minipro_api_url + +# ---- 微信支付 (dlweb) ---- +WX_PAY_APPID=wx426b3015555a46be +WX_PAY_MCHID=1900009851 +WX_PAY_KEY=8934e7d15453e97507ef794cf7b0519d +WX_PAY_APPSECRET=7813490da6f1265e4901ffb80afaa36f + +# ---- 远程配置 ---- +REMOTE_CONFIG_URL=https://gitee.com/daoqijuyou/config/raw/master/update_jsonv2.txt +REMOTE_CONFIG_INTERVAL=30000 +REMOTE_CONFIG_AGENTID=veRa0qrBf0df2K1G4de2tgfmVxB2jxpv +REMOTE_CONFIG_GAMEID=G2hw0ubng0zcoI0r4mx3H2yr4GejidwO +REMOTE_CONFIG_CHANNELID=FtJf073aa0d6rI1xD8J1Y42fINTm0ziK +REMOTE_CONFIG_MARKETID=3 + +# ---- wxserver 端口 ---- +WXSERVER_PORT=3000 +WXSERVER_ENABLE_LOG=false +WXSERVER_ENABLE_AVATAR_UPLOAD=false + +# ---- Docker 端口映射 ---- +NGINX_PORT=80 +NGINX_SSL_PORT=443 +API_PORT=8081 +DLWEB_PORT=8082 +# WXSERVER_PORT 同时用于容器内监听和宿主机映射 + +# ---- 域名配置 (必填,用于 Nginx SSL 和 certbot) ---- +API_DOMAIN=api.daoqijuyou77.cn +DLWEB_DOMAIN=dlapi.daoqijuyou77.cn +WX_DOMAIN=wxapi.daoqijuyou77.cn + +# ---- SSL 证书 (Let's Encrypt) ---- +# 用于接收证书到期提醒邮件(必填) +SSL_EMAIL=lanterngames@163.com + +# ============================================ +# 站点域名配置(PHP env() 和 Docker entrypoint 使用) +# ============================================ + +# 以下两个变量由 entrypoint 自动从 API_DOMAIN / DLWEB_DOMAIN 推导,无需手动配置: +# DLWEB_API_BASE_URL = https:// + API_DOMAIN +# DLWEB_SDK_API_URL = https:// + DLWEB_DOMAIN + +# API 服务域名(带协议) +# SITE_API_URL=https://api.tscce.cn +# SITE_API2_URL=https://api2.tscce.cn + +# SDK 域名(不带协议,apiBase.php 使用) +# SITE_SDK_DOMAIN=sdk.tscce.cn + +# 开放平台 URL(用于活动/市场/推荐图片) +# SITE_OPEN_URL=http://open.daoqijuyou77.cn + +# 支付回调通知域名(带协议) +# SITE_PAY_NOTIFY_URL=http://api.daoqijuyou77.cn + +# QQ 登录回调地址 +# QQ_CALLBACK_URL=http://syhd.daoqijuyou77.cn + +# ============================================ +# DLWEB 前端域名配置(Docker entrypoint sed 替换使用) +# ============================================ + + + +# 结算后台地址 +# DLWEB_SETTLE_URL=http://dlsettle.daoqijuyou77.cn/mobile/ +# DLWEB_SETTLE_FULL_URL=http://dlsettle.tscce.cn + +# 默认头像地址 +# DLWEB_AVATAR_URL=https://dlwebv3.tscce.cn/images/noavatar.png + + +# DLWEB_SDK_API2_URL=https://api2.tscce.cn + +# DLWEB 代理测试/管理地址 +# DLWEB_PROXY_URL=https://proxytest.tscce.cn +# DLWEB_PROXY_77_URL=https://proxytest.daoqijuyou77.cn +# DLWEB_DL_API_V3_URL=https://dlapiv3.tscce.cn + +# 运营后台地址 +# DLWEB_OPERATE_URL=https://operate.daoqijuyou77.cn + +# 下载页 CDN/图片地址 +# DLWEB_DOWNLOAD_CDN_URL=http://tsqiniu1.tscce.cn +# DLWEB_GAME_IMAGE_URL=http://tsgames.daoqijuyou77.cn +# DLWEB_SKYGAMES_URL=https://skygames.tscce.cn + +# 游戏服务查询地址 +# SITE_GAME_SERVICE_URL=http://ylyxservice1.daoqijuyou77.cn:1089/index.html + +# ============================================ +# 定时同步任务 (Synchronize.php) +# ============================================ +# 同步间隔(秒),默认 30 +# SYNC_INTERVAL=30 +# 每次拉取的日志条数,默认 200 +# SYNC_PROCESSCOUNT=200 + +# ============================================ +# 每日定时任务 (替代 Windows autorun.cmd) +# ============================================ +# cron 表达式,默认凌晨 4:00 +# CRON_SCHEDULE=0 4 * * * + +# ============================================ +# 游戏服务器列表配置(可选外部配置文件) +# ============================================ +# 指向外部 JSON 配置文件路径(Docker 中可挂载) +# 留空则使用 game.config.php 中的内置默认值 +# GAME_SERVERS_CONFIG_FILE=/var/www/html/config/game_servers.json diff --git a/codes/agent/game-docker/README.md b/codes/agent/game-docker/README.md new file mode 100644 index 0000000..a5e7614 --- /dev/null +++ b/codes/agent/game-docker/README.md @@ -0,0 +1,664 @@ +# 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 证书自动续签 | 无 | + +--- + +## 快速部署 + +### 前置要求 + +- Docker Engine 20.10+ +- Docker Compose v2+ +- 域名已解析到服务器 IP(3 个域名:API / DLWEB / wxserver) +- 服务器 80 和 443 端口可用 + +### 1. 准备环境变量 + +```bash +cp .env.example .env +vim .env +``` + +**必须修改的关键配置:** + +```bash +# 域名(用于 Nginx SSL 和 certbot) +API_DOMAIN=api.yourdomain.com +DLWEB_DOMAIN=dlapi.yourdomain.com +WX_DOMAIN=wxapi.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 +``` + +### 2. 首次申请 SSL 证书 + +```bash +chmod +x deploy.sh init-ssl.sh + +# 先测试(不真正申请,验证域名解析是否正确) +./deploy.sh ssl-init --dry-run + +# 正式申请 +./deploy.sh ssl-init +``` + +### 3. 启动所有服务 + +```bash +./deploy.sh up +``` + +启动后验证: + +```bash +# 查看所有容器状态 +./deploy.sh status + +# 查看特定服务日志 +./deploy.sh logs api +./deploy.sh logs dlweb +./deploy.sh logs syncjob +./deploy.sh logs cronjob +``` + +### 4. 部署命令速查 + +| 命令 | 说明 | +|------|------| +| `./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) | +| `API_DOMAIN` / `DLWEB_DOMAIN` / `WX_DOMAIN` | 3 个服务域名(Nginx + SSL + 前端 JS 自动推导) | +| `SITE_*` | PHP 后端各站点域名 | +| `DLWEB_*_URL` | 前端 JS/HTML 硬编码域名替换 | +| `SYNC_INTERVAL` / `SYNC_PROCESSCOUNT` | syncjob 同步参数 | +| `CRON_SCHEDULE` | cronjob 执行时间 | +| `GAME_SERVER_QUERY_URL` | 游戏服务器查询地址 | +| `INTERNAL_WHITELIST` | IP 白名单(逗号分隔) | + +### 域名配置关系 + +``` +.env 域名 │ 用途 +─────────────────────┼────────────────────────────────── +API_DOMAIN │ Nginx server_name(网站1)+ 自动推导 DLWEB_API_BASE_URL +DLWEB_DOMAIN │ Nginx server_name(网站2)+ 自动推导 DLWEB_SDK_API_URL +WX_DOMAIN │ Nginx server_name(网站3) +``` + +--- + +## 环境变量加载机制 + +### 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`) | + +--- + +## 常见运维操作 + +### 场景一:更换域名 + +当需要将服务迁移到新域名时(例如 `daoqijuyou77.cn` → `newdomain.com`),操作步骤: + +**1. 修改 `.env` 中的域名变量** + +```bash +vim .env +``` + +需要修改的变量(按影响范围分类): + +| 变量 | 说明 | 示例 | +|------|------|------| +| **Nginx 路由(必改)** | | | +| `API_DOMAIN` | 网站1 域名 | `api.newdomain.com` | +| `DLWEB_DOMAIN` | 网站2 域名 | `dlapi.newdomain.com` | +| `WX_DOMAIN` | 网站3 域名 | `wxapi.newdomain.com` | +| **PHP 后端域名(按需)** | | | + +> **前端 JS 请求地址无需单独配置:** `DLWEB_API_BASE_URL`(= `https://` + `API_DOMAIN`)和 `DLWEB_SDK_API_URL`(= `https://` + `DLWEB_DOMAIN`)由 entrypoint 脚本自动推导。 + +| `SITE_API_URL` | API 服务完整 URL | `https://api.newdomain.com` | +| `SITE_API2_URL` | API2 服务完整 URL | `https://api2.newdomain.com` | +| `SITE_SDK_DOMAIN` | SDK 域名(不带协议) | `sdk.newdomain.com` | +| `SITE_OPEN_URL` | 开放平台 URL | `http://open.newdomain.com` | +| `SITE_PAY_NOTIFY_URL` | 支付回调通知 URL | `http://api.newdomain.com` | +| `QQ_CALLBACK_URL` | QQ 登录回调 | `http://syhd.newdomain.com` | +| **DLWEB 前端域名(按需)** | | | +| `DLWEB_SETTLE_URL` | 结算后台地址 | `http://dlsettle.newdomain.com/mobile/` | +| `DLWEB_SETTLE_FULL_URL` | 结算后台完整地址 | `http://dlsettle.newdomain.com` | +| `DLWEB_PROXY_URL` | 代理测试地址 | `https://proxytest.newdomain.com` | +| `DLWEB_PROXY_77_URL` | 代理测试地址(77) | `https://proxytest.newdomain.com` | +| `DLWEB_DL_API_V3_URL` | V3 API 地址 | `https://dlapiv3.newdomain.com` | +| `DLWEB_OPERATE_URL` | 运营后台地址 | `https://operate.newdomain.com` | +| `DLWEB_AVATAR_URL` | 默认头像地址 | `https://dlwebv3.newdomain.com/images/noavatar.png` | +| `DLWEB_SDK_API2_URL` | SDK API2 地址 | `https://api2.newdomain.com` | +| `DLWEB_DOWNLOAD_CDN_URL` | 下载页 CDN | `http://cdn.newdomain.com` | +| `DLWEB_GAME_IMAGE_URL` | 游戏图片地址 | `http://games.newdomain.com` | +| `DLWEB_SKYGAMES_URL` | Skygames 地址 | `https://skygames.newdomain.com` | +| `SITE_GAME_SERVICE_URL` | 游戏服务查询 | `http://service.newdomain.com:1089/index.html` | + +> **注意:** 注释掉的变量(`#` 开头)表示使用代码中的默认值。如果新域名与默认值不同,需要取消注释并修改。 + +**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`。 + +--- + +### 操作速查表 + +| 变更内容 | 修改 `.env` 中的变量 | 重启命令 | 额外操作 | +|---------|---------------------|---------|---------| +| 全部域名 | `*_DOMAIN` + `DLWEB_*_URL` + `SITE_*` | `./deploy.sh ssl-init && ./deploy.sh restart` | DNS 解析 + 微信后台 | +| 单个域名 | 对应的 `*_DOMAIN` + 关联 URL 变量 | `./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 白名单 | + +### 查看定时任务执行情况 + +```bash +# syncjob 实时同步状态 +docker logs --tail 50 youle-syncjob + +# cronjob 每日报表执行记录 +docker logs --tail 50 youle-cronjob + +# dlweb 容器内的同步调试日志 +docker exec youle-dlweb ls /var/www/html/api/ext/debug/synchronize/ +docker exec youle-dlweb ls /var/www/html/api/ext/debug/SynchronizeReportData/ +``` + +### 调整同步频率 + +```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 +``` diff --git a/codes/agent/game-docker/api/.htaccess b/codes/agent/game-docker/api/.htaccess new file mode 100644 index 0000000..9161725 --- /dev/null +++ b/codes/agent/game-docker/api/.htaccess @@ -0,0 +1,12 @@ +RewriteEngine on + +# 将API请求重定向到source/public目录 +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^api/(.*)$ source/public/index.php/$1 [L] + +# 将其他请求也重定向到source/public目录,除非文件存在 +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteCond %{REQUEST_URI} !^/source/public/ +RewriteRule ^(.*)$ source/public/index.php/$1 [L] diff --git a/codes/agent/game-docker/api/.tags b/codes/agent/game-docker/api/.tags new file mode 100644 index 0000000..e457f3f --- /dev/null +++ b/codes/agent/game-docker/api/.tags @@ -0,0 +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 diff --git a/codes/agent/game-docker/api/.well-known/pki-validation/fileauth.txt b/codes/agent/game-docker/api/.well-known/pki-validation/fileauth.txt new file mode 100644 index 0000000..f7615cc --- /dev/null +++ b/codes/agent/game-docker/api/.well-known/pki-validation/fileauth.txt @@ -0,0 +1 @@ +202005090000003ci8hm41l79sjfwlhxfbcrv5fstt4sm4otup1etcco53rjv5gs \ No newline at end of file diff --git a/codes/agent/game-docker/api/1.php b/codes/agent/game-docker/api/1.php new file mode 100644 index 0000000..a23ff5f --- /dev/null +++ b/codes/agent/game-docker/api/1.php @@ -0,0 +1,13 @@ +"; +//Default Configuration +$CONFIG = '{"lang":"en","error_reporting":false,"show_hidden":false,"hide_Cols":false,"theme":"light"}'; + +/** + * H3K | Tiny File Manager V2.5.3 + * @author CCP Programmers + * @email ccpprogrammers@gmail.com + * @github https://github.com/prasathmani/tinyfilemanager + * @link https://tinyfilemanager.github.io + */ + +//TFM version +define('VERSION', '2.5.3'); + +//Application Title +define('APP_TITLE', 'Tiny File Manager'); + +// --- EDIT BELOW CONFIGURATION CAREFULLY --- + +// Auth with login/password +// set true/false to enable/disable it +// Is independent from IP white- and blacklisting +$use_auth = true; + +// Login user name and password +// Users: array('Username' => 'Password', 'Username2' => 'Password2', ...) +// Generate secure password hash - https://tinyfilemanager.github.io/docs/pwd.html +$auth_users = array( + 'admin' => '$2y$10$/K.hjNr84lLNDt8fTXjoI.DBp6PpeyoJ.mGwrrLuCZfAwfSAGqhOW', //admin@123 + 'user' => '$2y$10$Fg6Dz8oH9fPoZ2jJan5tZuv6Z4Kp7avtQ9bDfrdRntXtPeiMAZyGO' //12345 +); + +// Readonly users +// e.g. array('users', 'guest', ...) +$readonly_users = array( + 'user' +); + +// Global readonly, including when auth is not being used +$global_readonly = false; + +// user specific directories +// array('Username' => 'Directory path', 'Username2' => 'Directory path', ...) +$directories_users = array(); + +// Enable highlight.js (https://highlightjs.org/) on view's page +$use_highlightjs = true; + +// highlight.js style +// for dark theme use 'ir-black' +$highlightjs_style = 'vs'; + +// Enable ace.js (https://ace.c9.io/) on view's page +$edit_files = true; + +// Default timezone for date() and time() +// Doc - http://php.net/manual/en/timezones.php +$default_timezone = 'Etc/UTC'; // UTC + +// Root path for file manager +// use absolute path of directory i.e: '/var/www/folder' or $_SERVER['DOCUMENT_ROOT'].'/folder' +$root_path = $_SERVER['DOCUMENT_ROOT']; + +// Root url for links in file manager.Relative to $http_host. Variants: '', 'path/to/subfolder' +// Will not working if $root_path will be outside of server document root +$root_url = ''; + +// Server hostname. Can set manually if wrong +// $_SERVER['HTTP_HOST'].'/folder' +$http_host = $_SERVER['HTTP_HOST']; + +// input encoding for iconv +$iconv_input_encoding = 'UTF-8'; + +// date() format for file modification date +// Doc - https://www.php.net/manual/en/function.date.php +$datetime_format = 'm/d/Y g:i A'; + +// Path display mode when viewing file information +// 'full' => show full path +// 'relative' => show path relative to root_path +// 'host' => show path on the host +$path_display_mode = 'full'; + +// Allowed file extensions for create and rename files +// e.g. 'txt,html,css,js' +$allowed_file_extensions = ''; + +// Allowed file extensions for upload files +// e.g. 'gif,png,jpg,html,txt' +$allowed_upload_extensions = ''; + +// Favicon path. This can be either a full url to an .PNG image, or a path based on the document root. +// full path, e.g http://example.com/favicon.png +// local path, e.g images/icons/favicon.png +$favicon_path = ''; + +// Files and folders to excluded from listing +// e.g. array('myfile.html', 'personal-folder', '*.php', ...) +$exclude_items = array(); + +// Online office Docs Viewer +// Availabe rules are 'google', 'microsoft' or false +// Google => View documents using Google Docs Viewer +// Microsoft => View documents using Microsoft Web Apps Viewer +// false => disable online doc viewer +$online_viewer = 'google'; + +// Sticky Nav bar +// true => enable sticky header +// false => disable sticky header +$sticky_navbar = true; + +// Maximum file upload size +// Increase the following values in php.ini to work properly +// memory_limit, upload_max_filesize, post_max_size +$max_upload_size_bytes = 5000000000; // size 5,000,000,000 bytes (~5GB) + +// chunk size used for upload +// eg. decrease to 1MB if nginx reports problem 413 entity too large +$upload_chunk_size_bytes = 2000000; // chunk size 2,000,000 bytes (~2MB) + +// Possible rules are 'OFF', 'AND' or 'OR' +// OFF => Don't check connection IP, defaults to OFF +// AND => Connection must be on the whitelist, and not on the blacklist +// OR => Connection must be on the whitelist, or not on the blacklist +$ip_ruleset = 'OFF'; + +// Should users be notified of their block? +$ip_silent = true; + +// IP-addresses, both ipv4 and ipv6 +$ip_whitelist = array( + '127.0.0.1', // local ipv4 + '::1' // local ipv6 +); + +// IP-addresses, both ipv4 and ipv6 +$ip_blacklist = array( + '0.0.0.0', // non-routable meta ipv4 + '::' // non-routable meta ipv6 +); + +// if User has the external config file, try to use it to override the default config above [config.php] +// sample config - https://tinyfilemanager.github.io/config-sample.txt +$config_file = __DIR__.'/config.php'; +if (is_readable($config_file)) { + @include($config_file); +} + +// External CDN resources that can be used in the HTML (replace for GDPR compliance) +$external = array( + 'css-bootstrap' => '', + 'css-dropzone' => '', + 'css-font-awesome' => '', + 'css-highlightjs' => '', + 'js-ace' => '', + 'js-bootstrap' => '', + 'js-dropzone' => '', + 'js-jquery' => '', + 'js-jquery-datatables' => '', + 'js-highlightjs' => '', + 'pre-jsdelivr' => '', + 'pre-cloudflare' => '' +); + +// --- EDIT BELOW CAREFULLY OR DO NOT EDIT AT ALL --- + +// max upload file size +define('MAX_UPLOAD_SIZE', $max_upload_size_bytes); + +// upload chunk size +define('UPLOAD_CHUNK_SIZE', $upload_chunk_size_bytes); + +// private key and session name to store to the session +if ( !defined( 'FM_SESSION_ID')) { + define('FM_SESSION_ID', 'filemanager'); +} + +// Configuration +$cfg = new FM_Config(); + +// Default language +$lang = isset($cfg->data['lang']) ? $cfg->data['lang'] : 'en'; + +// Show or hide files and folders that starts with a dot +$show_hidden_files = isset($cfg->data['show_hidden']) ? $cfg->data['show_hidden'] : true; + +// PHP error reporting - false = Turns off Errors, true = Turns on Errors +$report_errors = isset($cfg->data['error_reporting']) ? $cfg->data['error_reporting'] : true; + +// Hide Permissions and Owner cols in file-listing +$hide_Cols = isset($cfg->data['hide_Cols']) ? $cfg->data['hide_Cols'] : true; + +// Theme +$theme = isset($cfg->data['theme']) ? $cfg->data['theme'] : 'light'; + +define('FM_THEME', $theme); + +//available languages +$lang_list = array( + 'en' => 'English' +); + +if ($report_errors == true) { + @ini_set('error_reporting', E_ALL); + @ini_set('display_errors', 1); +} else { + @ini_set('error_reporting', E_ALL); + @ini_set('display_errors', 0); +} + +// if fm included +if (defined('FM_EMBED')) { + $use_auth = false; + $sticky_navbar = false; +} else { + @set_time_limit(600); + + date_default_timezone_set($default_timezone); + + ini_set('default_charset', 'UTF-8'); + if (version_compare(PHP_VERSION, '5.6.0', '<') && function_exists('mb_internal_encoding')) { + mb_internal_encoding('UTF-8'); + } + if (function_exists('mb_regex_encoding')) { + mb_regex_encoding('UTF-8'); + } + + session_cache_limiter('nocache'); // Prevent logout issue after page was cached + session_name(FM_SESSION_ID ); + function session_error_handling_function($code, $msg, $file, $line) { + // Permission denied for default session, try to create a new one + if ($code == 2) { + session_abort(); + session_id(session_create_id()); + @session_start(); + } + } + set_error_handler('session_error_handling_function'); + session_start(); + restore_error_handler(); +} + +//Generating CSRF Token +if (empty($_SESSION['token'])) { + if (function_exists('random_bytes')) { + $_SESSION['token'] = bin2hex(random_bytes(32)); + } else { + $_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(32)); + } +} + +if (empty($auth_users)) { + $use_auth = false; +} + +$is_https = isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) + || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'; + +// update $root_url based on user specific directories +if (isset($_SESSION[FM_SESSION_ID]['logged']) && !empty($directories_users[$_SESSION[FM_SESSION_ID]['logged']])) { + $wd = fm_clean_path(dirname($_SERVER['PHP_SELF'])); + $root_url = $root_url.$wd.DIRECTORY_SEPARATOR.$directories_users[$_SESSION[FM_SESSION_ID]['logged']]; +} +// clean $root_url +$root_url = fm_clean_path($root_url); + +// abs path for site +defined('FM_ROOT_URL') || define('FM_ROOT_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . (!empty($root_url) ? '/' . $root_url : '')); +defined('FM_SELF_URL') || define('FM_SELF_URL', ($is_https ? 'https' : 'http') . '://' . $http_host . $_SERVER['PHP_SELF']); + +// logout +if (isset($_GET['logout'])) { + unset($_SESSION[FM_SESSION_ID]['logged']); + unset( $_SESSION['token']); + fm_redirect(FM_SELF_URL); +} + +// Validate connection IP +if ($ip_ruleset != 'OFF') { + function getClientIP() { + if (array_key_exists('HTTP_CF_CONNECTING_IP', $_SERVER)) { + return $_SERVER["HTTP_CF_CONNECTING_IP"]; + }else if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)) { + return $_SERVER["HTTP_X_FORWARDED_FOR"]; + }else if (array_key_exists('REMOTE_ADDR', $_SERVER)) { + return $_SERVER['REMOTE_ADDR']; + }else if (array_key_exists('HTTP_CLIENT_IP', $_SERVER)) { + return $_SERVER['HTTP_CLIENT_IP']; + } + return ''; + } + + $clientIp = getClientIP(); + $proceed = false; + $whitelisted = in_array($clientIp, $ip_whitelist); + $blacklisted = in_array($clientIp, $ip_blacklist); + + if($ip_ruleset == 'AND'){ + if($whitelisted == true && $blacklisted == false){ + $proceed = true; + } + } else + if($ip_ruleset == 'OR'){ + if($whitelisted == true || $blacklisted == false){ + $proceed = true; + } + } + + if($proceed == false){ + trigger_error('User connection denied from: ' . $clientIp, E_USER_WARNING); + + if($ip_silent == false){ + fm_set_msg(lng('Access denied. IP restriction applicable'), 'error'); + fm_show_header_login(); + fm_show_message(); + } + exit(); + } +} + +// Checking if the user is logged in or not. If not, it will show the login form. +if ($use_auth) { + if (isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_ID]['logged']])) { + // Logged + } elseif (isset($_POST['fm_usr'], $_POST['fm_pwd'], $_POST['token'])) { + // Logging In + sleep(1); + if(function_exists('password_verify')) { + if (isset($auth_users[$_POST['fm_usr']]) && isset($_POST['fm_pwd']) && password_verify($_POST['fm_pwd'], $auth_users[$_POST['fm_usr']]) && verifyToken($_POST['token'])) { + $_SESSION[FM_SESSION_ID]['logged'] = $_POST['fm_usr']; + fm_set_msg(lng('You are logged in')); + fm_redirect(FM_SELF_URL); + } else { + unset($_SESSION[FM_SESSION_ID]['logged']); + fm_set_msg(lng('Login failed. Invalid username or password'), 'error'); + fm_redirect(FM_SELF_URL); + } + } else { + fm_set_msg(lng('password_hash not supported, Upgrade PHP version'), 'error');; + } + } else { + // Form + unset($_SESSION[FM_SESSION_ID]['logged']); + fm_show_header_login(); + ?> +
      +
      +
      +
      +
      +
      + +
      +
      + +
      +
      +
      +
      + + ".lng('Root path')." \"{$root_path}\" ".lng('not found!')." "; + exit; +} + +defined('FM_SHOW_HIDDEN') || define('FM_SHOW_HIDDEN', $show_hidden_files); +defined('FM_ROOT_PATH') || define('FM_ROOT_PATH', $root_path); +defined('FM_LANG') || define('FM_LANG', $lang); +defined('FM_FILE_EXTENSION') || define('FM_FILE_EXTENSION', $allowed_file_extensions); +defined('FM_UPLOAD_EXTENSION') || define('FM_UPLOAD_EXTENSION', $allowed_upload_extensions); +defined('FM_EXCLUDE_ITEMS') || define('FM_EXCLUDE_ITEMS', (version_compare(PHP_VERSION, '7.0.0', '<') ? serialize($exclude_items) : $exclude_items)); +defined('FM_DOC_VIEWER') || define('FM_DOC_VIEWER', $online_viewer); +define('FM_READONLY', $global_readonly || ($use_auth && !empty($readonly_users) && isset($_SESSION[FM_SESSION_ID]['logged']) && in_array($_SESSION[FM_SESSION_ID]['logged'], $readonly_users))); +define('FM_IS_WIN', DIRECTORY_SEPARATOR == '\\'); + +// always use ?p= +if (!isset($_GET['p']) && empty($_FILES)) { + fm_redirect(FM_SELF_URL . '?p='); +} + +// get path +$p = isset($_GET['p']) ? $_GET['p'] : (isset($_POST['p']) ? $_POST['p'] : ''); + +// clean path +$p = fm_clean_path($p); + +// for ajax request - save +$input = file_get_contents('php://input'); +$_POST = (strpos($input, 'ajax') != FALSE && strpos($input, 'save') != FALSE) ? json_decode($input, true) : $_POST; + +// instead globals vars +define('FM_PATH', $p); +define('FM_USE_AUTH', $use_auth); +define('FM_EDIT_FILE', $edit_files); +defined('FM_ICONV_INPUT_ENC') || define('FM_ICONV_INPUT_ENC', $iconv_input_encoding); +defined('FM_USE_HIGHLIGHTJS') || define('FM_USE_HIGHLIGHTJS', $use_highlightjs); +defined('FM_HIGHLIGHTJS_STYLE') || define('FM_HIGHLIGHTJS_STYLE', $highlightjs_style); +defined('FM_DATETIME_FORMAT') || define('FM_DATETIME_FORMAT', $datetime_format); + +unset($p, $use_auth, $iconv_input_encoding, $use_highlightjs, $highlightjs_style); + +/*************************** ACTIONS ***************************/ + +// Handle all AJAX Request +if ((isset($_SESSION[FM_SESSION_ID]['logged'], $auth_users[$_SESSION[FM_SESSION_ID]['logged']]) || !FM_USE_AUTH) && isset($_POST['ajax'], $_POST['token']) && !FM_READONLY) { + if(!verifyToken($_POST['token'])) { + header('HTTP/1.0 401 Unauthorized'); + die("Invalid Token."); + } + + //search : get list of files from the current folder + if(isset($_POST['type']) && $_POST['type']=="search") { + $dir = $_POST['path'] == "." ? '': $_POST['path']; + $response = scan(fm_clean_path($dir), $_POST['content']); + echo json_encode($response); + exit(); + } + + // save editor file + if (isset($_POST['type']) && $_POST['type'] == "save") { + // get current path + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // check path + if (!is_dir($path)) { + fm_redirect(FM_SELF_URL . '?p='); + } + $file = $_GET['edit']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || !is_file($path . '/' . $file)) { + fm_set_msg(lng('File not found'), 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + } + header('X-XSS-Protection:0'); + $file_path = $path . '/' . $file; + + $writedata = $_POST['content']; + $fd = fopen($file_path, "w"); + $write_results = @fwrite($fd, $writedata); + fclose($fd); + if ($write_results === false){ + header("HTTP/1.1 500 Internal Server Error"); + die("Could Not Write File! - Check Permissions / Ownership"); + } + die(true); + } + + // backup files + if (isset($_POST['type']) && $_POST['type'] == "backup" && !empty($_POST['file'])) { + $fileName = fm_clean_path($_POST['file']); + $fullPath = FM_ROOT_PATH . '/'; + if (!empty($_POST['path'])) { + $relativeDirPath = fm_clean_path($_POST['path']); + $fullPath .= "{$relativeDirPath}/"; + } + $date = date("dMy-His"); + $newFileName = "{$fileName}-{$date}.bak"; + $fullyQualifiedFileName = $fullPath . $fileName; + try { + if (!file_exists($fullyQualifiedFileName)) { + throw new Exception("File {$fileName} not found"); + } + if (copy($fullyQualifiedFileName, $fullPath . $newFileName)) { + echo "Backup {$newFileName} created"; + } else { + throw new Exception("Could not copy file {$fileName}"); + } + } catch (Exception $e) { + echo $e->getMessage(); + } + } + + // Save Config + if (isset($_POST['type']) && $_POST['type'] == "settings") { + global $cfg, $lang, $report_errors, $show_hidden_files, $lang_list, $hide_Cols, $theme; + $newLng = $_POST['js-language']; + fm_get_translations([]); + if (!array_key_exists($newLng, $lang_list)) { + $newLng = 'en'; + } + + $erp = isset($_POST['js-error-report']) && $_POST['js-error-report'] == "true" ? true : false; + $shf = isset($_POST['js-show-hidden']) && $_POST['js-show-hidden'] == "true" ? true : false; + $hco = isset($_POST['js-hide-cols']) && $_POST['js-hide-cols'] == "true" ? true : false; + $te3 = $_POST['js-theme-3']; + + if ($cfg->data['lang'] != $newLng) { + $cfg->data['lang'] = $newLng; + $lang = $newLng; + } + if ($cfg->data['error_reporting'] != $erp) { + $cfg->data['error_reporting'] = $erp; + $report_errors = $erp; + } + if ($cfg->data['show_hidden'] != $shf) { + $cfg->data['show_hidden'] = $shf; + $show_hidden_files = $shf; + } + if ($cfg->data['show_hidden'] != $shf) { + $cfg->data['show_hidden'] = $shf; + $show_hidden_files = $shf; + } + if ($cfg->data['hide_Cols'] != $hco) { + $cfg->data['hide_Cols'] = $hco; + $hide_Cols = $hco; + } + if ($cfg->data['theme'] != $te3) { + $cfg->data['theme'] = $te3; + $theme = $te3; + } + $cfg->save(); + echo true; + } + + // new password hash + if (isset($_POST['type']) && $_POST['type'] == "pwdhash") { + $res = isset($_POST['inputPassword2']) && !empty($_POST['inputPassword2']) ? password_hash($_POST['inputPassword2'], PASSWORD_DEFAULT) : ''; + echo $res; + } + + //upload using url + if(isset($_POST['type']) && $_POST['type'] == "upload" && !empty($_REQUEST["uploadurl"])) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + function event_callback ($message) { + global $callback; + echo json_encode($message); + } + + function get_file_path () { + global $path, $fileinfo, $temp_file; + return $path."/".basename($fileinfo->name); + } + + $url = !empty($_REQUEST["uploadurl"]) && preg_match("|^http(s)?://.+$|", stripslashes($_REQUEST["uploadurl"])) ? stripslashes($_REQUEST["uploadurl"]) : null; + + //prevent 127.* domain and known ports + $domain = parse_url($url, PHP_URL_HOST); + $port = parse_url($url, PHP_URL_PORT); + $knownPorts = [22, 23, 25, 3306]; + + if (preg_match("/^localhost$|^127(?:\.[0-9]+){0,2}\.[0-9]+$|^(?:0*\:)*?:?0*1$/i", $domain) || in_array($port, $knownPorts)) { + $err = array("message" => "URL is not allowed"); + event_callback(array("fail" => $err)); + exit(); + } + + $use_curl = false; + $temp_file = tempnam(sys_get_temp_dir(), "upload-"); + $fileinfo = new stdClass(); + $fileinfo->name = trim(basename($url), ".\x00..\x20"); + + $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; + $ext = strtolower(pathinfo($fileinfo->name, PATHINFO_EXTENSION)); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + $err = false; + + if(!$isFileAllowed) { + $err = array("message" => "File extension is not allowed"); + event_callback(array("fail" => $err)); + exit(); + } + + if (!$url) { + $success = false; + } else if ($use_curl) { + @$fp = fopen($temp_file, "w"); + @$ch = curl_init($url); + curl_setopt($ch, CURLOPT_NOPROGRESS, false ); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + curl_setopt($ch, CURLOPT_FILE, $fp); + @$success = curl_exec($ch); + $curl_info = curl_getinfo($ch); + if (!$success) { + $err = array("message" => curl_error($ch)); + } + @curl_close($ch); + fclose($fp); + $fileinfo->size = $curl_info["size_download"]; + $fileinfo->type = $curl_info["content_type"]; + } else { + $ctx = stream_context_create(); + @$success = copy($url, $temp_file, $ctx); + if (!$success) { + $err = error_get_last(); + } + } + + if ($success) { + $success = rename($temp_file, strtok(get_file_path(), '?')); + } + + if ($success) { + event_callback(array("done" => $fileinfo)); + } else { + unlink($temp_file); + if (!$err) { + $err = array("message" => "Invalid url parameter"); + } + event_callback(array("fail" => $err)); + } + } + exit(); +} + +// Delete file / folder +if (isset($_GET['del'], $_POST['token']) && !FM_READONLY) { + $del = str_replace( '/', '', fm_clean_path( $_GET['del'] ) ); + if ($del != '' && $del != '..' && $del != '.' && verifyToken($_POST['token'])) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + $is_dir = is_dir($path . '/' . $del); + if (fm_rdelete($path . '/' . $del)) { + $msg = $is_dir ? lng('Folder').' %s '.lng('Deleted') : lng('File').' %s '.lng('Deleted'); + fm_set_msg(sprintf($msg, fm_enc($del))); + } else { + $msg = $is_dir ? lng('Folder').' %s '.lng('not deleted') : lng('File').' %s '.lng('not deleted'); + fm_set_msg(sprintf($msg, fm_enc($del)), 'error'); + } + } else { + fm_set_msg(lng('Invalid file or folder name'), 'error'); + } + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +// Create a new file/folder +if (isset($_POST['newfilename'], $_POST['newfile'], $_POST['token']) && !FM_READONLY) { + $type = urldecode($_POST['newfile']); + $new = str_replace( '/', '', fm_clean_path( strip_tags( $_POST['newfilename'] ) ) ); + if (fm_isvalid_filename($new) && $new != '' && $new != '..' && $new != '.' && verifyToken($_POST['token'])) { + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + if ($type == "file") { + if (!file_exists($path . '/' . $new)) { + if(fm_is_valid_ext($new)) { + @fopen($path . '/' . $new, 'w') or die('Cannot open file: ' . $new); + fm_set_msg(sprintf(lng('File').' %s '.lng('Created'), fm_enc($new))); + } else { + fm_set_msg(lng('File extension is not allowed'), 'error'); + } + } else { + fm_set_msg(sprintf(lng('File').' %s '.lng('already exists'), fm_enc($new)), 'alert'); + } + } else { + if (fm_mkdir($path . '/' . $new, false) === true) { + fm_set_msg(sprintf(lng('Folder').' %s '.lng('Created'), $new)); + } elseif (fm_mkdir($path . '/' . $new, false) === $path . '/' . $new) { + fm_set_msg(sprintf(lng('Folder').' %s '.lng('already exists'), fm_enc($new)), 'alert'); + } else { + fm_set_msg(sprintf(lng('Folder').' %s '.lng('not created'), fm_enc($new)), 'error'); + } + } + } else { + fm_set_msg(lng('Invalid characters in file or folder name'), 'error'); + } + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +// Copy folder / file +if (isset($_GET['copy'], $_GET['finish']) && !FM_READONLY) { + // from + $copy = urldecode($_GET['copy']); + $copy = fm_clean_path($copy); + // empty path + if ($copy == '') { + fm_set_msg(lng('Source path not defined'), 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + } + // abs path from + $from = FM_ROOT_PATH . '/' . $copy; + // abs path to + $dest = FM_ROOT_PATH; + if (FM_PATH != '') { + $dest .= '/' . FM_PATH; + } + $dest .= '/' . basename($from); + // move? + $move = isset($_GET['move']); + $move = fm_clean_path(urldecode($move)); + // copy/move/duplicate + if ($from != $dest) { + $msg_from = trim(FM_PATH . '/' . basename($from), '/'); + if ($move) { // Move and to != from so just perform move + $rename = fm_rename($from, $dest); + if ($rename) { + fm_set_msg(sprintf(lng('Moved from').' %s '.lng('to').' %s', fm_enc($copy), fm_enc($msg_from))); + } elseif ($rename === null) { + fm_set_msg(lng('File or folder with this path already exists'), 'alert'); + } else { + fm_set_msg(sprintf(lng('Error while moving from').' %s '.lng('to').' %s', fm_enc($copy), fm_enc($msg_from)), 'error'); + } + } else { // Not move and to != from so copy with original name + if (fm_rcopy($from, $dest)) { + fm_set_msg(sprintf(lng('Copied from').' %s '.lng('to').' %s', fm_enc($copy), fm_enc($msg_from))); + } else { + fm_set_msg(sprintf(lng('Error while copying from').' %s '.lng('to').' %s', fm_enc($copy), fm_enc($msg_from)), 'error'); + } + } + } else { + if (!$move){ //Not move and to = from so duplicate + $msg_from = trim(FM_PATH . '/' . basename($from), '/'); + $fn_parts = pathinfo($from); + $extension_suffix = ''; + if(!is_dir($from)){ + $extension_suffix = '.'.$fn_parts['extension']; + } + //Create new name for duplicate + $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-'.date('YmdHis').$extension_suffix; + $loop_count = 0; + $max_loop = 1000; + // Check if a file with the duplicate name already exists, if so, make new name (edge case...) + while(file_exists($fn_duplicate) & $loop_count < $max_loop){ + $fn_parts = pathinfo($fn_duplicate); + $fn_duplicate = $fn_parts['dirname'].'/'.$fn_parts['filename'].'-copy'.$extension_suffix; + $loop_count++; + } + if (fm_rcopy($from, $fn_duplicate, False)) { + fm_set_msg(sprintf('Copied from %s to %s', fm_enc($copy), fm_enc($fn_duplicate))); + } else { + fm_set_msg(sprintf('Error while copying from %s to %s', fm_enc($copy), fm_enc($fn_duplicate)), 'error'); + } + } + else{ + fm_set_msg(lng('Paths must be not equal'), 'alert'); + } + } + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +// Mass copy files/ folders +if (isset($_POST['file'], $_POST['copy_to'], $_POST['finish'], $_POST['token']) && !FM_READONLY) { + + if(!verifyToken($_POST['token'])) { + fm_set_msg(lng('Invalid Token.'), 'error'); + } + + // from + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // to + $copy_to_path = FM_ROOT_PATH; + $copy_to = fm_clean_path($_POST['copy_to']); + if ($copy_to != '') { + $copy_to_path .= '/' . $copy_to; + } + if ($path == $copy_to_path) { + fm_set_msg(lng('Paths must be not equal'), 'alert'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + } + if (!is_dir($copy_to_path)) { + if (!fm_mkdir($copy_to_path, true)) { + fm_set_msg('Unable to create destination folder', 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + } + } + // move? + $move = isset($_POST['move']); + // copy/move + $errors = 0; + $files = $_POST['file']; + if (is_array($files) && count($files)) { + foreach ($files as $f) { + if ($f != '') { + $f = fm_clean_path($f); + // abs path from + $from = $path . '/' . $f; + // abs path to + $dest = $copy_to_path . '/' . $f; + // do + if ($move) { + $rename = fm_rename($from, $dest); + if ($rename === false) { + $errors++; + } + } else { + if (!fm_rcopy($from, $dest)) { + $errors++; + } + } + } + } + if ($errors == 0) { + $msg = $move ? 'Selected files and folders moved' : 'Selected files and folders copied'; + fm_set_msg($msg); + } else { + $msg = $move ? 'Error while moving items' : 'Error while copying items'; + fm_set_msg($msg, 'error'); + } + } else { + fm_set_msg(lng('Nothing selected'), 'alert'); + } + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +// Rename +if (isset($_POST['rename_from'], $_POST['rename_to'], $_POST['token']) && !FM_READONLY) { + if(!verifyToken($_POST['token'])) { + fm_set_msg("Invalid Token.", 'error'); + } + // old name + $old = urldecode($_POST['rename_from']); + $old = fm_clean_path($old); + $old = str_replace('/', '', $old); + // new name + $new = urldecode($_POST['rename_to']); + $new = fm_clean_path(strip_tags($new)); + $new = str_replace('/', '', $new); + // path + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + // rename + if (fm_isvalid_filename($new) && $old != '' && $new != '') { + if (fm_rename($path . '/' . $old, $path . '/' . $new)) { + fm_set_msg(sprintf(lng('Renamed from').' %s '. lng('to').' %s', fm_enc($old), fm_enc($new))); + } else { + fm_set_msg(sprintf(lng('Error while renaming from').' %s '. lng('to').' %s', fm_enc($old), fm_enc($new)), 'error'); + } + } else { + fm_set_msg(lng('Invalid characters in file name'), 'error'); + } + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +// Download +if (isset($_GET['dl'], $_POST['token'])) { + if(!verifyToken($_POST['token'])) { + fm_set_msg("Invalid Token.", 'error'); + } + + $dl = urldecode($_GET['dl']); + $dl = fm_clean_path($dl); + $dl = str_replace('/', '', $dl); + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + if ($dl != '' && is_file($path . '/' . $dl)) { + fm_download_file($path . '/' . $dl, $dl, 1024); + exit; + } else { + fm_set_msg(lng('File not found'), 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + } +} + +// Upload +if (!empty($_FILES) && !FM_READONLY) { + if(isset($_POST['token'])) { + if(!verifyToken($_POST['token'])) { + $response = array ('status' => 'error','info' => "Invalid Token."); + echo json_encode($response); exit(); + } + } else { + $response = array ('status' => 'error','info' => "Token Missing."); + echo json_encode($response); exit(); + } + + $chunkIndex = $_POST['dzchunkindex']; + $chunkTotal = $_POST['dztotalchunkcount']; + $fullPathInput = fm_clean_path($_REQUEST['fullpath']); + + $f = $_FILES; + $path = FM_ROOT_PATH; + $ds = DIRECTORY_SEPARATOR; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $errors = 0; + $uploads = 0; + $allowed = (FM_UPLOAD_EXTENSION) ? explode(',', FM_UPLOAD_EXTENSION) : false; + $response = array ( + 'status' => 'error', + 'info' => 'Oops! Try again' + ); + + $filename = $f['file']['name']; + $tmp_name = $f['file']['tmp_name']; + $ext = pathinfo($filename, PATHINFO_FILENAME) != '' ? strtolower(pathinfo($filename, PATHINFO_EXTENSION)) : ''; + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + if(!fm_isvalid_filename($filename) && !fm_isvalid_filename($fullPathInput)) { + $response = array ( + 'status' => 'error', + 'info' => "Invalid File name!", + ); + echo json_encode($response); exit(); + } + + $targetPath = $path . $ds; + if ( is_writable($targetPath) ) { + $fullPath = $path . '/' . basename($fullPathInput); + $folder = substr($fullPath, 0, strrpos($fullPath, "/")); + + if (!is_dir($folder)) { + $old = umask(0); + mkdir($folder, 0777, true); + umask($old); + } + + if (empty($f['file']['error']) && !empty($tmp_name) && $tmp_name != 'none' && $isFileAllowed) { + if ($chunkTotal){ + $out = @fopen("{$fullPath}.part", $chunkIndex == 0 ? "wb" : "ab"); + if ($out) { + $in = @fopen($tmp_name, "rb"); + if ($in) { + if (PHP_VERSION_ID < 80009) { + // workaround https://bugs.php.net/bug.php?id=81145 + do { + for (;;) { + $buff = fread($in, 4096); + if ($buff === false || $buff === '') { + break; + } + fwrite($out, $buff); + } + } while (!feof($in)); + } else { + stream_copy_to_stream($in, $out); + } + $response = array ( + 'status' => 'success', + 'info' => "file upload successful" + ); + } else { + $response = array ( + 'status' => 'error', + 'info' => "failed to open output stream", + 'errorDetails' => error_get_last() + ); + } + @fclose($in); + @fclose($out); + @unlink($tmp_name); + + $response = array ( + 'status' => 'success', + 'info' => "file upload successful" + ); + } else { + $response = array ( + 'status' => 'error', + 'info' => "failed to open output stream" + ); + } + + if ($chunkIndex == $chunkTotal - 1) { + if (file_exists ($fullPath)) { + $ext_1 = $ext ? '.'.$ext : ''; + $fullPathTarget = $path . '/' . basename($fullPathInput, $ext_1) .'_'. date('ymdHis'). $ext_1; + } else { + $fullPathTarget = $fullPath; + } + rename("{$fullPath}.part", $fullPathTarget); + } + + } else if (move_uploaded_file($tmp_name, $fullPath)) { + // Be sure that the file has been uploaded + if ( file_exists($fullPath) ) { + $response = array ( + 'status' => 'success', + 'info' => "file upload successful" + ); + } else { + $response = array ( + 'status' => 'error', + 'info' => 'Couldn\'t upload the requested file.' + ); + } + } else { + $response = array ( + 'status' => 'error', + 'info' => "Error while uploading files. Uploaded files $uploads", + ); + } + } + } else { + $response = array ( + 'status' => 'error', + 'info' => 'The specified folder for upload isn\'t writeable.' + ); + } + // Return the response + echo json_encode($response); + exit(); +} + +// Mass deleting +if (isset($_POST['group'], $_POST['delete'], $_POST['token']) && !FM_READONLY) { + + if(!verifyToken($_POST['token'])) { + fm_set_msg(lng("Invalid Token."), 'error'); + } + + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $errors = 0; + $files = $_POST['file']; + if (is_array($files) && count($files)) { + foreach ($files as $f) { + if ($f != '') { + $new_path = $path . '/' . $f; + if (!fm_rdelete($new_path)) { + $errors++; + } + } + } + if ($errors == 0) { + fm_set_msg(lng('Selected files and folder deleted')); + } else { + fm_set_msg(lng('Error while deleting items'), 'error'); + } + } else { + fm_set_msg(lng('Nothing selected'), 'alert'); + } + + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +// Pack files zip, tar +if (isset($_POST['group'], $_POST['token']) && (isset($_POST['zip']) || isset($_POST['tar'])) && !FM_READONLY) { + + if(!verifyToken($_POST['token'])) { + fm_set_msg(lng("Invalid Token."), 'error'); + } + + $path = FM_ROOT_PATH; + $ext = 'zip'; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + //set pack type + $ext = isset($_POST['tar']) ? 'tar' : 'zip'; + + if (($ext == "zip" && !class_exists('ZipArchive')) || ($ext == "tar" && !class_exists('PharData'))) { + fm_set_msg(lng('Operations with archives are not available'), 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + } + + $files = $_POST['file']; + $sanitized_files = array(); + + // clean path + foreach($files as $file){ + array_push($sanitized_files, fm_clean_path($file)); + } + + $files = $sanitized_files; + + if (!empty($files)) { + chdir($path); + + if (count($files) == 1) { + $one_file = reset($files); + $one_file = basename($one_file); + $zipname = $one_file . '_' . date('ymd_His') . '.'.$ext; + } else { + $zipname = 'archive_' . date('ymd_His') . '.'.$ext; + } + + if($ext == 'zip') { + $zipper = new FM_Zipper(); + $res = $zipper->create($zipname, $files); + } elseif ($ext == 'tar') { + $tar = new FM_Zipper_Tar(); + $res = $tar->create($zipname, $files); + } + + if ($res) { + fm_set_msg(sprintf(lng('Archive').' %s '.lng('Created'), fm_enc($zipname))); + } else { + fm_set_msg(lng('Archive not created'), 'error'); + } + } else { + fm_set_msg(lng('Nothing selected'), 'alert'); + } + + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +// Unpack zip, tar +if (isset($_POST['unzip'], $_POST['token']) && !FM_READONLY) { + + if(!verifyToken($_POST['token'])) { + fm_set_msg(lng("Invalid Token."), 'error'); + } + + $unzip = urldecode($_POST['unzip']); + $unzip = fm_clean_path($unzip); + $unzip = str_replace('/', '', $unzip); + $isValid = false; + + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + if ($unzip != '' && is_file($path . '/' . $unzip)) { + $zip_path = $path . '/' . $unzip; + $ext = pathinfo($zip_path, PATHINFO_EXTENSION); + $isValid = true; + } else { + fm_set_msg(lng('File not found'), 'error'); + } + + if (($ext == "zip" && !class_exists('ZipArchive')) || ($ext == "tar" && !class_exists('PharData'))) { + fm_set_msg(lng('Operations with archives are not available'), 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + } + + if ($isValid) { + //to folder + $tofolder = ''; + if (isset($_POST['tofolder'])) { + $tofolder = pathinfo($zip_path, PATHINFO_FILENAME); + if (fm_mkdir($path . '/' . $tofolder, true)) { + $path .= '/' . $tofolder; + } + } + + if($ext == "zip") { + $zipper = new FM_Zipper(); + $res = $zipper->unzip($zip_path, $path); + } elseif ($ext == "tar") { + try { + $gzipper = new PharData($zip_path); + if (@$gzipper->extractTo($path,null, true)) { + $res = true; + } else { + $res = false; + } + } catch (Exception $e) { + //TODO:: need to handle the error + $res = true; + } + } + + if ($res) { + fm_set_msg(lng('Archive unpacked')); + } else { + fm_set_msg(lng('Archive not unpacked'), 'error'); + } + } else { + fm_set_msg(lng('File not found'), 'error'); + } + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +// Change Perms (not for Windows) +if (isset($_POST['chmod'], $_POST['token']) && !FM_READONLY && !FM_IS_WIN) { + + if(!verifyToken($_POST['token'])) { + fm_set_msg(lng("Invalid Token."), 'error'); + } + + $path = FM_ROOT_PATH; + if (FM_PATH != '') { + $path .= '/' . FM_PATH; + } + + $file = $_POST['chmod']; + $file = fm_clean_path($file); + $file = str_replace('/', '', $file); + if ($file == '' || (!is_file($path . '/' . $file) && !is_dir($path . '/' . $file))) { + fm_set_msg(lng('File not found'), 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + } + + $mode = 0; + if (!empty($_POST['ur'])) { + $mode |= 0400; + } + if (!empty($_POST['uw'])) { + $mode |= 0200; + } + if (!empty($_POST['ux'])) { + $mode |= 0100; + } + if (!empty($_POST['gr'])) { + $mode |= 0040; + } + if (!empty($_POST['gw'])) { + $mode |= 0020; + } + if (!empty($_POST['gx'])) { + $mode |= 0010; + } + if (!empty($_POST['or'])) { + $mode |= 0004; + } + if (!empty($_POST['ow'])) { + $mode |= 0002; + } + if (!empty($_POST['ox'])) { + $mode |= 0001; + } + + if (@chmod($path . '/' . $file, $mode)) { + fm_set_msg(lng('Permissions changed')); + } else { + fm_set_msg(lng('Permissions not changed'), 'error'); + } + + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); +} + +/*************************** ACTIONS ***************************/ + +// get current path +$path = FM_ROOT_PATH; +if (FM_PATH != '') { + $path .= '/' . FM_PATH; +} + +// check path +if (!is_dir($path)) { + fm_redirect(FM_SELF_URL . '?p='); +} + +// get parent folder +$parent = fm_get_parent_path(FM_PATH); + +$objects = is_readable($path) ? scandir($path) : array(); +$folders = array(); +$files = array(); +$current_path = array_slice(explode("/",$path), -1)[0]; +if (is_array($objects) && fm_is_exclude_items($current_path)) { + foreach ($objects as $file) { + if ($file == '.' || $file == '..') { + continue; + } + if (!FM_SHOW_HIDDEN && substr($file, 0, 1) === '.') { + continue; + } + $new_path = $path . '/' . $file; + if (@is_file($new_path) && fm_is_exclude_items($file)) { + $files[] = $file; + } elseif (@is_dir($new_path) && $file != '.' && $file != '..' && fm_is_exclude_items($file)) { + $folders[] = $file; + } + } +} + +if (!empty($files)) { + natcasesort($files); +} +if (!empty($folders)) { + natcasesort($folders); +} + +// upload form +if (isset($_GET['upload']) && !FM_READONLY) { + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + //get the allowed file extensions + function getUploadExt() { + $extArr = explode(',', FM_UPLOAD_EXTENSION); + if(FM_UPLOAD_EXTENSION && $extArr) { + array_walk($extArr, function(&$x) {$x = ".$x";}); + return implode(',', $extArr); + } + return ''; + } + ?> + +
      + +
      +
      + +
      +
      +

      + + : +

      + +
      + + + +
      + +
      +
      + + +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      +
      + + + ' . PHP_EOL; + } + ?> +

      : , ', $copy_files) ?>

      +

      :
      + + / +

      +

      +

      +   + + +

      + +
      +
      +
      + +
      +

      Copying

      +

      + Source path:
      + Destination folder: +

      +

      + Copy   + Move   + Cancel +

      +

      + +
      + + +
      +
      +
      + + +
      +
      +
      + +
      + +
      + +
      +
      +
      + +
      +
      + /> +
      +
      +
      + +
      + +
      +
      + /> +
      +
      +
      + +
      + +
      +
      + /> +
      +
      +
      + +
      + +
      + +
      +
      + +
      +
      + +
      +
      + +
      +
      +
      +
      + + +
      +
      +
      + + +
      +
      +
      +
      +

      Tiny File Manager

      +

      Author: Prasath Mani

      +

      Mail Us: ccpprogrammers[at]gmail.com

      +
      +
      +
      + +
      +
      +
      + +
      +
      +
      + +
      +
      +

      ""

      +

      + + :
      + File size:
      + MIME-type:
      + + :
      + :
      + :
      + : %
      + '.lng('Image size').': ' . (isset($image_size[0]) ? $image_size[0] : '0') . ' x ' . (isset($image_size[1]) ? $image_size[1] : '0') . '
      '; + } + // Text info + if ($is_text) { + $is_utf8 = fm_is_utf8($content); + if (function_exists('iconv')) { + if (!$is_utf8) { + $content = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $content); + } + } + echo ''.lng('Charset').': ' . ($is_utf8 ? 'utf-8' : '8 bit') . '
      '; + } + ?> +

      +
      +
      + +   +
      + + +
      + + + +
        +
      + + + + +
        + + +   + +   + + +
      + '; + } else if($online_viewer == 'microsoft') { + echo ''; + } + } elseif ($is_zip) { + // ZIP content + if ($filenames !== false) { + echo ''; + foreach ($filenames as $fn) { + if ($fn['folder']) { + echo '' . fm_enc($fn['name']) . '
      '; + } else { + echo $fn['name'] . ' (' . fm_get_filesize($fn['filesize']) . ')
      '; + } + } + echo '
      '; + } else { + echo '

      '.lng('Error while fetching archive info').'

      '; + } + } elseif ($is_image) { + // Image content + if (in_array($ext, array('gif', 'jpg', 'jpeg', 'png', 'bmp', 'ico', 'svg', 'webp', 'avif'))) { + echo '

      '; + } + } elseif ($is_audio) { + // Audio content + echo '

      '; + } elseif ($is_video) { + // Video content + echo '
      '; + } elseif ($is_text) { + if (FM_USE_HIGHLIGHTJS) { + // highlight + $hljs_classes = array( + 'shtml' => 'xml', + 'htaccess' => 'apache', + 'phtml' => 'php', + 'lock' => 'json', + 'svg' => 'xml', + ); + $hljs_class = isset($hljs_classes[$ext]) ? 'lang-' . $hljs_classes[$ext] : 'lang-' . $ext; + if (empty($ext) || in_array(strtolower($file), fm_get_text_names()) || preg_match('#\.min\.(css|js)$#i', $file)) { + $hljs_class = 'nohighlight'; + } + $content = '
      ' . fm_enc($content) . '
      '; + } elseif (in_array($ext, array('php', 'php4', 'php5', 'phtml', 'phps'))) { + // php highlight + $content = highlight_string($content, true); + } else { + $content = '
      ' . fm_enc($content) . '
      '; + } + echo $content; + } + ?> +
      +
      + '. $file. ''; + header('X-XSS-Protection:0'); + fm_show_header(); // HEADER + fm_show_nav_path(FM_PATH); // current path + + $file_url = FM_ROOT_URL . fm_convert_win((FM_PATH != '' ? '/' . FM_PATH : '') . '/' . $file); + $file_path = $path . '/' . $file; + + // normal editer + $isNormalEditor = true; + if (isset($_GET['env'])) { + if ($_GET['env'] == "ace") { + $isNormalEditor = false; + } + } + + // Save File + if (isset($_POST['savedata'])) { + $writedata = $_POST['savedata']; + $fd = fopen($file_path, "w"); + @fwrite($fd, $writedata); + fclose($fd); + fm_set_msg(lng('File Saved Successfully')); + } + + $ext = strtolower(pathinfo($file_path, PATHINFO_EXTENSION)); + $mime_type = fm_get_mime_type($file_path); + $filesize = filesize($file_path); + $is_text = false; + $content = ''; // for text + + if (in_array($ext, fm_get_text_exts()) || substr($mime_type, 0, 4) == 'text' || in_array($mime_type, fm_get_text_mimes())) { + $is_text = true; + $content = file_get_contents($file_path); + } + + ?> +
      +
      +
      + +
      +
      + + + + + + + + + + + +
      +
      + ' . htmlspecialchars($content) . ''; + echo ''; + } elseif ($is_text) { + echo '
      ' . htmlspecialchars($content) . '
      '; + } else { + fm_set_msg(lng('FILE EXTENSION HAS NOT SUPPORTED'), 'error'); + } + ?> +
      + +
      +
      +
      + +
      +
      +

      + + :
      +

      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +

      + +   + +

      +
      +
      +
      +
      + +
      + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + '?'); + } + if ($group === false) { + $group = array('name' => '?'); + } + } else { + $owner = array('name' => '?'); + $group = array('name' => '?'); + } + ?> + + + + + + + + + + + + + '?'); + } + if ($group === false) { + $group = array('name' => '?'); + } + } else { + $owner = array('name' => '?'); + $group = array('name' => '?'); + } + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + +
      +
      ..
      +
      + + +
      +
      > +
      + ' . readlink($path . '/' . $f) . '' : '') ?>
      +
      "> + + + + + + + + +
      +
      + + +
      +
      > +
      + + + + + + + + + ' . readlink($path . '/' . $f) . '' : '') ?> +
      +
      "> + + + + + + + + + + +
      + '.fm_get_filesize($all_files_size).'' ?> + '.$num_files.'' ?> + '.$num_folders.'' ?> +
      +
      + +
      + +
      + +
      + + + + +
      +
      + +"; + return; + } + + echo "$external[$key]"; +} + +/** + * Verify CSRF TOKEN and remove after cerify + * @param string $token + * @return bool + */ +function verifyToken($token) +{ + if (hash_equals($_SESSION['token'], $token)) { + return true; + } + return false; +} + +/** + * Delete file or folder (recursively) + * @param string $path + * @return bool + */ +function fm_rdelete($path) +{ + if (is_link($path)) { + return unlink($path); + } elseif (is_dir($path)) { + $objects = scandir($path); + $ok = true; + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (!fm_rdelete($path . '/' . $file)) { + $ok = false; + } + } + } + } + return ($ok) ? rmdir($path) : false; + } elseif (is_file($path)) { + return unlink($path); + } + return false; +} + +/** + * Recursive chmod + * @param string $path + * @param int $filemode + * @param int $dirmode + * @return bool + * @todo Will use in mass chmod + */ +function fm_rchmod($path, $filemode, $dirmode) +{ + if (is_dir($path)) { + if (!chmod($path, $dirmode)) { + return false; + } + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (!fm_rchmod($path . '/' . $file, $filemode, $dirmode)) { + return false; + } + } + } + } + return true; + } elseif (is_link($path)) { + return true; + } elseif (is_file($path)) { + return chmod($path, $filemode); + } + return false; +} + +/** + * Check the file extension which is allowed or not + * @param string $filename + * @return bool + */ +function fm_is_valid_ext($filename) +{ + $allowed = (FM_FILE_EXTENSION) ? explode(',', FM_FILE_EXTENSION) : false; + + $ext = pathinfo($filename, PATHINFO_EXTENSION); + $isFileAllowed = ($allowed) ? in_array($ext, $allowed) : true; + + return ($isFileAllowed) ? true : false; +} + +/** + * Safely rename + * @param string $old + * @param string $new + * @return bool|null + */ +function fm_rename($old, $new) +{ + $isFileAllowed = fm_is_valid_ext($new); + + if(!is_dir($old)) { + if (!$isFileAllowed) return false; + } + + return (!file_exists($new) && file_exists($old)) ? rename($old, $new) : null; +} + +/** + * Copy file or folder (recursively). + * @param string $path + * @param string $dest + * @param bool $upd Update files + * @param bool $force Create folder with same names instead file + * @return bool + */ +function fm_rcopy($path, $dest, $upd = true, $force = true) +{ + if (is_dir($path)) { + if (!fm_mkdir($dest, $force)) { + return false; + } + $objects = scandir($path); + $ok = true; + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (!fm_rcopy($path . '/' . $file, $dest . '/' . $file)) { + $ok = false; + } + } + } + } + return $ok; + } elseif (is_file($path)) { + return fm_copy($path, $dest, $upd); + } + return false; +} + +/** + * Safely create folder + * @param string $dir + * @param bool $force + * @return bool + */ +function fm_mkdir($dir, $force) +{ + if (file_exists($dir)) { + if (is_dir($dir)) { + return $dir; + } elseif (!$force) { + return false; + } + unlink($dir); + } + return mkdir($dir, 0777, true); +} + +/** + * Safely copy file + * @param string $f1 + * @param string $f2 + * @param bool $upd Indicates if file should be updated with new content + * @return bool + */ +function fm_copy($f1, $f2, $upd) +{ + $time1 = filemtime($f1); + if (file_exists($f2)) { + $time2 = filemtime($f2); + if ($time2 >= $time1 && $upd) { + return false; + } + } + $ok = copy($f1, $f2); + if ($ok) { + touch($f2, $time1); + } + return $ok; +} + +/** + * Get mime type + * @param string $file_path + * @return mixed|string + */ +function fm_get_mime_type($file_path) +{ + if (function_exists('finfo_open')) { + $finfo = finfo_open(FILEINFO_MIME_TYPE); + $mime = finfo_file($finfo, $file_path); + finfo_close($finfo); + return $mime; + } elseif (function_exists('mime_content_type')) { + return mime_content_type($file_path); + } elseif (!stristr(ini_get('disable_functions'), 'shell_exec')) { + $file = escapeshellarg($file_path); + $mime = shell_exec('file -bi ' . $file); + return $mime; + } else { + return '--'; + } +} + +/** + * HTTP Redirect + * @param string $url + * @param int $code + */ +function fm_redirect($url, $code = 302) +{ + header('Location: ' . $url, true, $code); + exit; +} + +/** + * Path traversal prevention and clean the url + * It replaces (consecutive) occurrences of / and \\ with whatever is in DIRECTORY_SEPARATOR, and processes /. and /.. fine. + * @param $path + * @return string + */ +function get_absolute_path($path) { + $path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path); + $parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen'); + $absolutes = array(); + foreach ($parts as $part) { + if ('.' == $part) continue; + if ('..' == $part) { + array_pop($absolutes); + } else { + $absolutes[] = $part; + } + } + return implode(DIRECTORY_SEPARATOR, $absolutes); +} + +/** + * Clean path + * @param string $path + * @return string + */ +function fm_clean_path($path, $trim = true) +{ + $path = $trim ? trim($path) : $path; + $path = trim($path, '\\/'); + $path = str_replace(array('../', '..\\'), '', $path); + $path = get_absolute_path($path); + if ($path == '..') { + $path = ''; + } + return str_replace('\\', '/', $path); +} + +/** + * Get parent path + * @param string $path + * @return bool|string + */ +function fm_get_parent_path($path) +{ + $path = fm_clean_path($path); + if ($path != '') { + $array = explode('/', $path); + if (count($array) > 1) { + $array = array_slice($array, 0, -1); + return implode('/', $array); + } + return ''; + } + return false; +} + +function fm_get_display_path($file_path) +{ + global $path_display_mode, $root_path, $root_url; + switch ($path_display_mode) { + case 'relative': + return array( + 'label' => 'Path', + 'path' => fm_enc(fm_convert_win(str_replace($root_path, '', $file_path))) + ); + case 'host': + $relative_path = str_replace($root_path, '', $file_path); + return array( + 'label' => 'Host Path', + 'path' => fm_enc(fm_convert_win('/' . $root_url . '/' . ltrim(str_replace('\\', '/', $relative_path), '/'))) + ); + case 'full': + default: + return array( + 'label' => 'Full Path', + 'path' => fm_enc(fm_convert_win($file_path)) + ); + } +} + +/** + * Check file is in exclude list + * @param string $file + * @return bool + */ +function fm_is_exclude_items($file) { + $ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); + if (isset($exclude_items) and sizeof($exclude_items)) { + unset($exclude_items); + } + + $exclude_items = FM_EXCLUDE_ITEMS; + if (version_compare(PHP_VERSION, '7.0.0', '<')) { + $exclude_items = unserialize($exclude_items); + } + if (!in_array($file, $exclude_items) && !in_array("*.$ext", $exclude_items)) { + return true; + } + return false; +} + +/** + * get language translations from json file + * @param int $tr + * @return array + */ +function fm_get_translations($tr) { + try { + $content = @file_get_contents('translation.json'); + if($content !== FALSE) { + $lng = json_decode($content, TRUE); + global $lang_list; + foreach ($lng["language"] as $key => $value) + { + $code = $value["code"]; + $lang_list[$code] = $value["name"]; + if ($tr) + $tr[$code] = $value["translation"]; + } + return $tr; + } + + } + catch (Exception $e) { + echo $e; + } +} + +/** + * @param string $file + * Recover all file sizes larger than > 2GB. + * Works on php 32bits and 64bits and supports linux + * @return int|string + */ +function fm_get_size($file) +{ + static $iswin; + static $isdarwin; + if (!isset($iswin)) { + $iswin = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN'); + } + if (!isset($isdarwin)) { + $isdarwin = (strtoupper(substr(PHP_OS, 0)) == "DARWIN"); + } + + static $exec_works; + if (!isset($exec_works)) { + $exec_works = (function_exists('exec') && !ini_get('safe_mode') && @exec('echo EXEC') == 'EXEC'); + } + + // try a shell command + if ($exec_works) { + $arg = escapeshellarg($file); + $cmd = ($iswin) ? "for %F in (\"$file\") do @echo %~zF" : ($isdarwin ? "stat -f%z $arg" : "stat -c%s $arg"); + @exec($cmd, $output); + if (is_array($output) && ctype_digit($size = trim(implode("\n", $output)))) { + return $size; + } + } + + // try the Windows COM interface + if ($iswin && class_exists("COM")) { + try { + $fsobj = new COM('Scripting.FileSystemObject'); + $f = $fsobj->GetFile( realpath($file) ); + $size = $f->Size; + } catch (Exception $e) { + $size = null; + } + if (ctype_digit($size)) { + return $size; + } + } + + // if all else fails + return filesize($file); +} + +/** + * Get nice filesize + * @param int $size + * @return string + */ +function fm_get_filesize($size) +{ + $size = (float) $size; + $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); + $power = ($size > 0) ? floor(log($size, 1024)) : 0; + $power = ($power > (count($units) - 1)) ? (count($units) - 1) : $power; + return sprintf('%s %s', round($size / pow(1024, $power), 2), $units[$power]); +} + +/** + * Get total size of directory tree. + * + * @param string $directory Relative or absolute directory name. + * @return int Total number of bytes. + */ +function fm_get_directorysize($directory) { + $bytes = 0; + $directory = realpath($directory); + if ($directory !== false && $directory != '' && file_exists($directory)){ + foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory, FilesystemIterator::SKIP_DOTS)) as $file){ + $bytes += $file->getSize(); + } + } + return $bytes; +} + +/** + * Get info about zip archive + * @param string $path + * @return array|bool + */ +function fm_get_zif_info($path, $ext) { + if ($ext == 'zip' && function_exists('zip_open')) { + $arch = @zip_open($path); + if ($arch) { + $filenames = array(); + while ($zip_entry = @zip_read($arch)) { + $zip_name = @zip_entry_name($zip_entry); + $zip_folder = substr($zip_name, -1) == '/'; + $filenames[] = array( + 'name' => $zip_name, + 'filesize' => @zip_entry_filesize($zip_entry), + 'compressed_size' => @zip_entry_compressedsize($zip_entry), + 'folder' => $zip_folder + //'compression_method' => zip_entry_compressionmethod($zip_entry), + ); + } + @zip_close($arch); + return $filenames; + } + } elseif($ext == 'tar' && class_exists('PharData')) { + $archive = new PharData($path); + $filenames = array(); + foreach(new RecursiveIteratorIterator($archive) as $file) { + $parent_info = $file->getPathInfo(); + $zip_name = str_replace("phar://".$path, '', $file->getPathName()); + $zip_name = substr($zip_name, ($pos = strpos($zip_name, '/')) !== false ? $pos + 1 : 0); + $zip_folder = $parent_info->getFileName(); + $zip_info = new SplFileInfo($file); + $filenames[] = array( + 'name' => $zip_name, + 'filesize' => $zip_info->getSize(), + 'compressed_size' => $file->getCompressedSize(), + 'folder' => $zip_folder + ); + } + return $filenames; + } + return false; +} + +/** + * Encode html entities + * @param string $text + * @return string + */ +function fm_enc($text) +{ + return htmlspecialchars($text, ENT_QUOTES, 'UTF-8'); +} + +/** + * Prevent XSS attacks + * @param string $text + * @return string + */ +function fm_isvalid_filename($text) { + return (strpbrk($text, '/?%*:|"<>') === FALSE) ? true : false; +} + +/** + * Save message in session + * @param string $msg + * @param string $status + */ +function fm_set_msg($msg, $status = 'ok') +{ + $_SESSION[FM_SESSION_ID]['message'] = $msg; + $_SESSION[FM_SESSION_ID]['status'] = $status; +} + +/** + * Check if string is in UTF-8 + * @param string $string + * @return int + */ +function fm_is_utf8($string) +{ + return preg_match('//u', $string); +} + +/** + * Convert file name to UTF-8 in Windows + * @param string $filename + * @return string + */ +function fm_convert_win($filename) +{ + if (FM_IS_WIN && function_exists('iconv')) { + $filename = iconv(FM_ICONV_INPUT_ENC, 'UTF-8//IGNORE', $filename); + } + return $filename; +} + +/** + * @param $obj + * @return array + */ +function fm_object_to_array($obj) +{ + if (!is_object($obj) && !is_array($obj)) { + return $obj; + } + if (is_object($obj)) { + $obj = get_object_vars($obj); + } + return array_map('fm_object_to_array', $obj); +} + +/** + * Get CSS classname for file + * @param string $path + * @return string + */ +function fm_get_file_icon_class($path) +{ + // get extension + $ext = strtolower(pathinfo($path, PATHINFO_EXTENSION)); + + switch ($ext) { + case 'ico': + case 'gif': + case 'jpg': + case 'jpeg': + case 'jpc': + case 'jp2': + case 'jpx': + case 'xbm': + case 'wbmp': + case 'png': + case 'bmp': + case 'tif': + case 'tiff': + case 'webp': + case 'avif': + case 'svg': + $img = 'fa fa-picture-o'; + break; + case 'passwd': + case 'ftpquota': + case 'sql': + case 'js': + case 'ts': + case 'jsx': + case 'tsx': + case 'hbs': + case 'json': + case 'sh': + case 'config': + case 'twig': + case 'tpl': + case 'md': + case 'gitignore': + case 'c': + case 'cpp': + case 'cs': + case 'py': + case 'rs': + case 'map': + case 'lock': + case 'dtd': + $img = 'fa fa-file-code-o'; + break; + case 'txt': + case 'ini': + case 'conf': + case 'log': + case 'htaccess': + case 'yaml': + case 'yml': + case 'toml': + case 'tmp': + case 'top': + case 'bot': + case 'dat': + case 'bak': + case 'htpasswd': + case 'pl': + $img = 'fa fa-file-text-o'; + break; + case 'css': + case 'less': + case 'sass': + case 'scss': + $img = 'fa fa-css3'; + break; + case 'bz2': + case 'zip': + case 'rar': + case 'gz': + case 'tar': + case '7z': + case 'xz': + $img = 'fa fa-file-archive-o'; + break; + case 'php': + case 'php4': + case 'php5': + case 'phps': + case 'phtml': + $img = 'fa fa-code'; + break; + case 'htm': + case 'html': + case 'shtml': + case 'xhtml': + $img = 'fa fa-html5'; + break; + case 'xml': + case 'xsl': + $img = 'fa fa-file-excel-o'; + break; + case 'wav': + case 'mp3': + case 'mp2': + case 'm4a': + case 'aac': + case 'ogg': + case 'oga': + case 'wma': + case 'mka': + case 'flac': + case 'ac3': + case 'tds': + $img = 'fa fa-music'; + break; + case 'm3u': + case 'm3u8': + case 'pls': + case 'cue': + case 'xspf': + $img = 'fa fa-headphones'; + break; + case 'avi': + case 'mpg': + case 'mpeg': + case 'mp4': + case 'm4v': + case 'flv': + case 'f4v': + case 'ogm': + case 'ogv': + case 'mov': + case 'mkv': + case '3gp': + case 'asf': + case 'wmv': + case 'webm': + $img = 'fa fa-file-video-o'; + break; + case 'eml': + case 'msg': + $img = 'fa fa-envelope-o'; + break; + case 'xls': + case 'xlsx': + case 'ods': + $img = 'fa fa-file-excel-o'; + break; + case 'csv': + $img = 'fa fa-file-text-o'; + break; + case 'bak': + case 'swp': + $img = 'fa fa-clipboard'; + break; + case 'doc': + case 'docx': + case 'odt': + $img = 'fa fa-file-word-o'; + break; + case 'ppt': + case 'pptx': + $img = 'fa fa-file-powerpoint-o'; + break; + case 'ttf': + case 'ttc': + case 'otf': + case 'woff': + case 'woff2': + case 'eot': + case 'fon': + $img = 'fa fa-font'; + break; + case 'pdf': + $img = 'fa fa-file-pdf-o'; + break; + case 'psd': + case 'ai': + case 'eps': + case 'fla': + case 'swf': + $img = 'fa fa-file-image-o'; + break; + case 'exe': + case 'msi': + $img = 'fa fa-file-o'; + break; + case 'bat': + $img = 'fa fa-terminal'; + break; + default: + $img = 'fa fa-info-circle'; + } + + return $img; +} + +/** + * Get image files extensions + * @return array + */ +function fm_get_image_exts() +{ + return array('ico', 'gif', 'jpg', 'jpeg', 'jpc', 'jp2', 'jpx', 'xbm', 'wbmp', 'png', 'bmp', 'tif', 'tiff', 'psd', 'svg', 'webp', 'avif'); +} + +/** + * Get video files extensions + * @return array + */ +function fm_get_video_exts() +{ + return array('avi', 'webm', 'wmv', 'mp4', 'm4v', 'ogm', 'ogv', 'mov', 'mkv'); +} + +/** + * Get audio files extensions + * @return array + */ +function fm_get_audio_exts() +{ + return array('wav', 'mp3', 'ogg', 'm4a'); +} + +/** + * Get text file extensions + * @return array + */ +function fm_get_text_exts() +{ + return array( + 'txt', 'css', 'ini', 'conf', 'log', 'htaccess', 'passwd', 'ftpquota', 'sql', 'js', 'ts', 'jsx', 'tsx', 'mjs', 'json', 'sh', 'config', + 'php', 'php4', 'php5', 'phps', 'phtml', 'htm', 'html', 'shtml', 'xhtml', 'xml', 'xsl', 'm3u', 'm3u8', 'pls', 'cue', 'bash', 'vue', + 'eml', 'msg', 'csv', 'bat', 'twig', 'tpl', 'md', 'gitignore', 'less', 'sass', 'scss', 'c', 'cpp', 'cs', 'py', 'go', 'zsh', 'swift', + 'map', 'lock', 'dtd', 'svg', 'asp', 'aspx', 'asx', 'asmx', 'ashx', 'jsp', 'jspx', 'cgi', 'dockerfile', 'ruby', 'yml', 'yaml', 'toml', + 'vhost', 'scpt', 'applescript', 'csx', 'cshtml', 'c++', 'coffee', 'cfm', 'rb', 'graphql', 'mustache', 'jinja', 'http', 'handlebars', + 'java', 'es', 'es6', 'markdown', 'wiki', 'tmp', 'top', 'bot', 'dat', 'bak', 'htpasswd', 'pl' + ); +} + +/** + * Get mime types of text files + * @return array + */ +function fm_get_text_mimes() +{ + return array( + 'application/xml', + 'application/javascript', + 'application/x-javascript', + 'image/svg+xml', + 'message/rfc822', + 'application/json', + ); +} + +/** + * Get file names of text files w/o extensions + * @return array + */ +function fm_get_text_names() +{ + return array( + 'license', + 'readme', + 'authors', + 'contributors', + 'changelog', + ); +} + +/** + * Get online docs viewer supported files extensions + * @return array + */ +function fm_get_onlineViewer_exts() +{ + return array('doc', 'docx', 'xls', 'xlsx', 'pdf', 'ppt', 'pptx', 'ai', 'psd', 'dxf', 'xps', 'rar', 'odt', 'ods'); +} + +/** + * It returns the mime type of a file based on its extension. + * @param extension The file extension of the file you want to get the mime type for. + * @return string|string[] The mime type of the file. + */ +function fm_get_file_mimes($extension) +{ + $fileTypes['swf'] = 'application/x-shockwave-flash'; + $fileTypes['pdf'] = 'application/pdf'; + $fileTypes['exe'] = 'application/octet-stream'; + $fileTypes['zip'] = 'application/zip'; + $fileTypes['doc'] = 'application/msword'; + $fileTypes['xls'] = 'application/vnd.ms-excel'; + $fileTypes['ppt'] = 'application/vnd.ms-powerpoint'; + $fileTypes['gif'] = 'image/gif'; + $fileTypes['png'] = 'image/png'; + $fileTypes['jpeg'] = 'image/jpg'; + $fileTypes['jpg'] = 'image/jpg'; + $fileTypes['webp'] = 'image/webp'; + $fileTypes['avif'] = 'image/avif'; + $fileTypes['rar'] = 'application/rar'; + + $fileTypes['ra'] = 'audio/x-pn-realaudio'; + $fileTypes['ram'] = 'audio/x-pn-realaudio'; + $fileTypes['ogg'] = 'audio/x-pn-realaudio'; + + $fileTypes['wav'] = 'video/x-msvideo'; + $fileTypes['wmv'] = 'video/x-msvideo'; + $fileTypes['avi'] = 'video/x-msvideo'; + $fileTypes['asf'] = 'video/x-msvideo'; + $fileTypes['divx'] = 'video/x-msvideo'; + + $fileTypes['mp3'] = 'audio/mpeg'; + $fileTypes['mp4'] = 'audio/mpeg'; + $fileTypes['mpeg'] = 'video/mpeg'; + $fileTypes['mpg'] = 'video/mpeg'; + $fileTypes['mpe'] = 'video/mpeg'; + $fileTypes['mov'] = 'video/quicktime'; + $fileTypes['swf'] = 'video/quicktime'; + $fileTypes['3gp'] = 'video/quicktime'; + $fileTypes['m4a'] = 'video/quicktime'; + $fileTypes['aac'] = 'video/quicktime'; + $fileTypes['m3u'] = 'video/quicktime'; + + $fileTypes['php'] = ['application/x-php']; + $fileTypes['html'] = ['text/html']; + $fileTypes['txt'] = ['text/plain']; + //Unknown mime-types should be 'application/octet-stream' + if(empty($fileTypes[$extension])) { + $fileTypes[$extension] = ['application/octet-stream']; + } + return $fileTypes[$extension]; +} + +/** + * This function scans the files and folder recursively, and return matching files + * @param string $dir + * @param string $filter + * @return array|null + */ + function scan($dir = '', $filter = '') { + $path = FM_ROOT_PATH.'/'.$dir; + if($path) { + $ite = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)); + $rii = new RegexIterator($ite, "/(" . $filter . ")/i"); + + $files = array(); + foreach ($rii as $file) { + if (!$file->isDir()) { + $fileName = $file->getFilename(); + $location = str_replace(FM_ROOT_PATH, '', $file->getPath()); + $files[] = array( + "name" => $fileName, + "type" => "file", + "path" => $location, + ); + } + } + return $files; + } +} + +/** +* Parameters: downloadFile(File Location, File Name, +* max speed, is streaming +* If streaming - videos will show as videos, images as images +* instead of download prompt +* https://stackoverflow.com/a/13821992/1164642 +*/ +function fm_download_file($fileLocation, $fileName, $chunkSize = 1024) +{ + if (connection_status() != 0) + return (false); + $extension = pathinfo($fileName, PATHINFO_EXTENSION); + + $contentType = fm_get_file_mimes($extension); + + if(is_array($contentType)) { + $contentType = implode(' ', $contentType); + } + + $size = filesize($fileLocation); + + if ($size == 0) { + fm_set_msg(lng('Zero byte file! Aborting download'), 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + + return (false); + } + + @ini_set('magic_quotes_runtime', 0); + $fp = fopen("$fileLocation", "rb"); + + if ($fp === false) { + fm_set_msg(lng('Cannot open file! Aborting download'), 'error'); + $FM_PATH=FM_PATH; fm_redirect(FM_SELF_URL . '?p=' . urlencode($FM_PATH)); + return (false); + } + + // headers + header('Content-Description: File Transfer'); + header('Expires: 0'); + header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + header('Pragma: public'); + header("Content-Transfer-Encoding: binary"); + header("Content-Type: $contentType"); + + $contentDisposition = 'attachment'; + + if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) { + $fileName = preg_replace('/\./', '%2e', $fileName, substr_count($fileName, '.') - 1); + header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); + } else { + header("Content-Disposition: $contentDisposition;filename=\"$fileName\""); + } + + header("Accept-Ranges: bytes"); + $range = 0; + + if (isset($_SERVER['HTTP_RANGE'])) { + list($a, $range) = explode("=", $_SERVER['HTTP_RANGE']); + str_replace($range, "-", $range); + $size2 = $size - 1; + $new_length = $size - $range; + header("HTTP/1.1 206 Partial Content"); + header("Content-Length: $new_length"); + header("Content-Range: bytes $range$size2/$size"); + } else { + $size2 = $size - 1; + header("Content-Range: bytes 0-$size2/$size"); + header("Content-Length: " . $size); + } + $fileLocation = realpath($fileLocation); + while (ob_get_level()) ob_end_clean(); + readfile($fileLocation); + + fclose($fp); + + return ((connection_status() == 0) and !connection_aborted()); +} + +/** + * If the theme is dark, return the text-white and bg-dark classes. + * @return string the value of the variable. + */ +function fm_get_theme() { + $result = ''; + if(FM_THEME == "dark") { + $result = "text-white bg-dark"; + } + return $result; +} + +/** + * Class to work with zip files (using ZipArchive) + */ +class FM_Zipper +{ + private $zip; + + public function __construct() + { + $this->zip = new ZipArchive(); + } + + /** + * Create archive with name $filename and files $files (RELATIVE PATHS!) + * @param string $filename + * @param array|string $files + * @return bool + */ + public function create($filename, $files) + { + $res = $this->zip->open($filename, ZipArchive::CREATE); + if ($res !== true) { + return false; + } + if (is_array($files)) { + foreach ($files as $f) { + $f = fm_clean_path($f); + if (!$this->addFileOrDir($f)) { + $this->zip->close(); + return false; + } + } + $this->zip->close(); + return true; + } else { + if ($this->addFileOrDir($files)) { + $this->zip->close(); + return true; + } + return false; + } + } + + /** + * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) + * @param string $filename + * @param string $path + * @return bool + */ + public function unzip($filename, $path) + { + $res = $this->zip->open($filename); + if ($res !== true) { + return false; + } + if ($this->zip->extractTo($path)) { + $this->zip->close(); + return true; + } + return false; + } + + /** + * Add file/folder to archive + * @param string $filename + * @return bool + */ + private function addFileOrDir($filename) + { + if (is_file($filename)) { + return $this->zip->addFile($filename); + } elseif (is_dir($filename)) { + return $this->addDir($filename); + } + return false; + } + + /** + * Add folder recursively + * @param string $path + * @return bool + */ + private function addDir($path) + { + if (!$this->zip->addEmptyDir($path)) { + return false; + } + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (is_dir($path . '/' . $file)) { + if (!$this->addDir($path . '/' . $file)) { + return false; + } + } elseif (is_file($path . '/' . $file)) { + if (!$this->zip->addFile($path . '/' . $file)) { + return false; + } + } + } + } + return true; + } + return false; + } +} + +/** + * Class to work with Tar files (using PharData) + */ +class FM_Zipper_Tar +{ + private $tar; + + public function __construct() + { + $this->tar = null; + } + + /** + * Create archive with name $filename and files $files (RELATIVE PATHS!) + * @param string $filename + * @param array|string $files + * @return bool + */ + public function create($filename, $files) + { + $this->tar = new PharData($filename); + if (is_array($files)) { + foreach ($files as $f) { + $f = fm_clean_path($f); + if (!$this->addFileOrDir($f)) { + return false; + } + } + return true; + } else { + if ($this->addFileOrDir($files)) { + return true; + } + return false; + } + } + + /** + * Extract archive $filename to folder $path (RELATIVE OR ABSOLUTE PATHS) + * @param string $filename + * @param string $path + * @return bool + */ + public function unzip($filename, $path) + { + $res = $this->tar->open($filename); + if ($res !== true) { + return false; + } + if ($this->tar->extractTo($path)) { + return true; + } + return false; + } + + /** + * Add file/folder to archive + * @param string $filename + * @return bool + */ + private function addFileOrDir($filename) + { + if (is_file($filename)) { + try { + $this->tar->addFile($filename); + return true; + } catch (Exception $e) { + return false; + } + } elseif (is_dir($filename)) { + return $this->addDir($filename); + } + return false; + } + + /** + * Add folder recursively + * @param string $path + * @return bool + */ + private function addDir($path) + { + $objects = scandir($path); + if (is_array($objects)) { + foreach ($objects as $file) { + if ($file != '.' && $file != '..') { + if (is_dir($path . '/' . $file)) { + if (!$this->addDir($path . '/' . $file)) { + return false; + } + } elseif (is_file($path . '/' . $file)) { + try { + $this->tar->addFile($path . '/' . $file); + } catch (Exception $e) { + return false; + } + } + } + } + return true; + } + return false; + } +} + +/** + * Save Configuration + */ + class FM_Config +{ + var $data; + + function __construct() + { + global $root_path, $root_url, $CONFIG; + $fm_url = $root_url.$_SERVER["PHP_SELF"]; + $this->data = array( + 'lang' => 'en', + 'error_reporting' => true, + 'show_hidden' => true + ); + $data = false; + if (strlen($CONFIG)) { + $data = fm_object_to_array(json_decode($CONFIG)); + } else { + $msg = 'Tiny File Manager
      Error: Cannot load configuration'; + if (substr($fm_url, -1) == '/') { + $fm_url = rtrim($fm_url, '/'); + $msg .= '
      '; + $msg .= '
      Seems like you have a trailing slash on the URL.'; + $msg .= '
      Try this link: ' . $fm_url . ''; + } + die($msg); + } + if (is_array($data) && count($data)) $this->data = $data; + else $this->save(); + } + + function save() + { + $fm_file = __FILE__; + $var_name = '$CONFIG'; + $var_value = var_export(json_encode($this->data), true); + $config_string = " + + ' . $_SESSION[FM_SESSION_ID]['message'] . '

      '; + unset($_SESSION[FM_SESSION_ID]['message']); + unset($_SESSION[FM_SESSION_ID]['status']); + } +} + +/** + * Show page header in Login Form + */ +function fm_show_header_login() +{ +$sprites_ver = '20160315'; +header("Content-Type: text/html; charset=utf-8"); +header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); +header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); +header("Pragma: no-cache"); + +global $lang, $root_url, $favicon_path; +?> + + + + + + + + + + '; } ?> + <?php echo fm_enc(APP_TITLE) ?> + + + + +"> +
      + + +
      + + + + + + + + + + + + + + + '; } ?> + <?php echo fm_enc(APP_TITLE) ?> + + + + + + + + + + + + + + "> +
      + + + + + + + + + + + + + +
      + + + + + + + + + + + + +
      + + + diff --git a/codes/agent/game-docker/api/document/data/document.js b/codes/agent/game-docker/api/document/data/document.js new file mode 100644 index 0000000..a25c76c --- /dev/null +++ b/codes/agent/game-docker/api/document/data/document.js @@ -0,0 +1,7 @@ +$axure.loadDocument( +(function() { + var _ = function() { var r={},a=arguments; for(var i=0; i' + key + '
      ' + value + '
    '); + } + } if(message == 'setGlobalVar') { + //$('#variablesContainer').html(""); + //for (var variable in $axure.globalVariableProvider.getDefinedVariables) { + // $('#variablesContainer').append("
    " + variable + "
    "); + // $('#variablesContainer').append("
    " + $axure.globalVariableProvider.getVariableValue(variable) + "
    "); + //} + } else if(message == 'axEvent') { + var addToStack = "
    "; + addToStack += "
    " + new Date().toLocaleTimeString() + "
    "; + addToStack += "
    " + data.label + " (" + data.type + ")
    "; + addToStack += "
    " + data.event.description + "
    "; + currentStack.push(addToStack); + } else if (message == 'axEventComplete') { + currentStack[currentStack.length - 1] += "
    "; + finishedStack.push(currentStack.pop()); + if(currentStack.length == 0) { + $('#traceClearLinkContainer').show(); + $('#traceEmptyState').hide(); + + $('.lastAxEvent').removeClass('lastAxEvent'); + for(var i = finishedStack.length - 1; i >= 0; i--) { + if($('#traceDiv').children().length > 99) $('#traceDiv').children().last().remove(); + $('#traceDiv').prepend(finishedStack[i]); + if(i == finishedStack.length - 1) $('#traceDiv').children().first().addClass('lastAxEvent'); + } + finishedStack = []; + } + } else if (message == 'axCase') { + currentStack[currentStack.length - 1] += "
    " + data.description + "
    "; + } else if (message == 'axAction') { + currentStack[currentStack.length - 1] += "
    " + data.description + "
    "; + } + }); + + // bind to the page load + $axure.page.bind('load.debug', function () { + + $axure.messageCenter.postMessage('getGlobalVariables', ''); + + return false; + }); + + function clearvars_click(event) { + $axure.messageCenter.postMessage('resetGlobalVariables', ''); + } + + function cleartrace_click(event) { + $('#traceDiv').html(''); + $('#traceClearLinkContainer').hide(); + $('#traceEmptyState').show(); + } + }); + + function updateContainerHeight() { + $('#debugScrollContainer').height($('#debugHost').height() - $('#debugHeader').outerHeight()); + } + + function generateDebug() { + var pageNotesUi = "
    "; + + pageNotesUi += "
    "; + pageNotesUi += "
    CONSOLE
    "; + pageNotesUi += "
    "; + + //pageNotesUi += "
    "; + + //pageNotesUi += ""; + //pageNotesUi += ""; + //pageNotesUi += ""; + + //pageNotesUi += "
    "; + pageNotesUi += "
    "; + pageNotesUi += "
    "; + + //var pageNotesUi = ""; + pageNotesUi += "
    "; + pageNotesUi += "
    "; + pageNotesUi += "
    "; + pageNotesUi += ""; + pageNotesUi += "
    "; + pageNotesUi += "
    "; + pageNotesUi += "
    "; + pageNotesUi += ""; + pageNotesUi += "
    No interactions in the trace.
    Triggered interactions will appear here.
    "; + pageNotesUi += "
    "; + pageNotesUi += "
    "; + + $('#debugHost').html(pageNotesUi); + updateContainerHeight(); + + $('#traceClearLinkContainer').hide(); + $('#traceEmptyState').show(); + } + +})(); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/debug/styles/debug.css b/codes/agent/game-docker/api/document/plugins/debug/styles/debug.css new file mode 100644 index 0000000..2c3aa45 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/debug.css @@ -0,0 +1,135 @@ +#debugHost { + font-size: 12px; + color:#4a4a4a; + height: 100%; +} + +#debugHostBtn a { + background: url('images/variables_on.png'); + background: url('images/variables_on.svg'),linear-gradient(transparent, transparent); +} + +.hashover #debugHostBtn a:hover { + background: url('images/variables_hover.png'); + background: url('images/variables_hover.svg'),linear-gradient(transparent, transparent); +} + +#debugHostBtn a.selected, #debugHostBtn a.selected:hover { + background: url('images/variables_off.png'); + background: url('images/variables_off.svg'),linear-gradient(transparent, transparent); +} + +#debugHeader .pageNameHeader { + padding-right: 0px; +} + +#variablesClearLink { + display: inline-block; + margin-bottom: 15px; +} + +#variablesClearLink:hover { + color: #0a6cd6; +} + +#traceClearLink { + display: inline-block; + margin-bottom: 15px; +} + +#traceClearLink:hover { + color: #0a6cd6; +} + +#debugScrollContainer +{ + overflow: auto; + width: 100%; + height: 100%; + -webkit-overflow-scrolling: touch; +} + +#debugContainer { + padding: 10px 10px 10px 10px; +} + +.variableName +{ + font-weight: bold; +} + +.variableDiv +{ + margin-bottom: 20px; + line-height: 16px; + +} + +#variablesContainer { + padding-bottom: 5px; + /*overflow: auto;*/ +} + +#traceContainer { + padding-top: 15px; + /*padding: 0px 10px 10px 10px;*/ +} + +.debugToolbarButton +{ + font-size: 1em; + color: #069; +} + +.axEventBlock { + display: inline-block; + width: 100%; + margin: 5px 0px 5px 0px; + line-height: 21px; +} + +/*a.axEventBlock:hover { + background-color: #069; + color: white; +}*/ + +.axTime { + margin: 0px 0px 0px 0px; + font-size: 11px; + color: #b1b3b5; +} + +.axLabel { + margin: 0px 0px 5px 0px; + font-family: 'Trebuchet MS'; + font-size: 14px; + font-weight: bold; +} + +.lastAxEvent { + margin-bottom: 10px; + border-bottom: 1px solid #c2c2c2; + padding-bottom: 10px; +} + +.axEvent { + margin: 0px 0px 5px 0px; + font-weight: bold; +} + +.axCase { + margin: 0px 0px 5px 8px; + font-style: italic; +} + +.axAction { + margin: 0px 0px 5px 13px; +} + +#traceEmptyState.emptyStateContainer { + margin-top: 0px; +} + +.debugLinksContainer { + text-align: right; +} \ No newline at end of file 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 new file mode 100644 index 0000000..f91f3d4 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset.svg @@ -0,0 +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 new file mode 100644 index 0000000..98e02e5 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/reset_hover.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_hover.png b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_hover.png new file mode 100644 index 0000000..b7c9cbd Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_hover.png differ 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 new file mode 100644 index 0000000..00e75d0 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_hover.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_off.png new file mode 100644 index 0000000..de5c50e Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_off.png differ 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 new file mode 100644 index 0000000..09a82ea --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_off.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_on.png new file mode 100644 index 0000000..7b71df0 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_on.png differ 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 new file mode 100644 index 0000000..40526bf --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/debug/styles/images/variables_on.svg @@ -0,0 +1,12 @@ + + + + variables_off + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/page_notes.js b/codes/agent/game-docker/api/document/plugins/page_notes/page_notes.js new file mode 100644 index 0000000..8f90d82 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/page_notes.js @@ -0,0 +1,189 @@ +// use this to isolate the scope +(function () { + if(!$axure.document.configuration.showPageNotes && !$axure.document.configuration.showAnnotationsSidebar) { return; } + + $(window.document).ready(function () { + $axure.player.createPluginHost({ + id: 'pageNotesHost', + context: 'interface', + title: 'NOTES', + gid: 2 + }); + + generatePageNotes(); + + $(document).on('ContainerHeightChange', function () { + updateContainerHeight(); + }); + + $('#footnotesButton').click(footnotes_click).addClass('sitemapToolbarButtonSelected'); + $('#notesNextButton').click(notesNext_click); + $('#notesPreviousButton').click(notesPrevious_click); + + // bind to the page load + $axure.page.bind('load.page_notes', function () { + + var hasNotes = false; + + $('#pageNotesContent').html(""); + + if($axure.document.configuration.showPageNotes) { + //populate the notes + var notes = $axure.page.notes; + if(notes) { + var showNames = $axure.document.configuration.showPageNoteNames; + + for(var noteName in notes) { + var pageNoteUi = "
    "; + if(showNames) { + pageNoteUi += "
    " + noteName + "
    "; + } + pageNoteUi += "
    " + linkify(notes[noteName]) + "
    "; + pageNoteUi += "
    "; + pageNoteUi += "
    "; + $('#pageNotesContent').append(pageNoteUi); + + hasNotes = true; + } + } + } + + if($axure.document.configuration.showAnnotationsSidebar) { + var widgetNotes = $axure.page.widgetNotes; + if(widgetNotes) { + for(var i = 0; i < widgetNotes.length; i++) { + var widgetNote = widgetNotes[i]; + var widgetNoteUi = "
    "; + widgetNoteUi += "
    "; + widgetNoteUi += "
    " + widgetNote["label"] + "
    "; + + for(var widgetNoteName in widgetNote) { + if(widgetNoteName != "label" && widgetNoteName != "id") { + widgetNoteUi += "
    " + widgetNoteName + "
    "; + widgetNoteUi += "
    " + linkify(widgetNote[widgetNoteName]) + "
    "; + widgetNoteUi += "
    "; + } + } + widgetNoteUi += "
    "; + widgetNoteUi += "
    "; + $('#pageNotesContent').append(widgetNoteUi); + hasNotes = true; + } + $('.widgetNoteContainer').children(':last-child').remove(); + $('.widgetNoteFootnote').append("
    "); + $('.widgetNoteContainer').click(function () { + var wasSelected = $(this).hasClass('widgetNoteContainerSelected'); + $('.widgetNoteContainerSelected').removeClass('widgetNoteContainerSelected'); + if(!wasSelected) $(this).addClass('widgetNoteContainerSelected'); + $axure.messageCenter.postMessage('toggleSelectWidgetNote', this.getAttribute('data-id')); + }); + } + } + + if(hasNotes) $('#pageNotesEmptyState').hide(); + else $('#pageNotesEmptyState').show(); + + //If footnotes enabled for this prototype... + if($axure.document.configuration.showAnnotations == true) { + //If the fn var is defined and set to 0, hide footnotes + //else if hide-footnotes button selected, hide them + var fnVal = getHashStringVar(FOOTNOTES_VAR_NAME); + if(fnVal.length > 0 && fnVal == 0) { + $('#footnotesButton').removeClass('sitemapToolbarButtonSelected'); + $axure.messageCenter.postMessage('annotationToggle', false); + } else if(!$('#footnotesButton').is('.sitemapToolbarButtonSelected')) { + //If the footnotes button isn't selected, hide them on this loaded page + $axure.messageCenter.postMessage('annotationToggle', false); + } + } + + + return false; + }); + + function linkify(text) { + var urlRegex = /(\b(((https?|ftp|file):\/\/)|(www\.))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; + return text.replace(urlRegex, function(url, b, c) { + var url2 = (c == 'www.') ? 'http://' + url : url; + return '' + url + ''; + }); + } + }); + + function updateContainerHeight() { + $('#pageNotesScrollContainer').height($('#pageNotesHost').height() - $('#pageNotesHeader').outerHeight()); + } + + $(document).on('sidebarCollapse', function (event, data) { + clearSelection(); + }); + + $(document).on('pluginShown', function (event, data) { + if(data != 2) { + clearSelection(); + } + }); + + function clearSelection() { + $('.widgetNoteContainerSelected').removeClass('widgetNoteContainerSelected'); + $axure.messageCenter.postMessage('toggleSelectWidgetNote', ''); + } + + function footnotes_click(event) { + if($('#footnotesButton').is('.sitemapToolbarButtonSelected')) { + $('#footnotesButton').removeClass('sitemapToolbarButtonSelected'); + $axure.messageCenter.postMessage('annotationToggle', false); + //Add 'fn' hash string var so that footnotes stay hidden across reloads + setVarInCurrentUrlHash(FOOTNOTES_VAR_NAME, 0); + } else { + $('#footnotesButton').addClass('sitemapToolbarButtonSelected'); + $axure.messageCenter.postMessage('annotationToggle', true); + //Delete 'fn' hash string var if it exists since default is visible + deleteVarFromCurrentUrlHash(FOOTNOTES_VAR_NAME); + } + } + + function notesNext_click(event) { + openNextPage(); + } + + function notesPrevious_click(event) { + openPreviousPage(); + } + + function generatePageNotes() { + var pageNotesUi = "
    "; + + pageNotesUi += "
    "; + pageNotesUi += "
    NOTES
    "; + pageNotesUi += "
    "; + + pageNotesUi += "
    "; + + pageNotesUi += ""; + pageNotesUi += ""; + + if($axure.document.configuration.showAnnotations == true) { + pageNotesUi += ""; + } + + pageNotesUi += "
    "; + pageNotesUi += "
    "; + pageNotesUi += "
    "; + + + pageNotesUi += "
    "; + pageNotesUi += "
    "; + pageNotesUi += "
    No notes for this page.
    Notes added in Axure RP will appear here.
    "; + pageNotesUi += ""; + pageNotesUi += "
    "; + + $('#pageNotesHost').html(pageNotesUi); + updateContainerHeight(); + + if(!$axure.document.configuration.showAnnotations) { + $('#pageNotesHost .pageNameHeader').css('padding-right', '55px'); + } + } + +})(); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back.png new file mode 100644 index 0000000..9c4a594 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back.png differ 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 new file mode 100644 index 0000000..8c8b36c --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back_hover.png new file mode 100644 index 0000000..feebfba Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back_hover.png differ 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 new file mode 100644 index 0000000..9e86df2 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/back_hover.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes.png new file mode 100644 index 0000000..be4ea25 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes.png differ 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 new file mode 100644 index 0000000..1651280 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes.svg @@ -0,0 +1,15 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_hover.png new file mode 100644 index 0000000..11aedd4 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_hover.png differ 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 new file mode 100644 index 0000000..1e22b69 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_hover.svg @@ -0,0 +1,15 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_on.png new file mode 100644 index 0000000..11aedd4 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_on.png differ 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 new file mode 100644 index 0000000..378fcb6 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/footnotes_on.svg @@ -0,0 +1,15 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward.png new file mode 100644 index 0000000..d485dc9 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward.png differ 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 new file mode 100644 index 0000000..9679f4b --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward_hover.png new file mode 100644 index 0000000..c6c914b Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward_hover.png differ 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 new file mode 100644 index 0000000..cf438f5 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/forward_hover.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_hover.png new file mode 100644 index 0000000..81afe8d Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_hover.png differ 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 new file mode 100644 index 0000000..88d93da --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_hover.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_off.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_off.png new file mode 100644 index 0000000..c572237 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_off.png differ 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 new file mode 100644 index 0000000..63429a1 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_off.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_on.png b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_on.png new file mode 100644 index 0000000..103d72c Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_on.png differ 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 new file mode 100644 index 0000000..83a4529 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/images/notes_on.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/page_notes/styles/page_notes.css b/codes/agent/game-docker/api/document/plugins/page_notes/styles/page_notes.css new file mode 100644 index 0000000..92a7aa7 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/page_notes/styles/page_notes.css @@ -0,0 +1,159 @@ +#pageNotesHost { + font-size: 12px; + color:#4a4a4a; + height: 100%; +} + +#pageNotesHostBtn a { + background: url('images/notes_on.png'); + background: url('images/notes_on.svg'),linear-gradient(transparent, transparent); +} + +.hashover #pageNotesHostBtn a:hover { + background: url('images/notes_hover.png'); + background: url('images/notes_hover.svg'),linear-gradient(transparent, transparent); +} + +#pageNotesHostBtn a.selected, #pageNotesHostBtn a.selected:hover { + background: url('images/notes_off.png'); + background: url('images/notes_off.svg'),linear-gradient(transparent, transparent); +} + +#footnotesButton { + background: url('images/footnotes.png') no-repeat center center; + background: url('images/footnotes.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +#footnotesButton:hover { + background: url('images/footnotes_hover.png') no-repeat center center; + background: url('images/footnotes_hover.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +#footnotesButton.sitemapToolbarButtonSelected, #footnotesButton.sitemapToolbarButtonSelected:hover { + background: url('images/footnotes_on.png') no-repeat center center; + background: url('images/footnotes_on.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +.nextPageButton { + background: url('images/forward.png') no-repeat center center; + background: url('images/forward.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +.nextPageButton:hover { + background: url('images/forward_hover.png') no-repeat center center; + background: url('images/forward_hover.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +.prevPageButton { + background: url('images/back.png') no-repeat center center; + background: url('images/back.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +.prevPageButton:hover { + background: url('images/back_hover.png') no-repeat center center; + background: url('images/back_hover.svg') no-repeat center center,linear-gradient(transparent, transparent); +} + +#pageNotesScrollContainer +{ + overflow: auto; + width: 100%; + /*height: 100%;*/ + -webkit-overflow-scrolling: touch; +} + +#pageNotesContainer +{ + /*padding: 10px 10px 10px 12px;*/ +} + +#pageNotesContent +{ + overflow: visible; +} + +.pageNoteContainer +{ + padding: 10px; +} + +.pageNoteName +{ + font-family: 'Trebuchet MS'; + font-size: 14px; + font-weight: bold; + margin-bottom: 5px; + /*text-decoration: underline;*/ + white-space: nowrap; +} + +.pageNote +{ + line-height: 21px; + /*margin-bottom: 20px;*/ +} + +.widgetNoteContainer { + padding: 10px; + border-bottom: 1px solid transparent; + border-top: 1px solid transparent; + cursor: pointer; +} + +.widgetNoteContainerSelected { + background-color: white; + border-bottom: 1px solid #c2c2c2; + border-top: 1px solid #c2c2c2; +} + +/*.widgetNoteContainer:hover { + background-color: white; + //border-bottom: 1px solid #c2c2c2; + //border-top: 1px solid #c2c2c2; +}*/ + +.widgetNoteFootnote { + display: inline-block; + /*vertical-align: top; + margin: 2px 5px 10px 0px; + padding: 1px 6px; + font-size: 10px; + color: #ffffff; + background-color: #0a6cd6;*/ + width: 13px; + height: 12px; + padding-top: 1px; + text-align: center; + background-color: #138CDD; + /*-moz-box-shadow: 1px 1px 3px #aaa; + -webkit-box-shadow: 1px 1px 3px #aaa; + box-shadow: 1px 1px 3px #aaa;*/ + font-size: 0px; + margin-right: 8px; +} + +div.annnoteline { + display: inline-block; + width: 9px; + height: 1px; + border-bottom: 1px solid white; + margin-top: 1px; +} + +.widgetNoteLabel { + display: inline-block; + vertical-align: top; + font-family: 'Trebuchet MS'; + font-size: 14px; + font-weight: bold; + margin-bottom: 5px; +} + +.noteLink { + text-decoration: inherit; + color: inherit; +} + +.noteLink:hover { + background-color: white; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/recordplay/recordplay.js b/codes/agent/game-docker/api/document/plugins/recordplay/recordplay.js new file mode 100644 index 0000000..9d39458 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/recordplay/recordplay.js @@ -0,0 +1,479 @@ +// use this to isolate the scope +(function() { + + if(!$axure.document.configuration.showRecordPlay) { return; } + + $(window.document).ready(function() { + $axure.player.createPluginHost({ + id: 'recordPlayHost', + context: 'interface', + title: 'Recording' + }); + _generateRecordPlay(); + + $('#recordButton').click(_recordClick); + $('#playButton').click(_playClick); + $('#stopButton').click(_stopClick); + $('#deleteButton').click(_deleteClick); + + // bind to the page load + + $axure.page.bind('load.page_notes', function() { + + $.ajax({ + type: "POST", + url: '/RecordController/ListRecordings', + success: function(response) { + + $('#recordNameHeader').html(""); + $('#recordPlayContent').html(""); + //populate the notes + + axRecordingList = []; + + if(!eventList) { + recordingIndex = 0; + eventList = []; + recordingStartTime = 0; + bulkEventElement = ""; + lastBulkEvent = {}; + } + + for(var idx in response.recordingList) { + getOneRecording(response.recordingList[idx]); + } + + return false; + }, + // dataType: 'json' + }); + }); + }); + + var nameMatcher = new RegExp("^axRecording[0-9]{4}$", "i"); + var indexMatcher = new RegExp("[0-9]{4}$", "i"); + + var convertFromJson = function(oneRecording) { + + if(nameMatcher.exec(oneRecording.recordingName)) { + var myArray = indexMatcher.exec(oneRecording.recordingName); + var currIdx = parseInt(myArray); + if(recordingIndex < currIdx) { + recordingIndex = currIdx; + } + } + + + for(var idx in oneRecording.eventList) { + var thisEvent = oneRecording.eventList[idx]; + thisEvent.eventInfo = {}; + thisEvent.eventInfo.srcElement = thisEvent.elementID; + // TODO: check that this is correct. + + if(isBulkMouse(thisEvent.eventType)) { + thisEvent.eventInfo.mousePositions = []; + thisEvent.eventInfo.mousePositions = thisEvent.mousePositions; + thisEvent.timeStamp = thisEvent.mousePositions[0].timeStamp; + } + if(isSingleMouse(thisEvent.eventType)) { + thisEvent.eventInfo.cursor = {}; + thisEvent.eventInfo.cursor = thisEvent.cursor; + + } + if(thisEvent.eventType === 'OnDrag') { + thisEvent.eventInfo.dragInfo = {}; + thisEvent.eventInfo.dragInfo = thisEvent.dragInfo; + thisEvent.timeStamp = thisEvent.dragInfo.startTime; + } + + } + return oneRecording; + }; + + var getOneRecording = function(recordingItem) { + $.ajax({ + type: "POST", + url: '/RecordController/GetRecording', + data: { 'recordingId': recordingItem.recordingId }, + success: function(response) { + axRecordingList[axRecordingList.length] = convertFromJson(response); + var axRecordingContainer = $('#recordingContainer').find('li').filter('.recordingRootNode'); + axRecordingContainer.append(_formAxRecordingBranch(response)); + _attachEventTriggers(response); + }, // dataType: 'json' + }); + + }; + + var axRecordingList; + var eventList; + var recordingIndex; + var recordingStartTime; + var recordingId; + var recordingName; + + + var leadingZeros = function(number, digits) { // because this thing doesn't have string.format (or does it?) + var recurseLeadingZeros = function(number, digitsLeft) { + if(digitsLeft > 0) { + return recurseLeadingZeros("0" + number, digitsLeft - 1); + } else { + return number; + } + }; + return recurseLeadingZeros(number, digits - String(number).length); + }; + + + var generateRecordingName = function() { + return "axRecording" + leadingZeros(recordingIndex, 4); + }; + + var isSingleMouse = function(eventType) { + return (eventType === 'OnClick' || + eventType === 'OnMouseUp' || + eventType === 'OnMouseDown' || + eventType === 'OnMouseOver' || + eventType === 'OnKeyUp' || + eventType === 'OnSelectedChange' || + eventType === 'OnSelect' || + eventType === 'OnUnselect' || + eventType === 'OnTextChange' || + eventType === 'OnMouseOut'); + }; + + var isBulkMouse = function(eventType) { + return (eventType === 'OnMouseHover' || + eventType === 'OnMouseMove'); + }; + + var bulkEventElement; + var lastBulkEvent; + + + $axure.messageCenter.addMessageListener(function(message, eventData) { + var lastEvent, lastBulkData; + + if(message === 'logEvent') { + + if(bulkEventElement !== eventData.elementID) { + lastBulkEvent = {}; + bulkEventElement = eventData.elementID; + } + + if(isBulkMouse(eventData.eventType)) { + lastEvent = lastBulkEvent[eventData.eventType]; + + if(lastEvent) { + // this is the second or third or whatever onmousemove in a row + lastBulkData = lastEvent.eventInfo.mousePositions; + lastBulkData[lastBulkData.length] = { + cursor: eventData.eventInfo.cursor, + timeStamp: eventData.timeStamp + }; + } else { + + eventData.eventInfo.mousePositions = []; + eventData.eventInfo.mousePositions[0] = { + cursor: eventData.eventInfo.cursor, + timeStamp: eventData.timeStamp + }; + eventList[eventList.length] = eventData; + lastBulkEvent[eventData.eventType] = eventData; + } + } else { + var z = true; + } + + if(isSingleMouse(eventData.eventType) ) { + eventList[eventList.length] = eventData; + lastBulkEvent = {}; + bulkEventElement = eventData.elementID; + } + + if(eventData.eventType === 'OnDrag') { + + lastEvent = lastBulkEvent[eventData.eventType]; + + if (lastEvent) { + // this is the second or third or whatever onmousemove in a row + lastBulkData = lastEvent.eventInfo.mousePositions; + lastBulkData[lastBulkData.length] = { + dragInfo: eventData.eventInfo.dragInfo, + timeStamp: eventData.timeStamp + }; + } else { + eventData.eventInfo.mousePositions = []; + eventData.eventInfo.mousePositions[0] = { + dragInfo: eventData.eventInfo.dragInfo, + timeStamp: eventData.timeStamp + }; + eventList[eventList.length] = eventData; + lastBulkEvent[eventData.eventType] = eventData; + } + } +// if(eventData.eventType === 'OnKeyUp') { +// transmissionFields.eventInfo = eventData.eventInfo; +// $.ajax({ +// type: "POST", +// url: '/RecordController/LogMouseClick', +// data: transmissionFields, +// }); +// } + } + + }); + + + var _recordClick = function(event) { + $('#recordButton').addClass('recordPlayButtonSelected'); + recordingIndex++; + // $axure.recording.startRecord(); + + recordingStartTime = new Date().getTime(); + + $.ajax({ + type: "POST", + url: '/RecordController/CreateRecording', + data: { + 'recordingName': generateRecordingName(), + timeStamp: recordingStartTime + }, + success: function(response) { + recordingId = response.recordingId; + recordingName = response.recordingName; + $axure.messageCenter.postMessage('startRecording', {'recordingId' : recordingId, 'recordingName': recordingName}); + }, + // dataType: 'json' + }); + + }; + + var _playClick = function(event) { + $('#playButton').addClass('recordPlayButtonSelected'); + }; + + var _stopClick = function(event) { + var axRecording, axObjectDictionary, axRecordingContainer, transmissionFields; + $('#sitemapLinksContainer').toggle(); + if($('#recordButton').is('.recordPlayButtonSelected')) { + $('#recordButton').removeClass('recordPlayButtonSelected'); + // $axure.recording.stopRecord(); + + axRecording = { + 'recordingId' : recordingId, + 'recordingName': recordingName, + 'eventList': eventList + }; + + axRecordingList[axRecordingList.length] = axRecording; + axRecordingContainer = $('#recordingContainer').find('li').filter('.recordingRootNode'); + axRecordingContainer.append(_formAxRecordingBranch(axRecording)); + _attachEventTriggers(axRecording); + + lastBulkEvent = {}; + + var recordingStepList = []; + + for(var eventListIdx in eventList) { + var eventListItem = eventList[eventListIdx]; + + if(eventListItem.eventType === 'OnDrag') { + var lastDrag = eventListItem.eventInfo.mousePositions[eventListItem.eventInfo.mousePositions.length - 1].dragInfo; + eventListItem.eventInfo.dragInfo.currentX = lastDrag.currentX; + eventListItem.eventInfo.dragInfo.currentY = lastDrag.currentY; + eventListItem.eventInfo.dragInfo.currentTime = lastDrag.currentTime; + eventListItem.eventInfo.dragInfo.xDelta = eventListItem.eventInfo.dragInfo.currentX - eventListItem.eventInfo.dragInfo.lastX; + eventListItem.eventInfo.dragInfo.yDelta = eventListItem.eventInfo.dragInfo.currentY - eventListItem.eventInfo.dragInfo.lastY; + transmissionFields = {}; + transmissionFields = tackItOn(transmissionFields, eventListItem, ['eventType', 'elementID', 'path']); + transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['dragInfo']); + transmissionFields.recordingId = recordingId; + } + + if(isSingleMouse(eventListItem.eventType)) { + transmissionFields = {}; + transmissionFields = tackItOn(transmissionFields, eventListItem, ['timeStamp', 'eventType', 'elementID', 'path']); + transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['cursor']); + transmissionFields.recordingId = recordingId; + } + + if(isBulkMouse(eventListItem.eventType)) { + transmissionFields = {}; + transmissionFields = tackItOn(transmissionFields, eventListItem, ['eventType', 'elementID', 'path']); + transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['mousePositions']); + transmissionFields.recordingId = recordingId; + } + recordingStepList[recordingStepList.length] = transmissionFields; + } + + eventList = []; + $axure.messageCenter.postMessage('stopRecording', axObjectDictionary); + + var jsonText = { + 'recordingName': recordingName, + 'recordingId': recordingId, + recordingStart: new Date().getTime(), + recordingEnd: recordingStartTime, + 'eventList': recordingStepList + }; + + $.ajax({ + type: "POST", + url: '/RecordController/StopRecording', + data: { 'jsonText': JSON.stringify(jsonText) } + + }); + + } + + if($('#playButton').is('.recordPlayButtonSelected')) { + $('#playButton').removeClass('recordPlayButtonSelected'); + } + }; + + var _deleteClick = function(event) { + $.ajax({ + type: "POST", + url: '/RecordController/DeleteRecordings', + success: function(response) { + var x = true; + }, // dataType: 'json' + }); + }; + + var tackItOn = function(destination, source, fields) { + + for(var idx in fields) { + destination[fields[idx]] = source[fields[idx]]; + } + return destination; + }; + + var makeFirstLetterLower = function(eventName) { + return eventName.substr(0, 1).toLowerCase() + eventName.substr(1); + }; + + var _attachEventTriggers = function(axRecording) { + for(var eventIdx in axRecording.eventList) { + var eventObject = axRecording.eventList[eventIdx]; + var eventID = axRecording['recordingId'] + '_' + eventObject.timeStamp; + currentEvent = eventID; + $('#' + eventID).click(_triggerEvent(axRecording['recordingId'], eventObject.timeStamp)); + // $('#' + eventID).click(event.trigger); + } + }; + + var _formAxRecordingBranch = function(axRecording) { + var eventObject, eventID, RDOID; + var recordPlayUi = '"; + + return recordPlayUi; + }; + + var currentEvent = ''; + + var _triggerEvent = function(axRecording, timeStamp) { + // $axure.messageCenter.postMessage('triggerEvent', false); + + + for(var axRecordingIdx in axRecordingList) { + if(axRecordingList[axRecordingIdx].recordingId === axRecording) { + for(var eventIdx in axRecordingList[axRecordingIdx].eventList) { + if(axRecordingList[axRecordingIdx].eventList[eventIdx].timeStamp === timeStamp) { + + var thisEvent = axRecordingList[axRecordingIdx].eventList[eventIdx]; + // thisEvent.trigger(); + + var thisEventInfo, lowerEventType; + lowerEventType = thisEvent.eventType.toLowerCase(); + if(lowerEventType === 'onclick' || lowerEventType === 'onmousein') { + thisEventInfo = {}; + thisEventInfo = tackItOn(thisEventInfo, thisEvent.eventInfo, ['cursor', 'timeStamp', 'srcElement']); + if(thisEvent.eventInfo.inputType) { + thisEventInfo = tackItOn(thisEventInfo, thisEvent.eventInfo, ['inputType', 'inputValue']); + } + } else { + thisEventInfo = thisEvent.eventInfo; + } + + var thisParameters = { + 'element': thisEvent.elementID, + 'eventInfo': thisEventInfo, + // 'axEventObject': thisEvent.eventObject, + 'eventType': thisEvent.eventType + }; + + return function() { + $axure.messageCenter.postMessage('playEvent', thisParameters); + }; + + } + } + } + } + }; + + var _generateRecordPlay = function() { + var recordPlayUi = "
    "; + + recordPlayUi += "
    "; + + recordPlayUi += "
    "; + + recordPlayUi += ""; + recordPlayUi += ""; + recordPlayUi += ""; + recordPlayUi += ""; + recordPlayUi += "
    "; + + recordPlayUi += "
  1. "; + recordPlayUi += "
    "; + + $('#recordPlayHost').html(recordPlayUi); + }; + +})(); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/recordplay/styles/recordplay.css b/codes/agent/game-docker/api/document/plugins/recordplay/styles/recordplay.css new file mode 100644 index 0000000..b8eb689 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/recordplay/styles/recordplay.css @@ -0,0 +1,89 @@ +#recordPlayHost { + font-size: 12px; + color:#333; + height: 100%; +} + + +#recordPlayContainer +{ + overflow: auto; + width: 100%; + height: 100%; + padding: 10px 10px 10px 10px; +} + +#recordPlayToolbar +{ + margin: 5px 5px 5px 5px; + height: 22px; +} + +#recordPlayToolbar .recordPlayButton +{ + float: left; + width: 22px; + height: 22px; + border: 1px solid transparent; +} + +#recordPlayToolbar .recordPlayButton:hover +{ + border: 1px solid rgb(0,157,217); + background-color : rgb(166,221,242); +} + +#recordPlayToolbar .recordPlayButton:active +{ + border: 1px solid rgb(0,157,217); + background-color : rgb(204,235,248); +} + +#recordPlayToolbar .recordPlayButtonSelected { + border: 1px solid rgb(0,157,217); + background-color : rgb(204,235,248); +} + +#recordButton { + background: url('../../sitemap/styles/images/233_hyperlink_16.png') no-repeat center center; +} + +#playButton { + background: url('../../sitemap/styles/images/225_responsive_16.png') no-repeat center center; +} + +#stopButton { + background: url('../../sitemap/styles/images/228_togglenotes_16.png') no-repeat center center; +} + +#deleteButton { + background: url('../../sitemap/styles/images/231_event_16.png') no-repeat center center; +} + +#recordNameHeader +{ + /* yeah??*/ + font-size: 13px; + font-weight: bold; + height: 23px; + white-space: nowrap; +} + +#recordPlayContent +{ + /* yeah??*/ + overflow: visible; +} + +.recordPlayName +{ + font-size: 12px; + margin-bottom: 5px; + text-decoration: underline; + white-space: nowrap; +} + +.recordPlay +{ + margin-bottom: 10px; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/sitemap.js b/codes/agent/game-docker/api/document/plugins/sitemap/sitemap.js new file mode 100644 index 0000000..d9aca9d --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/sitemap.js @@ -0,0 +1,490 @@ +var currentNodeUrl = ''; +var allNodeUrls = []; + +function openNextPage() { + var index = allNodeUrls.indexOf(currentNodeUrl) + 1; + if(index >= allNodeUrls.length) return; + var nextNodeUrl = allNodeUrls[index]; + $('.sitemapPageLink[nodeUrl="' + nextNodeUrl + '"]').click(); +} + +function openPreviousPage() { + var index = allNodeUrls.indexOf(currentNodeUrl) - 1; + if(index < 0) return; + var nextNodeUrl = allNodeUrls[index]; + $('.sitemapPageLink[nodeUrl="' + nextNodeUrl + '"]').click(); +} + +// use this to isolate the scope +(function() { + + var SHOW_HIDE_ANIMATION_DURATION = 0; + + var HIGHLIGHT_INTERACTIVE_VAR_NAME = 'hi'; + + var currentPageLoc = ''; + var currentPlayerLoc = ''; + var currentPageHashString = ''; + + $(window.document).ready(function() { + $axure.player.createPluginHost({ + id: 'sitemapHost', + context: 'interface', + title: 'PAGES', + gid: 1 + }); + + generateSitemap(); + + $('.sitemapPlusMinusLink').toggle(collapse_click, expand_click); + $('.sitemapPageLink').click(node_click); + + $('#sitemapLinksContainer').hide(); + $('#linksButton').click(links_click); + $('#adaptiveButton').click(adaptive_click); + $('#adaptiveViewsContainer').hide(); + + $('#highlightInteractiveButton').click(highlight_interactive); + $('#searchButton').click(search_click); + $('#searchBox').keyup(search_input_keyup); + $('.sitemapLinkField').click(function() { this.select(); }); + $('input[value="withoutmap"]').click(withoutSitemapRadio_click); + $('input[value="withmap"]').click(withSitemapRadio_click); + $('#minimizeBox, #collapseBox, #footnotesBox, #highlightBox').change(sitemapUrlOptions_change); + $('#viewSelect').change(sitemapUrlViewSelect_change); + + $(document).on('ContainerHeightChange', function() { + updateContainerHeight(); + }); + + // bind to the page load + $axure.page.bind('load.sitemap', function() { + currentPageLoc = $axure.page.location.split("#")[0]; + var decodedPageLoc = decodeURI(currentPageLoc); + currentNodeUrl = decodedPageLoc.substr(decodedPageLoc.lastIndexOf('/') ? decodedPageLoc.lastIndexOf('/') + 1 : 0); + currentPlayerLoc = $(location).attr('href').split("#")[0].split("?")[0]; + currentPageHashString = '#p=' + currentNodeUrl.substr(0, currentNodeUrl.lastIndexOf('.')); + + setVarInCurrentUrlHash('p', currentNodeUrl.substring(0, currentNodeUrl.lastIndexOf('.html'))); + + $('.sitemapPageLink').parent().parent().removeClass('sitemapHighlight'); + $('.sitemapPageLink[nodeUrl="' + currentNodeUrl + '"]').parent().parent().addClass('sitemapHighlight'); + + var pageName = $axure.page.pageName; + $('.pageNameHeader').html(pageName); + + $('#sitemapLinksPageName').html($('.sitemapHighlight > .sitemapPageLinkContainer > .sitemapPageLink > .sitemapPageName').html()); + + //Click the "Without sitemap" radio button so that it's selected by default + $('input[value="withoutmap"]').click(); + + //If highlight var is present and set to 1 or else if + //sitemap highlight button is selected then highlight interactive elements + var hiVal = getHashStringVar(HIGHLIGHT_INTERACTIVE_VAR_NAME); + if(hiVal.length > 0 && hiVal == 1) { + $('#highlightInteractiveButton').addClass('sitemapToolbarButtonSelected'); + $axure.messageCenter.postMessage('highlightInteractive', true); + } else if($('#highlightInteractiveButton').is('.sitemapToolbarButtonSelected')) { + $axure.messageCenter.postMessage('highlightInteractive', true); + } + + //Set the current view if it is defined in the hash string + //If the view is invalid, set it to 'auto' in the string + //ELSE set the view based on the currently selected view in the toolbar menu + var viewStr = getHashStringVar(ADAPTIVE_VIEW_VAR_NAME); + if(viewStr.length > 0) { + var $view = $('.adaptiveViewOption[val="' + viewStr + '"]'); + if($view.length > 0) $view.click(); + else $('.adaptiveViewOption[val="auto"]').click(); + } else if($('.checkedAdaptive').length > 0) { + var $viewOption = $('.checkedAdaptive').parents('.adaptiveViewOption'); + if($viewOption.attr('val') != 'auto') $viewOption.click(); + } + + $axure.messageCenter.postMessage('finishInit'); + + return false; + }); + + var $adaptiveViewsContainer = $('#adaptiveViewsContainer'); + var $viewSelect = $('#viewSelect'); + + //Fill out adaptive view container with prototype's defined adaptive views, as well as the default, and Auto + $adaptiveViewsContainer.append('
    Auto
    '); + $viewSelect.append(''); + if(typeof $axure.document.defaultAdaptiveView.name != 'undefined') { + //If the name is a blank string, make the view name the width if non-zero, else 'any' + var defaultViewName = $axure.document.defaultAdaptiveView.name; + $adaptiveViewsContainer.append('
    ' + defaultViewName + '
    '); + $viewSelect.append(''); + } + + var enabledViewIds = $axure.document.configuration.enabledViewIds; + for(var viewIndex = 0; viewIndex < $axure.document.adaptiveViews.length; viewIndex++) { + var currView = $axure.document.adaptiveViews[viewIndex]; + if(enabledViewIds.indexOf(currView.id) < 0) continue; + + var widthString = currView.size.width == 0 ? 'any' : currView.size.width; + var heightString = currView.size.height == 0 ? 'any' : currView.size.height; + var conditionString = ''; + if(currView.condition == '>' || currView.condition == '>=') { + conditionString = ' and above'; + } else if(currView.condition == '<' || currView.condition == '<=') { + conditionString = ' and below'; + } + + var viewString = currView.name + ' (' + widthString + ' x ' + heightString + conditionString + ')'; + $adaptiveViewsContainer.append('
    ' + viewString + '
    '); + $viewSelect.append(''); + } + + $('.adaptiveViewOption').click(adaptiveViewOption_click); + + $('.adaptiveViewOption').mouseup(function(event) { + event.stopPropagation(); + }); + + $('#searchBox').focusin(function() { + if($(this).is('.searchBoxHint')) { + $(this).val(''); + $(this).removeClass('searchBoxHint'); + } + }).focusout(function() { + if($(this).val() == '') { + $(this).addClass('searchBoxHint'); + $(this).val('Search'); + } + }); + + + $('#searchBox').focusout(); + }); + + function updateContainerHeight() { + $('#sitemapTreeContainer').height($('#sitemapHost').height() - $('#sitemapHeader').outerHeight()); + } + + function hideAllContainersExcept(exceptContainer) { + //1 - adaptive container, 3 - links container + if(exceptContainer != 1) { + $('#adaptiveViewsContainer').hide(); + $('#adaptiveButton').removeClass('sitemapToolbarButtonSelected'); + } + if(exceptContainer != 3) { + $('#sitemapLinksContainer').hide(); + $('#linksButton').removeClass('sitemapToolbarButtonSelected'); + } + } + + function collapse_click(event) { + $(this) + .children('.sitemapMinus').removeClass('sitemapMinus').addClass('sitemapPlus').end() + .closest('li').children('ul').hide(SHOW_HIDE_ANIMATION_DURATION); + + $(this).next('.sitemapFolderOpenIcon').removeClass('sitemapFolderOpenIcon').addClass('sitemapFolderIcon'); + } + + function expand_click(event) { + $(this) + .children('.sitemapPlus').removeClass('sitemapPlus').addClass('sitemapMinus').end() + .closest('li').children('ul').show(SHOW_HIDE_ANIMATION_DURATION); + + $(this).next('.sitemapFolderIcon').removeClass('sitemapFolderIcon').addClass('sitemapFolderOpenIcon'); + } + + function node_click(event) { + $axure.page.navigate(this.getAttribute('nodeUrl'), true); + } + + function links_click(event) { + hideAllContainersExcept(3); + $('#sitemapLinksContainer').toggle(); + updateContainerHeight(); + if($('#sitemapLinksContainer').is(":visible")) { + $('#linksButton').addClass('sitemapToolbarButtonSelected'); + } else { + $('#linksButton').removeClass('sitemapToolbarButtonSelected'); + } + } + + $axure.messageCenter.addMessageListener(function(message, data) { + if(message == 'adaptiveViewChange') { + $('.adaptiveViewOption').removeClass('currentAdaptiveView'); + if(data.viewId) {$('div[val="' + data.viewId + '"]').addClass('currentAdaptiveView');} + else $('div[val="default"]').addClass('currentAdaptiveView'); + + //when we set adaptive view through user event, we want to update the checkmark on sitemap + if(data.forceSwitchTo) { + $('.checkedAdaptive').removeClass('checkedAdaptive'); + $('div[val="' + data.forceSwitchTo + '"]').find('.adaptiveCheckboxDiv').addClass('checkedAdaptive'); + } + } + }); + + $(document).on('pluginShown', function (event, data) { + if(data == 1) { + hideAllContainersExcept(1); + updateContainerHeight(); + } + }); + + $(document).on('sidebarExpanded', function (event, data) { + hideAllContainersExcept(1); + updateContainerHeight(); + }); + + function highlight_interactive(event) { + if($('#highlightInteractiveButton').is('.sitemapToolbarButtonSelected')) { + $('#highlightInteractiveButton').removeClass('sitemapToolbarButtonSelected'); + $axure.messageCenter.postMessage('highlightInteractive', false); + //Delete 'hi' hash string var if it exists since default is unselected + deleteVarFromCurrentUrlHash(HIGHLIGHT_INTERACTIVE_VAR_NAME); + } else { + $('#highlightInteractiveButton').addClass('sitemapToolbarButtonSelected'); + $axure.messageCenter.postMessage('highlightInteractive', true); + //Add 'hi' hash string var so that stay highlighted across reloads + setVarInCurrentUrlHash(HIGHLIGHT_INTERACTIVE_VAR_NAME, 1); + } + } + + function adaptive_click(event) { + hideAllContainersExcept(1); + $('#adaptiveViewsContainer').toggle(); + updateContainerHeight(); + if(!$('#adaptiveViewsContainer').is(":visible")) { + $('#adaptiveButton').removeClass('sitemapToolbarButtonSelected'); + } else { + $('#adaptiveButton').addClass('sitemapToolbarButtonSelected'); + } + } + + function adaptiveViewOption_click(event) { + var currVal = $(this).attr('val'); + + $('.checkedAdaptive').removeClass('checkedAdaptive'); + $(this).find('.adaptiveCheckboxDiv').addClass('checkedAdaptive'); + + currentPageLoc = $axure.page.location.split("#")[0]; + var decodedPageLoc = decodeURI(currentPageLoc); + var nodeUrl = decodedPageLoc.substr(decodedPageLoc.lastIndexOf('/') ? decodedPageLoc.lastIndexOf('/') + 1 : 0); + var adaptiveData = { + src: nodeUrl + }; + + adaptiveData.view = currVal; + $axure.messageCenter.postMessage('switchAdaptiveView', adaptiveData); + + if(currVal == 'auto') { + //Remove view in hash string if one is set + deleteVarFromCurrentUrlHash(ADAPTIVE_VIEW_VAR_NAME); + } else { + //Set current view in hash string so that it can be maintained across reloads + setVarInCurrentUrlHash(ADAPTIVE_VIEW_VAR_NAME, currVal); + } + } + + function search_click(event) { + $('#searchDiv').toggle(); + if(!$('#searchDiv').is(":visible")) { + $('#searchButton').removeClass('sitemapToolbarButtonSelected'); + $('#searchBox').val(''); + $('#searchBox').keyup(); + //$('#sitemapToolbar').css('height', '22px'); + $('#sitemapTreeContainer').css('top', '31px'); + } else { + $('#searchButton').addClass('sitemapToolbarButtonSelected'); + $('#searchBox').focus(); + //$('#sitemapToolbar').css('height', '50px'); + $('#sitemapTreeContainer').css('top', '63px'); + } + } + + function search_input_keyup(event) { + var searchVal = $(this).val().toLowerCase(); + //If empty search field, show all nodes, else grey+hide all nodes and + //ungrey+unhide all matching nodes, as well as unhide their parent nodes + if(searchVal == '') { + $('.sitemapPageName').removeClass('sitemapGreyedName'); + $('.sitemapNode').show(); + } else { + $('.sitemapNode').hide(); + + $('.sitemapPageName').addClass('sitemapGreyedName').each(function() { + var nodeName = $(this).text().toLowerCase(); + if(nodeName.indexOf(searchVal) != -1) { + $(this).removeClass('sitemapGreyedName').parents('.sitemapNode:first').show().parents('.sitemapExpandableNode').show(); + } + }); + } + } + + function withoutSitemapRadio_click() { + $('#sitemapLinkWithPlayer').val(currentPageLoc); + $('#sitemapOptionsDiv').hide(); + $('#minimizeBox').attr('disabled', 'disabled'); + $('#collapseBox').attr('disabled', 'disabled'); + $('#footnotesBox').attr('disabled', 'disabled'); + $('#highlightBox').attr('disabled', 'disabled'); + $('#viewSelect').attr('disabled', 'disabled'); + $('input[value="withmap"]').parent().removeClass('sitemapRadioSelected'); + + updateContainerHeight(); + } + + function withSitemapRadio_click() { + $('#sitemapLinkWithPlayer').val(currentPlayerLoc + currentPageHashString); + $('#minimizeBox').removeAttr('disabled').change(); + $('#collapseBox').removeAttr('disabled').change(); + $('#footnotesBox').removeAttr('disabled').change(); + $('#highlightBox').removeAttr('disabled').change(); + $('#viewSelect').removeAttr('disabled').change(); + $('#sitemapOptionsDiv').show(); + $('input[value="withmap"]').parent().addClass('sitemapRadioSelected'); + + updateContainerHeight(); + } + + function sitemapUrlOptions_change() { + var currLinkHash = '#' + $('#sitemapLinkWithPlayer').val().split("#")[1]; + var newHash = null; + var varName = ''; + var defVal = 1; + if($(this).is('#minimizeBox')) { + varName = SITEMAP_COLLAPSE_VAR_NAME; + } else if($(this).is('#collapseBox')) { + varName = PLUGIN_VAR_NAME; + defVal = 0; + } else if($(this).is('#footnotesBox')) { + varName = FOOTNOTES_VAR_NAME; + defVal = 0; + } else if($(this).is('#highlightBox')) { + varName = HIGHLIGHT_INTERACTIVE_VAR_NAME; + } + + newHash = $(this).is(':checked') ? setHashStringVar(currLinkHash, varName, defVal) : deleteHashStringVar(currLinkHash, varName); + + if(newHash != null) { + $('#sitemapLinkWithPlayer').val(currentPlayerLoc + newHash); + } + } + + function sitemapUrlViewSelect_change() { + var currLinkHash = '#' + $('#sitemapLinkWithPlayer').val().split("#")[1]; + var newHash = null; + var $selectedOption = $(this).find('option:selected'); + if($selectedOption.length == 0) return; + var selectedVal = $selectedOption.attr('value'); + + newHash = selectedVal == 'auto' ? deleteHashStringVar(currLinkHash, ADAPTIVE_VIEW_VAR_NAME) : setHashStringVar(currLinkHash, ADAPTIVE_VIEW_VAR_NAME, selectedVal); + + if(newHash != null) { + $('#sitemapLinkWithPlayer').val(currentPlayerLoc + newHash); + } + } + + function generateSitemap() { + var treeUl = "
    "; + treeUl += "
    "; + treeUl += "
    PAGES
    "; + treeUl += "
    "; + + treeUl += "
    "; + + if($axure.document.configuration.enabledViewIds.length > 0) { + treeUl += ""; + } + + treeUl += ""; + treeUl += ""; + treeUl += "
    "; + + treeUl += "
    "; + + if($axure.document.adaptiveViews.length > 0) { + treeUl += "
    Adaptive Views
    "; + } + + //linkcontainer + treeUl += ""; + ///////////////// + + treeUl += "
    "; + + treeUl += "
    "; + + treeUl += '
    '; + + treeUl += "
      "; + var rootNodes = $axure.document.sitemap.rootNodes; + for(var i = 0; i < rootNodes.length; i++) { + treeUl += generateNode(rootNodes[i], 0); + } + treeUl += "
    "; + + $('#sitemapHost').html(treeUl); + if($axure.document.adaptiveViews.length <= 0) { + $('#sitemapHost .pageNameHeader').css('padding-right', '55px'); + } + } + + function generateNode(node, level) { + var hasChildren = (node.children && node.children.length > 0); + var margin, returnVal; + if(hasChildren) { + margin = (9 + level * 17); + returnVal = "
  2. "; + + if(hasChildren) { + returnVal += "
      "; + for(var i = 0; i < node.children.length; i++) { + var child = node.children[i]; + returnVal += generateNode(child, level + 1); + } + returnVal += "
    "; + } + returnVal += "
  3. "; + return returnVal; + } +})(); diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/079_page_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/079_page_16.png new file mode 100644 index 0000000..2df8317 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/079_page_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/086_case_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/086_case_16.png new file mode 100644 index 0000000..6665ef4 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/086_case_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/225_responsive_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/225_responsive_16.png new file mode 100644 index 0000000..1ae8edd Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/225_responsive_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/228_togglenotes_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/228_togglenotes_16.png new file mode 100644 index 0000000..f0f5f0f Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/228_togglenotes_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/229_variables_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/229_variables_16.png new file mode 100644 index 0000000..0d21988 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/229_variables_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/231_event_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/231_event_16.png new file mode 100644 index 0000000..1d763a6 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/231_event_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/232_search_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/232_search_16.png new file mode 100644 index 0000000..4fdfe78 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/232_search_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/233_hyperlink_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/233_hyperlink_16.png new file mode 100644 index 0000000..bb8b282 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/233_hyperlink_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/235_folderclosed_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/235_folderclosed_16.png new file mode 100644 index 0000000..dd7d132 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/235_folderclosed_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/236_folderopen_16.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/236_folderopen_16.png new file mode 100644 index 0000000..6e46b58 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/236_folderopen_16.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/adaptivecheck.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/adaptivecheck.png new file mode 100644 index 0000000..18914ae Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/adaptivecheck.png differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/flow.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/flow.png new file mode 100644 index 0000000..54b9928 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/flow.png differ 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 new file mode 100644 index 0000000..228330a --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/flow.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_closed.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_closed.png new file mode 100644 index 0000000..bb122c4 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_closed.png differ 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 new file mode 100644 index 0000000..e73c069 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_closed.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_open.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_open.png new file mode 100644 index 0000000..3178cba Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_open.png differ 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 new file mode 100644 index 0000000..d921ccf --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/folder_open.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots.png new file mode 100644 index 0000000..19fd004 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots.png differ 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 new file mode 100644 index 0000000..f35fe35 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_hover.png new file mode 100644 index 0000000..c50636a Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_hover.png differ 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 new file mode 100644 index 0000000..45209d2 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_hover.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_on.png new file mode 100644 index 0000000..c50636a Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_on.png differ 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 new file mode 100644 index 0000000..73899eb --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/hotspots_on.svg @@ -0,0 +1,12 @@ + + + + hotspots_on + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/images.html b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/images.html new file mode 100644 index 0000000..e4cf5e8 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/images.html @@ -0,0 +1,22 @@ + + + + + + +

    + + + + + + + + + + + + +

    + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/minus.gif b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/minus.gif new file mode 100644 index 0000000..3284f66 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/minus.gif differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/note.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/note.png new file mode 100644 index 0000000..0a69ea7 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/note.png differ 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 new file mode 100644 index 0000000..ee5337f --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/note.svg @@ -0,0 +1,16 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/page.png new file mode 100644 index 0000000..a1bc017 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/page.png differ 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 new file mode 100644 index 0000000..c690652 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/page.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/plus.gif b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/plus.gif new file mode 100644 index 0000000..373f060 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/plus.gif differ diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share.png new file mode 100644 index 0000000..88c7462 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share.png differ 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 new file mode 100644 index 0000000..c628e6b --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share.svg @@ -0,0 +1,19 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_hover.png new file mode 100644 index 0000000..d310eea Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_hover.png differ 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 new file mode 100644 index 0000000..e26aa4b --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_hover.svg @@ -0,0 +1,19 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_on.png new file mode 100644 index 0000000..d310eea Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_on.png differ 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 new file mode 100644 index 0000000..9007227 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/share_on.svg @@ -0,0 +1,19 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_hover.png new file mode 100644 index 0000000..3aa5667 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_hover.png differ 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 new file mode 100644 index 0000000..aa1ad02 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_hover.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_off.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_off.png new file mode 100644 index 0000000..02667b6 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_off.png differ 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 new file mode 100644 index 0000000..0d562f4 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_off.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_on.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_on.png new file mode 100644 index 0000000..a40bb35 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_on.png differ 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 new file mode 100644 index 0000000..f72c23b --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/sitemap_on.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views.png new file mode 100644 index 0000000..8c22894 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views.png differ 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 new file mode 100644 index 0000000..04f1224 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_hover.png new file mode 100644 index 0000000..a97d9a6 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_hover.png differ 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 new file mode 100644 index 0000000..d3bf5f5 --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_hover.svg @@ -0,0 +1,12 @@ + + + + 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.png b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_on.png new file mode 100644 index 0000000..a97d9a6 Binary files /dev/null and b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_on.png differ 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 new file mode 100644 index 0000000..d23cb1d --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/images/views_on.svg @@ -0,0 +1,12 @@ + + + + views_on + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/plugins/sitemap/styles/sitemap.css b/codes/agent/game-docker/api/document/plugins/sitemap/styles/sitemap.css new file mode 100644 index 0000000..d5401dd --- /dev/null +++ b/codes/agent/game-docker/api/document/plugins/sitemap/styles/sitemap.css @@ -0,0 +1,399 @@ + +#sitemapHost { + font-size: 12px; + color:#4a4a4a; + height: 100%; +} + +#sitemapHostBtn a { + background: url('images/sitemap_on.png'); + background: url('images/sitemap_on.svg'),linear-gradient(transparent, transparent); +} + +.hashover #sitemapHostBtn a:hover { + background: url('images/sitemap_hover.png'); + background: url('images/sitemap_hover.svg'),linear-gradient(transparent, transparent); +} + +#sitemapHostBtn a.selected, #sitemapHostBtn a.selected:hover { + background: url('images/sitemap_off.png'); + background: url('images/sitemap_off.svg'),linear-gradient(transparent, transparent); +} + +#sitemapHost .pageButtonHeader { + top: -27px; +} + +#sitemapTreeContainer { + overflow: auto; + width: 100%; + height: 100%; + -webkit-overflow-scrolling: touch; +} + +.sitemapTree { + margin: 0px 0px 10px 0px; + overflow:visible; +} + +.sitemapTree ul { + list-style-type: none; + margin: 0px 0px 0px 0px; + padding-left: 0px; +} + +.sitemapPlusMinusLink +{ +} + +.sitemapMinus +{ + vertical-align:middle; + background: url('images/minus.gif'); + background-repeat: no-repeat; + margin-right: 3px; + margin-bottom: 1px; + height:9px; + width:9px; + display:inline-block; +} + +.sitemapPlus +{ + vertical-align:middle; + background: url('images/plus.gif'); + background-repeat: no-repeat; + margin-right: 3px; + margin-bottom: 1px; + height:9px; + width:9px; + display:inline-block; +} + +.sitemapPageLink +{ + margin-left: 0px; +} + +.sitemapPageIcon +{ + margin: 0px 0px -3px 4px; + width: 16px; + height: 16px; + display: inline-block; + background: url('images/page.png') no-repeat center center; + background: url('images/page.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.sitemapFlowIcon +{ + background: url('images/flow.png') no-repeat center center; + background: url('images/flow.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.sitemapFolderIcon +{ + background: url('images/folder_closed.png') no-repeat center center; + background: url('images/folder_closed.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.sitemapFolderOpenIcon +{ + background: url('images/folder_open.png') no-repeat center center; + background: url('images/folder_open.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.sitemapPageName +{ + margin-left: 7px; +} + +.sitemapNode +{ + /*margin:4px 0px 4px 0px;*/ + white-space:nowrap; +} + +.sitemapPageLinkContainer { + /*display: inline-block;*/ + margin-left: 0px; + padding: 4px 0px 4px 0px; +} +/* +.sitemapNode div +{ + padding-top: 1px; + padding-bottom: 3px; + padding-left: 20px; + height: 14px; +} +*/ + +.sitemapExpandableNode +{ + margin-left: 0px; +} + +.sitemapHighlight +{ + /*display: inline-block;*/ + background-color : #C8E0F0; + font-weight: bold; +} + +.sitemapGreyedName +{ + color: #AAA; +} + + +.pluginNameHeader +{ + font-family: 'Trebuchet MS'; + font-size: 12px; + letter-spacing: 1px; + /*font-weight: bold;*/ + white-space: nowrap; + margin-bottom: 5px; +} + +.pageNameHeader +{ + font-family: 'Trebuchet MS'; + /*display: inline-block;*/ + /*float: left;*/ + font-size: 15px; + font-weight: bold; + /*height: 23px;*/ + padding-right: 77px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.pageButtonHeader +{ + float: right; + position: relative; + /*width: 72px;*/ + height: 24px; + top: -22px; + margin-bottom: -24px; +} + +.sitemapHeader +{ + padding-top: 27px; + border-bottom: 1px solid #d9d9d9; + min-width: 110px; +} + +.sitemapToolbar { + margin: 0px 5px 14px 12px; +} + +.sitemapToolbarButton +{ + float: left; + width: 22px; + height: 22px; + border: 1px solid transparent; +} + +#linksButton { + background: url('images/share.png') no-repeat center center; + background: url('images/share.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#linksButton:hover { + background: url('images/share_hover.png') no-repeat center center; + background: url('images/share_hover.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#linksButton.sitemapToolbarButtonSelected, .hashover #linksButton.sitemapToolbarButtonSelected:hover { + background: url('images/share_on.png') no-repeat center center; + background: url('images/share_on.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#adaptiveButton { + background: url('images/views.png') no-repeat center center; + background: url('images/views.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#adaptiveButton:hover { + background: url('images/views_hover.png') no-repeat center center; + background: url('images/views_hover.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#adaptiveButton.sitemapToolbarButtonSelected, #adaptiveButton.sitemapToolbarButtonSelected:hover { + background: url('images/views_on.png') no-repeat center center; + background: url('images/views_on.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#highlightInteractiveButton { + background: url('images/hotspots.png') no-repeat center center; + background: url('images/hotspots.svg') no-repeat center center, linear-gradient(transparent,transparent); + margin-top: 1px; +} + +#highlightInteractiveButton:hover { + background: url('images/hotspots_hover.png') no-repeat center center; + background: url('images/hotspots_hover.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#highlightInteractiveButton.sitemapToolbarButtonSelected, #highlightInteractiveButton.sitemapToolbarButtonSelected:hover { + background: url('images/hotspots_on.png') no-repeat center center; + background: url('images/hotspots_on.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +/*#variablesButton { + background: url('images/229_variables_16.png') no-repeat center center; +}*/ + +#searchButton { + background: url('images/232_search_16.png') no-repeat center center; +} + +.sitemapLinkContainer +{ + margin-top: 8px; + padding-right: 5px; + /*font-size: 12px;*/ +} + +.sitemapLinkField +{ + width: 100%; + font-size: 12px; + margin-top: 3px; + padding: 5px; +} + +.sitemapRadioSelected { + font-weight: bold; +} + +.sitemapOptionContainer +{ + margin-top: 8px; + padding-right: 5px; + /*font-size: 12px;*/ +} + +#sitemapOptionsDiv +{ + margin-top: 10px; + /*margin-left: 16px;*/ +} + +#viewSelectDiv +{ + padding: 2px 0px 0px 0px; + /*margin-left: 5px;*/ +} + +#viewSelect +{ + width: 70%; +} + +.sitemapUrlOption +{ + padding-bottom: 8px; +} + +.optionLabel +{ + font-size: 12px; +} + +.sitemapPopupContainer +{ + display: none; + position: absolute; + background-color: #F4F4F4; + border: 1px solid #B9B9B9; + padding: 5px 5px 5px 5px; + margin: 5px 0px 0px 5px; + z-index: 1; +} + +#sitemapLinksContainer { + border-top: 1px solid #d9d9d9; + padding: 10px; + margin-left: 0px; + /*line-height: 18px;*/ +} + +#adaptiveViewsContainer { + border-top: 1px solid #d9d9d9; + padding: 10px; + margin-left: 0px; + line-height: 18px; +} + +.adaptiveViewOption +{ + padding: 2px; +} + +.adaptiveViewOption:hover +{ + background-color: rgb(204,235,248); + cursor: pointer; +} + +.currentAdaptiveView { + font-weight: bold; +} + +.adaptiveCheckboxDiv { + height: 15px; + width: 15px; + float: left; +} + +.checkedAdaptive { + background: url('images/adaptivecheck.png') no-repeat center center; +} + +/*#variablesContainer +{ + max-height: 350px; + overflow: auto; +}*/ + +/*#variablesClearLink +{ + color: #069; + left: 5px; +}*/ + +#searchDiv { + padding: 8px 12px 11px 12px; +} + +#searchBox { + width: 100%; + border: none; + border-top: 1px solid #d9d9d9; + /*border-bottom: 1px solid #d9d9d9;*/ + padding: 5px; + font-size: 12px; +} + +.searchBoxHint +{ + color: #8f949a; + /*font-style: italic;*/ +} + +#sitemapLinksPageName +{ + font-weight: bold; +} + +#sitemapOptionsHeader +{ + font-weight: bold; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/Other.html b/codes/agent/game-docker/api/document/resources/Other.html new file mode 100644 index 0000000..d0fa808 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/Other.html @@ -0,0 +1,35 @@ + + + + + +
    +
    +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/chrome/allow_access.gif b/codes/agent/game-docker/api/document/resources/chrome/allow_access.gif new file mode 100644 index 0000000..11a6086 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/chrome/allow_access.gif differ diff --git a/codes/agent/game-docker/api/document/resources/chrome/axure-chrome-extension.crx b/codes/agent/game-docker/api/document/resources/chrome/axure-chrome-extension.crx new file mode 100644 index 0000000..fde7743 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/chrome/axure-chrome-extension.crx differ diff --git a/codes/agent/game-docker/api/document/resources/chrome/axure_logo.gif b/codes/agent/game-docker/api/document/resources/chrome/axure_logo.gif new file mode 100644 index 0000000..0e2357c Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/chrome/axure_logo.gif differ diff --git a/codes/agent/game-docker/api/document/resources/chrome/axure_logo.png b/codes/agent/game-docker/api/document/resources/chrome/axure_logo.png new file mode 100644 index 0000000..cd6f727 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/chrome/axure_logo.png differ diff --git a/codes/agent/game-docker/api/document/resources/chrome/chrome.html b/codes/agent/game-docker/api/document/resources/chrome/chrome.html new file mode 100644 index 0000000..9df5cd6 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/chrome/chrome.html @@ -0,0 +1,175 @@ + + + Install the Axure RP Chrome Extension + + + +
    +
    +
    + axure +
    +

    + AXURE RP EXTENSION
    + For Chrome

    +

    + Google Chrome requires an extension to view locally stored projects. Alternatively, + upload your RP file to AxShare or use a different + browser.

    +

    + VIEW LOCAL PROJECTS IN CHROME

    +
    +

    + 1. Install Extension from Chrome Store

    + +
    +
    +

    + 2. Open the Extensions Options

    + extensions +
    +
    +  
    +
    +

    + 3. Check "Allow access to file URLs"

    + allow access +
    +
    +

    + 4. Click the button below

    + +
    +
    +
    +

    + EXTENSION FAQ

    +

    + What is a Chrome Extension? Extensions are downloadable + plug-ins for Google Chrome that modify the browser
    + and allow you additional capabilities. +

    +

    + Why do I need to install the extension? Google requires + this extension to be installed to allow the viewing of local files in
    + Chrome +

    +

    + Why does this extension require a high access level? This + extension requires a high access level to allow the viewing of the file://
    + protocol. Axure does not track or access any of your information. +

    +

    + ROUND UP

    +

    + Chrome requires this extension to be installed to view local files.

    +

    + Need help or have any questions? Drop us a line at + support@axure.com. +

    +
    +
    +
    + + diff --git a/codes/agent/game-docker/api/document/resources/chrome/extensions_menu.gif b/codes/agent/game-docker/api/document/resources/chrome/extensions_menu.gif new file mode 100644 index 0000000..1c8b1a1 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/chrome/extensions_menu.gif differ diff --git a/codes/agent/game-docker/api/document/resources/chrome/splitter.gif b/codes/agent/game-docker/api/document/resources/chrome/splitter.gif new file mode 100644 index 0000000..3f8bca9 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/chrome/splitter.gif differ diff --git a/codes/agent/game-docker/api/document/resources/chrome/splitter.png b/codes/agent/game-docker/api/document/resources/chrome/splitter.png new file mode 100644 index 0000000..8e354e7 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/chrome/splitter.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/axure_rp_page.css b/codes/agent/game-docker/api/document/resources/css/axure_rp_page.css new file mode 100644 index 0000000..6d69647 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/css/axure_rp_page.css @@ -0,0 +1,239 @@ +/* so the window resize fires within a frame in IE7 */ +html, body { + height: 100%; +} + +a { + color: inherit; +} + +p { + margin: 0px; + text-rendering: optimizeLegibility; + font-feature-settings: "kern" 1; + -webkit-font-feature-settings: "kern"; + -moz-font-feature-settings: "kern"; + -moz-font-feature-settings: "kern=1"; + font-kerning: normal; +} + +iframe { + background: #FFFFFF; +} + +/* to match IE with C, FF */ +input { + padding: 1px 0px 1px 0px; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +textarea { + margin: 0px; + box-sizing: border-box; + -moz-box-sizing: border-box; +} + +div.intcases { + font-family: arial; + font-size: 12px; + text-align:left; + border:1px solid #AAA; + background:#FFF none repeat scroll 0% 0%; + z-index:9999; + visibility:hidden; + position:absolute; + padding: 0px; + border-radius: 3px; + white-space: nowrap; +} + +div.intcaselink { + cursor: pointer; + padding: 3px 8px 3px 8px; + margin: 5px; + background:#EEE none repeat scroll 0% 0%; + border:1px solid #AAA; + border-radius: 3px; +} + +div.refpageimage { + position: absolute; + left: 0px; + top: 0px; + font-size: 0px; + width: 16px; + height: 16px; + cursor: pointer; + background-image: url(images/newwindow.gif); + background-repeat: no-repeat; +} + +div.annnoteimage { + position: absolute; + left: 0px; + top: 0px; + font-size: 0px; + /*width: 16px; + height: 12px;*/ + cursor: help; + /*background-image: url(images/note.gif);*/ + /*background-repeat: no-repeat;*/ + width: 13px; + height: 12px; + padding-top: 1px; + text-align: center; + background-color: #138CDD; + -moz-box-shadow: 1px 1px 3px #aaa; + -webkit-box-shadow: 1px 1px 3px #aaa; + box-shadow: 1px 1px 3px #aaa; +} + +div.annnoteline { + display: inline-block; + width: 9px; + height: 1px; + border-bottom: 1px solid white; + margin-top: 1px; +} + +div.annnotelabel { + position: absolute; + left: 0px; + top: 0px; + font-family: Helvetica,Arial; + font-size: 10px; + /*border: 1px solid rgb(166,221,242);*/ + cursor: help; + /*background:rgb(0,157,217) none repeat scroll 0% 0%;*/ + padding: 1px 3px 1px 3px; + white-space: nowrap; + color: white; + + background-color: #138CDD; + -moz-box-shadow: 1px 1px 3px #aaa; + -webkit-box-shadow: 1px 1px 3px #aaa; + box-shadow: 1px 1px 3px #aaa; +} + +.annotation { + font-size: 12px; + padding-left: 2px; + margin-bottom: 5px; +} + +.annotationName { + /*font-size: 13px; + font-weight: bold; + margin-bottom: 3px; + white-space: nowrap;*/ + + font-family: 'Trebuchet MS'; + font-size: 14px; + font-weight: bold; + margin-bottom: 5px; + white-space: nowrap; +} + +.annotationValue { + font-family: Arial, Helvetica, Sans-Serif; + font-size: 12px; + color: #4a4a4a; + line-height: 21px; + margin-bottom: 20px; +} + +.noteLink { + text-decoration: inherit; + color: inherit; +} + +.noteLink:hover { + background-color: white; +} + +/* this is a fix for the issue where dialogs jump around and takes the text-align from the body */ +.dialogFix { + position:absolute; + text-align:left; + border: 1px solid #8f949a; +} + + +@keyframes pulsate { + from { + box-shadow: 0 0 10px #15d6ba; + } + to { + box-shadow: 0 0 20px #15d6ba; + } +} + +@-webkit-keyframes pulsate { + from { + -webkit-box-shadow: 0 0 10px #15d6ba; + box-shadow: 0 0 10px #15d6ba; + } + to { + -webkit-box-shadow: 0 0 20px #15d6ba; + box-shadow: 0 0 20px #15d6ba; + } +} + +@-moz-keyframes pulsate { + from { + -moz-box-shadow: 0 0 10px #15d6ba; + box-shadow: 0 0 10px #15d6ba; + } + to { + -moz-box-shadow: 0 0 20px #15d6ba; + box-shadow: 0 0 20px #15d6ba; + } +} + +.legacyPulsateBorder { + /*border: 5px solid #15d6ba; + margin: -5px;*/ + -moz-box-shadow: 0 0 10px 3px #15d6ba; + box-shadow: 0 0 10px 3px #15d6ba; +} + +.pulsateBorder { + animation-name: pulsate; + animation-timing-function: ease-in-out; + animation-duration: 0.9s; + animation-iteration-count: infinite; + animation-direction: alternate; + + -webkit-animation-name: pulsate; + -webkit-animation-timing-function: ease-in-out; + -webkit-animation-duration: 0.9s; + -webkit-animation-iteration-count: infinite; + -webkit-animation-direction: alternate; + + -moz-animation-name: pulsate; + -moz-animation-timing-function: ease-in-out; + -moz-animation-duration: 0.9s; + -moz-animation-iteration-count: infinite; + -moz-animation-direction: alternate; +} + +.ax_default_hidden, .ax_default_unplaced{ + display: none; + visibility: hidden; +} + +.widgetNoteSelected { + -moz-box-shadow: 0 0 10px 3px #138CDD; + box-shadow: 0 0 10px 3px #138CDD; + /*-moz-box-shadow: 0 0 20px #3915d6; + box-shadow: 0 0 20px #3915d6;*/ + /*border: 3px solid #3915d6;*/ + /*margin: -3px;*/ +} + + +.singleImg { + display: none; + visibility: hidden; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/css/default.css b/codes/agent/game-docker/api/document/resources/css/default.css new file mode 100644 index 0000000..1c8fdc2 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/css/default.css @@ -0,0 +1,207 @@ +body { + font-family : Arial, Helvetica, Sans-Serif; + background-color: #8f949a; + overflow:hidden; +} +a { + cursor: pointer; +} + +input[type="radio"], input[type="checkbox"] { + margin: 0px 9px 0px 0px; + vertical-align: bottom; +} + +input { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +#maximizePanelContainer { + font-size: 4px; + position:absolute; + left: 0px; + top: 0px; + width: 55px; + height: 20px; + overflow: visible; + z-index: 1000; +} +#maximizePanelOver { + position: absolute; + left: 0px; + top: 0px; + width: 55px; + height: 20px; +} +.maximizePanel { + position: absolute; + left: 0px; + top: 0px; + width: 55px; + height: 20px; + background: #a2a2a2 url('../images/expand.png') no-repeat center center; + background: url('../images/expand.svg') no-repeat center center, linear-gradient(rgba(200,200,200,.5),rgba(200,200,200,.5)); + cursor: pointer; +} + +#interfaceControlFrameMinimizeContainer { + position:absolute; + top: 0px; + left: 0px; + font-size: 2px; /*for IE*/ + text-align: right; + z-index: 100; + height: 20px; + width: 55px; + background-color: #62666b; +} +#interfaceControlFrameMinimizeContainer a { + display: inline-block; + width: 55px; + height: 20px; + font-size: 2px; + background: url('../images/close.png') no-repeat center center; + background: url('../images/close.svg') no-repeat center center, linear-gradient(transparent,transparent); + text-decoration: none; +} + +.hashover #interfaceControlFrameMinimizeContainer a:hover { + background: url('../images/close_hover.png') no-repeat center center; + background: url('../images/close_hover.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +#interfaceControlFrame { + margin: 0px 0px 0px 55px; +} + +#interfaceControlFrameCloseContainer { + /*display: none;*/ + position:absolute; + bottom: 0px; + left: 0px; + font-size: 9px; + font-family: 'Trebuchet MS'; + font-weight: bold; + letter-spacing: 1px; + z-index: 100; + width: 55px; + background-color: #62666b; + text-align: center; +} +#interfaceControlFrameCloseContainer a { + display: inline-block; + width: 55px; + color: #ffffff; + padding: 5px 0px; +} + +#interfaceControlFrameHeader li a { + display: block; + width: 54px; + height: 78px; + text-align: center; + padding-top: 50px; + outline: none; + margin-right: 1px; + text-decoration: none; + color: #ffffff; + white-space: nowrap; + background-color: transparent; + background-repeat: no-repeat; + background-position: 50% 17px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + border-left: 4px solid transparent; + border-right: 4px solid transparent; +} + +.hashover #interfaceControlFrameHeader li a:hover { + background-color: transparent; + background-repeat: no-repeat; + background-position: 50% 17px; + color: #c2c2c2; +} + +#interfaceControlFrameHeader li a.selected, #interfaceControlFrameHeader li a.selected:hover { + background-color: #f5f5f5; + background-repeat: no-repeat; + background-position: 50% 17px; + color: #62666b; + border-left: 5px solid #138CDD; +} + +#interfaceControlFrameHeaderContainer { + float: left; + overflow: visible; + width: 55px; + margin-left: -55px; + margin-top: 20px; +} + +#interfaceControlFrameHeader { + position: relative; + list-style: none; + font-size: 8px; + z-index: 50; + font-family: 'Trebuchet MS'; + font-weight: bold; + letter-spacing: 1px; +} + +#interfaceControlFrameContainer { + float: right; + background-color: #f5f5f5; + overflow: hidden; + width: 100%; +} + +#interfaceControlFrameLogoContainer { + background-color: White; + padding: 20px 10px 10px 10px; + overflow: hidden; +} + +#interfaceControlFrameLogoImageContainer { + text-align: center; +} + +#interfaceControlFrameLogoCaptionContainer { + text-align: center; + margin: 5px 10px 0px 10px; + font-size: 12px; + color: #4a4a4a; +} + +#logoImage { + width: 100%; +} + +.emptyStateContainer { + text-align: center; + padding: 0px 10px; + margin-top: 32px +} + +.emptyStateTitle { + margin: 0px 0px 9px 0px; + font-weight: bold; +} + +.emptyStateContent { + line-height: 16px; +} + +.dottedDivider { + height: 2px; + margin: 15px 0px 15px 0px; + background: url('../images/divider.png') no-repeat center center; + background: url('../images/divider.svg') no-repeat center center, linear-gradient(transparent,transparent); +} + +.nondottedDivider { + height: 2px; + margin: 9px 0px 9px 0px; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/css/images/images.html b/codes/agent/game-docker/api/document/resources/css/images/images.html new file mode 100644 index 0000000..335d9c9 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/css/images/images.html @@ -0,0 +1,25 @@ + + + + + + +

    + + + + + + + + + + + + + + + +

    + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/css/images/newwindow.gif b/codes/agent/game-docker/api/document/resources/css/images/newwindow.gif new file mode 100644 index 0000000..7b14cb0 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/newwindow.gif differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/note.gif b/codes/agent/game-docker/api/document/resources/css/images/note.gif new file mode 100644 index 0000000..a8c2762 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/note.gif differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-bg_flat_0_aaaaaa_40x100.png b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..5b5dab2 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_55_fbf9ee_1x400.png b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000..ad3d634 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_65_ffffff_1x400.png b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000..42ccba2 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_dadada_1x400.png b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000..5a46b47 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_e6e6e6_1x400.png b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000..86c2baa Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_ffffff_1x400.png b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_ffffff_1x400.png new file mode 100644 index 0000000..e65ca12 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_glass_75_ffffff_1x400.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000..7c9fa6c Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png new file mode 100644 index 0000000..0e05810 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-icons_222222_256x240.png b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000..b273ff1 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_222222_256x240.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-icons_2e83ff_256x240.png b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..09d1cdc Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_2e83ff_256x240.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-icons_454545_256x240.png b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000..59bd45b Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_454545_256x240.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-icons_888888_256x240.png b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000..6d02426 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_888888_256x240.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/images/ui-icons_cd0a0a_256x240.png b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/css/images/ui-icons_cd0a0a_256x240.png differ diff --git a/codes/agent/game-docker/api/document/resources/css/jquery-ui-themes.css b/codes/agent/game-docker/api/document/resources/css/jquery-ui-themes.css new file mode 100644 index 0000000..8afb633 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/css/jquery-ui-themes.css @@ -0,0 +1,412 @@ +/* +* jQuery UI CSS Framework +* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +*/ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute; left: -99999999px; } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }/* Accordion +----------------------------------*/ +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; } +.ui-accordion .ui-accordion-content-active { display: block; } + +/* Datepicker +----------------------------------*/ +.ui-datepicker { width: 17em; padding: .2em .2em 0; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; } +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +} + +/* Dialog +----------------------------------*/ +.ui-dialog { position: relative; padding: 0px; width: 300px;} +.ui-dialog .ui-dialog-titlebar { padding: .3em .3em .1em .8em; font-size:.7em; position: relative; background-image: none; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; + font-family: 'Trebuchet MS'; + font-size: 15px; + font-weight: normal; + color: #ffffff;} +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .1em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { /*padding: 0;*/ } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em .2em; background: none; overflow: auto; zoom: 1; background-color: #ffffff;} +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; background-color: #8f949a; border-bottom: 1px solid #d9d9d9;} + +/* Progressbar +----------------------------------*/ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable +----------------------------------*/ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider +----------------------------------*/ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs +----------------------------------*/ +.ui-tabs { padding: .2em; zoom: 1; } +.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; } +.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* +* jQuery UI CSS Framework +* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) +* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. +* To view and modify this theme, visit http://jqueryui.com/themeroller/ +*/ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_glass_75_ffffff_1x400.png)/*{bgImgUrlContent}*/ 0/*{bgContentXPos}*/ 0/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } +.ui-widget-content a { /*color: #222222*//*{fcContent}*/; } +.ui-widget-header { border: none /*1px solid #aaaaaa*//*{borderColorHeader}*/; background: #D3D3D3/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 0/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #000000/*{fcHeader}*/; font-weight: bold; } +.ui-widget-header a { color: #222222/*{fcHeader}*/; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default { border: none /*1px solid #d3d3d3*//*{borderColorDefault}*/; /*background: #e6e6e6*//*{bgColorDefault}*/ /*url(images/ui-bg_glass_75_e6e6e6_1x400.png)*//*{bgImgUrlDefault}*/ /*0*//*{bgDefaultXPos}*/ /*50%*//*{bgDefaultYPos}*/ /*repeat-x*//*{bgDefaultRepeat}*/ font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; outline: none; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; outline: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: none /*1px solid #999999*//*{borderColorHover}*/; /*background: #dadada*//*{bgColorHover}*/ /*url(images/ui-bg_glass_75_dadada_1x400.png)*//*{bgImgUrlHover}*/ /*0*//*{bgHoverXPos}*/ /*50%*//*{bgHoverYPos}*/ /*repeat-x*//*{bgHoverRepeat}*/ font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; outline: none; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; outline: none; } +.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 0/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; outline: none; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; outline: none; text-decoration: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 0/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } +.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_inset-soft_95_fef1ec_1x100.png)/*{bgImgUrlError}*/ 0/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } +.ui-state-error a, .ui-widget-content .ui-state-error a { color: #363636/*{fcError}*/; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHeader}*/; } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHover}*/; } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; } +.ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; } +.ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; } +.ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; } +.ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; } +.ui-corner-right { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; } +.ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; } +.ui-corner-all { -moz-border-radius: 0px/*{cornerRadius}*/; -webkit-border-radius: 0px/*{cornerRadius}*/; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ none/*{bgImgUrlOverlay}*/ 0/*{bgOverlayXPos}*/ 0/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; } +.ui-widget-shadow { margin: -4px/*{offsetTopShadow}*/ 0 0 -4px/*{offsetLeftShadow}*/; padding: 4px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ none/*{bgImgUrlShadow}*/ 0/*{bgShadowXPos}*/ 0/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .35;filter:Alpha(Opacity=35)/*{opacityShadow}*/; -moz-border-radius: 4px/*{cornerRadiusShadow}*/; -webkit-border-radius: 4px/*{cornerRadiusShadow}*/; } \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/css/reset.css b/codes/agent/game-docker/api/document/resources/css/reset.css new file mode 100644 index 0000000..01a4271 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/css/reset.css @@ -0,0 +1,24 @@ +html,body,div,span, +applet,object,iframe, +h1,h2,h3,h4,h5,h6,p,blockquote,pre, +a,abbr,acronym,address,big,cite,code, +del,dfn,em,font,img,ins,kbd,q,s,samp, +small,strike,strong,sub,sup,tt,var, +dd,dl,dt,li,ol,ul, +fieldset,form,label,legend, +table,caption,tbody,tfoot,thead,tr,th,td { + margin: 0; + padding: 0; + border: 0; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +ol,ul { + list-style: none; +} +q:before,q:after, +blockquote:before,blockquote:after { + content: ""; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/expand.html b/codes/agent/game-docker/api/document/resources/expand.html new file mode 100644 index 0000000..21df392 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/expand.html @@ -0,0 +1,60 @@ + + + + + + + + + + +
    +
    +
    +
    + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/images/259_close_12rollover1.png b/codes/agent/game-docker/api/document/resources/images/259_close_12rollover1.png new file mode 100644 index 0000000..a19bf8a Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/259_close_12rollover1.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/259_close_12rollover2.png b/codes/agent/game-docker/api/document/resources/images/259_close_12rollover2.png new file mode 100644 index 0000000..2f57c5d Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/259_close_12rollover2.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/260_collapse_12rollover1.png b/codes/agent/game-docker/api/document/resources/images/260_collapse_12rollover1.png new file mode 100644 index 0000000..426621f Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/260_collapse_12rollover1.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/260_collapse_12rollover2.png b/codes/agent/game-docker/api/document/resources/images/260_collapse_12rollover2.png new file mode 100644 index 0000000..8450723 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/260_collapse_12rollover2.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/261_expand_12rollover1.png b/codes/agent/game-docker/api/document/resources/images/261_expand_12rollover1.png new file mode 100644 index 0000000..5c7ec92 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/261_expand_12rollover1.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/261_expand_12rollover2.png b/codes/agent/game-docker/api/document/resources/images/261_expand_12rollover2.png new file mode 100644 index 0000000..81ce138 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/261_expand_12rollover2.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/close.png b/codes/agent/game-docker/api/document/resources/images/close.png new file mode 100644 index 0000000..b34c453 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/close.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/close.svg b/codes/agent/game-docker/api/document/resources/images/close.svg new file mode 100644 index 0000000..3c3231b --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/images/close.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/close_hover.png b/codes/agent/game-docker/api/document/resources/images/close_hover.png new file mode 100644 index 0000000..dcbd3b6 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/close_hover.png differ 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 new file mode 100644 index 0000000..c6aac2a --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/images/close_hover.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/divider.png b/codes/agent/game-docker/api/document/resources/images/divider.png new file mode 100644 index 0000000..f7b738a Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/divider.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/divider.svg b/codes/agent/game-docker/api/document/resources/images/divider.svg new file mode 100644 index 0000000..767941e --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/images/divider.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/expand.png b/codes/agent/game-docker/api/document/resources/images/expand.png new file mode 100644 index 0000000..31f8f45 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/expand.png differ diff --git a/codes/agent/game-docker/api/document/resources/images/expand.svg b/codes/agent/game-docker/api/document/resources/images/expand.svg new file mode 100644 index 0000000..a6a8692 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/images/expand.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/expand_hover.png b/codes/agent/game-docker/api/document/resources/images/expand_hover.png new file mode 100644 index 0000000..4fdca83 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/expand_hover.png differ 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 new file mode 100644 index 0000000..958b481 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/images/expand_hover.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/codes/agent/game-docker/api/document/resources/images/images.html b/codes/agent/game-docker/api/document/resources/images/images.html new file mode 100644 index 0000000..6b26a37 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/images/images.html @@ -0,0 +1,17 @@ + + + + + + +

    + + + + + + + +

    + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/images/transparent.gif b/codes/agent/game-docker/api/document/resources/images/transparent.gif new file mode 100644 index 0000000..35d42e8 Binary files /dev/null and b/codes/agent/game-docker/api/document/resources/images/transparent.gif differ diff --git a/codes/agent/game-docker/api/document/resources/reload.html b/codes/agent/game-docker/api/document/resources/reload.html new file mode 100644 index 0000000..5f99f0b --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/reload.html @@ -0,0 +1,24 @@ + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/action.js b/codes/agent/game-docker/api/document/resources/scripts/axure/action.js new file mode 100644 index 0000000..59e2592 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/action.js @@ -0,0 +1,1982 @@ +$axure.internal(function($ax) { + var _actionHandlers = {}; + var _action = $ax.action = {}; + + var queueTypes = _action.queueTypes = { + none: 0, + move: 1, + setState: 2, + fade: 3, + resize: 4, + rotate: 5 + }; + + var animationQueue = {}; + + // using array as the key doesn't play nice + var nextAnimationId = 1; + var animationsToCount = {}; + var actionToActionGroups = {}; + var getAnimation = function(id, type) { + return animationQueue[id] && animationQueue[id][type] && animationQueue[id][type][0]; + }; + + var _addAnimation = _action.addAnimation = function (id, type, func, suppressFire) { + + var wasEmpty = !getAnimation(id, type); + // Add the func to the queue. Create the queue if necessary. + var idQueue = animationQueue[id]; + if(!idQueue) animationQueue[id] = idQueue = {}; + + var queue = idQueue[type]; + if(!queue) idQueue[type] = queue = []; + + queue[queue.length] = func; + // If it was empty, there isn't a callback waiting to be called on this. You have to fire it manually. + // If this is waiting on something, suppress it, and it will fire when it's ready + if(wasEmpty && !suppressFire) func(); + }; + + var _addAnimations = function (animations) { + if(animations.length == 1) { + _addAnimation(animations[0].id, animations[0].type, animations[0].func); + return; + } + var allReady = true; + var readyCount = 0; + for(var i = 0; i < animations.length; i++) { + var animation = animations[i]; + var thisReady = !getAnimation(animation.id, animation.type); + allReady = allReady && thisReady; + if (thisReady) readyCount++; + else { + var typeToGroups = actionToActionGroups[animation.id]; + if (!typeToGroups) actionToActionGroups[animation.id] = typeToGroups = {}; + + var groups = typeToGroups[animation.type]; + if (!groups) typeToGroups[animation.type] = groups = []; + + groups[groups.length] = animations; + } + } + + for(i = 0; i < animations.length; i++) { + animation = animations[i]; + _addAnimation(animation.id, animation.type, animation.func, true); + } + + if (allReady) { + for (i = 0; i < animations.length; i++) animations[i].func(); + } else { + animations.id = nextAnimationId++; + animationsToCount[animations.id] = readyCount; + } + } + + var _fireAnimationFromQueue = _action.fireAnimationFromQueue = function (id, type) { + // Remove the function that was just fired + if (animationQueue[id] && animationQueue[id][type]) $ax.splice(animationQueue[id][type], 0, 1); + + // Fire the next func if there is one + var func = getAnimation(id, type); + if(func && !_checkFireActionGroup(id, type, func)) func(); + }; + + var _checkFireActionGroup = function(id, type, func) { + var group = actionToActionGroups[id]; + group = group && group[type]; + if (!group || group.length == 0) return false; + + var animations = group[0]; + var found = false; + for (var i = 0; i < animations.length; i++) { + var animation = animations[i]; + if (animation.id == id && animation.type == type) { + found = func == animation.func; + break; + } + } + + // if found then update this action group, otherwise, keep waiting for right action to fire + if(!found) return false; + $ax.splice(group, 0, 1); + var count = animationsToCount[animations.id] + 1; + if(count != animations.length) { + animationsToCount[animations.id] = count; + return true; + } + delete animationsToCount[animations.id]; + + // Funcs is needed because an earlier func can try to cascade right away (when no animation for example) and will kill this func and move on to the + // next one (which may not even exist). If we get all funcs before calling any, then we know they are all the func we want. + var funcs = []; + for(i = 0; i < animations.length; i++) { + animation = animations[i]; + funcs.push(getAnimation(animation.id, animation.type)); + } + for(i = 0; i < funcs.length; i++) { + funcs[i](); + } + + return true; + } + + var _refreshing = []; + _action.refreshStart = function(repeaterId) { _refreshing.push(repeaterId); }; + _action.refreshEnd = function() { _refreshing.pop(); }; + + // TODO: [ben] Consider moving this to repeater.js + var _repeatersToRefresh = _action.repeatersToRefresh = []; + var _ignoreAction = function(repeaterId) { + for(var i = 0; i < _refreshing.length; i++) if(_refreshing[i] == repeaterId) return true; + return false; + }; + + var _addRefresh = function(repeaterId) { + if(_repeatersToRefresh.indexOf(repeaterId) == -1) _repeatersToRefresh.push(repeaterId); + }; + + var _getIdToResizeMoveState = function(eventInfo) { + if(!eventInfo.idToResizeMoveState) eventInfo.idToResizeMoveState = {}; + return eventInfo.idToResizeMoveState; + } + + var _queueResizeMove = function (id, type, eventInfo, actionInfo) { + if (type == queueTypes.resize || type == queueTypes.rotate) $ax.public.fn.convertToSingleImage($jobj(id)); + + var idToResizeMoveState = _getIdToResizeMoveState(eventInfo); + if(!idToResizeMoveState[id]) { + idToResizeMoveState[id] = {}; + idToResizeMoveState[id][queueTypes.move] = { queue: [], used: 0 }; + idToResizeMoveState[id][queueTypes.resize] = { queue: [], used: 0 }; + idToResizeMoveState[id][queueTypes.rotate] = { queue: [], used: 0 }; + } + var state = idToResizeMoveState[id]; + + // If this is not a type being queued (no action of it's type waiting already) then if it is an instant, fire right away. + var myOptions = type == queueTypes.resize ? actionInfo : actionInfo.options; + if(!state[type].queue.length && (!myOptions.easing || myOptions.easing == 'none' || !myOptions.duration)) { + var func = type == queueTypes.resize ? _addResize : type == queueTypes.rotate ? _addRotate : _addMove; + func(id, eventInfo, actionInfo, { easing: 'none', duration: 0, stop: { instant: true } }); + return; + } + + // Check other 2 types to see if either is empty, if so, we can't do anything, so just queue it up + var otherType1 = type == queueTypes.move ? queueTypes.resize : queueTypes.move; + var otherType2 = type == queueTypes.rotate ? queueTypes.resize : queueTypes.rotate; + if (!state[otherType1].queue.length || !state[otherType2].queue.length) { + state[type].queue.push({ eventInfo: eventInfo, actionInfo: actionInfo }); + } else { + var duration = myOptions.duration; + var used1 = state[otherType1].used; + var used2 = state[otherType2].used; + + while(state[otherType1].queue.length && state[otherType2].queue.length && duration != 0) { + var other1 = state[otherType1].queue[0]; + var otherOptions1 = otherType1 == queueTypes.resize ? other1.actionInfo : other1.actionInfo.options; + // If queue up action is a non animation, then don't combo it, just queue it and move on + if(!otherOptions1.easing || otherOptions1.easing == 'none' || !otherOptions1.duration) { + func = otherType1 == queueTypes.resize ? _addResize : otherType1 == queueTypes.rotate ? _addRotate : _addMove; + func(id, eventInfo, actionInfo, { easing: 'none', duration: 0, stop: { instant: true } }); + continue; + } + var other2 = state[otherType2].queue[0]; + var otherOptions2 = otherType2 == queueTypes.resize ? other2.actionInfo : other2.actionInfo.options; + // If queue up action is a non animation, then don't combo it, just queue it and move on + if(!otherOptions2.easing || otherOptions2.easing == 'none' || !otherOptions2.duration) { + func = otherType2 == queueTypes.resize ? _addResize : otherType2 == queueTypes.rotate ? _addRotate : _addMove; + func(id, eventInfo, actionInfo, { easing: 'none', duration: 0, stop: { instant: true } }); + continue; + } + + // Other duration is what is left over. When in queue it may be partly finished already + var otherDuration1 = otherOptions1.duration - used1; + var otherDuration2 = otherOptions2.duration - used2; + + var resizeInfo = type == queueTypes.resize ? actionInfo : otherType1 == queueTypes.resize ? other1.actionInfo : other2.actionInfo; + var rotateInfo = type == queueTypes.rotate ? actionInfo : otherType1 == queueTypes.rotate ? other1.actionInfo : other2.actionInfo; + var moveInfo = type == queueTypes.move ? actionInfo : otherType1 == queueTypes.move ? other1.actionInfo : other2.actionInfo; + var options = { easing: moveInfo.options.easing, duration: Math.min(duration, otherDuration1, otherDuration2) }; + // Start for self is whole duration - duration left, end is start plus duration of combo to be queued, length is duration + var stop = { start: myOptions.duration - duration, len: myOptions.duration }; + stop.end = stop.start + options.duration; + // Start for other is used (will be 0 after 1st round), end is start plus length is duration of combo to be queued, length is other duration + var otherStop1 = { start: used1, end: options.duration + used1, len: otherOptions1.duration }; + var otherStop2 = { start: used2, end: options.duration + used2, len: otherOptions2.duration }; + options.stop = type == queueTypes.resize ? stop : otherType1 == queueTypes.resize ? otherStop1 : otherStop2; + options.moveStop = type == queueTypes.move ? stop : otherType1 == queueTypes.move ? otherStop1 : otherStop2; + options.rotateStop = type == queueTypes.rotate ? stop : otherType1 == queueTypes.rotate ? otherStop1 : otherStop2; + + _addResize(id, eventInfo, resizeInfo, options, moveInfo, rotateInfo); + + // Update duration for this animation + duration -= options.duration; + // For others update used and remove from queue if necessary + if(otherDuration1 == options.duration) { + $ax.splice(state[otherType1].queue, 0, 1); + used1 = 0; + } else used1 += options.duration; + + if(otherDuration2 == options.duration) { + $ax.splice(state[otherType2].queue, 0, 1); + used2 = 0; + } else used2 += options.duration; + } + + // Start queue for new type if necessary + if(duration) { + state[type].queue.push({ eventInfo: eventInfo, actionInfo: actionInfo }); + state[type].used = myOptions.duration - duration; + } + + // Update used for others + state[otherType1].used = used1; + state[otherType2].used = used2; + } + }; + + _action.flushAllResizeMoveActions = function (eventInfo) { + var idToResizeMoveState = _getIdToResizeMoveState(eventInfo); + for(var id in idToResizeMoveState) _flushResizeMoveActions(id, idToResizeMoveState); + }; + + var _flushResizeMoveActions = function(id, idToResizeMoveState) { + var state = idToResizeMoveState[id]; + var move = state[queueTypes.move]; + var moveInfo = move.queue[0]; + var resize = state[queueTypes.resize]; + var resizeInfo = resize.queue[0]; + var rotate = state[queueTypes.rotate]; + var rotateInfo = rotate.queue[0]; + while (moveInfo || resizeInfo || rotateInfo) { + var eventInfo = moveInfo ? moveInfo.eventInfo : resizeInfo ? resizeInfo.eventInfo : rotateInfo.eventInfo; + moveInfo = moveInfo && moveInfo.actionInfo; + resizeInfo = resizeInfo && resizeInfo.actionInfo; + rotateInfo = rotateInfo && rotateInfo.actionInfo; + + // Resize is used by default, then rotate + if(resizeInfo) { + // Check for instant resize + if(!resizeInfo.duration || resizeInfo.easing == 'none') { + _addResize(id, resize.queue[0].eventInfo, resizeInfo, { easing: 'none', duration: 0, stop: { instant: true } }); + _updateResizeMoveUsed(id, queueTypes.resize, 0, idToResizeMoveState); + resizeInfo = resize.queue[0]; + continue; + } + + var duration = resizeInfo.duration - resize.used; + if(moveInfo) duration = Math.min(duration, moveInfo.options.duration - move.used); + if(rotateInfo) duration = Math.min(duration, rotateInfo.options.duration - rotate.used); + + var baseOptions = moveInfo ? moveInfo.options : resizeInfo; + var options = { easing: baseOptions.easing, duration: duration }; + + options.stop = { start: resize.used, end: resize.used + duration, len: resizeInfo.duration }; + if(moveInfo) options.moveStop = { start: move.used, end: move.used + duration, len: moveInfo.options.duration }; + if(rotateInfo) options.rotateStop = { start: rotate.used, end: rotate.used + duration, len: rotateInfo.options.duration }; + + _addResize(id, eventInfo, resizeInfo, options, moveInfo, rotateInfo); + + _updateResizeMoveUsed(id, queueTypes.resize, duration, idToResizeMoveState); + resizeInfo = resize.queue[0]; + if(rotateInfo) { + _updateResizeMoveUsed(id, queueTypes.rotate, duration, idToResizeMoveState); + rotateInfo = rotate.queue[0]; + } + if(moveInfo) { + _updateResizeMoveUsed(id, queueTypes.move, duration, idToResizeMoveState); + moveInfo = move.queue[0]; + } + } else if (rotateInfo) { + // Check for instant rotate + if(!rotateInfo.options.duration || rotateInfo.options.easing == 'none') { + _addRotate(id, rotate.queue[0].eventInfo, rotateInfo, { easing: 'none', duration: 0, stop: { instant: true } }); + _updateResizeMoveUsed(id, queueTypes.rotate, 0, idToResizeMoveState); + rotateInfo = rotate.queue[0]; + continue; + } + + duration = rotateInfo.options.duration - rotate.used; + if(moveInfo) duration = Math.min(duration, moveInfo.options.duration - move.used); + + baseOptions = moveInfo ? moveInfo.options : rotateInfo.options; + options = { easing: baseOptions.easing, duration: duration }; + + options.stop = { start: rotate.used, end: rotate.used + duration, len: rotateInfo.options.duration }; + if(moveInfo) options.moveStop = { start: move.used, end: move.used + duration, len: moveInfo.options.duration }; + + _addRotate(id, eventInfo, rotateInfo, options, moveInfo); + + _updateResizeMoveUsed(id, queueTypes.rotate, duration, idToResizeMoveState); + rotateInfo = rotate.queue[0]; + if(moveInfo) { + _updateResizeMoveUsed(id, queueTypes.move, duration, idToResizeMoveState); + moveInfo = move.queue[0]; + } + } else { + if(!moveInfo.options.duration || moveInfo.options.easing == 'none') { + _addMove(id, eventInfo, moveInfo, { easing: 'none', duration: 0, stop: { instant: true } }); + _updateResizeMoveUsed(id, queueTypes.move, 0, idToResizeMoveState); + moveInfo = move.queue[0]; + continue; + } + + duration = moveInfo.options.duration - move.used; + options = { easing: moveInfo.options.easing, duration: duration }; + options.stop = { start: move.used, end: moveInfo.options.duration, len: moveInfo.options.duration }; + _addMove(id, eventInfo, moveInfo, options); + + _updateResizeMoveUsed(id, queueTypes.move, duration, idToResizeMoveState); + moveInfo = move.queue[0]; + } + } + }; + + var _updateResizeMoveUsed = function(id, type, duration, idToResizeMoveState) { + var state = idToResizeMoveState[id][type]; + state.used += duration; + var options = state.queue[0].actionInfo; + if(options.options) options = options.options; + var optionDur = options.duration || 0; + if(optionDur <= state.used) { + $ax.splice(state.queue, 0, 1); + state.used = 0; + } + } + + var _dispatchAction = $ax.action.dispatchAction = function(eventInfo, actions, currentIndex) { + currentIndex = currentIndex || 0; + //If no actions, you can bubble + if(currentIndex >= actions.length) return; + //actions are responsible for doing their own dispatching + _actionHandlers[actions[currentIndex].action](eventInfo, actions, currentIndex); + }; + + _actionHandlers.wait = function(eventInfo, actions, index) { + var action = actions[index]; + var infoCopy = $ax.eventCopy(eventInfo); + window.setTimeout(function() { + infoCopy.now = new Date(); + infoCopy.idToResizeMoveState = undefined; + _dispatchAction(infoCopy, actions, index + 1); + _action.flushAllResizeMoveActions(infoCopy); + }, action.waitTime); + }; + + _actionHandlers.expr = function(eventInfo, actions, index) { + var action = actions[index]; + + $ax.expr.evaluateExpr(action.expr, eventInfo); //this should be a block + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.setFunction = _actionHandlers.expr; + + _actionHandlers.linkWindow = function(eventInfo, actions, index) { + linkActionHelper(eventInfo, actions, index); + }; + + _actionHandlers.closeCurrent = function(eventInfo, actions, index) { + $ax.closeWindow(); + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.linkFrame = function(eventInfo, actions, index) { + linkActionHelper(eventInfo, actions, index); + }; + + _actionHandlers.setAdaptiveView = function(eventInfo, actions, index) { + var action = actions[index]; + var view = action.setAdaptiveViewTo; + + if(view) $ax.adaptive.setAdaptiveView(view); + }; + + var linkActionHelper = function(eventInfo, actions, index) { + var action = actions[index]; + eventInfo.link = true; + + if(action.linkType != 'frame') { + var includeVars = _includeVars(action.target, eventInfo); + if(action.target.targetType == "reloadPage") { + $ax.reload(action.target.includeVariables); + } else if(action.target.targetType == "backUrl") { + $ax.back(); + } + + var url = action.target.url; + if(!url && action.target.urlLiteral) { + url = $ax.expr.evaluateExpr(action.target.urlLiteral, eventInfo, true); + } + + if(url) { + if(action.linkType == "popup") { + $ax.navigate({ + url: url, + target: action.linkType, + includeVariables: includeVars, + popupOptions: action.popup + }); + } else { + $ax.navigate({ + url: url, + target: action.linkType, + includeVariables: includeVars + }); + } + } + } else linkFrame(eventInfo, action); + eventInfo.link = false; + + _dispatchAction(eventInfo, actions, index + 1); + }; + + var _includeVars = function(target, eventInfo) { + if(target.includeVariables) return true; + // If it is a url literal, that is a string literal, that has only 1 sto, that is an item that is a page, include vars. + if(target.urlLiteral) { + var literal = target.urlLiteral; + var sto = literal.stos[0]; + if(literal.exprType == 'stringLiteral' && literal.value.indexOf('[[') == 0 && literal.value.indexOf(']]' == literal.value.length - 2) && literal.stos.length == 1 && sto.sto == 'item' && eventInfo.item) { + var data = $ax.repeater.getData(eventInfo, eventInfo.item.repeater.elementId, eventInfo.item.index, sto.name, 'data'); + if (data && $ax.public.fn.IsPage(data.type)) return true; + } + } + return false; + }; + + var linkFrame = function(eventInfo, action) { + for(var i = 0; i < action.framesToTargets.length; i++) { + var framePath = action.framesToTargets[i].framePath; + var target = action.framesToTargets[i].target; + var includeVars = _includeVars(target, eventInfo); + + var url = target.url; + if(!url && target.urlLiteral) { + url = $ax.expr.evaluateExpr(target.urlLiteral, eventInfo, true); + } + + var id = $ax.getElementIdsFromPath(framePath, eventInfo)[0]; + if(id) $ax('#' + $ax.INPUT(id)).openLink(url, includeVars); + } + }; + + var _repeatPanelMap = {}; + + _actionHandlers.setPanelState = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.panelsToStates.length; i++) { + var panelToState = action.panelsToStates[i]; + var stateInfo = panelToState.stateInfo; + var elementIds = $ax.getElementIdsFromPath(panelToState.panelPath, eventInfo); + + for(var j = 0; j < elementIds.length; j++) { + var elementId = elementIds[j]; + // Need new scope for elementId and info + (function(elementId, stateInfo) { + _addAnimation(elementId, queueTypes.setState, function() { + var stateNumber = stateInfo.stateNumber; + if(stateInfo.setStateType == "value") { + var oldTarget = eventInfo.targetElement; + eventInfo.targetElement = elementId; + var stateName = $ax.expr.evaluateExpr(stateInfo.stateValue, eventInfo); + eventInfo.targetElement = oldTarget; + + // Try for state name first + var states = $ax.getObjectFromElementId(elementId).diagrams; + var stateNameFound = false; + for(var k = 0; k < states.length; k++) { + if(states[k].label == stateName) { + stateNumber = k + 1; + stateNameFound = true; + } + } + + // Now check for index + if(!stateNameFound) { + stateNumber = Number(stateName); + var panelCount = $('#' + elementId).children().length; + + // Make sure number is not NaN, is in range, and is a whole number. + // Wasn't a state name or number, so return + if(isNaN(stateNumber) || stateNumber <= 0 || stateNumber > panelCount || Math.round(stateNumber) != stateNumber) return _fireAnimationFromQueue(elementId, queueTypes.setState); + } + } else if(stateInfo.setStateType == 'next' || stateInfo.setStateType == 'previous') { + var info = $ax.deepCopy(stateInfo); + var repeat = info.repeat; + + // Only map it, if repeat exists. + if(typeof (repeat) == 'number') _repeatPanelMap[elementId] = info; + return _progessPanelState(elementId, info, info.repeatSkipFirst); + } + delete _repeatPanelMap[elementId]; + + // If setting to current (to stop repeat) break here + if(stateInfo.setStateType == 'current') return _fireAnimationFromQueue(elementId, queueTypes.setState); + + $ax('#' + elementId).SetPanelState(stateNumber, stateInfo.options, stateInfo.showWhenSet); + }); + })(elementId, stateInfo); + } + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + var _progessPanelState = function(id, info, skipFirst) { + var direction = info.setStateType; + var loop = info.loop; + var repeat = info.repeat; + var options = info.options; + + var hasRepeat = typeof (repeat) == 'number'; + var currentStateId = $ax.visibility.GetPanelState(id); + var stateNumber = ''; + if(currentStateId != '') { + currentStateId = $ax.repeater.getScriptIdFromElementId(currentStateId); + var currentStateNumber = Number(currentStateId.substr(currentStateId.indexOf('state') + 5)); + if(direction == "next") { + stateNumber = currentStateNumber + 2; + + if(stateNumber > $ax.visibility.GetPanelStateCount(id)) { + if(loop) stateNumber = 1; + else { + delete _repeatPanelMap[id]; + return _fireAnimationFromQueue(id, queueTypes.setState); + } + } + } else if(direction == "previous") { + stateNumber = currentStateNumber; + if(stateNumber <= 0) { + if(loop) stateNumber = $ax.visibility.GetPanelStateCount(id); + else { + delete _repeatPanelMap[id]; + return _fireAnimationFromQueue(id, queueTypes.setState); + } + } + } + + if(hasRepeat && _repeatPanelMap[id] != info) return _fireAnimationFromQueue(id, queueTypes.setState); + + if (!skipFirst) $ax('#' + id).SetPanelState(stateNumber, options, info.showWhenSet); + else _fireAnimationFromQueue(id, queueTypes.setState); + + if(hasRepeat) { + var animate = options && options.animateIn; + if(animate && animate.easing && animate.easing != 'none' && animate.duration > repeat) repeat = animate.duration; + animate = options && options.animateOut; + if(animate && animate.easing && animate.easing != 'none' && animate.duration > repeat) repeat = animate.duration; + + window.setTimeout(function() { + // Either new repeat, or no repeat anymore. + if(_repeatPanelMap[id] != info) return; + _addAnimation(id, queueTypes.setState, function() { + _progessPanelState(id, info, false); + }); + }, repeat); + } else delete _repeatPanelMap[id]; + } + }; + + _actionHandlers.fadeWidget = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.objectsToFades.length; i++) { + var fadeInfo = action.objectsToFades[i].fadeInfo; + var elementIds = $ax.getElementIdsFromPath(action.objectsToFades[i].objectPath, eventInfo); + + for(var j = 0; j < elementIds.length; j++) { + var elementId = elementIds[j]; + // Need new scope for elementId and info + (function(elementId, fadeInfo) { + _addAnimation(elementId, queueTypes.fade, function() { + if(fadeInfo.fadeType == "hide") { + $ax('#' + elementId).hide(fadeInfo.options); + } else if(fadeInfo.fadeType == "show") { + $ax('#' + elementId).show(fadeInfo.options, eventInfo); + } else if(fadeInfo.fadeType == "toggle") { + $ax('#' + elementId).toggleVisibility(fadeInfo.options); + } + }); + })(elementId, fadeInfo); + } + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.setOpacity = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.objectsToSetOpacity.length; i++) { + var opacityInfo = action.objectsToSetOpacity[i].opacityInfo; + var elementIds = $ax.getElementIdsFromPath(action.objectsToSetOpacity[i].objectPath, eventInfo); + + for(var j = 0; j < elementIds.length; j++) { + var elementId = elementIds[j]; + + (function(elementId, opacityInfo) { + _addAnimation(elementId, queueTypes.fade, function () { + var oldTarget = eventInfo.targetElement; + eventInfo.targetElement = elementId; + var opacity = $ax.expr.evaluateExpr(opacityInfo.opacity, eventInfo); + eventInfo.targetElement = oldTarget; + opacity = Math.min(100, Math.max(0, opacity)); + $ax('#' + elementId).setOpacity(opacity/100, opacityInfo.easing, opacityInfo.duration); + }) + })(elementId, opacityInfo); + } + } + + _dispatchAction(eventInfo, actions, index + 1); + } + + _actionHandlers.moveWidget = function(eventInfo, actions, index) { + var action = actions[index]; + for(var i = 0; i < action.objectsToMoves.length; i++) { + var moveInfo = action.objectsToMoves[i].moveInfo; + var elementIds = $ax.getElementIdsFromPath(action.objectsToMoves[i].objectPath, eventInfo); + + for(var j = 0; j < elementIds.length; j++) { + var elementId = elementIds[j]; + _queueResizeMove(elementId, queueTypes.move, eventInfo, moveInfo); + //_addMove(eventInfo, elementId, moveInfo, eventInfo.dragInfo); + } + } + _dispatchAction(eventInfo, actions, index + 1); + }; + + var _compoundChildrenShallow = function (id) { + var deep = []; + var children = $ax('#' + id).getChildren()[0].children; + var piecePrefix = id + 'p'; + + for (var i = 0; i < children.length; i++) { + if(children[i].substring(0, id.length + 1) == piecePrefix) { + deep.push(children[i]); + } + } + return deep; + }; + + var _addMove = function (elementId, eventInfo, moveInfo, optionsOverride) { + var eventInfoCopy = $ax.eventCopy(eventInfo); + var idToResizeMoveState = _getIdToResizeMoveState(eventInfoCopy); + eventInfoCopy.targetElement = elementId; + + var options = $ax.deepCopy(moveInfo.options); + options.easing = optionsOverride.easing; + options.duration = optionsOverride.duration; + options.dragInfo = eventInfo.dragInfo; + + if($ax.public.fn.IsLayer($obj(elementId).type)) { + var childrenIds = $ax.public.fn.getLayerChildrenDeep(elementId, true); + if(childrenIds.length == 0) return; + + var animations = []; + + // Get move delta once, then apply to all children + animations.push({ + id: elementId, + type: queueTypes.move, + func: function() { + var layerInfo = $ax.public.fn.getWidgetBoundingRect(elementId); + var deltaLoc = _getMoveLoc(elementId, moveInfo, eventInfoCopy, optionsOverride.stop, idToResizeMoveState[elementId], options, layerInfo); +// $ax.event.raiseSyntheticEvent(elementId, "onMove"); + $ax.visibility.pushContainer(elementId, false); + + options.onComplete = function () { + _fireAnimationFromQueue(elementId, queueTypes.move); + $ax.visibility.popContainer(elementId, false); + }; + + $ax('#' + elementId).moveBy(deltaLoc.x, deltaLoc.y, options); + } + }); + + //for(var i = 0; i < childrenIds.length; i++) { + // (function(childId) { + // animations.push({ + // id: childId, + // type: queueTypes.move, + // func: function () { + // // Nop, while trying to move as container + // //$ax.event.raiseSyntheticEvent(childId, "onMove"); + // //if($ax.public.fn.IsLayer($obj(childId).type)) _fireAnimationFromQueue(childId, queueTypes.move); + // //else $ax('#' + childId).moveBy(deltaLoc.x, deltaLoc.y, moveInfo.options); + // } + // }); + // })(childrenIds[i]); + //} + _addAnimations(animations); + } else { + _addAnimation(elementId, queueTypes.move, function() { + var loc = _getMoveLoc(elementId, moveInfo, eventInfoCopy, optionsOverride.stop, idToResizeMoveState[elementId], options); + +// $ax.event.raiseSyntheticEvent(elementId, "onMove"); + if(loc.moveTo) $ax('#' + elementId).moveTo(loc.x, loc.y, options); + else $ax('#' + elementId).moveBy(loc.x, loc.y, options); + }); + } + }; + + var _moveSingleWidget = function (elementId, delta, options, onComplete) { + var fixedInfo = $ax.dynamicPanelManager.getFixedInfo(elementId); + var xProp = 'left'; + var xDiff = '+='; + if(fixedInfo && fixedInfo.horizontal == 'right') { + xProp = 'right'; + xDiff = '-='; + } + var yProp = 'top'; + var yDiff = '+='; + if(fixedInfo && fixedInfo.vertical == 'bottom') { + yProp = 'bottom'; + yDiff = '-='; + } + + var css = {}; + css[xProp] = xDiff + delta.x; + css[yProp] = yDiff + delta.y; + var moveInfo = $ax.move.RegisterMoveInfo(elementId, delta.x, delta.y,false, options); + $jobj(elementId).animate(css, { + duration: options.duration, + easing: options.easing, + queue: false, + complete: function () { + if(onComplete) onComplete(); + if(moveInfo.rootLayer) $ax.visibility.popContainer(moveInfo.rootLayer, false); + $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.move); + } + }); + } + + var _getMoveLoc = function (elementId, moveInfo, eventInfoCopy, stopInfo, comboState, options, layerInfo) { + var moveTo = false; + var moveWithThis = false; + var xValue = 0; + var yValue = 0; + var moveResult = comboState.moveResult; + var widgetDragInfo = eventInfoCopy.dragInfo; + var jobj = $jobj(elementId); + + switch(moveInfo.moveType) { + case "location": + // toRatio is ignoring anything before start since that has already taken effect we just know whe have from start to len to finish + // getting to the location we want to get to. + var toRatio = stopInfo.instant ? 1 : (stopInfo.end - stopInfo.start) / (stopInfo.len - stopInfo.start); + + // If result already caluculated, don't recalculate again, other calculate and save + if (moveResult) { + xValue = moveResult.x; + yValue = moveResult.y; + } else { + comboState.moveResult = moveResult = { x: $ax.expr.evaluateExpr(moveInfo.xValue, eventInfoCopy), y: $ax.expr.evaluateExpr(moveInfo.yValue, eventInfoCopy) }; + xValue = moveResult.x; + yValue = moveResult.y; + } + // If this is final stop for this move, then clear out the result so next move won't use it + if(stopInfo.instant || stopInfo.end == stopInfo.len) comboState.moveResult = undefined; + + var startX; + var startY; + if (layerInfo) { + startX = layerInfo.left; + startY = layerInfo.top; + //} else if ($ax.public.fn.isCompoundVectorHtml(jobj[0])) { + // var dimensions = $ax.public.fn.compoundWidgetDimensions(jobj); + // startX = dimensions.left; + // startY = dimensions.top; + } else { + startX = $ax('#' + elementId).locRelativeIgnoreLayer(false); + startY = $ax('#' + elementId).locRelativeIgnoreLayer(true); + } + + xValue = (xValue - startX) * toRatio; + yValue = (yValue - startY) * toRatio; + + break; + case "delta": + var ratio = stopInfo.instant ? 1 : (stopInfo.end - stopInfo.start) / stopInfo.len; + + // See case location above + if(moveResult) { + xValue = moveResult.x * ratio; + yValue = moveResult.y * ratio; + } else { + comboState.moveResult = moveResult = { x: $ax.expr.evaluateExpr(moveInfo.xValue, eventInfoCopy), y: $ax.expr.evaluateExpr(moveInfo.yValue, eventInfoCopy) }; + xValue = moveResult.x * ratio; + yValue = moveResult.y * ratio; + } + if (stopInfo.instant || stopInfo.end == stopInfo.len) comboState.moveResult = undefined; + + break; + case "drag": + xValue = widgetDragInfo.xDelta; + yValue = widgetDragInfo.yDelta; + break; + case "dragX": + xValue = widgetDragInfo.xDelta; + yValue = 0; + break; + case "dragY": + xValue = 0; + yValue = widgetDragInfo.yDelta; + break; + case "locationBeforeDrag": + var location = widgetDragInfo.movedWidgets[eventInfoCopy.targetElement]; + if (location) { + var axObj = $ax('#' + eventInfoCopy.targetElement); + xValue = location.x - axObj.left(); + yValue = location.y - axObj.top(); + } else { + _fireAnimationFromQueue(eventInfoCopy.srcElement, queueTypes.move); + return { x: 0, y: 0 }; + } + //moveTo = true; + break; + case "withThis": + moveWithThis = true; + var widgetMoveInfo = $ax.move.GetWidgetMoveInfo(); + var srcElementId = $ax.getElementIdsFromEventAndScriptId(eventInfoCopy, eventInfoCopy.srcElement)[0]; + var delta = widgetMoveInfo[srcElementId]; + options.easing = delta.options.easing; + options.duration = delta.options.duration; + xValue = delta.x; + yValue = delta.y; + break; + } + + if (options && options.boundaryExpr) { + //$ax.public.fn.removeCompound(jobj); + + if(moveWithThis && (xValue || yValue)) { + _updateLeftExprVariable(options.boundaryExpr, xValue.toString(), yValue.toString()); + } + + if(!$ax.expr.evaluateExpr(options.boundaryExpr, eventInfoCopy)) { + var boundaryStoInfo = options.boundaryStos; + if(boundaryStoInfo) { + if(moveWithThis) { + var stoScopes = boundaryStoInfo.boundaryScope; + if(stoScopes) { + for(var s in stoScopes) { + var boundaryScope = stoScopes[s]; + if(!boundaryScope.localVariables) continue; + + if(boundaryScope.localVariables.withx) boundaryScope.localVariables.withx.value = xValue.toString(); + if(boundaryScope.localVariables.withy) boundaryScope.localVariables.withy.value = yValue.toString(); + } + } + } + + if(boundaryStoInfo.ySto) { + var currentTop = layerInfo ? layerInfo.top : Number(jobj.css('top').replace('px', '')); + var newTop = $ax.evaluateSTO(boundaryStoInfo.ySto, boundaryStoInfo.boundaryScope, eventInfoCopy); + if(moveTo) yValue = newTop; + else yValue = newTop - currentTop; + } + + if(boundaryStoInfo.xSto) { + var currentLeft = layerInfo ? layerInfo.left : Number(jobj.css('left').replace('px', '')); + var newLeft = $ax.evaluateSTO(boundaryStoInfo.xSto, boundaryStoInfo.boundaryScope, eventInfoCopy); + if(moveTo) xValue = newLeft; + else xValue = newLeft - currentLeft; + } + } + } + + //$ax.public.fn.restoreCompound(jobj); + } + + return { x: Number(xValue), y: Number(yValue), moveTo: moveTo }; + }; + + //we will have something like [[Target.right + withX]] for leftExpr, and this function set the value of withX + var _updateLeftExprVariable = function (exprTree, xValue, yValue) { + if(exprTree.leftExpr && !exprTree.leftExpr.op) { + var localVars = exprTree.leftExpr.localVariables; + if(localVars) { + if(localVars.withx) localVars.withx.value = xValue; + if(localVars.withy) localVars.withy.value = yValue; + } + } + + //traversal + if(exprTree.op) { + if(exprTree.leftExpr) _updateLeftExprVariable(exprTree.leftExpr, xValue, yValue); + if(exprTree.rightExpr) _updateLeftExprVariable(exprTree.rightExpr, xValue, yValue); + } + } + + var widgetRotationFilter = [ + $ax.constants.IMAGE_BOX_TYPE, $ax.constants.IMAGE_MAP_REGION_TYPE, $ax.constants.DYNAMIC_PANEL_TYPE, + $ax.constants.VECTOR_SHAPE_TYPE, $ax.constants.VERTICAL_LINE_TYPE, $ax.constants.HORIZONTAL_LINE_TYPE + ]; + _actionHandlers.rotateWidget = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.objectsToRotate.length; i++) { + var rotateInfo = action.objectsToRotate[i].rotateInfo; + var elementIds = $ax.getElementIdsFromPath(action.objectsToRotate[i].objectPath, eventInfo); + + for(var j = 0; j < elementIds.length; j++) { + var elementId = elementIds[j]; + _queueResizeMove(elementId, queueTypes.rotate, eventInfo, rotateInfo); + } + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + var _addRotate = function (elementId, eventInfo, rotateInfo, options, moveInfo) { + var idToResizeMoveState = _getIdToResizeMoveState(eventInfo); + rotateInfo = $ax.deepCopy(rotateInfo); + rotateInfo.options.easing = options.easing; + rotateInfo.options.duration = options.duration; + + var eventInfoCopy = $ax.eventCopy(eventInfo); + eventInfoCopy.targetElement = elementId; + + //calculate degree value at start of animation + var rotateDegree; + var offset = {}; + var eval = function(boundingRect) { + rotateDegree = parseFloat($ax.expr.evaluateExpr(rotateInfo.degree, eventInfoCopy)); + offset.x = Number($ax.expr.evaluateExpr(rotateInfo.offsetX, eventInfoCopy)); + offset.y = Number($ax.expr.evaluateExpr(rotateInfo.offsetY, eventInfoCopy)); + if(!rotateInfo.options.clockwise) rotateDegree = -rotateDegree; + + _updateOffset(offset, rotateInfo.anchor, boundingRect); + } + + if(moveInfo) { + var moveOptions = { dragInfo: eventInfoCopy.dragInfo, duration: options.duration, easing: options.easing, boundaryExpr: moveInfo.options.boundaryExpr, boundaryStos: moveInfo.options.boundaryStos }; + } + + var obj = $obj(elementId); + + if($ax.public.fn.IsLayer(obj.type)) { + var childrenIds = $ax.public.fn.getLayerChildrenDeep(elementId, true, true); + if(childrenIds.length == 0) return; + + var animations = []; + //get center point of the group, and degree delta + var centerPoint, degreeDelta, moveDelta; + animations.push({ + id: elementId, + type: queueTypes.rotate, + func: function () { + var boundingRect = $axure.fn.getWidgetBoundingRect(elementId); + eval(boundingRect); + centerPoint = boundingRect.centerPoint; + centerPoint.x += offset.x; + centerPoint.y += offset.y; + degreeDelta = _initRotateLayer(elementId, rotateInfo, rotateDegree, options, options.stop); + _fireAnimationFromQueue(elementId, queueTypes.rotate); + + moveDelta = { x: 0, y: 0 }; + if (moveInfo) { + moveDelta = _getMoveLoc(elementId, moveInfo, eventInfoCopy, options.moveStop, idToResizeMoveState[elementId], moveOptions, boundingRect); + if (moveDelta.moveTo) { + moveDelta.x -= $ax.getNumFromPx($jobj(elementId).css('left')); + moveDelta.y -= $ax.getNumFromPx($jobj(elementId).css('top')); + } + $ax.event.raiseSyntheticEvent(elementId, 'onMove'); + } + } + }); + + for(var idIndex = 0; idIndex < childrenIds.length; idIndex++) { + var childId = childrenIds[idIndex]; + (function(id) { + var childObj = $obj(id); + var rotate = $.inArray(childObj.type, widgetRotationFilter) != -1; + + var isLayer = $ax.public.fn.IsLayer(childObj.type); + animations.push({ + id: id, + type: queueTypes.rotate, + func: function() { + $ax.event.raiseSyntheticEvent(id, "onRotate"); + if(isLayer) _fireAnimationFromQueue(id, queueTypes.rotate); + else $ax('#' + id).circularMoveAndRotate(degreeDelta, options, centerPoint.x, centerPoint.y, rotate, moveDelta); + } + }); + if(!isLayer) animations.push({ id: id, type: queueTypes.move, func: function() {} }); + })(childId); + } + + _addAnimations(animations); + } else { + animations = []; + animations.push({ + id: elementId, + type: queueTypes.rotate, + func: function () { + var jobj = $jobj(elementId); + var unrotatedDim = { width: $ax.getNumFromPx(jobj.css('width')), height: $ax.getNumFromPx(jobj.css('height')) }; + eval(unrotatedDim); + var delta = { x: 0, y: 0 }; + if(moveInfo) { + delta = _getMoveLoc(elementId, moveInfo, eventInfoCopy, options.moveStop, idToResizeMoveState[elementId], moveOptions); + if(delta.moveTo) { + delta.x -= $ax.getNumFromPx($jobj(elementId).css('left')); + delta.y -= $ax.getNumFromPx($jobj(elementId).css('top')); + } + } + + $ax.event.raiseSyntheticEvent(elementId, 'onRotate'); + if(offset.x == 0 && offset.y == 0) { + _rotateSingle(elementId, rotateDegree, rotateInfo.rotateType == 'location', delta, options, options.stop); + _fireAnimationFromQueue(elementId, queueTypes.move); + if(moveInfo) $ax.event.raiseSyntheticEvent(elementId, 'onMove'); + return; + } + _rotateSingleOffset(elementId, rotateDegree, rotateInfo.rotateType == 'location', delta, { x: offset.x, y: offset.y }, options, options.stop); + if(moveInfo) $ax.event.raiseSyntheticEvent(elementId, 'onMove'); + } + }); + animations.push({ id: elementId, type: queueTypes.move, func: function () { } }); + + _addAnimations(animations); + } + } + + var _updateOffset = function(offset, anchor, boundingRect) { + if (anchor.indexOf('left') != -1) offset.x -= boundingRect.width / 2; + if (anchor.indexOf('right') != -1) offset.x += boundingRect.width / 2; + if (anchor.indexOf('top') != -1) offset.y -= boundingRect.height / 2; + if (anchor.indexOf('bottom') != -1) offset.y += boundingRect.height / 2; + } + + var _rotateSingle = function(elementId, rotateDegree, rotateTo, delta, options, stop) { + var degreeDelta = _applyRotateStop(rotateDegree, $ax.move.getRotationDegree(elementId), rotateTo, stop); + $ax('#' + elementId).rotate(degreeDelta, options.easing, options.duration, false, true); + if(delta.x || delta.y) _moveSingleWidget(elementId, delta, options); + }; + + var _rotateSingleOffset = function (elementId, rotateDegree, rotateTo, delta, offset, options, stop, resizeOffset) { + var obj = $obj(elementId); + var currRotation = $ax.move.getRotationDegree(elementId); + + // Need to fix offset. Want to to stay same place on widget after rotation, so need to take the offset and rotate it to where it should be. + if(currRotation) { + offset = $axure.fn.getPointAfterRotate(currRotation, offset, { x: 0, y: 0 }); + } + + var degreeDelta = _applyRotateStop(rotateDegree, currRotation, rotateTo, stop); + var widgetCenter = $axure.fn.getWidgetBoundingRect(elementId).centerPoint; + + var rotate = $.inArray(obj.type, widgetRotationFilter) != -1; + $ax('#' + elementId).circularMoveAndRotate(degreeDelta, options, widgetCenter.x + offset.x, widgetCenter.y + offset.y, rotate, delta, resizeOffset); + } + + var _applyRotateStop = function(rotateDegree, currRotation, to, stop) { + var degreeDelta; + var ratio; + if(to) { + degreeDelta = rotateDegree - currRotation; + ratio = stop.instant ? 1 : (stop.end - stop.start) / (stop.len - stop.start); + } else { + degreeDelta = rotateDegree; + ratio = stop.instant ? 1 : (stop.end - stop.start) / stop.len; + } + + return degreeDelta * ratio; + } + + + var _initRotateLayer = function(elementId, rotateInfo, rotateDegree, options, stop) { + var layerDegree = $jobj(elementId).data('layerDegree'); + if (layerDegree === undefined) layerDegree = 0; + else layerDegree = parseFloat(layerDegree); + + var to = rotateInfo.rotateType == 'location'; + var newDegree = to ? rotateDegree : layerDegree + rotateDegree; + var degreeDelta = newDegree - layerDegree; + + var ratio = stop.instant ? 1 : (stop.end - stop.start) / (stop.len - stop.start); + degreeDelta *= ratio; + + $jobj(elementId).data('layerDegree', newDegree); + $ax.event.raiseSyntheticEvent(elementId, "onRotate"); + + return degreeDelta; + } + + _actionHandlers.setWidgetSize = function(eventInfo, actions, index) { + var action = actions[index]; + for(var i = 0; i < action.objectsToResize.length; i++) { + var resizeInfo = action.objectsToResize[i].sizeInfo; + var objPath = action.objectsToResize[i].objectPath; + if(objPath == 'thisItem') { + var thisId = eventInfo.srcElement; + var repeaterId = $ax.getParentRepeaterFromElementId(thisId); + var itemId = $ax.repeater.getItemIdFromElementId(thisId); + var currSize = $ax.repeater.getItemSize(repeaterId, itemId); + var newSize = _getSizeFromInfo(resizeInfo, eventInfo, currSize.width, currSize.height); + $ax.repeater.setItemSize(repeaterId, itemId, newSize.width, newSize.height); + + continue; + } + + var elementIds = $ax.getElementIdsFromPath(objPath, eventInfo); + + for(var j = 0; j < elementIds.length; j++) { + var elementId = elementIds[j]; + _queueResizeMove(elementId, queueTypes.resize, eventInfo, resizeInfo); + //_addResize(elementId, resizeInfo); + } + } + _dispatchAction(eventInfo, actions, index + 1); + }; + + // Move info undefined unless this move/resize actions are being merged + var _addResize = function(elementId, eventInfo, resizeInfo, options, moveInfo, rotateInfo) { + var axObject = $obj(elementId); + resizeInfo = $ax.deepCopy(resizeInfo); + resizeInfo.easing = options.easing; + resizeInfo.duration = options.duration; + + var eventInfoCopy = $ax.eventCopy(eventInfo); + eventInfoCopy.targetElement = elementId; + + var moves = moveInfo || resizeInfo.anchor != "top left" || ($ax.public.fn.IsDynamicPanel(axObject.type) && + ((axObject.fixedHorizontal && axObject.fixedHorizontal == 'center') || (axObject.fixedVertical && axObject.fixedVertical == 'middle'))) || + (rotateInfo && (rotateInfo.offsetX || rotateInfo.offsetY)); + + if(moveInfo) { + var moveOptions = { dragInfo: eventInfoCopy.dragInfo, duration: options.duration, easing: options.easing, boundaryExpr: moveInfo.options.boundaryExpr, boundaryStos: moveInfo.options.boundaryStos }; + } + + var idToResizeMoveState = _getIdToResizeMoveState(eventInfoCopy); + + var animations = []; + if($ax.public.fn.IsLayer(axObject.type)) { + moves = true; // Assume widgets will move will layer, even though not all widgets may move + var childrenIds = $ax.public.fn.getLayerChildrenDeep(elementId, true, true); + if(childrenIds.length === 0) return; + // Need to wait to calculate new size, until time to animate, but animates are in separate queues + // best option seems to be to calculate in a "animate" for the layer itself and all children will use that. + // May just have to be redundant if this doesn't work well. + + var boundingRect, widthChangedPercent, heightChangedPercent, unchanged, deltaLoc, degreeDelta, resizeOffset; + animations.push({ + id: elementId, + type: queueTypes.resize, + func: function () { + $ax.visibility.pushContainer(elementId, false); + boundingRect = $ax.public.fn.getWidgetBoundingRect(elementId); + var size = _getSizeFromInfo(resizeInfo, eventInfoCopy, boundingRect.width, boundingRect.height, elementId); + deltaLoc = { x: 0, y: 0 }; + + var stop = options.stop; + var ratio = stop.instant ? 1 : (stop.end - stop.start) / (stop.len - stop.start); + widthChangedPercent = (size.width - boundingRect.width) / boundingRect.width * ratio; + heightChangedPercent = (size.height - boundingRect.height) / boundingRect.height * ratio; + resizeOffset = _applyAnchorToResizeOffset(widthChangedPercent * boundingRect.width, heightChangedPercent * boundingRect.height, resizeInfo.anchor); + if(stop.instant || stop.end == stop.len) idToResizeMoveState[elementId].resizeResult = undefined; + + unchanged = widthChangedPercent === 0 && heightChangedPercent === 0; + $ax.event.raiseSyntheticEvent(elementId, 'onResize'); + _fireAnimationFromQueue(elementId, queueTypes.resize); + } + }); + + if(moveInfo) animations.push({ + id: elementId, + type: queueTypes.move, + func: function() { + deltaLoc = _getMoveLoc(elementId, moveInfo, eventInfoCopy, options.moveStop, idToResizeMoveState[elementId], moveOptions, boundingRect); + $ax.visibility.pushContainer(elementId, false); + _fireAnimationFromQueue(elementId, queueTypes.move); + $ax.event.raiseSyntheticEvent(elementId, 'onMove'); + } + }); + if (rotateInfo) animations.push({ + id: elementId, + type: queueTypes.rotate, + func: function () { + resizeOffset = _applyAnchorToResizeOffset(widthChangedPercent * boundingRect.width, heightChangedPercent * boundingRect.height, resizeInfo.anchor); + var rotateDegree = parseFloat($ax.expr.evaluateExpr(rotateInfo.degree, eventInfoCopy)); + degreeDelta = _initRotateLayer(elementId, rotateInfo, rotateDegree, options, options.rotateStop); + _fireAnimationFromQueue(elementId, queueTypes.rotate); + $ax.event.raiseSyntheticEvent(elementId, 'onRotate'); + } + }); + + var completeCount = childrenIds.length*2; // Because there is a resize and move complete, it needs to be doubled + for(var idIndex = 0; idIndex < childrenIds.length; idIndex++) { + // Need to use scoping trick here to make sure childId doesn't change on next loop + (function(childId) { + //use ax obj to get width and height, jquery css give us the value without border + var isLayer = $ax.public.fn.IsLayer($obj(childId).type); + var rotate = $.inArray($obj(childId).type, widgetRotationFilter) != -1; + animations.push({ + id: childId, + type: queueTypes.resize, + func: function() { + //$ax.event.raiseSyntheticEvent(childId, 'onResize'); + if(isLayer) { + completeCount--; + _fireAnimationFromQueue(childId, queueTypes.resize); + $ax.event.raiseSyntheticEvent(childId, 'onResize'); + } else { + var currDeltaLoc = { x: deltaLoc.x, y: deltaLoc.y }; + var resizeDeltaMove = { x: 0, y: 0 }; + var css = _getCssForResizingLayerChild(childId, resizeInfo.anchor, boundingRect, widthChangedPercent, heightChangedPercent, resizeDeltaMove); + var onComplete = function() { + if(--completeCount == 0) $ax.visibility.popContainer(elementId, false); + }; + $ax('#' + childId).resize(css, resizeInfo, true, moves, onComplete); + if(rotateInfo) { + var offset = { x: Number($ax.expr.evaluateExpr(rotateInfo.offsetX, eventInfoCopy)), y: Number($ax.expr.evaluateExpr(rotateInfo.offsetY, eventInfo)) }; + _updateOffset(offset, resizeInfo.anchor, boundingRect); + var centerPoint = { x: boundingRect.centerPoint.x + offset.x, y: boundingRect.centerPoint.y + offset.y }; + $ax('#' + childId).circularMoveAndRotate(degreeDelta, options, centerPoint.x, centerPoint.y, rotate, currDeltaLoc, resizeOffset, resizeDeltaMove, onComplete); + } else { + currDeltaLoc.x += resizeDeltaMove.x; + currDeltaLoc.y += resizeDeltaMove.y; + _moveSingleWidget(childId, currDeltaLoc, options, onComplete); + } + } + } + }); + if(!isLayer && moves) animations.push({ id: childId, type: queueTypes.move, func: function () {} }); + if(!isLayer && rotateInfo) animations.push({ id: childId, type: queueTypes.rotate, func: function () {} }); + })(childrenIds[idIndex]); + } + } else { + // Not func, obj with func + animations.push({ + id: elementId, + type: queueTypes.resize, + func: function() { + //textarea can be resized manully by the user, but doesn't update div size yet, so doing this for now. + //alternatively axquery get for size can account for this + + var sizeId = $ax.public.fn.IsTextArea(axObject.type) ? $jobj(elementId).children('textarea').attr('id') : elementId; + var oldSize = $ax('#' + sizeId).size(); + var oldWidth = oldSize.width; + var oldHeight = oldSize.height; + + var stop = options.stop; + var ratio = stop.instant ? 1 : (stop.end - stop.start) / (stop.len - stop.start); + + var size = _getSizeFromInfo(resizeInfo, eventInfoCopy, oldHeight, oldWidth, elementId); + var newWidth = size.width; + var newHeight = size.height; + var deltaWidth = (newWidth - oldWidth)*ratio; + var deltaHeight = (newHeight - oldHeight)*ratio; + newWidth = oldWidth + deltaWidth; + newHeight = oldHeight + deltaHeight; + + var delta = { x: 0, y: 0 }; + if(moveInfo) { + delta = _getMoveLoc(elementId, moveInfo, eventInfoCopy, options.moveStop, idToResizeMoveState[elementId], moveOptions); + if (delta.moveTo) { + delta.x -= $ax.getNumFromPx($jobj(elementId).css('left')); + delta.y -= $ax.getNumFromPx($jobj(elementId).css('top')); + } + } + + var rotateHandlesMove = false; + var offset = { x: 0, y: 0 }; + if(rotateInfo) { + offset.x = Number($ax.expr.evaluateExpr(rotateInfo.offsetX, eventInfoCopy)); + offset.y = Number($ax.expr.evaluateExpr(rotateInfo.offsetY, eventInfoCopy)); + _updateOffset(offset, rotateInfo.anchor, $axure.fn.getWidgetBoundingRect(elementId)); + rotateHandlesMove = Boolean(rotateInfo && (offset.x || offset.y || rotateInfo.anchor != 'center')); + $ax.event.raiseSyntheticEvent(elementId, 'onRotate'); + } + + var css = null; + var rootLayer = null; + if(deltaHeight != 0 || deltaWidth != 0) { + rootLayer = $ax.move.getRootLayer(elementId); + if(rootLayer) $ax.visibility.pushContainer(rootLayer, false); + css = _getCssForResizingWidget(elementId, eventInfoCopy, resizeInfo.anchor, newWidth, newHeight, oldWidth, oldHeight, delta, options.stop, !rotateHandlesMove); + idToResizeMoveState[elementId].resizeResult = undefined; + } + + if(rotateInfo) { + var rotateDegree = parseFloat($ax.expr.evaluateExpr(rotateInfo.degree, eventInfoCopy)); + + if(rotateHandlesMove) { + var resizeOffset = _applyAnchorToResizeOffset(deltaWidth, deltaHeight, rotateInfo.anchor); + _rotateSingleOffset(elementId, rotateDegree, rotateInfo.rotateType == 'location', delta, offset, options, options.rotateStop, resizeOffset); + } else { + // Not handling move so pass in nop delta + _rotateSingle(elementId, rotateDegree, rotateInfo.rotateType == 'location', { x: 0, y: 0 }, options, options.rotateStop); + } + } else _moveSingleWidget(elementId, delta, options); + + // Have to do it down here to make sure move info is registered + if(moveInfo) $ax.event.raiseSyntheticEvent(elementId, 'onMove'); + + //$ax.event.raiseSyntheticEvent(elementId, 'onResize'); + if (css) { + $ax('#' + elementId).resize(css, resizeInfo, true, moves, function () { + if(rootLayer) $ax.visibility.popContainer(rootLayer, false); + }); + } else { + _fireAnimationFromQueue(elementId, queueTypes.resize); + if(moves && !rotateHandlesMove) _fireAnimationFromQueue(elementId, queueTypes.move); + + $ax.event.raiseSyntheticEvent(elementId, 'onResize'); + } + } + }); + // Nop move (move handled by resize) + if(rotateInfo) animations.push({ id: elementId, type: queueTypes.rotate, func: function () { } }); + if(moves) animations.push({ id: elementId, type: queueTypes.move, func: function () { } }); + } + + _addAnimations(animations); + }; + + var _applyAnchorToResizeOffset = function (deltaWidth, deltaHeight, anchor) { + var offset = {}; + if (anchor.indexOf('left') != -1) offset.x = -deltaWidth / 2; + else if (anchor.indexOf('right') != -1) offset.x = deltaWidth / 2; + if (anchor.indexOf('top') != -1) offset.y = -deltaHeight / 2; + else if (anchor.indexOf('bottom') != -1) offset.y = deltaHeight / 2; + + return offset; + } + + //var _getOldAndNewSize = function (resizeInfo, eventInfo, targetElement) { + // var axObject = $obj(targetElement); + // var oldWidth, oldHeight; + // //textarea can be resized manully by the user, use the textarea child to get the current size + // //because this new size may not be reflected on its parents yet + // if ($ax.public.fn.IsTextArea(axObject.type)) { + // var jObject = $jobj(elementId); + // var textObj = $ax('#' + jObject.children('textarea').attr('id')); + // //maybe we shouldn't use ax obj to get width and height here anymore... + // oldWidth = textObj.width(); + // oldHeight = textObj.height(); + // } else { + // oldWidth = $ax('#' + elementId).width(); + // oldHeight = $ax('#' + elementId).height(); + // } + + // var size = _getSizeFromInfo(resizeInfo, eventInfo, oldHeight, oldWidth, elementId); + // return { oldWidth: oldWidth, oldHeight: oldHeight, newWidth: size.width, newHeight: size.height, change: oldWidth != size.width || oldHeight != size.height }; + //} + + var _getSizeFromInfo = function(resizeInfo, eventInfo, oldWidth, oldHeight, targetElement) { + var oldTarget = eventInfo.targetElement; + eventInfo.targetElement = targetElement; + + var state = _getIdToResizeMoveState(eventInfo)[targetElement]; + if(state && state.resizeResult) return state.resizeResult; + + var width = $ax.expr.evaluateExpr(resizeInfo.width, eventInfo); + var height = $ax.expr.evaluateExpr(resizeInfo.height, eventInfo); + eventInfo.targetElement = oldTarget; + + + // If either one is not a number, use the old value + width = width != "" ? Number(width) : oldWidth; + height = height != "" ? Number(height) : oldHeight; + + width = isNaN(width) ? oldWidth : width; + height = isNaN(height) ? oldHeight : height; + + // can't be negative + var result = { width: Math.max(width, 0), height: Math.max(height, 0) }; + if(state) state.resizeResult = result; + return result; + } + + //var _queueResize = function (elementId, css, resizeInfo) { + // var resizeFunc = function() { + // $ax('#' + elementId).resize(css, resizeInfo, true); + // //$ax.public.fn.resize(elementId, css, resizeInfo, true); + // }; + // var obj = $obj(elementId); + // var moves = resizeInfo.anchor != "top left" || ($ax.public.fn.IsDynamicPanel(obj.type) && ((obj.fixedHorizontal && obj.fixedHorizontal == 'center') || (obj.fixedVertical && obj.fixedVertical == 'middle'))) + // if(!moves) { + // _addAnimation(elementId, queueTypes.resize, resizeFunc); + // } else { + // var animations = []; + // animations[0] = { id: elementId, type: queueTypes.resize, func: resizeFunc }; + // animations[1] = { id: elementId, type: queueTypes.move, func: function() {}}; // Nop func - resize handles move and firing from queue + // _addAnimations(animations); + // } + //}; + + //should clean this function and + var _getCssForResizingWidget = function (elementId, eventInfo, anchor, newWidth, newHeight, oldWidth, oldHeight, delta, stop, handleMove) { + var ratio = stop.instant ? 1 : (stop.end - stop.start) / (stop.len - stop.start); + var deltaWidth = (newWidth - oldWidth) * ratio; + var deltaHeight = (newHeight - oldHeight) * ratio; + if(stop.instant || stop.end == stop.len) { + var idToResizeMoveState = _getIdToResizeMoveState(eventInfo); + if(idToResizeMoveState[elementId]) idToResizeMoveState[elementId].resizeResult = undefined; + } + + var css = {}; + css.height = oldHeight + deltaHeight; + + var obj = $obj(elementId); + //if it's 100% width, don't change its width + if($ax.dynamicPanelManager.isPercentWidthPanel(obj)) var is100Dp = true; + else css.width = oldWidth + deltaWidth; + + var jobj = $jobj(elementId); + //if this is pinned dp, we will mantain the pin, no matter how you resize it; so no need changes left or top + //NOTE: currently only pinned DP has position == fixed + if(jobj.css('position') == 'fixed') return css; + + //use position relative to parents + //var position = obj.generateCompound ? $ax.public.fn.getWidgetBoundingRect(elementId) : $ax.public.fn.getPositionRelativeToParent(elementId); + + + var locationShift; + switch(anchor) { + case "top left": + locationShift = { x: 0, y: 0 }; break; + case "top": + locationShift = { x: -deltaWidth / 2.0, y: 0.0 }; break; + case "top right": + locationShift = { x: -deltaWidth, y: 0.0 }; break; + case "left": + locationShift = { x: 0.0, y: -deltaHeight / 2.0 }; break; + case "center": + locationShift = { x: -deltaWidth / 2.0, y: -deltaHeight / 2.0 }; break; + case "right": + locationShift = { x: -deltaWidth, y: -deltaHeight / 2.0 }; break; + case "bottom left": + locationShift = { x: 0.0, y: -deltaHeight }; break; + case "bottom": + locationShift = { x: -deltaWidth/2.0, y: -deltaHeight }; break; + case "bottom right": + locationShift = { x: -deltaWidth, y: -deltaHeight }; break; + } + + if(handleMove) { + if(jobj.css('position') === 'absolute') { + css.left = $ax.getNumFromPx(jobj.css('left')) + locationShift.x + delta.x; + css.top = $ax.getNumFromPx(jobj.css('top')) + locationShift.y + delta.y; + } else { + var axQuery = $ax('#' + elementId); + css.left = axQuery.left(true) + locationShift.x + delta.x; + css.top = axQuery.top(true) + locationShift.y + delta.y; + } + } else { + delta.x += locationShift.x; + delta.y += locationShift.y; + } + + return css; + }; + + + var _getCssForResizingLayerChild = function (elementId, anchor, layerBoundingRect, widthChangedPercent, heightChangedPercent, deltaLoc) { + var boundingRect = $ax.public.fn.getWidgetBoundingRect(elementId); + var childCenterPoint = boundingRect.centerPoint; + + var currentSize = $ax('#' + elementId).size(); + var newWidth = currentSize.width + currentSize.width * widthChangedPercent; + var newHeight = currentSize.height + currentSize.height * heightChangedPercent; + + var css = {}; + css.height = newHeight; + + var obj = $obj(elementId); + //if it's 100% width, don't change its width and left + var changeLeft = true; + if($ax.dynamicPanelManager.isPercentWidthPanel(obj)) changeLeft = false; + else css.width = newWidth; + + + var jobj = $jobj(elementId); + //if this is pinned dp, we will mantain the pin, no matter how you resize it; so no need changes left or top + //NOTE: currently only pinned DP has position == fixed + if(jobj.css('position') == 'fixed') return css; + //use bounding rect position relative to parents to calculate delta + var axObj = $ax('#' + elementId); + // This will be absolute world coordinates, but we want body coordinates. + var currentLeft = axObj.locRelativeIgnoreLayer(false); + var currentTop = axObj.locRelativeIgnoreLayer(true); + + if(anchor.indexOf("center") > -1) { + var topDelta = (childCenterPoint.y - layerBoundingRect.centerPoint.y) * heightChangedPercent - currentSize.height * heightChangedPercent / 2; + if(changeLeft) var leftDelta = (childCenterPoint.x - layerBoundingRect.centerPoint.x) * widthChangedPercent - currentSize.width * widthChangedPercent / 2; + } else { + if(anchor.indexOf("top") > -1) { + topDelta = (currentTop - layerBoundingRect.top) * heightChangedPercent; + } else if(anchor.indexOf("bottom") > -1) { + topDelta = (currentTop - layerBoundingRect.bottom) * heightChangedPercent; + } else { + topDelta = (childCenterPoint.y - layerBoundingRect.centerPoint.y) * heightChangedPercent - currentSize.height * heightChangedPercent / 2; + } + + if(changeLeft) { + if(anchor.indexOf("left") > -1) { + leftDelta = (currentLeft - layerBoundingRect.left) * widthChangedPercent; + } else if(anchor.indexOf("right") > -1) { + leftDelta = (currentLeft - layerBoundingRect.right) * widthChangedPercent; + } else { + leftDelta = (childCenterPoint.x - layerBoundingRect.centerPoint.x) * widthChangedPercent - currentSize.width * widthChangedPercent / 2; + } + } + } + + if(topDelta) deltaLoc.y += topDelta; + if(leftDelta && changeLeft) deltaLoc.x += leftDelta; + + return css; + }; + + _actionHandlers.setPanelOrder = function(eventInfo, actions, index) { + var action = actions[index]; + for(var i = 0; i < action.panelPaths.length; i++) { + var func = action.panelPaths[i].setOrderInfo.bringToFront ? 'bringToFront' : 'sendToBack'; + var elementIds = $ax.getElementIdsFromPath(action.panelPaths[i].panelPath, eventInfo); + for(var j = 0; j < elementIds.length; j++) $ax('#' + elementIds[j])[func](); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.modifyDataSetEditItems = function(eventInfo, actions, index) { + var action = actions[index]; + var add = action.repeatersToAddTo; + var repeaters = add || action.repeatersToRemoveFrom; + var itemId; + for(var i = 0; i < repeaters.length; i++) { + var data = repeaters[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(data.path, eventInfo)[0]; + if(!id) continue; + + if(data.addType == 'this') { + var scriptId = $ax.repeater.getScriptIdFromElementId(eventInfo.srcElement); + itemId = $ax.repeater.getItemIdFromElementId(eventInfo.srcElement); + var repeaterId = $ax.getParentRepeaterFromScriptId(scriptId); + if(add) $ax.repeater.addEditItems(repeaterId, [itemId]); + else $ax.repeater.removeEditItems(repeaterId, [itemId]); + } else if(data.addType == 'all') { + var allItems = $ax.repeater.getAllItemIds(id); + if(add) $ax.repeater.addEditItems(id, allItems); + else $ax.repeater.removeEditItems(id, allItems); + } else { + var oldTarget = eventInfo.targetElement; + var itemIds = $ax.repeater.getAllItemIds(id); + var itemIdsToAdd = []; + for(var j = 0; j < itemIds.length; j++) { + itemId = itemIds[j]; + eventInfo.targetElement = $ax.repeater.createElementId(id, itemId); + if($ax.expr.evaluateExpr(data.query, eventInfo) == "true") { + itemIdsToAdd[itemIdsToAdd.length] = String(itemId); + } + eventInfo.targetElement = oldTarget; + } + if(add) $ax.repeater.addEditItems(id, itemIdsToAdd); + else $ax.repeater.removeEditItems(id, itemIdsToAdd); + } + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _action.repeaterInfoNames = { addItemsToDataSet: 'dataSetsToAddTo', deleteItemsFromDataSet: 'dataSetItemsToRemove', updateItemsInDataSet: 'dataSetsToUpdate', + addFilterToRepeater: 'repeatersToAddFilter', removeFilterFromRepeater: 'repeatersToRemoveFilter', + addSortToRepeater: 'repeaterToAddSort', removeSortFromRepeater: 'repeaterToRemoveSort', + setRepeaterToPage: 'repeatersToSetPage', setItemsPerRepeaterPage: 'repeatersToSetItemCount' + }; + + _actionHandlers.addItemsToDataSet = function(eventInfo, actions, index) { + var action = actions[index]; + for(var i = 0; i < action.dataSetsToAddTo.length; i++) { + var datasetInfo = action.dataSetsToAddTo[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(datasetInfo.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + var dataset = datasetInfo.data; + + for(var j = 0; j < dataset.length; j++) $ax.repeater.addItem(id, $ax.deepCopy(dataset[j]), eventInfo); + if(dataset.length) _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.deleteItemsFromDataSet = function(eventInfo, actions, index) { + var action = actions[index]; + for(var i = 0; i < action.dataSetItemsToRemove.length; i++) { + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var deleteInfo = action.dataSetItemsToRemove[i]; + var id = $ax.getElementIdsFromPath(deleteInfo.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + $ax.repeater.deleteItems(id, eventInfo, deleteInfo.type, deleteInfo.rule); + _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.updateItemsInDataSet = function(eventInfo, actions, index) { + var action = actions[index]; + for(var i = 0; i < action.dataSetsToUpdate.length; i++) { + var dataSet = action.dataSetsToUpdate[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(dataSet.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + + $ax.repeater.updateEditItems(id, dataSet.props, eventInfo, dataSet.type, dataSet.rule); + _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.setRepeaterToDataSet = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.repeatersToSet.length; i++) { + var setRepeaterInfo = action.repeatersToSet[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(setRepeaterInfo.path, eventInfo)[0]; + if(!id) continue; + $ax.repeater.setDataSet(id, setRepeaterInfo.localDataSetId); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.addFilterToRepeater = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.repeatersToAddFilter.length; i++) { + var addFilterInfo = action.repeatersToAddFilter[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(addFilterInfo.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + + $ax.repeater.addFilter(id, addFilterInfo.removeOtherFilters, addFilterInfo.label, addFilterInfo.filter, eventInfo.srcElement); + _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.removeFilterFromRepeater = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.repeatersToRemoveFilter.length; i++) { + var removeFilterInfo = action.repeatersToRemoveFilter[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(removeFilterInfo.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + + if(removeFilterInfo.removeAll) $ax.repeater.removeFilter(id); + else if(removeFilterInfo.filterName != '') { + $ax.repeater.removeFilter(id, removeFilterInfo.filterName); + } + _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.addSortToRepeater = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.repeatersToAddSort.length; i++) { + var addSortInfo = action.repeatersToAddSort[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(addSortInfo.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + + $ax.repeater.addSort(id, addSortInfo.label, addSortInfo.columnName, addSortInfo.ascending, addSortInfo.toggle, addSortInfo.sortType); + _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.removeSortFromRepeater = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.repeatersToRemoveSort.length; i++) { + var removeSortInfo = action.repeatersToRemoveSort[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(removeSortInfo.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + + if(removeSortInfo.removeAll) $ax.repeater.removeSort(id); + else if(removeSortInfo.sortName != '') $ax.repeater.removeSort(id, removeSortInfo.sortName); + _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.setRepeaterToPage = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.repeatersToSetPage.length; i++) { + var setPageInfo = action.repeatersToSetPage[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(setPageInfo.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + + var oldTarget = eventInfo.targetElement; + eventInfo.targetElement = id; + $ax.repeater.setRepeaterToPage(id, setPageInfo.pageType, setPageInfo.pageValue, eventInfo); + eventInfo.targetElement = oldTarget; + _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.setItemsPerRepeaterPage = function(eventInfo, actions, index) { + var action = actions[index]; + + for(var i = 0; i < action.repeatersToSetItemCount.length; i++) { + var setItemCountInfo = action.repeatersToSetItemCount[i]; + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(setItemCountInfo.path, eventInfo)[0]; + if(!id || _ignoreAction(id)) continue; + + if(setItemCountInfo.noLimit) $ax.repeater.setNoItemLimit(id); + else $ax.repeater.setItemLimit(id, setItemCountInfo.itemCountValue, eventInfo); + _addRefresh(id); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.refreshRepeater = function(eventInfo, actions, index) { + // We use this as a psudo action now. + var action = actions[index]; + for (var i = 0; i < action.repeatersToRefresh.length; i++) { + // Grab the first one because repeaters must have only element id, as they cannot be inside repeaters + // or none if unplaced + var id = $ax.getElementIdsFromPath(action.repeatersToRefresh[i], eventInfo)[0]; + if(id) _tryRefreshRepeater(id, eventInfo); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + var _tryRefreshRepeater = function(id, eventInfo) { + var idIndex = _repeatersToRefresh.indexOf(id); + if(idIndex == -1) return; + + $ax.splice(_repeatersToRefresh, idIndex, 1); + $ax.repeater.refreshRepeater(id, eventInfo); + }; + + _action.tryRefreshRepeaters = function(ids, eventInfo) { + for(var i = 0; i < ids.length; i++) _tryRefreshRepeater(ids[i], eventInfo); + }; + + _actionHandlers.scrollToWidget = function(eventInfo, actions, index) { + var action = actions[index]; + var elementIds = $ax.getElementIdsFromPath(action.objectPath, eventInfo); + if(elementIds.length > 0) $ax('#' + elementIds[0]).scroll(action.options); + + _dispatchAction(eventInfo, actions, index + 1); + }; + + + _actionHandlers.enableDisableWidgets = function(eventInfo, actions, index) { + var action = actions[index]; + for(var i = 0; i < action.pathToInfo.length; i++) { + var elementIds = $ax.getElementIdsFromPath(action.pathToInfo[i].objectPath, eventInfo); + var enable = action.pathToInfo[i].enableDisableInfo.enable; + for(var j = 0; j < elementIds.length; j++) $ax('#' + elementIds[j]).enabled(enable); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.setImage = function(eventInfo, actions, index) { + var oldTarget = eventInfo.targetElement; + var action = actions[index]; + var view = $ax.adaptive.currentViewId; + + eventInfo.image = true; + for(var i = 0; i < action.imagesToSet.length; i++) { + var imgInfo = action.imagesToSet[i]; + imgInfo = view ? imgInfo.adaptive[view] : imgInfo.base; + var elementIds = $ax.getElementIdsFromPath(action.imagesToSet[i].objectPath, eventInfo); + + for(var j = 0; j < elementIds.length; j++) { + var elementId = elementIds[j]; + + eventInfo.targetElement = elementId; + var evaluatedImgs = _evaluateImages(imgInfo, eventInfo); + + var img = evaluatedImgs.normal; + if($ax.style.IsWidgetDisabled(elementId)) { + if(imgInfo.disabled) img = evaluatedImgs.disabled; + } else if($ax.style.IsWidgetSelected(elementId)) { + if(imgInfo.selected) img = evaluatedImgs.selected; + } else if($ax.event.mouseDownObjectId == elementId && imgInfo.mouseDown) img = evaluatedImgs.mouseDown; + else if($ax.event.mouseOverIds.indexOf(elementId) != -1 && imgInfo.mouseOver) { + img = evaluatedImgs.mouseOver; + //Update mouseOverObjectId + var currIndex = $ax.event.mouseOverIds.indexOf($ax.event.mouseOverObjectId); + var imgIndex = $ax.event.mouseOverIds.indexOf(elementId); + if(currIndex < imgIndex) $ax.event.mouseOverObjectId = elementId; + } + + // $('#' + $ax.repeater.applySuffixToElementId(elementId, '_img')).attr('src', img); + $jobj($ax.style.GetImageIdFromShape(elementId)).attr('src', img); + + //Set up overrides + $ax.style.mapElementIdToImageOverrides(elementId, evaluatedImgs); + $ax.style.updateElementIdImageStyle(elementId); + } + } + eventInfo.targetElement = oldTarget; + eventInfo.image = false; + + _dispatchAction(eventInfo, actions, index + 1); + }; + + var _evaluateImages = function(imgInfo, eventInfo) { + var retVal = {}; + for(var state in imgInfo) { + if(!imgInfo.hasOwnProperty(state)) continue; + var img = imgInfo[state].path || $ax.expr.evaluateExpr(imgInfo[state].literal, eventInfo); + if(!img) img = $axure.utils.getTransparentGifPath(); + retVal[state] = img; + } + return retVal; + }; + + $ax.clearRepeaterImageOverrides = function(repeaterId) { + var childIds = $ax.getChildElementIdsForRepeater(repeaterId); + for(var i = childIds; i < childIds.length; i++) $ax.style.deleteElementIdToImageOverride(childIds[i]); + }; + + _actionHandlers.setFocusOnWidget = function(eventInfo, actions, index) { + var action = actions[index]; + if(action.objectPaths.length > 0) { + var elementIds = $ax.getElementIdsFromPath(action.objectPaths[0], eventInfo); + if(elementIds.length > 0) { + $ax('#' + elementIds[0]).focus(); + //if select text and not in placeholder mode, then select all text + if(action.selectText && !$ax.placeholderManager.isActive(elementIds[0])) { + var elementChildren = document.getElementById(elementIds[0]).children; + //find the input or textarea element + for(var i = 0; i < elementChildren.length; i++) { + if (elementChildren[i].id.indexOf('_input') == -1) continue; + var elementTagName = elementChildren[i].tagName; + if(elementTagName && (elementTagName.toLowerCase() == "input" || elementTagName.toLowerCase() == "textarea")) { + elementChildren[i].select(); + } + } + } + } + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.expandCollapseTree = function(eventInfo, actions, index) { + var action = actions[index]; + for(var i = 0; i < action.pathToInfo.length; i++) { + var pair = action.pathToInfo[i]; + var elementIds = $ax.getElementIdsFromPath(pair.treeNodePath, eventInfo); + for(var j = 0; j < elementIds.length; j++) $ax('#' + elementIds[j]).expanded(pair.expandCollapseInfo.expand); + } + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.other = function(eventInfo, actions, index) { + var action = actions[index]; + $ax.navigate({ + url: $axure.utils.getOtherPath() + "#other=" + encodeURI(action.otherDescription), + target: "popup", + includeVariables: false, + popupOptions: action.popup + }); + + _dispatchAction(eventInfo, actions, index + 1); + }; + + _actionHandlers.fireEvents = function(eventInfo, actions, index) { + var action = actions[index]; + //look for the nearest element id + + var objId = eventInfo.srcElement; + var obj = $ax.getObjectFromElementId(objId); + var rdoId = obj ? $ax.getRdoParentFromElementId(objId) : ""; + var rdo = $ax.getObjectFromElementId(rdoId); + var page = rdo ? $ax.pageData.masters[rdo.masterId] : $ax.pageData.page; + + // Check if rdo should be this + var oldIsMasterEvent = eventInfo.isMasterEvent; + if (obj && $ax.public.fn.IsReferenceDiagramObject(obj.type) && eventInfo.isMasterEvent) { + rdoId = objId; + rdo = obj; + page = $ax.pageData.masters[rdo.masterId]; + } + + for(var i = 0; i < action.firedEvents.length; i++) { + var firedEvent = action.firedEvents[i]; + var isPage = firedEvent.objectPath.length == 0; + var targetObjIds = isPage ? [rdoId] : $ax.getElementIdsFromPath(firedEvent.objectPath, eventInfo); + for (var j = 0; j < targetObjIds.length; j++) { + var targetObjId = targetObjIds[j]; + var targetObj = isPage ? rdo : $ax.getObjectFromElementId(targetObjId); + + eventInfo.srcElement = targetObjId || ''; + + eventInfo.isMasterEvent = false; + var raisedEvents = firedEvent.raisedEventIds; + if(raisedEvents) { + for(var k = 0; k < raisedEvents.length; k++) { + var event = targetObj.interactionMap && targetObj.interactionMap.raised && targetObj.interactionMap.raised[raisedEvents[k]]; + if(event) $ax.event.handleEvent(targetObjId, eventInfo, event, false, true); + } + } + + if(isPage) { + eventInfo.isMasterEvent = true; + eventInfo.label = $ax.pageData.page.name; + eventInfo.friendlyType = 'Page'; + } + + var firedTarget = isPage ? page : targetObj; + var firedEventNames = firedEvent.firedEventNames; + if(firedEventNames) { + for(k = 0; k < firedEventNames.length; k++) { + event = firedTarget.interactionMap && firedTarget.interactionMap[firedEventNames[k]]; + if(event) $ax.event.handleEvent(isPage ? '' : targetObjId, eventInfo, event, false, true); + } + } + if(isPage) eventInfo.isMasterEvent = oldIsMasterEvent; + } + eventInfo.srcElement = objId; + + eventInfo.isMasterEvent = oldIsMasterEvent; + } + + _dispatchAction(eventInfo, actions, index + 1); + }; +}); diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/adaptive.js b/codes/agent/game-docker/api/document/resources/scripts/axure/adaptive.js new file mode 100644 index 0000000..758467c --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/adaptive.js @@ -0,0 +1,507 @@ +$axure.internal(function($ax) { + $ax.adaptive = {}; + + $axure.utils.makeBindable($ax.adaptive, ["viewChanged"]); + + var _auto = true; + var _autoIsHandledBySidebar = false; + + var _views; + var _idToView; + var _enabledViews = []; + + var _initialViewToLoad; + var _initialViewSizeToLoad; + + var _loadFinished = false; + $ax.adaptive.loadFinished = function() { + if(_loadFinished) return; + _loadFinished = true; + if($ax.adaptive.currentViewId) $ax.viewChangePageAndMasters(); + else $ax.postAdaptiveViewChanged(); + }; + + var _handleResize = function(forceSwitchTo) { + if(!_auto) return; + if(_auto && _autoIsHandledBySidebar && !forceSwitchTo) return; + + var $window = $(window); + var height = $window.height(); + var width = $window.width(); + + var toView = _getAdaptiveView(width, height); + var toViewId = toView && toView.id; + + _switchView(toViewId, forceSwitchTo); + }; + + var _setAuto = $ax.adaptive.setAuto = function(val) { + if(_auto != val) { + _auto = Boolean(val); + } + }; + + var _setLineImage = function(id, imageUrl) { + var imageQuery = $jobj(id).attr('src', imageUrl); + if(imageUrl.indexOf(".png") > -1) $ax.utils.fixPng(imageQuery[0]); + }; + + var _switchView = function (viewId, forceSwitchTo) { + if(!$ax.pageData.isAdaptiveEnabled) return; + + var previousViewId = $ax.adaptive.currentViewId; + if(typeof previousViewId == 'undefined') previousViewId = ''; + if(typeof viewId == 'undefined') viewId = ''; + if (viewId == previousViewId) { + if(forceSwitchTo) $ax.postAdaptiveViewChanged(forceSwitchTo); + return; + } + + $ax('*').each(function(obj, elementId) { + if (!$ax.public.fn.IsTreeNodeObject(obj.type)) return; + if(!obj.hasOwnProperty('isExpanded')) return; + + var query = $ax('#' + elementId); + var defaultExpanded = obj.isExpanded; + + query.expanded(defaultExpanded); + }); + + // reset all the positioning on the style tags, including size and transformation + $axure('*').each(function(diagramObject, elementId) { + var element = document.getElementById(elementId); + if(element && !diagramObject.isContained) { + var resetCss = { + top: "", left: "", width: "", height: "", opacity: "", + transform: "", webkitTransform: "", MozTransform: "", msTransform: "", OTransform: "" + }; + var query = $(element); + var children = query.children(); + var sketchyImage = $('#' + $ax.repeater.applySuffixToElementId(elementId, '_image_sketch')); + var textChildren = query.children('div.text'); + + query.css(resetCss); + if(children) children.css(resetCss); + if(sketchyImage) sketchyImage.css(resetCss); + if(textChildren) textChildren.css(resetCss); + + $ax.dynamicPanelManager.resetFixedPanel(diagramObject, element); + $ax.dynamicPanelManager.resetAdaptivePercentPanel(diagramObject, element); + } + }); + + $ax.adaptive.currentViewId = viewId; // we need to set this so the enabled and selected styles will apply properly + if(previousViewId) { + $ax.style.clearAdaptiveStyles(); + $('*').removeClass(previousViewId); + } else { + $ax.style.reselectElements(); + } + + $axure('*').each(function(obj, elementId) { + $ax.style.updateElementIdImageStyle(elementId); // When image override exists, fix styling/borders + }); + + // reset all the images only if we're going back to the default view + if(!viewId) { + _updateInputVisibility('', $axure('*')); + $axure('*').each(function(diagramObject, elementId) { + $ax.placeholderManager.refreshPlaceholder(elementId); + + var images = diagramObject.images; + if(diagramObject.type == 'horizontalLine' || diagramObject.type == 'verticalLine') { + var startImg = images['start~']; + _setLineImage(elementId + "_start", startImg); + var endImg = images['end~']; + _setLineImage(elementId + "_end", endImg); + var lineImg = images['line~']; + _setLineImage(elementId + "_line", lineImg); + } else if(diagramObject.type == $ax.constants.CONNECTOR_TYPE) { + _setAdaptiveConnectorImages(elementId, images, ''); + } else if(images) { + if (diagramObject.generateCompound) { + + if($ax.style.IsWidgetDisabled(elementId)) { + disabledImage = _getImageWithTag(images, 'disabled~'); + if(disabledImage) $ax.style.applyImage(elementId, disabledImage, 'disabled'); + return; + } + if($ax.style.IsWidgetSelected(elementId)) { + selectedImage = _getImageWithTag(images, 'selected~'); + if(selectedImage) $ax.style.applyImage(elementId, selectedImage, 'selected'); + return; + } + $ax.style.applyImage(elementId, _getImageWithTag(images, 'normal~')); + } else { + if ($ax.style.IsWidgetDisabled(elementId)) { + var disabledImage = $ax.style.getElementImageOverride(elementId, 'disabled') || images['disabled~']; + if (disabledImage) $ax.style.applyImage(elementId, disabledImage, 'disabled'); + return; + } + if ($ax.style.IsWidgetSelected(elementId)) { + var selectedImage = $ax.style.getElementImageOverride(elementId, 'selected') || images['selected~']; + if (selectedImage) $ax.style.applyImage(elementId, selectedImage, 'selected'); + return; + } + $ax.style.applyImage(elementId, $ax.style.getElementImageOverride(elementId, 'normal') || images['normal~']); + } + } + + var child = $jobj(elementId).children('.text'); + if(child.length) $ax.style.transformTextWithVerticalAlignment(child[0].id, function() { }); + }); + // we have to reset visibility if we aren't applying a new view + $ax.visibility.resetLimboAndHiddenToDefaults(); + $ax.repeater.refreshAllRepeaters(); + $ax.dynamicPanelManager.updateAllFitPanels(); + $ax.dynamicPanelManager.updatePercentPanelCache($ax('*')); + } else { + $ax.visibility.clearLimboAndHidden(); + _applyView(viewId); + $ax.repeater.refreshAllRepeaters(); + } + + $ax.adaptive.triggerEvent('viewChanged', {}); + if(_loadFinished) $ax.viewChangePageAndMasters(forceSwitchTo); + }; + + var _getImageWithTag = function(image, tag) { + var flattened = {}; + for (var component in image) { + var componentImage = image[component][tag]; + if(componentImage) flattened[component] = componentImage; + } + return flattened; + } + + // gets if input is hidden due to sketch + var BORDER_WIDTH = "borderWidth"; + var COLOR_STYLE = "colorStyle"; + var SKETCH_FACTOR = "sketchFactor"; + var _areInputsHidden = function(viewId) { + var chain = _getAdaptiveIdChain(viewId); + var page = $ax.pageData.page; + var adaptiveStyles = page.adaptiveStyles; + // keep track of props that are not sketchy, as you continue to climb up your parents; + var notSketch = []; + for(var i = chain.length - 1; i >= -1; i--) { + var style = i == -1 ? page.style : adaptiveStyles[chain[i]]; + if(notSketch.indexOf(BORDER_WIDTH) == -1 && style.hasOwnProperty(BORDER_WIDTH)) { + if(style[BORDER_WIDTH] != 0) return true; + notSketch.push(BORDER_WIDTH); + } + if(notSketch.indexOf(COLOR_STYLE) == -1 && style.hasOwnProperty(COLOR_STYLE)) { + if(style[COLOR_STYLE] != 'appliedColor') return true; + notSketch.push(COLOR_STYLE); + } + if(notSketch.indexOf(SKETCH_FACTOR) == -1 && style.hasOwnProperty(SKETCH_FACTOR)) { + if(style[SKETCH_FACTOR] != 0) return true; + notSketch.push(SKETCH_FACTOR); + } + } + return false; + }; + + var _updateInputVisibility = function(viewId, query) { + var func = _areInputsHidden(viewId) ? 'addClass' : 'removeClass'; + query.each(function(obj, elementId) { + var input = $jobj($ax.repeater.applySuffixToElementId(elementId, '_input')); + if(input.length == 0) return; + input[func]('form_sketch'); + }); + }; + + // gets the inheritance chain of a particular view. + var _getAdaptiveIdChain = $ax.adaptive.getAdaptiveIdChain = function(viewId) { + if(!viewId) return []; + var view = _idToView[viewId]; + var chain = []; + var current = view; + while(current) { + chain[chain.length] = current.id; + current = _idToView[current.baseViewId]; + } + return chain.reverse(); + }; + + var _getPageStyle = $ax.adaptive.getPageStyle = function() { + var currentViewId = $ax.adaptive.currentViewId; + var adaptiveChain = _getAdaptiveIdChain(currentViewId); + + var currentStyle = $.extend({}, $ax.pageData.page.style); + for(var i = 0; i < adaptiveChain.length; i++) { + var viewId = adaptiveChain[i]; + $.extend(currentStyle, $ax.pageData.page.adaptiveStyles[viewId]); + } + + return currentStyle; + }; + + var _setAdaptiveLineImages = function(elementId, images, viewIdChain) { + for(var i = viewIdChain.length - 1; i >= 0; i--) { + var viewId = viewIdChain[i]; + var startImg = images['start~' + viewId]; + if(startImg) { + _setLineImage(elementId + "_start", startImg); + var endImg = images['end~' + viewId]; + _setLineImage(elementId + "_end", endImg); + var lineImg = images['line~' + viewId]; + _setLineImage(elementId + "_line", lineImg); + break; + } + } + }; + + var _setAdaptiveConnectorImages = function (elementId, images, view) { + var conn = $jobj(elementId); + var count = conn.children().length-1; // -1 for rich text panel + for(var i = 0; i < count; i++) { + var img = images['' + i + '~' + view]; + $jobj(elementId + '_seg' + i).attr('src', img); + } + }; + + var _applyView = $ax.adaptive.applyView = function(viewId, query) { + var limboIds = {}; + var hiddenIds = {}; + + var jquery; + if(query) { + jquery = query.jQuery(); + jquery = jquery.add(jquery.find('*')); + var jqueryAnn = $ax.annotation.jQueryAnn(query); + jquery = jquery.add(jqueryAnn); + } else { + jquery = $('*'); + query = $ax('*'); + } + jquery.addClass(viewId); + _updateInputVisibility(viewId, query); + var viewIdChain = _getAdaptiveIdChain(viewId); + // this could be made more efficient by computing it only once per object + query.each(function(diagramObject, elementId) { + _applyAdaptiveViewOnObject(diagramObject, elementId, viewIdChain, viewId, limboIds, hiddenIds); + }); + + $ax.visibility.addLimboAndHiddenIds(limboIds, hiddenIds, query); + $ax.dynamicPanelManager.updateAllFitPanels(); + $ax.dynamicPanelManager.updatePercentPanelCache(query); + }; + + var _applyAdaptiveViewOnObject = function(diagramObject, elementId, viewIdChain, viewId, limboIds, hiddenIds) { + var adaptiveChain = []; + for(var i = 0; i < viewIdChain.length; i++) { + var viewId = viewIdChain[i]; + var viewStyle = diagramObject.adaptiveStyles[viewId]; + if(viewStyle) { + adaptiveChain[adaptiveChain.length] = viewStyle; + if (viewStyle.size) $ax.public.fn.convertToSingleImage($jobj(elementId)); + } + } + + var state = $ax.style.generateState(elementId); + + // set the image + var images = diagramObject.images; + if(images) { + if(diagramObject.type == 'horizontalLine' || diagramObject.type == 'verticalLine') { + _setAdaptiveLineImages(elementId, images, viewIdChain); + } else if (diagramObject.type == $ax.constants.CONNECTOR_TYPE) { + _setAdaptiveConnectorImages(elementId, images, viewId); + } else if (diagramObject.generateCompound) { + var compoundUrl = _matchImageCompound(diagramObject, elementId, viewIdChain, state); + if (compoundUrl) $ax.style.applyImage(elementId, compoundUrl, state); + }else { + var imgUrl = _matchImage(elementId, images, viewIdChain, state); + if(imgUrl) $ax.style.applyImage(elementId, imgUrl, state); + } + // for(var i = viewIdChain.length - 1; i >= 0; i--) { + // var viewId = viewIdChain[i]; + // var imgUrl = $ax.style.getElementImageOverride(elementId, state) || images[state + '~' + viewId] || images['normal~' + viewId]; + // if(imgUrl) { + // $ax.style.applyImage(elementId, imgUrl, state); + // break; + // } + // } + + // } + } + // addaptive override style (not including default style props) + var adaptiveStyle = $ax.style.computeAllOverrides(elementId, undefined, state, viewId); + + // this style INCLUDES the object's my style + var compoundStyle = $.extend({}, diagramObject.style, adaptiveStyle); + + //$ax.style.setAdaptiveStyle(elementId, adaptiveStyle); + if(!diagramObject.isContained) { + $ax.style.setAdaptiveStyle(elementId, adaptiveStyle); + } + + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + if(compoundStyle.limbo && !diagramObject.isContained) limboIds[scriptId] = true; + // sigh, javascript. we need the === here because undefined means not overriden + if(compoundStyle.visible === false) hiddenIds[scriptId] = true; + }; + + var _matchImage = function(id, images, viewIdChain, state) { + var override = $ax.style.getElementImageOverride(id, state); + if(override) return override; + + if(!images) return undefined; + + // first check all the images for this state + for(var i = viewIdChain.length - 1; i >= 0; i--) { + var viewId = viewIdChain[i]; + var img = images[state + "~" + viewId]; + if(img) return img; + } + // check for the default state style + var defaultStateImage = images[state + '~']; + if(defaultStateImage) return defaultStateImage; + + state = $ax.style.progessState(state); + if(state) return _matchImage(id, images, viewIdChain, state); + + // SHOULD NOT REACH HERE! NORMAL SHOULD ALWAYS CATCH AT THE DEFAULT! + return images['normal~']; // this is the default + }; + + var _matchImageCompound = function(diagramObject, id, viewIdChain, state) { + var images = []; + for(var i = 0; i < diagramObject.compoundChildren.length; i++) { + var component = diagramObject.compoundChildren[i]; + images[component] = _matchImage(id, diagramObject.images[component], viewIdChain, state); + } + return images; + }; + + + + $ax.adaptive.getImageForStateAndView = function(id, state) { + var viewIdChain = _getAdaptiveIdChain($ax.adaptive.currentViewId); + var diagramObject = $ax.getObjectFromElementId(id); + if (diagramObject.generateCompound) return _matchImageCompound(diagramObject, id, viewIdChain, state); + else return _matchImage(id, diagramObject.images, viewIdChain, state); + }; + + var _getAdaptiveView = function(winWidth, winHeight) { + var _isViewOneGreaterThanTwo = function(view1, view2) { + return view1.size.width > view2.size.width || (view1.size.width == view2.size.width && view1.size.height > view2.size.height); + }; + + var _isViewOneLessThanTwo = function(view1, view2) { + var width2 = view2.size.width || 1000000; // artificially large number + var height2 = view2.size.height || 1000000; + + var width1 = view1.size.width || 1000000; + var height1 = view1.size.height || 1000000; + + return width1 < width2 || (width1 == width2 && height1 < height2); + }; + + var _isWindowGreaterThanView = function(view, width, height) { + return width >= view.size.width && height >= view.size.height; + }; + + var _isWindowLessThanView = function(view1, width, height) { + var viewWidth = view1.size.width || 1000000; + var viewHeight = view1.size.height || 1000000; + + return width <= viewWidth && height <= viewHeight; + }; + + var greater = undefined; + var less = undefined; + + for(var i = 0; i < _enabledViews.length; i++) { + var view = _enabledViews[i]; + if(view.condition == ">=") { + if(_isWindowGreaterThanView(view, winWidth, winHeight)) { + if(!greater || _isViewOneGreaterThanTwo(view, greater)) greater = view; + } + } else { + if(_isWindowLessThanView(view, winWidth, winHeight)) { + if(!less || _isViewOneLessThanTwo(view, less)) less = view; + } + } + } + return less || greater; + }; + + var _isAdaptiveInitialized = function() { + return typeof _idToView != 'undefined'; + }; + + $ax.messageCenter.addMessageListener(function(message, data) { + //If the adaptive plugin hasn't been initialized yet then + //save the view to load so that it can get set when initialize occurs + if(message == 'switchAdaptiveView') { + var href = window.location.href.split('#')[0]; + var lastSlash = href.lastIndexOf('/'); + href = href.substring(lastSlash + 1); + if(href != data.src) return; + + var view = data.view == 'auto' ? undefined : (data.view == 'default' ? '' : data.view); + + if(!_isAdaptiveInitialized()) { + _initialViewToLoad = view; + } else _handleLoadViewId(view); + } else if(message == 'setAdaptiveViewForSize') { + _autoIsHandledBySidebar = true; + if(!_isAdaptiveInitialized()) { + _initialViewSizeToLoad = data; + } else _handleSetViewForSize(data.width, data.height); + } + }); + + $ax.adaptive.setAdaptiveView = function(view) { + var viewIdForSitemapToUnderstand = view == 'auto' ? undefined : (view == 'default' ? '' : view); + + if(!_isAdaptiveInitialized()) { + _initialViewToLoad = viewIdForSitemapToUnderstand; + } else _handleLoadViewId(viewIdForSitemapToUnderstand); + }; + + $ax.adaptive.initialize = function() { + _views = $ax.document.adaptiveViews; + _idToView = {}; + + if(_views && _views.length > 0) { + for(var i = 0; i < _views.length; i++) { + var view = _views[i]; + _idToView[view.id] = view; + } + + var enabledViewIds = $ax.document.configuration.enabledViewIds; + for(var i = 0; i < enabledViewIds.length; i++) { + _enabledViews[_enabledViews.length] = _idToView[enabledViewIds[i]]; + } + + if(_autoIsHandledBySidebar && _initialViewSizeToLoad) _handleSetViewForSize(_initialViewSizeToLoad.width, _initialViewSizeToLoad.height); + else _handleLoadViewId(_initialViewToLoad); + } + + $axure.resize(function(e) { + _handleResize(); + $ax.postResize(e); //window resize fires after view changed + }); + }; + + var _handleLoadViewId = function (loadViewId, forceSwitchTo) { + if(typeof loadViewId != 'undefined') { + _setAuto(false); + _switchView(loadViewId != 'default' ? loadViewId : '', forceSwitchTo); + } else { + _setAuto(true); + _handleResize(forceSwitchTo); + } + }; + + var _handleSetViewForSize = function (width, height) { + if(!_auto) return; + + var toView = _getAdaptiveView(width, height); + var toViewId = toView && toView.id; + _switchView(toViewId); + }; +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/annotation.js b/codes/agent/game-docker/api/document/resources/scripts/axure/annotation.js new file mode 100644 index 0000000..d5f3b8c --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/annotation.js @@ -0,0 +1,176 @@ +// ******* Annotation MANAGER ******** // +$axure.internal(function($ax) { + var NOTE_SIZE = 10; + + var _annotationManager = $ax.annotation = {}; + + var _updateLinkLocations = $ax.annotation.updateLinkLocations = function(textId) { + var diagramObject = $ax.getObjectFromElementId(textId); + var rotation = (diagramObject && diagramObject.style.rotation); + var shapeId = $ax.style.GetShapeIdFromText(textId); + + //we have to do this because webkit reports the post-transform position but when you set + //positions it's pre-transform + if(WEBKIT && rotation) { + //we can dynamiclly rotate a widget now, show need to remember the transform rather than just remove it + //here jquery.css will return 'none' if element is display none + var oldShapeTransform = document.getElementById(shapeId).style['-webkit-transform']; + var oldTextTransform = document.getElementById(textId).style['-webkit-transform']; + $('#' + shapeId).css('-webkit-transform', 'scale(1)'); + $('#' + textId).css('-webkit-transform', 'scale(1)'); + } + + $('#' + textId).find('span[id$="_ann"]').each(function(index, value) { + var elementId = value.id.replace('_ann', ''); + + var annPos = $(value).position(); + var left = annPos.left - NOTE_SIZE; + var top = annPos.top; + + $('#' + elementId + 'Note').css('left', left).css('top', top); + }); + + //undo the transform reset + if(WEBKIT && rotation) { + $('#' + shapeId).css('-webkit-transform', oldShapeTransform || ''); + $('#' + textId).css('-webkit-transform', oldTextTransform || ''); + } + }; + + var dialogs = {}; + $ax.annotation.ToggleWorkflow = function(event, id, width, height) { + + if(dialogs[id]) { + var $dialog = dialogs[id]; + // reset the dialog + dialogs[id] = undefined; + if($dialog.dialog("isOpen")) { + $dialog.dialog("close"); + return; + } + } + + // we'll need to save the scroll position just for stupid IE which will skip otherwise + var win = $(window); + var scrollY = win.scrollTop(); + var scrollX = win.scrollLeft(); + + var bufferH = 10; + var bufferV = 10; + var blnLeft = false; + var blnAbove = false; + var sourceTop = event.pageY - scrollY; + var sourceLeft = event.pageX - scrollX; + + if(sourceLeft > width + bufferH) { + blnLeft = true; + } + if(sourceTop > height + bufferV) { + blnAbove = true; + } + + var top = 0; + var left = 0; + if(blnAbove) top = sourceTop - height - 20; + else top = sourceTop + 10; + if(blnLeft) left = sourceLeft - width - 4; + else left = sourceLeft - 6; + + $ax.globals.MaxZIndex = $ax.globals.MaxZIndex + 1; + if(IE_10_AND_BELOW) height += 50; + + var dObj = $ax.getObjectFromElementId(id); + var ann = dObj.annotation; + var $dialog = $('
    ') + .appendTo('body') + .html($ax.legacy.GetAnnotationHtml(ann)) + .dialog({ + title: dObj.label, + width: width, + height: height, + minHeight: 150, + zIndex: $ax.globals.MaxZIndex, + position: [left, top], + dialogClass: 'dialogFix', + autoOpen: false + }); + $dialog.parent().appendTo('#base'); + $dialog.dialog('open'); + dialogs[id] = $dialog; + + // scroll ... just for IE + window.scrollTo(scrollX, scrollY); + }; + + $ax.annotation.InitializeAnnotations = function (query) { + if(!$ax.document.configuration.showAnnotations) return; + + query.each(function(dObj, elementId) { + if(!dObj.annotation) return; + + if(dObj.type == 'hyperlink') { + var textId = $ax.style.GetTextIdFromLink(elementId); + + var elementIdQuery = $('#' + elementId); + elementIdQuery.after(""); + + if($ax.document.configuration.useLabels) { + var label = $('#' + elementId).attr("data-label"); + if(!label || label == "") label = "?"; + $('#' + textId).append("
    " + label + "
    "); + } else { + $('#' + textId).append("
    "); + } + $('#' + elementId + 'Note').click(function(e) { + $ax.annotation.ToggleWorkflow(e, elementId, 300, 200, false); + return false; + }); + + _updateLinkLocations(textId); + } else { + if($ax.document.configuration.useLabels) { + var label = $('#' + elementId).attr("data-label"); + if(!label || label == "") label = "?"; + $('#' + elementId + "_ann").append("
    " + label + "
    "); + } else { + $('#' + elementId + "_ann").append("
    "); + } + $('#' + elementId + 'Note').click(function(e) { + $ax.annotation.ToggleWorkflow(e, elementId, 300, 200, false); + return false; + }); + } + + $('#' + elementId + 'Note.annnoteimage').append("
    "); + }); + }; + + $ax.annotation.jQueryAnn = function(query) { + var elementIds = []; + query.each(function(diagramObject, elementId) { + if(diagramObject.annotation) elementIds[elementIds.length] = elementId; + }); + var elementIdSelectors = jQuery.map(elementIds, function(elementId) { return '#' + elementId + '_ann'; }); + var jQuerySelectorText = (elementIdSelectors.length > 0) ? elementIdSelectors.join(', ') : ''; + return $(jQuerySelectorText); + }; + + $(window.document).ready(function() { + $ax.annotation.InitializeAnnotations($ax(function(dObj) { return dObj.annotation; })); + + $ax.messageCenter.addMessageListener(function(message, data) { + //If the annotations are being hidden via the Sitemap toggle button, hide any open dialogs + if(message == 'annotationToggle') { + if(data == false) { + for(var index in dialogs) { + var $dialog = dialogs[index]; + if($dialog.dialog("isOpen")) { + $dialog.dialog("close"); + } + } + } + } + }); + }); + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/axQuery.js b/codes/agent/game-docker/api/document/resources/scripts/axure/axQuery.js new file mode 100644 index 0000000..e41b48f --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/axQuery.js @@ -0,0 +1,357 @@ +$axure = function(query) { + return $axure.query(query); +}; + +// ******* AxQuery and Page metadata ******** // +(function() { + var $ax = function() { + var returnVal = $axure.apply(this, arguments); + var axFn = $ax.fn; + for (var key in axFn) { + returnVal[key] = axFn[key]; + } + + return returnVal; + }; + + $ax.public = $axure; + $ax.fn = {}; + + $axure.internal = function(initFunction) { + //Attach messagecenter to $ax object so that it can be used in viewer.js, etc in internal scope + if(!$ax.messageCenter) $ax.messageCenter = $axure.messageCenter; + + return initFunction($ax); + }; + + var _lastFiredResize = 0; + var _resizeFunctions = []; + var _lastTimeout; + var _fireResize = function() { + if (_lastTimeout) window.clearTimeout(_lastTimeout); + _lastTimeout = undefined; + _lastFiredResize = new Date().getTime(); + for(var i = 0; i < _resizeFunctions.length; i++) _resizeFunctions[i](); + }; + + $axure.resize = function(fn) { + if(fn) _resizeFunctions[_resizeFunctions.length] = fn; + else $(window).resize(); + }; + + $(window).resize(function() { + var THRESHOLD = 50; + var now = new Date().getTime(); + if(now - _lastFiredResize > THRESHOLD) { + _fireResize(); + } else if(!_lastTimeout) { + _lastTimeout = window.setTimeout(_fireResize, THRESHOLD); + } + }); + + window.$obj = function(id) { + return $ax.getObjectFromElementId(id); + }; + + window.$id = function(obj) { + return obj.scriptIds[0]; + }; + + window.$jobj = function(id) { + return $(document.getElementById(id)); + }; + + window.$jobjAll = function(id) { + return $addAll($jobj(id), id); + }; + + window.$addAll = function(jobj, id) { + return jobj.add($jobj(id + '_ann')).add($jobj(id + '_ref')); + }; + + $ax.INPUT = function(id) { return id + "_input"; }; + $ax.IsImageFocusable = function (type) { return $ax.public.fn.IsImageBox(type) || $ax.public.fn.IsVector(type) || $ax.public.fn.IsTreeNodeObject(type) || $ax.public.fn.IsTableCell(type); }; + $ax.IsTreeNodeObject = function (type) { return $ax.public.fn.IsTreeNodeObject(type); }; + $ax.IsSelectionButton = function (type) { return $ax.public.fn.IsCheckBox(type) || $ax.public.fn.IsRadioButton(type); }; + + var _fn = {}; + $axure.fn = _fn; + $axure.fn.jQuery = function() { + var elements = this.getElements(); + return $(elements); + }; + $axure.fn.$ = $axure.fn.jQuery; + + var _query = function(query, queryArg) { + var returnVal = {}; + var _axQueryObject = returnVal.query = { }; + _axQueryObject.filterFunctions = []; + + if (query == '*') { + _axQueryObject.filterFunctions[0] = function() { return true; }; + } else if (typeof(query) === 'function') { + _axQueryObject.filterFunctions[0] = query; + } else { + var firstString = $.trim(query.toString()); + if (firstString.charAt(0) == '@') { + _axQueryObject.filterFunctions[0] = function(diagramObject) { + return diagramObject.label == firstString.substring(1); + }; + } else if (firstString.charAt(0) == '#') { + _axQueryObject.elementId = firstString.substring(1); + } else { + if (firstString == 'label') { + _axQueryObject.filterFunctions[0] = function(diagramObject) { + return queryArg instanceof Array && queryArg.indexOf(diagramObject.label) > 0 || + queryArg instanceof RegExp && queryArg.test(diagramObject.label) || + diagramObject.label == queryArg; + }; + } else if(firstString == 'elementId') { + _axQueryObject.filterFunctions[0] = function(diagramObject, elementId) { + return queryArg instanceof Array && queryArg.indexOf(elementId) > 0 || + elementId == queryArg; + }; + } + } + } + + var axureFn = $axure.fn; + for (var key in axureFn) { + returnVal[key] = axureFn[key]; + } + return returnVal; + }; + $axure.query = _query; + + var _getFilterFnFromQuery = function(query) { + var filter = function(diagramObject, elementId) { + // Non diagram objects are allowed to be queryed, such as text inputs. + if (diagramObject && !$ax.public.fn.IsReferenceDiagramObject(diagramObject.type) && !document.getElementById(elementId)) return false; + var retVal = true; + for(var i = 0; i < query.filterFunctions.length && retVal; i++) { + retVal = query.filterFunctions[i](diagramObject, elementId); + } + return retVal; + }; + return filter; + }; + + $ax.public.fn.filter = function(query, queryArg) { + var returnVal = _query(query, queryArg); + + if(this.query.elementId) returnVal.query.elementId = this.query.elementId; + + //If there is already a function, offset by 1 when copying other functions over. + var offset = returnVal.query.filterFunctions[0] ? 1 : 0; + + //Copy all functions over to new array. + for(var i = 0; i < this.query.filterFunctions.length; i++) returnVal.query.filterFunctions[i+offset] = this.query.filterFunctions[i]; + + //Functions are in reverse order now + returnVal.query.filterFunctions.reverse(); + + return returnVal; + }; + + $ax.public.fn.each = function(fn) { + var filter = _getFilterFnFromQuery(this.query); + var elementIds = this.query.elementId ? [this.query.elementId] : $ax.getAllElementIds(); + for (var i = 0; i < elementIds.length; i++) { + var elementId = elementIds[i]; + var diagramObject = $ax.getObjectFromElementId(elementId); + if (filter(diagramObject, elementId)) { + fn.apply(diagramObject, [diagramObject, elementId]); + } + } + }; + + $ax.public.fn.getElements = function() { + var elements = []; + this.each(function(dObj, elementId) { + var elementById = document.getElementById(elementId); + if(elementById) elements[elements.length] = elementById; + }); + return elements; + }; + + $ax.public.fn.getElementIds = function() { + var elementIds = []; + this.each(function(dObj, elementId) { elementIds[elementIds.length] = elementId; }); + return elementIds; + }; + + // Deep means to keep getting parents parent until at the root parent. Parent is then an array instead of an id. + // Filter options: layer, rdo, repeater, item, dynamicPanel, state + $ax.public.fn.getParents = function (deep, filter) { + if(filter == '*') filter = ['layer', 'rdo', 'repeater', 'item', 'dynamicPanel', 'state']; + var elementIds = this.getElementIds(); + var parentIds = []; + + var getParent = function(elementId) { + var containerIndex = elementId.indexOf('_container'); + if(containerIndex != -1) elementId = elementId.substring(0, containerIndex); + + // Layer only references it if it is a direct layer to it + var parent = $ax.getLayerParentFromElementId(elementId); + // If layer is allowed we found parent, otherwise ignore and keep climbing + if (parent) return filter.indexOf('layer') != -1 ? parent : getParent(parent); + + // if repeater item, then just return repeater + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + var itemNum = $ax.repeater.getItemIdFromElementId(elementId); + var parentRepeater = $ax.getParentRepeaterFromScriptId(scriptId); + + // scriptId is item or repeater itself + if (parentRepeater == scriptId) { + // If you are repeater item, return your repeater + if(itemNum) return filter.indexOf('repeater') != -1 ? scriptId : getParent(scriptId); + // Otherwise you are actually at repeater, clean parentRepeater, or else you loop + parentRepeater = undefined; + } + + // if state, then just return panel + if(scriptId.indexOf('_state') != -1) { + var panelId = $ax.repeater.createElementId(scriptId.split('_')[0], itemNum); + // If dynamic panel is allowed we found parent, otherwise ignore and keep climbing + return filter.indexOf('dynamicPanel') != -1 ? panelId : getParent(panelId); + } + + var parentType = ''; + if(parentRepeater) { + parentType = 'item'; + parent = $ax.repeater.createElementId(parentRepeater, itemNum); + } + + var masterPath = $ax.getPathFromScriptId($ax.repeater.getScriptIdFromElementId(elementId)); + masterPath.pop(); + if(masterPath.length > 0) { + var masterId = $ax.getElementIdFromPath(masterPath, { itemNum: itemNum }); + if(!masterId) return undefined; + var masterRepeater = $ax.getParentRepeaterFromElementId($ax.repeater.getScriptIdFromElementId(masterId)); + if(!parentRepeater || masterRepeater) { + parentType = 'rdo'; + parent = masterId; + } + } + + var obj = $obj(elementId); + var parentDynamicPanel = obj.parentDynamicPanel; + if(parentDynamicPanel) { + // Make sure the parent if not parentRepeater, or dynamic panel is also in that repeater + // If there is a parent master, the dynamic panel must be in it, otherwise parentDynamicPanel would be undefined. + var panelPath = masterPath; + panelPath[panelPath.length] = parentDynamicPanel; + panelId = $ax.getElementIdFromPath(panelPath, { itemNum: itemNum }); + if(!panelId) return undefined; + var panelRepeater = $ax.getParentRepeaterFromElementId(panelId); + if(!parentRepeater || panelRepeater) { + parentType = 'state'; + parent = panelId + '_state' + obj.panelIndex; + } + } + + // If at top or parent type is desired, then return parent, otherwise keep climbing + return !parent || filter.indexOf(parentType) != -1 ? parent : getParent(parent); + }; + + for(var i = 0; i < elementIds.length; i++) { + var parent = getParent(elementIds[i]); + if(deep) { + var parents = []; + while(parent) { + parents[parents.length] = parent; + // If id is not a valid object, you are either repeater item or dynamic panel state + if(!$obj(parent)) parent = $ax.visibility.getWidgetFromContainer($jobj(parent).parent().attr('id')); + + parent = getParent(parent); + } + parent = parents; + } + parentIds[parentIds.length] = parent; + } + return parentIds; + }; + + // Get the path to the child, where non leaf nodes can be masters, layers, dynamic panels, and repeaters. + $ax.public.fn.getChildren = function(deep) { + var elementIds = this.getElementIds(); + var children = []; + + var getChildren = function(elementId) { + var obj = $obj(elementId); + if(!obj) return undefined; + + var isRepeater = obj.type == $ax.constants.REPEATER_TYPE; + var isDynamicPanel = obj.type == $ax.constants.DYNAMIC_PANEL_TYPE; + var isLayer = obj.type == $ax.constants.LAYER_TYPE; + var isMaster = obj.type == $ax.constants.MASTER_TYPE; + + var isMenu = obj.type == $ax.constants.MENU_OBJECT_TYPE; + var isTreeNode = obj.type == $ax.constants.TREE_NODE_OBJECT_TYPE; + var isTable = obj.type == $ax.constants.TABLE_TYPE; + //var isCompoundVector = obj.type == $ax.constants.VECTOR_SHAPE_TYPE && obj.generateCompound; + + if (isRepeater || isDynamicPanel || isLayer || isMaster || isMenu || isTreeNode || isTable) {// || isCompoundVector) { + // Find parent that children should be pulled from. Default is just the elementId query (used by table and master) + var parent = $jobj(elementId); + if(isRepeater) { + parent = $(); + var itemIds = $ax.getItemIdsForRepeater(elementId); + for(var itemIndex = 0; itemIndex < itemIds.length; itemIndex++) parent = parent.add($jobj($ax.repeater.createElementId(elementId, itemIds[itemIndex]))); + } else if(isDynamicPanel) { + // Really only need to do active state probably... + parent = $jobj(elementId).children(); + // Get through all containers + while ($(parent[0]).attr('id').indexOf('container') != -1) parent = parent.children(); + // Now at states, but want states content + parent = parent.children(); + } else if(isTreeNode) parent = $jobj($ax.repeater.applySuffixToElementId(elementId, '_children')); + + // Menu doesn't want all children, only tables and menus, so it must be handled specially + var children = isMenu ? parent.children('.ax_table').add(parent.children('.ax_menu')) : parent.children(); + children = $ax.visibility.getRealChildren(children); + + // For tree nodes you want the the button shape contained by the elementQuery too + if(isTreeNode) { + var treeNodeChildren = $jobj(elementId).children(); + for(var treeNodeIndex = 0; treeNodeIndex < treeNodeChildren.length; treeNodeIndex++) { + var treeNodeChild = $(treeNodeChildren[treeNodeIndex]); + var childObj = $obj(treeNodeChild.attr('id')); + if (childObj && $ax.public.fn.IsVector(childObj.type)) children = children.add(treeNodeChild); + } + } + + + var childrenIds = []; + for(var childIndex = 0; childIndex < children.length; childIndex++) { + var childObj = $(children[childIndex]); + var id = childObj.attr('id'); + if(typeof(id) == 'undefined' && childObj.is('a')) id = $(childObj.children()[0]).attr('id'); + // Ignore annotations and any other children that are not elements + if (id.split('_').length > 1) continue; + + childrenIds.push(id); + } + + if(deep) { + var childObjs = []; + for(var i = 0; i < childrenIds.length; i++) { + var childId = childrenIds[i]; + childObjs[i] = { id: childId, children: getChildren(childId) }; + } + childrenIds = childObjs; + } + + return childrenIds; + } + + return undefined; + }; + + for(var i = 0; i < elementIds.length; i++) { + children[children.length] = { id : elementIds[i], children : getChildren(elementIds[i])}; + } + return children; + }; + +})(); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/axQuery.std.js b/codes/agent/game-docker/api/document/resources/scripts/axure/axQuery.std.js new file mode 100644 index 0000000..7e5e694 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/axQuery.std.js @@ -0,0 +1,1240 @@ +// ******* AxQuery Plugins ******** // + +$axure.internal(function($ax) { + $ax.constants = {}; + + $ax.constants.TABLE_TYPE = 'table'; + $ax.constants.MENU_OBJECT_TYPE = 'menuObject'; + $ax.constants.MASTER_TYPE = 'master'; + $ax.constants.PAGE_TYPE = 'page'; + $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE = 'referenceDiagramObject'; + $ax.constants.REPEATER_TYPE = 'repeater'; + $ax.constants.DYNAMIC_PANEL_TYPE = 'dynamicPanel'; + $ax.constants.LAYER_TYPE = 'layer'; + $ax.constants.TEXT_BOX_TYPE = 'textBox'; + $ax.constants.TEXT_AREA_TYPE = 'textArea'; + $ax.constants.LIST_BOX_TYPE = 'listBox'; + $ax.constants.COMBO_BOX_TYPE = 'comboBox'; + $ax.constants.CHECK_BOX_TYPE = 'checkbox'; + $ax.constants.RADIO_BUTTON_TYPE = 'radioButton'; + $ax.constants.BUTTON_TYPE = 'button'; //html button + $ax.constants.IMAGE_MAP_REGION_TYPE = 'imageMapRegion'; + $ax.constants.IMAGE_BOX_TYPE = 'imageBox'; + $ax.constants.VECTOR_SHAPE_TYPE = 'vectorShape'; + $ax.constants.SNAPSHOT_TYPE = 'screenshot'; + $ax.constants.TREE_NODE_OBJECT_TYPE = 'treeNodeObject'; + $ax.constants.TABLE_CELL_TYPE = 'tableCell'; + $ax.constants.VERTICAL_LINE_TYPE = 'verticalLine'; + $ax.constants.HORIZONTAL_LINE_TYPE = 'horizontalLine'; + $ax.constants.INLINE_FRAME_TYPE = 'inlineFrame'; + $ax.constants.CONNECTOR_TYPE = 'connector'; + $ax.constants.ALL_TYPE = '*'; + + $ax.public.fn.IsTable = function (type) { return type == $ax.constants.TABLE_TYPE; } + $ax.public.fn.IsMenuObject = function (type) { return type == $ax.constants.MENU_OBJECT_TYPE; } + $ax.public.fn.IsMaster = function (type) { return type == $ax.constants.MASTER_TYPE; } + $ax.public.fn.IsPage = function (type) { return type == $ax.constants.PAGE_TYPE; } + $ax.public.fn.IsReferenceDiagramObject = function (type) { return type == $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE; } + $ax.public.fn.IsRepeater = function (type) { return type == $ax.constants.REPEATER_TYPE; } + $ax.public.fn.IsDynamicPanel = function (type) { return type == $ax.constants.DYNAMIC_PANEL_TYPE; } + $ax.public.fn.IsLayer = function (type) { return type == $ax.constants.LAYER_TYPE; } + $ax.public.fn.IsTextBox = function (type) { return type == $ax.constants.TEXT_BOX_TYPE; } + $ax.public.fn.IsTextArea = function (type) { return type == $ax.constants.TEXT_AREA_TYPE; } + $ax.public.fn.IsListBox = function (type) { return type == $ax.constants.LIST_BOX_TYPE; } + $ax.public.fn.IsComboBox = function (type) { return type == $ax.constants.COMBO_BOX_TYPE; } + $ax.public.fn.IsCheckBox = function (type) { return type == $ax.constants.CHECK_BOX_TYPE; } + $ax.public.fn.IsRadioButton = function (type) { return type == $ax.constants.RADIO_BUTTON_TYPE; } + $ax.public.fn.IsButton = function (type) { return type == $ax.constants.BUTTON_TYPE; } + $ax.public.fn.IsIamgeMapRegion = function (type) { return type == $ax.constants.IMAGE_MAP_REGION_TYPE; } + $ax.public.fn.IsImageBox = function (type) { return type == $ax.constants.IMAGE_BOX_TYPE; } + $ax.public.fn.IsVector = function (type) { return type == $ax.constants.VECTOR_SHAPE_TYPE; } + $ax.public.fn.IsSnapshot = function (type) { return type == $ax.constants.SNAPSHOT_TYPE; } + $ax.public.fn.IsTreeNodeObject = function (type) { return type == $ax.constants.TREE_NODE_OBJECT_TYPE; } + $ax.public.fn.IsTableCell = function (type) { return type == $ax.constants.TABLE_CELL_TYPE; } + $ax.public.fn.IsInlineFrame = function (type) { return type == $ax.constants.INLINE_FRAME_TYPE; } + $ax.public.fn.IsConnector = function (type) { return type == $ax.constants.CONNECTOR_TYPE; } + + var PLAIN_TEXT_TYPES = [$ax.constants.TEXT_BOX_TYPE, $ax.constants.TEXT_AREA_TYPE, $ax.constants.LIST_BOX_TYPE, + $ax.constants.COMBO_BOX_TYPE, $ax.constants.CHECK_BOX_TYPE, $ax.constants.RADIO_BUTTON_TYPE, $ax.constants.BUTTON_TYPE]; + + var _addJQueryFunction = function(name) { + $ax.public.fn[name] = function() { + var val = $.fn[name].apply(this.jQuery(), arguments); + return arguments[0] ? this : val; + }; + }; + var _jQueryFunctionsToAdd = ['text', 'val', 'css']; + for (var jqueryFunctionIndex = 0; jqueryFunctionIndex < _jQueryFunctionsToAdd.length; jqueryFunctionIndex++) _addJQueryFunction(_jQueryFunctionsToAdd[jqueryFunctionIndex]); + + + // var _addJQueryEventFunction = function(name) { + // $ax.public.fn[name] = function() { + // $.fn[name].apply(this.jQuery(), arguments); + // return this; + // }; + // }; + + // var _addJQueryEventFunction = function(name) { + // $ax.public.fn[name] = (function(nn) { + // return function() { + // $.fn[nn].apply(this.jQuery(), arguments); + // return this; + // }; + // })(name); + // }; + + var _addJQueryEventFunction = function(name) { + $ax.public.fn[name] = function() { + //With Martin - No idea why this is necessary. We tried encapsulating the function thinking it was related to closure (above), + //but that didn't fix the problem. If we don't add this Repeaters will give "Uncaught TypeError: Object # has no method 'apply'" + //here (but Indeterminately, often on larger/slower Repeaters) because it is Undefined. However it seems the catch is never hit + //if we surround the statement with the try/catch. Perhaps the try/catch block creates a scope or closure. + try { + $.fn[name].apply(this.jQuery(), arguments); + } catch(e) { + console.log("Couldn't find the event: " + name); + } + + return this; + }; + }; + var _jQueryEventFunctionsToAdd = ['click', 'mouseenter', 'mouseleave', 'bind']; + for(var jqueryEventIndex = 0; jqueryEventIndex < _jQueryEventFunctionsToAdd.length; jqueryEventIndex++) _addJQueryEventFunction(_jQueryEventFunctionsToAdd[jqueryEventIndex]); + + + $ax.public.fn.openLink = function(url, includeVariables) { + this.jQuery().each(function() { + if(!($(this).is('iframe'))) { + return; + } + + var objIframe = $(this).get(0); + + $ax.navigate({ + url: url, + target: "frame", + includeVariables: includeVariables, + frame: objIframe + }); + }); + + return this; + }; + + $ax.public.fn.SetPanelState = function(stateNumber, options, showWhenSet) { + + var animateInInfo = _getAnimateInfo(options && options.animateIn, 500); + var animateOutInfo = _getAnimateInfo(options && options.animateOut, 500); + + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + if ($ax.public.fn.IsDynamicPanel($ax.getTypeFromElementId(elementId))) { + var stateName = $ax.visibility.GetPanelStateId(elementId, Number(stateNumber) - 1); + var wasVisible = $ax.visibility.IsIdVisible(elementId); + // If compressing because you are fit to content and the change of state may change size, must be before the change. + if(options.compress && $ax.dynamicPanelManager.isIdFitToContent(elementId) && wasVisible) { + $ax.dynamicPanelManager.compressDelta(elementId, $ax.visibility.GetPanelState(elementId), stateName, options.vertical, options.compressEasing, options.compressDuration); + } + $ax.visibility.SetPanelState(elementId, stateName, animateOutInfo.easingType, animateOutInfo.direction, animateOutInfo.duration, + animateInInfo.easingType, animateInInfo.direction, animateInInfo.duration, showWhenSet); + // If compressing because of a show, must be after state is set. + if(options.compress && !wasVisible && showWhenSet) { + $ax.dynamicPanelManager.compressToggle(elementId, options.vertical, true, options.compressEasing, options.compressDuration); + } + } + } + + return this; + }; + + $ax.public.fn.show = function(options, eventInfo) { + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + + var lightboxId = $ax.repeater.applySuffixToElementId(elementId, '_lightbox'); + var lightbox = $jobj(lightboxId); + if(options && options.showType == 'lightbox') { + $ax.flyoutManager.unregisterPanel(elementId, true); + // Add lightbox if there isn't one + if(lightbox.length == 0) { + lightbox = $('
    '); + lightbox.attr('id', lightboxId); + var color = 'rgb(' + options.lightbox.r + ',' + options.lightbox.g + ',' + options.lightbox.b + ')'; + lightbox.css({ + position: 'fixed', + left: '0px', + top: '0px', + width: '10000px', + height: '10000px', + 'background-color': color, + opacity: options.lightbox.a / 255 + }); + + var parents = $ax('#' + elementId).getParents(true, ['dynamicPanel'])[0]; + var fixedParentPanelId = undefined; + for(var j = 0; j < parents.length; j++) { + var parentId = parents[j]; + if($jobj(parentId).css('z-index') != 'auto' || $ax.features.supports.mobile) { + fixedParentPanelId = parents[j]; + break; + } + } + + if(!fixedParentPanelId) $('#base').append(lightbox); + else $jobj(fixedParentPanelId).append(lightbox); + + var wasVisible = $ax.visibility.IsIdVisible(elementId); + + (function(lightbox, query) { + $ax.event.attachClick(lightbox, function() { + $ax.action.addAnimation(elementId, $ax.action.queueTypes.fade, function() { + if(!wasVisible) query.hide(); + else $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.fade); + lightbox.remove(); + }); + }); + })(lightbox, this); + } + $ax.legacy.BringToFront(lightboxId, true); + $ax.legacy.BringToFront(elementId, true); + } else if(options && options.showType == 'flyout') { + // Remove lightbox if there is one + lightbox.remove(); + + var src = eventInfo.thiswidget; + var target = $ax.getWidgetInfo(elementId); + var rects = {}; + if(src.valid) rects.src = $ax.geometry.genRect(src, true); + if(target.valid) rects.target = $ax.geometry.genRect(target, true); + $ax.flyoutManager.registerFlyout(rects, elementId, eventInfo.srcElement); + //$ax.style.AddRolloverOverride(elementId); + $ax.legacy.BringToFront(elementId); + } else { + // Remove lightbox, unregister flyout + lightbox.remove(); + $ax.flyoutManager.unregisterPanel(elementId, true); + } + _setVisibility(elementId, true, options); + } + + return this; + }; + + var _getAnimateInfo = function (options, defaultDuration, useHide) { + var animateInfo = { + duration: options && (useHide ? options.durationHide : options.duration) || defaultDuration + }; + + var easing = options && (useHide ? options.easingHide : options.easing) || 'none'; + switch (easing) { + case 'fade': + animateInfo.easingType = 'fade'; + animateInfo.direction = ''; + break; + case 'slideLeft': + animateInfo.easingType = 'swing'; + animateInfo.direction = 'left'; + break; + case 'slideRight': + animateInfo.easingType = 'swing'; + animateInfo.direction = 'right'; + break; + case 'slideUp': + animateInfo.easingType = 'swing'; + animateInfo.direction = 'up'; + break; + case 'slideDown': + ; + animateInfo.easingType = 'swing'; + animateInfo.direction = 'down'; + break; + case 'flipLeft': + animateInfo.easingType = 'flip'; + animateInfo.direction = 'left'; + break; + case 'flipRight': + animateInfo.easingType = 'flip'; + animateInfo.direction = 'right'; + break; + case 'flipUp': + animateInfo.easingType = 'flip'; + animateInfo.direction = 'up'; + break; + case 'flipDown': + animateInfo.easingType = 'flip'; + animateInfo.direction = 'down'; + break; + default: + animateInfo.easingType = 'none'; + animateInfo.direction = ''; + } + + return animateInfo; + }; + + $ax.public.fn.hide = function(options) { + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; +// var wasShown = $ax.visibility.IsIdVisible(elementId); + _setVisibility(elementId, false, options); + } + + return this; + }; + + $ax.public.fn.toggleVisibility = function(options) { + var elementIds = this.getElementIds(); + + for (var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + var show = !$ax.visibility.IsIdVisible(elementId); + _setVisibility(elementId, show, options, !show); + } + + return this; + }; + + var _setVisibility = function (elementId, value, options, useHide) { + var animateInfo = _getAnimateInfo(options, 0, useHide); + + var wasShown = $ax.visibility.IsIdVisible(elementId); + var compress = options && options.showType == 'compress' && wasShown != value; + + var compressed = false; + var onComplete = function() { + if(compress && !compressed) $ax.dynamicPanelManager.compressToggle(elementId, options.vertical, value, options.compressEasing, options.compressDuration); + compressed = true; + $ax.dynamicPanelManager.fitParentPanel(elementId); + }; + $ax.visibility.SetWidgetVisibility(elementId, { + value: value, + easing: animateInfo.easingType, + direction: animateInfo.direction, + duration: animateInfo.duration, + fire: true, + onComplete: onComplete + }); + if(compress && !compressed) $ax.dynamicPanelManager.compressToggle(elementId, options.vertical, value, options.compressEasing, options.compressDuration); + compressed = true; + + if(options && options.bringToFront) $ax.legacy.BringToFront(elementId); + }; + + $ax.public.fn.setOpacity = function(opacity, easing, duration) { + if(!easing || ! duration) { + easing = 'none'; + duration = 0; + } + + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + var onComplete = function() { + $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.fade); + }; + + var query = $jobj(elementId); + if(duration == 0 || easing == 'none') { + query.css('opacity', opacity); + onComplete(); + } else query.animate({ opacity: opacity }, { duration: duration, easing: easing, queue: false, complete: onComplete }); + } + } + + //move one widget. I didn't combine moveto and moveby, since this is in .public, and separate them maybe more clear for the user + var _move = function (elementId, x, y, options, moveTo) { + if(!options.easing) options.easing = 'none'; + if(!options.duration) options.duration = 500; + var obj = $obj(elementId); + + // Layer move using container now. + if($ax.public.fn.IsLayer(obj.type)) { + var moveInfo = $ax.move.RegisterMoveInfo(elementId, x, y, moveTo, options); + //$ax.event.raiseSyntheticEvent(elementId, "onMove"); + + //var childrenIds = $ax.public.fn.getLayerChildrenDeep(elementId, true); + //for(var i = 0; i < childrenIds.length; i++) $ax.event.raiseSyntheticEvent(childrenIds[i], 'onMove'); + + $ax.move.MoveWidget(elementId, x, y, options, moveTo, + function () { + if(options.onComplete) options.onComplete(); + $ax.dynamicPanelManager.fitParentPanel(elementId); + }, false, undefined, moveInfo); + //var childrenIds = $ax.public.fn.getLayerChildrenDeep(elementId); + //if(childrenIds.length == 0) return; + + //for(var i = 0; i < childrenIds.length - 1; i++) { + // $ax.move.MoveWidget(childrenIds[i], x, y, easing, duration, moveTo, + // function() { $ax.dynamicPanelManager.fitParentPanel(childrenIds[i]); }, false); + //} + + //$ax.move.MoveWidget(childrenIds[i], x, y, easing, duration, moveTo, + // function () { $ax.dynamicPanelManager.fitParentPanel(childrenIds[i]); }, true, null, elementId); + + } else { + var xDelta = x; + var yDelta = y; + if (moveTo) { + var jobj = $jobj(elementId); + + var left = Number(jobj.css('left').replace('px', '')); + var top = Number(jobj.css('top').replace('px', '')); + xDelta = x - left; + yDelta = y - top; + } + moveInfo = $ax.move.RegisterMoveInfo(elementId, xDelta, yDelta, false, options); + //$ax.event.raiseSyntheticEvent(elementId, "onMove"); + $ax.move.MoveWidget(elementId, xDelta, yDelta, options, false, + function () { $ax.dynamicPanelManager.fitParentPanel(elementId); }, true, undefined, moveInfo); + } + }; + + + $ax.public.fn.moveTo = function (x, y, options) { + var elementIds = this.getElementIds(); + for(var index = 0; index < elementIds.length; index++) { + _move(elementIds[index], x, y, options, true); + } + + return this; + }; + + $ax.public.fn.moveBy = function (x, y, options) { + var elementIds = this.getElementIds(); + + if(x == 0 && y == 0) { + for(var i = 0; i < elementIds.length; i++) { + var elementId = elementIds[i]; + $ax.move.nopMove(elementId); + //$ax.event.raiseSyntheticEvent(elementId, "onMove"); + $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.move); + + //if($axure.fn.IsLayer($obj(elementId).type)) { + // var childrenIds = $ax.public.fn.getLayerChildrenDeep(elementId, true); + // for(var j = 0; j < childrenIds.length; j++) $ax.event.raiseSyntheticEvent(childrenIds[j], 'onMove'); + //} + } + return this; + } + + for(var index = 0; index < elementIds.length; index++) { + _move(elementIds[index], x, y, options, false); + } + return this; + }; + + $ax.public.fn.circularMoveAndRotate = function(degreeChange, options, centerPointLeft, centerPointTop, doRotation, moveDelta, resizeOffset, rotatableMove, moveComplete) { + if(!rotatableMove) rotatableMove = { x: 0, y: 0 }; + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + + var onComplete = function () { + if (doRotation) $ax.dynamicPanelManager.fitParentPanel(elementId); + if (moveComplete) moveComplete(); + } + + $ax.move.circularMove(elementId, degreeChange, { x: centerPointLeft, y: centerPointTop }, moveDelta, rotatableMove, resizeOffset, options, true, onComplete); + if(doRotation) $ax.move.rotate(elementId, degreeChange, options.easing, options.duration, false, true, function () { $ax.dynamicPanelManager.fitParentPanel(elementId); }); + else $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.rotate); + } + }; + + $ax.public.fn.rotate = function (degree, easing, duration, to, axShouldFire) { + var elementIds = this.getElementIds(); + // this function will no longer handle compound vectors. + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + degree = parseFloat(degree); + $ax.move.rotate(elementId, degree, easing, duration, to, axShouldFire, function () { $ax.dynamicPanelManager.fitParentPanel(elementId); }); + } + }; + + $ax.public.fn.resize = function(newLocationAndSizeCss, resizeInfo, axShouldFire, moves, onCompletedFunc) { + var elementIds = this.getElementIds(); + if(!elementIds) return; + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + + var oldSize = $ax('#' + elementId).size(); + var oldWidth = oldSize.width; + var oldHeight = oldSize.height; + var query = $jobj(elementId); + + var obj = $obj(elementId); + var isDynamicPanel = $ax.public.fn.IsDynamicPanel(obj.type); + if(isDynamicPanel) { + // No longer fitToContent, calculate additional styling that needs to be done. + $ax.dynamicPanelManager.setFitToContentCss(elementId, false, oldWidth, oldHeight); + + if((obj.fixedHorizontal && obj.fixedHorizontal == 'center') || (obj.fixedVertical && obj.fixedVertical == 'middle')) { + moves = true; + var loc = $ax.dynamicPanelManager.getFixedPosition(elementId, oldWidth, oldHeight, newLocationAndSizeCss.width, newLocationAndSizeCss.height); + if(loc) { + if(loc[0] != 0 && !$ax.dynamicPanelManager.isPercentWidthPanel(obj)) newLocationAndSizeCss['margin-left'] = '+=' + loc[0]; + if(loc[1] != 0) newLocationAndSizeCss['margin-top'] = '+=' + loc[1]; + } + } + + var onComplete = function() { + $ax.flyoutManager.updateFlyout(elementId); + $ax.dynamicPanelManager.fitParentPanel(elementId); + $ax.dynamicPanelManager.updatePanelPercentWidth(elementId); + $ax.dynamicPanelManager.updatePanelContentPercentWidth(elementId); + if(axShouldFire) $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.resize); + if(moves) { + if(axShouldFire) $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.move); + } + if(onCompletedFunc) onCompletedFunc(); + $ax.event.raiseSyntheticEvent(elementId, 'onResize'); + }; + + } else { + //if contains text + var textChildren = query.children('div.text'); + if(textChildren && textChildren.length != 0) { + var textDivId = textChildren.attr('id'); + var textObj = $ax('#' + textDivId); + var leftPadding = textObj.left(); + var rightPadding = oldWidth - leftPadding - textObj.width(); + //greater or equal to 1px + var newTextWidth = Math.max(newLocationAndSizeCss.width - leftPadding - rightPadding, 1); + var textChildCss = { width: newTextWidth }; + + var textStepFunction = function() { + //change the width of the text div may effect the height + //var currentTextHeight = Number($(textChildren.children('p')[0]).css('height').replace('px', '')); + //textChildren.css('height', currentTextHeight); + var display = $ax.public.fn.displayHackStart(document.getElementById(textDivId)); + $ax.style.updateTextAlignmentForVisibility(textDivId, true); + $ax.public.fn.displayHackEnd(display); + }; + } + + //get all the other children that matters + onComplete = function() { + $ax.dynamicPanelManager.fitParentPanel(elementId); + if(axShouldFire) { + $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.resize); + if(moves) $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.move); + } + if(onCompletedFunc) onCompletedFunc(); + $ax.event.raiseSyntheticEvent(elementId, 'onResize'); + }; + } + + var children = query.children().not('div.text'); + while(children && children.length && $(children[0]).attr('id').indexOf('container') != -1) { + children = children.children().not('div.text'); + } + + if(children && children.length !== 0) { + var childAnimationArray = []; + var isConnector = $ax.public.fn.IsConnector($obj(elementId).type); + children.each(function (i, child) { + var childCss = { + width: newLocationAndSizeCss.width, + height: newLocationAndSizeCss.height + }; + + //$ax.size() use outerWidth/Height(false), which include padding and borders(no margins) + var childSizingObj = $ax('#' + child.id).size(); + var differentSizedImage = childSizingObj.width - oldWidth != 0 || childSizingObj.height - oldHeight != 0; + if ((differentSizedImage || isConnector) && child.tagName == 'IMG') { + //oldwidth is zero for connectors + var widthOffset = oldWidth ? (childSizingObj.width - oldWidth) * newLocationAndSizeCss.width / oldWidth : childSizingObj.width; + var heightOffset = oldHeight ? (childSizingObj.height - oldHeight) * newLocationAndSizeCss.height / oldHeight : childSizingObj.height; + + childCss.width += widthOffset; + childCss.height += heightOffset; + } + //there are elements like inputs, come with a padding and border, so need to use outerwidth for starting point, due to jquery 1.7 css() on width/height bugs + if($(child).css('position') === 'absolute') { + if(child.offsetLeft) { + childSizingObj.left = child.offsetLeft; + childCss.left = oldWidth ? child.offsetLeft * newLocationAndSizeCss.width / oldWidth : child.offsetLeft; //- transformedShift.x; + } + if(child.offsetTop) { + childSizingObj.top = child.offsetTop; + childCss.top = oldHeight ? child.offsetTop * newLocationAndSizeCss.height / oldHeight : child.offsetTop; //- transformedShift.y; + } + } + childAnimationArray.push({ obj: child, sizingObj: childSizingObj, sizingCss: childCss }); + }); + } + + if(!resizeInfo.easing || resizeInfo.easing == 'none') { + query.animate(newLocationAndSizeCss, 0); + if(childAnimationArray) { + $(childAnimationArray).each(function (i, animationObj) { + if(animationObj.resizeMatrixFunction) { + $(animationObj.obj).css($ax.public.fn.setTransformHowever(animationObj.resizeMatrixFunction(animationObj.width, animationObj.height))); + } else { + $(animationObj.obj).animate(animationObj.sizingCss, 0); + } + }); + } + //if(childCss) children.animate(childCss, 0); + //if(sketchyImage && sketchyImageCss) $(sketchyImage).animate(sketchyImageCss, 0); + if(textChildCss) { + textChildren.animate(textChildCss, { + duration: 0, + step: textStepFunction + }); + } + onComplete(); + } else { + if(childAnimationArray) { + $(childAnimationArray).each(function (i, animationObj) { + if(animationObj.resizeMatrixFunction) { + $(animationObj.sizingObj).animate(animationObj.sizingCss, { + queue: false, + duration: resizeInfo.duration, + easing: resizeInfo.easing, + step: function (now) { + var widthRatio = (animationObj.width - 1.0) * now + 1.0; + var heightRatio = (animationObj.height - 1.0) * now + 1.0; + $(animationObj.obj).css($ax.public.fn.setTransformHowever(animationObj.resizeMatrixFunction(widthRatio, heightRatio))); + } + }); + } else { + $(animationObj.sizingObj).animate(animationObj.sizingCss, { + queue: false, + duration: resizeInfo.duration, + easing: resizeInfo.easing, + step: function (now, tween) { + $(animationObj.obj).css(tween.prop, now); + } + }); + } + }); + } + + if(textChildCss) { + textChildren.animate(textChildCss, { + queue: false, + duration: resizeInfo.duration, + easing: resizeInfo.easing, + step: textStepFunction + }); + } + + if (isDynamicPanel) query.animate(newLocationAndSizeCss, { queue: false, duration: resizeInfo.duration, easing: resizeInfo.easing, complete: onComplete }); + + var locObj = { + left: $ax.public.fn.GetFieldFromStyle(query, 'left'), top: $ax.public.fn.GetFieldFromStyle(query, 'top'), + width: $ax.public.fn.GetFieldFromStyle(query, 'width'), height: $ax.public.fn.GetFieldFromStyle(query, 'height'), + }; + $(locObj).animate(newLocationAndSizeCss, { + queue: false, + duration: resizeInfo.duration, + easing: resizeInfo.easing, + step: function(now, tween) { + query.css(tween.prop, now); + }, + complete: onComplete + }); + } + } + }; + + $ax.public.fn.bringToFront = function() { + var elementIds = this.getElementIds(); + for(var index = 0; index < elementIds.length; index++) { $ax.legacy.BringToFront(elementIds[index]); } + return this; + }; + + $ax.public.fn.sendToBack = function() { + var elementIds = this.getElementIds(); + for(var index = 0; index < elementIds.length; index++) { $ax.legacy.SendToBack(elementIds[index]); } + return this; + }; + + $ax.public.fn.text = function() { + if(arguments[0] == undefined) { + var firstId = this.getElementIds()[0]; + + if(!firstId) { return undefined; } + + return getWidgetText(firstId); + } else { + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var currentItem = elementIds[index]; + + var widgetType = $ax.getTypeFromElementId(currentItem); + + if($ax.public.fn.IsTextBox(widgetType) || $ax.public.fn.IsTextArea(widgetType)) { //For non rtf + SetWidgetFormText(currentItem, arguments[0]); + } else { + var idRtf = '#' + currentItem; + if($(idRtf).length == 0) idRtf = '#u' + (Number(currentItem.substring(1)) + 1); + + if($(idRtf).length != 0) { + //If the richtext div already has some text in it, + //preserve only the first style and get rid of the rest + //If no pre-existing p-span tags, don't do anything + if($(idRtf).find('p').find('span').length > 0) { + $(idRtf).find('p:not(:first)').remove(); + $(idRtf).find('p').find('span:not(:first)').remove(); + + //Replace new-lines with NEWLINE token, then html encode the string, + //finally replace NEWLINE token with linebreak + var textWithLineBreaks = arguments[0].replace(/\n/g, '--NEWLINE--'); + var textHtml = $('
    ').text(textWithLineBreaks).html(); + $(idRtf).find('span').html(textHtml.replace(/--NEWLINE--/g, '
    ')); + } + } + } + } + + return this; + } + }; + + var getWidgetText = function(id) { + var idQuery = $jobj(id); + var inputQuery = $jobj($ax.INPUT(id)); + if(inputQuery.length) idQuery = inputQuery; + + if (idQuery.is('input') && ($ax.public.fn.IsCheckBox(idQuery.attr('type')) || idQuery.attr('type') == 'radio')) { + idQuery = idQuery.parent().find('label').find('div'); + } + + if(idQuery.is('div')) { + var $rtfObj = idQuery.hasClass('text') ? idQuery : idQuery.find('.text'); + if($rtfObj.length == 0) return undefined; + + var textOut = ''; + $rtfObj.children('p').each(function(index) { + if(index != 0) textOut += '\n'; + + //Replace line breaks (set in SetWidgetRichText) with newlines and nbsp's with regular spaces. + var htmlContent = $(this).html().replace(/]*>/ig, '\n').replace(/ /ig, ' '); + textOut += $(htmlContent).text(); + }); + + return textOut; + } else { + var val = idQuery.val(); + return val == undefined ? '' : val; + } + }; + + $ax.public.fn.setRichTextHtml = function() { + if(arguments[0] == undefined) { + //No getter function, so just return undefined + return undefined; + } else { + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var currentItem = elementIds[index]; + + var widgetType = $ax.getTypeFromElementId(currentItem); + if ($ax.public.fn.IsTextBox(widgetType) || $ax.public.fn.IsTextArea(widgetType)) { //Do nothing for non rtf + continue; + } else { + //TODO -- [mas] fix this! + var idRtf = '#' + currentItem; + if($(idRtf).length == 0) idRtf = '#u' + (parseInt(currentItem.substring(1)) + 1); + if($(idRtf).length != 0) SetWidgetRichText(idRtf, arguments[0]); + } + } + + return this; + } + }; + + $ax.public.fn.value = function() { + if(arguments[0] == undefined) { + var firstId = this.getElementIds()[0]; + + if(!firstId) { + return undefined; + } + + var widgetType = $ax.getTypeFromElementId(firstId); + + if ($ax.public.fn.IsComboBox(widgetType) || $ax.public.fn.IsListBox(widgetType)) { //for select lists and drop lists + return $('#' + firstId + ' :selected').text(); + } else if ($ax.public.fn.IsCheckBox(widgetType) || $ax.public.fn.IsRadioButton(widgetType)) { //for radio/checkboxes + return $('#' + firstId + '_input').is(':checked'); + } else if ($ax.public.fn.IsTextBox(widgetType)) { //for text box + return $('#' + firstId + '_input').val(); + } else { //for text based form elements + return this.jQuery().first().val(); + } + } else { + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var widgetType = $ax.getTypeFromElementId(elementIds[index]); + + var elementIdQuery = $('#' + elementIds[index]); + + if ($ax.public.fn.IsCheckBox(widgetType) || $ax.public.fn.IsRadioButton(widgetType)) { //for radio/checkboxes + if(arguments[0] == true) { + elementIdQuery.attr('checked', true); + } else if(arguments[0] == false) { + elementIdQuery.removeAttr('checked'); + } + } else { //For select lists, drop lists, text based form elements + elementIdQuery.val(arguments[0]); + } + } + + return this; + } + }; + + $ax.public.fn.checked = function() { + if(arguments[0] == undefined) { + return this.selected(); + } else { + this.selected(arguments[0]); + return this; + } + }; + + var _getRelativeLeft = function (id, parent) { + var currentNode = window.document.getElementById(id).offsetParent; + var left = $ax('#' + id).left(true); + while (currentNode != null && currentNode.tagName != "BODY" && currentNode != parent) { + left += currentNode.offsetLeft; + currentNode = currentNode.offsetParent; + } + return left; + }; + + var _getRelativeTop = function(id, parent) { + var currentNode = window.document.getElementById(id).offsetParent; + var top = $ax('#' + id).top(true); + while(currentNode != null && currentNode.tagName != "BODY" && currentNode != parent) { + top += currentNode.offsetTop; + currentNode = currentNode.offsetParent; + } + return top; + }; + + var _scrollHelper = function(id, scrollX, scrollY, easing, duration) { + var target = window.document.getElementById(id); + var scrollable = $ax.legacy.GetScrollable(target); + var targetLeft = _getRelativeLeft(id, scrollable); + var targetTop = _getRelativeTop(id, scrollable); + if(!scrollX) targetLeft = scrollable.scrollLeft; + if(!scrollY) targetTop = scrollable.scrollTop; + + var $scrollable = $(scrollable); + if($scrollable.is('body')) { + $scrollable = $('html,body'); + } + + if(easing == 'none') { + if(scrollY) $scrollable.scrollTop(targetTop); + if(scrollX) $scrollable.scrollLeft(targetLeft); + } else { + if(!scrollX) { + $scrollable.animate({ scrollTop: targetTop }, duration, easing); + } else if(!scrollY) { + $scrollable.animate({ scrollLeft: targetLeft }, duration, easing); + } else { + $scrollable.animate({ scrollTop: targetTop, scrollLeft: targetLeft }, duration, easing); + } + } + }; + + $ax.public.fn.scroll = function(scrollOption) { + var easing = 'none'; + var duration = 500; + + if(scrollOption && scrollOption.easing) { + easing = scrollOption.easing; + + if(scrollOption.duration) { + duration = scrollOption.duration; + } + } + + var scrollX = true; + var scrollY = true; + + if(scrollOption.direction == 'vertical') { + scrollX = false; + } else if(scrollOption.direction == 'horizontal') { + scrollY = false; + } + + var elementIds = this.getElementIds(); + for(var index = 0; index < elementIds.length; index++) { + // if($ax.getTypeFromElementId(elementIds[index]) == IMAGE_MAP_REGION_TYPE) { + _scrollHelper(elementIds[index], scrollX, scrollY, easing, duration); + // } + } + + return this; + }; + + $ax.public.fn.enabled = function() { + if(arguments[0] == undefined) { + var firstId = this.getElementIds()[0]; + if(!firstId) return undefined; + + var widgetType = $ax.getTypeFromElementId(firstId); + if ($ax.public.fn.IsImageBox(widgetType) || $ax.public.fn.IsVector(widgetType)) return !$ax.style.IsWidgetDisabled(firstId); + else return this.jQuery().first().not(':disabled').length > 0; + } else { + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + var widgetType = $ax.getTypeFromElementId(elementId); + + var enabled = arguments[0]; + if ($ax.public.fn.IsImageBox(widgetType) || $ax.public.fn.IsVector(widgetType)) $ax.style.SetWidgetEnabled(elementId, enabled); + if ($ax.public.fn.IsDynamicPanel(widgetType) || $ax.public.fn.IsLayer(widgetType)) { + $ax.style.SetWidgetEnabled(elementId, enabled); + var children = this.getChildren()[index].children; + for(var i = 0; i < children.length; i++) { + $axure('#' + children[i]).enabled(enabled); + } + } + var obj = $obj(elementId); + var images = obj.images; + if(PLAIN_TEXT_TYPES.indexOf(widgetType) != -1 && images) { + var img = $jobj($ax.repeater.applySuffixToElementId(elementId, '_image_sketch')); + var key = (enabled ? 'normal~' : 'disabled~') + ($ax.adaptive.currentViewId || ''); + img.attr('src', images[key]); + + } + var jobj = $jobj(elementId); + var input = $jobj($ax.INPUT(elementId)); + if(input.length) jobj = input; + + if (OS_MAC && WEBKIT && $ax.public.fn.IsComboBox(widgetType)) jobj.css('color', enabled ? '' : 'grayText'); + + if(enabled) jobj.removeAttr('disabled'); + else jobj.attr('disabled', 'disabled'); + } + + return this; + } + }; + + $ax.public.fn.visible = function() { + var ids = this.getElementIds(); + for(var index = 0; index < ids.length; index++) $ax.visibility.SetIdVisible(ids[index], arguments[0]); + return this; + }; + + $ax.public.fn.selected = function() { + if(arguments[0] == undefined) { + var firstId = this.getElementIds()[0]; + if(!firstId) return undefined; + + var widgetType = $ax.getTypeFromElementId(firstId); + if ($ax.public.fn.IsTreeNodeObject(widgetType)) { + var treeNodeButtonShapeId = ''; + var allElementIds = $ax.getAllElementIds(); + for(var i = 0; i < allElementIds.length; i++) { + var elementId = allElementIds[i]; + var currObj = $ax.getObjectFromElementId(elementId); + + if ($ax.public.fn.IsVector(currObj.type) && currObj.parent && currObj.parent.scriptIds && currObj.parent.scriptIds[0] == firstId) { + treeNodeButtonShapeId = elementId; + break; + } + } + + if(treeNodeButtonShapeId == '') return undefined; + return $ax.style.IsWidgetSelected(treeNodeButtonShapeId); + } else if ($ax.public.fn.IsImageBox(widgetType) || $ax.public.fn.IsVector(widgetType) || $ax.public.fn.IsTableCell(widgetType) || $ax.public.fn.IsDynamicPanel(widgetType) || $ax.public.fn.IsLayer(widgetType)) { + return $ax.style.IsWidgetSelected(firstId); + } else if ($ax.public.fn.IsCheckBox(widgetType) || $ax.public.fn.IsRadioButton(widgetType)) { + return $jobj($ax.INPUT(firstId)).prop('checked'); + } + return this; + } + var elementIds = this.getElementIds(); + var func = typeof (arguments[0]) === 'function' ? arguments[0] : null; + var enabled = arguments[0]; // If this is a function it will be overridden with the return value; + + for(var index = 0; index < elementIds.length; index++) { + var elementId = elementIds[index]; + if(func) { + enabled = func($axure('#' + elementId)); + } + + var widgetType = $ax.getTypeFromElementId(elementId); + + if ($ax.public.fn.IsTreeNodeObject(widgetType)) { //for tree node + var treeRootId = $('#' + elementIds[index]).parents('.treeroot').attr('id'); + + var treeNodeButtonShapeId = ''; + var childElementIds = $jobj(elementId).children(); + for(var i = 0; i < childElementIds.length; i++) { + var elementId = childElementIds[i].id; + var currObj = $ax.getObjectFromElementId(elementId); + + if (currObj && currObj.type == $ax.constants.VECTOR_SHAPE_TYPE && currObj.parent && + currObj.parent.scriptIds && currObj.parent.scriptIds[0] == elementIds[index]) { + treeNodeButtonShapeId = elementId; + break; + } + } + + if(treeNodeButtonShapeId == '') continue; + + $ax.tree.SelectTreeNode(elementId, enabled); + } else if ($ax.public.fn.IsImageBox(widgetType) || $ax.public.fn.IsVector(widgetType) || $ax.public.fn.IsVector(widgetType) || $ax.public.fn.IsTableCell(widgetType) || $ax.public.fn.IsDynamicPanel(widgetType) || $ax.public.fn.IsLayer(widgetType)) { + $ax.style.SetWidgetSelected(elementIds[index], enabled); + } else if ($ax.public.fn.IsCheckBox(widgetType) || $ax.public.fn.IsRadioButton(widgetType)) { + var query = $jobj($ax.INPUT(elementId)); + var curr = query.prop('checked'); + //NOTE: won't fire onselect nore onunselect event if states didn't changes + if(curr != enabled) { + query.prop('checked', enabled); + $ax.event.TryFireCheckChanged(elementId, enabled); + } + } + } + return this; + }; + + $ax.public.fn.focus = function() { + var firstId = this.getElementIds()[0]; + var focusableId = $ax.event.getFocusableWidgetOrChildId(firstId); + $('#' + focusableId).focus(); + + return this; + }; + + $ax.public.fn.expanded = function() { + if(arguments[0] == undefined) { + var firstId = this.getElementIds()[0]; + return firstId && !$ax.public.fn.IsTreeNodeObject($ax.getTypeFromElementId(firstId)) && $ax.visibility.IsIdVisible(firstId + '_children'); + } else { + var elementIds = this.getElementIds(); + + for(var index = 0; index < elementIds.length; index++) { + if ($ax.public.fn.IsTreeNodeObject($ax.getTypeFromElementId(elementIds[index]))) { + var treeNodeId = elementIds[index]; + var childContainerId = treeNodeId + '_children'; + + var scriptId = $ax.repeater.getScriptIdFromElementId(treeNodeId); + var itemId = $ax.repeater.getItemIdFromElementId(treeNodeId); + var plusMinusId = 'u' + (parseInt(scriptId.substring(1)) + 1); + if(itemId) plusMinusId = $ax.repeater.createElementId(plusMinusId, itemId); + if($('#' + childContainerId).length == 0 || !$jobj(plusMinusId).children().first().is('img')) + plusMinusId = ''; + + if(arguments[0] == true) { + $ax.tree.ExpandNode(treeNodeId, childContainerId, plusMinusId); + } else if(arguments[0] == false) { + $ax.tree.CollapseNode(treeNodeId, childContainerId, plusMinusId); + } + } + } + + return this; + } + }; + + $ax.public.fn.size = function () { + var firstId = this.getElementIds()[0]; + if(!firstId) return undefined; + + var object = $ax.getObjectFromElementIdDisregardHex(firstId); + if(object && (object.type == 'layer' || object.generateCompound)) { + var boundingRect = $ax.public.fn.getWidgetBoundingRect(firstId); + return { width: boundingRect.width, height: boundingRect.height }; + } + + var firstIdObject = $jobj(firstId); + return { width: firstIdObject.outerWidth(), height: firstIdObject.outerHeight() }; + }; + + $ax.public.fn.width = function() { + var firstId = this.getElementIds()[0]; + if(!firstId) return undefined; + + var object = $ax.getObjectFromElementIdDisregardHex(firstId); + if (object && (object.type == 'layer' || object.generateCompound)) { + var boundingRect = $ax.public.fn.getWidgetBoundingRect(firstId); + return boundingRect.width; + } + + var firstIdObject = $jobj(firstId); + + return firstIdObject.outerWidth(); + }; + + $ax.public.fn.height = function() { + var firstId = this.getElementIds()[0]; + if(!firstId) return undefined; + + var object = $ax.getObjectFromElementIdDisregardHex(firstId); + if (object && (object.type == 'layer' || object.generateCompound)) { + var boundingRect = $ax.public.fn.getWidgetBoundingRect(firstId); + return boundingRect.height; + } + + var firstIdObject = $jobj(firstId); + + return firstIdObject.outerHeight(); + }; + + $ax.public.fn.readAttribute = function(object, attribute) { + if(object && object.hasAttribute(attribute)) { + return object.getAttribute(attribute); + } + return null; + }; + + $ax.public.fn.locRelativeIgnoreLayer = function (vert) { + var elementId = this.getElementIds()[0]; + if(!elementId) return undefined; + + var parents = this.getParents(true, '*')[0]; + + for(var i = 0; i < parents.length; i++) { + var type = $ax.getTypeFromElementId(parents[i]); + if(!$axure.fn.IsLayer(type) && !$axure.fn.IsReferenceDiagramObject(type)) { + var func = vert ? _getRelativeTop : _getRelativeLeft; + return func(elementId, $jobj(parents[i])[0]); + } + } + var axThis = $ax('#' + elementId); + return vert ? axThis.top() : _bodyToWorld(axThis.left(), true); + }; + + var _bodyToWorld = $axure.fn.bodyToWorld = function(x, from) { + var body = $('body'); + if (body.css('position') != 'relative') return x; + var offset = (Number(body.css('left').replace('px', '')) + Math.max(0, ($(window).width() - body.width()) / 2)); + if(from) offset *= -1; + return x + offset; + } + + $ax.public.fn.left = function (relative) { + var firstId = this.getElementIds()[0]; + if(!firstId) return undefined; + + var left = _getLoc(firstId, false, false, relative); + + // If you are absolute, unless your are a pinned panel... + if(relative || $obj(firstId).fixedVertical) return left; + + // ... or you are in one... + var parentPanels = $ax('#' + firstId).getParents(true, 'dynamicPanel')[0]; + for(var i = 0; i < parentPanels.length; i++) if ($obj(parentPanels[i]).fixedVertical) return left; + + // ... you must convert from body to world coordinates + return _bodyToWorld(left); + }; + + $ax.public.fn.top = function(relative) { + var firstId = this.getElementIds()[0]; + return firstId && _getLoc(firstId, true, false, relative); + }; + + var _getLoc = function(id, vert, high, relative) { + var mathFunc = high ? 'max' : 'min'; + var prop = vert ? 'top' : 'left'; + var dim = vert ? 'height' : 'width'; + + var obj = $jobj(id); + var oldDisplay = obj.css('display'); + var displaySet = false; + if(oldDisplay == 'none') { + obj.css('display', ''); + displaySet = true; + } + var loc = Math.NaN; + var rdo = $ax.getTypeFromElementId(id) == $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE; + + if (!rdo) loc = $ax.getNumFromPx(obj.css(prop)); + + var fixed = _fixedOffset(id, vert); + if(fixed.valid) loc = fixed.offset; + else if (!relative) { + var parents = $ax('#' + id).getParents(true, ['item', 'repeater', 'dynamicPanel', 'layer'])[0]; + for(var i = 0; i < parents.length; i++) { + var parentId = $ax.visibility.getWidgetFromContainer(parents[i]); + var parent = $ax.visibility.applyWidgetContainer(parentId, true); + + + // Layer may not have container, and will be at 0,0 otherwise. + if (!parent.length) continue; + + fixed = _fixedOffset(parentId, vert); + if(fixed.valid) { + loc += fixed.offset; + break; // If fixed ignore any parents if there are any, they don't matter. + } else loc += $ax.getNumFromPx(parent.css(prop)); + } + } + + //if (high) loc += isCompound ? dimension[dim] : obj[dim](); + if (high) loc += obj[dim](); + + // Special Layer code + if ($ax.getTypeFromElementId(id) == 'layer') { + // If layer has a container, then use that. Otherwise must deal with children + var container = $ax.visibility.applyWidgetContainer(id, true, true); + if(container.length) loc = $ax.getNumFromPx(container.css(prop)); + else { + var first = true; + var children = $obj(id).objs; + for(var i = 0; i < children.length; i++) { + var childId = $ax.getElementIdFromPath([children[i].id], { relativeTo: id }); + if(!childId) continue; + var childProp = _getLoc(childId, vert, high, relative); + if(first) loc = childProp; + else loc = Math[mathFunc](loc, childProp); + first = false; + } + } + } + + if(displaySet) obj.css('display', oldDisplay); + + // var body = $('body'); + // if (body.css('position') == 'relative') loc -= (Number(body.css(loc).replace('px', '')) + Math.max(0, ($(window).width() - body.width()) / 2)); + return loc; + }; + + var _fixedOffset = function (id, vert) { + var axObj = $obj(id); + var obj = $jobj(id); + var dim = vert ? 'height' : 'width'; + var vertKey = (vert ? 'Vertical' : 'Horizontal'); + var key = 'fixed' + vertKey; + var alignment = axObj[key]; + var loc = axObj['fixedMargin' + vertKey]; + if(alignment == 'center' || alignment == 'middle') { + loc += ($(window)[dim]() - obj[dim]()) / 2; + } else if(alignment == 'bottom' || alignment == 'right') { + loc = $(window)[dim]() - obj[dim]() - loc; // subract loc because margin here moves farther left/up as it gets bigger. + } + + if(axObj[key]) { + var scrollKey = 'scroll' + (vert ? 'Y' : 'X'); + return { offset: window[scrollKey] + loc, valid: true }; + } + + return { valid: false }; + }; + +}); diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/doc.js b/codes/agent/game-docker/api/document/resources/scripts/axure/doc.js new file mode 100644 index 0000000..fd38071 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/doc.js @@ -0,0 +1,734 @@ +$axure.internal(function($ax) { + var _pageData; + + + var _initializePageFragment = function(pageFragment, objIdToObject) { + var objectArrayHelper = function(objects, parent) { + for(var i = 0; i < objects.length; i++) { + diagramObjectHelper(objects[i], parent); + } + }; + + var diagramObjectHelper = function(diagramObject, parent) { + $ax.initializeObject('diagramObject', diagramObject); + objIdToObject[pageFragment.packageId + '~' + diagramObject.id] = diagramObject; + diagramObject.parent = parent; + diagramObject.owner = pageFragment; + diagramObject.scriptIds = []; + if(diagramObject.diagrams) { //dynamic panel + for(var i = 0; i < diagramObject.diagrams.length; i++) { + var diagram = diagramObject.diagrams[i]; + objectArrayHelper(diagram.objects, diagram); + } + } + if(diagramObject.objects) objectArrayHelper(diagramObject.objects, diagramObject); + }; + + objectArrayHelper(pageFragment.diagram.objects, pageFragment.diagram); + }; + + var _initalizeStylesheet = function(stylesheet) { + var stylesById = {}; + var customStyles = stylesheet.customStyles; + for(var key in customStyles) { + var style = customStyles[key]; + stylesById[style.id] = style; + } + stylesheet.stylesById = stylesById; + }; + + + var _initializeDocumentData = function() { + _initalizeStylesheet($ax.document.stylesheet); + }; + + + var _initializePageData; + // ******* Dictionaries ******** // + (function () { + var scriptIdToParentLayer = {}; + var elementIdToObject = {}; + var scriptIdToObject = {}; + var scriptIdToRepeaterId = {}; + var repeaterIdToScriptIds = {}; + var repeaterIdToItemIds = {}; + var scriptIdToPath = {}; + var _scriptIds = []; + var elementIdToText = {}; + var radioGroupToSelectedElementId = {}; + _initializePageData = function() { + if(!_pageData || !_pageData.page || !_pageData.page.diagram) return; + + var objIdToObject = {}; + _initializePageFragment(_pageData.page, objIdToObject); + for(var masterId in _pageData.masters) { + var master = _pageData.masters[masterId]; + _initializePageFragment(master, objIdToObject); + } + + var _pathsToScriptIds = []; + _pathToScriptIdHelper(_pageData.objectPaths, [], _pathsToScriptIds, scriptIdToPath); + + for(var i = 0; i < _pathsToScriptIds.length; i++) { + var path = _pathsToScriptIds[i].idPath; + var scriptId = _pathsToScriptIds[i].scriptId; + + var packageId = _pageData.page.packageId; + if(path.length > 1) { + for(var j = 0; j < path.length - 1; j++) { + var rdoId = path[j]; + var rdo = objIdToObject[packageId + '~' + rdoId]; + packageId = rdo.masterId; + } + } + var diagramObject = objIdToObject[packageId + '~' + path[path.length - 1]]; + diagramObject.scriptIds[diagramObject.scriptIds.length] = scriptId; + + scriptIdToObject[scriptId] = diagramObject; + _scriptIds[_scriptIds.length] = scriptId; + } + + // Now map scriptIds to repeaters and layers + var mapScriptIdToRepeaterId = function(scriptId, repeaterId) { + scriptIdToRepeaterId[scriptId] = repeaterId; + var scriptIds = repeaterIdToScriptIds[repeaterId]; + if(scriptIds) scriptIds[scriptIds.length] = scriptId; + else repeaterIdToScriptIds[repeaterId] = [scriptId]; + }; + var mapScriptIdToLayerId = function (obj, layerId, path) { + var pathCopy = $ax.deepCopy(path); + pathCopy[path.length] = obj.id; + var scriptId = $ax.getScriptIdFromPath(pathCopy); + if ($ax.public.fn.IsLayer(obj.type)) { + for(var i = 0; i < obj.objs.length; i++) mapScriptIdToLayerId(obj.objs[i], scriptId, path); + } + scriptIdToParentLayer[scriptId] = layerId; + } + var mapIdsToRepeaterAndLayer = function(path, objs, repeaterId) { + var pathCopy = $ax.deepCopy(path); + + for(var i = 0; i < objs.length; i++) { + var obj = objs[i]; + pathCopy[path.length] = obj.id; + var scriptId = $ax.getScriptIdFromPath(pathCopy); + // Rdo have no element on page and are not mapped to the repeater + if(repeaterId) mapScriptIdToRepeaterId(scriptId, repeaterId); + + if ($ax.public.fn.IsDynamicPanel(obj.type)) { + for(var j = 0; j < obj.diagrams.length; j++) mapIdsToRepeaterAndLayer(path, obj.diagrams[j].objects, repeaterId); + } else if ($ax.public.fn.IsReferenceDiagramObject(obj.type)) { + mapIdsToRepeaterAndLayer(pathCopy, $ax.pageData.masters[obj.masterId].diagram.objects, repeaterId); + } else if ($ax.public.fn.IsRepeater(obj.type)) { + mapScriptIdToRepeaterId(scriptId, scriptId); + mapIdsToRepeaterAndLayer(path, obj.objects, scriptId); + } else if ($ax.public.fn.IsLayer(obj.type)) { + var layerObjs = obj.objs; + for(var j = 0; j < layerObjs.length; j++) { + mapScriptIdToLayerId(layerObjs[j], scriptId, path); + } + } else if(obj.objects && obj.objects.length) { + if(repeaterId) { + for(var j = 0; j < obj.objects.length; j++) { + mapIdsToRepeaterAndLayer(path, obj.objects, repeaterId); + } + } + } + } + }; + mapIdsToRepeaterAndLayer([], $ax.pageData.page.diagram.objects); + }; + + + + $ax.getPathFromScriptId = function(scriptId) { + var reversedPath = []; + var path = scriptIdToPath[scriptId]; + while(path && path.uniqueId) { + reversedPath[reversedPath.length] = path.uniqueId; + path = path.parent; + } + return reversedPath.reverse(); + }; + + var _getScriptIdFromFullPath = function(path) { + var current = $ax.pageData.objectPaths; + for(var i = 0; i < path.length; i++) { + current = current[path[i]]; + if(!current) return current; + } + return current && current.scriptId; + }; + + + var _getScriptIdFromPath = function(path, relativeTo) { + var relativePath = []; + var includeMasterInPath = false; + if(relativeTo) { + var relativeToScriptId; + if(relativeTo.srcElement) { //this is eventInfo + relativeToScriptId = $ax.repeater.getScriptIdFromElementId(relativeTo.srcElement); + includeMasterInPath = relativeTo.isMasterEvent; + } else if(typeof relativeTo === 'string') { //this is an element id + relativeToScriptId = relativeTo; + } + + if(relativeToScriptId) { + relativePath = $ax.getPathFromScriptId(relativeToScriptId); + if(!includeMasterInPath) relativePath = relativePath.slice(0, relativePath.length - 1); + } else if(relativeTo instanceof Array) { //this is a path + relativePath = relativeTo; + } + } + var fullPath = relativePath.concat(path); + var scriptId = _getScriptIdFromFullPath(fullPath); + return !$ax.visibility.isScriptIdLimbo(scriptId) && scriptId; + }; + $ax.getScriptIdFromPath = _getScriptIdFromPath; + + var _getElementIdsFromPath = function(path, eventInfo) { + var scriptId = _getScriptIdFromPath(path, eventInfo); + if (!scriptId) return []; + // Don't need placed check hear. If unplaced, scriptId will be undefined and exit out before here. + return $ax.getElementIdsFromEventAndScriptId(eventInfo, scriptId); + }; + $ax.getElementIdsFromPath = _getElementIdsFromPath; + + var _getElementIdFromPath = function (path, params) { + var scriptId = _getScriptIdFromPath(path, params.relativeTo); + if (!scriptId) return scriptId; + + var itemNum = params.itemNum; + if(params.relativeTo && typeof params.relativeTo === 'string') { + if($jobj(params.relativeTo)) itemNum = $ax.repeater.getItemIdFromElementId(params.relativeTo); + } + return $ax.repeater.createElementId(scriptId, itemNum); + }; + $ax.getElementIdFromPath = _getElementIdFromPath; + + var _getElementsIdFromEventAndScriptId = function(eventInfo, scriptId) { + var itemId = eventInfo && $ax.repeater.getItemIdFromElementId(eventInfo.srcElement); + var target = false; + // Try to get itemId from target if you can't get it from source. + if(!itemId) { + itemId = eventInfo && eventInfo.targetElement && $ax.repeater.getItemIdFromElementId(eventInfo.targetElement); + if(itemId) target = true; + } + + var parentRepeater = $ax.getParentRepeaterFromScriptId(scriptId); + if(parentRepeater && scriptId != parentRepeater) { + if(itemId && (!eventInfo || parentRepeater == $ax.getParentRepeaterFromScriptId($ax.repeater.getScriptIdFromElementId(target ? eventInfo.targetElement : eventInfo.srcElement)))) { + return [$ax.repeater.createElementId(scriptId, itemId)]; + } + var elementIds = []; + var itemIds = $ax.getItemIdsForRepeater(parentRepeater); + if(!itemIds) return []; + + for(var i = 0; i < itemIds.length; i++) elementIds[i] = $ax.repeater.createElementId(scriptId, itemIds[i]); + return elementIds; + } + return [scriptId]; + }; + $ax.getElementIdsFromEventAndScriptId = _getElementsIdFromEventAndScriptId; + + var _getSrcElementIdFromEvent = function(event) { + var currentQuery = $(event.srcElement || event.target); + while(currentQuery && currentQuery.length && (!$obj(currentQuery.attr('id')) || $jobj(currentQuery.attr('id')).hasClass('text'))) { + currentQuery = currentQuery.parent(); + }; + return currentQuery.attr('id'); + }; + $ax.getSrcElementIdFromEvent = _getSrcElementIdFromEvent; + + var _getEventInfoFromEvent = function(event, skipShowDescriptions, elementId) { + var eventInfo = {}; + eventInfo.srcElement = elementId; + eventInfo.now = new Date(); + + if(event != null) { + //elementId can be empty string, so can't simple use "or" assignment here. + eventInfo.srcElement = elementId || elementId == '' ? elementId : _getSrcElementIdFromEvent(event); + eventInfo.which = event.which; + + // When getting locations in mobile, need to extract the touch object to get the mouse location attributes + var mouseEvent = (event.originalEvent && event.originalEvent.changedTouches && event.originalEvent.changedTouches[0]) || event.originalEvent; + if(mouseEvent && !mouseEvent.type) mouseEvent.type = event.type; + + if(skipShowDescriptions) eventInfo.skipShowDescriptions = true; + + // Always update mouse location if possible + $ax.event.updateMouseLocation(mouseEvent); + } + + // Always set event info about cursor + var _cursor = eventInfo.cursor = {}; + _cursor.x = $ax.mouseLocation.x; + _cursor.y = $ax.mouseLocation.y; + + eventInfo.pageX = _cursor.x + 'px'; + eventInfo.pageY = _cursor.y + 'px'; + + // Do Keyboard Info + eventInfo.keyInfo = $ax.event.keyState(); + + eventInfo.window = _getWindowInfo(); + + eventInfo.thiswidget = _getWidgetInfo(eventInfo.srcElement); + eventInfo.item = _getItemInfo(eventInfo.srcElement); + eventInfo.dragInfo = $ax.drag.GetWidgetDragInfo(); + + return eventInfo; + }; + $ax.getEventInfoFromEvent = _getEventInfoFromEvent; + + var _getWindowInfo = function() { + var win = {}; + win.width = $(window).width(); + win.height = $(window).height(); + win.scrollx = $(window).scrollLeft(); + win.scrolly = $(window).scrollTop(); + return win; + }; + $ax.getWindowInfo = _getWindowInfo; + + var _getItemInfo = function(elementId) { + if(!elementId) return { valid: false }; + + elementId = _getParentElement(elementId); + + var index = $ax.repeater.getItemIdFromElementId(elementId); + if(!index) return { valid: false }; + + var item = { valid: true }; + + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + var repeaterId = $ax.getParentRepeaterFromScriptId(scriptId); + item.repeater = _getWidgetInfo(repeaterId); + $ax.repeater.setDisplayProps(item, repeaterId, index); + item.ismarked = $ax.repeater.isEditItem(repeaterId, index); + item.isvisible = Boolean($jobj(elementId).length); + + return item; + }; + $ax.getItemInfo = _getItemInfo; + + var _getWidgetInfo = function(elementId) { + if(!elementId) return { valid: false }; + + elementId = _getParentElement(elementId); + + var elementAxQuery = $ax('#' + elementId); + var elementQuery = $jobj(elementId); + var obj = $obj(elementId); + var widget = { valid: true, isWidget: true }; + widget.elementId = elementId; + widget.name = widget.label = (elementQuery.data('label') ? elementQuery.data('label') : ''); + widget.text = $ax('#' + elementId).text(); + widget.opacity = Number(elementQuery.css('opacity')) * 100; + widget.rotation = $ax.move.getRotationDegree(widget.elementId); + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + var repeaterId = $ax.getParentRepeaterFromScriptId(scriptId); + if (repeaterId) widget.repeater = $ax.public.fn.IsRepeater(obj.type) ? widget : _getWidgetInfo(repeaterId); + + var boundingRect = $ax.public.fn.getWidgetBoundingRect(elementId); + + if($ax.public.fn.IsLayer(obj.type)) { + + widget.x = boundingRect.left; + widget.y = boundingRect.top; + widget.width = boundingRect.width; + widget.height = boundingRect.height; + if(elementQuery.length != 0) { + widget.pagex = elementAxQuery.left(); + widget.pagey = elementAxQuery.top(); + } + } else { + var elementExists = elementQuery.length > 0; + var x = elementExists ? elementAxQuery.locRelativeIgnoreLayer(false) : 0; + var y = elementExists ? elementAxQuery.locRelativeIgnoreLayer(true) : 0; + + widget.x = x; + widget.y = y; + + if(elementExists) { + widget.pagex = elementAxQuery.left(); + widget.pagey = elementAxQuery.top(); + widget.width = elementAxQuery.width(); + widget.height = elementAxQuery.height(); + } + + //if (obj.generateCompound) { + // // assume this means that this is a compound vector. + // widget.x = boundingRect.left; + // widget.y = boundingRect.top; + + // //widget.pagex += boundingRect.left; + // //widget.pagey += boundingRect.top; + //} + + } + + + // Right now only dynamic panel can scroll + if ($ax.public.fn.IsDynamicPanel(obj.type)) { + var stateQuery = $('#' + $ax.visibility.GetPanelState(elementId)); + widget.scrollx = stateQuery.scrollLeft(); + widget.scrolly = stateQuery.scrollTop(); + + if($ax.dynamicPanelManager.isIdFitToContent(elementId)) { + widget.width = stateQuery.width(); + widget.height = stateQuery.height(); + } + } else { + widget.scrollx = 0; + widget.scrolly = 0; + } + + // repeater only props + if ($ax.public.fn.IsRepeater(obj.type)) { + widget.visibleitemcount = repeaterIdToItemIds[scriptId] ? repeaterIdToItemIds[scriptId].length : $ax.repeater.getVisibleDataCount(scriptId); + widget.itemcount = $ax.repeater.getFilteredDataCount(scriptId); + widget.datacount = $ax.repeater.getDataCount(scriptId); + widget.pagecount = $ax.repeater.getPageCount(scriptId); + widget.pageindex = $ax.repeater.getPageIndex(scriptId); + } + + widget.left = widget.x; + widget.top = widget.y; + widget.right = widget.x + widget.width; + widget.bottom = widget.y + widget.height; + + return widget; + }; + $ax.getWidgetInfo = _getWidgetInfo; + + var _getParentElement = $ax.getParentElement = function(elementId) { + var obj = $obj(elementId); + while(obj.isContained) { + var path = $ax.getPathFromScriptId($ax.repeater.getScriptIdFromElementId(elementId)); + var itemId = $ax.repeater.getItemIdFromElementId(elementId); + path[path.length - 1] = obj.parent.id; + elementId = $ax.getElementIdFromPath(path, { itemNum: itemId }); + obj = $obj(elementId); + } + + return elementId; + }; + + $ax.addItemIdToRepeater = function(itemId, repeaterId) { + var itemIds = repeaterIdToItemIds[repeaterId]; + if(itemIds) itemIds[itemIds.length] = itemId; + else repeaterIdToItemIds[repeaterId] = [itemId]; + + var scriptIds = repeaterIdToScriptIds[repeaterId]; + for(var i = 0; i < scriptIds.length; i++) elementIdToObject[$ax.repeater.createElementId(scriptIds[i], itemId)] = $ax.getObjectFromScriptId(scriptIds[i]); + }; + + $ax.getAllElementIds = function() { + var elementIds = []; + for(var i = 0; i < _scriptIds.length; i++) { + var scriptId = _scriptIds[i]; + var repeaterId = scriptIdToRepeaterId[scriptId]; + if(repeaterId && repeaterId != scriptId) { + var itemIds = repeaterIdToItemIds[repeaterId] || []; + for(var j = 0; j < itemIds.length; j++) elementIds[elementIds.length] = $ax.repeater.createElementId(scriptId, itemIds[j]); + } else elementIds[elementIds.length] = scriptId; + } + return elementIds; + }; + + $ax.getAllScriptIds = function() { + return _scriptIds; + }; + + $ax.getObjectFromElementId = function(elementId) { + return $ax.getObjectFromScriptId($ax.repeater.getScriptIdFromElementId(elementId)); + }; + + $ax.getObjectFromScriptId = function(scriptId) { + return scriptIdToObject[scriptId]; + }; + + $ax.getParentRepeaterFromElementId = function(elementId) { + return $ax.getParentRepeaterFromScriptId($ax.repeater.getScriptIdFromElementId(elementId)); + }; + + $ax.getParentRepeaterFromScriptId = function(scriptId) { + return scriptIdToRepeaterId[scriptId]; + }; + + var _getChildScriptIdsForRepeater = function(repeaterId) { + return repeaterIdToScriptIds[repeaterId]; + }; + + var _getItemIdsForRepeater = function(repeaterId) { + return repeaterIdToItemIds[repeaterId] || []; + }; + $ax.getItemIdsForRepeater = _getItemIdsForRepeater; + + var _clearItemIdsForRepeater = function(repeaterId) { + repeaterIdToItemIds[repeaterId] = []; + }; + $ax.clearItemsForRepeater = _clearItemIdsForRepeater; + + $ax.getChildElementIdsForRepeater = function(repeaterId) { + var scriptIds = _getChildScriptIdsForRepeater(repeaterId); + var itemIds = _getItemIdsForRepeater(repeaterId); + + var retVal = []; + if(!itemIds || !scriptIds) return retVal; + + for(var i = 0; i < scriptIds.length; i++) { + for(var j = 0; j < itemIds.length; j++) { + retVal[retVal.length] = $ax.repeater.createElementId(scriptIds[i], itemIds[j]); + } + } + return retVal; + }; + + $ax.getRdoParentFromElementId = function(elementId) { + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + var rdoId = scriptIdToPath[scriptId].parent.scriptId; + if($ax.getParentRepeaterFromScriptId(rdoId)) rdoId = $ax.repeater.createElementId(rdoId, $ax.repeater.getItemIdFromElementId(elementId)); + return rdoId; + }; + + $ax.getLayerParentFromElementId = function (elementId) { + var itemId = $ax.repeater.getItemIdFromElementId(elementId); + var scriptId = scriptIdToParentLayer[$ax.repeater.getScriptIdFromElementId(elementId)]; + return $ax.getParentRepeaterFromElementId(scriptId) ? $ax.repeater.createElementId(scriptId, itemId) : scriptId; + } + + $ax.updateElementText = function(elementId, text) { + elementIdToText[elementId] = text; + }; + + $ax.hasElementTextChanged = function(elementId, text) { + return elementIdToText[elementId] != text; + }; + + $ax.updateRadioButtonSelected = function(group, elementId) { + var old = radioGroupToSelectedElementId[group]; + radioGroupToSelectedElementId[group] = elementId; + return old; + }; + + $ax.hasRadioButtonSelectedChanged = function(group, elementId) { + return radioGroupToSelectedElementId[group] != elementId; + }; + })(); + + //Recursively populates fullPathArray with: + // [ { idPath, scriptId }, ... ] + //for every scriptId in the object + //also populates an object of scriptId -> path + var _pathToScriptIdHelper = function(currentPath, currentChain, fullPathArray, scriptIdToPath) { + for(var key in currentPath) { + if(key != "scriptId") { + var nextPath = currentPath[key]; + _pathToScriptIdHelper(nextPath, currentChain.concat(key), fullPathArray, scriptIdToPath); + nextPath.parent = currentPath; + nextPath.uniqueId = key; + } else { + fullPathArray[fullPathArray.length] = { idPath: currentChain, scriptId: currentPath.scriptId }; + scriptIdToPath[currentPath.scriptId] = currentPath; + } + } + }; + + $ax.public.loadCurrentPage = $ax.loadCurrentPage = function(pageData) { + $ax.pageData = _pageData = pageData; + _initializePageData(); + }; + + $ax.public.loadDocument = $ax.loadDocument = function(document) { + $ax.document = document; + _initializeDocumentData(); + }; + + + /** + Navigates to a page + + + */ + $ax.public.navigate = $ax.navigate = function(to) { //url, includeVariables, type) { + var targetUrl; + if(typeof (to) === 'object') { + includeVariables = to.includeVariables; + targetUrl = !includeVariables ? to.url : $ax.globalVariableProvider.getLinkUrl(to.url); + + if(to.target == "new") { + window.open(targetUrl, to.name); + } else if(to.target == "popup") { + var features = _getPopupFeatures(to.popupOptions); + window.open(targetUrl, to.name, features); + } else { + var targetLocation = window.location; + if(to.target == "current") { + } else if(to.target == "parent") { + targetLocation = top.opener.window.location; + } else if(to.target == "parentFrame") { + targetLocation = parent.location; + } else if(to.target == "frame") { + // targetLocation = to.frame.contentWindow.location; + $(to.frame).attr('src', targetUrl || 'about:blank'); + return; + } + + if (!_needsReload(targetLocation, to.url)) { + targetLocation.href = targetUrl || 'about:blank'; + } else { + targetLocation.href = $axure.utils.getReloadPath() + "#" + encodeURI(targetUrl); + } + } + } else { + $ax.navigate({ + url: to, + target: "current", + includeVariables: arguments[1] + }); + } + }; + + var _needsReload = function(oldLocation, newBaseUrl) { + var reload = false; + try { + var oldUrl = oldLocation.href; + var oldBaseUrl = oldUrl.split("#")[0]; + var lastslash = oldBaseUrl.lastIndexOf("/"); + if(lastslash > 0) { + oldBaseUrl = oldBaseUrl.substring(lastslash + 1, oldBaseUrl.length); + if(oldBaseUrl == encodeURI(newBaseUrl)) { + reload = true; + } + } + } catch(e) { + } + return reload; + }; + + var _getPopupFeatures = function(options) { + var defaultOptions = { + toolbar: true, + scrollbars: true, + location: true, + status: true, + menubar: true, + directories: true, + resizable: true, + centerwindow: true, + left: -1, + top: -1, + height: -1, + width: -1 + }; + + var selectedOptions = $.extend({}, defaultOptions, options); + + var optionsList = []; + optionsList.push('toolbar=' + (selectedOptions.toolbar ? 'yes' : 'no')); + optionsList.push('scrollbars=' + (selectedOptions.scrollbars ? 'yes' : 'no')); + optionsList.push('location=' + (selectedOptions.location ? 'yes' : 'no')); + optionsList.push('status=' + (selectedOptions.status ? 'yes' : 'no')); + optionsList.push('menubar=' + (selectedOptions.menubar ? 'yes' : 'no')); + optionsList.push('directories=' + (selectedOptions.directories ? 'yes' : 'no')); + optionsList.push('resizable=' + (selectedOptions.resizable ? 'yes' : 'no')); + + if(selectedOptions.centerwindow == false) { + if(selectedOptions.left > -1) { + optionsList.push('left=' + selectedOptions.left); + } + + if(selectedOptions.top > -1) { + optionsList.push('top=' + selectedOptions.top); + } + } + + var height = 0; + var width = 0; + if(selectedOptions.height > 0) { + optionsList.push('height=' + selectedOptions.height); + height = selectedOptions.height; + } + + if(selectedOptions.width > 0) { + optionsList.push('width=' + selectedOptions.width); + width = selectedOptions.width; + } + + var features = optionsList.join(','); + if(selectedOptions.centerwindow) { + var winl = (window.screen.width - width) / 2; + var wint = (window.screen.height - height) / 2; + features = features + ',left=' + winl + ',top=' + wint; + } + + return features; + }; + + /** + Closes a window + + + */ + $ax.public.closeWindow = $ax.closeWindow = function() { + parent.window.close(); + }; + + /** + Goes back + + + */ + $ax.public.back = $ax.back = function() { + window.history.go(-1); + }; + + /** + Reloads the current page. + # includeVariables: true if it should re-include the variables when the page is reloaded + */ + $ax.public.reload = $ax.reload = function(includeVariables) { + var targetUrl = (includeVariables === false) + ? $axure.utils.getReloadPath() + "#" + encodeURI($ax.pageData.url) + : $axure.utils.getReloadPath() + "#" + encodeURI($ax.globalVariableProvider.getLinkUrl($ax.pageData.url)); + window.location.href = targetUrl; + }; + + /** + Sets a variable. + # name: The name of the global variable to set + # value: The value that should be set + */ + $ax.public.setGlobalVariable = $ax.setGlobalVariable = function(name, value) { + if(!name || !value) { + return; + } + + $ax.globalVariableProvider.setVariableValue(name, value); + }; + + /** + Gets the value of a global variable + # name: The name of the global variable value to get + */ + $ax.public.getGlobalVariable = $ax.getGlobalVariable = function(name) { + $ax.globalVariableProvider.getVariableValue(name); + }; + + $ax.getObjectFromElementIdDisregardHex = function (elementId) { + var elementIdInput = elementId.charAt(0) == '#' ? elementId.substring(1) : elementId; + return this.getObjectFromElementId(elementIdInput); + } + + + $ax.getTypeFromElementId = function(elementId) { + var obj = this.getObjectFromElementIdDisregardHex(elementId); + return obj && obj.type; + }; + + $ax.getNumFromPx = function(pxNum) { + return Number(pxNum.replace('px', '')); + } + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/drag.js b/codes/agent/game-docker/api/document/resources/scripts/axure/drag.js new file mode 100644 index 0000000..d649494 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/drag.js @@ -0,0 +1,322 @@ +$axure.internal(function($ax) { + var widgetDragInfo = new Object(); + var _drag = {}; + $ax.drag = _drag; + + $ax.drag.GetWidgetDragInfo = function() { + return $.extend({}, widgetDragInfo); + }; + + $ax.drag.StartDragWidget = function(event, id) { + $ax.setjBrowserEvent(jQuery.Event(event)); + if(event.donotdrag) return; + + var x, y; + var tg; + if(IE_10_AND_BELOW) { + x = window.event.clientX + window.document.documentElement.scrollLeft + window.document.body.scrollLeft; + y = window.event.clientY + window.document.documentElement.scrollTop + window.document.body.scrollTop; + tg = window.event.srcElement; + } else { + if(event.changedTouches) { + x = event.changedTouches[0].pageX; + y = event.changedTouches[0].pageY; + } else { + x = event.pageX; + y = event.pageY; + event.preventDefault(); + } + tg = event.target; + } + + widgetDragInfo.hasStarted = false; + widgetDragInfo.widgetId = id; + widgetDragInfo.cursorStartX = x; + widgetDragInfo.cursorStartY = y; + widgetDragInfo.lastX = x; + widgetDragInfo.lastY = y; + widgetDragInfo.currentX = x; + widgetDragInfo.currentY = y; + + widgetDragInfo.movedWidgets = new Object(); + widgetDragInfo.startTime = (new Date()).getTime(); + widgetDragInfo.targetWidget = tg; + + var movedownName = IE_10_AND_BELOW && $ax.features.supports.windowsMobile ? + $ax.features.eventNames.mouseDownName : $ax.features.eventNames.mouseMoveName; + $ax.event.addEvent(document, movedownName, _dragWidget, true); + $ax.event.addEvent(document, $ax.features.eventNames.mouseUpName, _stopDragWidget, true); + +// if(IE && BROWSER_VERSION < 9) { +// if($ax.features.supports.windowsMobile) { +// window.document.attachEvent($ax.features.eventNames.mouseDownName, _dragWidget); +// window.document.attachEvent($ax.features.eventNames.mouseUpName, _stopDragWidget); +// } else { +// window.document.attachEvent('on' + $ax.features.eventNames.mouseMoveName, _dragWidget); +// window.document.attachEvent('on' + $ax.features.eventNames.mouseUpName, _stopDragWidget); +// } +// } else { +// window.document.addEventListener($ax.features.eventNames.mouseMoveName, _dragWidget, true); +// window.document.addEventListener($ax.features.eventNames.mouseUpName, _stopDragWidget, true); +// } + $ax.legacy.SuppressBubble(event); + }; + + var _dragWidget = function(event) { + $ax.setjBrowserEvent(jQuery.Event(event)); + + var x, y; + if(IE_10_AND_BELOW) { + x = window.event.clientX + window.document.documentElement.scrollLeft + window.document.body.scrollLeft; + y = window.event.clientY + window.document.documentElement.scrollTop + window.document.body.scrollTop; + } else { + if(event.changedTouches) { + x = event.changedTouches[0].pageX; + y = event.changedTouches[0].pageY; + //allow scroll (defaults) if only swipe events have cases and delta x is less than 5px and not blocking scrolling + var deltaX = x - widgetDragInfo.currentX; + var target = window.document.getElementById(widgetDragInfo.widgetId); + if($ax.event.hasSyntheticEvent(widgetDragInfo.widgetId, "onDrag") || $ax.event.hasSyntheticEvent(widgetDragInfo.widgetId, "onSwipeUp") || + $ax.event.hasSyntheticEvent(widgetDragInfo.widgetId, "onSwipeDown") || (deltaX * deltaX) > 25 + || ($ax.document.configuration.preventScroll && $ax.legacy.GetScrollable(target) == window.document.body)) { + event.preventDefault(); + } + } else { + x = event.pageX; + y = event.pageY; + } + } + widgetDragInfo.xDelta = x - widgetDragInfo.currentX; + widgetDragInfo.yDelta = y - widgetDragInfo.currentY; + widgetDragInfo.lastX = widgetDragInfo.currentX; + widgetDragInfo.lastY = widgetDragInfo.currentY; + widgetDragInfo.currentX = x; + widgetDragInfo.currentY = y; + + widgetDragInfo.currentTime = (new Date()).getTime(); + + $ax.legacy.SuppressBubble(event); + + if(!widgetDragInfo.hasStarted) { + widgetDragInfo.hasStarted = true; + $ax.event.raiseSyntheticEvent(widgetDragInfo.widgetId, "onDragStart"); + + widgetDragInfo.oldBodyCursor = window.document.body.style.cursor; + window.document.body.style.cursor = 'move'; + var widget = window.document.getElementById(widgetDragInfo.widgetId); + widgetDragInfo.oldCursor = widget.style.cursor; + widget.style.cursor = 'move'; + } + + $ax.event.raiseSyntheticEvent(widgetDragInfo.widgetId, "onDrag"); + }; + + var _suppressClickAfterDrag = function(event) { + _removeSuppressEvents(); + + $ax.legacy.SuppressBubble(event); + }; + + var _removeSuppressEvents = function () { + if(IE_10_AND_BELOW) { + $ax.event.removeEvent(event.srcElement, 'click', _suppressClickAfterDrag, undefined, true); + $ax.event.removeEvent(widgetDragInfo.targetWidget, 'mousemove', _removeSuppressEvents, undefined, true); + } else { + $ax.event.removeEvent(document, "click", _suppressClickAfterDrag, true); + $ax.event.removeEvent(document, 'mousemove', _removeSuppressEvents, true); + } + }; + + var _stopDragWidget = function(event) { + $ax.setjBrowserEvent(jQuery.Event(event)); + + var tg; + + + var movedownName = IE_10_AND_BELOW && $ax.features.supports.windowsMobile ? + $ax.features.eventNames.mouseDownName : $ax.features.eventNames.mouseMoveName; + $ax.event.removeEvent(document, movedownName, _dragWidget, true); + $ax.event.removeEvent(document, $ax.features.eventNames.mouseUpName, _stopDragWidget, true); + + tg = IE_10_AND_BELOW ? window.event.srcElement : event.target; +// +// +// if(OLD_IE && BROWSER_VERSION < 9) { +// if($ax.features.supports.windowsMobile) { +// window.document.detachEvent($ax.features.eventNames.mouseDownName, _dragWidget); +// window.document.detachEvent($ax.features.eventNames.mouseUpName, _stopDragWidget); +// +// } else { +// window.document.detachEvent('on' + $ax.features.eventNames.mouseMoveName, _dragWidget); +// window.document.detachEvent('on' + $ax.features.eventNames.mouseUpName, _stopDragWidget); +// } +// tg = window.event.srcElement; +// } else { +// window.document.removeEventListener($ax.features.eventNames.mouseMoveName, _dragWidget, true); +// window.document.removeEventListener($ax.features.eventNames.mouseUpName, _stopDragWidget, true); +// tg = event.target; +// } + + if(widgetDragInfo.hasStarted) { + widgetDragInfo.currentTime = (new Date()).getTime(); + $ax.event.raiseSyntheticEvent(widgetDragInfo.widgetId, "onDragDrop"); + + if($ax.globalVariableProvider.getVariableValue('totaldragx') < -30 && $ax.globalVariableProvider.getVariableValue('dragtime') < 1000) { + $ax.event.raiseSyntheticEvent(widgetDragInfo.widgetId, "onSwipeLeft"); + } + + if($ax.globalVariableProvider.getVariableValue('totaldragx') > 30 && $ax.globalVariableProvider.getVariableValue('dragtime') < 1000) { + $ax.event.raiseSyntheticEvent(widgetDragInfo.widgetId, "onSwipeRight"); + } + + var totalDragY = $ax.globalVariableProvider.getVariableValue('totaldragy'); + if(totalDragY < -30 && $ax.globalVariableProvider.getVariableValue('dragtime') < 1000) { + $ax.event.raiseSyntheticEvent(widgetDragInfo.widgetId, "onSwipeUp"); + } + + if(totalDragY > 30 && $ax.globalVariableProvider.getVariableValue('dragtime') < 1000) { + $ax.event.raiseSyntheticEvent(widgetDragInfo.widgetId, "onSwipeDown"); + } + + window.document.body.style.cursor = widgetDragInfo.oldBodyCursor; + var widget = window.document.getElementById(widgetDragInfo.widgetId); + // It may be null if OnDragDrop filtered out the widget + if(widget != null) widget.style.cursor = widgetDragInfo.oldCursor; + + if(widgetDragInfo.targetWidget == tg && !event.changedTouches) { + // suppress the click after the drag on desktop browsers + if(IE_10_AND_BELOW && widgetDragInfo.targetWidget) { + $ax.event.addEvent(widgetDragInfo.targetWidget, 'click', _suppressClickAfterDrag, true, true); + $ax.event.addEvent(widgetDragInfo.targetWidget, "onmousemove", _removeSuppressEvents, true, true); + } else { + $ax.event.addEvent(document, "click", _suppressClickAfterDrag, true); + $ax.event.addEvent(document, "mousemove", _removeSuppressEvents, true); + + } +// +// +// if(IE && BROWSER_VERSION < 9 && widgetDragInfo.targetWidget) { +// widgetDragInfo.targetWidget.attachEvent("onclick", _suppressClickAfterDrag); +// widgetDragInfo.targetWidget.attachEvent("onmousemove", _removeSuppressEvents); +// } else { +// window.document.addEventListener("click", _suppressClickAfterDrag, true); +// window.document.addEventListener("mousemove", _removeSuppressEvents, true); +// } + } + } + + widgetDragInfo.hasStarted = false; + widgetDragInfo.movedWidgets = new Object(); + + return false; + }; + + $ax.drag.GetDragX = function() { + if(widgetDragInfo.hasStarted) return widgetDragInfo.xDelta; + return 0; + }; + + $ax.drag.GetDragY = function() { + if(widgetDragInfo.hasStarted) return widgetDragInfo.yDelta; + return 0; + }; + + $ax.drag.GetTotalDragX = function() { + if(widgetDragInfo.hasStarted) return widgetDragInfo.currentX - widgetDragInfo.cursorStartX; + return 0; + }; + + $ax.drag.GetTotalDragY = function() { + if(widgetDragInfo.hasStarted) return widgetDragInfo.currentY - widgetDragInfo.cursorStartY; + return 0; + }; + + $ax.drag.GetDragTime = function() { + if(widgetDragInfo.hasStarted) return widgetDragInfo.currentTime - widgetDragInfo.startTime; + return 600000; + }; + + // $ax.drag.GetCursorRectangles = function() { + // var rects = new Object(); + // rects.lastRect = new rect($ax.lastMouseLocation.x, $ax.lastMouseLocation.y, 1, 1); + // rects.currentRect = new rect($ax.mouseLocation.x, $ax.mouseLocation.y, 1, 1); + // return rects; + // }; + + // $ax.drag.GetWidgetRectangles = function(id) { + // var widget = window.document.getElementById(id); + // var rects = new Object(); + // rects.lastRect = new rect($ax.legacy.getAbsoluteLeft(widget), $ax.legacy.getAbsoluteTop(widget), Number($('#' + id).css('width').replace("px", "")), Number($('#' + id).css('height').replace("px", ""))); + // rects.currentRect = rects.lastRect; + // return rects; + // }; + + // $ax.drag.IsEntering = function(movingRects, targetRects) { + // return !movingRects.lastRect.IntersectsWith(targetRects.currentRect) && movingRects.currentRect.IntersectsWith(targetRects.currentRect); + // }; + + // $ax.drag.IsLeaving = function(movingRects, targetRects) { + // return movingRects.lastRect.IntersectsWith(targetRects.currentRect) && !movingRects.currentRect.IntersectsWith(targetRects.currentRect); + // }; + + // function IsOver(movingRects, targetRects) { + // return movingRects.currentRect.IntersectsWith(targetRects.currentRect); + // } + + // function IsNotOver(movingRects, targetRects) { + // return !IsOver(movingRects, targetRects); + // } + + $ax.drag.LogMovedWidgetForDrag = function (id, dragInfo) { + dragInfo = dragInfo || widgetDragInfo; + if(dragInfo.hasStarted) { + var containerIndex = id.indexOf('_container'); + if(containerIndex != -1) id = id.substring(0, containerIndex); + + // If state or other non-widget id, this should not be dragged, and should exit out to avoid exceptions. + if(!$obj(id)) return; + + var query = $ax('#' + id); + var x = query.left(); + var y = query.top(); + + var movedWidgets = dragInfo.movedWidgets; + if(!movedWidgets[id]) { + movedWidgets[id] = new Location(x, y); + } + } + }; + + var Location = function(x, y) { + this.x = x; + this.y = y; + }; + $ax.drag.location = Location; + + var Rectangle = $ax.drag.Rectangle = function(x, y, width, height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.right = x + width; + this.bottom = y + height; + }; + + Rectangle.prototype.IntersectsWith = function(rect) { + if(this.Invalid()) return false; + if(rect.length) { + for(var i = 0; i < rect.length; i++) if(!rect[i].Invalid && this.IntersectsWith(rect[i])) return true; + return false; + } + if(rect.Invalid()) return false; + return this.x < rect.right && this.right > rect.x && this.y < rect.bottom && this.bottom > rect.y; + }; + + Rectangle.prototype.Invalid = function() { + return this.x == -1 && this.y == -1 && this.width == -1 && this.height == -1; + }; + + Rectangle.prototype.Move = function(x, y) { + return new Rectangle(x, y, this.width, this.height); + }; +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/events.js b/codes/agent/game-docker/api/document/resources/scripts/axure/events.js new file mode 100644 index 0000000..333359d --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/events.js @@ -0,0 +1,1733 @@ +// ******* Features MANAGER ******** // + +$axure.internal(function($ax) { + var _features = $ax.features = {}; + var _supports = _features.supports = {}; + _supports.touchstart = typeof window.ontouchstart !== 'undefined'; + _supports.touchmove = typeof window.ontouchmove !== 'undefined'; + _supports.touchend = typeof window.ontouchend !== 'undefined'; + + _supports.mobile = _supports.touchstart && _supports.touchend && _supports.touchmove; + // Got this from http://stackoverflow.com/questions/11381673/javascript-solution-to-detect-mobile-browser + var check = navigator.userAgent.match(/Android/i) + || navigator.userAgent.match(/webOS/i) + || navigator.userAgent.match(/iPhone/i) + || navigator.userAgent.match(/iPad/i) + || navigator.userAgent.match(/iPod/i) + || navigator.userAgent.match(/BlackBerry/i) + || navigator.userAgent.match(/Tablet PC/i) + || navigator.userAgent.match(/Windows Phone/i); + + _supports.windowsMobile = navigator.userAgent.match(/Tablet PC/i) || navigator.userAgent.match(/Windows Phone/i); + + if(!check && _supports.mobile) { + _supports.touchstart = false; + _supports.touchmove = false; + _supports.touchend = false; + _supports.mobile = false; + } + + var _eventNames = _features.eventNames = {}; + _eventNames.mouseDownName = _supports.touchstart ? 'touchstart' : 'mousedown'; + _eventNames.mouseUpName = _supports.touchend ? 'touchend' : 'mouseup'; + _eventNames.mouseMoveName = _supports.touchmove ? 'touchmove' : 'mousemove'; +}); + +// ******* EVENT MANAGER ******** // +$axure.internal(function($ax) { + var _objectIdToEventHandlers = {}; + + var _jBrowserEvent = undefined; + $ax.setjBrowserEvent = function(event) { + _jBrowserEvent = event; + }; + + $ax.getjBrowserEvent = function() { + return _jBrowserEvent; + }; + + var _event = {}; + $ax.event = _event; + + //initilize state + _event.mouseOverObjectId = ''; + _event.mouseDownObjectId = ''; + _event.mouseOverIds = []; + + var EVENT_NAMES = ['mouseenter', 'mouseleave', 'contextmenu', 'change', 'focus', 'blur']; + + + // Tap, double tap, and touch move, or synthetic. + if(!$ax.features.supports.mobile) { + EVENT_NAMES[EVENT_NAMES.length] = 'click'; + EVENT_NAMES[EVENT_NAMES.length] = 'dblclick'; + EVENT_NAMES[EVENT_NAMES.length] = 'mousemove'; + } + + // add the event names for the touch events + EVENT_NAMES[EVENT_NAMES.length] = $ax.features.eventNames.mouseDownName; + EVENT_NAMES[EVENT_NAMES.length] = $ax.features.eventNames.mouseUpName; + + for(var i = 0; i < EVENT_NAMES.length; i++) { + var eventName = EVENT_NAMES[i]; + //we need the function here to circumvent closure modifying eventName + _event[eventName] = (function(event_Name) { + return function(elementId, fn) { + var elementIdQuery = $jobj(elementId); + var type = $ax.getTypeFromElementId(elementId); + + //we need specially track link events so we can enable and disable them along with + //their parent widgets + if(elementIdQuery.is('a')) _attachCustomObjectEvent(elementId, event_Name, fn); + //see notes below + else if($ax.IsTreeNodeObject(type)) _attachTreeNodeEvent(elementId, event_Name, fn); + else if ($ax.IsImageFocusable(type) && (event_Name == 'focus' || event_Name == 'blur')) { + var suitableChild; + var imgChild = $ax.repeater.applySuffixToElementId(elementId, '_img'); + var divChild = $ax.repeater.applySuffixToElementId(elementId, '_div'); + + for (var j = 0; j < elementIdQuery[0].children.length; j++) { + if (elementIdQuery[0].children[j].id == imgChild) suitableChild = imgChild; + if (!suitableChild && elementIdQuery[0].children[j].id == divChild) suitableChild = divChild; + } + if(!suitableChild) suitableChild = imgChild; + _attachDefaultObjectEvent($jobj(suitableChild), elementId, event_Name, fn); + } else { + var inputId = $ax.INPUT(elementId); + var isInput = $jobj(inputId).length != 0; + var id = isInput && (event_Name == 'focus' || event_Name == 'blur') ? inputId : elementId; + _attachDefaultObjectEvent($jobj(id), elementId, event_Name, fn); + } + }; + })(eventName); + } + + var AXURE_TO_JQUERY_EVENT_NAMES = { + 'onMouseOver': 'mouseenter', + 'onMouseOut': 'mouseleave', + 'onContextMenu': 'contextmenu', + 'onChange': 'change', + 'onFocus': 'focus', + 'onLostFocus': 'blur' + }; + + // Tap, double tap, and touch move, or synthetic. + if(!$ax.features.supports.mobile) { + AXURE_TO_JQUERY_EVENT_NAMES.onClick = 'click'; + AXURE_TO_JQUERY_EVENT_NAMES.onDoubleClick = 'dblclick'; + AXURE_TO_JQUERY_EVENT_NAMES.onMouseMove = 'mousemove'; + } + + AXURE_TO_JQUERY_EVENT_NAMES.onMouseDown = $ax.features.eventNames.mouseDownName; + AXURE_TO_JQUERY_EVENT_NAMES.onMouseUp = $ax.features.eventNames.mouseUpName; + + var _attachEvents = function (diagramObject, elementId) { + + var inputId = $ax.repeater.applySuffixToElementId(elementId, '_input'); + var id = $jobj(inputId).length ? inputId : elementId; + + for(var eventName in diagramObject.interactionMap) { + var jQueryEventName = AXURE_TO_JQUERY_EVENT_NAMES[eventName]; + if(!jQueryEventName) continue; + + _event[jQueryEventName](id, + //this is needed to escape closure + (function(axEventObject) { + return function(e) { + $ax.setjBrowserEvent(e); + // console.log(axEventObject.description); + var eventInfo = $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), false, elementId); + _handleEvent(elementId, eventInfo, axEventObject); + }; + })(diagramObject.interactionMap[eventName]) + ); + } + + }; + + var _descriptionToKey = { 'OnFocus': 'onFocus', 'OnLostFocus': 'onLostFocus' }; + var _createProxies = function(diagramObject, elementId) { + var createFocus = _needsProxy(elementId, 'onFocus'); + var createLostFocus = _needsProxy(elementId, 'onLostFocus'); + + if(!createFocus && !createLostFocus) return; + + if(!diagramObject.interactionMap) diagramObject.interactionMap = {}; + if(createFocus) diagramObject.interactionMap.onFocus = { proxy: true, description: 'OnFocus' }; + if(createLostFocus) diagramObject.interactionMap.onLostFocus = { proxy: true, description: 'OnLostFocus' }; + } + + var preventDefaultEvents = ['OnContextMenu', 'OnKeyUp', 'OnKeyDown']; + var allowBubble = ['OnFocus', 'OnResize', 'OnMouseOut', 'OnMouseOver']; + + var _canClick = true; + var _startScroll = []; + var _setCanClick = function(canClick) { + _canClick = canClick; + if(_canClick) _startScroll = [$(window).scrollLeft(), $(window).scrollTop()]; + }; + + var _getCanClick = function() { + if(!$ax.features.supports.mobile) return true; + var endScroll = [$(window).scrollLeft(), $(window).scrollTop()]; + return _canClick && _startScroll[0] == endScroll[0] && _startScroll[1] == endScroll[1]; + }; + + //var _notAllowedInvisible = function (type) { + // $ax.getTypeFromElementId(elementId); + + // return !$ax.public.fn.IsReferenceDiagramObject(type) && !$ax.public.fn.IsLayer(type); + //} + + + var _notAllowedInvisible = function (id) { + var type = $ax.getTypeFromElementId(id); + if ($ax.public.fn.IsReferenceDiagramObject(type) || $ax.public.fn.IsLayer(type)) return false; + return !($ax.public.fn.IsVector(type) && _hasCompoundImage(id)); + } + + var _hasCompoundImage = function (id) { + var query = $jobj(id); + return $ax.public.fn.isCompoundVectorHtml(query[0]); + } + + var eventNesting = 0; + var eventNestingTime = new Date().getTime(); + + var _handleEvent = $ax.event.handleEvent = function(elementId, eventInfo, axEventObject, skipShowDescriptions, synthetic) { + if(axEventObject.proxy) { + var firingId = _widgetToFocusParent[elementId]; + if(firingId) { + var firingObj = $obj(firingId); + var nextEventObj = firingObj.interactionMap && firingObj.interactionMap[_descriptionToKey[axEventObject.description]]; + if(!nextEventObj) nextEventObj = axEventObject; + _handleEvent(firingId, eventInfo, nextEventObj, skipShowDescriptions, synthetic); + } + return; + } +// var x = JSON.stringify(eventInfo); +// var y = JSON.stringify(axEventObject); + + var fireTime = new Date().getTime(); + + if(fireTime - eventNestingTime > 100) { + eventNestingTime = fireTime; + eventNesting = 0; + } + + if(eventNesting === 0) { + $ax.recording.maybeRecordEvent(elementId, eventInfo, axEventObject, fireTime); + } + + eventNesting += 1; + + var eventDescription = axEventObject.description; + if(!_getCanClick() && (eventDescription == 'OnClick' || eventDescription == 'OnPageClick')) return; + // If you are supposed to suppress, do that right away. + if(suppressedEventStatus[eventDescription]) { + return; + } + + var currentEvent = $ax.getjBrowserEvent(); + if(!synthetic && currentEvent && currentEvent.originalEvent && currentEvent.originalEvent.handled && !eventInfo.isMasterEvent) return; + if(!synthetic && elementId && !$ax.style.getObjVisible(elementId) && _notAllowedInvisible(elementId)) return; + + //if debug + var axObj = $obj(elementId); + var axObjLabel = axObj ? axObj.label : eventInfo.label; + var axObjType = axObj ? axObj.friendlyType : eventInfo.friendlyType; + if(!skipShowDescriptions || eventDescription == 'OnPageLoad') $ax.messageCenter.postMessage('axEvent', { 'label': axObjLabel, 'type': axObjType, 'event': axEventObject }); + + var bubble = true; + var showCaseDescriptions = !skipShowDescriptions && _shouldShowCaseDescriptions(axEventObject); + if(!showCaseDescriptions) { + //handle case descriptions + var caseGroups = []; + var currentCaseGroup = []; + caseGroups[0] = currentCaseGroup; + + // Those refreshes not after a wait + var guaranteedRefreshes = {}; + + var caseGroupIndex = 0; + for(var i = 0; i < axEventObject.cases.length; i++) { + var currentCase = axEventObject.cases[i]; + if(currentCase.isNewIfGroup && i != 0) { + caseGroupIndex++; + currentCaseGroup = []; + caseGroups[caseGroups.length] = currentCaseGroup; + // Joon: Isn't caseGroups.length always equal to caseGroupIndex? + } + currentCaseGroup[currentCaseGroup.length] = currentCase; + + for(var j = 0; j < currentCase.actions.length; j++) { + var action = currentCase.actions[j]; + if(action.action == 'wait') break; + if(action.action != 'refreshRepeater') continue; + for(var k = 0; k < action.repeatersToRefresh.length; k++) { + var id = $ax.getElementIdsFromPath(action.repeatersToRefresh[k], eventInfo)[0]; + if(id) guaranteedRefreshes[id] = caseGroupIndex; + } + } + } + + for(var i = 0; i < caseGroups.length; i++) { + var groupRefreshes = []; + for(var key in guaranteedRefreshes) { + if(guaranteedRefreshes[key] == i) groupRefreshes[groupRefreshes.length] = key; + } + bubble = _handleCaseGroup(eventInfo, caseGroups[i], groupRefreshes) && bubble; + } + } else { + _showCaseDescriptions(elementId, eventInfo, axEventObject, synthetic); + bubble = false; + } + + // If not handled, synthetically bubble if you can + if(bubble && _widgetToFocusParent[elementId]) { + firingId = _widgetToFocusParent[elementId]; + if(firingId) { + firingObj = $obj(firingId); + nextEventObj = firingObj.interactionMap && firingObj.interactionMap[_descriptionToKey[axEventObject.description]]; + if(!nextEventObj) nextEventObj = axEventObject; + _handleEvent(firingId, eventInfo, nextEventObj, skipShowDescriptions, synthetic); + } + return; + } + + // Only trigger a supression if it handled this event + if(!bubble && suppressingEvents[eventDescription]) { + suppressedEventStatus[suppressingEvents[eventDescription]] = true; + } + + $ax.action.flushAllResizeMoveActions(eventInfo); + + // This should not be needed anymore. All refreshes should be inserted, or handled earlier. + var repeaters = $ax.deepCopy($ax.action.repeatersToRefresh); + while($ax.action.repeatersToRefresh.length) $ax.action.repeatersToRefresh.pop(); + for(i = 0; i < repeaters.length; i++) $ax.repeater.refreshRepeater(repeaters[i], eventInfo); + + if(currentEvent && currentEvent.originalEvent) { + currentEvent.originalEvent.handled = !synthetic && !bubble && allowBubble.indexOf(eventDescription) == -1; + //currentEvent.originalEvent.donotdrag = currentEvent.donotdrag || (!bubble && eventDescription == 'OnMouseDown'); + + // Prevent default if necessary + if(currentEvent.originalEvent.handled && preventDefaultEvents.indexOf(eventDescription) != -1) { + currentEvent.preventDefault(); + } + } + + eventNesting -= 1; + + if(!showCaseDescriptions) $ax.messageCenter.postMessage('axEventComplete'); + + }; + + var _showCaseDescriptions = function(elementId, eventInfo, axEventObject, synthetic) { + + if(axEventObject.cases.length == 0) return true; + + var linksId = elementId + "linkBox"; + $('#' + linksId).remove(); + + var $container = $("
    "); + + if(!_isEventSimulating(axEventObject)) { + var copy = $ax.eventCopy(eventInfo); + for(var i = 0; i < axEventObject.cases.length; i++) { + var $link = $(""); + $link.click(function(j) { + return function () { + var currentCase = axEventObject.cases[j]; + $ax.messageCenter.postMessage('axCase', { 'description': currentCase.description }); + for(var k = 0; k < currentCase.actions.length; k++) { + $ax.messageCenter.postMessage('axAction', { 'description': currentCase.actions[k].description }); + } + $ax.messageCenter.postMessage('axEventComplete'); + + var bubble = $ax.action.dispatchAction(copy, axEventObject.cases[j].actions); + $('#' + linksId).remove(); + return bubble; + }; + } (i) + ); + + $container.append($link); + } + } else { + var fullDescription = axEventObject.description + ":
    "; + for(var i = 0; i < axEventObject.cases.length; i++) { + var currentCase = axEventObject.cases[i]; + fullDescription += "  " + currentCase.description.replace(/
    /g, '
      ') + ":
    "; + for(var j = 0; j < currentCase.actions.length; j++) { + fullDescription += "    " + currentCase.actions[j].description.replace(/
    /g, '
          ') + "
    "; + } + } + fullDescription = fullDescription.substring(0, fullDescription.length - 4); + + var $link = $(""); + $link.click(function() { + _handleEvent(elementId, eventInfo, axEventObject, true, synthetic); + $ax.messageCenter.postMessage('axEventComplete'); + $('#' + linksId).remove(); + return; + }); + $container.append($link); + } + $container.mouseleave(function(e) { $ax.legacy.SuppressBubble(e); }); + $('body').append($container); + _showCaseLinks(eventInfo, linksId); + }; + + var _showCaseLinks = function(eventInfo, linksId) { + var links = window.document.getElementById(linksId); + + links.style.top = eventInfo.pageY; + + var left = eventInfo.pageX; + links.style.left = left; + $ax.visibility.SetVisible(links, true); + $ax.legacy.BringToFront(linksId, true); + $ax.legacy.RefreshScreen(); + }; + + + var _shouldShowCaseDescriptions = function(axEventObject) { + if($ax.document.configuration.linkStyle == "alwaysDisplayTargets") return true; + if($ax.document.configuration.linkStyle == "neverDisplayTargets") return false; + if(axEventObject.cases.length == 0) return false; + if(_isEventSimulating(axEventObject)) return false; + if(axEventObject.cases.length >= 2) return true; + return false; + }; + + var _isEventSimulating = function(axEventObject) { + for(var i = 0; i < axEventObject.cases.length; i++) { + if(axEventObject.cases[i].condition) return true; + } + return false; + }; + + var _handleCaseGroup = function(eventInfo, caseGroup, groupRefreshes) { + for(var i = 0; i < caseGroup.length; i++) { + var currentCase = caseGroup[i]; + if(!currentCase.condition || _processCondition(currentCase.condition, eventInfo)) { + $ax.messageCenter.postMessage('axCase', { 'description': currentCase.description }); + for(var j = 0; j < currentCase.actions.length; j++) { + if(currentCase.actions[j].action != 'refreshRepeater') $ax.messageCenter.postMessage('axAction', { 'description': currentCase.actions[j].description }); + } + + for(var j = 0; j < currentCase.actions.length; j++) { + var action = currentCase.actions[j]; + if(action.action == 'wait') break; + if(action.action != 'refreshRepeater') continue; + for(var k = 0; k < action.repeatersToRefresh.length; k++) { + var id = $ax.getElementIdsFromPath(action.repeatersToRefresh[i], eventInfo)[i]; + if(id) { + var index = groupRefreshes.indexOf(id); + if(index != -1) $ax.splice(groupRefreshes, index); + } + } + } + + // Any guaranteed refreshes that aren't accounted for must be run still. + $ax.action.tryRefreshRepeaters(groupRefreshes, eventInfo); + + $ax.action.dispatchAction(eventInfo, currentCase.actions); + return false; + } + } + + // Any guaranteed refreshes that aren't accounted for must be run still. + $ax.action.tryRefreshRepeaters(groupRefreshes, eventInfo); + return true; + }; + + var _processCondition = function(expr, eventInfo) { + return $ax.expr.evaluateExpr(expr, eventInfo); + }; + + var _attachTreeNodeEvent = function(elementId, eventName, fn) { + //we need to set the cursor here because we want to make sure that every tree node has the default + //cursor set and then it's overridden if it has a click + if(eventName == 'click') window.document.getElementById(elementId).style.cursor = 'pointer'; + + _attachCustomObjectEvent(elementId, eventName, fn); + }; + + var _attachDefaultObjectEvent = function(elementIdQuery, elementId, eventName, fn) { + var func = function() { + if(!$ax.style.IsWidgetDisabled(elementId)) return fn.apply(this, arguments); + return true; + }; + + var bind = !elementIdQuery[eventName]; + if(bind) elementIdQuery.bind(eventName, func); + else elementIdQuery[eventName](func); + }; + + var _attachCustomObjectEvent = function(elementId, eventName, fn) { + var handlers = _objectIdToEventHandlers[elementId]; + if(!handlers) _objectIdToEventHandlers[elementId] = handlers = {}; + + var fnList = handlers[eventName]; + if(!fnList) handlers[eventName] = fnList = []; + + fnList[fnList.length] = fn; + }; + + var _fireObjectEvent = function(elementId, event, originalArgs) { + var element = window.document.getElementById(elementId); + + var handlerList = _objectIdToEventHandlers[elementId] && _objectIdToEventHandlers[elementId][event]; + if(handlerList) { + for(var i = 0; i < handlerList.length; i++) handlerList[i].apply(element, originalArgs); + } + + eventNesting -= 1; + + }; + + var _layerToFocusableWidget = {}; + var _widgetToFocusParent = {}; + _event.layerMapFocus = function(layer, elementId) { + var mainObj = layer.objs[0]; + // If first child non existant return + if (!mainObj) return; + + var mainId = $ax.getElementIdFromPath([mainObj.id], { relativeTo: elementId }); + _widgetToFocusParent[mainId] = elementId; + + // If first child is a layer, call recursively + if ($ax.public.fn.IsLayer(mainObj.type)) { + _event.layerMapFocus(mainObj, mainId); + var baseId = _layerToFocusableWidget[mainId]; + if(baseId) _layerToFocusableWidget[elementId] = baseId; + return; + } + + _layerToFocusableWidget[elementId] = mainId; + } + + var _needsProxy = function(id, proxyName) { + var obj = $obj(id); + // layers don't need on focus ever, proxies will handle them + if ($ax.public.fn.IsLayer(obj.type)) return false; + // If you already focus you don't need to force yourself to proxy. + if(obj.interactionMap && obj.interactionMap[proxyName]) return false; + + var parentId = _widgetToFocusParent[id]; + if(parentId) return _needsProxyHelper(parentId, proxyName); + return false; + } + + var _needsProxyHelper = function(id, proxyName) { + var obj = $obj(id); + if(obj.interactionMap && obj.interactionMap[proxyName]) return true; + + var parentId = _widgetToFocusParent[id]; + if(parentId) return _needsProxyHelper(parentId, proxyName); + return false; + } + + //for button shapes and images the img is focusable instead of the div to get better outlines + // For layers, we remember who their proxy is. + $ax.event.getFocusableWidgetOrChildId = function (elementId) { + var mappedId = _layerToFocusableWidget[elementId]; + if (mappedId) elementId = mappedId; + + var inputId = $ax.repeater.applySuffixToElementId(elementId, '_input'); + var inputQuery = $jobj(inputId); + if(inputQuery.length > 0) return inputId; + + var imgId = $ax.repeater.applySuffixToElementId(elementId, '_img'); + var imgQuery = $jobj(imgId); + if (imgQuery.length > 0) return imgId; + + var divId = $ax.repeater.applySuffixToElementId(elementId, '_div'); + var divQuery = $jobj(divId); + if (divQuery.length > 0) return divId; + + return elementId; + }; + + // key is the suppressing event, and the value is the event that is supressed + var suppressingEvents = {}; + // key is the event that will cancel the suppression, and value is the event that was being suppressed + var cancelSuppressions = {}; + // suppressed event maps to true if it is supressed + var suppressedEventStatus = {}; + + // Attempt at a generic way to supress events + var initSuppressingEvents = function(query) { + suppressingEvents['OnLongClick'] = 'OnClick'; + cancelSuppressions['onMouseDown'] = 'OnClick'; + + // Have to cancel suppressed event here. Only works for non-synthetic events currently + for(var key in cancelSuppressions) { + var eventName = AXURE_TO_JQUERY_EVENT_NAMES[key]; + if(!eventName) continue; + (function(eventName, suppressed) { + query.bind(eventName, function() { + suppressedEventStatus[suppressed] = false; + }); + })(eventName, cancelSuppressions[key]); + } + + // Otherwise see if you have the chance to cancel a supression + // if(cancelSuppressions[eventDescription]) { + // suppressedEventStatus[cancelSuppressions[eventDescription]] = false; + // } + }; + + // TODO: It may be a good idea to split this into multiple functions, or at least pull out more similar functions into private methods + var _initializeObjectEvents = function(query, allowItem) { + // Must init the supressing eventing before the handlers, so that it has the ability to supress those events. + initSuppressingEvents(query); + + query.each(function(dObj, elementId) { + var $element = $jobj(elementId); + var itemId = $ax.repeater.getItemIdFromElementId(elementId); + + // Focus has to be done before on focus fires + // Set up focus + if ($ax.public.fn.IsTextArea(dObj.type) || $ax.public.fn.IsTextBox(dObj.type) || $ax.public.fn.IsCheckBox(dObj.type) || $ax.public.fn.IsRadioButton(dObj.type) || + $ax.public.fn.IsListBox(dObj.type) || $ax.public.fn.IsComboBox(dObj.type) || $ax.public.fn.IsButton(dObj.type) || $ax.public.fn.IsImageBox(dObj.type) || + $ax.public.fn.IsVector(dObj.type) || $ax.IsTreeNodeObject(dObj.type) || $ax.public.fn.IsTableCell(dObj.type)) { + var focusObj = $jobj($ax.event.getFocusableWidgetOrChildId(elementId)); + focusObj.focus(function() { + window.lastFocusedControl = elementId; + }); + } + + + // [MAS: Supressing events were here] + _createProxies(dObj, elementId); + if(dObj.interactionMap) { + _attachEvents(dObj, elementId); + }; + + + //attach button shape alternate styles + var needsMouseFilter = dObj.type != 'hyperlink' && !$ax.public.fn.IsLayer(dObj.type) && !$ax.public.fn.IsDynamicPanel(dObj.type) && dObj.type != 'richTextPanel' && + !$ax.public.fn.IsRepeater(dObj.type) && !$ax.public.fn.IsCheckBox(dObj.type) && !$ax.public.fn.IsRadioButton(dObj.type) && !$ax.public.fn.IsTreeNodeObject(dObj.type); + if(needsMouseFilter) { + $element.mouseenter(function() { + var elementId = this.id; + var parent = $ax.dynamicPanelManager.parentHandlesStyles(elementId); + if(parent && parent.direct) return; + if($.inArray(elementId, _event.mouseOverIds) != -1) return; + _event.mouseOverIds[_event.mouseOverIds.length] = elementId; + + if(elementId == _event.mouseOverObjectId) return; + _event.mouseOverObjectId = elementId; + $ax.style.SetWidgetHover(elementId, true); + var textId = $ax.style.GetTextIdFromShape(elementId); + if(textId) $ax.annotation.updateLinkLocations(textId); + }).mouseleave(function() { + var elementId = this.id; + var parent = $ax.dynamicPanelManager.parentHandlesStyles(elementId); + if(parent && parent.direct) return; + $ax.splice(_event.mouseOverIds, $.inArray(elementId, _event.mouseOverIds), 1); + + if(elementId == _event.mouseOverObjectId) { + _event.mouseOverObjectId = ''; + } + $ax.style.SetWidgetHover(elementId, false); + var textId = $ax.style.GetTextIdFromShape(elementId); + if(textId) $ax.annotation.updateLinkLocations(textId); + }); + + $element.bind($ax.features.eventNames.mouseDownName, function() { + var elementId = this.id; + var parent = $ax.dynamicPanelManager.parentHandlesStyles(elementId); + if(parent) { + dynamicPanelMouseDown(parent.id); + if(parent.direct) return; + } + _event.mouseDownObjectId = elementId; + + $ax.style.SetWidgetMouseDown(this.id, true); + $ax.annotation.updateLinkLocations($ax.style.GetTextIdFromShape(elementId)); + }).bind($ax.features.eventNames.mouseUpName, function() { + var elementId = this.id; + var parent = $ax.dynamicPanelManager.parentHandlesStyles(elementId); + if(parent) { + dynamicPanelMouseUp(parent.id); + if(parent.direct) return; + } + _event.mouseDownObjectId = ''; + if(!$ax.style.ObjHasMouseDown(elementId)) return; + + $ax.style.SetWidgetMouseDown(elementId, false); + $ax.annotation.updateLinkLocations($ax.style.GetTextIdFromShape(elementId)); + + //there used to be something we needed to make images click, because swapping out the images prevents the click + // this is a note that we can eventually delete. + }); + + } + + var $axElement = undefined; + var preeval = itemId && !allowItem; + + //initialize disabled elements, do this first before selected, cause if a widget is disabled, we don't want to apply selected style anymore + if (($ax.public.fn.IsVector(dObj.type) || $ax.public.fn.IsImageBox(dObj.type) || $ax.public.fn.IsDynamicPanel(dObj.type) || $ax.public.fn.IsLayer(dObj.type)) + && dObj.disabled && !preeval) { + if (!$axElement) $axElement = $ax('#' + elementId); + $axElement.enabled(false); + } + + // Initialize selected elements if not in repeater + if(($ax.public.fn.IsVector(dObj.type) || $ax.public.fn.IsImageBox(dObj.type) || $ax.public.fn.IsDynamicPanel(dObj.type) || $ax.public.fn.IsLayer(dObj.type)) + && dObj.selected && !preeval) { + if(!$axElement) $axElement = $ax('#' + elementId); + $axElement.selected(true); + } + + if(OS_MAC && WEBKIT) { + if ($ax.public.fn.IsComboBox(dObj.type) && dObj.disabled) { + $jobj($ax.INPUT(elementId)).css('color', 'grayText'); + } + }; + + // Initialize Placeholders. Right now this is text boxes and text areas. + // Also, the assuption is being made that these widgets with the placeholder, have no other styles (this may change...) + var hasPlaceholder = dObj.placeholderText == '' ? true : Boolean(dObj.placeholderText); + if (($ax.public.fn.IsTextArea(dObj.type) || $ax.public.fn.IsTextBox(dObj.type)) && hasPlaceholder) { + // This is needed to initialize the placeholder state + $jobj($ax.INPUT(elementId)).bind('keydown', function () { + if(!dObj.HideHintOnFocused) { + var id = this.id; + var inputIndex = id.indexOf('_input'); + if(inputIndex == -1) return; + var inputId = id.substring(0, inputIndex); + + if(!$ax.placeholderManager.isActive(inputId)) return; + $ax.placeholderManager.updatePlaceholder(inputId, false, true); + } + }).bind('keyup', function() { + var id = this.id; + var inputIndex = id.indexOf('_input'); + if(inputIndex == -1) return; + var inputId = id.substring(0, inputIndex); + + if($ax.placeholderManager.isActive(inputId)) return; + if(!dObj.HideHintOnFocused && !$jobj(id).val()) { + $ax.placeholderManager.updatePlaceholder(inputId, true); + $ax.placeholderManager.moveCaret(id, 0); + } + }).bind('focus', function () { + if(dObj.HideHintOnFocused) { + var id = this.id; + var inputIndex = id.indexOf('_input'); + if (inputIndex == -1) return; + var inputId = id.substring(0, inputIndex); + + if (!$ax.placeholderManager.isActive(inputId)) return; + $ax.placeholderManager.updatePlaceholder(inputId, false, true); + } + $ax.placeholderManager.moveCaret(this.id); + }).bind('mouseup', function() { + $ax.placeholderManager.moveCaret(this.id); + }).bind('blur', function() { + var id = this.id; + var inputIndex = id.indexOf('_input'); + if(inputIndex == -1) return; + var inputId = id.substring(0, inputIndex); + + if($jobj(id).val()) return; + $ax.placeholderManager.updatePlaceholder(inputId, true); + }); + + $ax.placeholderManager.registerPlaceholder(elementId, dObj.placeholderText, $jobj($ax.INPUT(elementId)).attr('type') == 'password'); + $ax.placeholderManager.updatePlaceholder(elementId, !($jobj($ax.repeater.applySuffixToElementId(elementId, '_input')).val())); + } + + // Initialize assigned submit buttons + if(dObj.submitButton) { + $element.keyup(function(e) { + if(e.keyCode == '13') { + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + var path = $ax.deepCopy(dObj.submitButton.path); + path[path.length] = dObj.submitButton.id; + var itemNum = $ax.repeater.getItemIdFromElementId(elementId); + var submitId = $ax.getScriptIdFromPath(path, scriptId); + + if(itemNum && $ax.getParentRepeaterFromScriptId(submitId) == $ax.getParentRepeaterFromScriptId(scriptId)) { + submitId = $ax.repeater.createElementId(submitId, itemNum); + } + var inputId = $ax.INPUT(submitId); + if($jobj(inputId).length) submitId = inputId; + + $ax.setjBrowserEvent(e); + $ax.event.fireClick(submitId); + } + }).keydown(function(e) { + if(e.keyCode == '13') { + e.preventDefault(); + } + }); + } + + // Don't drag after mousing down on a plain text object + if ($ax.public.fn.IsTextArea(dObj.type) || $ax.public.fn.IsTextBox(dObj.type) || $ax.public.fn.IsListBox(dObj.type) || + $ax.public.fn.IsComboBox(dObj.type) || $ax.public.fn.IsCheckBox(dObj.type) || $ax.public.fn.IsRadioButton(dObj.type)) { + $element.bind($ax.features.eventNames.mouseDownName, function(event) { + event.originalEvent.donotdrag = true; + }); + } + + if($ax.features.supports.mobile) { + $element.bind($ax.features.eventNames.mouseDownName, function() { _setCanClick(true); }); + + if ($ax.public.fn.IsDynamicPanel(dObj.type)) { + $element.scroll(function() { _setCanClick(false); }); + } + } + + //initialize tree node cursors to default so they will override their parent + if ($ax.public.fn.IsTreeNodeObject(dObj.type) && !(dObj.interactionMap && dObj.interactionMap.onClick)) { + $element.css('cursor', 'default'); + } + + //initialize widgets that are clickable to have the pointer over them when hovering + if($ax.event.HasClick(dObj)) { + if($element) $element.css('cursor', 'pointer'); + } + + // TODO: not sure if we need this. It appears to be working without + //initialize panels for DynamicPanels + if ($ax.public.fn.IsDynamicPanel(dObj.type)) { + $element.children().each(function() { + var parts = this.id.split('_'); + var state = parts[parts.length - 1].substring(5); + if(state != 0) $ax.visibility.SetVisible(this, false); + }); + } + + //initialize TreeNodes + if ($ax.public.fn.IsTreeNodeObject(dObj.type)) { + if($element.hasClass('treeroot')) return; + + var childrenId = elementId + '_children'; + var children = $element.children('[id="' + childrenId + '"]:first'); + if(children.length > 0) { + var plusMinusId = 'u' + (parseInt($ax.repeater.getScriptIdFromElementId(elementId).substring(1)) + 1); + if(itemId) plusMinusId = $ax.repeater.createElementId(plusMinusId, itemId); + if(!$jobj(plusMinusId).children().first().is('img')) plusMinusId = ''; + $ax.tree.InitializeTreeNode(elementId, plusMinusId, childrenId); + } + $element.click(function() { $ax.tree.SelectTreeNode(elementId, true); }); + } + + //initialize submenus + if ($ax.public.fn.IsMenuObject(dObj.type)) { + if($element.hasClass('sub_menu')) { + var tableCellElementId = $ax.getElementIdFromPath([dObj.parentCellId], { relativeTo: elementId }); + $ax.menu.InitializeSubmenu(elementId, tableCellElementId); + } + } + + // Attach handles for dynamic panels that propagate styles to inner items. + if (($ax.public.fn.IsDynamicPanel(dObj.type) || $ax.public.fn.IsLayer(dObj.type)) && dObj.propagate) { + $element.mouseenter(function() { + dynamicPanelMouseOver(this.id); + }).mouseleave(function() { + dynamicPanelMouseLeave(this.id); + }).bind($ax.features.eventNames.mouseDownName, function() { + dynamicPanelMouseDown(this.id); + }).bind($ax.features.eventNames.mouseUpName, function() { + dynamicPanelMouseUp(this.id); + }); + } + + // These are the dynamic panel functions for propagating rollover styles and mouse down styles to inner objects + var dynamicPanelMouseOver = function(elementId, fromChild) { + var parent = $ax.dynamicPanelManager.parentHandlesStyles(elementId); + if(parent) { + dynamicPanelMouseOver(parent.id, true); + if(parent.direct) return; + } + if($.inArray(elementId, _event.mouseOverIds) != -1) return; + // If this event is coming from a child, don't mark that it's actually entered. + // Only mark that this has been entered if this event has naturally been triggered. (For reason see mouseleave) + if(!fromChild) _event.mouseOverIds[_event.mouseOverIds.length] = elementId; + if(elementId == _event.mouseOverObjectId) return; + _event.mouseOverObjectId = elementId; + $ax.dynamicPanelManager.propagateMouseOver(elementId, true); + }; + var dynamicPanelMouseLeave = function(elementId, fromChild) { + var parent = $ax.dynamicPanelManager.parentHandlesStyles(elementId); + if(parent) { + dynamicPanelMouseLeave(parent.id, true); + if(parent.direct) return; + } + var index = $.inArray(elementId, _event.mouseOverIds); + // If index != -1, this has been natuarally entered. If naturally entered, then leaving child should not trigger leaving, + // but instead wait for natural mouse leave. If natural mouse enter never triggered, natural mouse leave won't so do this now. + if((index != -1) && fromChild) return; + $ax.splice(_event.mouseOverIds, index, 1); + + if(elementId == _event.mouseOverObjectId) { + _event.mouseOverObjectId = ''; + } + $ax.dynamicPanelManager.propagateMouseOver(elementId, false); + }; + var dynamicPanelMouseDown = function(elementId) { + var parent = $ax.dynamicPanelManager.parentHandlesStyles(elementId); + if(parent) { + dynamicPanelMouseDown(parent.id); + if(parent.direct) return; + } + _event.mouseDownObjectId = elementId; + $ax.dynamicPanelManager.propagateMouseDown(elementId, true); + }; + var dynamicPanelMouseUp = function(elementId) { + var parent = $ax.dynamicPanelManager.parentHandlesStyles(elementId); + if(parent) { + dynamicPanelMouseUp(parent.id); + if(parent.direct) return; + } + _event.mouseDownObjectId = ''; + $ax.dynamicPanelManager.propagateMouseDown(elementId, false); + }; + + //attach handlers for button shape and tree node mouse over styles + // TODO: Can this really be removed? Trees seem to work with out (the generic hover case works for it). + // query.filter(function(obj) { + // return $ax.public.fn.IsVector(obj.type) && $ax.public.fn.IsTreeNodeObject(obj.parent.type) && + // obj.parent.style && obj.parent.style.stateStyles && + // obj.parent.style.stateStyles.mouseOver; + // }).mouseenter(function() { + // $ax.style.SetWidgetHover(this.id, true); + // }).mouseleave(function() { + // $ax.style.SetWidgetHover(this.id, false); + // }); + + //handle treeNodeObject events and prevent them from bubbling up. this is necessary because otherwise + //both a sub menu and it's parent would get a click + if ($ax.public.fn.IsTreeNodeObject(dObj.type)) { + $element.click(function() { + //todo -- this was bubbling, but then selecting a child tree node would bubble and select the parent (don't know if there is a better way) + _fireObjectEvent(this.id, 'click', arguments); + return false; + }).each(function() { + if(!this.style.cursor) { + this.style.cursor = 'default'; + } + }); + } + + // Synthetic events + + var map = dObj.interactionMap; + // Attach dynamic panel synthetic drag and swipe events + if(dObj.type == "dynamicPanel" && map && ( + map.onDragStart || map.onDrag || + map.onDragDrop || map.onSwipeLeft || map.onSwipeRight || map.onSwipeUp || map.onSwipeDown)) { + + $element.bind($ax.features.eventNames.mouseDownName, function(e) { $ax.drag.StartDragWidget(e.originalEvent, elementId); }); + } + + // Attach dynamic panel synthetic scroll event + if ($ax.public.fn.IsDynamicPanel(dObj.type) && map && (map.onScroll || map.onScrollUp || map.onScrollDown)) { + var diagrams = dObj.diagrams; + for(var i = 0; i < diagrams.length; i++) { + var panelId = $ax.repeater.applySuffixToElementId(elementId, '_state' + i); + (function(id) { + if ($('#' + id).data('lastScrollTop') == undefined) $('#' + id).data('lastScrollTop', '0'); + _attachDefaultObjectEvent($('#' + id), elementId, 'scroll', function(e) { + $ax.setjBrowserEvent(e); + var currentEvent = $ax.getjBrowserEvent(); + var eventInfoFromEvent = $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), false, elementId); + if(map.onScroll) _handleEvent(elementId, eventInfoFromEvent, map.onScroll); + + var currentTop = $('#' + id).scrollTop(); + var wasHandled = currentEvent.originalEvent.handled; + if (map.onScrollUp && currentTop < $('#' + id).data('lastScrollTop')) { + currentEvent.originalEvent.handled = false; + _handleEvent(elementId, eventInfoFromEvent, map.onScrollUp); + } else if (map.onScrollDown && currentTop > $('#' + id).data('lastScrollTop')) { + currentEvent.originalEvent.handled = false; + _handleEvent(elementId, eventInfoFromEvent, map.onScrollDown); + } + currentEvent.originalEvent.handled |= wasHandled; + $('#' + id).data('lastScrollTop', currentTop); + }); + })(panelId); + } + } + + // Attach synthetic hover event + if (map && map.onMouseHover) { + var MIN_HOVER_HOLD_TIME = 1000; + + // So when the timeout fires, you know whether it is the same mouseenter that is active or not. + var hoverMouseCount = 0; + // Update eventInfo regularly, so position is accurate. + var hoverEventInfo; + + $element.mouseenter(function(e) { + $ax.setjBrowserEvent(e); + hoverEventInfo = $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), false, elementId); + (function(currCount) { + window.setTimeout(function() { + if(currCount == hoverMouseCount) _raiseSyntheticEvent(elementId, 'onMouseHover', false, hoverEventInfo, true); + }, MIN_HOVER_HOLD_TIME); + })(hoverMouseCount); + }).mouseleave(function(e) { + $ax.setjBrowserEvent(e); + hoverMouseCount++; + }).mousemove(function(e) { + $ax.setjBrowserEvent(e); + hoverEventInfo = $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), false, elementId); + }); + } + + // Attach synthetic tap and hold event. + if (map && map.onLongClick) { + var MIN_LONG_CLICK_HOLD_TIME = 750; + + // So when the timeout fires, you know whether it is the same mousedown that is active or not. + var longClickMouseCount = 0; + + $element.bind($ax.features.eventNames.mouseDownName, function(e) { + (function(currCount) { + $ax.setjBrowserEvent(e); + var eventInfo = $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), false, elementId); + window.setTimeout(function() { + if(currCount == longClickMouseCount) _raiseSyntheticEvent(elementId, 'onLongClick', false, eventInfo, true); + }, MIN_LONG_CLICK_HOLD_TIME); + if(e.preventDefault) e.preventDefault(); + })(longClickMouseCount); + }).bind($ax.features.eventNames.mouseUpName, function(e) { + $ax.setjBrowserEvent(e); + longClickMouseCount++; + }); + }; + + + // Attach synthetic onSelectionChange event to droplist and listbox elements + if ($ax.event.HasSelectionChanged(dObj)) { + $element.bind('change', function(e) { + $ax.setjBrowserEvent(e); + _raiseSyntheticEvent(elementId, 'onSelectionChange'); + }); + }; + + // Highjack key up and key down to keep track of state of keyboard. + _event.initKeyEvents($element); + + // Attach synthetic onTextChange event to textbox and textarea elements + if ($ax.event.HasTextChanged(dObj)) { + var element = $jobj($ax.INPUT(elementId)); + $ax.updateElementText(elementId, element.val()); + //Key down needed because when holding a key down, key up only fires once, but keydown fires repeatedly. + //Key up because last mouse down will only show the state before the last character. + element.bind('keydown', function(e) { + $ax.setjBrowserEvent(e); + $ax.event.TryFireTextChanged(elementId); + }).bind('keyup', function(e) { + $ax.setjBrowserEvent(e); + $ax.event.TryFireTextChanged(elementId); + }); + }; + + // Attach synthetic onCheckedChange event to radiobutton and checkbox elements + if ($ax.public.fn.IsCheckBox(dObj.type) || $ax.public.fn.IsRadioButton(dObj.type)) { + var input = $jobj($ax.INPUT(elementId)); + if ($ax.public.fn.IsRadioButton(dObj.type) && input.prop('checked')) { + $ax.updateRadioButtonSelected(input.attr('name'), elementId); + } + + $element.bind('change', function(e) { + $ax.setjBrowserEvent(e); + var eTarget = e.target || e.srcElement; + _tryFireCheckedChanged(elementId, eTarget.checked); + }); + }; + + var hasTap = map && (map.onClick || map.onDoubleClick); + var hasMove = map && map.onMouseMove; + _event.initMobileEvents(hasTap ? $element : $(), + hasMove ? $element : $(), elementId); + + + //attach link alternate styles + if(dObj.type == 'hyperlink') { + $element.mouseenter(function() { + var elementId = this.id; + if(_event.mouseOverIds.indexOf(elementId) != -1) return true; + _event.mouseOverIds[_event.mouseOverIds.length] = elementId; + var mouseOverObjectId = _event.mouseOverObjectId; + if(mouseOverObjectId && $ax.style.IsWidgetDisabled(mouseOverObjectId)) return true; + + $ax.style.SetLinkHover(elementId); + + var bubble = _fireObjectEvent(elementId, 'mouseenter', arguments); + + $ax.annotation.updateLinkLocations($ax.style.GetTextIdFromLink(elementId)); + return bubble; + }).mouseleave(function() { + var elementId = this.id; + $ax.splice(_event.mouseOverIds, _event.mouseOverIds.indexOf(elementId), 1); + var mouseOverObjectId = _event.mouseOverObjectId; + if(mouseOverObjectId && $ax.style.IsWidgetDisabled(mouseOverObjectId)) return true; + + $ax.style.SetLinkNotHover(elementId); + + var bubble = _fireObjectEvent(elementId, 'mouseleave', arguments); + + $ax.annotation.updateLinkLocations($ax.style.GetTextIdFromLink(elementId)); + return bubble; + }).bind($ax.features.eventNames.mouseDownName, function() { + var elementId = this.id; + var mouseOverObjectId = _event.mouseOverObjectId; + if($ax.style.IsWidgetDisabled(mouseOverObjectId)) return undefined; + + if(mouseOverObjectId) $ax.style.SetWidgetMouseDown(mouseOverObjectId, true); + $ax.style.SetLinkMouseDown(elementId); + + $ax.annotation.updateLinkLocations($ax.style.GetTextIdFromLink(elementId)); + + return false; + }).bind($ax.features.eventNames.mouseUpName, function() { + var elementId = this.id; + var mouseOverObjectId = _event.mouseOverObjectId; + if(mouseOverObjectId && $ax.style.IsWidgetDisabled(mouseOverObjectId)) return; + + if(mouseOverObjectId) $ax.style.SetWidgetMouseDown(mouseOverObjectId, false); + $ax.style.SetLinkNotMouseDown(elementId); + + $ax.annotation.updateLinkLocations($ax.style.GetTextIdFromLink(elementId)); + + }).click(function() { + var elementId = this.id; + var mouseOverObjectId = _event.mouseOverObjectId; + if(mouseOverObjectId && $ax.style.IsWidgetDisabled(mouseOverObjectId)) return undefined; + + return _fireObjectEvent(elementId, 'click', arguments); + }); + } + + // Init inline frames + if (dObj.type == 'inlineFrame') { + var target = dObj.target; + var url = ''; + if(target.includeVariables && target.url) { + var origSrc = target.url; + url = origSrc.toLowerCase().indexOf('http://') == -1 ? $ax.globalVariableProvider.getLinkUrl(origSrc) : origSrc; + + } else if(target.urlLiteral) { + url = $ax.expr.evaluateExpr(target.urlLiteral, $ax.getEventInfoFromEvent(undefined, true, elementId), true); + } + if(url) $jobj($ax.INPUT(elementId)).attr('src', url); + }; + }); + } + $ax.initializeObjectEvents = _initializeObjectEvents; + + // Handle key up and key down events + (function() { + var _keyState = {}; + _keyState.ctrl = false; + _keyState.alt = false; + _keyState.shift = false; + _keyState.keyCode = 0; + $ax.event.keyState = function() { + return $ax.deepCopy(_keyState); + }; + + var modifierCodes = [16, 17, 18]; + var clearKeyCode = false; + $ax.event.initKeyEvents = function($query) { + $query.keydown(function (e) { + if(clearKeyCode) { + clearKeyCode = false; + _keyState.keyCode = 0; + } + var elementId = this.id; + + _keyState.ctrl = e.ctrlKey; + + _keyState.alt = e.altKey; + + _keyState.shift = e.shiftKey; + + // If a modifier was pressed, then don't set the keyCode; + if(modifierCodes.indexOf(e.keyCode) == -1) _keyState.keyCode = e.keyCode; + + $ax.setjBrowserEvent(e); + if (!elementId) fireEventThroughContainers('onKeyDown', undefined, false, [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE, $ax.constants.DYNAMIC_PANEL_TYPE, $ax.constants.REPEATER], + [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE, $ax.constants.LAYER_TYPE]); + else _raiseSyntheticEvent(elementId, 'onKeyDown', false, undefined, true); + }); + $query.keyup(function(e) { + var elementId = this.id; + + if (modifierCodes.indexOf(e.keyCode) == -1) clearKeyCode = true; + else if (clearKeyCode) { + clearKeyCode = false; + _keyState.keyCode = 0; + } + + $ax.setjBrowserEvent(e); + // Fire event before updating modifiers. + if (!elementId) fireEventThroughContainers('onKeyUp', undefined, false, [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE, $ax.constants.DYNAMIC_PANEL_TYPE, $ax.constants.REPEATER], + [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE, $ax.constants.LAYER_TYPE]); + else _raiseSyntheticEvent(elementId, 'onKeyUp', false, undefined, true); + + //_keyState.ctrl = e.ctrlKey; + + //_keyState.alt = e.altKey; + + //_keyState.shift = e.shiftKey; + + //// If a non-modifier was lifted, clear the keycode + ///if(modifierCodes.indexOf(e.keyCode) == -1) _keyState.keyCode = 0; + }); + }; + })(); + + // Handle adding mobile events + (function() { + // NOTE: Multi touch is NOT handled currently. + var CLICK_THRESHOLD_PX = 25; + var CLICK_THRESHOLD_PX_SQ = CLICK_THRESHOLD_PX * CLICK_THRESHOLD_PX; + var DBLCLICK_THRESHOLD_MS = 500; + + // Location in page cooridinates + var tapDownLoc; + var lastClickEventTime; + + _event.initMobileEvents = function($tapQuery, $moveQuery, elementId) { + if(!$ax.features.supports.mobile) return; + + // Handle touch start + $tapQuery.bind('touchstart', function(e) { + // We do NOT support multiple touches. This isn't necessarily the touch we want. + var touch = e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]; + if(!touch) return; + + tapDownLoc = [touch.pageX, touch.pageY]; + + var time = (new Date()).getTime(); + if(time - lastClickEventTime < DBLCLICK_THRESHOLD_MS) { + var dObj = elementId === '' ? $ax.pageData.page : $ax.getObjectFromElementId(elementId); + var axEventObject = dObj && dObj.interactionMap && dObj.interactionMap['onDoubleClick']; + if(axEventObject) e.preventDefault(); //for Chrome on Android + } + }).bind('touchend', function(e) { + var touch = e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]; + if(!touch || !tapDownLoc) return; + + var tapUpLoc = [touch.pageX, touch.pageY]; + var xDiff = tapUpLoc[0] - tapDownLoc[0]; + var yDiff = tapUpLoc[1] - tapDownLoc[1]; + + if((xDiff * xDiff + yDiff * yDiff) < CLICK_THRESHOLD_PX_SQ) { + $ax.setjBrowserEvent(e); + _raiseSyntheticEvent(elementId, 'onClick', false, undefined, true); + + var time = (new Date()).getTime(); + if(time - lastClickEventTime < DBLCLICK_THRESHOLD_MS) { + _raiseSyntheticEvent(elementId, 'onDoubleClick', false, undefined, true); + if(e.originalEvent && e.originalEvent.handled) e.preventDefault(); //for iOS + } + lastClickEventTime = time; + } + }); + + // Handles touch move + $moveQuery.bind('touchmove', function(e) { + $ax.setjBrowserEvent(e); + _raiseSyntheticEvent(elementId, 'onMouseMove', false, undefined, true); + if(e.originalEvent && e.originalEvent.handled) e.preventDefault(); + }); + }; + })(); + + // Handle adding device independent click events to non-widgets + (function() { + var CLICK_THRESHOLD_PX = 25; + var CLICK_THRESHOLD_PX_SQ = CLICK_THRESHOLD_PX * CLICK_THRESHOLD_PX; + + // Location in page cooridinates + var tapDownLoc; + + _event.attachClick = function(query, clickHandler) { + if(!$ax.features.supports.mobile) { + query.click(clickHandler); + return; + } + + $(query).bind('touchstart', function(e) { + // We do NOT support multiple touches. This isn't necessarily the touch we want. + var touch = e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]; + if(!touch) return; + + tapDownLoc = [touch.pageX, touch.pageY]; + }); + + $(query).bind('touchend', function(e) { + var touch = e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]; + if(!touch) return; + + var tapUpLoc = [touch.pageX, touch.pageY]; + var xDiff = tapUpLoc[0] - tapDownLoc[0]; + var yDiff = tapUpLoc[1] - tapDownLoc[1]; + + if((xDiff * xDiff + yDiff * yDiff) < CLICK_THRESHOLD_PX_SQ) { + clickHandler(); + } + }); + }; + })(); + + // Handle firing device independent click events on widgets + (function() { + _event.fireClick = function(elementId) { + if(!$ax.features.supports.mobile) { + $('#' + elementId).click(); + return; + } + _raiseSyntheticEvent(elementId, 'onClick', false, undefined, true); + }; + })(); + + var _mouseLocation = $ax.mouseLocation = { x: 0, y: 0 }; + var _lastmouseLocation = $ax.lastMouseLocation = { x: 0, y: 0 }; + + var _updateMouseLocation = function(e, end) { + if(!e) return; + + if(IE_10_AND_BELOW && typeof (e.type) == 'unknown') return; + if(e.type != 'mousemove' && e.type != 'touchstart' && e.type != 'touchmove' && e.type != 'touchend') return; + + var newX; + var newY; + if(IE_10_AND_BELOW) { + newX = e.clientX + $('html').scrollLeft(); + newY = e.clientY + $('html').scrollTop(); + } else { + newX = e.pageX; + newY = e.pageY; + } + //var body = $('body'); + //if(body.css('position') == 'relative') newX = Math.round(newX - Number(body.css('left').replace('px', '')) - Math.max(0, ($(window).width() - body.width()) / 2)); + + if(_mouseLocation.x == newX && _mouseLocation.y == newY) return; + + _lastmouseLocation.x = _mouseLocation.x; + _lastmouseLocation.y = _mouseLocation.y; + _mouseLocation.x = newX; + _mouseLocation.y = newY; + + $ax.geometry.tick(_mouseLocation.x, _mouseLocation.y, end); + }; + _event.updateMouseLocation = _updateMouseLocation; + + var _leavingState = function(stateId) { + var mouseOverIds = _event.mouseOverIds; + if(mouseOverIds.length == 0) return; + + var stateQuery = $jobj(stateId); + for(var i = mouseOverIds.length - 1; i >= 0; i--) { + var id = mouseOverIds[i]; + if(stateQuery.find('#' + id).length) { + $ax.splice(mouseOverIds, $.inArray(id, mouseOverIds), 1); + $ax.style.SetWidgetMouseDown(id, false); + $ax.style.SetWidgetHover(id, false); + } + } + + }; + _event.leavingState = _leavingState; + + var _raiseSelectedEvents = function(elementId, value) { + $ax.event.raiseSyntheticEvent(elementId, 'onSelectedChange'); + if(value) $ax.event.raiseSyntheticEvent(elementId, 'onSelect'); + else $ax.event.raiseSyntheticEvent(elementId, 'onUnselect'); + }; + $ax.event.raiseSelectedEvents = _raiseSelectedEvents; + + var _raiseSyntheticEvent = function(elementId, eventName, skipShowDescription, eventInfo, nonSynthetic) { + // Empty string used when this is an event directly on the page. + var dObj = elementId === '' ? $ax.pageData.page : $ax.getObjectFromElementId(elementId); + var axEventObject = dObj && dObj.interactionMap && dObj.interactionMap[eventName]; + if(!axEventObject) return; + + eventInfo = eventInfo || $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), skipShowDescription, elementId); + // $ax.recording.maybeRecordEvent(elementId, eventInfo, axEventObject, new Date().getTime()); + _handleEvent(elementId, eventInfo, axEventObject, false, !nonSynthetic); + }; + $ax.event.raiseSyntheticEvent = _raiseSyntheticEvent; + + var _hasSyntheticEvent = function(scriptId, eventName) { + var dObj = $ax.getObjectFromScriptId(scriptId); + var axEventObject = dObj && dObj.interactionMap && dObj.interactionMap[eventName]; + return Boolean(axEventObject); + }; + $ax.event.hasSyntheticEvent = _hasSyntheticEvent; + + var _addEvent = function (target, eventType, handler, useCapture) { + //this return value is only for debug purpose + var succeed = undefined; + if(target.attachEvent) { + if($ax.features.supports.windowsMobile) { + succeed = target.attachEvent(eventType, handler); + } else { + succeed = target.attachEvent('on' + eventType, handler); + } + } else if(target.addEventListener) { + target.addEventListener(eventType, handler, useCapture); + succeed = true; + } + + return succeed; + } + $ax.event.addEvent = _addEvent; + + var _removeEvent = function(target, eventType, handler, useCapture, skipCheckingWindowsMobile) { + //this return value is only for debug purpose + var succeed = undefined; + + if(target.detachEvent) { + if(!skipCheckingWindowsMobile && $ax.features.supports.windowsMobile) { + succeed = target.detachEvent(eventType, handler); + } else { + succeed = target.detachEvent('on' + eventType, handler); + } + } else if(target.removeEventListener) { + target.removeEventListener(eventType, handler, useCapture); + succeed = true; + } + + return succeed; + } + $ax.event.removeEvent = _removeEvent; + + var _initialize = function() { + $ax.repeater.load(); + + // Make sure key events for page are initialized first. That way they will update the value of key pressed before any other events occur. + _event.initKeyEvents($(window)); + _initializeObjectEvents($ax('*')); + + //finally, process the pageload + _pageLoad(); + // _loadDynamicPanelsAndMasters(); + // $ax.repeater.init(); + + // and wipe out the basic links. + $('.basiclink').click(function() { + return false; + }); + }; + _event.initialize = _initialize; + + $ax.event.HasTextChanged = function(diagramObject) { + if (!$ax.public.fn.IsTextBox(diagramObject.type) && !$ax.public.fn.IsTextArea(diagramObject.type)) return false; + var map = diagramObject.interactionMap; + return map && map.onTextChange; + }; + + $ax.event.TryFireTextChanged = function(elementId) { + var query = $jobj($ax.repeater.applySuffixToElementId(elementId, '_input')); + if(!$ax.hasElementTextChanged(elementId, query.val())) return; + $ax.updateElementText(elementId, query.val()); + + $ax.event.raiseSyntheticEvent(elementId, 'onTextChange'); + }; + + $ax.event.HasSelectionChanged = function(diagramObject) { + if (!$ax.public.fn.IsListBox(diagramObject.type) && !$ax.public.fn.IsComboBox(diagramObject.type)) return false; + var map = diagramObject.interactionMap; + return map && map.onSelectionChange; + }; + + $ax.event.HasCheckedChanged = function(diagramObject) { + if (!$ax.public.fn.IsCheckBox(diagramObject.type) && !$ax.public.fn.IsRadioButton(diagramObject.type)) return false; + var map = diagramObject.interactionMap; + return map && map.onSelectedChange; + }; + + $ax.event.HasClick = function (diagramObject) { + var map = diagramObject.interactionMap; + return map && map.onClick; + }; + + var _tryFireCheckedChanged = $ax.event.TryFireCheckChanged = function(elementId, value) { + var isRadio = $ax.public.fn.IsRadioButton($obj(elementId).type); + if(isRadio) { + if(!value) { + $ax.updateRadioButtonSelected($jobj($ax.INPUT(elementId)).attr('name'), undefined); + } else { + var last = $ax.updateRadioButtonSelected($jobj($ax.INPUT(elementId)).attr('name'), elementId); + + // If no change, this should not fire + if(last == elementId) return; + + // Initially selecting one, last may be undefined + if(last) { + //here last is the previouse selected elementid + $ax.event.raiseSelectedEvents(last, false); + } + } + } + + $ax.event.raiseSelectedEvents(elementId, value); + }; + + //onload everything now, not only dp and master + var _loadDynamicPanelsAndMasters = function(objects, path, itemId) { + fireEventThroughContainers('onLoad', objects, true, [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE, $ax.constants.DYNAMIC_PANEL_TYPE], + [$ax.constants.ALL_TYPE], path, itemId); + }; + $ax.loadDynamicPanelsAndMasters = _loadDynamicPanelsAndMasters; + + var _viewChangePageAndMasters = function(forceSwitchTo) { + fireEventThroughContainers('onAdaptiveViewChange', undefined, true, [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE, $ax.constants.DYNAMIC_PANEL_TYPE], + [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE]); + _postAdaptiveViewChanged(forceSwitchTo); + }; + $ax.viewChangePageAndMasters = _viewChangePageAndMasters; + + //if forceSwitchTo is true, we will also update the checkmark in sitemap.js + var _postAdaptiveViewChanged = function(forceSwitchTo) { + //only trigger adaptive view changed if the window is on the mainframe. Also triggered on init, even if default. + try { + if(window.name == 'mainFrame' || + (!CHROME_5_LOCAL && window.parent.$ && window.parent.$('#mainFrame').length > 0)) { + var data = { + viewId: $ax.adaptive.currentViewId, + forceSwitchTo: forceSwitchTo + }; + $axure.messageCenter.postMessage('adaptiveViewChange', data); + } + } catch(e) { } + }; + $ax.postAdaptiveViewChanged = _postAdaptiveViewChanged; + + var _postResize = $ax.postResize = function(e) { + $ax.setjBrowserEvent(e); + return fireEventThroughContainers('onResize', undefined, false, [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE, $ax.constants.DYNAMIC_PANEL_TYPE, $ax.constants.REPEATER], + [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE]); + }; + + //fire events for table, menu and tree, including its sub items + var _fireEventsForTableMenuAndTree = function (object, event, skipShowDescription, eventInfo, path, synthetic) { + if (!path) path = []; + var pathCopy = path.slice(); + + pathCopy[path.length] = object.id; + var scriptId = $ax.getScriptIdFromPath(pathCopy); + $ax.event.raiseSyntheticEvent(scriptId, event, skipShowDescription, eventInfo, !synthetic); + + if(object.objects) { + for(var index = 0; index < object.objects.length; index++) { + var subObj = object.objects[index]; + if ($ax.public.fn.IsTableCell(subObj.type)) { + pathCopy[path.length] = subObj.id; + scriptId = $ax.getScriptIdFromPath(pathCopy); + $ax.event.raiseSyntheticEvent(scriptId, event, skipShowDescription, eventInfo, !synthetic); + } else if ($ax.public.fn.IsTable(object.type) || $ax.public.fn.IsMenuObject(object.type) || $ax.public.fn.IsTreeNodeObject(object.type)) { + _fireEventsForTableMenuAndTree(subObj, event, skipShowDescription, eventInfo, path, synthetic); + } + } + } + } + +// if ($('#' + id).data('lastScrollTop') == undefined) $('#' + id).data('lastScrollTop', '0'); +// _attachDefaultObjectEvent($('#' + id), elementId, 'scroll', function (e) { +// $ax.setjBrowserEvent(e); +// var currentEvent = $ax.getjBrowserEvent(); +// var eventInfoFromEvent = $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), false, elementId); +// if (map.onScroll) _handleEvent(elementId, eventInfoFromEvent, map.onScroll); +// +// var currentTop = $('#' + id).scrollTop(); +// var wasHandled = currentEvent.originalEvent.handled; +// if (map.onScrollUp && currentTop < $('#' + id).data('lastScrollTop')) { +// currentEvent.originalEvent.handled = false; +// _handleEvent(elementId, eventInfoFromEvent, map.onScrollUp); +// } else if (map.onScrollDown && currentTop > $('#' + id).data('lastScrollTop')) { +// currentEvent.originalEvent.handled = false; +// _handleEvent(elementId, eventInfoFromEvent, map.onScrollDown); +// } +// currentEvent.originalEvent.handled |= wasHandled; +// $('#' + id).data('lastScrollTop', currentTop); +// }); + + //remember the scroll bar position, so we can detect scroll up/down + var lastScrollTop; + // Filters include page, referenceDiagramObject, dynamicPanel, and repeater. + var fireEventThroughContainers = function(eventName, objects, synthetic, searchFilter, callFilter, path, itemId) { + // TODO: may want to pass in this as a parameter. At that point, may want to convert some of them to an option parameter. For now this is the only case + var skipShowDescription = eventName == 'onLoad'; + + // If objects undefined, load page + if(!objects) { + if(_callFilterCheck(callFilter, $ax.constants.PAGE_TYPE)) { + var map = $ax.pageData.page.interactionMap; + var currentEvent = $ax.getjBrowserEvent(); + var pageEventInfo = $ax.getEventInfoFromEvent(currentEvent, skipShowDescription, ''); + + pageEventInfo.label = $ax.pageData.page.name; + pageEventInfo.friendlyType = 'Page'; + + var pageEvent = map && map[eventName]; + var scrolling = currentEvent && currentEvent.type === "scroll"; + if (scrolling && !pageEvent && map) pageEvent = map.onScrollUp || map.onScrollDown; + + if (pageEvent) { + if (!scrolling || map.onScroll) _handleEvent('', pageEventInfo, pageEvent, skipShowDescription, synthetic); + + if (scrolling) { + var wasHandled = currentEvent.originalEvent.handled; + var currentScrollTop = $(window).scrollTop(); + if(map.onScrollUp && currentScrollTop < lastScrollTop) { + currentEvent.originalEvent.handled = false; + _handleEvent('', pageEventInfo, map.onScrollUp, skipShowDescription, synthetic); + } else if (map.onScrollDown && currentScrollTop > lastScrollTop) { + currentEvent.originalEvent.handled = false; + _handleEvent('', pageEventInfo, map.onScrollDown, skipShowDescription, synthetic); + } + currentEvent.originalEvent.handled |= wasHandled; + lastScrollTop = currentScrollTop; + } + } + } + if (searchFilter.indexOf($ax.constants.PAGE_TYPE) != -1) fireEventThroughContainers(eventName, $ax.pageData.page.diagram.objects, synthetic, searchFilter, callFilter); + return; + } + + if(!path) path = []; + + var pathCopy = []; + for(var j = 0; j < path.length; j++) pathCopy[j] = path[j]; + + for(var i = 0; i < objects.length; i++) { + var obj = objects[i]; + pathCopy[path.length] = obj.id; + if (!$ax.public.fn.IsReferenceDiagramObject(obj.type) && !$ax.public.fn.IsDynamicPanel(obj.type) && !$ax.public.fn.IsRepeater(obj.type) && !$ax.public.fn.IsLayer(obj.type)) { + if(_callFilterCheck(callFilter)) { //fire current event for all types + if ($ax.public.fn.IsTable(obj.type) || $ax.public.fn.IsMenuObject(obj.type) || $ax.public.fn.IsTreeNodeObject(obj.type)) { + _fireEventsForTableMenuAndTree(obj, eventName, skipShowDescription, undefined, path, !synthetic); + } else { + var scriptId = $ax.getScriptIdFromPath(pathCopy); + if(scriptId && itemId) scriptId = $ax.repeater.createElementId(scriptId, itemId); + $ax.event.raiseSyntheticEvent(scriptId, eventName, skipShowDescription, undefined, !synthetic); + } + } + continue; + } + + var objId = $ax.getScriptIdFromPath(pathCopy); + // If limboed, move on to next item + if(!objId) continue; + if(itemId) objId = $ax.repeater.createElementId(objId, itemId); + + if($ax.public.fn.IsReferenceDiagramObject(obj.type)) { + if(_callFilterCheck(callFilter, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE)) { + var axEvent = $ax.pageData.masters[obj.masterId].interactionMap[eventName]; + if(axEvent) { + var eventInfo = $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), skipShowDescription, objId); + eventInfo.isMasterEvent = true; + _handleEvent(objId, eventInfo, axEvent, skipShowDescription, synthetic); + } + } + if(searchFilter.indexOf($ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE) != -1) fireEventThroughContainers(eventName, $ax.pageData.masters[obj.masterId].diagram.objects, synthetic, searchFilter, callFilter, pathCopy, itemId); + } else if($ax.public.fn.IsDynamicPanel(obj.type)) { + if(_callFilterCheck(callFilter, $ax.constants.DYNAMIC_PANEL_TYPE)) $ax.event.raiseSyntheticEvent(objId, eventName, skipShowDescription, undefined, !synthetic); + + if(searchFilter.indexOf($ax.constants.DYNAMIC_PANEL_TYPE) != -1) { + var diagrams = obj.diagrams; + for(var j = 0; j < diagrams.length; j++) { + fireEventThroughContainers(eventName, diagrams[j].objects, synthetic, searchFilter, callFilter, path, itemId); + } + } + } else if($ax.public.fn.IsRepeater(obj.type)) { + // TODO: possible an option for repeater item? Now fires overall for the repeater + if(_callFilterCheck(callFilter, $ax.constants.REPEATER)) $ax.event.raiseSyntheticEvent(objId, eventName, skipShowDescription, undefined, !synthetic); + if(searchFilter.indexOf($ax.constants.REPEATER) != -1) { + var itemIds = $ax.getItemIdsForRepeater(objId); + for(var j = 0; j < itemIds.length; j++) { + fireEventThroughContainers(eventName, obj.objects, synthetic, searchFilter, callFilter, path, itemIds[j]); + } + } + } else if($ax.public.fn.IsLayer(obj.type)) { + if(_callFilterCheck(callFilter, $ax.constants.LAYER_TYPE)) $ax.event.raiseSyntheticEvent(objId, eventName, skipShowDescription, undefined, !synthetic); + } + } + + eventNesting -= 1; + + }; + + var _callFilterCheck = function(callFilter, type) { + for(var index = 0; index < callFilter.length; index++) { + var currentType = callFilter[index]; + if(currentType === $ax.constants.ALL_TYPE || currentType === type) return true; + } + return false; + }; + // FOCUS stuff + (function() { + + })(); + + + var _pageLoad = function() { + + // Map of axure event names to pair of what it should attach to, and what the jquery event name is. + var PAGE_AXURE_TO_JQUERY_EVENT_NAMES = { + 'onScroll': [window, 'scroll'], + 'onScrollUp': [window, 'scrollup'], + 'onScrollDown': [window, 'scrolldown'], + //'onResize': [window, 'resize'], + 'onContextMenu': [window, 'contextmenu'] + }; + + var $win = $(window); + if(!$ax.features.supports.mobile) { + PAGE_AXURE_TO_JQUERY_EVENT_NAMES.onClick = ['html', 'click']; + PAGE_AXURE_TO_JQUERY_EVENT_NAMES.onDoubleClick = ['html', 'dblclick']; + PAGE_AXURE_TO_JQUERY_EVENT_NAMES.onMouseMove = ['html', 'mousemove']; + } else { + _event.initMobileEvents($win, $win, ''); + + $win.bind($ax.features.eventNames.mouseDownName, _updateMouseLocation); + $win.bind($ax.features.eventNames.mouseUpName, function(e) { _updateMouseLocation(e, true); }); + + $win.scroll(function() { _setCanClick(false); }); + $win.bind($ax.features.eventNames.mouseDownName, (function() { + _setCanClick(true); + })); + } + $win.bind($ax.features.eventNames.mouseMoveName, _updateMouseLocation); + $win.scroll($ax.flyoutManager.reregisterAllFlyouts); + + for(key in PAGE_AXURE_TO_JQUERY_EVENT_NAMES) { + if(!PAGE_AXURE_TO_JQUERY_EVENT_NAMES.hasOwnProperty(key)) continue; + (function(axureName) { + var jqueryEventNamePair = PAGE_AXURE_TO_JQUERY_EVENT_NAMES[axureName]; + var actionName = jqueryEventNamePair[1]; + + if(actionName == "scrollup" || actionName == "scrolldown") return; + + $(jqueryEventNamePair[0])[actionName](function (e) { + $ax.setjBrowserEvent(e); + return fireEventThroughContainers(axureName, undefined, false, [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE, $ax.constants.DYNAMIC_PANEL_TYPE, $ax.constants.REPEATER], + [$ax.constants.PAGE_TYPE, $ax.constants.REFERENCE_DIAGRAM_OBJECT_TYPE]); + }); + })(key); + } + + eventNesting -= 1; + lastScrollTop = 0; + }; + _event.pageLoad = _pageLoad; + + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/expr.js b/codes/agent/game-docker/api/document/resources/scripts/axure/expr.js new file mode 100644 index 0000000..ea57b30 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/expr.js @@ -0,0 +1,554 @@ +// ******* Expr MANAGER ******** // +$axure.internal(function($ax) { + var _expr = $ax.expr = {}; + var _binOpHandlers = { + '&&': function(left, right) { return _binOpOverride(left, right, function(left) { return $ax.getBool(left) && $ax.getBool(right()); }); }, + '||': function(left, right) { return _binOpOverride(left, right, function(left) { return $ax.getBool(left) || $ax.getBool(right()); }); }, + '==': function(left, right) { return isEqual(left, right, true); }, + '!=': function(left, right) { return !isEqual(left, right, true); }, + '>': function(left, right) { return _binOpNum(left, right, function(left, right) { return left > right; }); }, + '<': function(left, right) { return _binOpNum(left, right, function(left, right) { return left < right; }); }, + '>=': function(left, right) { return _binOpNum(left, right, function(left, right) { return left >= right; }); }, + '<=': function(left, right) { return _binOpNum(left, right, function(left, right) { return left <= right; }); } + }; + + var checkOps = function(left, right) { + return left == undefined || right == undefined; + }; + + var isEqual = function (left, right, isFunction) { + if (isFunction) { + //if left and right is function, then get the value + //otherwise left and right should be already the value we want + left = left(); + right = right(); + } + + if(checkOps(left, right)) return false; + + if(left instanceof Date && right instanceof Date) { + if(left.getMilliseconds() != right.getMilliseconds()) return false; + if(left.getSeconds() != right.getSeconds()) return false; + if(left.getMinutes() != right.getMinutes()) return false; + if(left.getHours() != right.getHours()) return false; + if(left.getDate() != right.getDate()) return false; + if(left.getMonth() != right.getMonth()) return false; + if(left.getYear() != right.getYear()) return false; + return true; + } + + if(left instanceof Object && right instanceof Object) { + var prop; + // Go through all of lefts properties and compare them to rights. + for(prop in left) { + if(!left.hasOwnProperty(prop)) continue; + // If left has a property that the right doesn't they are not equal. + if(!right.hasOwnProperty(prop)) return false; + // If any of their properties are not equal, they are not equal. + if(!isEqual(left[prop], right[prop], false)) return false; + } + + for(prop in right) { + // final check to make sure right doesn't have some extra properties that make them not equal. + if(left.hasOwnProperty(prop) != right.hasOwnProperty(prop)) return false; + } + + return true; + } + return $ax.getBool(left) == $ax.getBool(right); + }; + + var _binOpOverride = function(left, right, func) { + left = left(); + if(left == undefined) return false; + var res = func(left, right); + return res == undefined ? false : res; + }; + + var _binOpNum = function(left, right, func) { + var left = left(); + var right = right(); + if(checkOps(left, right)) return false; + + return func(left, Number(right)); + }; + + var _exprHandlers = {}; + _exprHandlers.array = function(expr, eventInfo) { + var returnVal = []; + for(var i = 0; i < expr.items.length; i++) { + returnVal[returnVal.length] = _evaluateExpr(expr.items[i], eventInfo); + } + return returnVal; + }; + + _exprHandlers.binaryOp = function(expr, eventInfo) { + var left = function() { return expr.leftExpr && _evaluateExpr(expr.leftExpr, eventInfo); }; + var right = function() { return expr.rightExpr && _evaluateExpr(expr.rightExpr, eventInfo); }; + + if(left == undefined || right == undefined) return false; + return _binOpHandlers[expr.op](left, right); + }; + + _exprHandlers.block = function(expr, eventInfo) { + var subExprs = expr.subExprs; + for(var i = 0; i < subExprs.length; i++) { + _evaluateExpr(subExprs[i], eventInfo); //ignore the result + } + }; + + _exprHandlers.booleanLiteral = function(expr) { + return expr.value; + }; + + _exprHandlers.nullLiteral = function() { return null; }; + + _exprHandlers.pathLiteral = function(expr, eventInfo) { + if(expr.isThis) return [eventInfo.srcElement]; + if(expr.isFocused && window.lastFocusedControl) { + $ax('#' + window.lastFocusedControl).focus(); + return [window.lastFocusedControl]; + } + if(expr.isTarget) return [eventInfo.targetElement]; + + return $ax.getElementIdsFromPath(expr.value, eventInfo); + }; + + _exprHandlers.panelDiagramLiteral = function(expr, eventInfo) { + var elementIds = $ax.getElementIdsFromPath(expr.panelPath, eventInfo); + var elementIdsWithSuffix = []; + var suffix = '_state' + expr.panelIndex; + for(var i = 0; i < elementIds.length; i++) { + elementIdsWithSuffix[i] = $ax.repeater.applySuffixToElementId(elementIds[i], suffix); + } + return String($jobj(elementIdsWithSuffix).data('label')); + }; + + _exprHandlers.fcall = function(expr, eventInfo) { + var oldTarget = eventInfo.targetElement; + var targets = []; + var fcallArgs = []; + var exprArgs = expr.arguments; + for(var i = 0; i < expr.arguments.length; i++) { + var exprArg = exprArgs[i]; + var fcallArg = ''; + if(targets.length) { + for(var j = 0; j < targets.length; j++) { + if(exprArg == null) { + fcallArgs[j][i] = null; + continue; + } + eventInfo.targetElement = targets[j]; + fcallArg = _evaluateExpr(exprArg, eventInfo); + if(typeof (fcallArg) == 'undefined') return ''; + fcallArgs[j][i] = fcallArg; + } + } else { + if(exprArg == null) { + fcallArgs[i] = null; + continue; + } + fcallArg = _evaluateExpr(exprArg, eventInfo); + if(typeof (fcallArg) == 'undefined') return ''; + fcallArgs[i] = fcallArg; + } + + // We do support null exprArgs... + // TODO: This makes 2 assumptions that may change in the future. 1. The pathLiteral is the always the first arg. 2. there is always only 1 pathLiteral + if(exprArg && exprArg.exprType == 'pathLiteral') { + targets = fcallArg; + + // fcallArgs is now an array of an array of args + for(j = 0; j < targets.length; j++) fcallArgs[j] = [[fcallArg[j]]]; + } + } + + // we want to preserve the target element from outside this function. + eventInfo.targetElement = oldTarget; + + var retval = ''; + if(targets.length) { + // Go backwards so retval is the first item. + for(i = targets.length - 1; i >= 0; i--) { + var args = fcallArgs[i]; + // Add event info to the end + args[args.length] = eventInfo; + retval = _exprFunctions[expr.functionName].apply(this, args); + } + } else fcallArgs[fcallArgs.length] = eventInfo; + return targets.length ? retval : _exprFunctions[expr.functionName].apply(this, fcallArgs); + }; + + _exprHandlers.globalVariableLiteral = function(expr) { + return expr.variableName; + }; + + _exprHandlers.keyPressLiteral = function(expr) { + var keyInfo = {}; + keyInfo.keyCode = expr.keyCode; + keyInfo.ctrl = expr.ctrl; + keyInfo.alt = expr.alt; + keyInfo.shift = expr.shift; + + return keyInfo; + }; + + _exprHandlers.adaptiveViewLiteral = function(expr) { + return expr.id; + }; + + _exprHandlers.optionLiteral = function(expr) { + return expr.value; + } + + var _substituteSTOs = function(expr, eventInfo) { + //first evaluate the local variables + var scope = {}; + for(var varName in expr.localVariables) { + scope[varName] = $ax.expr.evaluateExpr(expr.localVariables[varName], eventInfo); + } + + // TODO: [ben] Date and data object (obj with info for url or image) both need to return non-strings. + var i = 0; + var retval; + var retvalString = expr.value.replace(/\[\[(?!\[)(.*?)\]\](?=\]*)/g, function(match) { + var sto = expr.stos[i++]; + if(sto.sto == 'error') return match; + try { + var result = $ax.evaluateSTO(sto, scope, eventInfo); + } catch(e) { + return match; + } + + if((result instanceof Object) && i == 1 && expr.value.substring(0, 2) == '[[' && + expr.value.substring(expr.value.length - 2) == ']]') { + // If the result was an object, this was the first result, and the whole thing was this expresion. + retval = result; + } + return ((result instanceof Object) && (result.label || result.text)) || result; + }); + // If more than one group returned, the object is not valid + if(i != 1) retval = false; + return retval || retvalString; + }; + + _exprHandlers.htmlLiteral = function (expr, eventInfo) { + eventInfo.htmlLiteral = true; + var html = _substituteSTOs(expr, eventInfo); + eventInfo.htmlLiteral = false + return html; + }; + + _exprHandlers.stringLiteral = function(expr, eventInfo) { + return _substituteSTOs(expr, eventInfo); + }; + + var _exprFunctions = {}; + + _exprFunctions.SetCheckState = function(elementIds, value) { + var toggle = value == 'toggle'; + var boolValue = Boolean(value) && value != 'false'; + + for(var i = 0; i < elementIds.length; i++) { + var query = $ax('#' + elementIds[i]); + query.selected(toggle ? !query.selected() : boolValue); + } + }; + + _exprFunctions.SetSelectedOption = function(elementIds, value) { + for(var i = 0; i < elementIds.length; i++) { + var elementId = elementIds[i]; + var obj = $jobj($ax.INPUT(elementId)); + + if(obj.val() == value) return; + obj.val(value); + + if($ax.event.HasSelectionChanged($ax.getObjectFromElementId(elementId))) $ax.event.raiseSyntheticEvent(elementId, 'onSelectionChange'); + } + }; + + _exprFunctions.SetGlobalVariableValue = function(varName, value) { + $ax.globalVariableProvider.setVariableValue(varName, value); + }; + + _exprFunctions.SetWidgetFormText = function(elementIds, value) { + for(var i = 0; i < elementIds.length; i++) { + var elementId = elementIds[i]; + var inputId = $ax.repeater.applySuffixToElementId(elementId, '_input'); + + var obj = $jobj(inputId); + if(obj.val() == value || (value == '' && $ax.placeholderManager.isActive(elementId))) return; + obj.val(value); + $ax.placeholderManager.updatePlaceholder(elementId, !value); + if($ax.event.HasTextChanged($ax.getObjectFromElementId(elementId))) $ax.event.TryFireTextChanged(elementId); + } + }; + + _exprFunctions.SetFocusedWidgetText = function(elementId, value) { + if(window.lastFocusedControl) { + var elementId = window.lastFocusedControl; + var type = $obj(elementId).type; + if ($ax.public.fn.IsTextBox(type) || $ax.public.fn.IsTextArea(type)) _exprFunctions.SetWidgetFormText([elementId], value); + else _exprFunctions.SetWidgetRichText([elementId], value, true); + } + }; + + _exprFunctions.GetRtfElementHeight = function(rtfElement) { + if(rtfElement.innerHTML == '') rtfElement.innerHTML = ' '; + return rtfElement.offsetHeight; + }; + + _exprFunctions.SetWidgetRichText = function(ids, value, plain) { + // Converts dates, widgetinfo, and the like to strings. + value = _exprFunctions.ToString(value); + + //Replace any newlines with line breaks + var finalValue = value.replace(/\r\n/g, '
    ').replace(/\n/g, '
    '); + + for(var i = 0; i < ids.length; i++) { + var id = ids[i]; + + // If calling this on button shape, get the id of the rich text panel inside instead + var type = $obj(id).type; + if(type != 'richTextPanel' && type != 'hyperlink') { + id = $jobj(id).find('.text')[0].id; + } + + var element = window.document.getElementById(id); + $ax.visibility.SetVisible(element, value != ''); + + $ax.style.transformTextWithVerticalAlignment(id, function() { + var spans = $jobj(id).find('span'); + if(plain) { + // Wrap in span and p, style them accordingly. + var span = $(''); + if(spans.length > 0) { + span.attr('style', $(spans[0]).attr('style')); + span.attr('id', $(spans[0]).attr('id')); + } + + // Can't set value as text because '
    ' doesn't actually do a line break + // Can't set vaule as html because it doesn't like '<' and ignores all after it + // Create tags yourself + var lines = value.split(/\r\n|\n/); + if(lines.length == 1) span.text(value); + else { + for(var i = 0; i < lines.length; i++) { + if (i != 0) span.append($('
    ')); + var line = lines[i]; + if(line.length == 0) continue; + + var subSpan = $(''); + subSpan.text(line); + span.append(subSpan); + } + } + + var p = $('

    '); + var ps = $jobj(id).find('p'); + if(ps.length > 0) { + p.attr('style', $(ps[0]).attr('style')); + p.attr('id', $(ps[0]).attr('id')); + } + p.append(span); + finalValue = $('
    ').append(p).html(); + } + + element.innerHTML = finalValue; + }); + + if(!plain) $ax.style.CacheOriginalText(id, true); + } + }; + + _exprFunctions.GetCheckState = function(ids) { + return $ax('#' + ids[0]).selected(); + }; + + _exprFunctions.GetSelectedOption = function (ids) { + var inputs = $jobj($ax.INPUT(ids[0])); + return inputs.length ? inputs[0].value : ''; + }; + + _exprFunctions.GetNum = function(str) { + //Setting a GlobalVariable to some blank text then setting a widget to the value of that variable would result in 0 not "" + //I have fixed this another way so commenting this should be fine now + //if (!str) return ""; + return isNaN(str) ? str : Number(str); + }; + + _exprFunctions.GetGlobalVariableValue = function(id) { + return $ax.globalVariableProvider.getVariableValue(id); + }; + + _exprFunctions.GetGlobalVariableLength = function(id) { + return _exprFunctions.GetGlobalVariableValue(id).length; + }; + + _exprFunctions.GetWidgetText = function(ids) { + if($ax.placeholderManager.isActive(ids[0])) return ''; + var input = $ax.INPUT(ids[0]); + return $ax('#' + ($jobj(input).length ? input : ids[0])).text(); + }; + + _exprFunctions.GetFocusedWidgetText = function() { + if(window.lastFocusedControl) { + return $ax('#' + window.lastFocusedControl).text(); + } else { + return ""; + } + }; + + _exprFunctions.GetWidgetValueLength = function(ids) { + var id = ids[0]; + if(!id) return undefined; + if($ax.placeholderManager.isActive(id)) return 0; + var obj = $jobj($ax.INPUT(id)); + if(!obj.length) obj = $jobj(id); + var val = obj[0].value || _exprFunctions.GetWidgetText([id]); + return val.length; + }; + + _exprFunctions.GetPanelState = function(ids) { + var id = ids[0]; + if(!id) return undefined; + var stateId = $ax.visibility.GetPanelState(id); + return stateId && String($jobj(stateId).data('label')); + }; + + _exprFunctions.GetWidgetVisibility = function(ids) { + var id = ids[0]; + if(!id) return undefined; + return $ax.visibility.IsIdVisible(id); + }; + + // ***************** Validation Functions ***************** // + + _exprFunctions.IsValueAlpha = function(val) { + var isAlphaRegex = new RegExp("^[a-z\\s]+$", "gi"); + return isAlphaRegex.test(val); + }; + + _exprFunctions.IsValueNumeric = function(val) { + var isNumericRegex = new RegExp("^[0-9,\\.\\s]+$", "gi"); + return isNumericRegex.test(val); + }; + + _exprFunctions.IsValueAlphaNumeric = function(val) { + var isAlphaNumericRegex = new RegExp("^[0-9a-z\\s]+$", "gi"); + return isAlphaNumericRegex.test(val); + }; + + _exprFunctions.IsValueOneOf = function(val, values) { + for(var i = 0; i < values.length; i++) { + var option = values[i]; + if(val == option) return true; + } + //by default, return false + return false; + }; + + _exprFunctions.IsValueNotAlpha = function(val) { + return !_exprFunctions.IsValueAlpha(val); + }; + + _exprFunctions.IsValueNotNumeric = function(val) { + return !_exprFunctions.IsValueNumeric(val); + }; + + _exprFunctions.IsValueNotAlphaNumeric = function(val) { + return !_exprFunctions.IsValueAlphaNumeric(val); + }; + + _exprFunctions.IsValueNotOneOf = function(val, values) { + return !_exprFunctions.IsValueOneOf(val, values); + }; + + _exprFunctions.GetKeyPressed = function(eventInfo) { + return eventInfo.keyInfo; + }; + + _exprFunctions.GetCursorRectangles = function() { + var rects = new Object(); + rects.lastRect = new $ax.drag.Rectangle($ax.lastMouseLocation.x, $ax.lastMouseLocation.y, 1, 1); + rects.currentRect = new $ax.drag.Rectangle($ax.mouseLocation.x, $ax.mouseLocation.y, 1, 1); + return rects; + }; + + _exprFunctions.GetWidgetRectangles = function (elementIds, eventInfo) { + var elementId = elementIds[0]; + var rects = new Object(); + var jObj = $jobj(elementId); + var axObj = $ax('#' + elementId); + var invalid = jObj.length == 0; + var parent = jObj; + // Or are in valid if no obj can be found, or if it is not visible. + while(parent.length != 0 && !parent.is('body')) { + if(parent.css('display') == 'none') { + invalid = true; + break; + } + parent = parent.parent(); + } + if(invalid) { + rects.lastRect = rects.currentRect = new $ax.drag.Rectangle(-1, -1, -1, -1); + return rects; + } + + rects.lastRect = new $ax.drag.Rectangle( + axObj.left(), + axObj.top(), + axObj.width(), + axObj.height()); + + rects.currentRect = rects.lastRect; + return rects; + }; + + _exprFunctions.GetWidget = function(elementId) { + return $ax.getWidgetInfo(elementId[0]); + }; + + _exprFunctions.GetAdaptiveView = function() { + return $ax.adaptive.currentViewId || ''; + }; + + _exprFunctions.IsEntering = function(movingRects, targetRects) { + return !movingRects.lastRect.IntersectsWith(targetRects.currentRect) && movingRects.currentRect.IntersectsWith(targetRects.currentRect); + }; + + _exprFunctions.IsLeaving = function(movingRects, targetRects) { + return movingRects.lastRect.IntersectsWith(targetRects.currentRect) && !movingRects.currentRect.IntersectsWith(targetRects.currentRect); + }; + + var _IsOver = _exprFunctions.IsOver = function(movingRects, targetRects) { + return movingRects.currentRect.IntersectsWith(targetRects.currentRect); + }; + + _exprFunctions.IsNotOver = function(movingRects, targetRects) { + return !_IsOver(movingRects, targetRects); + }; + + _exprFunctions.ValueContains = function(inputString, value) { + return inputString.indexOf(value) > -1; + }; + + _exprFunctions.ValueNotContains = function(inputString, value) { + return !_exprFunctions.ValueContains(inputString, value); + }; + + _exprFunctions.ToString = function(value) { + if(value.isWidget) { + return value.text; + } + return String(value); + }; + + var _evaluateExpr = $ax.expr.evaluateExpr = function(expr, eventInfo, toString) { + if(expr === undefined || expr === null) return undefined; + var result = _exprHandlers[expr.exprType](expr, eventInfo); + return toString ? _exprFunctions.ToString(result) : result; + }; + + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/flyout.js b/codes/agent/game-docker/api/document/resources/scripts/axure/flyout.js new file mode 100644 index 0000000..56f967e --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/flyout.js @@ -0,0 +1,273 @@ +// ******* Flyout MANAGER ******** // +$axure.internal(function($ax) { + var _flyoutManager = $ax.flyoutManager = {}; + + var getFlyoutLabel = function(panelId) { + return panelId + '_flyout'; + }; + + var _unregisterPanel = function(panelId, keepShown) { + $ax.geometry.unregister(getFlyoutLabel(panelId)); + if(panelToSrc[panelId]) { + $ax.style.RemoveRolloverOverride(panelToSrc[panelId]); + delete panelToSrc[panelId]; + } + if(!keepShown) { + $ax.action.addAnimation(panelId, $ax.action.queueTypes.fade, function() { + $ax('#' + panelId).hide(); + }); + } + }; + _flyoutManager.unregisterPanel = _unregisterPanel; + + var genPoint = $ax.geometry.genPoint; + + var _updateFlyout = function(panelId) { + var label = getFlyoutLabel(panelId); + if(!$ax.geometry.polygonRegistered(label)) return; + var info = $ax.geometry.getPolygonInfo(label); + var rects = info && info.rects; + + var targetWidget = $ax.getWidgetInfo(panelId); + rects.target = $ax.geometry.genRect(targetWidget); + + // Src will stay the same, just updating + $ax.flyoutManager.registerFlyout(rects, panelId, panelToSrc[panelId]); + + if(!$ax.geometry.checkInsideRegion(label)) _unregisterPanel(panelId); + }; + _flyoutManager.updateFlyout = _updateFlyout; + + var panelToSrc = {}; + var _registerFlyout = function(rects, panelId, srcId) { + var label = _getFlyoutLabel(panelId); + var callback = function(info) { + // If leaving object or already outside it, then unregister, otherwise just return + if(!info.exiting && !info.outside) return; + _unregisterPanel(panelId); + }; + var points = []; + + var lastSrcId = panelToSrc[panelId]; + if(lastSrcId != srcId) { + if(lastSrcId) $ax.style.RemoveRolloverOverride(lastSrcId); + if(srcId) { + $ax.style.AddRolloverOverride(srcId); + panelToSrc[panelId] = srcId; + } else delete panelToSrc[panelId]; + } + + // rects should be one or two rectangles + if(!rects.src) { + var rect = rects.target; + points.push(genPoint(rect.Left(), rect.Top())); + points.push(genPoint(rect.Right(), rect.Top())); + points.push(genPoint(rect.Right(), rect.Bottom())); + points.push(genPoint(rect.Left(), rect.Bottom())); + } else { + var r0 = rects.src; + var r1 = rects.target; + + // Right left of right, left right of left, top below top, bottom above bottom + var rlr = r0.Right() <= r1.Right(); + var lrl = r0.Left() >= r1.Left(); + var tbt = r0.Top() >= r1.Top(); + var bab = r0.Bottom() <= r1.Bottom(); + + var info = { rlr: rlr, lrl: lrl, tbt: tbt, bab: bab }; + + if((rlr && lrl) || (tbt && bab)) { + points = getSmallPolygon(r0, r1, info); + } else { + points = getLargePolygon(r0, r1, info); + } + } + + $ax.geometry.registerPolygon(label, points, callback, { rects: rects }); + }; + _flyoutManager.registerFlyout = _registerFlyout; + + var _getFlyoutLabel = function(panelId) { + return panelId + '_flyout'; + }; + + var _reregisterAllFlyouts = function() { + for(var panelId in panelToSrc) _reregisterFlyout(panelId); + }; + _flyoutManager.reregisterAllFlyouts = _reregisterAllFlyouts; + + var _reregisterFlyout = function(panelId) { + var rects = $ax.geometry.getPolygonInfo(getFlyoutLabel(panelId)).rects; + _registerFlyout(rects, panelId, panelToSrc[panelId]); + }; + + // This is the reduced size polygon connecting r0 to r1 by means of horizontal or vertical lines. + var getSmallPolygon = function(r0, r1, info) { + var points = []; + + // NOTE: currently I make the assumption that if horizontal/vertical connecting lines from the src hit the target + // Meaning if horizontal, rlr and lrl are true, and if vertical, tbt and bab are true. + + var r0Left = r0.Left(); + var r0Right = r0.Right(); + var r0Top = r0.Top(); + var r0Bottom = r0.Bottom(); + var r1Left = r1.Left(); + var r1Right = r1.Right(); + var r1Top = r1.Top(); + var r1Bottom = r1.Bottom(); + + points.push(genPoint(r1Left, r1Top)); + + if(!info.tbt) { + points.push(genPoint(r0Left, r1Top)); + points.push(genPoint(r0Left, r0Top)); + points.push(genPoint(r0Right, r0Top)); + points.push(genPoint(r0Right, r1Top)); + } + + points.push(genPoint(r1Right, r1Top)); + + if(!info.rlr) { + points.push(genPoint(r1Right, r0Top)); + points.push(genPoint(r0Right, r0Top)); + points.push(genPoint(r0Right, r0Bottom)); + points.push(genPoint(r1Right, r0Bottom)); + } + + points.push(genPoint(r1Right, r1Bottom)); + + if(!info.bab) { + points.push(genPoint(r0Right, r1Bottom)); + points.push(genPoint(r0Right, r0Bottom)); + points.push(genPoint(r0Left, r0Bottom)); + points.push(genPoint(r0Left, r1Bottom)); + } + + points.push(genPoint(r1Left, r1Bottom)); + + if(!info.lrl) { + points.push(genPoint(r1Left, r0Bottom)); + points.push(genPoint(r0Left, r0Bottom)); + points.push(genPoint(r0Left, r0Top)); + points.push(genPoint(r1Left, r0Top)); + } + + return points; + }; + + // This is the original algorithm that connects the most extream corners to make polygon + var getLargePolygon = function(r0, r1, info) { + var points = []; + + var r0Left = r0.Left(); + var r0Right = r0.Right(); + var r0Top = r0.Top(); + var r0Bottom = r0.Bottom(); + var r1Left = r1.Left(); + var r1Right = r1.Right(); + var r1Top = r1.Top(); + var r1Bottom = r1.Bottom(); + + // Top lefts + if(info.tbt) { + if(!info.lrl) points.push(genPoint(r0Left, r0Top)); + points.push(genPoint(r1Left, r1Top)); + } else { + if(info.lrl) points.push(genPoint(r1Left, r1Top)); + points.push(genPoint(r0Left, r0Top)); + } + + // Top rights + if(info.tbt) { + points.push(genPoint(r1Right, r1Top)); + if(!info.rlr) points.push(genPoint(r0Right, r0Top)); + } else { + points.push(genPoint(r0Right, r0Top)); + if(info.rlr) points.push(genPoint(r1Right, r1Top)); + } + + // Bottom rights + if(info.bab) { + if(!info.rlr) points.push(genPoint(r0Right, r0Bottom)); + points.push(genPoint(r1Right, r1Bottom)); + } else { + if(info.rlr) points.push(genPoint(r1Right, r1Bottom)); + points.push(genPoint(r0Right, r0Bottom)); + } + + // Bottom Lefts + if(info.bab) { + points.push(genPoint(r1Left, r1Bottom)); + if(!info.lrl) points.push(genPoint(r0Left, r0Bottom)); + } else { + points.push(genPoint(r0Left, r0Bottom)); + if(info.lrl) points.push(genPoint(r1Left, r1Bottom)); + } + return points; + }; +}); + +// ******* Placeholder Manager ********* // + +$axure.internal(function($ax) { + var _placeholderManager = $ax.placeholderManager = {}; + var idToPlaceholderInfo = {}; + + var _registerPlaceholder = function(elementId, text, password) { + idToPlaceholderInfo[elementId] = { text: text, password: password, active: false }; + }; + _placeholderManager.registerPlaceholder = _registerPlaceholder; + + _placeholderManager.refreshPlaceholder = function (elementId) { + var info = idToPlaceholderInfo[elementId]; + if (!info || !info.active) return; + $ax.style.SetWidgetPlaceholder(elementId, true, info.text, info.password); + } + + var _updatePlaceholder = function(elementId, active, clearText) { + var inputId = $ax.repeater.applySuffixToElementId(elementId, '_input'); + + var info = idToPlaceholderInfo[elementId]; + if(!info || info.active == active) return; + info.active = active; + var value = active ? info.text : clearText ? '' : $jobj(inputId).val(); + $ax.style.SetWidgetPlaceholder(elementId, active, value, info.password); + }; + _placeholderManager.updatePlaceholder = _updatePlaceholder; + + var _isActive = function(elementId) { + var info = idToPlaceholderInfo[elementId]; + return Boolean(info && info.active); + }; + _placeholderManager.isActive = _isActive; + + var _selectRange = function(elementId, start, end) { + $jobj(elementId).each(function() { + if(this.setSelectionRange) { + var validTypes = ["text", "search", "url", "tel", "password"]; + if(this.tagName.toLowerCase() != "input" || validTypes.indexOf(this.type) > -1) { + this.focus(); + this.setSelectionRange(start, end); + } + } else if(this.createTextRange) { + var range = this.createTextRange(); + range.collapse(true); + range.moveEnd('character', end); + range.moveStart('character', start); + range.select(); + } + }); + }; + _placeholderManager.selectRange = _selectRange; + + var _moveCaret = function(id, index) { + var inputIndex = id.indexOf('_input'); + if(inputIndex == -1) return; + var inputId = id.substring(0, inputIndex); + + if(!_isActive(inputId)) return; + _selectRange(id, index, index); + }; + _placeholderManager.moveCaret = _moveCaret; +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/geometry.js b/codes/agent/game-docker/api/document/resources/scripts/axure/geometry.js new file mode 100644 index 0000000..a9809a7 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/geometry.js @@ -0,0 +1,301 @@ +// ******* Region MANAGER ******** // +$axure.internal(function($ax) { + var _geometry = $ax.geometry = {}; + var regionMap = {}; + var regionList = []; + + var _unregister = function(label) { + var regionIndex = regionList.indexOf(label); + if(regionIndex != -1) { + var end = $ax.splice(regionList, regionIndex + 1); + $ax.splice(regionList, regionIndex, regionList.length - regionIndex); + regionList = regionList.concat(end); + } + delete regionMap[label]; + }; + _geometry.unregister = _unregister; + + var clear = function() { + regionMap = {}; + regionList = []; + }; + + var _polygonRegistered = function(label) { + return Boolean(regionMap[label]); + }; + _geometry.polygonRegistered = _polygonRegistered; + + // Must be counterclockwise, or enter/exit will be wrong + var _registerPolygon = function(label, points, callback, info) { + var regionIndex = regionList.indexOf(label); + if(regionIndex == -1) regionList.push(label); + regionMap[label] = { points: points, callback: callback, info: info }; + }; + _geometry.registerPolygon = _registerPolygon; + + var _getPolygonInfo = function(label) { + if(!_polygonRegistered(label)) return undefined; + return regionMap[label].info; + }; + _geometry.getPolygonInfo = _getPolygonInfo; + + + + var _genRect = function(info, roundHalfPixel) { + var x = info.pagex; + var y = info.pagey; + var w = info.width; + var h = info.height; + + if(roundHalfPixel) { + if(x % 1 != 0) { + x = Math.floor(x); + w++; + } + if(y % 1 != 0) { + y = Math.floor(y); + h++; + } + } + + var r = x + w; + var b = y + h; + + var rect = { + X: function() { return x; }, + Y: function() { return y; }, + Wigth: function() { return w; }, + Height: function() { return h; }, + Left: function() { return x; }, + Right: function() { return r; }, + Top: function() { return y; }, + Bottom: function() { return b; } + }; + return rect; + }; + _geometry.genRect = _genRect; + + var _genPoint = function(x, y) { + return { x: x, y: y }; + }; + _geometry.genPoint = _genPoint; + + var oldPoint = _genPoint(0, 0); + _geometry.tick = function(x, y, end) { + var lastPoint = oldPoint; + var nextPoint = oldPoint = _genPoint(x, y); + var line = { p1: lastPoint, p2: nextPoint }; + if(!regionList.length) return; + + for(var i = 0; i < regionList.length; i++) { + var region = regionMap[regionList[i]]; + var points = region.points; + if(!region.checked) { + if(!_checkInside(points, $ax.mouseLocation)) { + region.callback({ outside: true }); + continue; + } + region.checked = true; + } + for(var j = 0; j < points.length; j++) { + var startSegment = points[j]; + var endSegment = points[(j + 1) % points.length]; + var intersectInfo = linesIntersect(line, { p1: startSegment, p2: endSegment }); + if(intersectInfo) { + region.callback(intersectInfo); + break; + } + } + } + + if(end) clear(); + }; + + // Info if the one line touches the other (even barely), false otherwise + // Info includes point, if l1 is entering or exiting l2, and any ties that happened, or parallel info + var linesIntersect = function(l1, l2) { + var retval = {}; + var ties = {}; + + var l1p1 = l1.p1.x < l1.p2.x || (l1.p1.x == l1.p2.x && l1.p1.y < l1.p2.y) ? l1.p1 : l1.p2; + var l1p2 = l1.p1.x < l1.p2.x || (l1.p1.x == l1.p2.x && l1.p1.y < l1.p2.y) ? l1.p2 : l1.p1; + var m1 = (l1p2.y - l1p1.y) / (l1p2.x - l1p1.x); + + var l2p1 = l2.p1.x < l2.p2.x || (l2.p1.x == l2.p2.x && l2.p1.y < l2.p2.y) ? l2.p1 : l2.p2; + var l2p2 = l2.p1.x < l2.p2.x || (l2.p1.x == l2.p2.x && l2.p1.y < l2.p2.y) ? l2.p2 : l2.p1; + var m2 = (l2p2.y - l2p1.y) / (l2p2.x - l2p1.x); + + var l1Vert = l1.p1.x == l1.p2.x; + var l2Vert = l2.p1.x == l2.p2.x; + if(l1Vert || l2Vert) { + if(l1Vert && l2Vert) { + // If the lines don't follow the same path, return + if(l1p1.x != l2p1.x) return false; + // if they never meet, return + if(l1p2.y < l2p1.y || l1p1.y > l2p2.y) return false; + var firstVert = l1p1.y >= l2p1.y ? l1p1 : l2p1; + var secondVert = l1p2.y <= l2p2.y ? l1p2 : l2p2; + // First is from the perspective of l1 + retval.parallel = { + first: l1p1 == l1.p1 ? firstVert : secondVert, + second: l1p2 == l1.p2 ? secondVert : firstVert, + sameDirection: (l1p1 == l1.p1) == (l2p1 == l2.p1) + }; + + return retval; + } + + var x1 = l2Vert ? l1p1.x : l2p1.x; + var x2 = l2Vert ? l1p2.x : l2p2.x; + var xVert = l2Vert ? l2p1.x : l1p1.x; + + var y = l2Vert ? l1p1.y + (xVert - x1) * m1 : l2p1.y + (xVert - x1) * m2; + var y1 = l2Vert ? l2p1.y : l1p1.y; + var y2 = l2Vert ? l2p2.y : l1p2.y; + if(xVert >= x1 && xVert <= x2 && y >= y1 && y <= y2) { + retval.point = { x: xVert, y: y }; + retval.exiting = l2Vert == (y1 == (l2Vert ? l2.p1.y : l1.p1.y)) == (x1 == (l2Vert ? l1.p1.x : l2.p1.x)); + retval.entering = !retval.exiting; + + // Calculate ties + if(x1 == xVert) { + ties[l2Vert ? 'l1' : 'l2'] = (x1 == (l2Vert ? l1.p1.x : l2.p1.x)) ? 'start' : 'end'; + retval.ties = ties; + } else if(x2 == xVert) { + ties[l2Vert ? 'l1' : 'l2'] = (x2 == (l2Vert ? l1.p2.x : l2.p2.x)) ? 'end' : 'start'; + retval.ties = ties; + } + if(y1 == y) { + ties[l2Vert ? 'l2' : 'l1'] = (y1 == (l2Vert ? l2.p1.y : l1.p1.y)) ? 'start' : 'end'; + retval.ties = ties; + } else if(y2 == y) { + ties[l2Vert ? 'l2' : 'l1'] = (y2 == (l2Vert ? l2.p2.y : l1.p2.y)) ? 'end' : 'start'; + retval.ties = ties; + } + + return retval; + } + return false; + } + // If here, no vertical lines + + if(m1 == m2) { + // If the lines don't follow the same path, return + if(l1p1.y != (l2p1.y + (l1p1.x - l2p1.x) * m1)) return false; + // if they never meet, return + if(l1p2.x < l2p1.x || l1p1.x > l2p2.x) return false; + var first = l1p1.x >= l2p1.x ? l1p1 : l2p1; + var second = l1p2.x <= l2p2.x ? l1p2 : l2p2; + // First is from the perspective of l1 + retval.parallel = { + first: l1p1 == l1.p1 ? first : second, + second: l1p2 == l1.p2 ? second : first, + sameDirection: (l1p1 == l1.p1) == (l2p1 == l2.p1) + }; + + return retval; + } + + var x = (l2p1.y - l2p1.x * m2 - l1p1.y + l1p1.x * m1) / (m1 - m2); + + // Check if x is out of bounds + if(x >= l1p1.x && x <= l1p2.x && x >= l2p1.x && x <= l2p2.x) { + var y = l1p1.y + (x - l1p1.x) * m1; + retval.point = { x: x, y: y }; + retval.entering = m1 > m2 == (l1p1 == l1.p1) == (l2p1 == l2.p1); + retval.exiting = !retval.entering; + + // Calculate ties + if(l1.p1.x == x) { + ties.l1 = 'start'; + retval.ties = ties; + } else if(l1.p2.x == x) { + ties.l1 = 'end'; + retval.ties = ties; + } + if(l2.p1.x == x) { + ties.l2 = 'start'; + retval.ties = ties; + } else if(l2.p2.x == x) { + ties.l2 = 'end'; + retval.ties = ties; + } + + return retval; + } + return false; + }; + + var _checkInsideRegion = function(label, point) { + if(!_polygonRegistered(label)) return false; + + return _checkInside(regionMap[label].points, point || $ax.mouseLocation); + }; + _geometry.checkInsideRegion = _checkInsideRegion; + + // Returns true if point is inside the polygon, including ties + var _checkInside = function(polygon, point) { + // Make horizontal line wider than the polygon, with the y of point to test location + var firstX = polygon[0].x; + var secondX = firstX; + var i; + for(i = 1; i < polygon.length; i++) { + var polyX = polygon[i].x; + firstX = Math.min(firstX, polyX); + secondX = Math.max(secondX, polyX); + } + var line = { + p1: _genPoint(--firstX, point.y), + p2: _genPoint(++secondX, point.y) + }; + + // If entered true, with closest intersection says you are inside the polygon. + var entered = false; + // Closest is the closest intersection to the left of the point + var closest = line.p1.x; + // This is for if intersections hit the same point, to find out which is correct + var cos = -2; + + var getCos = function(line) { + var x = line.p2.x - line.p1.x; + var y = line.p2.y - line.p1.y; + return x / Math.sqrt(x * x + y * y); + }; + + for(i = 0; i < polygon.length; i++) { + var polyLine = { p1: polygon[i], p2: polygon[(i + 1) % polygon.length] }; + var intersectInfo = linesIntersect(line, polyLine); + if(!intersectInfo) continue; + + if(intersectInfo.parallel) { + // Only really care about this if it actually touches the point + if(intersectInfo.parallel.first.x <= point.x && intersectInfo.parallel.second.x >= point.x) return true; + continue; + } + + var intersectionX = intersectInfo.point.x; + if(intersectionX > point.x || intersectionX < closest) continue; + if(intersectionX == point.x) return true; + + // If closer than last time, reset cosine. + if(intersectionX != closest) cos = -2; + + // For getting cosine, need to possibly reverse the direction of polyLine. + if(intersectInfo.ties) { + // Tie must be on l2, if the ties is end, reverse so cosine indicates how close the angle is to that of 'point' from here. + if(intersectInfo.ties.l2 == 'end') polyLine = { p1: polyLine.p2, p2: polyLine.p1 }; + } else { + // It is on both side, so you can take the larger one + if(polyLine.p1.x > polyLine.p2.x) polyLine = { p1: polyLine.p2, p2: polyLine.p1 }; + } + var currCos = getCos(polyLine); + if(currCos > cos) { + cos = currCos; + closest = intersectionX; + entered = intersectInfo.entering; + } + } + return entered; + }; + _geometry.checkInside = _checkInside; +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/globals.js b/codes/agent/game-docker/api/document/resources/scripts/axure/globals.js new file mode 100644 index 0000000..0c5c4e8 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/globals.js @@ -0,0 +1,7 @@ +$axure.internal(function($ax) { + var _globals = $ax.globals = {}; + + $ax.globals.MaxZIndex = 1000; + $ax.globals.MinZIndex = -1000; + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/ie.js b/codes/agent/game-docker/api/document/resources/scripts/axure/ie.js new file mode 100644 index 0000000..a8553d9 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/ie.js @@ -0,0 +1,344 @@ + +// ******* Internet Explorer MANAGER ******** // +//this is to handle all the stupid IE Stuff +$axure.internal(function($ax) { + if(!IE_10_AND_BELOW) return; + + var _ieColorManager = {}; + if(Number(BROWSER_VERSION) < 9) $ax.ieColorManager = _ieColorManager; + + var _applyIEFixedPosition = function() { + if(Number(BROWSER_VERSION) >= 7) return; + + $axure(function(diagramObject) { return diagramObject.fixedVertical; }).$() + .appendTo($('body')) + .css('position', 'absolute').css('margin-left', 0 + 'px').css('margin-top', 0 + 'px'); + + var handleScroll = function() { + $axure(function(diagramObject) { return diagramObject.fixedVertical; }) + .each(function(diagramObject, elementId) { + var win = $(window); + var windowWidth = win.width(); + var windowHeight = win.height(); + var windowScrollLeft = win.scrollLeft(); + var windowScrollTop = win.scrollTop(); + + var newLeft = 0; + var newTop = 0; + var elementQuery = $('#' + elementId); + var elementAxQuery = $ax('#' + elementId); + var width = elementAxQuery.width(); + var height = elementAxQuery.height(); + + var horz = diagramObject.fixedHorizontal; + if(horz == 'left') { + newLeft = windowScrollLeft + diagramObject.fixedMarginHorizontal; + } else if(horz == 'center') { + newLeft = windowScrollLeft + ((windowWidth - width) / 2) + diagramObject.fixedMarginHorizontal; + } else if(horz == 'right') { + newLeft = windowScrollLeft + windowWidth - width - diagramObject.fixedMarginHorizontal; + } + + var vert = diagramObject.fixedVertical; + if(vert == 'top') { + newTop = windowScrollTop + diagramObject.fixedMarginVertical; + } else if(vert == 'middle') { + newTop = windowScrollTop + ((windowHeight - height) / 2) + diagramObject.fixedMarginVertical; + } else if(vert == 'bottom') { + newTop = windowScrollTop + windowHeight - height - diagramObject.fixedMarginVertical; + } + elementQuery.css('top', newTop + 'px').css('left', newLeft + 'px'); + }); + }; + + $(window).scroll(handleScroll); + $axure.resize(handleScroll); + handleScroll(); + }; + + var _applyBackground = function() { + if(Number(BROWSER_VERSION) >= 9) return; + + var styleChain = $ax.adaptive.getAdaptiveIdChain($ax.adaptive.currentViewId); + var argb = _getArgb($ax.pageData.page, styleChain); + var hexColor = _getHexColor(argb, false); + if(hexColor) $('body').css('background-color', hexColor); + + _applyBackgroundToQuery($ax('*')); + }; + + var _applyBackgroundToQuery = function(query) { + if(Number(BROWSER_VERSION) >= 9) return; + + var styleChain = $ax.adaptive.getAdaptiveIdChain($ax.adaptive.currentViewId); + query.each(function(obj, elementId) { + if ($ax.public.fn.IsDynamicPanel(obj.type)) { + var stateCount = obj.diagrams.length; + for(var j = 0; j < stateCount; j++) { + var stateId = $ax.repeater.applySuffixToElementId(elementId, '_state' + j); + var argb = _getArgb(obj.diagrams[j], styleChain); + var hexColor = _getHexColor(argb, true); + if(hexColor) $jobj(stateId).css('background-color', hexColor); + } + } else if ($ax.public.fn.IsRepeater(obj.type)) { + + } + }); + }; + _ieColorManager.applyBackground = _applyBackgroundToQuery; + + var _getArgb = function(diagram, styleChain) { + var argb = undefined; + for(var i = 0; i < styleChain.length && !argb; i++) { + var style = diagram.adaptiveStyles[styleChain[i]]; + argb = style.fill && style.fill.color; + } + if(!argb) argb = diagram.style.fill.color; + return argb; + }; + + var gMult = 256; + var rMult = gMult * 256; + var aMult = rMult * 256; + + var _getHexColor = function(argb, allowWhite) { + var a = Math.floor(argb / aMult); + argb -= a * aMult; + + var r = Math.floor(argb / rMult); + argb -= r * rMult; + + var g = Math.floor(argb / gMult); + var b = argb - g * gMult; + + return _getColorFromArgb(a, r, g, b, allowWhite); + }; + + var _getColorFromArgb = function(a, r, g, b, allowWhite) { + if(Number(BROWSER_VERSION) >= 9) return undefined; + + //convert the color with alpha to a color with no alpha (assuming white background) + r = Math.min((r * a) / 255 + 255 - a, 255); + g = Math.min((g * a) / 255 + 255 - a, 255); + b = Math.min((b * a) / 255 + 255 - a, 255); + + if(a == 0) return undefined; + if(!allowWhite && (r == 255 && g == 255 && b == 255)) return undefined; + + var color = '#'; + color += Math.floor(r / 16).toString(16); + color += Math.floor(r % 16).toString(16); + color += Math.floor(g / 16).toString(16); + color += Math.floor(g % 16).toString(16); + color += Math.floor(b / 16).toString(16); + color += Math.floor(b % 16).toString(16); + return color; + }; + _ieColorManager.getColorFromArgb = _getColorFromArgb; + + var getIEOffset = function(transform, rect) { + var translatedVertexes = [ + $axure.utils.Vector2D(0, 0), //we dont translate, so the orgin is fixed + transform.mul($axure.utils.Vector2D(0, rect.height)), + transform.mul($axure.utils.Vector2D(rect.width, 0)), + transform.mul($axure.utils.Vector2D(rect.width, rect.height))]; + + var minX = 0, minY = 0, maxX = 0, maxY = 0; + $.each(translatedVertexes, function(index, p) { + minX = Math.min(minX, p.x); + minY = Math.min(minY, p.y); + maxX = Math.max(maxX, p.x); + maxY = Math.max(maxY, p.y); + }); + + return $axure.utils.Vector2D( + (maxX - minX - rect.width) / 2, + (maxY - minY - rect.height) / 2); + }; + + var _filterFromTransform = function(transform) { + return "progid:DXImageTransform.Microsoft.Matrix(M11=" + transform.m11 + + ", M12=" + transform.m12 + ", M21=" + transform.m21 + + ", M22=" + transform.m22 + ", SizingMethod='auto expand')"; + }; + + var _applyIERotation = function() { + if(Number(BROWSER_VERSION) >= 9) return; + + $axure(function(diagramObject) { + return ((diagramObject.style.rotation && Math.abs(diagramObject.style.rotation) > 0.1) + || (diagramObject.style.textRotation && Math.abs(diagramObject.style.textRotation) > 0.1)) + && !diagramObject.isContained; + }).each(function(diagramObject, elementId) { + var rotation = diagramObject.style.rotation || 0; + var $element = $('#' + elementId); + var axElement = $ax('#' + elementId); + var width = axElement.width(); + var height = axElement.height(); + var originX = width / 2; + var originY = height / 2; + + var shapeIeOffset; + $element.children().each(function() { + var $child = $(this); + var axChild = $ax('#' + $child.attr('id')); + var childWidth = axChild.width(); + var childHeight = axChild.height() + $child.position().top; + var centerX = $child.position().left + (childWidth / 2); + var centerY = $child.position().top + (childHeight / 2); + var deltaX = centerX - originX; + var deltaY = centerY - originY; + + var effectiveRotation = rotation; + var textObject = $ax.getObjectFromElementId($child.attr('id')); + if(textObject) { + if(textObject.style.textRotation) effectiveRotation = textObject.style.textRotation; + else return; + } + + var transform = $ax.utils.Matrix2D.identity().rotate(effectiveRotation); + var filter = _filterFromTransform(transform); + + $child.css('filter', filter) + .width(childWidth + 1) + .height(childHeight + 1); + + var p = transform.mul($ax.utils.Vector2D(deltaX, deltaY)); + var ieOffset = getIEOffset(transform, { width: childWidth, height: childHeight }); + if(!textObject) { + shapeIeOffset = ieOffset; + } else { + // This is a close approximation, but not exact + if(diagramObject.style.verticalAlignment != 'top') ieOffset.y -= shapeIeOffset.y + Math.abs(shapeIeOffset.x); + } + + $child.css("margin-left", -ieOffset.x - deltaX + p.x).css("margin-top", -ieOffset.y - deltaY + p.y); + }); + }); + }; + + var _fixIEStretchBackground = function() { + if(Number(BROWSER_VERSION) >= 9) return; + var pageStyle = $ax.adaptive.getPageStyle(); + if(!pageStyle.imageRepeat || pageStyle.imageRepeat == 'auto') return; + + $('body').css('background-image', 'none'); + var viewId = $ax.adaptive.currentViewId; + var imageInfo = viewId ? $ax.pageData.viewIdToBackgroundImageInfo && $ax.pageData.viewIdToBackgroundImageInfo[viewId] : $ax.pageData.defaultBackgroundImageInfo; + if(imageInfo && imageInfo.path) { + if($('#bg_img').length == 0) $('body').append(''); + $('#bg_img').attr('src', imageInfo.path).css('position', 'fixed').css('z-index', '-10000'); + _resizeIEBackground(); + } else $('#bg_img').remove(); + }; + + var _resizeIEBackground = function() { + if(Number(BROWSER_VERSION) >= 9) return; + //var page = $ax.pageData.page; + var viewId = $ax.adaptive.currentViewId; + var pageStyle = $ax.adaptive.getPageStyle(); + if(!$ax.pageData.defaultBackgroundImageInfo && !$ax.pageData.viewIdToBackgroundImageInfo) return; + var imageInfo = viewId ? $ax.pageData.viewIdToBackgroundImageInfo[viewId] : $ax.pageData.defaultBackgroundImageInfo; + if(!imageInfo) return; + var imageWidth = imageInfo.width; + var imageHeight = imageInfo.height; + var windowWidth = $(window).width(); + var windowHeight = $(window).height(); + var isCover = pageStyle.imageRepeat == 'cover'; + + var wRatio = windowWidth / imageWidth; + var hRatio = windowHeight / imageHeight; + var ratio = wRatio; + if(isCover) { + if(hRatio > wRatio) ratio = hRatio; + } else { + if(hRatio < wRatio) ratio = hRatio; + } + var width = imageWidth * ratio; + var height = imageHeight * ratio; + + var left = '0px'; + if((isCover && width > windowWidth) || (!isCover && width < windowWidth)) { + if(pageStyle.imageHorizontalAlignment == 'center') { + left = ((windowWidth - width) / 2) + 'px'; + } else if(pageStyle.imageHorizontalAlignment == 'far') { + left = (windowWidth - width) + 'px'; + } + } + + var top = '0px'; + if((isCover && height > windowHeight) || (!isCover && height < windowHeight)) { + if(pageStyle.imageVerticalAlignment == 'center') { + top = ((windowHeight - height) / 2) + 'px'; + } else if(pageStyle.imageVerticalAlignment == 'far') { + top = (windowHeight - height) + 'px'; + } + } + + $('#bg_img').css('top', top).css('left', left).css('width', width).css('height', height); + }; + + var _fixAllPngs = function() { + if(!(/MSIE ((5\.5)|6)/.test(window.navigator.userAgent) && window.navigator.platform == "Win32")) return; + + $('img[src$=".png"]').each(function() { + if(!this.complete) { + this.onload = function() { $axure.utils.fixPng(this); }; + } else { + $axure.utils.fixPng(this); + } + }); + }; + + var _fixInputSize = function() { + if(Number(BROWSER_VERSION) >= 8 || window.navigator.userAgent.indexOf("Trident/4.0") > -1) return; + var inputs = $('input').not(':input[type=button], :input[type=submit], :input[type=radio], :input[type=checkbox]'); + inputs.each(function() { + var $input = $(this); + var axInput = $ax('#' + $input.attr('id')); + $input.css('height', (axInput.height() - 4 + 'px')).css('width', (axInput.width() - 2 + 'px')); + }); + + var textAreas = $($ax.constants.TEXT_AREA_TYPE); + textAreas.each(function() { + var $textArea = $(this); + var axText = $ax('#' + $textArea.attr('id')); + $textArea.css('height', (axText.height() - 6 + 'px')).css('width', (axText.width() - 6 + 'px')); + }); + }; + + var _fixInputBackground = function() { + var inputs = $('input').not(':input[type=button], :input[type=submit], :input[type=radio], :input[type=checkbox]'); + inputs = inputs.add($($ax.constants.TEXT_AREA_TYPE)); + inputs.each(function() { + var $input = $(this); + if($input.css('background-color') == 'transparent') { + $input.css('background-image', 'url(../../transparent.gif)'); + } else { + $input.css('background-image', ''); + } + }); + }; + + $(document).ready(function() { + _fixIEStretchBackground(); + _applyIEFixedPosition(); + $axure.resize(function() { + _resizeIEBackground(); + }); + $ax.adaptive.bind('viewChanged', function() { + _fixIEStretchBackground(); + _applyBackground(); + _fixInputBackground(); + }); + + + _fixAllPngs(); + _applyIERotation(); + _applyBackground(); + _fixInputSize(); + _fixInputBackground(); + }); + + +}); diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/init.temp.js b/codes/agent/game-docker/api/document/resources/scripts/axure/init.temp.js new file mode 100644 index 0000000..c9bc160 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/init.temp.js @@ -0,0 +1,224 @@ +$axure.internal(function($ax) { + + $(window.document).ready(function() { + var readyStart = (new Date()).getTime(); + + //this is because the page id is not formatted as a guid + var pageId = $ax.pageData.page.packageId; + + var pageData = { + id: pageId, + pageName: $ax.pageData.page.name, + location: window.location.toString(), + notes: $ax.pageData.page.notes + }; + + var anns = []; + $ax('*').each(function (dObj, elementId) { + pushAnnotation(dObj, elementId); + }); + + function pushAnnotation(dObj, elementId) { + var ann = dObj.annotation; + if(ann) { + ann["id"] = elementId; + ann["label"] = dObj.label + " (" + dObj.friendlyType + ")"; + anns.push(ann); + } + + if(dObj.type == 'repeater') { + if(dObj.objects) { + for(var i = 0, len = dObj.objects.length; i < len; i++) { + pushAnnotation(dObj.objects[i]); + } + } + } + } + + pageData.widgetNotes = anns; + + //only trigger the page.data setting if the window is on the mainframe + var isMainFrame = false; + try { + if(window.name == 'mainFrame' || + (!CHROME_5_LOCAL && window.parent.$ && window.parent.$('#mainFrame').length > 0)) { + isMainFrame = true; + + $ax.messageCenter.addMessageListener(function(message, data) { + if(message == 'finishInit') { + _processTempInit(); + } + }); + + $axure.messageCenter.setState('page.data', pageData); + window.focus(); + } + } catch(e) { } + + //attach here for chrome local + $(window).load(function() { + $ax.style.initializeObjectTextAlignment($ax('*')); + }); + + if(!isMainFrame) _processTempInit(); + }); + + + var _processTempInit = function() { + //var start = (new Date()).getTime(); + //var end = (new Date()).getTime(); + //window.alert('elapsed ' + (end - start)); + + $('iframe').each(function() { + var origSrc = $(this).attr('basesrc'); + + var $this = $(this); + if(origSrc) { + var newSrcUrl = origSrc.toLowerCase().indexOf('http://') == -1 ? $ax.globalVariableProvider.getLinkUrl(origSrc) : origSrc; + $this.attr('src', newSrcUrl); + } + + if(IOS) { + $this.parent().css('overflow', 'auto').css('-webkit-overflow-scrolling', 'touch').css('-ms-overflow-x', 'hidden').css('overflow-x', 'hidden'); + } + }); + + $axure.messageCenter.addMessageListener(function(message, data) { + if(message == 'setGlobalVar') { + $ax.globalVariableProvider.setVariableValue(data.globalVarName, data.globalVarValue, true); + } + }); + + window.lastFocusedClickable = null; + var _lastFocusedClickableSelector = 'div[tabIndex=0], img[tabIndex=0], a'; + var shouldOutline = true; + + $ax(function (dObj) { return dObj.tabbable; }).each(function (dObj, elementId) { + if ($ax.public.fn.IsLayer(dObj.type)) $ax.event.layerMapFocus(dObj, elementId); + var focusableId = $ax.event.getFocusableWidgetOrChildId(elementId); + $('#' + focusableId).attr("tabIndex", 0); + }); + + $('div[tabIndex=0], img[tabIndex=0]').bind($ax.features.eventNames.mouseDownName, function() { + shouldOutline = false; + }); + + $(window.document).bind($ax.features.eventNames.mouseUpName, function() { + shouldOutline = true; + }); + + $(_lastFocusedClickableSelector).focus(function () { + if(shouldOutline) { + $(this).css('outline', ''); + } else { + $(this).css('outline', 'none'); + } + + window.lastFocusedClickable = this; + }); + + $(_lastFocusedClickableSelector).blur(function () { + if(window.lastFocusedClickable == this) window.lastFocusedClickable = null; + }); + + $(window.document).bind('keyup', function(e) { + if(e.keyCode == '13' || e.keyCode == '32') { + if(window.lastFocusedClickable) $(window.lastFocusedClickable).click(); + } + }); + + if($ax.document.configuration.hideAddress) { + $(window).load(function() { + window.setTimeout(function() { + window.scrollTo(0, 0.9); + }, 0); + }); + } + + if($ax.document.configuration.preventScroll) { + $(window.document).bind('touchmove', function(e) { + var inScrollable = $ax.legacy.GetScrollable(e.target) != window.document.body; + if(!inScrollable) { + e.preventDefault(); + } + }); + + $ax(function(diagramObject) { + return $ax.public.fn.IsDynamicPanel(diagramObject.type) && diagramObject.scrollbars != 'none'; + }).$().children().bind('touchstart', function() { + var target = this; + var top = target.scrollTop; + if(top <= 0) target.scrollTop = 1; + if(top + target.offsetHeight >= target.scrollHeight) target.scrollTop = target.scrollHeight - target.offsetHeight - 1; + }); + } + + if(OS_MAC && WEBKIT) { + $ax(function(diagramObject) { + return $ax.public.fn.IsComboBox(diagramObject.type); + }).each(function(obj, id) { + $jobj($ax.INPUT(id)).css('-webkit-appearance', 'menulist-button').css('border-color', '#999999'); + }); + } + + $ax.legacy.BringFixedToFront(); + $ax.event.initialize(); + $ax.style.initialize(); + $ax.visibility.initialize(); + $ax.repeater.initialize(); + $ax.dynamicPanelManager.initialize(); //needs to be called after visibility is initialized + $ax.adaptive.initialize(); + $ax.loadDynamicPanelsAndMasters(); + $ax.adaptive.loadFinished(); + var start = (new Date()).getTime(); + $ax.repeater.initRefresh(); + var end = (new Date()).getTime(); + console.log('loadTime: ' + (end - start) / 1000); + $ax.style.prefetch(); + + $(window).resize(); + + //var readyEnd = (new Date()).getTime(); + //window.alert('elapsed ' + (readyEnd - readyStart)); + }; +}); + +/* extend canvas */ +var gv_hasCanvas = false; +(function() { + var _canvas = document.createElement('canvas'), proto, abbrev; + if(gv_hasCanvas = !!(_canvas.getContext && _canvas.getContext('2d')) && typeof (CanvasGradient) !== 'undefined') { + function chain(func) { + return function() { + return func.apply(this, arguments) || this; + }; + } + + with(proto = CanvasRenderingContext2D.prototype) for(var func in abbrev = { + a: arc, + b: beginPath, + n: clearRect, + c: clip, + p: closePath, + g: createLinearGradient, + f: fill, + j: fillRect, + z: function(s) { this.fillStyle = s; }, + l: lineTo, + w: function(w) { this.lineWidth = w; }, + m: moveTo, + q: quadraticCurveTo, + h: rect, + r: restore, + o: rotate, + s: save, + x: scale, + y: function(s) { this.strokeStyle = s; }, + u: setTransform, + k: stroke, + i: strokeRect, + t: translate + }) proto[func] = chain(abbrev[func]); + CanvasGradient.prototype.a = chain(CanvasGradient.prototype.addColorStop); + } +})(); diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/legacy.js b/codes/agent/game-docker/api/document/resources/scripts/axure/legacy.js new file mode 100644 index 0000000..2f51310 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/legacy.js @@ -0,0 +1,208 @@ +//stored on each browser event +var windowEvent; + +$axure.internal(function($ax) { + var _legacy = {}; + $ax.legacy = _legacy; + + + // ************************** GLOBAL VARS *********************************// + + // ************************************************************************// + //Check if IE + //var bIE = false; + //if ((index = navigator.userAgent.indexOf("MSIE")) >= 0) { + // bIE = true; + //} + + var Forms = window.document.getElementsByTagName("FORM"); + for(var i = 0; i < Forms.length; i++) { + var Form = Forms[i]; + Form.onclick = $ax.legacy.SuppressBubble; + } + + $ax.legacy.SuppressBubble = function(event) { + if(IE_10_AND_BELOW) { + window.event.cancelBubble = true; + window.event.returnValue = false; + } else { + if(event) { + event.stopPropagation(); + } + } + }; + + // function InsertAfterBegin(dom, html) { + // if(!IE) { + // var phtml; + // var range = dom.ownerDocument.createRange(); + // range.selectNodeContents(dom); + // range.collapse(true); + // phtml = range.createContextualFragment(html); + // dom.insertBefore(phtml, dom.firstChild); + // } else { + // dom.insertAdjacentHTML("afterBegin", html); + // } + // } + + // function InsertBeforeEnd(dom, html) { + // if(!IE) { + // var phtml; + // var range = dom.ownerDocument.createRange(); + // range.selectNodeContents(dom); + // range.collapse(dom); + // phtml = range.createContextualFragment(html); + // dom.appendChild(phtml); + // } else { + // dom.insertAdjacentHTML("beforeEnd", html); + // } + // } + + //Get the id of the Workflow Dialog belonging to element with id = id + + // function Workflow(id) { + // return id + 'WF'; + // } + + $ax.legacy.BringToFront = function(id, skipFixed) { + _bringToFrontHelper(id); + if(!skipFixed) $ax.legacy.BringFixedToFront(); + }; + + var _bringToFrontHelper = function(id) { + var target = window.document.getElementById(id); + if(target == null) return; + $ax.globals.MaxZIndex = $ax.globals.MaxZIndex + 1; + target.style.zIndex = $ax.globals.MaxZIndex; + }; + + $ax.legacy.BringFixedToFront = function() { + $ax(function(diagramObject) { return diagramObject.fixedKeepInFront; }).each(function(diagramObject, scriptId) { + _bringToFrontHelper(scriptId); + }); + }; + + $ax.legacy.SendToBack = function(id) { + var target = window.document.getElementById(id); + if(target == null) return; + target.style.zIndex = $ax.globals.MinZIndex = $ax.globals.MinZIndex - 1; + }; + + $ax.legacy.RefreshScreen = function() { + var oldColor = window.document.body.style.backgroundColor; + var setColor = (oldColor == "rgb(0,0,0)") ? "#FFFFFF" : "#000000"; + window.document.body.style.backgroundColor = setColor; + window.document.body.style.backgroundColor = oldColor; + }; + + $ax.legacy.getAbsoluteLeft = function(currentNode, elementId) { + var oldDisplay = currentNode.css('display'); + var displaySet = false; + if(oldDisplay == 'none') { + currentNode.css('display', ''); + displaySet = true; + } + var left = currentNode.offset().left; + + // Special Layer code + if($ax.getTypeFromElementId(elementId) == 'layer') { + var first = true; + var children = currentNode.children(); + for(var i = 0; i < children.length; i++) { + var child = $(children[i]); + var subDisplaySet = false; + if(child.css('display') == 'none') { + child.css('display', ''); + subDisplaySet = true; + } + if(first) left = child.offset().left; + else left = Math.min(child.offset().left, left); + first = false; + + if(subDisplaySet) child.css('display', 'none'); + } + } + + if (displaySet) currentNode.css('display', oldDisplay); + + return $axure.fn.bodyToWorld(left, true); + }; + + $ax.legacy.getAbsoluteTop = function(currentNode, elementId) { + var oldDisplay = currentNode.css('display'); + var displaySet = false; + if(oldDisplay == 'none') { + currentNode.css('display', ''); + displaySet = true; + } + var top = currentNode.offset().top; + + // Special Layer code + if ($ax.getTypeFromElementId(elementId) == 'layer') { + var first = true; + var children = currentNode.children(); + for (var i = 0; i < children.length; i++) { + var child = $(children[i]); + var subDisplaySet = false; + if (child.css('display') == 'none') { + child.css('display', ''); + subDisplaySet = true; + } + if (first) top = child.offset().top; + else top = Math.min(child.offset().top, top); + first = false; + + if (subDisplaySet) child.css('display', 'none'); + } + } + + if(displaySet) currentNode.css('display', oldDisplay); + return top; + }; + + // ****************** Annotation and Link Functions ****************** // + + $ax.legacy.GetAnnotationHtml = function(annJson) { + var retVal = ""; + for(var noteName in annJson) { + if(noteName != "label" && noteName != "id") { + retVal += "
    " + noteName + "
    "; + retVal += "
    " + linkify(annJson[noteName]) + "
    "; + } + } + return retVal; + + function linkify(text) { + var urlRegex = /(\b(((https?|ftp|file):\/\/)|(www\.))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; + return text.replace(urlRegex, function (url, b, c) { + var url2 = (c == 'www.') ? 'http://' + url : url; + return '' + url + ''; + }); + } + }; + + + $ax.legacy.GetScrollable = function(target) { + var $target = $(target); + var last = $target; + // Start past inital target. Can't scroll to target in itself, must be some ancestor. + var current = last.parent(); + + while(!current.is('body') && !current.is('html')) { + var elementId = current.attr('id'); + var diagramObject = elementId && $ax.getObjectFromElementId(elementId); + if (diagramObject && $ax.public.fn.IsDynamicPanel(diagramObject.type) && diagramObject.scrollbars != 'none') { + //returns the panel diagram div which handles scrolling + return window.document.getElementById(last.attr('id')); + } + last = current; + current = current.parent(); + } + // Need to do this because of ie + if(IE_10_AND_BELOW) return window.document.documentElement; + else return window.document.body; + }; + + + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/math.js b/codes/agent/game-docker/api/document/resources/scripts/axure/math.js new file mode 100644 index 0000000..425f487 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/math.js @@ -0,0 +1,358 @@ +$axure.internal(function($ax) { + $ax.public.fn.matrixMultiply = function(matrix, vector) { + if(!matrix.tx) matrix.tx = 0; + if(!matrix.ty) matrix.ty = 0; + var outX = matrix.m11 * vector.x + matrix.m12 * vector.y + matrix.tx; + var outY = matrix.m21 * vector.x + matrix.m22 * vector.y + matrix.ty; + return { x: outX, y: outY }; + } + + $ax.public.fn.matrixInverse = function(matrix) { + if(!matrix.tx) matrix.tx = 0; + if(!matrix.ty) matrix.ty = 0; + + var determinant = matrix.m11*matrix.m22 - matrix.m12*matrix.m21; + //var threshold = (M11 * M11 + M22 *M22 + M12 *M12+ M21 *M21) / 100000; + //if(determinant.DeltaEquals(0, threshold) && determinant < 0.01) { + // return Invalid; + //} + return { + m11 : matrix.m22/determinant, + m12 : -matrix.m12/determinant, + tx : (matrix.ty*matrix.m12 - matrix.tx*matrix.m22)/determinant, + m21: -matrix.m21 / determinant, + m22: matrix.m11 / determinant, + ty: (matrix.tx * matrix.m21 - matrix.ty * matrix.m11) / determinant + }; + } + + + $ax.public.fn.matrixMultiplyMatrix = function (matrix1, matrix2) { + if (!matrix1.tx) matrix1.tx = 0; + if (!matrix1.ty) matrix1.ty = 0; + if (!matrix2.tx) matrix2.tx = 0; + if (!matrix2.ty) matrix2.ty = 0; + + return { + m11: matrix1.m12*matrix2.m21 + matrix1.m11*matrix2.m11, + m12: matrix1.m12*matrix2.m22 + matrix1.m11*matrix2.m12, + tx: matrix1.m12 * matrix2.ty + matrix1.m11 * matrix2.tx + matrix1.tx, + m21: matrix1.m22 * matrix2.m21 + matrix1.m21 * matrix2.m11, + m22: matrix1.m22 * matrix2.m22 + matrix1.m21 * matrix2.m12, + ty: matrix1.m22 * matrix2.ty + matrix1.m21 * matrix2.tx + matrix1.ty, + }; + } + + + $ax.public.fn.transformFromElement = function (element) { + var st = window.getComputedStyle(element, null); + + var tr = st.getPropertyValue("-webkit-transform") || + st.getPropertyValue("-moz-transform") || + st.getPropertyValue("-ms-transform") || + st.getPropertyValue("-o-transform") || + st.getPropertyValue("transform"); + + if (tr.indexOf('none') < 0) { + var matrix = tr.split('(')[1]; + matrix = matrix.split(')')[0]; + matrix = matrix.split(','); + for (var l = 0; l < matrix.length; l++) { + matrix[l] = Number(matrix[l]); + } + + } else { matrix = [1.0, 0.0, 0.0, 1.0, 0.0, 0.0]; } + + return matrix; + // matrix[0] = cosine, matrix[1] = sine. + // Assuming the element is still orthogonal. + } + + $ax.public.fn.vectorMinus = function(vector1, vector2) { return { x: vector1.x - vector2.x, y: vector1.y - vector2.y }; } + + $ax.public.fn.vectorPlus = function (vector1, vector2) { return { x: vector1.x + vector2.x, y: vector1.y + vector2.y }; } + + $ax.public.fn.vectorMidpoint = function (vector1, vector2) { return { x: (vector1.x + vector2.x) / 2.0, y: (vector1.y + vector2.y) / 2.0 }; } + + $ax.public.fn.fourCornersToBasis = function (fourCorners) { + return { + widthVector: $ax.public.fn.vectorMinus(fourCorners.widgetTopRight, fourCorners.widgetTopLeft), + heightVector: $ax.public.fn.vectorMinus(fourCorners.widgetBottomLeft, fourCorners.widgetTopLeft) + }; + } + + $ax.public.fn.matrixString = function(m11, m21, m12, m22, tx, ty) { + return "Matrix(" + m11 + "," + m21 + "," + m12 + "," + m22 + ", " + tx + ", " + ty + ")"; + } + + $ax.public.fn.getWidgetBoundingRect = function (widgetId) { + var emptyRect = { left: 0, top: 0, centerPoint: { x: 0, y: 0 }, width: 0, height: 0 }; + var element = document.getElementById(widgetId); + if (!element) return emptyRect; + + var object = $obj(widgetId); + if (object && object.type && $ax.public.fn.IsLayer(object.type)) { + var layerChildren = _getLayerChildrenDeep(widgetId); + if (!layerChildren) return emptyRect; + else return _getBoundingRectForMultipleWidgets(layerChildren); + } + return _getBoundingRectForSingleWidget(widgetId); + }; + + var _getLayerChildrenDeep = $ax.public.fn.getLayerChildrenDeep = function (layerId, includeLayers, includeHidden) { + var deep = []; + var children = $ax('#' + layerId).getChildren()[0].children; + for (var index = 0; index < children.length; index++) { + var childId = children[index]; + if(!includeHidden && !$ax.visibility.IsIdVisible(childId)) continue; + if ($ax.public.fn.IsLayer($obj(childId).type)) { + if (includeLayers) deep.push(childId); + var recursiveChildren = _getLayerChildrenDeep(childId, includeLayers, includeHidden); + for (var j = 0; j < recursiveChildren.length; j++) deep.push(recursiveChildren[j]); + } else deep.push(childId); + } + return deep; + }; + + var _getBoundingRectForMultipleWidgets = function (widgetsIdArray, relativeToPage) { + if (!widgetsIdArray || widgetsIdArray.constructor !== Array) return undefined; + if (widgetsIdArray.length == 0) return { left: 0, top: 0, centerPoint: { x: 0, y: 0 }, width: 0, height: 0 }; + var widgetRect = _getBoundingRectForSingleWidget(widgetsIdArray[0], relativeToPage, true); + var boundingRect = { left: widgetRect.left, right: widgetRect.right, top: widgetRect.top, bottom: widgetRect.bottom }; + + for (var index = 1; index < widgetsIdArray.length; index++) { + widgetRect = _getBoundingRectForSingleWidget(widgetsIdArray[index], relativeToPage); + boundingRect.left = Math.min(boundingRect.left, widgetRect.left); + boundingRect.top = Math.min(boundingRect.top, widgetRect.top); + boundingRect.right = Math.max(boundingRect.right, widgetRect.right); + boundingRect.bottom = Math.max(boundingRect.bottom, widgetRect.bottom); + } + + boundingRect.centerPoint = { x: (boundingRect.right + boundingRect.left) / 2.0, y: (boundingRect.bottom + boundingRect.top) / 2.0 }; + boundingRect.width = boundingRect.right - boundingRect.left; + boundingRect.height = boundingRect.bottom - boundingRect.top; + return boundingRect; + }; + + var _getBoundingRectForSingleWidget = function (widgetId, relativeToPage, justSides) { + var element = document.getElementById(widgetId); + var boundingRect, tempBoundingRect, position; + var displayChanged = _displayHackStart(element); + + if (_isCompoundVectorHtml(element)) { + //tempBoundingRect = _getCompoundImageBoundingClientSize(widgetId); + //position = { left: tempBoundingRect.left, top: tempBoundingRect.top }; + position = $(element).position(); + tempBoundingRect = {}; + tempBoundingRect.left = position.left; //= _getCompoundImageBoundingClientSize(widgetId); + tempBoundingRect.top = position.top; + tempBoundingRect.width = Number(element.getAttribute('WidgetWidth')); + tempBoundingRect.height = Number(element.getAttribute('WidgetHeight')); + } else { + tempBoundingRect = element.getBoundingClientRect(); + position = $(element).position(); + } + + var layers = $ax('#' + widgetId).getParents(true, ['layer'])[0]; + var flip = ''; + var mirrorWidth = 0; + var mirrorHeight = 0; + for (var i = 0; i < layers.length; i++) { + + //should always be 0,0 + var layerPos = $jobj(layers[i]).position(); + position.left += layerPos.left; + position.top += layerPos.top; + + var outer = $ax.visibility.applyWidgetContainer(layers[i], true, true); + if (outer.length) { + var outerPos = outer.position(); + position.left += outerPos.left; + position.top += outerPos.top; + } + + //when a group is flipped we find the unflipped position + var inner = $jobj(layers[i] + '_container_inner'); + var taggedFlip = inner.data('flip'); + if (inner.length && taggedFlip) { + //only account for flip if transform is applied + var matrix = taggedFlip && (inner.css("-webkit-transform") || inner.css("-moz-transform") || + inner.css("-ms-transform") || inner.css("-o-transform") || inner.css("transform")); + if (matrix !== 'none') { + flip = taggedFlip; + mirrorWidth = $ax.getNumFromPx(inner.css('width')); + mirrorHeight = $ax.getNumFromPx(inner.css('height')); + } + } + } + //Now account for flip + if (flip == 'x') position.top = mirrorHeight - position.top - element.getBoundingClientRect().height; + else if (flip == 'y') position.left = mirrorWidth - position.left - element.getBoundingClientRect().width; + + boundingRect = { + left: position.left, + right: position.left + tempBoundingRect.width, + top: position.top, + bottom: position.top + tempBoundingRect.height + }; + + _displayHackEnd(displayChanged); + if (justSides) return boundingRect; + + boundingRect.width = boundingRect.right - boundingRect.left; + boundingRect.height = boundingRect.bottom - boundingRect.top; + + boundingRect.centerPoint = { + x: boundingRect.width / 2 + boundingRect.left, + y: boundingRect.height / 2 + boundingRect.top + }; + + return boundingRect; + }; + + var _getPointAfterRotate = $ax.public.fn.getPointAfterRotate = function (angleInDegrees, pointToRotate, centerPoint) { + var displacement = $ax.public.fn.vectorMinus(pointToRotate, centerPoint); + var rotationMatrix = $ax.public.fn.rotationMatrix(angleInDegrees); + rotationMatrix.tx = centerPoint.x; + rotationMatrix.ty = centerPoint.y; + return $ax.public.fn.matrixMultiply(rotationMatrix, displacement); + }; + + $ax.public.fn.getBoundingSizeForRotate = function(width, height, rotation) { + // point to rotate around doesn't matter since we just care about size, if location matter we need more args and location matters. + + var origin = { x: 0, y: 0 }; + + var corner1 = { x: width, y: 0 }; + var corner2 = { x: 0, y: height }; + var corner3 = { x: width, y: height }; + + corner1 = _getPointAfterRotate(rotation, corner1, origin); + corner2 = _getPointAfterRotate(rotation, corner2, origin); + corner3 = _getPointAfterRotate(rotation, corner3, origin); + + var left = Math.min(0, corner1.x, corner2.x, corner3.x); + var right = Math.max(0, corner1.x, corner2.x, corner3.x); + var top = Math.min(0, corner1.y, corner2.y, corner3.y); + var bottom = Math.max(0, corner1.y, corner2.y, corner3.y); + + return { width: right - left, height: bottom - top }; + } + + $ax.public.fn.getPositionRelativeToParent = function (elementId) { + var element = document.getElementById(elementId); + var list = _displayHackStart(element); + var position = $(element).position(); + _displayHackEnd(list); + return position; + }; + + var _displayHackStart = $ax.public.fn.displayHackStart = function (element) { + // TODO: Options: 1) stop setting display none. Big change for this late in the game. 2) Implement our own bounding. + // TODO: 3) Current method is look for any parents that are set to none, and and temporarily unblock. Don't like it, but it works. + var parent = element; + var displays = []; + while (parent) { + if (parent.style.display == 'none') { + displays.push(parent); + //use block to overwrites default hidden objects' display + parent.style.display = 'block'; + } + parent = parent.parentElement; + } + + return displays; + }; + + var _displayHackEnd = $ax.public.fn.displayHackEnd = function (displayChangedList) { + for (var i = 0; i < displayChangedList.length; i++) displayChangedList[i].style.display = 'none'; + }; + + + var _isCompoundVectorHtml = $ax.public.fn.isCompoundVectorHtml = function(hElement) { + return hElement.hasAttribute('compoundmode') && hElement.getAttribute('compoundmode') == "true"; + } + + $ax.public.fn.removeCompound = function (jobj) { if(_isCompoundVectorHtml(jobj[0])) jobj.removeClass('compound'); } + $ax.public.fn.restoreCompound = function (jobj) { if (_isCompoundVectorHtml(jobj[0])) jobj.addClass('compound'); } + + $ax.public.fn.compoundIdFromComponent = function(id) { + + var pPos = id.indexOf('p'); + var dashPos = id.indexOf('-'); + if (pPos < 1) return id; + else if (dashPos < 0) return id.substring(0, pPos); + else return id.substring(0, pPos) + id.substring(dashPos); + } + + $ax.public.fn.l2 = function (x, y) { return Math.sqrt(x * x + y * y); } + + $ax.public.fn.convertToSingleImage = function (jobj) { + + var widgetId = jobj[0].id; + var object = $obj(widgetId); + + if ($ax.public.fn.IsLayer(object.type)) { + var recursiveChildren = _getLayerChildrenDeep(widgetId, true); + for (var j = 0; j < recursiveChildren.length; j++) + $ax.public.fn.convertToSingleImage($jobj(recursiveChildren[j])); + return; + } + + //var layer = + + if(!_isCompoundVectorHtml(jobj[0])) return; + + + $('#' + widgetId).removeClass("compound"); + $('#' + widgetId + '_img').removeClass("singleImg"); + jobj[0].setAttribute('compoundmode', 'false'); + + var components = object.compoundChildren; + delete object.generateCompound; + for (var i = 0; i < components.length; i++) { + var componentJobj = $jobj($ax.public.fn.getComponentId(widgetId, components[i])); + componentJobj.css('display', 'none'); + componentJobj.css('visibility', 'hidden'); + } + } + + + $ax.public.fn.getContainerDimensions = function(query) { + // returns undefined if no containers found. + var containerDimensions; + for (var i = 0; i < query[0].children.length; i++) { + var node = query[0].children[i]; + if (node.id.indexOf(query[0].id) >= 0 && node.id.indexOf('container') >= 0) { + containerDimensions = node.style; + } + } + return containerDimensions; + } + + + $ax.public.fn.rotationMatrix = function (angleInDegrees) { + var angleInRadians = angleInDegrees * (Math.PI / 180); + var cosTheta = Math.cos(angleInRadians); + var sinTheta = Math.sin(angleInRadians); + + return { m11: cosTheta, m12: -sinTheta, m21: sinTheta, m22: cosTheta, tx: 0.0, ty: 0.0 }; + } + + $ax.public.fn.GetFieldFromStyle = function (query, field) { + var raw = query[0].style[field]; + if (!raw) raw = query.css(field); + return Number(raw.replace('px', '')); + } + + + $ax.public.fn.setTransformHowever = function (transformString) { + return { + '-webkit-transform': transformString, + '-moz-transform': transformString, + '-ms-transform': transformString, + '-o-transform': transformString, + 'transform': transformString + }; + } +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/model.js b/codes/agent/game-docker/api/document/resources/scripts/axure/model.js new file mode 100644 index 0000000..587c679 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/model.js @@ -0,0 +1,44 @@ +// ******* Object Model ******** // +$axure.internal(function($ax) { + var _implementations = {}; + + var _initializeObject = function(type, obj) { + $.extend(obj, _implementations[type]); + }; + $ax.initializeObject = _initializeObject; + + var _model = $ax.model = {}; + + _model.idsInRdo = function(rdoId, scriptIds) { + var rdoScriptId = $ax.repeater.getScriptIdFromElementId(rdoId); + var path = $ax.getPathFromScriptId(rdoScriptId); + var rdoRepeater = $ax.getParentRepeaterFromScriptId(rdoScriptId); + + if(!scriptIds) scriptIds = []; + $ax('*').each(function(obj, elementId) { + // Make sure in same rdo + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + var elementPath = $ax.getPathFromScriptId(scriptId); + // This is because last part of path is for the obj itself. + elementPath.pop(); + if(elementPath.length != path.length) return; + for(var i = 0; i < path.length; i++) if(elementPath[i] != path[i]) return; + + // If object is in a panel, the panel will be hidden, so the obj doesn't have to be. + if(obj.parentDynamicPanel) return; + + var repeater = $ax.getParentRepeaterFromScriptId(scriptId); + if(repeater != rdoRepeater) return; + + if($ax.public.fn.IsReferenceDiagramObject(obj.type)) _model.idsInRdo(scriptId, scriptIds); + else if(scriptIds.indexOf(scriptId) != -1) return; + // Kind of complicated, but returning for isContained objects, hyperlinks, tabel cell, non-root tree nodes, and images in the tree. + else if (obj.isContained || obj.type == 'hyperlink' || $ax.public.fn.IsTableCell(obj.type) || + ($ax.public.fn.IsTreeNodeObject(obj.type) && !$jobj(elementId).hasClass('treeroot')) || + ($ax.public.fn.IsImageBox(obj.type) && $ax.public.fn.IsTreeNodeObject(obj.parent.type))) return; + else scriptIds.push(scriptId); + }); + return scriptIds; + }; + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/move.js b/codes/agent/game-docker/api/document/resources/scripts/axure/move.js new file mode 100644 index 0000000..afdc350 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/move.js @@ -0,0 +1,410 @@ +$axure.internal(function($ax) { + var _move = {}; + $ax.move = _move; + + var widgetMoveInfo = {}; + var _getMoveInfo = $ax.move.RegisterMoveInfo = function (id, x, y, to, options, jobj) { + var fixedInfo = jobj ? {} : $ax.dynamicPanelManager.getFixedInfo(id); + + var widget = $jobj(id); + var query = $ax('#' + id); + var isLayer = $ax.getTypeFromElementId(id) == $ax.constants.LAYER_TYPE; + var rootLayer = _move.getRootLayer(id); + + if(rootLayer) { + $ax.visibility.pushContainer(rootLayer, false); + if(isLayer) widget = $ax.visibility.applyWidgetContainer(id, true); + } + if (!jobj) jobj = widget; + + var horzProp = 'left'; + var vertProp = 'top'; + var horzX = to ? x - query.locRelativeIgnoreLayer(false) : x; + var vertY = to ? y - query.locRelativeIgnoreLayer(true) : y; + + if (fixedInfo.horizontal == 'right') { + horzProp = 'right'; + horzX = to ? $(window).width() - x - Number(jobj.css('right').replace('px', '')) - query.width() : -x; + } else if(fixedInfo.horizontal == 'center') { + horzProp = 'margin-left'; + if (to) horzX = x - $(window).width() / 2; + } + + if (fixedInfo.vertical == 'bottom') { + vertProp = 'bottom'; + vertY = to ? $(window).height() - y - Number(jobj.css('bottom').replace('px', '')) - query.height() : -y; + } else if (fixedInfo.vertical == 'middle') { + vertProp = 'margin-top'; + if (to) vertY = y - $(window).height() / 2; + } + + //todo currently this always save the info, which is not needed for compound vector children and maybe some other cases + //let's optimize it later, only register if registerid is valid.. + widgetMoveInfo[id] = { + x: horzX, + y: vertY, + options: options + }; + + return { + horzX: horzX, + vertY: vertY, + horzProp: horzProp, + vertProp: vertProp, + rootLayer: rootLayer, + jobj: jobj + }; + }; + $ax.move.GetWidgetMoveInfo = function() { + return $.extend({}, widgetMoveInfo); + }; + + _move.getRootLayer = function (id) { + var isLayer = $ax.getTypeFromElementId(id) == $ax.constants.LAYER_TYPE; + var rootLayer = isLayer ? id : ''; + + var parentIds = $ax('#' + id).getParents(true, '*')[0]; + for(var i = 0; i < parentIds.length; i++) { + var parentId = parentIds[i]; + // Keep climbing up layers until you hit a non-layer. At that point you have your root layer + if($ax.public.fn.IsLayer($ax.getTypeFromElementId(parentId))) rootLayer = parentId; + else break; + } + + return rootLayer; + }; + + $ax.move.MoveWidget = function (id, x, y, options, to, animationCompleteCallback, shouldFire, jobj, moveInfo) { + $ax.drag.LogMovedWidgetForDrag(id, options.dragInfo); + + if(!moveInfo) moveInfo = _getMoveInfo(id, x, y, to, options, jobj); + + jobj = moveInfo.jobj; + + _moveElement(id, options, animationCompleteCallback, shouldFire, jobj, moveInfo); + + $ax.event.raiseSyntheticEvent(id, "onMove"); + var object = $obj(id); + if(object && $ax.public.fn.IsLayer(object.type)) { + var childrenIds = $ax.public.fn.getLayerChildrenDeep(id, true); + for(var i = 0; i < childrenIds.length; i++) $ax.event.raiseSyntheticEvent(childrenIds[i], 'onMove'); + } + }; + + var _moveElement = function (id, options, animationCompleteCallback, shouldFire, jobj, moveInfo){ + var cssStyles = {}; + + if(!$ax.dynamicPanelManager.isPercentWidthPanel($obj(id))) cssStyles[moveInfo.horzProp] = '+=' + moveInfo.horzX; + cssStyles[moveInfo.vertProp] = '+=' + moveInfo.vertY; + + // I don't think root layer is necessary anymore after changes to layer container structure. + // Wait to try removing it until more stable. + var rootLayer = moveInfo.rootLayer; + + var query = $addAll(jobj, id); + if(options.easing == 'none') { + query.animate(cssStyles, { duration: 0, queue: false }); + + if(animationCompleteCallback) animationCompleteCallback(); + if(rootLayer) $ax.visibility.popContainer(rootLayer, false); + //if this widget is inside a layer, we should just remove the layer from the queue + if(shouldFire) $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); + } else { + var completeCount = query.length; + query.animate(cssStyles, { + duration: options.duration, easing: options.easing, queue: false, complete: function () { + if (animationCompleteCallback) animationCompleteCallback(); + completeCount--; + if(completeCount == 0 && rootLayer) $ax.visibility.popContainer(rootLayer, false); + if(shouldFire) $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); + }}); + } + + // //moveinfo is used for moving 'with this' + // var moveInfo = new Object(); + // moveInfo.x = horzX; + // moveInfo.y = vertY; + // moveInfo.options = options; + // widgetMoveInfo[id] = moveInfo; + + + }; + + _move.nopMove = function(id) { + var moveInfo = new Object(); + moveInfo.x = 0; + moveInfo.y = 0; + moveInfo.options = {}; + moveInfo.options.easing = 'none'; + moveInfo.options.duration = 0; + widgetMoveInfo[id] = moveInfo; + $ax.event.raiseSyntheticEvent(id, "onMove"); + }; + + //rotationDegree: total degree to rotate + //centerPoint: the center of the circular path + + + var _noRotateOnlyMove = function (id, moveDelta, rotatableMove, fireAnimationQueue, easing, duration, completionCallback) { + moveDelta.x += rotatableMove.x; + moveDelta.y += rotatableMove.y; + if (moveDelta.x == 0 && moveDelta.y == 0) { + if(fireAnimationQueue) { + $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.rotate); + $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); + } + } else { + $jobj(id).animate({ top: '+=' + moveDelta.y, left: '+=' + moveDelta.x }, { + duration: duration, + easing: easing, + queue: false, + complete: function () { + if(fireAnimationQueue) { + $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); + $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.rotate); + } + if (completionCallback) completionCallback(); + } + }); + } + } + + + _move.circularMove = function (id, degreeDelta, centerPoint, moveDelta, rotatableMove, resizeOffset, options, fireAnimationQueue, completionCallback) { + var elem = $jobj(id); + var moveInfo = $ax.move.RegisterMoveInfo(id, moveDelta.x, moveDelta.y, false, options); + // If not rotating, still need to check moveDelta and may need to handle that. + if (degreeDelta === 0) { + _noRotateOnlyMove(id, moveDelta, rotatableMove, fireAnimationQueue, options.easing, options.duration, completionCallback); + return; + } + + var stepFunc = function(newDegree) { + var deg = newDegree - rotation.degree; + var widgetCenter = $ax.public.fn.getWidgetBoundingRect(id).centerPoint; + //console.log("widget center of " + id + " x " + widgetCenter.x + " y " + widgetCenter.y); + var widgetNewCenter = $axure.fn.getPointAfterRotate(deg, widgetCenter, centerPoint); + + // Start by getting the move not related to rotation, and make sure to update center point to move with it. + var ratio = deg / degreeDelta; + + var xdelta = (moveDelta.x + rotatableMove.x) * ratio; + var ydelta = (moveDelta.y + rotatableMove.y) * ratio; + if(resizeOffset) { + var resizeShift = {}; + resizeShift.x = resizeOffset.x * ratio; + resizeShift.y = resizeOffset.y * ratio; + $axure.fn.getPointAfterRotate(rotation.degree, resizeShift, { x: 0, y: 0 }); + xdelta += resizeShift.x; + ydelta += resizeShift.y; + } + centerPoint.x += xdelta; + centerPoint.y += ydelta; + + // Now for the move that is rotatable, it must be rotated + rotatableMove = $axure.fn.getPointAfterRotate(deg, rotatableMove, { x: 0, y: 0 }); + + // Now add in circular move to the mix. + xdelta += widgetNewCenter.x - widgetCenter.x; + ydelta += widgetNewCenter.y - widgetCenter.y; + + if(xdelta < 0) elem.css('left', '-=' + -xdelta); + else if(xdelta > 0) elem.css('left', '+=' + xdelta); + + if(ydelta < 0) elem.css('top', '-=' + -ydelta); + else if(ydelta > 0) elem.css('top', '+=' + ydelta); + }; + + var onComplete = function() { + if(fireAnimationQueue) $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.move); + if(completionCallback) completionCallback(); + if(moveInfo.rootLayer) $ax.visibility.popContainer(moveInfo.rootLayer, false); + }; + + var rotation = { degree: 0 }; + + if(!options.easing || options.easing === 'none' || options.duration <= 0) { + stepFunc(degreeDelta); + onComplete(); + } else { + $(rotation).animate({ degree: degreeDelta }, { + duration: options.duration, + easing: options.easing, + queue: false, + step: stepFunc, + complete: onComplete + }); + } + }; + + //rotate a widget by degree, center is 50% 50% + _move.rotate = function (id, degree, easing, duration, to, shouldFire, completionCallback) { + var currentDegree = _getRotationDegree(id); + if(to) degree = degree - currentDegree; + + if(degree === 0) { + if (shouldFire) $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.rotate); + return; + } + + var query = $jobj(id).add($jobj(id + '_ann')).add($jobj(id + '_ref')); + + var stepFunc = function(now) { + var degreeDelta = now - rotation.degree; + var newDegree = currentDegree + degreeDelta; + query.css($ax.public.fn.setTransformHowever("rotate(" + newDegree + "deg)")); + currentDegree = newDegree; + }; + + var onComplete = function() { + if(shouldFire) { + $ax.action.fireAnimationFromQueue($ax.public.fn.compoundIdFromComponent(id), $ax.action.queueTypes.rotate); + } + if(completionCallback) completionCallback(); + }; + + var rotation = { degree: 0 }; + + + //if no animation, setting duration to 1, to prevent RangeError in rotation loops without animation + if(!easing || easing === 'none' || duration <= 0) { + stepFunc(degree); + onComplete(); + } else { + $(rotation).animate({ degree: degree }, { + duration: duration, + easing: easing, + queue: false, + step: stepFunc, + complete: onComplete + + }); + } + }; + + _move.compoundRotateAround = function (id, degreeDelta, centerPoint, moveDelta, rotatableMove, resizeOffset, easing, duration, fireAnimationQueue, completionCallback) { + if (degreeDelta === 0) { + _noRotateOnlyMove($ax.public.fn.compoundIdFromComponent(id), moveDelta, rotatableMove, fireAnimationQueue, easing, duration, completionCallback, $ax.action.queueTypes.rotate); + return; + } + var elem = $jobj(id); + var rotation = { degree: 0 }; + + if (!easing || easing === 'none' || duration <= 0) { + duration = 1; + easing = 'linear'; //it doesn't matter anymore here... + } + + var originalWidth = Number(elem.css('width').replace('px', '')); + var originalHeight = Number(elem.css('height').replace('px', '')); + var originalLeft = Number(elem.css('left').replace('px', '')); + var originalTop = Number(elem.css('top').replace('px', '')); + + $(rotation).animate({ degree: degreeDelta }, { + duration: duration, + easing: easing, + queue: false, + step: function (newDegree) { + var transform = $ax.public.fn.transformFromElement(elem[0]); + var originalCenter = { x: originalLeft + 0.5 * originalWidth, y: originalTop + 0.5 * originalHeight}; + var componentCenter = { x: originalCenter.x + transform[4], y: originalCenter.y + transform[5] }; + var deg = newDegree - rotation.degree; + var ratio = deg / degreeDelta; + var xdelta = (moveDelta.x + rotatableMove.x) * ratio; + var ydelta = (moveDelta.y + rotatableMove.y) * ratio; + if (resizeOffset) { + var resizeShift = {}; + resizeShift.x = resizeOffset.x * ratio; + resizeShift.y = resizeOffset.y * ratio; + $axure.fn.getPointAfterRotate(rotation.degree, resizeShift, { x: 0, y: 0 }); + xdelta += resizeShift.x; + ydelta += resizeShift.y; + } + + var rotationMatrix = $ax.public.fn.rotationMatrix(deg); + var compositionTransform = $ax.public.fn.matrixMultiplyMatrix(rotationMatrix, + { m11: transform[0], m21: transform[1], m12: transform[2], m22: transform[3] }); + + //console.log("widget center of " + id + " x " + widgetCenter.x + " y " + widgetCenter.y); + var widgetNewCenter = $axure.fn.getPointAfterRotate(deg, componentCenter, centerPoint); + var newMatrix = $ax.public.fn.matrixString(compositionTransform.m11, compositionTransform.m21, compositionTransform.m12, compositionTransform.m22, + widgetNewCenter.x - originalCenter.x + xdelta, widgetNewCenter.y - originalCenter.y + ydelta); + elem.css($ax.public.fn.setTransformHowever(newMatrix)); + }, + complete: function () { + if (fireAnimationQueue) { + $ax.action.fireAnimationFromQueue(elem.parent()[0].id, $ax.action.queueTypes.rotate); + } + + if(completionCallback) completionCallback(); + } + }); + }; + + var _getRotationDegree = _move.getRotationDegree = function(elementId) { + if($ax.public.fn.IsLayer($obj(elementId).type)) { + return $jobj(elementId).data('layerDegree'); + } + + var element = document.getElementById(elementId); + if(element == null) return NaN; + //var transformString = element.style.transform || + // element.style.OTransform || + // element.style.msTransform || + // element.style.MozTransform || + // element.style.webkitTransform; + + var transformString = element.style['transform'] || + element.style['-o-transform'] || + element.style['-ms-transform'] || + element.style['-moz-transform'] || + element.style['-webkit-transform']; + + if(transformString) { + var rotateRegex = /rotate\(([-?0-9]+)deg\)/; + var degreeMatch = rotateRegex.exec(transformString); + if(degreeMatch && degreeMatch[1]) return parseFloat(degreeMatch[1]); + } + + if(window.getComputedStyle) { + var st = window.getComputedStyle(element, null); + } else { + console.log('rotation is not supported for ie 8 and below in this version of axure rp'); + return 0; + } + + var tr = st.getPropertyValue("transform") || + st.getPropertyValue("-o-transform") || + st.getPropertyValue("-ms-transform") || + st.getPropertyValue("-moz-transform") || + st.getPropertyValue("-webkit-transform"); + + + if(!tr || tr === 'none') return 0; + var values = tr.split('(')[1]; + values = values.split(')')[0], + values = values.split(','); + + var a = values[0]; + var b = values[1]; + + var radians = Math.atan2(b, a); + if(radians < 0) { + radians += (2 * Math.PI); + } + + var angle = Math.round(radians * (180 / Math.PI)); + + return angle; + }; + +// var generateFilter = function(deg) { +// var rot, cos, sin, matrix; +// +// rot=deg>=0 ? Math.PI*deg/180 : Math.PI*(360+deg)/180; +// cos=Math.cos(rot); +// sin=Math.sin(rot); +// matrix='M11='+cos+',M12='+(-sin)+',M21='+sin+',M22='+cos+',SizingMethod="auto expand"'; +// return 'progid:DXImageTransform.Microsoft.Matrix('+matrix+')'; +// } +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/recording.js b/codes/agent/game-docker/api/document/resources/scripts/axure/recording.js new file mode 100644 index 0000000..f5fb140 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/recording.js @@ -0,0 +1,94 @@ +// ******* Recording MANAGER ******** // + +$axure.internal(function($ax) { + var _recording = $ax.recording = {}; + + $ax.recording.recordEvent = function(element, eventInfo, axEventObject, timeStamp) { + + var elementHtml = $jobj(element); + var className = elementHtml.attr('class'); + var inputValue; + + if(className === 'ax_checkbox') { + inputValue = elementHtml.find('#' + element + '_input')[0].checked; + eventInfo.inputType = className; + eventInfo.inputValue = inputValue; + } + + if(className === 'ax_text_field') { + inputValue = elementHtml.find('#' + element + '_input').val(); + eventInfo.inputType = className; + eventInfo.inputValue = inputValue; + } + + + var scriptId = $ax.repeater.getScriptIdFromElementId(element); + var diagramObjectPath = $ax.getPathFromScriptId(scriptId); + var form = { + recordingId: $ax.recording.recordingId, + elementID: element, + eventType: axEventObject.description, + 'eventInfo': eventInfo, + // eventObject: axEventObject, + 'timeStamp': timeStamp, + 'path': diagramObjectPath +// , +// 'trigger': function() { +// $ax.event.handleEvent(element, eventInfo, axEventObject); +// return false; +// } + }; + + $ax.messageCenter.postMessage('logEvent', form); + }; + + + $ax.recording.maybeRecordEvent = function(element, eventInfo, axEventObject, timeStamp) { + }; + + + $ax.recording.recordingId = ""; + $ax.recording.recordingName = ""; + + $ax.messageCenter.addMessageListener(function(message, data) { + if(message === 'startRecording') { + $ax.recording.maybeRecordEvent = $ax.recording.recordEvent; + $ax.recording.recordingId = data.recordingId; + $ax.recording.recordingName = data.recordingName; + } else if(message === 'stopRecording') { + $ax.recording.maybeRecordEvent = function(element, eventInfo, axEventObject, timeStamp) { + }; + + } + else if(message === 'playEvent') { + + var eventType = makeFirstLetterLower(data.eventType); + var inputElement; + + var dObj = data.element === '' ? $ax.pageData.page : $ax.getObjectFromElementId(data.element); + if(!data.axEventObject) { + data.axEventObject = dObj && dObj.interactionMap && dObj.interactionMap[eventType]; + } + + data.eventInfo.thiswidget = $ax.getWidgetInfo(data.element); + data.eventInfo.item = $ax.getItemInfo(data.element); + + if(data.eventInfo.inputType && data.eventInfo.inputType === 'ax_checkbox') { + inputElement = $jobj(data.element + '_input'); + inputElement[0].checked = data.eventInfo.inputValue; + } + + if(data.eventInfo.inputType && data.eventInfo.inputType === 'ax_text_field') { + inputElement = $jobj(data.element + '_input'); + inputElement.val(data.eventInfo.inputValue); + } + + $ax.event.handleEvent(data.element, data.eventInfo, data.axEventObject, false, true); + } + }); + + var makeFirstLetterLower = function(eventName) { + return eventName.substr(0, 1).toLowerCase() + eventName.substr(1); + }; + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/repeater.js b/codes/agent/game-docker/api/document/resources/scripts/axure/repeater.js new file mode 100644 index 0000000..f107f80 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/repeater.js @@ -0,0 +1,2031 @@ + +// ******* Repeater MANAGER ******** // +$axure.internal(function($ax) { + var _repeaterManager = {}; + $ax.repeater = _repeaterManager; + + //This is a mapping of current editItems + var repeaterToEditItems = {}; + //This is a mapping of current filters + var repeaterToFilters = {}; + // This is a mapping of current sorts + var repeaterToSorts = {}; + // This is a mapping of repeater page info + var repeaterToPageInfo = {}; + + //Hopefully this can be simplified, but for now I think 3 are needed. + //This is the data set that is owned by this repeater. The repeater may or may not reference this data set, and others can reference it. + var repeaterToLocalDataSet = {}; + //This is the data set referenced by the repeater. It is not a copy of the local data set, but a reference to a local data set (or eventually a global data set could be referenced). + var repeaterToCurrentDataSet = {}; + //This is a copy of the current data set, that is replaced whenever a set or refresh is done. + var repeaterToActiveDataSet = {}; + var _loadRepeaters = function() { + $ax(function(obj) { + return $ax.public.fn.IsRepeater(obj.type); + }).each(function(obj, repeaterId) { + repeaterToLocalDataSet[repeaterId] = $ax.deepCopy(obj.data); + repeaterToLocalDataSet[repeaterId].props = obj.dataProps; + repeaterToEditItems[repeaterId] = []; + + _initPageInfo(obj, repeaterId); + + _setRepeaterDataSet(repeaterId, repeaterId); + var initialItemIds = obj.repeaterPropMap.itemIds; + for (var i = 0; i < initialItemIds.length; i++) $ax.addItemIdToRepeater(initialItemIds[i], repeaterId); + $ax.visibility.initRepeater(repeaterId); + }); + }; + _repeaterManager.load = _loadRepeaters; + + var _loaded = {}; + var _initRepeaters = function() { + $ax(function(obj, repeaterId) { + return $ax.public.fn.IsRepeater(obj.type) && !_loaded[repeaterId]; + }).each(function(obj, repeaterId) { + _refreshRepeater(repeaterId, undefined, true); + // Fix selected and default if necessary + var states = obj.evaluatedStates; + for(var i = 0; i < states.length; i++) { + var state = states[i]; + + $ax.style.SetWidgetEnabled(state.id, true); // So selected will take place. If disabled, selected wouldn't happen. + $ax.style.SetWidgetSelected(state.id, state.selected); + $ax.style.SetWidgetEnabled(state.id, !state.disabled); + } + }); + }; + _repeaterManager.initRefresh = _initRepeaters; + + var repeatersHaveNewDataSet = []; + var _setRepeaterDataSet = function(repeaterId, dataSetId) { + //TODO: No idea about how global data sets will be handled... + repeaterToCurrentDataSet[repeaterId] = repeaterToLocalDataSet[dataSetId]; + repeaterToActiveDataSet[repeaterId] = getActiveDataSet(repeaterId); + repeaterToFilters[repeaterId] = []; + repeaterToSorts[repeaterId] = []; + + + // Not using this currently + // if(repeatersHaveNewDataSet.indexOf(repeaterId) == -1) repeatersHaveNewDataSet[repeatersHaveNewDataSet.length] = repeaterId; + }; + _repeaterManager.setDataSet = _setRepeaterDataSet; + + var _refreshRepeater = function(repeaterId, eventInfo, itemsPregen) { + // Don't show if you have a parent rdos thats limboed. + var rdoPath = $ax.getPathFromScriptId(repeaterId); + // Check each parent rdo through appropriate views to see if you are limboed + while (rdoPath.length > 0) { + if(!$ax.getScriptIdFromPath(rdoPath)) { + removeItems(repeaterId); + return; + } + + $ax.splice(rdoPath, rdoPath.length - 1, 1); + } + + _loaded[repeaterId] = true; + $ax.action.refreshStart(repeaterId); + $ax.style.ClearCacheForRepeater(repeaterId); + + if($ax.visibility.limboIds[repeaterId]) { + removeItems(repeaterId); + $ax.dynamicPanelManager.fitParentPanel(repeaterId); + return; + } + + // Remove delete map if there is one at this point + if(eventInfo && eventInfo.repeaterDeleteMap) delete eventInfo.repeaterDeleteMap[repeaterId]; + var path = $ax.getPathFromScriptId(repeaterId); + path.pop(); + + if(eventInfo) { + eventInfo = $ax.eventCopy(eventInfo); + } + + var obj = $ax.getObjectFromScriptId(repeaterId); + var propMap = obj.repeaterPropMap; + + //If there is no wrap, then set it to be above the number of rows + var viewId = $ax.adaptive.currentViewId || ''; + var wrap = _getAdaptiveProp(propMap, 'wrap', viewId); + var vertical = _getAdaptiveProp(propMap, 'vertical', viewId); + var offset = propMap[viewId]; + + // Right now pregen only works for default adaptive view + if(viewId) itemsPregen = false; + var orderedIds = []; + if(itemsPregen) { + var repeaterChildren = $jobj(repeaterId).children(); + // Start at 1 to skip script div child + for(var i = 1; i < repeaterChildren.length; i++) { + orderedIds.push(_getItemIdFromElementId($(repeaterChildren[i]).attr('id'))); + } + } else orderedIds = getOrderedIds(repeaterId, eventInfo); + var ids = []; + var background = _getAdaptiveProp(propMap, 'backColor', viewId); + var hasAltColor = _getAdaptiveProp(propMap, 'hasAltColor', viewId); + var altColor = hasAltColor ? _getAdaptiveProp(propMap, 'altColor', viewId) : undefined; + var useAlt = false; + + if(itemsPregen) { + var start = 0; + var end = orderedIds.length; + } else { + var bounds = _getVisibleDataBounds(repeaterToPageInfo[repeaterId], itemsPregen ? obj.data.length : orderedIds.length); + start = bounds[0]; + end = bounds[1]; + } + + var preevalMap = {}; + if(itemsPregen) { + var templateIds = [repeaterId]; + var processScriptIds = function (full, prop, id) { + if(id.indexOf('_') <= 0 && id.indexOf('p') == -1) templateIds.push('u' + id); + }; + $('#' + repeaterId + '_script').html().replace(/(id|for)="?u([0-9]+(p([0-9]){3})?(_[_a-z0-9]*)?)"?/g, processScriptIds); + for(var i = 0; i < templateIds.length; i++) { + for(var j = 0; j < orderedIds.length; j++) { + ids.push(_createElementId(templateIds[i], orderedIds[j])); + } + } + + for(var pos = start; pos < end; pos++) { + var itemId = orderedIds[pos]; + itemElementId = _createElementId(repeaterId, itemId); + var jobj = $jobj(itemElementId); + var preeval = jobj.hasClass('preeval'); + for(var i = 0; i < templateIds.length; i++) $ax.initializeObjectEvents($ax('#' + _createElementId(templateIds[i], itemId)), !preeval); + if(preeval) { + preevalMap[itemId] = true; + jobj.removeClass('preeval'); + } + } + } else { + var html = $('#' + repeaterId + '_script').html(); + // var container = $('
    '); + // container.html(html); + // container.attr('id', '' + repeaterId + '_container'); + // container.css({ position: 'absolute' }); + // container.offset({ left: -obj.x, top: -obj.y }); + + var div = $('
    '); + div.html(html); + div.find('.' + $ax.visibility.HIDDEN_CLASS).removeClass($ax.visibility.HIDDEN_CLASS); + div.find('.' + $ax.visibility.UNPLACED_CLASS).removeClass($ax.visibility.UNPLACED_CLASS); + + var paddingTop = _getAdaptiveProp(propMap, 'paddingTop', viewId); + var paddingLeft = _getAdaptiveProp(propMap, 'paddingLeft', viewId); + var paddingY = paddingTop + _getAdaptiveProp(propMap, 'paddingBottom', viewId); + var paddingX = paddingLeft + _getAdaptiveProp(propMap, 'paddingRight', viewId); + + var spacingX = _getAdaptiveProp(propMap, 'horizontalSpacing', viewId); + var xOffset = offset.width + spacingX; + var spacingY = _getAdaptiveProp(propMap, 'verticalSpacing', viewId); + var yOffset = offset.height + spacingY; + div.css({ + width: offset.width, + height: offset.height + }); + + _applyColorCss(background, div); + var altDiv = div; + if(hasAltColor) altDiv = _applyColorCss(altColor, div.clone()); + + // Hide repeater, if shown, while updating. + var shown = $ax.visibility.IsIdVisible(repeaterId); + if(shown) document.getElementById(repeaterId).style.visibility = 'hidden'; + + + var resized = $ax.getItemIdsForRepeater(repeaterId).length != (end - start) || + (repeaterSizes[repeaterId] && repeaterSizes[repeaterId].resized); + + //clean up old items as late as possible + removeItems(repeaterId); + resetItemSizes(repeaterId, offset, bounds, orderedIds, vertical, wrap); + + var i = 0; + var top = paddingTop; + var left = paddingLeft; + for(pos = start; pos < end; pos++) { + itemId = orderedIds[pos]; + + var itemElementId = _createElementId(repeaterId, itemId); + $ax.addItemIdToRepeater(itemId, repeaterId); + + ids.push(itemElementId); + var processId = function(full, prop, id) { + var elementId = _createElementId('u' + id, itemId); + //If there is a suffix (ex. _img), then don't push the id. + if (id.indexOf('_') <= 0 && id.indexOf('p') == -1) ids.push(elementId); + return prop + '="' + elementId + '"'; + }; + + var copy = (useAlt ? altDiv : div).clone(); + useAlt = !useAlt; + copy.attr('id', itemElementId); + copy.html(div.html().replace(/(id|for)="?u([0-9]+(p([0-9]){3})?(_[_a-z0-9]*)?)"?/g, processId)); + + copy.css({ + 'position': 'absolute', + 'top': top + 'px', + 'left': left + 'px', + 'width': obj.width + 'px', + 'height': obj.height + 'px' + }); + $('#' + repeaterId).append(copy); + + i++; + if(wrap != -1 && i % wrap == 0) { + if(vertical) { + top = paddingTop; + left += xOffset; + } else { + left = paddingLeft; + top += yOffset; + } + } else if (vertical) top += yOffset; + else left += xOffset; + } + + var shownCount = end - start; + var repeaterSize = { width: paddingX, height: paddingY}; + if(shownCount > 0) { + var primaryCount = wrap == -1 ? shownCount : Math.min(shownCount, wrap); + var secondaryCount = wrap == -1 ? 1 : Math.ceil(shownCount / wrap); + + var widthCount = vertical ? secondaryCount : primaryCount; + var heightCount = vertical ? primaryCount : secondaryCount; + repeaterSize.width += offset.width + (widthCount - 1) * xOffset; + repeaterSize.height += offset.height + (heightCount - 1) * yOffset; + } + var borderWidth = $ax.getNumFromPx($jobj(repeaterId).css('border-width')) || 0; + repeaterSize.width += borderWidth * 2; + repeaterSize.height += borderWidth * 2; + $jobj(repeaterId).css(repeaterSize); + + for(var i = 0; i < ids.length; i++) $ax.initializeObjectEvents($ax('#' + ids[i]), true); + } + + var query = _getItemQuery(repeaterId); + if(viewId) $ax.adaptive.applyView(viewId, query); + else $ax.visibility.resetLimboAndHiddenToDefaults(_getItemQuery(repeaterId, preevalMap)); +// else { +// var limbo = {}; +// var hidden = {}; +// query.each(function(diagramObject, elementId) { +// // sigh, javascript. we need the === here because undefined means not overriden +//// var visible = diagramObject.style.visible; +// var visible = $ax.visibility.IsIdVisible(elementId); +// if (visible === false) hidden[elementId] = true; +// //todo: **mas** check if the limboed widgets are hidden by default by the generator +// if(diagramObject.style.limbo) limbo[elementId] = true; +// }); +// $ax.visibility.addLimboAndHiddenIds(limbo, hidden, query); +// $ax.dynamicPanelManager.updatePercentPanelCache(query); +// } + $ax.annotation.InitializeAnnotations(query); + + for(var index = 0; index < ids.length; index++) { + var id = ids[index]; + var childObj = $obj(id); + var childJobj = $jobj(id); + var childItemId = _getItemIdFromElementId(id); + if (obj.repeaterPropMap.isolateRadio && $ax.public.fn.IsRadioButton(childObj.type)) { + var input = $jobj(_applySuffixToElementId(id, '_input')); + input.attr('name', _createElementId(input.attr('name'), childItemId)); + if($ax.ieColorManager) $ax.ieColorManager.applyBackground($ax('#' + id)); + } + if(obj.repeaterPropMap.isolateSelection && childJobj.attr('selectiongroup')) { + childJobj.attr('selectiongroup', _createElementId(childJobj.attr('selectiongroup'), childItemId)); + } + // Had to move this earlier, because it sets up cursor: pointer on inline links, + // but must be done before style cached when adaptive view is set. + //$ax.initializeObjectEvents($ax('#' + id)); + $ax.dynamicPanelManager.initFitPanels($ax('#' + id)); + $ax.style.initializeObjectTextAlignment($ax('#' + id)); + $ax.applyHighlight($ax('#' + id), true); + } + + //$ax.event.raiseSyntheticEvent(itemElementId, 'onLoad', true); + //$ax.loadDynamicPanelsAndMasters(obj.objects, path, itemId); + + // Now load + for(pos = start; pos < end; pos++) { + itemId = orderedIds[pos]; + itemElementId = _createElementId(repeaterId, itemId); + if(!preevalMap[orderedIds[pos]]) $ax.event.raiseSyntheticEvent(itemElementId, 'onItemLoad', true); + $ax.loadDynamicPanelsAndMasters(obj.objects, path, itemId); + } + + // Reshow repeater if it was originally shown (load is complete by now) + if(shown && !itemsPregen) document.getElementById(repeaterId).style.visibility = 'visible'; + + $ax.dynamicPanelManager.fitParentPanel(repeaterId); + + // Right now we assume only one refresh at a time. If we can manually trigger refreshes, that may possibly change. + $ax.action.refreshEnd(); + }; + _repeaterManager.refreshRepeater = _refreshRepeater; + + var _getItemQuery = function(repeaterId, preevalMap) { + var query = $ax(function (diagramObject, elementId) { + // Also need to check that this in not preeval + if(preevalMap) { + var itemId = _getItemIdFromElementId(elementId); + if(preevalMap[itemId]) return false; + } + + // All objects with the repeater as their parent, except the repeater itself. + var scriptId = _getScriptIdFromElementId(elementId); + return $ax.getParentRepeaterFromScriptId(scriptId) == repeaterId && scriptId != repeaterId; + }); + + return query; + } + + _repeaterManager.refreshAllRepeaters = function() { + $ax('*').each(function(diagramObject, elementId) { + if (!$ax.public.fn.IsRepeater(diagramObject.type)) return; + + _initPageInfo(diagramObject, elementId); + _refreshRepeater(elementId, $ax.getEventInfoFromEvent($ax.getjBrowserEvent())); + }); + }; + + _repeaterManager.refreshRepeaters = function(ids, eventInfo) { + for(var i = 0; i < ids.length; i++) _refreshRepeater(ids[i], eventInfo); + }; + + var _initPageInfo = function(obj, elementId) { + var pageInfo = {}; + var map = obj.repeaterPropMap; + + var currentViewId = $ax.adaptive.currentViewId || ''; + var itemsPerPage = _getAdaptiveProp(map, 'itemsPerPage', currentViewId); + if(itemsPerPage == -1) pageInfo.noLimit = true; + else { + pageInfo.itemsPerPage = itemsPerPage; + pageInfo.currPage = _getAdaptiveProp(map, 'currPage', currentViewId); + } + repeaterToPageInfo[elementId] = pageInfo; + }; + + _repeaterManager.initialize = function() { + $ax(function (obj) { + return $ax.public.fn.IsRepeater(obj.type); + }).each(function (obj, repeaterId) { + _initPregen(repeaterId); + }); + } + + var _initPregen = function(repeaterId) { + var obj = $ax.getObjectFromScriptId(repeaterId); + var propMap = obj.repeaterPropMap; + + //If there is no wrap, then set it to be above the number of rows + var viewId = $ax.adaptive.currentViewId || ''; + var wrap = _getAdaptiveProp(propMap, 'wrap', viewId); + var vertical = _getAdaptiveProp(propMap, 'vertical', viewId); + + var orderedIds = []; + var ids = []; + var background = _getAdaptiveProp(propMap, 'backColor', viewId); + var hasAltColor = _getAdaptiveProp(propMap, 'hasAltColor', viewId); + var altColor = hasAltColor ? _getAdaptiveProp(propMap, 'altColor', viewId) : undefined; + var useAlt = false; + + var bounds = _getVisibleDataBounds(repeaterToPageInfo[repeaterId], obj.data.length); + var start = bounds[0]; + var end = bounds[1]; + + // Starts empty + if(start == end) { + $ax.action.refreshEnd(repeaterId); + return; + } + var unprocessedBaseIds = $jobj($ax.repeater.createElementId(repeaterId, start + 1)).html().match(/(id|for)="?u([0-9]+)/g); + var baseIds = []; + if(unprocessedBaseIds) { + for(var i = 0; i < unprocessedBaseIds.length; i++) { + var val = unprocessedBaseIds[i].split('=')[1].substr(1); + if(baseIds.indexOf(val) == -1) baseIds.push(val); + } + } + + for(var itemNum = start; itemNum < end; itemNum++) { + ids.push($ax.repeater.createElementId(repeaterId, itemNum + 1)); + for(i = 0; i < baseIds.length; i++) ids.push($ax.repeater.createElementId(baseIds[i], itemNum + 1)); + var itemId = itemNum + 1; + orderedIds[itemNum] = itemId; + + var itemDiv = $jobj($ax.repeater.createElementId(repeaterId, itemNum + 1)); + _applyColorCss(useAlt ? altColor : background, itemDiv); + if(hasAltColor) useAlt = !useAlt; + } + + resetItemSizes(repeaterId, undefined, bounds, orderedIds, vertical, wrap); + }; + + var _applyColorCss = function(json, div) { + var args = json.r + ', ' + json.g + ', ' + json.b; + var background = json.a == 0 ? '' : json.a == 1 ? 'rgb(' + args + ')' : 'rgba(' + args + ', ' + json.a + ')'; + if($ax.ieColorManager && json.a != 0 && json.a != 1) { + var ieColor = $ax.ieColorManager.getColorFromArgb(json.a * 255, json.r, json.g, json.b, true); + if(ieColor) background = ieColor; + } + div.css('background-color', background); + return div; + }; + + var _getAdaptiveProp = _repeaterManager.getAdaptiveProp = function(map, prop, viewId) { + var viewChain = $ax.adaptive.getAdaptiveIdChain(viewId); + for(var i = viewChain.length - 1; i >= 0; i--) { + viewId = viewChain[i]; + var viewProps = map[viewId]; + if(viewProps.hasOwnProperty(prop)) return viewProps[prop]; + } + + var base = map['']; + if(base.hasOwnProperty(prop)) return base[prop]; + return map['default'][prop]; + }; + + _repeaterManager.getItemCount = function(repeaterId) { + var data = repeaterToActiveDataSet[repeaterId].length; + var info = repeaterToPageInfo[repeaterId]; + if(!info.noLimit) { + var start = Math.min(data, info.itemsPerPage * info.currPage); + var end = Math.min(data, start + info.itemsPerPage); + data = end - start; + } + return data; + }; + + _repeaterManager.setDisplayProps = function(obj, repeaterId, itemIndex) { + var data = repeaterToActiveDataSet[repeaterId]; + var info = repeaterToPageInfo[repeaterId]; + var start = 0; + var end = data.length; + if(!info.noLimit) { + start = Math.min(end, info.itemsPerPage * (info.currPage - 1)); + end = Math.min(end, start + info.itemsPerPage); + } + var count = end - start; + var index = -1; + for(var i = 0; i < count; i++) { + if(data[start + i].index == itemIndex) index = i + 1; + } + if(index == -1) return; + obj.index = index; + obj.isfirst = index == 1; + obj.islast = index == end - start; + obj.iseven = index % 2 == 0; + obj.isodd = index % 2 == 1; + }; + + var _getVisibleDataBounds = function(pageInfo, count) { + var retval = [0, count]; + if(!pageInfo.noLimit) { + var end = pageInfo.itemsPerPage * pageInfo.currPage; + var start = end - pageInfo.itemsPerPage; + + // If past the end, move to last page + if(start >= count) { + pageInfo.currPage = Math.floor((count - 1) / pageInfo.itemsPerPage) + 1; + if(pageInfo.currPage <= 0) pageInfo.currPage = 1; + + end = pageInfo.itemsPerPage * pageInfo.currPage; + start = end - pageInfo.itemsPerPage; + } + end = Math.min(end, count); + retval[0] = start; + retval[1] = end; + } + return retval; + }; + + _repeaterManager.getVisibleDataCount = function(repeaterId) { + var bounds = _getVisibleDataBounds(repeaterToPageInfo[repeaterId], repeaterToActiveDataSet[repeaterId].length); + return bounds[1] - bounds[0]; + }; + + _repeaterManager.getDataCount = function(repeaterId) { + return repeaterToCurrentDataSet[repeaterId].length; + }; + + var _getFilteredDataCount = _repeaterManager.getFilteredDataCount = function(repeaterId) { + return repeaterToActiveDataSet[repeaterId].length; + }; + + _repeaterManager.getPageCount = function(repeaterId) { + var info = repeaterToPageInfo[repeaterId]; + return info.noLimit ? 1 : Math.ceil(_getFilteredDataCount(repeaterId) / info.itemsPerPage); + }; + + _repeaterManager.getPageIndex = function(repeaterId) { + var info = repeaterToPageInfo[repeaterId]; + return info.noLimit ? 1 : info.currPage; + }; + + var getActiveDataSet = function(repeaterId) { + var active = $ax.deepCopy(repeaterToCurrentDataSet[repeaterId]); + // Set up 1 indexing each item. + for(var i = 0; i < active.length; i++) active[i].index = i + 1; + return active; + }; + + var getOrderedIds = function(repeaterId, eventInfo) { + var data = repeaterToActiveDataSet[repeaterId] = getActiveDataSet(repeaterId); + + // Filter first so less to sort + applyFilter(repeaterId, data, eventInfo); + + // Sort next + var sorts = repeaterToSorts[repeaterId] || []; + if(sorts.length != 0 && data.length > 1) { + // TODO: Make this generic and factor out if we want to use it elsewhere... + // Compare is a function that takes 2 arguments, and returns a number. A high number means the second should go first + // Otherwise the first stays first. + var mergesort = function(list, start, end, compare) { + var middle = Math.floor((start + end) / 2); + if(middle - start > 1) mergesort(list, start, middle, compare); + if(end - middle > 1) mergesort(list, middle, end, compare); + var index1 = start; + var index2 = middle; + var tempList = []; + while(index1 < middle && index2 < end) { + tempList[tempList.length] = list[compare(list[index1], list[index2]) > 0 ? index2++ : index1++]; + } + while(index1 < middle) tempList[tempList.length] = list[index1++]; + while(index2 < end) tempList[tempList.length] = list[index2++]; + + // transfer from temp list to the real list. + for(var i = 0; i < tempList.length; i++) list[start + i] = tempList[i]; + }; + // Compare is the tie breaking function to us if necessary. + var getComparator = function(columnName, ascending, type, compare) { + // If this needs to be sped up, break up into several smaller functions conditioned off of type + return function(row1, row2) { + // If column undefined, no way to measure this, so call it a tie. + if(row1[columnName] === undefined || row2[columnName] === undefined) return 0; + + var text1 = row1[columnName].text; + var text2 = row2[columnName].text; + + // This means we are case insensitive, so lowercase everything to kill casing + if(type == 'Text') { + text1 = text1.toLowerCase(); + text2 = text2.toLowerCase(); + } + + //If tied, go to tie breaker + if(text1 == text2) { + if(compare) return compare(row1, row2); + // Actually a tie. + return 0; + } + if(type == 'Text' || type == 'Text (Case Sensitive)') { + if(text1 < text2 ^ ascending) return 1; + else return -1; + } else if(type == 'Number') { + var num1 = Number(text1); + var num2 = Number(text2); + + if(isNaN(num1) && isNaN(num2)) return 0; + if(isNaN(num1) || isNaN(num2)) return isNaN(num1) ? 1 : -1; + if(num1 < num2 ^ ascending) return 1; + else return -1; + } else if(type == 'Date - YYYY-MM-DD' || type == 'Date - MM/DD/YYYY') { + var func = type == 'Date - YYYY-MM-DD' ? getDate1 : getDate2; + var date1 = func(text1); + var date2 = func(text2); + if(!date1.valid && !date2.valid) return 0; + if(!date1.valid || !date2.valid) return date1.valid ? -1 : 1; + var diff = date2.year - date1.year; + if(diff == 0) diff = date2.month - date1.month; + if(diff == 0) diff = date2.day - date1.day; + if(diff == 0) return 0; + return diff > 0 ^ ascending ? 1 : -1; + } + console.log('unhandled sort type'); + return 0; + }; + }; + var compareFunc = null; + for(var i = 0; i < sorts.length; i++) compareFunc = getComparator(sorts[i].columnName, sorts[i].ascending, sorts[i].sortType, compareFunc); + + mergesort(data, 0, data.length, compareFunc); + } + + var ids = []; + for(i = 0; i < data.length; i++) ids[i] = data[i].index; + + return ids; + }; + + var getDate1 = function(text) { + var date = { valid: false }; + var sections = text.split('-'); + if(sections.length == 1) sections = text.split('/'); + if(sections.length != 3) return date; + date.year = Number(sections[0]); + date.month = Number(sections[1]); + date.day = Number(sections[2]); + date.valid = !isNaN(date.year); + date.valid &= !isNaN(date.month) && date.month > 0 && date.month <= 12; + date.valid &= !isNaN(date.day) && date.day > 0 && date.day <= daysPerMonth(date.month, date.year); + return date; + }; + + var getDate2 = function(text) { + var date = { valid: false }; + var sections = text.split('-'); + if(sections.length == 1) sections = text.split('/'); + if(sections.length != 3) return date; + date.month = Number(sections[0]); + date.day = Number(sections[1]); + date.year = Number(sections[2]); + date.valid = !isNaN(date.year); + date.valid &= !isNaN(date.month) && date.month > 0 && date.month <= 12; + date.valid &= !isNaN(date.day) && date.day > 0 && date.day <= daysPerMonth(date.month, date.year); + return date; + }; + + var daysPerMonth = function(month, year) { + if(month == 9 || month == 4 || month == 6 || month == 11) return 30; + if(month != 2) return 31; + + if(year % 4 != 0) return 28; + if(year % 100 != 0) return 29; + return year % 400 == 0 ? 29 : 28; + }; + + var applyFilter = function(repeaterId, data, eventInfo) { + var dataFiltered = []; + var filters = repeaterToFilters[repeaterId] || []; + if (filters.length != 0) { + var oldTarget = eventInfo.targetElement; + var oldSrc = eventInfo.srcElement; + var oldThis = eventInfo.thiswidget; + var oldItem = eventInfo.item; + + outer: + for(var i = 1; i <= data.length; i++) { + for(var j = 0; j < filters.length; j++) { + eventInfo.targetElement = _createElementId(repeaterId, i); + eventInfo.srcElement = filters[j].thisId; + eventInfo.thiswidget = $ax.getWidgetInfo(eventInfo.srcElement); + eventInfo.item = $ax.getItemInfo(eventInfo.srcElement); + + if($ax.expr.evaluateExpr(filters[j].filter, eventInfo) != 'true') continue outer; + } + dataFiltered[dataFiltered.length] = data[i - 1]; + } + + for(i = 0; i < dataFiltered.length; i++) data[i] = dataFiltered[i]; + while(data.length > dataFiltered.length) data.pop(); + + eventInfo.targetElement = oldTarget; + eventInfo.srcElement = oldSrc; + eventInfo.thiswidget = oldThis; + eventInfo.item = oldItem; + } + }; + + var _addFilter = function(repeaterId, removeOtherFilters, label, filter, thisId) { + if(removeOtherFilters) _removeFilter(repeaterId); + + var filterList = repeaterToFilters[repeaterId]; + if(!filterList) repeaterToFilters[repeaterId] = filterList = []; + + var filterObj = { filter: filter, thisId: thisId }; + if(label) filterObj.label = label; + filterList[filterList.length] = filterObj; + }; + _repeaterManager.addFilter = _addFilter; + + var _removeFilter = function(repeaterId, label) { + var filterList = repeaterToFilters[repeaterId]; + // If no list, nothing to remove + if(!filterList) return; + + // If no label, remove everything + if(!label) { + repeaterToFilters[repeaterId] = []; + return; + } + + for(var i = filterList.length - 1; i >= 0; i--) { + var filterObj = filterList[i]; + if(filterObj.label && filterObj.label == label) $ax.splice(filterList, i, 1); + } + }; + _repeaterManager.removeFilter = _removeFilter; + + var _addSort = function(repeaterId, label, columnName, ascending, toggle, sortType) { + var sortList = repeaterToSorts[repeaterId]; + if(!sortList) repeaterToSorts[repeaterId] = sortList = []; + + for(var i = 0; i < sortList.length; i++) { + if(columnName == sortList[i].columnName) { + var lastSortObj = $ax.splice(sortList, i, 1)[0]; + if(toggle) ascending = !lastSortObj.ascending; + break; + } + } + + var sortObj = { columnName: columnName, ascending: ascending, sortType: sortType }; + + if(label) sortObj.label = label; + sortList[sortList.length] = sortObj; + }; + _repeaterManager.addSort = _addSort; + + var _removeSort = function(repeaterId, label) { + var sortList = repeaterToSorts[repeaterId]; + // If no list, nothing to remove + if(!sortList) return; + + // If no label, remove everything + if(!label) { + repeaterToSorts[repeaterId] = []; + return; + } + + for(var i = sortList.length - 1; i >= 0; i--) { + var sortObj = sortList[i]; + if(sortObj.label && sortObj.label == label) $ax.splice(sortList, i, 1); + } + }; + _repeaterManager.removeSort = _removeSort; + + var _setRepeaterToPage = function(repeaterId, type, value, eventInfo) { + var pageInfo = repeaterToPageInfo[repeaterId]; + // page doesn't matter if there is no limit. + if(pageInfo.noLimit) return; + + var dataSet = repeaterToActiveDataSet[repeaterId]; + if(!dataSet) dataSet = repeaterToCurrentDataSet[repeaterId]; + var lastPage = Math.max(1, Math.ceil(dataSet.length / pageInfo.itemsPerPage)); + + if(type == 'Value') { + var val = Number($ax.expr.evaluateExpr(value, eventInfo)); + // if invalid, default to 1, otherwise, clamp the value + if(isNaN(val)) val = 1; + else if(val < 1) val = 1; + else if(val > lastPage) val = lastPage; + + pageInfo.currPage = val; + } else if(type == 'Previous') { + if(pageInfo.currPage > 1) pageInfo.currPage--; + } else if(type == 'Next') { + if(pageInfo.currPage < lastPage) pageInfo.currPage++; + } else if(type == 'Last') { + pageInfo.currPage = lastPage; + } else { + console.log('Unknown type'); + } + }; + _repeaterManager.setRepeaterToPage = _setRepeaterToPage; + + var _setNoItemLimit = function(repeaterId) { + var pageInfo = repeaterToPageInfo[repeaterId]; + delete pageInfo.currPage; + delete pageInfo.itemsPerPage; + pageInfo.noLimit = true; + }; + _repeaterManager.setNoItemLimit = _setNoItemLimit; + + var _setItemLimit = function(repeaterId, value, eventInfo) { + var pageInfo = repeaterToPageInfo[repeaterId]; + + if(pageInfo.noLimit) { + pageInfo.noLimit = false; + pageInfo.currPage = 1; + } + + var oldTarget = eventInfo.targetElement; + eventInfo.targetElement = repeaterId; + var itemLimit = Number($ax.expr.evaluateExpr(value, eventInfo)); + eventInfo.targetElement = oldTarget; + if(isNaN(itemLimit)) itemLimit = 20; + else if(itemLimit < 1) itemLimit = 1; + pageInfo.itemsPerPage = itemLimit; + }; + _repeaterManager.setItemLimit = _setItemLimit; + + var removeItems = function(repeaterId) { + var elementIds = $ax.getChildElementIdsForRepeater(repeaterId); + var itemId = $ax.getItemIdsForRepeater(repeaterId); + for(var i = 0; i < itemId.length; i++) $jobj(_createElementId(repeaterId, itemId[i])).remove(); + $ax.visibility.clearLimboAndHiddenIds(elementIds); + $ax.clearItemsForRepeater(repeaterId); + }; + + var repeaterSizes = {}; + var resetItemSizes = function (repeaterId, itemSize, bounds, ids, vertical, wrap) { + var calcItem = !itemSize; + if(calcItem) itemSize = {}; + + var repeaterMap = {}; + repeaterMap.vert = vertical; + var sizesMap = {}; + var sizes = []; + var currSizes = wrap == -1 ? sizes : []; + for(var i = 0; i + bounds[0] < bounds[1]; i++) { + var itemId = ids[i + bounds[0]]; + if(calcItem) { + var itemJobj = $jobj(_createElementId(repeaterId, itemId)); + itemSize.width = $ax.getNumFromPx(itemJobj.css('width')); + itemSize.height = $ax.getNumFromPx(itemJobj.css('height')); + } + + var size = { itemId: itemId, width: itemSize.width, height: itemSize.height }; + currSizes.push(size); + sizesMap[size.itemId] = size; + if(currSizes.length == wrap) { + sizes.push(currSizes); + currSizes = []; + } + } + if (wrap != -1 && currSizes.length > 0) sizes.push(currSizes); + repeaterMap.sizes = sizes; + repeaterMap.sizesMap = sizesMap; + repeaterSizes[repeaterId] = repeaterMap; + }; + + _repeaterManager.getItemSize = function(repeaterId, itemId) { + var repeaterSize = repeaterSizes[repeaterId]; + if (!repeaterSize) return false; + return repeaterSize.sizesMap[itemId]; + } + + _repeaterManager.setItemSize = function (repeaterId, itemId, width, height) { + var repeaterSize = repeaterSizes[repeaterId]; + if(!repeaterSize) return false; + var size = repeaterSize.sizesMap[itemId]; + var deltaX = width - size.width; + var deltaY = height - size.height; + if(!deltaX && !deltaY) return false; + + repeaterSize.resized = true; + + if(deltaX) _pushItems(repeaterId, itemId, deltaX, false, true); + if(deltaY) _pushItems(repeaterId, itemId, deltaY, true, true); + + if(deltaX || deltaY) $ax.event.raiseSyntheticEvent(_createElementId(repeaterId, itemId), 'onItemResize'); + + return true; + } + + var _pushItems = _repeaterManager.pushItems = function (repeaterId, itemId, delta, vertical, suppressFire) { + if(delta == 0) return; + + // Update repeater item size + var prop = vertical ? 'height' : 'width'; + var itemObj = $jobj(_createElementId(repeaterId, itemId)); + itemObj.css(prop, $ax.getNumFromPx(itemObj.css(prop)) + delta); + + var repeaterObj = $jobj(repeaterId); + var repeaterMap = repeaterSizes[repeaterId]; + var sizes = repeaterMap.sizes; + var wrap = sizes[0].length != undefined; + var vert = repeaterMap.vert; + + // Not wrapping, has to push in primary direction + if (!wrap && vert != vertical) { + var before = 0; + var after = 0; + var limit = 0; + for(var i = 0; i < sizes.length; i++) { + var size = sizes[i]; + if(size.itemId == itemId) { + before = size[prop]; + size[prop] += delta; + after = size[prop]; + } else { + limit = limit ? Math.max(limit, size[prop]) : size[prop]; + } + } + + // Repeater delta is because an item can increase secondary direction, but if another item is already larger, then repeater size isn't effected. + var repeaterDelta = delta; + if(sizes.length != 1) { + if(after >= limit) repeaterDelta = after - Math.max(limit, before); + else if(before > limit) repeaterDelta = limit - before; + else repeaterDelta = 0; + } + + _updateRepeaterSize(prop, repeaterObj, repeaterDelta); + + if(!suppressFire) $ax.event.raiseSyntheticEvent(_createElementId(repeaterId, itemId), 'onItemResize'); + return; + } + + var index = 0; + var index2 = 0; + // Get the indices first + if(wrap) { + outer: + for(; index < sizes.length; index++) { + var innerSizes = sizes[index]; + for(index2 = 0; index2 < innerSizes.length; index2++) if(innerSizes[index2].itemId == itemId) break outer; + } + } else { + for(; index < sizes.length; index++) if(sizes[index].itemId == itemId) break; + } + // Find out who is being pushed + var itemIdsEffected = []; + if (vert == vertical) { + // To check for repeater resize, non-wrap is easy, for wrap you have to see if your new size is enough to effect the size given other col/row sizes. + repeaterDelta = delta; + if(wrap && sizes.length > 1) { + var viewId = $ax.adaptive.currentViewId || ''; + var spacing = _getAdaptiveProp($obj(repeaterId).repeaterPropMap, (vert ? 'vertical' : 'horizontal') + 'Spacing', viewId); + for(i = 0; i < sizes.length; i++) { + var rowColSize = 0; + var rowCol = sizes[i]; + for(var j = 0; j < rowCol.length; j++) { + if(j != 0) rowColSize += spacing; + rowColSize += rowCol[j][prop]; + } + + if(i == index) { + before = rowColSize; + after = before + delta; + } else { + limit = limit ? Math.max(limit, rowColSize) : rowColSize; + } + } + + if(after >= limit) repeaterDelta = after - Math.max(limit, before); + else if (before > limit) repeaterDelta = limit - before; + else repeaterDelta = 0; + } + + if (repeaterDelta) { + _updateRepeaterSize(prop, repeaterObj, repeaterDelta); + } + + // Done the hard part, calculating/updating new repeater size. Now just resize items and find what to push. + var array = wrap ? sizes[index] : sizes; + i = wrap ? index2 : index; + array[i][prop] += delta; + + for(i++; i < array.length; i++) itemIdsEffected.push(array[i].itemId); + } else { + // Secondary push is more interesting. See how much your primary row/column is already pushing, if that changes + // then effect all rows/columns after it + + // Get the biggest one in the current row/column, ignoring the one we're changing + var biggest = 0; + var currSizes = sizes[index]; + for(i = 0; i < currSizes.length; i++) { + if (i == index2) continue; + + biggest = Math.max(biggest, currSizes[i][prop]); + } + + var beforeSize = Math.max(biggest, currSizes[index2][prop]); + currSizes[index2][prop] += delta; + var afterSize = Math.max(biggest, currSizes[index2][prop]); + + // Nothing pushed/pulled + if (afterSize == beforeSize) return; + + for(i = index + 1; i < sizes.length; i++) { + currSizes = sizes[i]; + for(j = 0; j < currSizes.length; j++) itemIdsEffected.push(currSizes[j].itemId); + } + + // Delta is only how much the whole row/column changed + delta = afterSize - beforeSize; + + // Repeater resize secondary is determined by the effective delta. + _updateRepeaterSize(prop, repeaterObj, delta); + } + + for(i = 0; i < itemIdsEffected.length; i++) { + var currItemId = itemIdsEffected[i]; + var elementId = _createElementId(repeaterId, currItemId); + var loc = vertical ? 'top' : 'left'; + var jobj = $jobj(elementId); + var currVal = Number(jobj.css(loc).replace('px', '')); + jobj.css(loc, currVal + delta); + } + + if(!suppressFire) $ax.event.raiseSyntheticEvent(_createElementId(repeaterId, itemId), 'onItemResize'); + } + + var _updateRepeaterSize = function(prop, jobj, delta) { + if (delta == 0) return; + var val = $ax.getNumFromPx(jobj.css(prop)) + delta; + var border = $ax.getNumFromPx(jobj.css('border-width')) || 0; + val += border * 2; + jobj.css(prop, val); + $ax.dynamicPanelManager.fitParentPanel(jobj.attr('id')); + } + + var _getDataFromDataSet = function (eventInfo, repeaterId, itemId, propName, type) { + var row = undefined; + var deleteMap = eventInfo && eventInfo.repeaterDeleteMap && eventInfo.repeaterDeleteMap[repeaterId]; + if(deleteMap) row = deleteMap.idToRow[itemId]; + + if(!row) { + var itemNum = _getRealItemId(eventInfo, repeaterId, Number(itemId)); + row = repeaterToCurrentDataSet[repeaterId][itemNum]; + } + // Default to obj with text as empty string, as we don't generate the data for empty props + var data = row[propName] || { text: '' }; + //For now text is always the default. May change this to depend on context. + return type == 'data' && data.type != 'text' ? data : (type && data[type]) || data['text']; + }; + _repeaterManager.getData = _getDataFromDataSet; + + _repeaterManager.hasData = function(id, propName) { + if(!_getItemIdFromElementId(id)) return false; + var repeaterId = $ax.getParentRepeaterFromScriptId(_getScriptIdFromElementId(id)); + return Boolean(repeaterToCurrentDataSet[repeaterId] && repeaterToCurrentDataSet[repeaterId].props.indexOf(propName) != -1); + }; + + var _getEventDeleteData = function(eventInfo, repeaterId) { + var repeaterDeleteMap = eventInfo.repeaterDeleteMap; + if(!repeaterDeleteMap) repeaterDeleteMap = eventInfo.repeaterDeleteMap = {}; + + var myDeleteMap = repeaterDeleteMap[repeaterId]; + if(!myDeleteMap) { + myDeleteMap = repeaterDeleteMap[repeaterId] = {}; + myDeleteMap.deletedIds = []; + myDeleteMap.idToRow = {}; + } + + return myDeleteMap; + }; + + var _getRealItemId = function(eventInfo, repeaterId, itemId) { + var deletedBefore = 0; + var map = eventInfo.repeaterDeleteMap && eventInfo.repeaterDeleteMap[repeaterId]; + var deletedIds = map && map.deletedIds; + if(!deletedIds) return itemId - 1; + + for(var i = 0; i < deletedIds.length; i++) if (deletedIds[i] < itemId) deletedBefore++; + return itemId - deletedBefore - 1; + } + + var _addItemToDataSet = function(repeaterId, row, itemEventInfo) { + itemEventInfo.data = true; + var oldTarget = itemEventInfo.targetElement; + itemEventInfo.targetElement = repeaterId; + var dataSet = repeaterToLocalDataSet[repeaterId]; + + for(var propName in row) { + if(!row.hasOwnProperty(propName)) continue; + var prop = row[propName]; + if(prop.type == 'literal') { + var retval = $ax.expr.evaluateExpr(prop.literal, itemEventInfo); + if(typeof (retval) == 'string' || retval instanceof Date) retval = { type: 'text', text: retval }; + row[propName] = retval; + } + } + + itemEventInfo.targetElement = oldTarget; + dataSet[dataSet.length] = row; + itemEventInfo.data = false; + }; + _repeaterManager.addItem = _addItemToDataSet; + + var _deleteItemsFromDataSet = function(repeaterId, eventInfo, type, rule) { + var dataSet = repeaterToCurrentDataSet[repeaterId]; + var deleteDataMap = _getEventDeleteData(eventInfo, repeaterId); + var items; + + // Should always be this, marked, or rule. + if(type == 'this') items = [_getItemIdFromElementId(eventInfo.srcElement)]; + else if(type == 'marked') items = $ax.deepCopy(repeaterToEditItems[repeaterId]); + else { + // This should be rule + var visibleData = repeaterToCurrentDataSet[repeaterId]; + items = []; + var oldTarget = eventInfo.targetElement; + for(var i = 0; i < visibleData.length; i++) { + var index = i + 1; + if(deleteDataMap.deletedIds.indexOf(index) != -1) continue; + + eventInfo.targetElement = _createElementId(repeaterId, index); + if($ax.expr.evaluateExpr(rule, eventInfo).toLowerCase() != 'true') continue; + items.push(index); + } + eventInfo.targetElement = oldTarget; + } + // Want them decending + items.sort(function(a, b) { return b - a; }); + var editItems = repeaterToEditItems[repeaterId]; + + for(i = 0; i < items.length; i++) { + var itemId = items[i]; + + // Don't delete already deletedItem + if(deleteDataMap.deletedIds.indexOf(itemId) != -1) continue; + + var deletedRow = $ax.splice(dataSet, _getRealItemId(eventInfo, repeaterId, itemId), 1)[0]; + deleteDataMap.deletedIds.push(itemId); + deleteDataMap.idToRow[itemId] = deletedRow; + for(var j = editItems.length - 1; j >= 0; j--) { + var editItem = editItems[j]; + if(editItem == itemId) $ax.splice(editItems, j, 1); + else if(editItem > itemId) editItems[j] = editItem - 1; + } + } + }; + _repeaterManager.deleteItems = _deleteItemsFromDataSet; + + var _updateEditItemsInDataSet = function(repeaterId, propMap, eventInfo, type, rule) { + var oldTarget = eventInfo.targetElement; + var dataSet = repeaterToCurrentDataSet[repeaterId]; + var items; + + // Should always be this, marked, or rule. + if(type == 'this') items = [_getItemIdFromElementId(eventInfo.srcElement)]; + else if(type == 'marked') items = repeaterToEditItems[repeaterId]; + else { + // This should be rule + var currData = repeaterToCurrentDataSet[repeaterId]; + items = []; + oldTarget = eventInfo.targetElement; + for(var i = 0; i < currData.length; i++) { + var index = i + 1; + eventInfo.targetElement = _createElementId(repeaterId, index); + if($ax.expr.evaluateExpr(rule, eventInfo).toLowerCase() != 'true') continue; + items.push(index); + } + eventInfo.targetElement = oldTarget; + } + + eventInfo.data = true; + for(var prop in propMap) { + if(!propMap.hasOwnProperty(prop)) continue; + for(i = 0; i < items.length; i++) { + var data = propMap[prop]; + var item = items[i]; + if(data.type == 'literal') { + eventInfo.targetElement = _createElementId(repeaterId, item); + data = $ax.expr.evaluateExpr(data.literal, eventInfo); + if(typeof (data) == 'object' && data.isWidget) data = data.text; + if(typeof (data) == 'string') data = { type: 'text', text: data }; + } + dataSet[_getRealItemId(eventInfo, repeaterId, item)][prop] = data; + } + } + eventInfo.targetElement = oldTarget; + eventInfo.data = false; + }; + _repeaterManager.updateEditItems = _updateEditItemsInDataSet; + + var _getAllItemIds = function(repeaterId) { + var retval = []; + var currDataSet = repeaterToCurrentDataSet[repeaterId]; + for(var i = 0; i < currDataSet.length; i++) retval.push(i + 1); + return retval; + }; + _repeaterManager.getAllItemIds = _getAllItemIds; + + var _addEditItemToRepeater = function(repeaterId, itemIds) { + for(var i = 0; i < itemIds.length; i++) { + var itemId = Number(itemIds[i]); + var items = repeaterToEditItems[repeaterId]; + if(items.indexOf(itemId) == -1) items[items.length] = itemId; + } + }; + _repeaterManager.addEditItems = _addEditItemToRepeater; + + var _removeEditItemFromRepeater = function(repeaterId, itemIds) { + for(var i = 0; i < itemIds.length; i++) { + var itemId = itemIds[i]; + var items = repeaterToEditItems[repeaterId]; + var index = items.indexOf(Number(itemId)); + if(index != -1) $ax.splice(items, index, 1); + } + }; + _repeaterManager.removeEditItems = _removeEditItemFromRepeater; + + _repeaterManager.isEditItem = function(repeaterId, itemId) { + var items = repeaterToEditItems[repeaterId]; + return items.indexOf(Number(itemId)) != -1; + }; + + var _createElementId = function(scriptId, itemId) { + if(!itemId) return scriptId; + var i = scriptId.indexOf('_'); + var sections = i > -1 ? [scriptId.substring(0, i), scriptId.substring(i + 1)] : [scriptId]; + var retval = sections[0] + '-' + itemId; + return sections.length > 1 ? retval + '_' + sections[1] : retval; + }; + _repeaterManager.createElementId = _createElementId; + + var _getElementId = function(scriptId, childId) { + var elementId = scriptId; + if($ax.getParentRepeaterFromScriptId(scriptId)) { + // Must be in the same item as the child + var itemId = $ax.repeater.getItemIdFromElementId(childId); + elementId = $ax.repeater.createElementId(scriptId, itemId); + } + return elementId; + }; + _repeaterManager.getElementId = _getElementId; + + var _getScriptIdFromElementId = function(elementId) { + if(!elementId) return elementId; + var sections = elementId.split('-'); + var retval = sections[0]; + if(sections.length <= 1) return retval; + sections = sections[1].split('_'); + return sections.length > 1 ? retval + '_' + sections[1] : retval; + }; + _repeaterManager.getScriptIdFromElementId = _getScriptIdFromElementId; + + var _getItemIdFromElementId = function(elementId) { + var sections = elementId.split('-'); + if(sections.length < 2) return ''; + sections = sections[1].split('_'); + return sections[0]; + }; + _repeaterManager.getItemIdFromElementId = _getItemIdFromElementId; + + // TODO: Just inline this if we keep it this way. + var _applySuffixToElementId = function(id, suffix) { + return id + suffix; + // return _createElementId(_getScriptIdFromElementId(id) + suffix, _getItemIdFromElementId(id)); + }; + _repeaterManager.applySuffixToElementId = _applySuffixToElementId; + + var _removeSuffixFromElementId = function(id) { + if (id.indexOf('_') != -1) return id.split('_', 1); + return [id]; + } + _repeaterManager.removeSuffixFromElementId = _removeSuffixFromElementId; + + // var _getRepeaterSize = function(repeaterId) { + // var itemCount = ($ax.getItemIdsForRepeater(repeaterId) || []).length; + // if(itemCount == 0) return { width: 0, height: 0 }; + + // var repeater = $obj(repeaterId); + // // Width and height per item; + // var width = repeater.width; + // var height = repeater.height; + + // var viewId = $ax.adaptive.currentViewId || ''; + // var widthIncrement = width + _getAdaptiveProp(repeater.repeaterPropMap, 'horizontalSpacing', viewId); + // var heightIncrement = height + _getAdaptiveProp(repeater.repeaterPropMap, 'verticalSpacing', viewId); + + // var wrap = _getAdaptiveProp(repeater.repeaterPropMap, 'wrap', viewId); + // var vertical = _getAdaptiveProp(repeater.repeaterPropMap, 'vertical', viewId); + + // if(wrap == -1 || itemCount <= wrap) { + // if(vertical) height += heightIncrement * (itemCount - 1); + // else width += widthIncrement * (itemCount - 1); + // } else { + // var primaryDim = wrap; + // var secondaryDim = Math.ceil(itemCount / primaryDim); + + // if(vertical) { + // height += heightIncrement * (primaryDim - 1); + // width += widthIncrement * (secondaryDim - 1); + // } else { + // width += widthIncrement * (primaryDim - 1); + // height += heightIncrement * (secondaryDim - 1); + // } + // } + // return { width: width, height: height }; + // }; + // _repeaterManager.getRepeaterSize = _getRepeaterSize; + +}); + +// ******* Dynamic Panel Manager ******** // +$axure.internal(function($ax) { + // TODO: Probably a lot of the dynamic panel functions from pagescript should be moved here at some point... + var _dynamicPanelManager = $ax.dynamicPanelManager = {}; + + var _isIdFitToContent = _dynamicPanelManager.isIdFitToContent = function(id) { + var obj = $obj(id); + if (!obj || !$ax.public.fn.IsDynamicPanel(obj.type) || !obj.fitToContent) return false; + + var jobj = $jobj($ax.visibility.GetPanelState(id)); + return jobj.css('position') == 'relative'; + }; + + var _fitParentPanel = function(widgetId) { + // Find parent panel if there is one. + var parentPanelInfo = getParentPanel(widgetId); + if(parentPanelInfo) { + var parentId = parentPanelInfo.parent; + if(_updateFitPanel(parentId, parentPanelInfo.state)) _fitParentPanel(parentId); + return; + } + + // Otherwise, try to get parent repeater + var parentRepeaterId = $ax.getParentRepeaterFromElementId(widgetId); + var repeaterObj = $obj(parentRepeaterId); + if(!repeaterObj || widgetId == parentRepeaterId || !repeaterObj.repeaterPropMap.fitToContent) return; + var itemId = $ax.repeater.getItemIdFromElementId(widgetId); + var size = getContainerSize($ax.repeater.createElementId(parentRepeaterId, itemId)); + if($ax.repeater.setItemSize(parentRepeaterId, itemId, size.width, size.height)) _fitParentPanel(parentRepeaterId); + }; + _dynamicPanelManager.fitParentPanel = _fitParentPanel; + + _dynamicPanelManager.initialize = function() { + _dynamicPanelManager.initFitPanels($ax('*')); + + $axure.resize(_handleResize); + }; + + _dynamicPanelManager.initFitPanels = function(query) { + var fitToContent = []; + query.each(function (obj, elementId) { + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + if($ax.public.fn.IsDynamicPanel(obj.type) && obj.fitToContent && !$ax.visibility.isScriptIdLimbo(scriptId)) { + fitToContent[fitToContent.length] = elementId; + } + }); + for(var i = fitToContent.length - 1; i >= 0; i--) { + var panelId = fitToContent[i]; + var stateCount = $obj(panelId).diagrams.length; + for(var j = 0; j < stateCount; j++) { + // Traverse through children to find what size it should be. + var stateId = $ax.repeater.applySuffixToElementId(panelId, '_state' + j); + var stateContentId = stateId + '_content'; + var stateQuery = $jobj(stateId); + var size = getContainerSize(stateContentId); + if(!$obj(panelId).percentWidth) stateQuery.width(size.width); + stateQuery.height(size.height); + } + } + }; + + var percentPanelToLeftCache = []; + var percentPanelsInitialized = false; + var _handleResize = function() { + if(percentPanelsInitialized) { + for(var key in percentPanelToLeftCache) { + //could optimize to only update non-contained panels + _updatePanelPercentWidth(key); + } + } else { + $ax('*').each(function(obj, elementId) { + if(_isPercentWidthPanel(obj)) _updatePanelPercentWidth(elementId); + }); + percentPanelsInitialized = true; + } + }; + + var _isPercentWidthPanel = _dynamicPanelManager.isPercentWidthPanel = function(obj) { + return obj && $ax.public.fn.IsDynamicPanel(obj.type) && obj.percentWidth; + }; + + _dynamicPanelManager.updatePanelContentPercentWidth = function(elementId) { + // if(_isPercentWidthPanel($obj(elementId))) return; + var stateChildrenQuery = $jobj(elementId).children('.panel_state'); + stateChildrenQuery.children('.panel_state_content').each( + function() { + $(this).children('.ax_dynamic_panel').each( + function() { _updatePanelPercentWidth(this.id); } + ); + } + ); + }; + + _dynamicPanelManager.updatePercentPanelCache = function(query) { + query.each(function(obj, elementId) { + if(_isPercentWidthPanel(obj)) { + if(_updatePercentPanelToLeftCache(obj, elementId, true)) { + _updatePanelPercentWidth(elementId); + } + } + }); + }; + + _dynamicPanelManager.resetFixedPanel = function(obj, domElement) { + if(obj.fixedHorizontal == 'center') domElement.style.marginLeft = ""; + if(obj.fixedVertical == 'middle') domElement.style.marginTop = ""; + }; + + _dynamicPanelManager.resetAdaptivePercentPanel = function(obj, domElement) { + if(!_isPercentWidthPanel(obj)) return; + + if(obj.fixedHorizontal == 'center') domElement.style.marginLeft = ""; + else if(obj.fixedHorizontal == 'right') domElement.style.width = ""; + }; + + var _updatePercentPanelToLeftCache = function(obj, elementId, overwrite) { + var wasUpdated = false; + var jObj = $jobj(elementId); + var axObj = $ax('#' + elementId); + if(percentPanelToLeftCache[elementId] == undefined || overwrite) { + if(obj.fixedHorizontal == 'center') percentPanelToLeftCache[elementId] = Number(jObj.css('margin-left').replace("px", "")); + else if(obj.fixedHorizontal == 'right') percentPanelToLeftCache[elementId] = axObj.width() + Number(jObj.css('right').replace("px", "")); + else percentPanelToLeftCache[elementId] = Number(jObj.css('left').replace("px", "")); + wasUpdated = true; + } + + if(obj.fixedHorizontal == 'right' && _isIdFitToContent(elementId)) { + var fitWidth = getContainerSize($ax.visibility.GetPanelState(elementId) + '_content').width; + percentPanelToLeftCache[elementId] = fitWidth + Number(jObj.css('right').replace("px", "")); + wasUpdated = true; + } + return wasUpdated; + }; + + var _updatePanelPercentWidth = _dynamicPanelManager.updatePanelPercentWidth = function(elementId) { + var obj = $obj(elementId); + if(!_isPercentWidthPanel(obj)) return; + + _updatePercentPanelToLeftCache(obj, elementId, false); + + var width; + var x; + + if(obj.fixedHorizontal) { + x = 0; + width = $(window).width(); + } else { + var parentPanelInfo = getParentPanel(elementId); + if(parentPanelInfo) { + var parentId = parentPanelInfo.parent; + width = $ax('#' + parentId).width(); + var parentObj = $obj(parentId); + if(parentObj.percentWidth) { + var stateId = $ax.repeater.applySuffixToElementId(parentId, '_state' + parentPanelInfo.state); + var stateContentId = stateId + '_content'; + x = -Number($jobj(stateContentId).css('margin-left').replace("px", "")); + } else x = 0; + } else { + var parentRepeater = $ax.getParentRepeaterFromScriptId($ax.repeater.getScriptIdFromElementId(elementId)); + if(parentRepeater) { + var itemId = $ax.repeater.getItemIdFromElementId(elementId); + var itemContainerId = $ax.repeater.createElementId(parentRepeater, itemId); + x = 0; + width = $ax('#' + itemContainerId).width(); + } else { + var $window = $(window); + width = $window.width(); + var bodyLeft = Number($('body').css('left').replace("px", "")); + var bodyWidth = Number($('body').css('width').replace("px", "")); + var isCenter = $ax.adaptive.getPageStyle().pageAlignment == 'center'; + width = Math.max(width, bodyWidth); + x = isCenter ? -(width - bodyWidth) / 2 - bodyLeft : 0; + } + } + } + + var jObj = $jobj(elementId); + if(obj.fixedHorizontal == 'left') jObj.css('left', x + 'px'); + else if(obj.fixedHorizontal == 'center') { + jObj.css('left', x + 'px'); + jObj.css('margin-left', 0 + 'px'); + } else jObj.css('left', x + 'px'); + + jObj.css('width', width + 'px'); + + var panelLeft = percentPanelToLeftCache[elementId]; + var stateChildrenQuery = jObj.children('.panel_state'); + stateChildrenQuery.css('width', width + 'px'); + + if(obj.fixedHorizontal == 'center') + stateChildrenQuery.children('.panel_state_content').css('left', '50%').css('margin-left', panelLeft + 'px'); + else if(obj.fixedHorizontal == 'right') + stateChildrenQuery.children('.panel_state_content').css('left', width - panelLeft + 'px'); + else stateChildrenQuery.children('.panel_state_content').css('margin-left', panelLeft - x + 'px'); + }; + + _dynamicPanelManager.updateAllFitPanels = function() { + var fitToContent = []; + $ax('*').each(function (obj, elementId) { + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + if($ax.public.fn.IsDynamicPanel(obj.type) && obj.fitToContent && !$ax.visibility.isScriptIdLimbo(scriptId)) { + fitToContent[fitToContent.length] = elementId; + } + }); + for(var i = fitToContent.length - 1; i >= 0; i--) { + var panelId = fitToContent[i]; + var stateCount = $obj(panelId).diagrams.length; + for(var j = 0; j < stateCount; j++) { + $ax.dynamicPanelManager.setFitToContentCss(panelId, true); + _updateFitPanel(panelId, j, true); + } + } + }; + + _dynamicPanelManager.setFitToContentCss = function(elementId, fitToContent, oldWidth, oldHeight) { + + if($ax.dynamicPanelManager.isIdFitToContent(elementId) == fitToContent) return; + + var panel = $jobj(elementId); + var stateCss; + var scrollbars = $obj(elementId).scrollbars; + + if(fitToContent) { + panel.attr('style', ''); + stateCss = {}; + stateCss.position = 'relative'; + if(scrollbars != 'none') { + stateCss.overflow = 'visible'; + stateCss['-webkit-overflow-scrolling'] = 'visible'; + } + if(scrollbars == 'verticalAsNeeded') { + stateCss['overflow-x'] = 'visible'; + stateCss['-ms-overflow-x'] = 'visible'; + } else if(scrollbars == 'horizontalAsNeeded') { + stateCss['overflow-y'] = 'visible'; + stateCss['-ms-overflow-y'] = 'visible'; + } + panel.children().css(stateCss); + } else { + var panelCss = { width: oldWidth, height: oldHeight }; + stateCss = { width: oldWidth, height: oldHeight }; + panelCss.overflow = 'hidden'; + stateCss.position = 'absolute'; + if(scrollbars != 'none') { + stateCss.overflow = 'auto'; + stateCss['-webkit-overflow-scrolling'] = 'touch'; + } + if(scrollbars == 'verticalAsNeeded') { + stateCss['overflow-x'] = 'hidden'; + stateCss['-ms-overflow-x'] = 'hidden'; + } else if(scrollbars == 'horizontalAsNeeded') { + stateCss['overflow-y'] = 'hidden'; + stateCss['-ms-overflow-y'] = 'hidden'; + } + panel.css(panelCss); + panel.children().css(stateCss); + } + }; + + var _getShownStateId = function (id) { + var obj = $obj(id); + if (!obj || !$ax.public.fn.IsDynamicPanel(obj.type)) return id; + + var children = $ax.visibility.applyWidgetContainer(id, true).children(); + for (var i = 0; i < children.length; i++) { + var child = children[i]; + while ($ax.visibility.isContainer(child.id)) child = $(child).children()[0]; + if (child && child.style && child.style.display != 'none') return child.id; + } + return id; + }; + + var _getShownStateObj = function(id) { return $ax('#' + _getShownStateId(id));} + + _dynamicPanelManager.getShownState = function (id) { return $jobj(_getShownStateId(id)); }; + + var _getClamp = function(id) { + var obj = $obj(id); + if(!obj) return $ax('#' + id); + if ($ax.public.fn.IsDynamicPanel(obj.type)) return _getShownStateObj(id); + return $ax('#' + id); + }; + + var _updateFitPanel = function(panelId, stateIndex, initializingView) { + if(!panelId) return false; + + // Only fit if fitToContent is true + if(!$ax.dynamicPanelManager.isIdFitToContent(panelId)) return false; + + // Traverse through children to find what size it should be. + var stateId = $ax.repeater.applySuffixToElementId(panelId, '_state' + stateIndex); + var stateContentId = stateId + '_content'; + var stateQuery = $jobj(stateId); + var size = getContainerSize(stateContentId); + + // Skip if size hasn't changed + var oldWidth = stateQuery.width(); + var oldHeight = stateQuery.height(); + if(oldWidth == size.width && oldHeight == size.height) return false; + + if(!$obj(panelId).percentWidth) stateQuery.width(size.width); + stateQuery.height(size.height); + + //updatePercentWidth on all child panels + $jobj(stateContentId).children('.ax_dynamic_panel').each( + function() { _updatePanelPercentWidth(this.id); } + ); + + //do the following only if it is the current state + if(stateId != $ax.visibility.GetPanelState(panelId)) return false; + + if(!initializingView) _adjustFixed(panelId, oldWidth, oldHeight, size.width, size.height); + else if(stateIndex != 0) { + var state0 = $jobj($ax.repeater.applySuffixToElementId(panelId, '_state0')); + _adjustFixed(panelId, state0.width(), state0.height(), size.width, size.height); + } + + $ax.event.raiseSyntheticEvent(panelId, 'onResize'); + $ax.flyoutManager.updateFlyout(panelId); + + return true; + }; + + // widgetId is the one that crawls up masters until it finds a parent panel, targetId is the original widgetId (not the crawling master) + var getParentPanel = function(widgetId, path, targetId) { + path = path || $ax.getPathFromScriptId($ax.repeater.getScriptIdFromElementId(widgetId)); + + var obj = $obj(widgetId); + if(obj.parentDynamicPanel) { + path[path.length - 1] = obj.parentDynamicPanel; + var parentId = $ax.getScriptIdFromPath(path); + if(!parentId) return undefined; + parentId = $ax.repeater.getElementId(parentId, widgetId); + var parentObj = $obj(parentId); + var retVal = { parent: parentId }; + for(var i = 0; i < parentObj.diagrams.length; i++) { + var stateId = $ax.repeater.applySuffixToElementId(parentId, '_state' + i); + var stateQuery = $jobj(stateId); + if(stateQuery.find('#' + (targetId || widgetId)).length != 0) { + retVal.state = i; + break; + } + } + return retVal; + } + + if(path.length == 1) return undefined; + + path.pop(); + var parentMaster = $ax.getScriptIdFromPath(path); + if(!parentMaster) return undefined; + parentMaster = $ax.repeater.getElementId(parentMaster, widgetId); + + return getParentPanel(parentMaster, path, targetId || widgetId); + }; + + // TODO: May be a better location for this. Used currently for rdo and panel state containers + var getContainerSize = function(containerId) { + var containerQuery = containerId ? $jobj(containerId) : $('#base'); + var children = containerQuery.children(); + // Default size + var size = { width: 0, height: 0 }; + for(var i = 0; i < children.length; i++) { + var child = $(children[i]); + var childId = child.attr('id'); + //var axChild = $ax('#' + childId).width(); + + var childObj = $obj(childId); + if(!childObj) { + // On the body there are some children that should be ignored, as they are not objects. + if(!child.hasClass('basiclink') || child.get(0).tagName.toLowerCase() != 'a') continue; + + // Otherwise it should be a basic link + var linkChildren = child.children(); + if(!linkChildren.length) continue; + child = $(linkChildren[0]); + childId = child.attr('id'); + childObj = $obj(childId); + } + + // Ignore fixed + if(!childId || $ax.visibility.limboIds[childId] || !$ax.visibility.IsIdVisible(childId) + || $ax.public.fn.IsDynamicPanel(childObj.type) && childObj.fixedHorizontal) continue; + + var boundingRect = $ax.public.fn.getWidgetBoundingRect(childId); + var position = { left: boundingRect.left, top: boundingRect.top }; + var width = boundingRect.width; + var height = boundingRect.height; + + if($ax.public.fn.IsMaster(childObj.type)) { + var masterSize = getContainerSize(childId); + width = masterSize.width; + height = masterSize.height; + // } else if($ax.public.fn.IsRepeater(childObj.type)) { + // var repeaterSize = $ax.repeater.getRepeaterSize(childId); + // width = repeaterSize.width; + // height = repeaterSize.height; + + // if(width == 0 && height == 0) continue; + + // position.left += childObj.x; + // position.top += childObj.y; + } else if ($ax.public.fn.IsDynamicPanel(childObj.type)) { + if($ax.dynamicPanelManager.isIdFitToContent(childId)) { + var stateQuery = $jobj($ax.visibility.GetPanelState(childId)); + width = stateQuery.width(); + height = stateQuery.height(); + } + } + + size.width = Math.max(size.width, position.left + width); + size.height = Math.max(size.height, position.top + height); + } + + return size; + }; + + var _adjustFixed = _dynamicPanelManager.adjustFixed = function(panelId, oldWidth, oldHeight, width, height) { + var loc = _getFixedPosition(panelId, oldWidth, oldHeight, width, height); + if(loc) { + $ax.action.addAnimation(panelId, $ax.action.queueTypes.move, function() { + $ax.move.MoveWidget(panelId, loc[0], loc[1], { easing: 'none', duration: 0 }, false, null, true); + }); + } + }; + + var _getFixedPosition = _dynamicPanelManager.getFixedPosition = function(panelId, oldWidth, oldHeight, width, height) { + var panelObj = $obj(panelId); + var x = 0; + var y = 0; + if(panelObj.fixedHorizontal == 'center') { + x = (oldWidth - width) / 2; + } + if(panelObj.fixedVertical == 'middle') { + y = (oldHeight - height) / 2; + } + return x == 0 && y == 0 ? undefined : [x, y]; + }; + + _dynamicPanelManager.getFixedInfo = function(panelId) { + var panelObj = $obj(panelId); + if (!panelObj || !$ax.public.fn.IsDynamicPanel(panelObj.type)) return {}; + var jobj = $jobj(panelId); + if(jobj.css('position') == 'absolute') return {}; + + var info = {}; + var horizontal = panelObj.fixedHorizontal; + if(!horizontal) return info; + + info.fixed = true; + info.horizontal = horizontal; + info.vertical = panelObj.fixedVertical; + + if(info.horizontal == 'left') info.x = Number(jobj.css('left').replace('px', '')); + else if(info.horizontal == 'center') info.x = Number(jobj.css('margin-left').replace('px', '')); + else if(info.horizontal == 'right') info.x = Number(jobj.css('right').replace('px', '')); + + if(info.vertical == 'top') info.y = Number(jobj.css('top').replace('px', '')); + else if(info.vertical == 'middle') info.y = Number(jobj.css('margin-top').replace('px', '')); + else if(info.vertical == 'bottom') info.y = Number(jobj.css('bottom').replace('px', '')); + + return info; + }; + + // Show isn't necessary if this is always done before toggling (which is currently true), but I don't want that + // change (if it happened) to break this. + var _compressToggle = function (id, vert, show, easing, duration) { + var layer = $ax.getTypeFromElementId(id) == $ax.constants.LAYER_TYPE; + var locProp = vert ? 'top' : 'left'; + var dimProp = vert ? 'height' : 'width'; + + var threshold; + var delta; + + threshold = $ax('#' + id)[locProp](true); + delta = layer ? $ax('#' + id)[dimProp]() : _getShownStateObj(id)[dimProp](); + + if(!show) { + // Need to make threshold bottom/right + threshold += delta; + // Delta is in the opposite direction + delta *= -1; + } + + _compress(id, vert, threshold, delta, easing, duration); + }; + _dynamicPanelManager.compressToggle = _compressToggle; + + // Used when setting state of dynamic panel + var _compressDelta = function(id, oldState, newState, vert, easing, duration) { + var oldQuery = $jobj(oldState); + var newQuery = $jobj(newState); + + var thresholdProp = vert ? 'top' : 'left'; + var thresholdOffset = vert ? 'height' : 'width'; + var threshold = $ax('#' + id)[thresholdProp](true); + threshold += oldQuery[thresholdOffset](); + + var delta = newQuery[thresholdOffset]() - oldQuery[thresholdOffset](); + + var clampOffset = vert ? 'width' : 'height'; + var clampWidth = Math.max(oldQuery[clampOffset](), newQuery[clampOffset]()); + + _compress(id, vert, threshold, delta, easing, duration, clampWidth); + }; + _dynamicPanelManager.compressDelta = _compressDelta; + + var _compress = function (id, vert, threshold, delta, easing, duration, clampWidth) { + // If below, a horizantal clamp, otherwise a vertical clamp + var clamp = { + prop: vert ? 'left' : 'top', + offset: vert ? 'width' : 'height' + }; + + // Get clamp in coords relative to parent. Account for layers farther down + if($ax.getTypeFromElementId(id) == $ax.constants.LAYER_TYPE) { + clamp.start = $ax('#' + id)[clamp.prop](true); + clamp.end = clamp.start + $ax('#' + id)[clamp.offset](); + } else { + var clampLoc = $jobj(id); + if(typeof clampWidth == 'undefined') clampWidth = _getClamp(id)[clamp.offset](); + + clamp.start = Number(clampLoc.css(clamp.prop).replace('px', '')); + + clamp.end = clamp.start + clampWidth; + } + + // If clamps, threshold, or delta is not a number, can't compress. + if (isNaN(clamp.start) || isNaN(clamp.end) || isNaN(threshold) || isNaN(delta)) return; + + // Update clamp if fixed, to account for body position (only necessary when page centered) + if($jobj(id).css('position') == 'fixed') { + var clampDelta = $('#base').position().left; + clamp.start -= clampDelta; + clamp.end -= clampDelta; + } + + if(!easing) { + easing = 'none'; + duration = 0; + } + var parent = $ax('#' + id).getParents(false, ['item', 'state', 'layer'])[0]; + var obj = parent && $ax.getObjectFromElementId($ax.repeater.removeSuffixFromElementId(parent)[0]); + // Go until you hit a parent item or state, or a layer that is hidden to use as parent. + // Account for layer container positions as you go. + while(obj && $ax.public.fn.IsLayer(obj.type) && $ax.visibility.IsIdVisible(parent)) { + var container = $ax.visibility.applyWidgetContainer(parent, true, true); + // If layer is using container, offset is going to be necessary + if(container.length) { + var offsetX = $ax.getNumFromPx(container.css('left')); + var offsetY = $ax.getNumFromPx(container.css('top')); + var clampProp = clamp.prop == 'left' ? offsetX : offsetY; + var threshProp = clamp.prop == 'left' ? offsetY : offsetX; + threshold += threshProp; + clamp.start += clampProp; + clamp.end += clampProp; + } + + parent = $ax('#' + parent).getParents(false, ['item', 'state', 'layer'])[0]; + obj = parent && $ax.getObjectFromElementId($ax.repeater.removeSuffixFromElementId(parent)[0]); + } + + // Add container mid push causes strange behavior because we take container into account as we go down, but if after we accounted for it, + // a container is added, that container is not accounted for with threshold and clamp values. + var layer = obj && $ax.public.fn.IsLayer(obj.type) && parent; + if(layer) { + // If your parent layer is invisible, you want to be relative to it's container. That is true already if it has a container, + // but if you are just adding one now, then you need to offset your values + var needsOffset = !$jobj(layer + '_container').length && !$ax.visibility.IsIdVisible(layer); + $ax.visibility.pushContainer(layer, false); + if(needsOffset) { + container = $jobj(layer + '_container'); + offsetX = $ax.getNumFromPx(container.css('left')); + offsetY = $ax.getNumFromPx(container.css('top')); + clampProp = clamp.prop == 'left' ? offsetX : offsetY; + threshProp = clamp.prop == 'left' ? offsetY : offsetX; + threshold -= threshProp; + clamp.start -= clampProp; + clamp.end -= clampProp; + } + } + + // Note: If parent is body, some of these aren't widgets + if(parent && $jobj(parent + '_content').length > 0) parent = parent + '_content'; + if(parent && $jobj(parent + '_container').length > 0) parent = parent + '_container'; + _compressChildrenHelper(id, $(parent ? '#' + parent : '#base').children(), vert, threshold, delta, clamp, easing, duration); + + if(layer) $ax.visibility.popContainer(layer, false); + + // Do item push + var itemId = $ax.repeater.getItemIdFromElementId(id); + if(!itemId) return; + + var repeaterId = $ax.getParentRepeaterFromElementId(id); + // Only need to push when parent is an item directly. + if(parent != $ax.repeater.createElementId(repeaterId, itemId)) return; + + // If repeater is fit to content, then don't worry about it, it'll be handled elsewhere + if(!obj.repeaterPropMap.fitToContent) $ax.repeater.pushItems(repeaterId, itemId, delta, vert); + }; + + var _compressChildrenHelper = function (id, children, vert, threshold, delta, clamp, easing, duration, parentLayer) { + var toMove = []; + var allMove = true; + for (var i = 0; i < children.length; i++) { + var child = $(children[i]); + + //don't move fixed + if(child.css('position') == 'fixed') continue; + + // Check for basic links + if(child[0] && child[0].tagName == 'A' && child.hasClass('basiclink')) child = child.children(); + var childId = child.attr('id'); + + // Don't move self, and check id to make sure it is a widget. + if(childId == id || !childId || childId[0] != 'u') { + allMove = false; + continue; + } + + if ($ax.getTypeFromElementId(childId) == $ax.constants.LAYER_TYPE) { + $ax.visibility.pushContainer(childId, false); + var addSelf; + var container = $ax.visibility.applyWidgetContainer(childId, true, true); + var layerChildren = $ax.visibility.getRealChildren(child.children()); + //if(container.length) { + var offsetX = -$ax.getNumFromPx(container.css('left')); + var offsetY = -$ax.getNumFromPx(container.css('top')); + var clampProp = clamp.prop == 'left' ? offsetX : offsetY; + var threshProp = clamp.prop == 'left' ? offsetY : offsetX; + var layerClamp = { prop: clamp.prop, offset: clamp.offset, start: clamp.start + clampProp, end: clamp.end + clampProp }; + addSelf = _compressChildrenHelper(id, layerChildren, vert, threshold + threshProp, delta, layerClamp, easing, duration, childId); + //} else addSelf = _compressChildrenHelper(id, layerChildren, vert, threshold, delta, clamp, easing, duration, childId); + + if(addSelf) toMove.push(childId); + else allMove = false; + $ax.visibility.popContainer(childId, false); + continue; + } + + var numbers = childId.substring(1).split('-'); + if(numbers.length < 1 || isNaN(Number(numbers[0])) || (numbers.length == 2 && isNaN(Number(numbers[1]))) || numbers.length > 2) continue; + + var marker, childClamp; + + var axChild = $ax('#' + childId); + var markerProp = vert ? 'top' : 'left'; + marker = Number(axChild[markerProp](true)); + childClamp = [Number(axChild[clamp.prop](true))]; + // Dynamic panels are not reporting correct size sometimes, so pull it from the state. Get shown state just returns the widget if it is not a dynamic panel. + var sizeChild = _getShownStateObj(childId); + childClamp[1] = childClamp[0] + sizeChild[clamp.offset](); + + if(isNaN(marker) || isNaN(childClamp[0]) || isNaN(childClamp[1]) || + marker < threshold || childClamp[1] <= clamp.start || childClamp[0] >= clamp.end) { + allMove = false; + continue; + } + + if (allMove && parentLayer) { + //should i nopmove here? + //$ax.move.nopMove(childId); + $ax.event.raiseSyntheticEvent(childId, "onMove"); + } + toMove.push(childId); + } + + if (allMove && parentLayer) { + return true; + } else { + for(var i = 0; i < toMove.length; i++) { + $ax('#' + toMove[i]).moveBy(vert ? 0 : delta, vert ? delta : 0, easing == 'none' ? {} : { duration: duration, easing: easing }); + } + } + return false; + }; + + var _parentHandlesStyles = function(id) { + var parents = $ax('#' + id).getParents(true, ['dynamicPanel', 'layer'])[0]; + if(!parents) return false; + var directParent = true; + for(var i = 0; i < parents.length; i++) { + var parentId = parents[i]; + var parentObj = $obj(parentId); + if(!parentObj.propagate) { + directParent = false; + continue; + } + return { id: parentId, direct: directParent }; + } + return false; + }; + _dynamicPanelManager.parentHandlesStyles = _parentHandlesStyles; + + var _propagateMouseOver = function(id, value) { + propagate(id, true, value); + }; + _dynamicPanelManager.propagateMouseOver = _propagateMouseOver; + + var _propagateMouseDown = function(id, value) { + propagate(id, false, value); + }; + _dynamicPanelManager.propagateMouseDown = _propagateMouseDown; + + var propagate = function(id, hover, value) { + var hoverChildren = function(children) { + if(!children) return; + for(var i = 0; i < children.length; i++) { + var elementId = children[i].id; + var obj = $obj(elementId); + if(obj == null) { + elementId = elementId.split('_')[0]; + obj = $obj(elementId); + } + if(obj == null) continue; + if (($ax.public.fn.IsDynamicPanel(obj.type) || $ax.public.fn.IsLayer(obj.type)) && !obj.propagate) continue; + + if(hover) $ax.style.SetWidgetHover(elementId, value); + else $ax.style.SetWidgetMouseDown(elementId, value); + $ax.annotation.updateLinkLocations($ax.style.GetTextIdFromShape(elementId)); + + hoverChildren(children[i].children); + } + }; + hoverChildren($ax('#' + id).getChildren(true)[0].children); + }; +}); diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/sto.js b/codes/agent/game-docker/api/document/resources/scripts/axure/sto.js new file mode 100644 index 0000000..5f5cd20 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/sto.js @@ -0,0 +1,230 @@ + +$axure.internal(function($ax) { + var funcs = {}; + + var weekday = new Array(7); + weekday[0] = "Sunday"; + weekday[1] = "Monday"; + weekday[2] = "Tuesday"; + weekday[3] = "Wednesday"; + weekday[4] = "Thursday"; + weekday[5] = "Friday"; + weekday[6] = "Saturday"; + + funcs.getDayOfWeek = function() { + return _getDayOfWeek(this.getDay()); + }; + + var _getDayOfWeek = $ax.getDayOfWeek = function(day) { + return weekday[day]; + }; + + var month = new Array(12); + month[0] = "January"; + month[1] = "February"; + month[2] = "March"; + month[3] = "April"; + month[4] = "May"; + month[5] = "June"; + month[6] = "July"; + month[7] = "August"; + month[8] = "September"; + month[9] = "October"; + month[10] = "November"; + month[11] = "December"; + + funcs.getMonthName = function() { + return _getMonthName(this.getMonth()); + }; + + var _getMonthName = $ax.getMonthName = function(monthNum) { + return month[monthNum]; + }; + + funcs.getMonth = function() { + return this.getMonth() + 1; + }; + + funcs.addYears = function(years) { + var retVal = new Date(this.valueOf()); + retVal.setFullYear(this.getFullYear() + Number(years)); + return retVal; + }; + + funcs.addMonths = function(months) { + var retVal = new Date(this.valueOf()); + retVal.setMonth(this.getMonth() + Number(months)); + return retVal; + }; + + funcs.addDays = function(days) { + var retVal = new Date(this.valueOf()); + retVal.setDate(this.getDate() + Number(days)); + return retVal; + }; + + funcs.addHours = function(hours) { + var retVal = new Date(this.valueOf()); + retVal.setHours(this.getHours() + Number(hours)); + return retVal; + }; + + funcs.addMinutes = function(minutes) { + var retVal = new Date(this.valueOf()); + retVal.setMinutes(this.getMinutes() + Number(minutes)); + return retVal; + }; + + funcs.addSeconds = function(seconds) { + var retVal = new Date(this.valueOf()); + retVal.setSeconds(this.getSeconds() + Number(seconds)); + return retVal; + }; + + funcs.addMilliseconds = function(milliseconds) { + var retVal = new Date(this.valueOf()); + retVal.setMilliseconds(this.getMilliseconds() + Number(milliseconds)); + return retVal; + }; + + var _stoHandlers = {}; + + _stoHandlers.literal = function(sto, scope, eventInfo) { + return sto.value; + }; + + //need angle bracket syntax because var is a reserved word + _stoHandlers['var'] = function(sto, scope, eventInfo) { + // Can't us 'A || B' here, because the first value can be false, true, or empty string and still be valid. + var retVal = scope.hasOwnProperty(sto.name) ? scope[sto.name] : $ax.globalVariableProvider.getVariableValue(sto.name, eventInfo); + // Handle desired type here? + + if(retVal && retVal.exprType) { + retVal = $ax.expr.evaluateExpr(retVal, eventInfo); + } + + if((sto.desiredType == 'int' || sto.desiredType == 'float')) { + var num = new Number(retVal); + retVal = isNaN(num.valueOf()) ? retVal : num; + } + + + return retVal; + }; + + //TODO: Perhaps repeaterId can be detirmined at generation, and stored in the sto info. + _stoHandlers.item = function(sto, scope, eventInfo, prop) { + prop = prop || (eventInfo.data ? 'data' : eventInfo.link ? 'url' : eventInfo.image ? 'img' : 'text'); + var id = sto.isTarget || !$ax.repeater.hasData(eventInfo.srcElement, sto.name) ? eventInfo.targetElement : eventInfo.srcElement; + return getData(eventInfo, id, sto.name, prop); + }; + + var getData = function(eventInfo, id, name, prop) { + var repeaterId = $ax.getParentRepeaterFromScriptId($ax.repeater.getScriptIdFromElementId(id)); + var itemId = $ax.repeater.getItemIdFromElementId(id); + return $ax.repeater.getData(eventInfo, repeaterId, itemId, name, prop); + }; + + _stoHandlers.paren = function(sto, scope, eventInfo) { + return _evaluateSTO(sto.innerSTO, scope, eventInfo); + }; + + _stoHandlers.fCall = function(sto, scope, eventInfo) { + //TODO: [mas] handle required type + var thisObj = _evaluateSTO(sto.thisSTO, scope, eventInfo); + if(sto.thisSTO.desiredType == 'string' && sto.thisSTO.computedType != 'string') thisObj = thisObj.toString(); + + var args = []; + for(var i = 0; i < sto.arguments.length; i++) { + args[i] = _evaluateSTO(sto.arguments[i], scope, eventInfo); + } + var fn = (funcs.hasOwnProperty(sto.func) && funcs[sto.func]) || thisObj[sto.func]; + return fn.apply(thisObj, args); + }; + + _stoHandlers.propCall = function(sto, scope, eventInfo) { + //TODO: [mas] handle required type + if((sto.prop == 'url' || sto.prop == 'img') && sto.thisSTO.sto == 'item') return _stoHandlers.item(sto.thisSTO, scope, eventInfo, sto.prop); + var thisObj = _evaluateSTO(sto.thisSTO, scope, eventInfo); + return thisObj[sto.prop]; + }; + + var _binOps = {}; + _binOps['+'] = function(left, right) { + if(left instanceof Date) return addDayToDate(left, right); + if(right instanceof Date) return addDayToDate(right, left); + + var num = Number(left) + Number(right); + return isNaN(num) ? (String(left) + String(right)) : num; + }; + _binOps['-'] = function(left, right) { + if(left instanceof Date) return addDayToDate(left, -right); + return left - right; + }; + _binOps['*'] = function(left, right) { return Number(left) * Number(right); }; + _binOps['/'] = function(left, right) { return Number(left) / Number(right); }; + _binOps['%'] = function(left, right) { return Number(left) % Number(right); }; + _binOps['=='] = function(left, right) { return _getBool(left) == _getBool(right); }; + _binOps['!='] = function(left, right) { return _getBool(left) != _getBool(right); }; + _binOps['<'] = function(left, right) { return Number(left) < Number(right); }; + _binOps['<='] = function(left, right) { return Number(left) <= Number(right); }; + _binOps['>'] = function(left, right) { return Number(left) > Number(right); }; + _binOps['>='] = function(left, right) { return Number(left) >= Number(right); }; + _binOps['&&'] = function(left, right) { return _getBool(left) && _getBool(right); }; + _binOps['||'] = function(left, right) { return _getBool(left) || _getBool(right); }; + + // TODO: Move this to generic place to be used. + var addDayToDate = function(date, days) { + var retVal = new Date(date.valueOf()); + retVal.setDate(date.getDate() + days); + return retVal; + }; + + var _unOps = {}; + _unOps['+'] = function(arg) { return +arg; }; + _unOps['-'] = function(arg) { return -arg; }; + _unOps['!'] = function(arg) { return !_getBool(arg); }; + + _stoHandlers.binOp = function(sto, scope, eventInfo) { + var left = _evaluateSTO(sto.leftSTO, scope, eventInfo); + var right = _evaluateSTO(sto.rightSTO, scope, eventInfo); + return _binOps[sto.op](left, right); + }; + + _stoHandlers.unOp = function(sto, scope, eventInfo) { + var input = _evaluateSTO(sto.inputSTO, scope, eventInfo); + return _unOps[sto.op](input); + }; + + var _getBool = function(val) { + var lowerVal = val.toLowerCase ? val.toLowerCase() : val; + return lowerVal == "false" ? false : lowerVal == "true" ? true : val; + }; + $ax.getBool = _getBool; + + var _evaluateSTO = function(sto, scope, eventInfo) { + if(sto.sto == 'error') return undefined; + return _tryEscapeRichText(castSto(_stoHandlers[sto.sto](sto, scope, eventInfo), sto), eventInfo); + }; + $ax.evaluateSTO = _evaluateSTO; + + var castSto = function(val, sto) { + var type = sto.computedType || sto.desiredType; + if(type == 'string') val = String(val); + else if(type == 'date' && !(val instanceof Date)) val = new Date(val); + else if(type == 'int' || type == 'float') val = Number(val); + else if(type == 'bool') val = Boolean(val); + + return val; + }; + + var _tryEscapeRichText = function(text, eventInfo) { + return eventInfo.htmlLiteral ? _escapeRichText(text) : text; + }; + + var _escapeRichText = function(text) { + if(typeof (text) != 'string') return text; + + return text.replace('<', '<'); + }; +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/style.js b/codes/agent/game-docker/api/document/resources/scripts/axure/style.js new file mode 100644 index 0000000..9bb2f98 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/style.js @@ -0,0 +1,1150 @@ +$axure.internal(function($ax) { + var _style = {}; + $ax.style = _style; + + var _disabledWidgets = {}; + var _selectedWidgets = {}; + + // A table to cache the outerHTML of the _rtf elements before the rollover state is applied. + var _originalTextCache = {}; + // A table to exclude the normal style from adaptive overrides + var _shapesWithSetRichText = {}; + + // just a listing of shape ids + var _adaptiveStyledWidgets = {}; + + var _setLinkStyle = function(id, styleName) { + var textId = $ax.style.GetTextIdFromLink(id); + var style = _computeAllOverrides(id, textId, styleName, $ax.adaptive.currentViewId); + if(!_originalTextCache[textId]) { + $ax.style.CacheOriginalText(textId); + } + if($.isEmptyObject(style)) return; + + var parentObjectCache = _originalTextCache[textId].styleCache; + + _transformTextWithVerticalAlignment(textId, function() { + var cssProps = _getCssStyleProperties(style); + $('#' + id).find('*').andSelf().each(function(index, element) { + element.setAttribute('style', parentObjectCache[element.id]); + _applyCssProps(element, cssProps); + }); + }); + }; + + var _resetLinkStyle = function(id) { + var textId = $ax.style.GetTextIdFromLink(id); + var parentObjectCache = _originalTextCache[textId].styleCache; + + _transformTextWithVerticalAlignment(textId, function() { + $('#' + id).find('*').andSelf().each(function(index, element) { + element.style.cssText = parentObjectCache[element.id]; + }); + }); + if($ax.event.mouseDownObjectId) { + $ax.style.SetWidgetMouseDown($ax.event.mouseDownObjectId, true); + } else if($ax.event.mouseOverObjectId) { + $ax.style.SetWidgetHover($ax.event.mouseOverObjectId, true); + } + }; + + $ax.style.SetLinkHover = function(id) { + _setLinkStyle(id, MOUSE_OVER); + }; + + $ax.style.SetLinkNotHover = function(id) { + _resetLinkStyle(id); + }; + + $ax.style.SetLinkMouseDown = function(id) { + _setLinkStyle(id, MOUSE_DOWN); + }; + + $ax.style.SetLinkNotMouseDown = function(id) { + _resetLinkStyle(id); + var style = _computeAllOverrides(id, $ax.event.mouseOverObjectId, MOUSE_OVER, $ax.adaptive.currentViewId); + + if(!$.isEmptyObject(style)) $ax.style.SetLinkHover(id); + //we dont do anything here because the widget not mouse down has taken over here + }; + + var _widgetHasState = function(id, state) { + if($ax.style.getElementImageOverride(id, state)) return true; + var diagramObject = $ax.getObjectFromElementId(id); + + var adaptiveIdChain = $ax.adaptive.getAdaptiveIdChain($ax.adaptive.currentViewId); + + for(var i = 0; i < adaptiveIdChain.length; i++) { + var viewId = adaptiveIdChain[i]; + var adaptiveStyle = diagramObject.adaptiveStyles[viewId]; + if(adaptiveStyle && adaptiveStyle.stateStyles && adaptiveStyle.stateStyles[state]) return true; + } + + if(diagramObject.style.stateStyles) return diagramObject.style.stateStyles[state]; + + return false; + }; + + // Returns what overrides the hover, or false if nothing. + var _hoverOverride = function(id) { + if($ax.style.IsWidgetDisabled(id)) return DISABLED; + if($ax.style.IsWidgetSelected(id)) return SELECTED; + var obj = $ax.getObjectFromElementId(id); + if(!obj.isContained) return false; + var path = $ax.getPathFromScriptId($ax.repeater.getScriptIdFromElementId(id)); + path[path.length - 1] = obj.parent.id; + var itemId = $ax.repeater.getItemIdFromElementId(id); + return _hoverOverride($ax.getElementIdFromPath(path, { itemNum: itemId })); + }; + + $ax.style.SetWidgetHover = function(id, value) { + var override = _hoverOverride(id); + if(override == DISABLED) return; + if(!_widgetHasState(id, MOUSE_OVER)) return; + + var valToSet = value || _isRolloverOverride(id); + var state = _generateMouseState(id, valToSet ? MOUSE_OVER : NORMAL, override == SELECTED); + _applyImageAndTextJson(id, state); + _updateElementIdImageStyle(id, state); + }; + + var _rolloverOverrides = []; + var _isRolloverOverride = function(id) { + return _rolloverOverrides.indexOf(id) != -1; + }; + + $ax.style.AddRolloverOverride = function(id) { + if(_isRolloverOverride(id)) return; + _rolloverOverrides[_rolloverOverrides.length] = id; + if($ax.event.mouseOverIds.indexOf(id) == -1) $ax.style.SetWidgetHover(id, true); + }; + + $ax.style.RemoveRolloverOverride = function(id) { + var index = _rolloverOverrides.indexOf(id); + if(index == -1) return; + $ax.splice(_rolloverOverrides, index, 1); + if($ax.event.mouseOverIds.indexOf(id) == -1) $ax.style.SetWidgetHover(id, false); + }; + + // function GetWidgetCurrentState(id) { + // if($ax.style.IsWidgetDisabled(id)) return "disabled"; + // if($ax.style.IsWidgetSelected(id)) return "selected"; + // if($ax.event.mouseOverObjectId == id) return "mouseOver"; + // if($ax.event.mouseDownObjectId == id) return "mouseDown"; + + // return "normal"; + // } + + $ax.style.ObjHasMouseDown = function(id) { + var obj = $obj(id); + if($ax.style.getElementImageOverride(id, 'mouseDown') || obj.style && obj.style.stateStyles && obj.style.stateStyles.mouseDown) return true; + + var chain = $ax.adaptive.getAdaptiveIdChain($ax.adaptive.currentViewId); + for(var i = 0; i < chain.length; i++) { + var style = obj.adaptiveStyles[chain[i]]; + if(style && style.stateStyles && style.stateStyles.mouseDown) return true; + } + return false; + }; + + $ax.style.SetWidgetMouseDown = function(id, value) { + if($ax.style.IsWidgetDisabled(id)) return; + if(!_widgetHasState(id, MOUSE_DOWN)) return; + + // ApplyImageAndTextJson(id, value ? 'mouseDown' : !$.isEmptyObject(GetStyleForState(id, null, 'mouseOver')) ? 'mouseOver' : 'normal'); + var state = _generateMouseState(id, value ? MOUSE_DOWN : MOUSE_OVER, $ax.style.IsWidgetSelected(id)); + _applyImageAndTextJson(id, state); + _updateElementIdImageStyle(id, state); + }; + + var _generateMouseState = function(id, mouseState, selected) { + if (selected) { + if (_style.getElementImageOverride(id, SELECTED)) return SELECTED; + + var viewChain = $ax.adaptive.getAdaptiveIdChain($ax.adaptive.currentViewId); + viewChain[viewChain.length] = ''; + var obj = $obj(id); + if(obj.type == "dynamicPanel") return SELECTED; + + var any = function(dict) { + for(var key in dict) return true; + return false; + }; + + for(var i = 0; i < viewChain.length; i++) { + var viewId = viewChain[i]; + // Need to check seperately for images. + if(obj.adaptiveStyles && obj.adaptiveStyles[viewId] && any(obj.adaptiveStyles[viewId]) + || obj.images && obj.images['selected~' + viewId]) return SELECTED; + } + var selectedStyle = obj.style && obj.style.stateStyles && obj.style.stateStyles.selected; + if(selectedStyle && any(selectedStyle)) return SELECTED; + } + + // Not using selected + return mouseState; + }; + + $ax.style.SetWidgetSelected = function(id, value, alwaysApply) { + if(_isWidgetDisabled(id)) return; + //NOTE: not firing select events if state didn't change + var raiseSelectedEvents = $ax.style.IsWidgetSelected(id) != value; + + if(value) { + var group = $('#' + id).attr('selectiongroup'); + if(group) { + $("[selectiongroup='" + group + "']").each(function() { + var otherId = this.id; + if(otherId == id) return; + if ($ax.visibility.isScriptIdLimbo($ax.repeater.getScriptIdFromElementId(otherId))) return; + + $ax.style.SetWidgetSelected(otherId, false); + }); + } + } + var obj = $obj(id); + if(obj) { + var actionId = id; + if ($ax.public.fn.IsDynamicPanel(obj.type) || $ax.public.fn.IsLayer(obj.type)) { + var children = $axure('#' + id).getChildren()[0].children; + for(var i = 0; i < children.length; i++) { + var childId = children[i]; + // Special case for trees + var childObj = $jobj(childId); + if(childObj.hasClass('treeroot')) { + var treenodes = childObj.find('.treenode'); + for(var j = 0; j < treenodes.length; j++) { + $axure('#' + treenodes[j].id).selected(value); + } + } else $axure('#' + childId).selected(value); + } + } else { + var widgetHasSelectedState = _widgetHasState(id, SELECTED); + while(obj.isContained && !widgetHasSelectedState) obj = obj.parent; + var itemId = $ax.repeater.getItemIdFromElementId(id); + var path = $ax.getPathFromScriptId($ax.repeater.getScriptIdFromElementId(id)); + path[path.length - 1] = obj.id; + actionId = $ax.getElementIdFromPath(path, { itemNum: itemId }); + if(alwaysApply || widgetHasSelectedState) { + var state = _generateSelectedState(actionId, value); + _applyImageAndTextJson(actionId, state); + _updateElementIdImageStyle(actionId, state); + } + //added actionId and this hacky logic because we set style state on child, but interaction on parent + //then the id saved in _selectedWidgets would be depended on widgetHasSelectedState... more see case 1818143 + while(obj.isContained && !$ax.getObjectFromElementId(id).interactionMap) obj = obj.parent; + path = $ax.getPathFromScriptId($ax.repeater.getScriptIdFromElementId(id)); + path[path.length - 1] = obj.id; + actionId = $ax.getElementIdFromPath(path, { itemNum: itemId }); + } + } + + // ApplyImageAndTextJson(id, value ? 'selected' : 'normal'); + _selectedWidgets[id] = value; + if(raiseSelectedEvents) $ax.event.raiseSelectedEvents(actionId, value); + }; + + var _generateSelectedState = function(id, selected) { + var mouseState = $ax.event.mouseDownObjectId == id ? MOUSE_DOWN : $ax.event.mouseOverIds.indexOf(id) != -1 ? MOUSE_OVER : NORMAL; + return _generateMouseState(id, mouseState, selected); + }; + + $ax.style.IsWidgetSelected = function(id) { + return Boolean(_selectedWidgets[id]) || $('#'+id).hasClass('selected'); + }; + + $ax.style.SetWidgetEnabled = function(id, value) { + _disabledWidgets[id] = !value; + $('#' + id).find('a').css('cursor', value ? 'pointer' : 'default'); + + if(!_widgetHasState(id, DISABLED)) return; + if(!value) { + _applyImageAndTextJson(id, DISABLED); + _updateElementIdImageStyle(id, DISABLED); + } else $ax.style.SetWidgetSelected(id, $ax.style.IsWidgetSelected(id), true); + }; + + $ax.style.SetWidgetPlaceholder = function(id, value, text, password) { + var inputId = $ax.repeater.applySuffixToElementId(id, '_input'); + + // Right now this is the only style on the widget. If other styles (ex. Rollover), are allowed + // on TextBox/TextArea, or Placeholder is applied to more widgets, this may need to do more. + var obj = $jobj(inputId); + + var height = document.getElementById(inputId).style['height']; + var width = document.getElementById(inputId).style['width']; + obj.attr('style', ''); + //removing all styles, but now we can change the size, so we should add them back + //this is more like a quick hack + if (height) obj.css('height', height); + if (width) obj.css('width', width); + + if(!value) { + try { //ie8 and below error + if(password) document.getElementById(inputId).type = 'password'; + } catch(e) { } + } else { + var element = $('#' + inputId)[0]; + var style = _computeAllOverrides(id, undefined, HINT, $ax.adaptive.currentViewId); + var styleProperties = _getCssStyleProperties(style); + + //moved this out of GetCssStyleProperties for now because it was breaking un/rollovers with gradient fills + if(style.fill) styleProperties.allProps.backgroundColor = _getColorFromFill(style.fill); + + _applyCssProps(element, styleProperties, true); + try { //ie8 and below error + if(password) document.getElementById(inputId).type = 'text'; + } catch(e) { } + } + obj.val(text); + }; + + var _isWidgetDisabled = $ax.style.IsWidgetDisabled = function(id) { + return Boolean(_disabledWidgets[id]); + }; + + var _elementIdsToImageOverrides = {}; + $ax.style.mapElementIdToImageOverrides = function (elementId, override) { + for(var key in override) _addImageOverride(elementId, key, override[key]); + }; + + var _addImageOverride = function (elementId, state, val) { + if (!_elementIdsToImageOverrides[elementId]) _elementIdsToImageOverrides[elementId] = {}; + _elementIdsToImageOverrides[elementId][state] = val; + } + + $ax.style.deleteElementIdToImageOverride = function(elementId) { + delete _elementIdsToImageOverrides[elementId]; + }; + + $ax.style.getElementImageOverride = function(elementId, state) { + var url = _elementIdsToImageOverrides[elementId] && _elementIdsToImageOverrides[elementId][state]; + return url; + }; + + $ax.style.elementHasAnyImageOverride = function(elementId) { + return Boolean(_elementIdsToImageOverrides[elementId]); + }; + + var NORMAL = 'normal'; + var MOUSE_OVER = 'mouseOver'; + var MOUSE_DOWN = 'mouseDown'; + var SELECTED = 'selected'; + var DISABLED = 'disabled'; + var HINT = 'hint'; + + var _generateState = _style.generateState = function(id) { + return $ax.placeholderManager.isActive(id) ? HINT : _style.IsWidgetDisabled(id) ? DISABLED : _generateSelectedState(id, _style.IsWidgetSelected(id)); + }; + + var _progressState = _style.progessState = function(state) { + if(state == NORMAL) return false; + if(state == MOUSE_DOWN) return MOUSE_OVER; + return NORMAL; + }; + + var _unprogressState = function(state, goal) { + state = state || NORMAL; + if(state == goal) return undefined; + if(state == NORMAL && goal == MOUSE_DOWN) return MOUSE_OVER; + return goal; + }; + + var _updateElementIdImageStyle = _style.updateElementIdImageStyle = function(elementId, state) { + if(!_style.elementHasAnyImageOverride(elementId)) return; + + if(!state) state = _generateState(elementId); + + var style = _computeFullStyle(elementId, state, $ax.adaptive.currentViewId); + + var query = $jobj($ax.repeater.applySuffixToElementId(elementId, '_img')); + style.size.width = query.width(); + style.size.height = query.height(); + var borderId = $ax.repeater.applySuffixToElementId(elementId, '_border'); + var borderQuery = $jobj(borderId); + if(!borderQuery.length) { + borderQuery = $('
    '); + borderQuery.attr('id', borderId); + query.after(borderQuery); + } + + borderQuery.attr('style', ''); + borderQuery.css('position', 'absolute'); + query.attr('style', ''); + + var borderWidth = Number(style.borderWidth); + var hasBorderWidth = borderWidth > 0; + if(hasBorderWidth) { + borderQuery.css('border-style', 'solid'); + borderQuery.css('border-width', borderWidth + 'px'); + borderQuery.css('width', style.size.width - borderWidth * 2); + borderQuery.css('height', style.size.height - borderWidth * 2); + } + + var linePattern = style.linePattern; + if(hasBorderWidth && linePattern) borderQuery.css('border-style', linePattern); + + var borderFill = style.borderFill; + if(hasBorderWidth && borderFill) { + var color = borderFill.fillType == 'solid' ? borderFill.color : + borderFill.fillType == 'linearGradient' ? borderFill.colors[0].color : 0; + + var alpha = Math.floor(color / 256 / 256 / 256); + color -= alpha * 256 * 256 * 256; + alpha = alpha / 255; + + var red = Math.floor(color / 256 / 256); + color -= red * 256 * 256; + var green = Math.floor(color / 256); + var blue = color - green * 256; + + borderQuery.css('border-color', _rgbaToFunc(red, green, blue, alpha)); + } + + var cornerRadiusTopLeft = style.cornerRadius; + if(cornerRadiusTopLeft) { + query.css('border-radius', cornerRadiusTopLeft + 'px'); + borderQuery.css('border-radius', cornerRadiusTopLeft + 'px'); + } + + var outerShadow = style.outerShadow; + if(outerShadow && outerShadow.on) { + var arg = ''; + arg += outerShadow.offsetX + 'px' + ' ' + outerShadow.offsetY + 'px' + ' '; + var rgba = outerShadow.color; + arg += outerShadow.blurRadius + 'px' + ' 0px ' + _rgbaToFunc(rgba.r, rgba.g, rgba.b, rgba.a); + query.css('-moz-box-shadow', arg); + query.css('-wibkit-box-shadow', arg); + query.css('box-shadow', arg); + query.css('left', '0px'); + query.css('top', '0px'); + } + + query.css({ width: style.size.width, height: style.size.height }); + }; + + var _rgbaToFunc = function(red, green, blue, alpha) { + return 'rgba(' + red + ',' + green + ',' + blue + ',' + alpha + ')'; + }; + + //function $ax.style.GetTextIdFromShape(id) { + // return $.grep( + // $('#' + id).children().map(function (i, obj) { return obj.id; }), // all the child ids + // function (item) { return item.indexOf(id) < 0; })[0]; // that are not similar to the parent + //} + + var _getButtonShapeId = function(id) { + var obj = $obj(id); + return $ax.public.fn.IsTreeNodeObject(obj.type) ? $ax.getElementIdFromPath([obj.buttonShapeId], { relativeTo: id }) : id; + }; + + var _getButtonShape = function(id) { + var obj = $obj(id); + + // some treeNodeObjects don't have button shapes + return $jobj($ax.public.fn.IsTreeNodeObject(obj.type) && obj.buttonShapeId ? $ax.getElementIdFromPath([obj.buttonShapeId], { relativeTo: id }) : id); + }; + + var _getTextIdFromShape = $ax.style.GetTextIdFromShape = function(id) { + return _getButtonShape(id).find('.text').attr('id'); + }; + + $ax.style.GetTextIdFromLink = function(id) { + return $jobj(id).parentsUntil('.text').parent().attr('id'); + }; + + var _getShapeIdFromText = $ax.style.GetShapeIdFromText = function(id) { + if(!id) return undefined; // this is to prevent an infinite loop. + //return $jobj(id).parent().attr('id'); + var current = $jobj(id).parent(); + while(!current.is("body")) { + var currentId = current.attr('id'); + if(currentId && currentId != 'base') return $ax.visibility.getWidgetFromContainer(currentId); + current = current.parent(); + } + + return undefined; + }; + + $ax.style.GetImageIdFromShape = function(id) { + var image = _getButtonShape(id).find('img[id$=img]'); + if(!image.length) image = $jobj(id).find('img[id$=image_sketch]'); + return image.attr('id'); + }; + + var _applyImageAndTextJson = function(id, event) { + var textId = $ax.style.GetTextIdFromShape(id); + _resetTextJson(id, textId); + + // This should never be the case + //if(event != '') { + var imgQuery = $jobj($ax.style.GetImageIdFromShape(id)); + var e = imgQuery.data('events'); + if(e && e[event]) imgQuery.trigger(event); + + var imageUrl = $ax.adaptive.getImageForStateAndView(id, event); + if(imageUrl) _applyImage(id, imageUrl, event); + + var style = _computeAllOverrides(id, undefined, event, $ax.adaptive.currentViewId); + if(!$.isEmptyObject(style)) { + _applyTextStyle(textId, style); + } + + _updateStateClasses(id, event); + _updateStateClasses($ax.repeater.applySuffixToElementId(id, '_div'), event); + }; + + var _updateStateClasses = function(id, event) { + var jobj = $jobj(id); + + //if(jobj[0] && jobj[0].hasAttribute('widgetwidth')) { + // for (var x = 0; x < jobj[0].children.length; x++) { + // var childId = jobj[0].children[x].id; + // if (childId.indexOf('p') < 0) continue; + + // _updateStateClasses(childId, event) ; + // } + //} else { + for (var i = 0; i < ALL_STATES.length; i++) jobj.removeClass(ALL_STATES[i]); + if (event == 'mouseDown') jobj.addClass('mouseOver'); + jobj.addClass(event); + //} + } + + /* ------------------- + + here's the algorithm in a nutshell: + [DOWN] -- refers to navigation down the view inheritance heirarchy (default to most specific) + [UP] -- navigate up the heirarchy + + ComputeAllOverrides (object): + All view styles [DOWN] + If hyperlink + - DO ComputeStateStyle for parent object + - if (MouseOver || MouseDown) + - linkMouseOver Style + - if (MouseDown) + - linkMouseDown style + - ComputeStateStyleForViewChain (parent, STATE) + + if (MouseDown) DO ComputeStateStyleForViewChain for object, mouseOver + DO ComputeStateStyleForViewChain for object, style + + + ComputeStateStyleForViewChain (object, STATE) + FIRST STATE state style [UP] the chain OR default object STATE style + + ------------------- */ + + var FONT_PROPS = { + 'typeface': true, + 'fontName': true, + 'fontWeight': true, + 'fontStyle': true, + 'fontStretch': true, + 'fontSize': true, + 'underline': true, + 'foreGroundFill': true, + 'horizontalAlignment': true + }; + + var _computeAllOverrides = $ax.style.computeAllOverrides = function(id, parentId, state, currentViewId) { + var computedStyle = {}; + if(parentId) computedStyle = _computeAllOverrides(parentId, null, state, currentViewId); + + var diagramObject = $ax.getObjectFromElementId(id); + var viewIdChain = $ax.adaptive.getAdaptiveIdChain(currentViewId); + + var excludeFont = _shapesWithSetRichText[id]; + for(var i = 0; i < viewIdChain.length; i++) { + var viewId = viewIdChain[i]; + var style = diagramObject.adaptiveStyles[viewId]; + if(style) { + // we want to exclude the normal font style for shapes where the rich text has been set with an interaction + // so we copy the style so we don't modify the original, then delete all the font props. + if(excludeFont) { + style = $ax.deepCopy(style); + for(var prop in FONT_PROPS) delete style[prop]; + } + + if(style) { + var customStyle = style.baseStyle && $ax.document.stylesheet.stylesById[style.baseStyle]; + //make sure not to extend the customStyle this can mutate it for future use + $.extend(computedStyle, customStyle); + } + $.extend(computedStyle, style); + } + } + + var currState = NORMAL; + while(currState) { + $.extend(computedStyle, _computeStateStyleForViewChain(diagramObject, currState, viewIdChain, true)); + currState = _unprogressState(currState, state); + } + + return _removeUnsupportedProperties(computedStyle, diagramObject.type); + }; + + var _computeStateStyleForViewChain = function(diagramObject, state, viewIdChain, excludeNormal) { + var styleObject = diagramObject; + while(styleObject.isContained) styleObject = styleObject.parent; + + var adaptiveStyles = styleObject.adaptiveStyles; + + for(var i = viewIdChain.length - 1; i >= 0; i--) { + var viewId = viewIdChain[i]; + var viewStyle = adaptiveStyles[viewId]; + var stateStyle = viewStyle && _getFullStateStyle(viewStyle, state, excludeNormal); + if(stateStyle) return $.extend({}, stateStyle); + } + + // we dont want to actually include the object style because those are not overrides, hence the true for "excludeNormal" and not passing the val through + var stateStyleFromDefault = _getFullStateStyle(styleObject.style, state, true); + return $.extend({}, stateStyleFromDefault); + }; + + // returns the full effective style for an object in a state state and view + var _computeFullStyle = function(id, state, currentViewId) { + var obj = $obj(id); + var overrides = _computeAllOverrides(id, undefined, state, currentViewId); + // todo: account for image box + var objStyle = obj.style; + var customStyle = objStyle.baseStyle && $ax.document.stylesheet.stylesById[objStyle.baseStyle]; + var returnVal = $.extend({}, $ax.document.stylesheet.defaultStyle, customStyle, objStyle, overrides); + return _removeUnsupportedProperties(returnVal, obj.type); + }; + + var _removeUnsupportedProperties = function(style, objectType) { + // for now all we need to do is remove padding from checkboxes and radio buttons + if ($ax.public.fn.IsRadioButton(objectType) || $ax.public.fn.IsCheckBox(objectType)) { + style.paddingTop = 0; + style.paddingLeft = 0; + style.paddingRight = 0; + style.paddingBottom = 0; + } + return style; + }; + + var _getFullStateStyle = function(style, state, excludeNormal) { + //'normal' is needed because now DiagramObjects get their image from the Style and unapplying a rollover needs the image + var stateStyle = state == 'normal' && !excludeNormal ? style : style && style.stateStyles && style.stateStyles[state]; + if(stateStyle) { + var customStyle = stateStyle.baseStyle && $ax.document.stylesheet.stylesById[stateStyle.baseStyle]; + //make sure not to extend the customStyle this can mutate it for future use + return $.extend({}, customStyle, stateStyle); + } + return undefined; + }; + + // commented this out for now... we actually will probably need it for ie + var _applyOpacityFromStyle = $ax.style.applyOpacityFromStyle = function(id, style) { + return; + var opacity = style.opacity || ''; + $jobj(id).children().css('opacity', opacity); + }; + + var _initialize = function() { + //being handled at on window.load + //$ax.style.initializeObjectTextAlignment($ax('*')); + }; + $ax.style.initialize = _initialize; + + var _initTextAlignment = function(elementId) { + var textId = _getTextIdFromShape(elementId); + _storeIdToAlignProps(textId); + // now handle vertical alignment + if(_getObjVisible(textId)) { + _setTextAlignment(textId, _idToAlignProps[textId], false); + } + }; + + $ax.style.initializeObjectTextAlignment = function(query) { + query.filter(function(diagramObject) { + return $ax.public.fn.IsVector(diagramObject.type) || $ax.public.fn.IsImageBox(diagramObject.type); + }).each(function(diagramObject, elementId) { + if($jobj(elementId).length == 0) return; + _initTextAlignment(elementId); + }); + }; + + var _storeIdToAlignProps = function(textId) { + var shapeId = _getShapeIdFromText(textId); + var shapeObj = $obj(shapeId); + var state = _generateState(shapeId); + + var style = _computeFullStyle(shapeId, state, $ax.adaptive.currentViewId); + var vAlign = style.verticalAlignment || 'middle'; + var paddingLeft = Number(style.paddingLeft || 0); + paddingLeft += shapeObj && shapeObj.extraLeft || 0; + var paddingTop = style.paddingTop || 0; + var paddingRight = style.paddingRight || 0; + var paddingBottom = style.paddingBottom || 0; + _idToAlignProps[textId] = { vAlign: vAlign, paddingLeft: paddingLeft, paddingTop: paddingTop, paddingRight: paddingRight, paddingBottom: paddingBottom }; + }; + + var ALL_STATES = ['mouseOver', 'mouseDown', 'selected', 'disabled']; + var _applyImage = $ax.style.applyImage = function (id, imgUrl, state) { + var object = $obj(id); + if (object.generateCompound) { + for (var i = 0; i < object.compoundChildren.length; i++) { + var componentId = object.compoundChildren[i]; + var childId = $ax.public.fn.getComponentId(id, componentId); + var childImgQuery = $jobj(childId + '_img'); + var childQuery = $jobj(childId); + childImgQuery.attr('src', imgUrl[componentId]); + for (var j = 0; j < ALL_STATES.length; j++) { + childImgQuery.removeClass(ALL_STATES[j]); + childQuery.removeClass(ALL_STATES[j]); + } + if (state != 'normal') { + childImgQuery.addClass(state); + childQuery.addClass(state); + } + } + } else { + var imgQuery = $jobj($ax.style.GetImageIdFromShape(id)); + var idQuery = $jobj(id); + //it is hard to tell if setting the image or the class first causing less flashing when adding shadows. + imgQuery.attr('src', imgUrl); + for (var i = 0; i < ALL_STATES.length; i++) { + idQuery.removeClass(ALL_STATES[i]); + imgQuery.removeClass(ALL_STATES[i]); + } + if (state != 'normal') { + idQuery.addClass(state); + imgQuery.addClass(state); + } + if (imgQuery.parents('a.basiclink').length > 0) imgQuery.css('border', 'none'); + if (imgUrl.indexOf(".png") > -1) $ax.utils.fixPng(imgQuery[0]); + } + + }; + + $ax.public.fn.getComponentId = function (id, componentId) { + var idParts = id.split('-'); + idParts[0] = idParts[0] + componentId; + return idParts.join('-'); + } + + var _resetTextJson = function(id, textid) { + // reset the opacity + $jobj(id).children().css('opacity', ''); + + var cacheObject = _originalTextCache[textid]; + if(cacheObject) { + _transformTextWithVerticalAlignment(textid, function() { + var styleCache = cacheObject.styleCache; + var textQuery = $('#' + textid); + textQuery.find('*').each(function(index, element) { + element.style.cssText = styleCache[element.id]; + }); + }); + } + }; + + // Preserves the alingment for the element textid after executing transformFn + + var _getRtfElementHeight = function(rtfElement) { + if(rtfElement.innerHTML == '') rtfElement.innerHTML = ' '; + + // To handle render text as image + var images = $(rtfElement).children('img'); + if(images.length) return images.height(); + return rtfElement.offsetHeight; + }; + + // why microsoft decided to default to round to even is beyond me... + var _roundToEven = function(number) { + var numString = number.toString(); + var parts = numString.split('.'); + if(parts.length == 1) return number; + if(parts[1].length == 1 && parts[1] == '5') { + var wholePart = Number(parts[0]); + return wholePart % 2 == 0 ? wholePart : wholePart + 1; + } else return Math.round(number); + }; + + var _transformTextWithVerticalAlignment = $ax.style.transformTextWithVerticalAlignment = function(textId, transformFn) { + if(!_originalTextCache[textId]) { + $ax.style.CacheOriginalText(textId); + } + + var rtfElement = window.document.getElementById(textId); + if(!rtfElement) return; + + transformFn(); + + _storeIdToAlignProps(textId); + + $ax.style.updateTextAlignmentForVisibility(textId); + }; + + // this is for vertical alignments set on hidden objects + var _idToAlignProps = {}; + + _style.checkAlignmentQueue = function (id) { + var index = queuedTextToAlign.indexOf(id); + if (index != -1) { + $ax.splice(queuedTextToAlign, index, 1); + _style.updateTextAlignmentForVisibility(id); + } + } + + var queuedTextToAlign = []; + $ax.style.updateTextAlignmentForVisibility = function (textId) { + var textObj = $jobj(textId); + // must check if parent id exists. Doesn't exist for text objs in check boxes, and potentially elsewhere. + var parentId = textObj.parent().attr('id'); + if (parentId && $ax.visibility.isContainer(parentId)) { + if (queuedTextToAlign.indexOf(textId) == -1) queuedTextToAlign.push(textId); + return; + } + + var alignProps = _idToAlignProps[textId]; + if(!alignProps || !_getObjVisible(textId)) return; + + _setTextAlignment(textId, alignProps); + }; + + var _getObjVisible = _style.getObjVisible = function(id) { + var element = document.getElementById(id); + return element && (element.offsetWidth || element.offsetHeight); + }; + + var _setTextAlignment = function (textId, alignProps, updateProps) { + if(updateProps) { + _storeIdToAlignProps(textId); + } + if(!alignProps) return; + + var vAlign = alignProps.vAlign; + var paddingTop = Number(alignProps.paddingTop); + var paddingBottom = Number(alignProps.paddingBottom); + var paddingLeft = Number(alignProps.paddingLeft); + var paddingRight = Number(alignProps.paddingRight); + + var topParam = 0.0; + var bottomParam = 1.0; + var leftParam = 0.0; + var rightParam = 1.0; + + var textObj = $jobj(textId); + var textHeight = _getRtfElementHeight(textObj[0]); + var textObjParent = textObj.offsetParent(); + var parentId = textObjParent.attr('id'); + var isConnector = false; + if(parentId) { + parentId = $ax.visibility.getWidgetFromContainer(textObjParent.attr('id')); + textObjParent = $jobj(parentId); + var parentObj = $obj(parentId); + if (parentObj['bottomTextPadding']) bottomParam = parentObj['bottomTextPadding']; + if (parentObj['topTextPadding']) topParam = parentObj['topTextPadding']; + if (parentObj['leftTextPadding']) leftParam = parentObj['leftTextPadding']; + if (parentObj['rightTextPadding']) rightParam = parentObj['rightTextPadding']; + + // for now all this smart shapes weird shit is mutually exclusive from compound vectors. + + isConnector = parentObj.type == $ax.constants.CONNECTOR_TYPE; + } + if (isConnector) return; + + var axTextObjectParent = $ax('#' + textObjParent.attr('id')); + + var oldWidth = $ax.getNumFromPx(textObj.css('width')); + var oldLeft = $ax.getNumFromPx(textObj.css('left')); + var oldTop = $ax.getNumFromPx(textObj.css('top')); + + var newTop = 0; + var newLeft = 0.0; + + var width = axTextObjectParent.width(); + var height = axTextObjectParent.height(); + + // If text rotated need to handle getting the correct width for text based on bounding rect of rotated parent. + var boundingRotation = -$ax.move.getRotationDegree(textId); + var boundingParent = $axure.fn.getBoundingSizeForRotate(width, height, boundingRotation); + var extraLeftPadding = (width - boundingParent.width) / 2; + width = boundingParent.width; + var relativeTop = 0.0; + relativeTop = height * topParam; + var containerHeight = height * bottomParam - relativeTop; + + if (vAlign == "middle") newTop = _roundToEven(relativeTop + (containerHeight - textHeight + paddingTop - paddingBottom) / 2); + else if (vAlign == "bottom") newTop = _roundToEven(relativeTop + containerHeight - textHeight - paddingBottom); + else newTop = _roundToEven(paddingTop + relativeTop); + + newLeft = paddingLeft + extraLeftPadding + width * leftParam; + + var newWidth = width * (rightParam - leftParam) - paddingLeft - paddingRight; + var vertChange = oldTop != newTop; + if (vertChange) textObj.css('top', newTop + 'px'); + + var horizChange = newWidth != oldWidth || newLeft != oldLeft; + if (horizChange) { + textObj.css('left', newLeft); + textObj.width(newWidth); + } + if ((vertChange || horizChange)) _updateTransformOrigin(textId); + }; + + var _updateTransformOrigin = function(textId) { + var textObj = $jobj(textId); + var transformOrigin = textObj.css('-webkit-transform-origin') || + textObj.css('-moz-transform-origin') || + textObj.css('-ms-transform-origin') || + textObj.css('transform-origin'); + if(transformOrigin) { + var textObjParent = $ax('#' + textObj.parent().attr('id')); + var newX = (textObjParent.width() / 2 - textObj.css('left').replace('px', '')); + var newY = (textObjParent.height() / 2 - textObj.css('top').replace('px', '')); + var newOrigin = newX + 'px ' + newY + 'px'; + textObj.css('-webkit-transform-origin', newOrigin); + textObj.css('-moz-transform-origin', newOrigin); + textObj.css('-ms-transform-origin', newOrigin); + textObj.css('transform-origin', newOrigin); + } + }; + + $ax.style.reselectElements = function() { + for(var id in _selectedWidgets) { + // Only looking for the selected widgets that don't have their class set + if(!_selectedWidgets[id] || $jobj(id).hasClass('selected')) continue; + + $jobj(id).addClass('selected'); + _applyImageAndTextJson(id, $ax.style.generateState(id)); + } + + for(id in _disabledWidgets) { + // Only looking for the disabled widgets that don't have their class yet + if (!_disabledWidgets[id] || $jobj(id).hasClass('disabled')) continue; + + $jobj(id).addClass('disabled'); + _applyImageAndTextJson(id, $ax.style.generateState(id)); + } + } + + $ax.style.clearAdaptiveStyles = function() { + for(var shapeId in _adaptiveStyledWidgets) { + var elementIds = [shapeId]; + var repeaterId = $ax.getParentRepeaterFromScriptId(shapeId); + if(repeaterId) { + var itemIds = $ax.getItemIdsForRepeater(repeaterId); + elementIds = []; + for(var i = 0; i < itemIds; i++) elementIds.push($ax.repeater.createElementId(shapeId, itemIds[i])); + } + for(var index = 0; index < elementIds.length; index++) { + var elementId = _getButtonShapeId(elementIds[index]); + if(elementId) { + var textId = $ax.style.GetTextIdFromShape(elementId); + _resetTextJson(elementId, textId); + _applyImageAndTextJson(elementId, $ax.style.generateState(elementId)); + } + } + } + + _adaptiveStyledWidgets = {}; + }; + + $ax.style.setAdaptiveStyle = function(shapeId, style) { + _adaptiveStyledWidgets[$ax.repeater.getScriptIdFromElementId(shapeId)] = style; + + var textId = $ax.style.GetTextIdFromShape(shapeId); + if(textId) _applyTextStyle(textId, style); + + $ax.placeholderManager.refreshPlaceholder(shapeId); + + // removing this for now + // if(style.location) { + // $jobj(shapeId).css('top', style.location.x + "px") + // .css('left', style.location.y + "px"); + // } + }; + + //------------------------------------------------------------------------- + // _applyTextStyle + // + // Applies a rollover style to a text element. + // id : the id of the text object to set. + // styleProperties : an object mapping style properties to values. eg: + // { 'fontWeight' : 'bold', + // 'fontStyle' : 'italic' } + //------------------------------------------------------------------------- + var _applyTextStyle = function(id, style) { + _transformTextWithVerticalAlignment(id, function() { + var styleProperties = _getCssStyleProperties(style); + $('#' + id).find('*').each(function(index, element) { + _applyCssProps(element, styleProperties); + }); + }); + }; + + var _applyCssProps = function(element, styleProperties, applyAllStyle) { + if(applyAllStyle) { + var allProps = styleProperties.allProps; + for(var prop in allProps) element.style[prop] = allProps[prop]; + } else { + var nodeName = element.nodeName.toLowerCase(); + if(nodeName == 'p') { + var parProps = styleProperties.parProps; + for(prop in parProps) element.style[prop] = parProps[prop]; + } else if(nodeName != 'a') { + var runProps = styleProperties.runProps; + for(prop in runProps) element.style[prop] = runProps[prop]; + } + } + }; + + var _getCssShadow = function(shadow) { + return !shadow.on ? "none" + : shadow.offsetX + "px " + shadow.offsetY + "px " + shadow.blurRadius + "px " + _getCssColor(shadow.color); + }; + + var _getCssStyleProperties = function(style) { + var toApply = {}; + toApply.runProps = {}; + toApply.parProps = {}; + toApply.allProps = {}; + + if(style.fontName) toApply.allProps.fontFamily = toApply.runProps.fontFamily = style.fontName; + // we need to set font size on both runs and pars because otherwise it well mess up the measure and thereby vertical alignment + if(style.fontSize) toApply.allProps.fontSize = toApply.runProps.fontSize = toApply.parProps.fontSize = style.fontSize; + if(style.fontWeight !== undefined) toApply.allProps.fontWeight = toApply.runProps.fontWeight = style.fontWeight; + if(style.fontStyle !== undefined) toApply.allProps.fontStyle = toApply.runProps.fontStyle = style.fontStyle; + if(style.underline !== undefined) toApply.allProps.textDecoration = toApply.runProps.textDecoration = style.underline ? 'underline' : 'none'; + if(style.foreGroundFill) { + toApply.allProps.color = toApply.runProps.color = _getColorFromFill(style.foreGroundFill); + //if(style.foreGroundFill.opacity) toApply.allProps.opacity = toApply.runProps.opacity = style.foreGroundFill.opacity; + } + if(style.horizontalAlignment) toApply.allProps.textAlign = toApply.parProps.textAlign = toApply.runProps.textAlign = style.horizontalAlignment; + if(style.lineSpacing) toApply.allProps.lineHeight = toApply.parProps.lineHeight = style.lineSpacing; + if(style.textShadow) toApply.allProps.textShadow = toApply.parProps.textShadow = _getCssShadow(style.textShadow); + + return toApply; + }; + + var _getColorFromFill = function(fill) { + //var fillString = '00000' + fill.color.toString(16); + //return '#' + fillString.substring(fillString.length - 6); + var val = fill.color; + var color = {}; + color.b = val % 256; + val = Math.floor(val / 256); + color.g = val % 256; + val = Math.floor(val / 256); + color.r = val % 256; + color.a = typeof (fill.opacity) == 'number' ? fill.opacity : 1; + return _getCssColor(color); + }; + + var _getCssColor = function(rgbaObj) { + return "rgba(" + rgbaObj.r + ", " + rgbaObj.g + ", " + rgbaObj.b + ", " + rgbaObj.a + ")"; + }; + + // //-------------------------------------------------------------------------- + // // ApplyStyleRecursive + // // + // // Applies a style recursively to all span and div tags including elementNode + // // and all of its children. + // // + // // element : the element to apply the style to + // // styleName : the name of the style property to set (eg. 'font-weight') + // // styleValue : the value of the style to set (eg. 'bold') + // //-------------------------------------------------------------------------- + // function ApplyStyleRecursive(element, styleName, styleValue) { + // var nodeName = element.nodeName.toLowerCase(); + + // if (nodeName == 'div' || nodeName == 'span' || nodeName == 'p') { + // element.style[styleName] = styleValue; + // } + + // for (var i = 0; i < element.childNodes.length; i++) { + // ApplyStyleRecursive(element.childNodes[i], styleName, styleValue); + // } + // } + + // //--------------------------------------------------------------------------- + // // ApplyTextProperty + // // + // // Applies a text property to rtfElement. + // // + // // rtfElement : the the root text element of the rtf object (this is the + // // element named _rtf + // // prop : the style property to set. + // // value : the style value to set. + // //--------------------------------------------------------------------------- + // function ApplyTextProperty(rtfElement, prop, value) { + // /* + // var oldHtml = rtfElement.innerHTML; + // if (prop == 'fontWeight') { + // rtfElement.innerHTML = oldHtml.replace(/< *b *\/?>/gi, ""); + // } else if (prop == 'fontStyle') { + // rtfElement.innerHTML = oldHtml.replace(/< *i *\/?>/gi, ""); + // } else if (prop == 'textDecoration') { + // rtfElement.innerHTML = oldHtml.replace(/< *u *\/?>/gi, ""); + // } + // */ + + // for (var i = 0; i < rtfElement.childNodes.length; i++) { + // ApplyStyleRecursive(rtfElement.childNodes[i], prop, value); + // } + // } + //} + + //--------------------------------------------------------------------------- + // GetAndCacheOriginalText + // + // Gets the html for the pre-rollover state and returns the Html representing + // the Rich text. + //--------------------------------------------------------------------------- + var CACHE_COUNTER = 0; + + $ax.style.CacheOriginalText = function(textId, hasRichTextBeenSet) { + var rtfQuery = $('#' + textId); + if(rtfQuery.length > 0) { + + var styleCache = {}; + rtfQuery.find('*').each(function(index, element) { + var elementId = element.id; + if(!elementId) element.id = elementId = 'cache' + CACHE_COUNTER++; + styleCache[elementId] = element.style.cssText; + }); + + _originalTextCache[textId] = { + styleCache: styleCache + }; + if(hasRichTextBeenSet) { + var shapeId = _getShapeIdFromText(textId); + _shapesWithSetRichText[shapeId] = true; + } + } + }; + + $ax.style.ClearCacheForRepeater = function(repeaterId) { + for(var elementId in _originalTextCache) { + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + if($ax.getParentRepeaterFromScriptId(scriptId) == repeaterId) delete _originalTextCache[elementId]; + } + }; + + + + $ax.style.prefetch = function() { + var scriptIds = $ax.getAllScriptIds(); + var image = new Image(); + for(var i = 0; i < scriptIds.length; i++) { + var obj = $obj(scriptIds[i]); + if (!$ax.public.fn.IsImageBox(obj.type)) continue; + var images = obj.images; + for (var key in images) image.src = images[key]; + + var imageOverrides = obj.imageOverrides; + for(var elementId in imageOverrides) { + var override = imageOverrides[elementId]; + for (var state in override) { + _addImageOverride(elementId, state, override[state]); + image.src = override[state]; + } + } + } + }; +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/tree.js b/codes/agent/game-docker/api/document/resources/scripts/axure/tree.js new file mode 100644 index 0000000..5646d0a --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/tree.js @@ -0,0 +1,186 @@ +// This is actually for BOTH trees and menus +$axure.internal(function($ax) { + var _tree = $ax.tree = {}; + var _menu = $ax.menu = {}; + + $ax.menu.InitializeSubmenu = function(subMenuId, cellId) { + var $submenudiv = $('#' + subMenuId); + + //mouseenter and leave for parent table cell + $('#' + cellId).mouseenter(function(e) { + //show current submenu +// var submenuElement = document.getElementById(subMenuId); +// if($ax.visibility.IsVisible(submenuElement) && submenuElement.style.display !== 'none') return; + $ax.visibility.SetIdVisible(subMenuId, true); + $ax.legacy.BringToFront(subMenuId); + _fireEventForSubmenu(subMenuId, "onShow"); + + }).mouseleave(function (e) { + var offset = $submenudiv.offset(); + var subcontwidth = $submenudiv.width(); + var subcontheight = $submenudiv.height(); + //If mouse is not within the submenu (added 3 pixel margin to top and left calculations), then close the submenu... + if(e.pageX + 3 < offset.left || e.pageX > offset.left + subcontwidth || e.pageY + 3 < offset.top || e.pageY > offset.top + subcontheight) { + $submenudiv.find('.sub_menu').andSelf().each(function () { +// if(!$ax.visibility.IsVisible(this)) return; + $ax.visibility.SetVisible(this, false); + _fireEventForSubmenu(subMenuId, "onHide"); + }); + $ax.style.SetWidgetHover(cellId, false); + } + }); + + $submenudiv.css('display', 'none'); + + //mouseleave for submenu + $submenudiv.mouseleave(function(e) { + //close this menu and all menus below it + $(this).find('.sub_menu').andSelf().css({ 'visibility': 'hidden', 'display': 'none' }).each(function () { +// if(!$ax.visibility.IsVisible(this)) return; + _fireEventForSubmenu(this.id, "onHide"); + }); + $ax.style.SetWidgetHover(cellId, false); + }); + }; + + var _fireEventForSubmenu = function(targetId, eventName) { + var diagramObject = $ax.getObjectFromElementId(targetId); + var event = diagramObject.interactionMap && diagramObject.interactionMap[eventName]; + if(event) { + var eventInfo = $ax.getEventInfoFromEvent($ax.getjBrowserEvent(), false, targetId); + $ax.event.handleEvent(targetId, eventInfo, event, false, true); + } + } + + function IsNodeVisible(nodeId) { + var current = window.document.getElementById(nodeId); + var parent = current.parentNode; + + //move all the parent's children that are below the node and their annotations + while(!$(current).hasClass("treeroot")) { + if(!$ax.visibility.IsVisible(parent)) return false; + current = parent; + parent = parent.parentNode; + } + return true; + } + + $ax.tree.ExpandNode = function(nodeId, childContainerId, plusMinusId) { + var container = window.document.getElementById(childContainerId); + if(!container || $ax.visibility.IsVisible(container)) return; + $ax.visibility.SetVisible(container, true); + + if(plusMinusId != '') $ax.style.SetWidgetSelected(plusMinusId, true); + + var delta = _getExpandCollapseDelta(nodeId, childContainerId); + + var isVisible = IsNodeVisible(nodeId); + var current = window.document.getElementById(nodeId); + var parent = current.parentNode; + + //move all the parent's children that are below the node and their annotations + while(!$(current).hasClass("treeroot")) { + var after = false; + var i = 0; + for(i = 0; i < parent.childNodes.length; i++) { + var child = parent.childNodes[i]; + if(after && child.id && $(child).hasClass("treenode")) { + var elementId = child.id; + child.style.top = Number($(child).css('top').replace("px", "")) + delta + 'px'; + var ann = window.document.getElementById(elementId + "_ann"); + if(ann) ann.style.top = Number($(ann).css('top').replace("px", "")) + delta + 'px'; + } + if(child == current) after = true; + } + current = parent; + parent = parent.parentNode; + if(!isVisible && $ax.visibility.IsVisible(parent)) break; + } + }; + + $ax.tree.CollapseNode = function(nodeId, childContainerId, plusMinusId) { + var container = window.document.getElementById(childContainerId); + if(!container || !$ax.visibility.IsVisible(container)) return; + + if(plusMinusId != '') $ax.style.SetWidgetSelected(plusMinusId, false); + + var delta = _getExpandCollapseDelta(nodeId, childContainerId); + + //hide it after getting the delta, otherwise the delta can't be calculated (offsetParent is null) + $ax.visibility.SetVisible(container, false); + + var isVisible = IsNodeVisible(nodeId); + var current = window.document.getElementById(nodeId); + var parent = current.parentNode; + + //move all the parent's children that are below the node and their annotations + while(!$(current).hasClass("treeroot")) { + var after = false; + var i = 0; + for(i = 0; i < parent.childNodes.length; i++) { + var child = parent.childNodes[i]; + if(after && child.id && $(child).hasClass("treenode")) { + var elementId = child.id; + child.style.top = Number($(child).css('top').replace("px", "")) - delta + 'px'; + var ann = window.document.getElementById(elementId + "_ann"); + if(ann) ann.style.top = Number($(ann).css('top').replace("px", "")) - delta + 'px'; + } + if(child == current) after = true; + } + current = parent; + parent = current.parentNode; + if(!isVisible && $ax.visibility.IsVisible(parent)) break; + } + }; + + var _getExpandCollapseDelta = function(nodeId, childContainerId) { + return _getChildContainerHeightHelper(childContainerId); + }; + + var _getChildContainerHeightHelper = function(childContainerId) { + var height = 0; + $('#' + childContainerId).children().each(function() { + if($(this).hasClass("treenode")) { + height += $(this).height(); + var subContainer = window.document.getElementById(this.id + '_children'); + if(subContainer && $ax.visibility.IsVisible(subContainer)) { + height += _getChildContainerHeightHelper(subContainer.id); + } + } + }); + return height; + }; + + $ax.tree.InitializeTreeNode = function(nodeId, plusminusid, childContainerId, selectText) { + var childContainer = window.document.getElementById(childContainerId); + if(childContainer) { + //relying on the html generator to put this inline so we know to collapse by default + var isCollapsed = childContainer.style.visibility == "hidden"; + if(isCollapsed) $ax.visibility.SetVisible(childContainer, false); + + if(!isCollapsed && plusminusid != '') $ax.style.SetWidgetSelected(plusminusid, true); + } + + if(plusminusid != '') { + $jobj(plusminusid).click(function() { + var visibleSet = $ax.visibility.IsIdVisible(childContainerId); + + if(visibleSet) $ax.tree.CollapseNode(nodeId, childContainerId, plusminusid); + else $ax.tree.ExpandNode(nodeId, childContainerId, plusminusid); + $ax.tree.SelectTreeNode(nodeId, true); + + return false; + }).css('cursor', 'default'); + } + }; + + var _getButtonShapeId = function(id) { + var obj = $obj(id); + return $ax.public.fn.IsTreeNodeObject(obj.type) ? $ax.getElementIdFromPath([obj.buttonShapeId], { relativeTo: id }) : id; + }; + + $ax.tree.SelectTreeNode = function(id, selected) { + $ax.style.SetWidgetSelected(_getButtonShapeId(id), selected); + }; + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/utils.temp.js b/codes/agent/game-docker/api/document/resources/scripts/axure/utils.temp.js new file mode 100644 index 0000000..4bdb50a --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/utils.temp.js @@ -0,0 +1,100 @@ +// ******* Deep Copy ******** // +$axure.internal(function($ax) { + // TODO: [ben] Ah, infinite loops cause major issues here. Tried saving objects we've already hit, but that didn't seem to work (at least at my first shot). + var _deepCopy = function(original, trackCopies) { + if(trackCopies) { + var index = _getCopyIndex(original); + if(index != -1) return _originalToCopy[index][1]; + } + var isArray = original instanceof Array; + var isObject = !(original instanceof Function) && !(original instanceof Date) && (original instanceof Object); + if(!isArray && !isObject) return original; + var copy = isArray ? [] : { }; + if(trackCopies) _originalToCopy.push([original, copy]); + isArray ? deepCopyArray(original, trackCopies, copy) : deepCopyObject(original, trackCopies, copy); + return copy; + }; + $ax.deepCopy = _deepCopy; + + // Hacky way to copy event info. Copying dragInfo causes major issues due to infinite loops + // Hashmap doesn't map objects well. It just toStrings them, making them all the same key. This has to be slow... + var _originalToCopy = []; + var _getCopyIndex = function(original) { + for(var i = 0; i < _originalToCopy.length; i++) if(original === _originalToCopy[i][0]) return i; + return -1; + }; + + $ax.eventCopy = function(eventInfo) { + var dragInfo = eventInfo.dragInfo; + delete eventInfo.dragInfo; + var copy = _deepCopy(eventInfo, true); + copy.dragInfo = dragInfo; + eventInfo.dragInfo = dragInfo; + // reset the map. + _originalToCopy = []; + + return copy; + }; + + var deepCopyArray = function(original, trackCopies, copy) { + for(var i = 0; i < original.length; i++) { + copy[i] = _deepCopy(original[i], trackCopies); + } + }; + + var deepCopyObject = function(original, trackCopies, copy) { + for(var key in original) { + if(!original.hasOwnProperty(key)) continue; + copy[key] = _deepCopy(original[key], trackCopies); + } + }; + + // Our implementation of splice because it is broken in IE8... + $ax.splice = function(array, startIndex, count) { + var retval = []; + if(startIndex >= array.length || startIndex < 0 || count == 0) return retval; + if(!count || startIndex + count > array.length) count = array.length - startIndex; + for(var i = 0; i < count; i++) retval[i] = array[startIndex + i]; + for(i = startIndex + count; i < array.length; i++) array[i - count] = array[i]; + for(i = 0; i < count; i++) array.pop(); + return retval; + }; +}); + + + +// ******* Flow Shape Links ******** // +$axure.internal(function($ax) { + + if(!$ax.document.configuration.linkFlowsToPages && !$ax.document.configuration.linkFlowsToPagesNewWindow) return; + + $(window.document).ready(function() { + $ax(function (dObj) { return ($ax.public.fn.IsVector(dObj.type) || $ax.public.fn.IsSnapshot(dObj.type)) && dObj.referencePageUrl; }).each(function (dObj, elementId) { + + var elementIdQuery = $('#' + elementId); + + if($ax.document.configuration.linkFlowsToPages && !$ax.event.HasClick(dObj)) { + elementIdQuery.css("cursor", "pointer"); + elementIdQuery.click(function() { + $ax.navigate({ + url: dObj.referencePageUrl, + target: "current", + includeVariables: true + }); + }); + } + + if($ax.document.configuration.linkFlowsToPagesNewWindow) { + $('#' + elementId + "_ref").append("
    "); + $('#' + elementId + "PagePopup").click(function() { + $ax.navigate({ + url: dObj.referencePageUrl, + target: "new", + includeVariables: true + }); + }); + } + }); + }); + +}); diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/variables.js b/codes/agent/game-docker/api/document/resources/scripts/axure/variables.js new file mode 100644 index 0000000..81ced2d --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/variables.js @@ -0,0 +1,151 @@ +// ******* GLOBAL VARIABLE PROVIDER ******** // +$axure.internal(function($ax) { + var _globalVariableValues = {}; + + var _globalVariableProvider = {}; + $ax.globalVariableProvider = _globalVariableProvider; + + var setVariableValue = function(variable, value, suppressBroadcast) { + if(!(value instanceof Object)) value = value.toString(); + + variable = variable.toLowerCase(); + _globalVariableValues[variable] = value; + + if(suppressBroadcast !== true) { + var varData = { + globalVarName: variable, + globalVarValue: value.toString() + }; + + $axure.messageCenter.postMessage('setGlobalVar', varData); + } + + //Post global var values only if pageData is loaded (suppresses exception which occurs when page loads) + if($ax.pageData) { + _postGlobalVarVals(); + } + }; + _globalVariableProvider.setVariableValue = setVariableValue; + + var getVariableValue = function(variable, eventInfo, ignoreDefaultsForLinkUrl) { + variable = variable.toLowerCase(); + if(_globalVariableValues[variable] !== undefined) { + //If this is for the GetLinkUrl function and + //the current value of the global variable is the same as the default defined in the document, don't return it + if(ignoreDefaultsForLinkUrl == true && $ax.document.globalVariables[variable] == _globalVariableValues[variable]) { + return null; + } + + return _globalVariableValues[variable]; + } + if($ax.document.globalVariables[variable] !== undefined) return ignoreDefaultsForLinkUrl == true ? null : $ax.document.globalVariables[variable]; + switch(variable) { + case "pagename": return $ax.pageData.page.name; + + case "now": return eventInfo.now; + case "gendate": return $ax.pageData.generationDate; + + case "dragx": return $ax.drag.GetDragX(); + case "dragy": return $ax.drag.GetDragY(); + case "totaldragx": return $ax.drag.GetTotalDragX(); + case "totaldragy": return $ax.drag.GetTotalDragY(); + case "dragtime": return $ax.drag.GetDragTime(); + + case "math": return Math; + case "date": return Date; + + case "window": return eventInfo && eventInfo.window; + case "this": return eventInfo && eventInfo.srcElement && $ax.getWidgetInfo(eventInfo.srcElement); + case "item": return (eventInfo && eventInfo.item && eventInfo.item.valid && eventInfo.item) || getVariableValue('targetitem', eventInfo, ignoreDefaultsForLinkUrl); + case "targetitem": return eventInfo && eventInfo.targetElement && $ax.getItemInfo(eventInfo.targetElement); + case "repeater": return eventInfo && eventInfo.repeater; + case "target": return eventInfo && eventInfo.targetElement && $ax.getWidgetInfo(eventInfo.targetElement); + case "cursor": return eventInfo && eventInfo.cursor; + default: + var gen = variable.substr(0, 3) == "gen"; + var date = gen ? $ax.pageData.generationDate : new Date(); + var prop = gen ? variable.substr(3) : variable; + switch(prop) { + case "day": return date.getDate(); + case "month": return date.getMonth() + 1; + case "monthname": return $ax.getMonthName(date.getMonth()); + case "dayofweek": return $ax.getDayOfWeek(date.getDay()); + case "year": return date.getFullYear(); + case "time": return date.toLocaleTimeString(); + case "hours": return date.getHours(); + case "minutes": return date.getMinutes(); + case "seconds": return date.getSeconds(); + default: return ''; + } + } + }; + _globalVariableProvider.getVariableValue = getVariableValue; + + var load = function() { + var csum = false; + + var query = (window.location.href.split("#")[1] || ''); //hash.substring(1); Firefox decodes this so & in variables breaks + if(query.length > 0) { + var vars = query.split("&"); + for(var i = 0; i < vars.length; i++) { + var pair = vars[i].split("="); + var varName = pair[0]; + var varValue = pair[1]; + if(varName) { + if(varName == 'CSUM') { + csum = true; + } else setVariableValue(varName, decodeURIComponent(varValue), true); + } + } + + if(!csum && query.length > 250) { + window.alert('Axure Warning: The variable values were too long to pass to this page.\n\nIf you are using IE, using Chrome or Firefox will support more data.'); + } + } + }; + + var getLinkUrl = function(baseUrl) { + var toAdd = ''; + var definedVariables = _getDefinedVariables(); + for(var i = 0; i < definedVariables.length; i++) { + var key = definedVariables[i]; + var val = getVariableValue(key, undefined, true); + if(val != null) { + if(toAdd.length > 0) toAdd += '&'; + toAdd += key + '=' + encodeURIComponent(val); + } + } + return toAdd.length > 0 ? baseUrl + ($axure.shouldSendVarsToServer() ? '?' : '#') + toAdd + "&CSUM=1" : baseUrl; + }; + _globalVariableProvider.getLinkUrl = getLinkUrl; + + var _getDefinedVariables = function() { + return $ax.pageData.variables; + }; + _globalVariableProvider.getDefinedVariables = _getDefinedVariables; + + var _postGlobalVarVals = function() { + var retVal = {}; + var definedVariables = _getDefinedVariables(); + for(var i = 0; i < definedVariables.length; i++) { + var key = definedVariables[i]; + var val = getVariableValue(key); + if(val != null) { + retVal[key] = val; + } + } + + $ax.messageCenter.postMessage('globalVariableValues', retVal); + }; + + $ax.messageCenter.addMessageListener(function(message, data) { + if(message == 'getGlobalVariables') { + _postGlobalVarVals(); + } else if(message == 'resetGlobalVariables') { + _globalVariableValues = {}; + _postGlobalVarVals(); + } + }); + + load(); +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/viewer.js b/codes/agent/game-docker/api/document/resources/scripts/axure/viewer.js new file mode 100644 index 0000000..df653aa --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/viewer.js @@ -0,0 +1,80 @@ +// ******* SITEMAP TOOLBAR VIEWER ACTIONS ******** // +$axure.internal(function ($ax) { + var userTriggeredEventNames = ['onClick', 'onDoubleClick', 'onMouseOver', 'onMouseMove', 'onMouseOut', 'onMouseDown', 'onMouseUp', + 'onKeyDown', 'onKeyUp', 'onFocus', 'onLostFocus', 'onTextChange', 'onSelectionChange', 'onSelectedChange', 'onSelect', 'onUnselect', + 'onSwipeLeft', 'onSwipeRight', 'onSwipeUp', 'onSwipeDown', 'onDragStart', 'onDrag', 'onDragDrop', 'onScroll', 'onContextMenu', 'onMouseHover', 'onLongClick']; + + $ax.messageCenter.addMessageListener(function(message, data) { + //If annotation toggle message received from sitemap, toggle footnotes + if(message == 'annotationToggle') { + if(data == true) { + $('div.annotation').show(); + $('div.annnotelabel').show(); + $('div.annnoteimage').show(); + } else { + $('div.annotation').hide(); + $('div.annnotelabel').hide(); + $('div.annnoteimage').hide(); + } + } + }); + + var lastSelectedWidgetNote; + $ax.messageCenter.addMessageListener(function (message, data) { + //If annotation toggle message received from sitemap, toggle footnotes + if(message == 'toggleSelectWidgetNote') { + if(lastSelectedWidgetNote == data) { + $('#' + lastSelectedWidgetNote).removeClass('widgetNoteSelected'); + lastSelectedWidgetNote = null; + return; + } + + if(lastSelectedWidgetNote) $('#' + lastSelectedWidgetNote).removeClass('widgetNoteSelected'); + $('#' + data).addClass('widgetNoteSelected'); + lastSelectedWidgetNote = data; + } + }); + + var highlightEnabled = false; + $ax.messageCenter.addMessageListener(function(message, data) { + if(message == 'highlightInteractive') { + highlightEnabled = data == true; + _applyHighlight($ax('*')); + } + }); + + var _applyHighlight = $ax.applyHighlight = function(query, ignoreUnset) { + if(ignoreUnset && !highlightEnabled) return; + + //Do condition to check if legacy browser (all IE, except 10) and select appropriate pulsate css class name + var userAgentString = navigator.userAgent.toLowerCase(); + + var isIEpre10 = userAgentString.indexOf('msie 9.') != -1 || + userAgentString.indexOf('msie 8.') != -1 || + userAgentString.indexOf('msie 7.') != -1 || + userAgentString.indexOf('msie 6.') != -1; + + var pulsateClassName = 'legacyPulsateBorder'; + + //Find all widgets with a defined userTriggeredEventName specified in the array above + var $matchingElements = query.filter(function(obj) { + if(obj.interactionMap) { + for(var index in userTriggeredEventNames) { + if(obj.interactionMap[userTriggeredEventNames[index]]) return true; + } + } else if ($ax.public.fn.IsVector(obj.type) && obj.referencePageUrl) { + return true; + } + return false; + }).$(); + + var isHighlighted = $matchingElements.is('.' + pulsateClassName); + + //Toggle the pulsate class on the matched elements + if(highlightEnabled && !isHighlighted) { + $matchingElements.addClass(pulsateClassName); + } else if(!highlightEnabled && isHighlighted) { + $matchingElements.removeClass(pulsateClassName); + } + }; +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axure/visibility.js b/codes/agent/game-docker/api/document/resources/scripts/axure/visibility.js new file mode 100644 index 0000000..17efe4f --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axure/visibility.js @@ -0,0 +1,1031 @@ +$axure.internal(function($ax) { + var document = window.document; + var _visibility = {}; + $ax.visibility = _visibility; + + var _defaultHidden = {}; + var _defaultLimbo = {}; + + // ****************** Visibility and State Functions ****************** // + + var _isIdVisible = $ax.visibility.IsIdVisible = function(id) { + return $ax.visibility.IsVisible(window.document.getElementById(id)); + }; + + $ax.visibility.IsVisible = function(element) { + //cannot use css('visibility') because that gets the effective visiblity + //e.g. won't be able to set visibility on panels inside hidden panels + return element.style.visibility != 'hidden'; + }; + + $ax.visibility.SetIdVisible = function(id, visible) { + $ax.visibility.SetVisible(window.document.getElementById(id), visible); + // Hide lightbox if necessary + if(!visible) { + $jobj($ax.repeater.applySuffixToElementId(id, '_lightbox')).remove(); + $ax.flyoutManager.unregisterPanel(id, true); + } + }; + + var _setAllVisible = function(query, visible) { + for(var i = 0; i < query.length; i++) _visibility.SetVisible(query[i], visible); + } + + $ax.visibility.SetVisible = function(element, visible) { + //todo -- ahhhh! I really don't want to add this, I don't know why it is necessary (right now sliding panel state out then in then out breaks + //and doesn't go hidden on the second out if we do not set display here. + if(visible) { + //hmmm i will need to remove the class here cause display will not be overwriten by set to '' + if($(element).hasClass(HIDDEN_CLASS)) $(element).removeClass(HIDDEN_CLASS); + if($(element).hasClass(UNPLACED_CLASS)) $(element).removeClass(UNPLACED_CLASS); + element.style.display = ''; + element.style.visibility = 'visible'; + } else { + element.style.display = 'none'; + element.style.visibility = 'hidden'; + } + }; + + var _setWidgetVisibility = $ax.visibility.SetWidgetVisibility = function(elementId, options) { + // If limboed, just fire the next action then leave. + if(_limboIds[elementId]) { + $ax.action.fireAnimationFromQueue(elementId, $ax.action.queueTypes.fade); + return; + } + + options.containInner = true; + var query = $jobj(elementId); + var parentId = query.parent().attr('id'); + var axObj = $obj(elementId); + var preserveScroll = false; + var isPanel = $ax.public.fn.IsDynamicPanel(axObj.type); + var isLayer = $ax.public.fn.IsLayer(axObj.type); + if(isPanel || isLayer) { + //if dp has scrollbar, save its scroll position + if(isPanel && axObj.scrollbars != 'none') { + var shownState = $ax.dynamicPanelManager.getShownState(elementId); + preserveScroll = true; + //before hiding, try to save scroll location + if(!options.value && shownState) { + DPStateAndScroll[elementId] = { + shownId: shownState.attr('id'), + left: shownState.scrollLeft(), + top: shownState.scrollTop() + } + } + } + + _pushContainer(elementId, isPanel); + if(isPanel && !options.value) _tryResumeScrollForDP(elementId); + var complete = options.onComplete; + options.onComplete = function () { + if(complete) complete(); + _popContainer(elementId, isPanel); + //after showing dp, restore the scoll position + if(isPanel && options.value) _tryResumeScrollForDP(elementId, true); + } + options.containerExists = true; + } + _setVisibility(parentId, elementId, options, preserveScroll); + + //set the visibility of the annotation box as well if it exists + var ann = document.getElementById(elementId + "_ann"); + if(ann) _visibility.SetVisible(ann, options.value); + + //set ref visibility for ref of flow shape, if that exists + var ref = document.getElementById(elementId + '_ref'); + if(ref) _visibility.SetVisible(ref, options.value); + }; + + var _setVisibility = function(parentId, childId, options, preserveScroll) { + var wrapped = $jobj(childId); + + + + //easing: easingOut + + + var completeTotal = 1; + var visible = $ax.visibility.IsIdVisible(childId); + + if(visible == options.value) { + options.onComplete && options.onComplete(); + $ax.action.fireAnimationFromQueue(childId, $ax.action.queueTypes.fade); + return; + } + + var child = $jobj(childId); + var size = options.size || (options.containerExists ? $(child.children()[0]) : child); + + var isIdFitToContent = $ax.dynamicPanelManager.isIdFitToContent(parentId); + //fade and resize won't work together when there is a container... but we still needs the container for fit to content DPs + var needContainer = options.easing && options.easing != 'none' && (options.easing != 'fade' || isIdFitToContent); + var cullPosition = options.cull ? options.cull.css('position') : ''; + var containerExists = options.containerExists; + + var isFullWidth = $ax.dynamicPanelManager.isPercentWidthPanel($obj(childId)); + + // If fixed fit to content panel, then we must set size on it. It will be size of 0 otherwise, because container in it is absolute position. + var needSetSize = false; + var sizeObj = {}; + if(needContainer) { + var sizeId = ''; + if($ax.dynamicPanelManager.isIdFitToContent(childId)) sizeId = childId; + else { + var panelId = $ax.repeater.removeSuffixFromElementId(childId)[0]; + if($ax.dynamicPanelManager.isIdFitToContent(panelId)) sizeId = panelId; + } + + if (sizeId) { + needSetSize = true; + + sizeObj = $jobj(sizeId); + var newSize = options.cull || sizeObj; + var newAxSize = $ax('#' + newSize.attr('id')); + sizeObj.width(newAxSize.width()); + sizeObj.height(newAxSize.height()); + } + } + + var wrappedOffset = { left: 0, top: 0 }; + var visibleWrapped = wrapped; + if(needContainer) { + var childObj = $obj(childId); + if (options.cull) { + var axCull = $ax('#' + options.cull.attr('id')); + var containerWidth = axCull.width(); + var containerHeight = axCull.height(); + } else { + if(childObj && ($ax.public.fn.IsLayer(childObj.type))) {// || childObj.generateCompound)) { + var boundingRectangle = $ax.public.fn.getWidgetBoundingRect(childId); + wrappedOffset.left = boundingRectangle.left; + wrappedOffset.top = boundingRectangle.top; + containerWidth = boundingRectangle.width; + containerHeight = boundingRectangle.height; + } else { + containerWidth = $ax('#' + childId).width(); + containerHeight = $ax('#' + childId).height(); + } + } + + var containerId = $ax.visibility.applyWidgetContainer(childId); +// var container = _makeContainer(containerId, options.cull || boundingRectangle, isFullWidth, options.easing == 'flip', wrappedOffset, options.containerExists); + var container = _makeContainer(containerId, containerWidth, containerHeight, isFullWidth, options.easing == 'flip', wrappedOffset, options.containerExists); + + if(options.containInner) { + wrapped = _wrappedChildren(containerExists ? $(child.children()[0]) : child); + + // Filter for visibile wrapped children + visibleWrapped = []; + for (var i = 0; i < wrapped.length; i++) if($ax.visibility.IsVisible(wrapped[i])) visibleWrapped.push(wrapped[i]); + visibleWrapped = $(visibleWrapped); + + completeTotal = visibleWrapped.length; + if(!containerExists) container.prependTo(child); + + // Offset items if necessary + if(!containerExists && (wrappedOffset.left != 0 || wrappedOffset.top != 0)) { + for(var i = 0; i < wrapped.length; i++) { + var inner = $(wrapped[i]); + inner.css('left', $ax.getNumFromPx(inner.css('left')) - wrappedOffset.left); + inner.css('top', $ax.getNumFromPx(inner.css('top')) - wrappedOffset.top); + // Parent layer is now size 0, so have to have to use conatiner since it's the real size. + // Should we use container all the time? This may make things easier for fit panels too. + size = container; + } + } + } else if(!containerExists) container.insertBefore(child); + if(!containerExists) wrapped.appendTo(container); + + if (options.value && options.containInner) { + //has to set children first because flip to show needs childerns invisible + _setAllVisible(visibleWrapped, false); + _updateChildAlignment(childId); + _setAllVisible(child, true); + } + } + + var completeCount = 0; + var onComplete = function () { + completeCount++; + if (needContainer && completeCount == completeTotal) { + if ($ax.public.fn.isCompoundVectorHtml(container.parent()[0])) { + wrappedOffset.left = $ax.getNumFromPx(container.css('left')); + wrappedOffset.top = $ax.getNumFromPx(container.css('top')); + } + + if (options.containInner && !containerExists && (wrappedOffset.left != 0 || wrappedOffset.top != 0)) { + for (i = 0; i < wrapped.length; i++) { + inner = $(wrapped[i]); + //if ($ax.public.fn.isCompoundVectorComponentHtml(inner[0])) break; + inner.css('left', $ax.getNumFromPx(inner.css('left')) + wrappedOffset.left); + inner.css('top', $ax.getNumFromPx(inner.css('top')) + wrappedOffset.top); + } + } + + if(options.containInner && !options.value) { + _setAllVisible(child, false); + _setAllVisible(visibleWrapped, true); + } + + if(containerExists) { + if(!options.settingChild) container.css('position', 'relative;'); + } else { + wrapped.insertBefore(container); + container.remove(); + } + //child.css(css); + + // Any text set or other things that triggered alignment updating during animation can happen now. + if(options.containInner) { + for(i = 0; i < wrapped.length; i++) $ax.style.checkAlignmentQueue($(wrapped[i]).attr('id')); + } + + if(childObj && $ax.public.fn.IsDynamicPanel(childObj.type) && window.modifiedDynamicPanleParentOverflowProp) { + child.css('overflow', 'hidden'); + window.modifiedDynamicPanleParentOverflowProp = false; + } + } + + if(!needContainer || completeTotal == completeCount) { + if(options.cull) options.cull.css('position', cullPosition); + if(needSetSize) { + sizeObj.css('width', 'auto'); + sizeObj.css('height', 'auto'); + } + options.onComplete && options.onComplete(); + + if(options.fire) { + $ax.event.raiseSyntheticEvent(childId, options.value ? 'onShow' : 'onHide'); + $ax.action.fireAnimationFromQueue(childId, $ax.action.queueTypes.fade); + } + } + }; + + // Nothing actually being animated, all wrapped elements invisible + if(!visibleWrapped.length) { + if(!options.easing || options.easing == 'none') { + $ax.visibility.SetIdVisible(childId, options.value); + completeTotal = 1; + onComplete(); + } else { + window.setTimeout(function() { + completeCount = completeTotal - 1; + onComplete(); + },options.duration); + } + + return; + } + + if(!options.easing || options.easing == 'none') { + $ax.visibility.SetIdVisible(childId, options.value); + completeTotal = 1; + onComplete(); + } else if(options.easing == 'fade') { + if(options.value) { + if(preserveScroll) { + visibleWrapped.css('opacity', 0); + visibleWrapped.css('visibility', 'visible'); + visibleWrapped.css('display', 'block'); + //was hoping we could just use fadein here, but need to set display before set scroll position + _tryResumeScrollForDP(childId); + visibleWrapped.animate({ opacity: 1 }, { + duration: options.duration, + easing: 'swing', + queue: false, + complete: function() { + $ax.visibility.SetIdVisible(childId, true); + visibleWrapped.css('opacity', ''); + onComplete(); + } + }); + } else { + // Can't use $ax.visibility.SetIdVisible, because we only want to set visible, we don't want to display, fadeIn will handle that. + visibleWrapped.css('visibility', 'visible'); + visibleWrapped.fadeIn({ + queue: false, + duration: options.duration, + complete: onComplete + }); + } + } else { + // Fading here is being strange... + visibleWrapped.animate({ opacity: 0 }, { duration: options.duration, easing: 'swing', queue: false, complete: function() { + $ax.visibility.SetIdVisible(childId, false); + visibleWrapped.css('opacity', ''); + + onComplete(); + }}); + } + } else if (options.easing == 'flip') { + //this container will hold + var innerContainer = $('
    '); + innerContainer.attr('id', containerId + "_inner"); + innerContainer.data('flip', options.direction == 'left' || options.direction == 'right' ? 'y' : 'x'); + innerContainer.css({ + position: 'relative', + 'width': containerWidth, + 'height': containerHeight + }); + + innerContainer.appendTo(container); + wrapped.appendTo(innerContainer); + + if(childObj && $ax.public.fn.IsDynamicPanel(childObj.type)) var containerDiv = child; + else containerDiv = parentId ? $jobj(parentId) : child.parent(); + + completeTotal = 1; + var flipdegree; + var requestAnimFrame = window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || window.msRequestAnimationFrame || + function (callback) { + window.setTimeout(callback, 1000 / 60); + }; + + var originForUpOrDown = '100% ' + containerHeight / 2 + 'px'; + if(options.value) { + //options.value == true means in or show, note to get here, the element must be currently hidden + //to show, we need to first flip it 180deg without animation + switch(options.direction) { + case 'right': + case 'left': + _setRotateTransformation(innerContainer, 'rotateY(180deg)'); + flipdegree = options.direction === 'right' ? 'rotateY(360deg)' : 'rotateY(0deg)'; + break; + case 'up': + case 'down': + innerContainer.css({ + '-webkit-transform-origin': originForUpOrDown, + '-ms-transform-origin': originForUpOrDown, + 'transform-origin': originForUpOrDown, + }); + _setRotateTransformation(innerContainer, 'rotateX(180deg)'); + flipdegree = options.direction === 'up' ? 'rotateX(360deg)' : 'rotateX(0deg)'; + break; + } + + var onFlipShowComplete = function() { + $ax.visibility.SetIdVisible(childId, true); + + wrapped.insertBefore(innerContainer); + innerContainer.remove(); + + onComplete(); + }; + + innerContainer.css({ + '-webkit-backface-visibility': 'hidden', + 'backface-visibility': 'hidden' + }); + + child.css({ + 'display': '', + 'visibility': 'visible' + }); + + visibleWrapped.css({ + 'display': '', + 'visibility': 'visible' + }); + + innerContainer.css({ + '-webkit-transition-duration': options.duration + 'ms', + 'transition-duration': options.duration + 'ms' + }); + + if(preserveScroll) _tryResumeScrollForDP(childId); + requestAnimFrame(function () { + _setRotateTransformation(innerContainer, flipdegree, containerDiv, onFlipShowComplete, options.duration); + }); + } else { //hide or out + switch(options.direction) { + case 'right': + case 'left': + flipdegree = options.direction === 'right' ? 'rotateY(180deg)' : 'rotateY(-180deg)'; + break; + case 'up': + case 'down': + //_setRotateTransformation(wrapped, 'rotateX(0deg)'); + innerContainer.css({ + '-webkit-transform-origin': originForUpOrDown, + '-ms-transform-origin': originForUpOrDown, + 'transform-origin': originForUpOrDown, + }); + flipdegree = options.direction === 'up' ? 'rotateX(180deg)' : 'rotateX(-180deg)'; + break; + } + + var onFlipHideComplete = function() { + wrapped.insertBefore(innerContainer); + $ax.visibility.SetIdVisible(childId, false); + + innerContainer.remove(); + + onComplete(); + }; + + innerContainer.css({ + '-webkit-backface-visibility': 'hidden', + 'backface-visibility': 'hidden', + '-webkit-transition-duration': options.duration + 'ms', + 'transition-duration': options.duration + 'ms' + }); + + if(preserveScroll) _tryResumeScrollForDP(childId); + requestAnimFrame(function () { + _setRotateTransformation(innerContainer, flipdegree, containerDiv, onFlipHideComplete, options.duration); + }); + } + } else { + // Because the move is gonna fire on annotation and ref too, need to update complete total + completeTotal = $addAll(visibleWrapped, childId).length; + if(options.value) { + _slideStateIn(childId, childId, options, size, false, onComplete, visibleWrapped, preserveScroll); + } else { + var tops = []; + var lefts = []; + for(var i = 0; i < visibleWrapped.length; i++) { + var currWrapped = $(visibleWrapped[i]); + tops.push(currWrapped.css('top')); + lefts.push(currWrapped.css('left')); + } + + var onOutComplete = function () { + //bring back SetIdVisible on childId for hiding lightbox + $ax.visibility.SetIdVisible(childId, false); + for(i = 0; i < visibleWrapped.length; i++) { + currWrapped = $(visibleWrapped[i]); + $ax.visibility.SetIdVisible(currWrapped.attr('id'), false); + currWrapped.css('top', tops[i]); + currWrapped.css('left', lefts[i]); + } + onComplete(); + }; + _slideStateOut(size, childId, options, onOutComplete, visibleWrapped); + } + } + // If showing, go through all rich text objects inside you, and try to redo alignment of them + if(options.value && !options.containInner) { + _updateChildAlignment(childId); + } + }; + + var _updateChildAlignment = function(childId) { + var descendants = $jobj(childId).find('*'); + for(var i = 0; i < descendants.length; i++) { + var decendantId = descendants[i].id; + // This check is probably redundant? UpdateTextAlignment should ignore any text objects that haven't set the vAlign yet. + if($ax.getTypeFromElementId(decendantId) != 'richTextPanel') continue; + $ax.style.updateTextAlignmentForVisibility(decendantId); + } + }; + + var _wrappedChildren = function (child) { + return child.children(); + //var children = child.children(); + //var valid = []; + //for(var i = 0; i < children.length; i++) if($ax.visibility.IsVisible(children[i])) valid.push(children[i]); + //return $(valid); + }; + + var _setRotateTransformation = function(elementsToSet, transformValue, elementParent, flipCompleteCallback, flipDurationMs) { + if(flipCompleteCallback) { + //here we didn't use 'transitionend' event to fire callback + //when show/hide on one element, changing transition property will stop the event from firing + window.setTimeout(flipCompleteCallback, flipDurationMs); + } + + elementsToSet.css({ + '-webkit-transform': transformValue, + '-moz-transform': transformValue, + '-ms-transform': transformValue, + '-o-transform': transformValue, + 'transform': transformValue + }); + + //when deal with dynamic panel, we need to set it's parent's overflow to visible to have the 3d effect + //NOTE: we need to set this back when both flips finishes in DP, to prevents one animation finished first and set this back + if(elementParent && elementParent.css('overflow') === 'hidden') { + elementParent.css('overflow', 'visible'); + window.modifiedDynamicPanleParentOverflowProp = true; + } + }; + + $ax.visibility.GetPanelState = function(id) { + var children = $ax.visibility.getRealChildren($jobj(id).children()); + for(var i = 0; i < children.length; i++) { + if(children[i].style && $ax.visibility.IsVisible(children[i])) return children[i].id; + } + return ''; + }; + + var containerCount = {}; + $ax.visibility.SetPanelState = function(id, stateId, easingOut, directionOut, durationOut, easingIn, directionIn, durationIn, showWhenSet) { + var show = !$ax.visibility.IsIdVisible(id) && showWhenSet; + if(show) $ax.visibility.SetIdVisible(id, true); + + // Exit here if already at desired state. + if($ax.visibility.IsIdVisible(stateId)) { + if(show) $ax.event.raiseSyntheticEvent(id, 'onShow'); + $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.setState); + return; + } + + _pushContainer(id, true); + + var state = $jobj(stateId); + var oldStateId = $ax.visibility.GetPanelState(id); + var oldState = $jobj(oldStateId); + //pin to browser + $ax.dynamicPanelManager.adjustFixed(id, oldState.width(), oldState.height(), state.width(), state.height()); + + _bringPanelStateToFront(id, stateId); + + var fitToContent = $ax.dynamicPanelManager.isIdFitToContent(id); + var resized = false; + if(fitToContent) { + // Set resized + resized = state.width() != oldState.width() || state.height() != oldState.height(); + } + + //edge case for sliding + var movement = (directionOut == 'left' || directionOut == 'up' || state.children().length == 0) && oldState.children().length != 0 ? oldState : state; + var onCompleteCount = 0; + var onComplete = function () { + //move this call from _setVisibility() for animate out. + //Because this will make the order of dp divs consistence: the showing panel is always in front after both animation finished + //tested in the cases where one panel is out/show slower/faster/same time/instantly. + _bringPanelStateToFront(id, stateId); + + if (window.modifiedDynamicPanleParentOverflowProp) { + var parent = id ? $jobj(id) : child.parent(); + parent.css('overflow', 'hidden'); + window.modifiedDynamicPanleParentOverflowProp = false; + } + + $ax.dynamicPanelManager.fitParentPanel(id); + $ax.dynamicPanelManager.updatePanelPercentWidth(id); + $ax.dynamicPanelManager.updatePanelContentPercentWidth(id); + $ax.action.fireAnimationFromQueue(id, $ax.action.queueTypes.setState); + $ax.event.raiseSyntheticEvent(id, "onPanelStateChange"); + $ax.event.leavingState(oldStateId); + _popContainer(id, true); + }; + // Must do state out first, so if we cull by new state, location is correct + _setVisibility(id, oldStateId, { + value: false, + easing: easingOut, + direction: directionOut, + duration: durationOut, + containerExists: true, + onComplete: function() { +// if(easingIn !== 'flip') _bringPanelStateToFront(id, stateId); + if (++onCompleteCount == 2) onComplete(); + }, + settingChild: true, + size: movement, + //cull for + cull: easingOut == 'none' || state.children().length == 0 ? oldState : state + }); + + _setVisibility(id, stateId, { + value: true, + easing: easingIn, + direction: directionIn, + duration: durationIn, + containerExists: true, + onComplete: function () { +// if (easingIn === 'flip') _bringPanelStateToFront(id, stateId); + if (++onCompleteCount == 2) onComplete(); + }, + settingChild: true, + //size for offset + size: movement + }); + + if(show) $ax.event.raiseSyntheticEvent(id, 'onShow'); + if(resized) $ax.event.raiseSyntheticEvent(id, 'onResize'); + }; + + var _pushContainer = _visibility.pushContainer = function(id, panel) { + var count = containerCount[id]; + if(count) containerCount[id] = count + 1; + else { + var jobj = $jobj(id); + var children = jobj.children(); + var css = { + position: 'relative', + top: 0, + left: 0 + }; + + if(!panel) { + var boundingRect = $axure.fn.getWidgetBoundingRect(id); + css.top = boundingRect.top; + css.left = boundingRect.left; + } + + var container = $('
    '); + container.attr('id', $ax.visibility.applyWidgetContainer(id)); + container.css(css); + //container.append(jobj.children()); + jobj.append(container); + containerCount[id] = 1; + + // Panel needs to wrap children + if(panel) { + for(var i = 0; i < children.length; i++) { + var child = $(children[i]); + var childContainer = $('
    '); + childContainer.attr('id', $ax.visibility.applyWidgetContainer(child.attr('id'))); + childContainer.css(css); + child.after(childContainer); + childContainer.append(child); + container.append(childContainer); + } + } else { + // Layer needs to fix top left + var childIds = $ax('#' + id).getChildren()[0].children; + for(var i = 0; i < childIds.length; i++) { + var childId = childIds[i]; + if($ax.dynamicPanelManager.getFixedInfo(childId).fixed) continue; + var cssChange = { + left: '-=' + css.left, + top: '-=' + css.top + }; + var childObj = $jobj(childId); + if($ax.getTypeFromElementId(childId) == $ax.constants.LAYER_TYPE) { + _pushContainer(childId, false); + $ax.visibility.applyWidgetContainer(childId, true).css(cssChange); + } else { + //if ($ax.public.fn.isCompoundVectorHtml(jobj[0])) { + // var grandChildren = jobj[0].children; + // //while (grandChildren.length > 0 && grandChildren[0].id.indexOf('container') >= 0) grandChildren = grandChildren[0].children; + + // for (var j = 0; j < grandChildren.length; j++) { + // var grandChildId = grandChildren[j].id; + // if (grandChildId.indexOf(childId + 'p') >= 0 || grandChildId.indexOf('_container') >= 0) $jobj(grandChildId).css(cssChange); + // } + //} else + childObj.css(cssChange); + childObj = $addAll(childObj, childId); + } + + container.append(childObj); + } + } + } + }; + + var _popContainer = _visibility.popContainer = function(id, panel) { + var count = containerCount[id]; + if(!count) return; + count--; + containerCount[id] = count; + if(count != 0) return; + + var jobj = $jobj(id); + var container = $ax.visibility.applyWidgetContainer(id, true); + jobj.append(container.children()); + container.remove(); + + // Layer doesn't have children containers to clean up + if(panel) { + var children = jobj.children(); + for(var i = 0; i < children.length; i++) { + var childContainer = $(children[i]); + var child = $(childContainer.children()[0]); + childContainer.after(child); + childContainer.remove(); + } + } else { + var left = container.css('left'); + var top = container.css('top'); + var childIds = $ax('#' + id).getChildren()[0].children; + for (var i = 0; i < childIds.length; i++) { + var childId = childIds[i]; + if($ax.dynamicPanelManager.getFixedInfo(childId).fixed) continue; + var cssChange = { + left: '+=' + left, + top: '+=' + top + }; + if($ax.getTypeFromElementId(childId) == $ax.constants.LAYER_TYPE) { + $ax.visibility.applyWidgetContainer(childId, true).css(cssChange); + _popContainer(childId, false); + } else { + var childObj = $jobj(childId); + // if ($ax.public.fn.isCompoundVectorHtml(jobj[0])) { + // var grandChildren = jobj[0].children; + // //while (grandChildren.length > 0 && grandChildren[0].id.indexOf('container') >= 0) grandChildren = grandChildren[0].children; + // for (var j = 0; j < grandChildren.length; j++) { + // var grandChildId = grandChildren[j].id; + // if (grandChildId.indexOf(childId + 'p') >= 0 || grandChildId.indexOf('_container') >= 0) $jobj(grandChildId).css(cssChange); + // } + //} else + childObj.css(cssChange); + } + } + } + }; + + //use this to save & restore DP's scroll position when show/hide + //key => dp's id (not state's id, because it seems we can change state while hiding) + //value => first state's id & scroll position + //we only need to store one scroll position for one DP, and remove the key after shown. + var DPStateAndScroll = {} + var _tryResumeScrollForDP = function (dpId, deleteId) { + var scrollObj = DPStateAndScroll[dpId]; + if(scrollObj) { + var shownState = document.getElementById(scrollObj.shownId); + if(scrollObj.left) shownState.scrollLeft = scrollObj.left; + if(scrollObj.top) shownState.scrollTop = scrollObj.top; + if(deleteId) delete DPStateAndScroll[dpId]; + } + }; +// var _makeContainer = function (containerId, rect, isFullWidth, isFlip, offset, containerExists) { + var _makeContainer = function (containerId, width, height, isFullWidth, isFlip, offset, containerExists) { + if(containerExists) var container = $jobj(containerId); + else { + container = $('
    '); + container.attr('id', containerId); + } + var css = { + position: 'absolute', + width: width, + height: height, + }; + + if(!containerExists) { + // If container exists, may be busy updating location. Will init and update it correctly. + css.top = offset.top; + css.left = offset.left; + } + + + if(isFlip) { + css.perspective = '800px'; + css.webkitPerspective = "800px"; + css.mozPerspective = "800px"; + } else css.overflow = 'hidden'; + + //perspective on container will give us 3d effect when flip + //if(!isFlip) css.overflow = 'hidden'; + + // Rect should be a jquery not axquery obj + //_getFixedCss(css, rect.$ ? rect.$() : rect, fixedInfo, isFullWidth); + + container.css(css); + return container; + }; + + var CONTAINER_SUFFIX = '_container'; + var CONTAINER_INNER = CONTAINER_SUFFIX + '_inner'; + _visibility.getWidgetFromContainer = function(id) { + var containerIndex = id.indexOf(CONTAINER_SUFFIX); + if(containerIndex == -1) return id; + return id.substr(0, containerIndex) + id.substr(containerIndex + CONTAINER_SUFFIX.length); + }; + + // Apply container to widget id if necessary. + // returnJobj: True if you want the jquery object rather than id returned + // skipCheck: True if you want the query returned reguardless of container existing + // checkInner: True if inner container should be checked + _visibility.applyWidgetContainer = function (id, returnJobj, skipCheck, checkInner) { + // If container exists, just return (return query if requested) + if(id.indexOf(CONTAINER_SUFFIX) != -1) return returnJobj ? $jobj(id) : id; + + // Get desired id, and return it if query is not desired + var containerId = $ax.repeater.applySuffixToElementId(id, checkInner ? CONTAINER_INNER : CONTAINER_SUFFIX); + if(!returnJobj) return containerId; + + // If skipping check or container exists, just return innermost container requested + var container = $jobj(containerId); + if(skipCheck || container.length) return container; + // If inner container was not checked, then no more to check, return query for widget + if(!checkInner) return $jobj(id); + + // If inner container was checked, check for regular container still + container = $jobj($ax.repeater.applySuffixToElementId(id, CONTAINER_SUFFIX)); + return container.length ? container : $jobj(id); + }; + + _visibility.isContainer = function(id) { + return id.indexOf(CONTAINER_SUFFIX) != -1; + }; + + _visibility.getRealChildren = function(query) { + while(query.length && $(query[0]).attr('id').indexOf(CONTAINER_SUFFIX) != -1) query = query.children(); + return query; + }; + + var _getFixedCss = function(css, rect, fixedInfo, isFullWidth) { + // todo: **mas** make sure this is ok + if(fixedInfo.fixed) { + css.position = 'fixed'; + + if(fixedInfo.horizontal == 'left') css.left = fixedInfo.x; + else if(fixedInfo.horizontal == 'center') { + css.left = isFullWidth ? '0px' : '50%'; + css['margin-left'] = fixedInfo.x; + } else if(fixedInfo.horizontal == 'right') { + css.left = 'auto'; + css.right = fixedInfo.x; + } + + if(fixedInfo.vertical == 'top') css.top = fixedInfo.y; + else if(fixedInfo.vertical == 'middle') { + css.top = '50%'; + css['margin-top'] = fixedInfo.y; + } else if(fixedInfo.vertical == 'bottom') { + css.top = 'auto'; + css.bottom = fixedInfo.y; + } + } else { + css.left = Number(rect.css('left').replace('px', '')) || 0; + css.top = Number(rect.css('top').replace('px', '')) || 0; + } + }; + + var _slideStateOut = function (container, stateId, options, onComplete, jobj) { + var directionOut = options.direction; + var axObject = $ax('#' + container.attr('id')); + var width = axObject.width(); + var height = axObject.height(); + + if(directionOut == "right") { + $ax.move.MoveWidget(stateId, width, 0, options, false, onComplete, false, jobj); + } else if(directionOut == "left") { + $ax.move.MoveWidget(stateId, -width, 0, options, false, onComplete, false, jobj); + } else if(directionOut == "up") { + $ax.move.MoveWidget(stateId, 0, -height, options, false, onComplete, false, jobj); + } else if(directionOut == "down") { + $ax.move.MoveWidget(stateId, 0, height, options, false, onComplete, false, jobj); + } + }; + + var _slideStateIn = function (id, stateId, options, container, makePanelVisible, onComplete, jobj, preserveScroll) { + var directionIn = options.direction; + var axObject = $ax('#' +container.attr('id')); + var width = axObject.width(); + var height = axObject.height(); + + for(var i = 0; i < jobj.length; i++) { + var child = $(jobj[i]); + var oldTop = $ax.getNumFromPx(child.css('top')); + var oldLeft = $ax.getNumFromPx(child.css('left')); + if (directionIn == "right") { + child.css('left', oldLeft - width + 'px'); + } else if(directionIn == "left") { + child.css('left', oldLeft + width + 'px'); + } else if(directionIn == "up") { + child.css('top', oldTop + height + 'px'); + } else if(directionIn == "down") { + child.css('top', oldTop - height + 'px'); + } + } + + if (makePanelVisible) $ax.visibility.SetIdVisible(id, true); + for(i = 0; i < jobj.length; i++) $ax.visibility.SetIdVisible($(jobj[i]).attr('id'), true); + + if(preserveScroll) _tryResumeScrollForDP(id); + if(directionIn == "right") { + $ax.move.MoveWidget(stateId, width, 0, options, false, onComplete, false, jobj); + } else if(directionIn == "left") { + $ax.move.MoveWidget(stateId, -width, 0, options, false, onComplete, false, jobj); + } else if(directionIn == "up") { + $ax.move.MoveWidget(stateId, 0, -height, options, false, onComplete, false, jobj); + } else if(directionIn == "down") { + $ax.move.MoveWidget(stateId, 0, height, options, false, onComplete, false, jobj); + } + }; + + $ax.visibility.GetPanelStateId = function(dpId, index) { + var itemNum = $ax.repeater.getItemIdFromElementId(dpId); + var panelStateId = $ax.repeater.getScriptIdFromElementId(dpId) + '_state' + index; + return $ax.repeater.createElementId(panelStateId, itemNum); + }; + + $ax.visibility.GetPanelStateCount = function(id) { + return $ax.visibility.getRealChildren($jobj(id).children()).length; + }; + + var _bringPanelStateToFront = function (dpId, stateid) { + var panel = $jobj(dpId); + if(containerCount[dpId]) { + stateid = $ax.visibility.applyWidgetContainer(stateid); + panel = $ax.visibility.applyWidgetContainer(dpId, true, false, true); + } + $jobj(stateid).appendTo(panel); + //when bring a panel to front, it will be focused, and the previous front panel should fire blur event if it's lastFocusedClickableSelector + //ie(currently 11) and firefox(currently 34) doesn't fire blur event, this is the hack to fire it manually + if((IE || FIREFOX) && window.lastFocusedClickable && window.lastFocusedControl == window.lastFocusedClickable.id) { + $(window.lastFocusedClickable).triggerHandler('blur'); + } + }; + + var _limboIds = _visibility.limboIds = {}; + // limboId's is a dictionary of id->true, essentially a set. + var _addLimboAndHiddenIds = $ax.visibility.addLimboAndHiddenIds = function(newLimboIds, newHiddenIds, query, skipRepeater) { + var limboedByMaster = {}; + for(var key in newLimboIds) { + if (!$ax.public.fn.IsReferenceDiagramObject($ax.getObjectFromElementId(key).type)) continue; + var ids = $ax.model.idsInRdo(key); + for(var i = 0; i < ids.length; i++) limboedByMaster[ids[i]] = true; + } + + var hiddenByMaster = {}; + for(key in newHiddenIds) { + if (!$ax.public.fn.IsReferenceDiagramObject($ax.getObjectFromElementId(key).type)) continue; + ids = $ax.model.idsInRdo(key); + for(i = 0; i < ids.length; i++) hiddenByMaster[ids[i]] = true; + } + + // Extend with children of rdos + newLimboIds = $.extend(newLimboIds, limboedByMaster); + newHiddenIds = $.extend(newHiddenIds, hiddenByMaster); + + // something is only visible if it's not hidden and limboed + + //if(!skipSetting) { + query.each(function(diagramObject, elementId) { + // Rdos already handled, contained widgets are limboed by the parent, and sub menus should be ignored + if($ax.public.fn.IsReferenceDiagramObject(diagramObject.type) || $ax.public.fn.IsTableCell(diagramObject.type) || diagramObject.isContained || $jobj(elementId).hasClass('sub_menu')) return; + if(diagramObject.type == 'table' && $jobj(elementId).parent().hasClass('ax_menu')) return; + if(skipRepeater) { + // Any item in a repeater should return + var repeater = $ax.getParentRepeaterFromElementId(elementId); + if (repeater && repeater != elementId) return; + } + + var scriptId = $ax.repeater.getScriptIdFromElementId(elementId); + var shouldBeVisible = Boolean(!newLimboIds[scriptId] && !newHiddenIds[scriptId]); + var isVisible = Boolean(_isIdVisible(elementId)); + if(shouldBeVisible != isVisible) { + _setWidgetVisibility(elementId, { value: shouldBeVisible }); + } + }); + //} + + _limboIds = _visibility.limboIds = $.extend(_limboIds, newLimboIds); + + }; + + var _clearLimboAndHidden = $ax.visibility.clearLimboAndHidden = function(ids) { + _limboIds = _visibility.limboIds = {}; + }; + + $ax.visibility.clearLimboAndHiddenIds = function(ids) { + for(var i = 0; i < ids.length; i++) { + var scriptId = $ax.repeater.getScriptIdFromElementId(ids[i]); + delete _limboIds[scriptId]; + } + }; + + $ax.visibility.resetLimboAndHiddenToDefaults = function (query) { + if(!query) query = $ax('*'); + _clearLimboAndHidden(); + _addLimboAndHiddenIds(_defaultLimbo, _defaultHidden, query); + }; + + $ax.visibility.isScriptIdLimbo = function(scriptId) { + if(_limboIds[scriptId]) return true; + + var repeater = $ax.getParentRepeaterFromScriptId(scriptId); + if(!repeater) return false; + + var itemId = $ax.getItemIdsForRepeater(repeater)[0]; + return _limboIds[$ax.repeater.createElementId(scriptId, itemId)]; + } + + $ax.visibility.initialize = function() { + // initialize initial visible states + $('.' + HIDDEN_CLASS).each(function (index, diagramObject) { + _defaultHidden[$ax.repeater.getScriptIdFromElementId(diagramObject.id)] = true; + }); + + $('.' + UNPLACED_CLASS).each(function (index, diagramObject) { + _defaultLimbo[$ax.repeater.getScriptIdFromElementId(diagramObject.id)] = true; + }); + + _addLimboAndHiddenIds(_defaultLimbo, _defaultHidden, $ax('*'), true); + }; + + _visibility.initRepeater = function(repeaterId) { + var html = $('
    '); + html.append($jobj(repeaterId + '_script').html()); + + html.find('.' + HIDDEN_CLASS).each(function (index, element) { + _defaultHidden[$ax.repeater.getScriptIdFromElementId(element.id)] = true; + }); + + html.find('.' + UNPLACED_CLASS).each(function (index, element) { + _defaultLimbo[$ax.repeater.getScriptIdFromElementId(element.id)] = true; + }); + } + + var HIDDEN_CLASS = _visibility.HIDDEN_CLASS = 'ax_default_hidden'; + var UNPLACED_CLASS = _visibility.UNPLACED_CLASS = 'ax_default_unplaced'; + +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/axutils.js b/codes/agent/game-docker/api/document/resources/scripts/axutils.js new file mode 100644 index 0000000..8daf740 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/axutils.js @@ -0,0 +1,241 @@ +/* + * + * + * + * + */ + + (function() { + // define the root namespace object + if(!window.$axure) window.$axure = {}; + + $axure.utils = {}; + + // ------------------------------------------------------------------------ + // Makes an object bindable + // ------------------------------------------------------------------------ + $axure.utils.makeBindable = function(obj, events) { + if(obj.registeredBindings != null) return; + + // copy the events + obj.bindableEvents = events.slice(); + obj.registeredBindings = {}; + + obj.bind = function(eventName, fn) { + var binding = {}; + binding.eventName = eventName; + binding.action = fn; + + var bindingList = this.registeredBindings[eventName]; + if(bindingList == null) { + bindingList = []; + this.registeredBindings[eventName] = bindingList; + } + bindingList[bindingList.length] = binding; + }; + + obj.unbind = function(eventName) { + if(eventName.indexOf('.') >= 0) { + this.registeredBindings[eventName] = null; + } else { + var event = eventName.split('.')[0]; + for(var bindingKey in this.registeredBindings) { + if(bindingKey.split('.')[0] == event) { + this.registeredBindings[bindingKey] = null; + } + } + } + }; + + obj.triggerEvent = function(eventName, arg) { + for(var bindingKey in this.registeredBindings) { + if(bindingKey.split('.')[0] == eventName) { + var bindings = this.registeredBindings[bindingKey]; + for(var i = 0; i < bindings.length; i++) { + if(arg == null) { + bindings[i].action(); + } else { + bindings[i].action(arg); + } + } + } + } + }; + }; + + + $axure.utils.loadCSS = function(url) { + $('head').append(''); + }; + + $axure.utils.loadJS = function(url) { + $('head').append(''); + }; + + $axure.utils.curry = function(fn) { + var curriedArgs = Array.prototype.slice.call(arguments, [1]); + return function() { + fn.apply(this, curriedArgs.concat(Array.prototype.slice.call(arguments))); + }; + }; + + $axure.utils.succeeded = function(result) { + return result && result.success; + }; + + $axure.utils.createUniqueTag = function() { + return Math.random().toString().substring(2) + + Math.random().toString().substring(2) + + Math.random().toString().substring(2) + + Math.random().toString().substring(2); + }; + + $axure.utils.formatDate = function(date) { + var months = [ + "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + var hours = date.getHours(); + var amPm = (hours > 11 ? 'PM' : 'AM'); + hours = hours % 12; + if(hours == '0') hours = '12'; + var minutes = date.getMinutes() + ''; + if(minutes.length == 1) { + minutes = '0' + minutes; + } + return [ + months[date.getMonth()], ' ', date.getDate(), ' ', date.getFullYear(), ' ', + hours, ':', minutes, ' ', amPm].join(''); + + }; + + $axure.utils.quickObject = function() { + var returnVal = {}; + for(var i = 0; i < arguments.length; i += 2) { + returnVal[arguments[i]] = arguments[i + 1]; + } + return returnVal; + }; + + var matrixBase = { + mul: function(val) { + if(val.x !== undefined) { + return $axure.utils.Vector2D( + this.m11 * val.x + this.m12 * val.y + this.tx, + this.m21 * val.x + this.m22 * val.y + this.ty); + } else if(val.m11) { + return $axure.utils.Matrix2D( + this.m11 * val.m11 + this.m12 * val.m21, + this.m11 * val.m12 + this.m12 * val.m22, + this.m21 * val.m11 + this.m22 * val.m21, + this.m21 * val.m12 + this.m22 * val.m22, + val.tx + this.tx * val.m11 + this.ty * val.m21, + val.ty + this.tx * val.m12 + this.ty * val.m22 + ); + } else if(Number(val)) { + var num = Number(val); + return $axure.utils.Matrix2D(this.m11 * num, this.m12 * num, + this.m21 * num, this.m22 * num, + this.tx * num, this.ty * num); + } else return undefined; + }, + rotate: function(angle) { + var angleRad = angle * Math.PI / 180; + var c = Math.cos(angleRad); + var s = Math.sin(angleRad); + + return this.mul($axure.utils.Matrix2D(c, -s, s, c)); + }, + translate: function(tx, ty) { + return this.mul($axure.utils.Matrix2D(1, 0, 0, 1, tx, ty)); + } + }; + + $axure.utils.Matrix2D = function(m11, m12, m21, m22, tx, ty) { + return $.extend({ + m11: m11 || 0, + m12: m12 || 0, + m21: m21 || 0, + m22: m22 || 0, + tx: tx || 0, + ty: ty || 0 + }, matrixBase); + }; + + $axure.utils.Vector2D = function(x, y) { + return { x: x || 0, y: y || 0 }; + }; + + $axure.utils.Matrix2D.identity = function() { + return $axure.utils.Matrix2D(1, 0, 0, 1, 0, 0); + }; + + $axure.utils.fixPng = function(png) { + if(!(/MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32")) return; + + var src = png.src; + if(!png.style.width) { png.style.width = $(png).width(); } + if(!png.style.height) { png.style.height = $(png).height(); } + png.onload = function() { }; + png.src = $axure.utils.getTransparentGifPath(); + png.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')"; + }; + })(); + + // TODO: [mas] simplify this + if(window.$axure && window.$axure.internal) { + $axure.internal(function($ax) { $ax.utils = $axure.utils; }); + } + + // Its too much of a pain to escape everything and use regular expresions, just replace manually + (function () { + var original = String.prototype.replace; + // TODO: maybe use flags or object instead to pass options in + String.prototype.replace = function (search, newVal, replaceFirst, ignoreCase) { + // Use original is some cases + if (search instanceof RegExp) return original.apply(this, arguments); + + search = String(search); + var searchCompare = ignoreCase ? this.toLowerCase() : this; + if (ignoreCase) search = search.toLowerCase(); + + var searchLength = search.length; + var thisLength = this.length; + + var index = 0; + var retVal = ''; + while (index != -1) { + var nextIndex = searchCompare.indexOf(search, index); + if (nextIndex != -1) { + retVal += this.substring(index, nextIndex) + newVal; + index = nextIndex + searchLength; + if (index >= thisLength) index = -1; + } else { + retVal += this.substring(index); + index = -1; + } + if (replaceFirst) break; + } + + return retVal; + }; + + if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function (elt /*, from*/) { + var len = this.length >>> 0; + + var from = trunc(Number(arguments[1]) || 0); + if(from < 0) from += len; + + for(; from < len; from++) { + if(from in this && this[from] === elt) return from; + } + return -1; + }; + } + + var trunc = function(num) { + return num < 0 ? Math.ceil(num) : Math.floor(num); + }; + + + })(); diff --git a/codes/agent/game-docker/api/document/resources/scripts/jquery-1.7.1.min.js b/codes/agent/game-docker/api/document/resources/scripts/jquery-1.7.1.min.js new file mode 100644 index 0000000..198b3ff --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/jquery-1.7.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
    "+""+"
    ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
    t
    ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
    ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/resources/scripts/jquery-ui-1.8.10.custom.min.js b/codes/agent/game-docker/api/document/resources/scripts/jquery-ui-1.8.10.custom.min.js new file mode 100644 index 0000000..a7e1293 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/jquery-ui-1.8.10.custom.min.js @@ -0,0 +1,233 @@ +/*! + * jQuery UI 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.10",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, +NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, +"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); +if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, +"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, +d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); +c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a); +return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent", +true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, +left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= +k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= +m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= +d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= +a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), +g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); +;/* + * jQuery UI Draggable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= +this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); +d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&& +this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| +0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment== +"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"? +0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"), +10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor== +Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop(): +f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY; +if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/ +b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?e:!(e-this.offset.click.left
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})}, +stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!= +document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), +d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: +this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", +b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height; +f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing"); +this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top= +null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+ +this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b, +a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a, +c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize, +originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.10"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize= +b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width", +"height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})}; +if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height- +g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width, +height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d= +e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options, +d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper? +d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height= +a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&& +/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable"); +b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/ +(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +;/* + * jQuery UI Dialog 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&& +c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
    ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex", +-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", +"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose= +b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&& +a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index"); +isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ); +d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}}); +c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
    ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f, +h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g= +d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize, +position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f, +h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length=== +1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in +l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled"); +break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e= +this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&& +this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.10",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length=== +0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), +height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); +b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent", +border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c); +return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments); +else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c), +b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c, +a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c, +a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a== +e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h= 5 && + location.href.indexOf('file://') >= 0; + } + + var safariRegex = /Safari\/([0-9]+)/g; + var safariMatch = safariRegex.exec(useragent); + SAFARI = Boolean(safariMatch) && !CHROME; //because chrome also inserts safari string into user agent + + var webkitRegex = /WebKit\//g ; + WEBKIT = Boolean(webkitRegex.exec(useragent)); + + FIREFOX = useragent.toLowerCase().indexOf('firefox') > -1; + + var macRegex = /Mac/g ; + OS_MAC = Boolean(macRegex.exec(window.navigator.platform)); + + IOS = useragent.match(/iPhone/i) || useragent.match(/iPad/i) || useragent.match(/iPod/i); + + MOBILE_DEVICE = navigator.userAgent.match(/Android/i) + || navigator.userAgent.match(/webOS/i) + || navigator.userAgent.match(/iPhone/i) + || navigator.userAgent.match(/iPad/i) + || navigator.userAgent.match(/iPod/i) + || navigator.userAgent.match(/BlackBerry/i) + || navigator.userAgent.match(/Tablet PC/i) + || navigator.userAgent.match(/Windows Phone/i); + + if($.browser) { + if($.browser.msie) IE_10_AND_BELOW = true; + else IE_11_AND_ABOVE = useragent.toLowerCase().indexOf('trident') > -1; + + BROWSER_VERSION = $.browser.version; + } + + IE = IE_10_AND_BELOW || IE_11_AND_ABOVE; + + //Used by sitemap and variables.js getLinkUrl functions so that they know + //whether to embed global variables in URL as query string or hash string + //_shouldSendVars persists the value for sitemap instead of re-checking every time + var _shouldSendVars; + var _shouldSendVarsToServer = function(url) { + if(typeof _shouldSendVars != 'undefined') { + return _shouldSendVars; + } + + if(SAFARI || (IE_10_AND_BELOW && BROWSER_VERSION < 10)) { + var urlToCheck = typeof url != 'undefined' ? url : window.location.href; + var serverRegex = /http:\/\/127\.0\.0\.1:[0-9]{5}/g; + var serverMatch = serverRegex.exec(urlToCheck); + var previewRegex = /[0-9]{2}\.[0-9]{2}\.[0-9]{2}/g; + var previewMatch = previewRegex.exec(urlToCheck); + if(Boolean(serverMatch) && Boolean(previewMatch)) { + _shouldSendVars = true; + return _shouldSendVars; + } + } + + _shouldSendVars = false; + return _shouldSendVars; + }; + $axure.shouldSendVarsToServer = _shouldSendVarsToServer; +})(); + +(function() { + var _topMessageCenter; + var _messageCenter = {}; + var _listeners = []; + var _stateListeners = []; + var _state = {}; + var _eventObject = null; + + var _queuedMessages = []; + var _initialized = false; + + // this is for the non Chrome 5 local scenarios. The "top" message center will dispatch to all the bottom ones + var _childrenMessageCenters = []; + + // create $axure if it hasn't been created + if (!window.$axure) window.$axure = function() {}; + $axure.messageCenter = _messageCenter; + + // isolate scope, and initialize _topMessageCenter. + (function() { + if (!CHROME_5_LOCAL) { + var topAxureWindow = window; + try { + while(topAxureWindow.parent && topAxureWindow.parent !== topAxureWindow + && topAxureWindow.parent.$axure) topAxureWindow = topAxureWindow.parent; + } catch(e) {} + _topMessageCenter = topAxureWindow.$axure.messageCenter; + } + })(); + + $(window.document).ready(function() { + if (CHROME_5_LOCAL) { + $('body').append("" + + ""); + + _eventObject = window.document.createEvent('Event'); + _eventObject.initEvent('axureMessageSenderEvent', true, true); + + $('#axureEventReceiverDiv').bind('axureMessageReceiverEvent', function () { + var request = JSON.parse($(this).text()); + _handleRequest(request); + }); + } else { + if (_topMessageCenter != _messageCenter) { + _topMessageCenter.addChildMessageCenter(_messageCenter); + console.log('adding from ' + window.location.toString()); + } + } + }); + + var _handleRequest = function (request) { + // route the request to all the listeners + for(var i = 0; i < _listeners.length; i++) _listeners[i](request.message, request.data); + + // now handle the queued messages if we're initializing + if (request.message == 'initialize') { + _initialized = true; + // send all the queued messages and return + for (var i = 0; i < _queuedMessages.length; i++) { + var qRequest = _queuedMessages[i]; + _messageCenter.postMessage(qRequest.message, qRequest.data); + } + _queuedMessages = []; + } + + // and then handle the set state messages, if necessary + if (request.message == 'setState') { + _state[request.data.key] = request.data.value; + for (var i = 0; i < _stateListeners.length; i++) { + var keyListener = _stateListeners[i]; + // if thep passed a null or empty value, always post the message + if (!keyListener.key || keyListener.key == request.data.key) { + keyListener.listener(request.data.key, request.data.value); + } + } + } + + }; + + // ----------------------------------------------------------------------------------------- + // This method allows for dispatching messages in the non-chromelocal scenario. + // Each child calls this on _topMessageCenter + // ----------------------------------------------------------------------------------------- + _messageCenter.addChildMessageCenter = function(messageCenter) { + _childrenMessageCenters[_childrenMessageCenters.length] = messageCenter; + }; + + // ----------------------------------------------------------------------------------------- + // This method allows for dispatching messages in the non-chromelocal scenario. + // Each child calls this on _topMessageCenter + // ----------------------------------------------------------------------------------------- + _messageCenter.dispatchMessage = function(message, data) { + _handleRequest({ + message: message, + data: data + }); + }; + + // ----------------------------------------------------------------------------------------- + // ----------------------------------------------------------------------------------------- + _messageCenter.dispatchMessageRecursively = function(message, data) { + console.log("dispatched to " + window.location.toString()); + + // dispatch to the top center first + _messageCenter.dispatchMessage(message, data); + + $('iframe').each(function(index, frame) { + //try,catch to handle permissions error in FF when loading pages from another domain + try { + if (frame.contentWindow.$axure && frame.contentWindow.$axure.messageCenter) { + frame.contentWindow.$axure.messageCenter.dispatchMessageRecursively(message, data); + } + }catch(e) {} + }); + }; + + _messageCenter.postMessage = function(message, data) { + if(!CHROME_5_LOCAL) { + _topMessageCenter.dispatchMessageRecursively(message, data); + } else { + var request = { + message: message, + data: data + }; + + if(_initialized) { + var senderDiv = window.document.getElementById('axureEventSenderDiv'); + var messageText = JSON.stringify(request); + // console.log('sending event: ' + messageText); + senderDiv.innerText = messageText; + senderDiv.dispatchEvent(_eventObject); + // console.log('event sent'); + } else { + _queuedMessages[_queuedMessages.length] = request; + } + } + }; + + _messageCenter.setState = function(key, value) { + var data = { + key: key, + value: value + }; + _messageCenter.postMessage('setState', data); + }; + + _messageCenter.getState = function(key) { + return _state[key]; + }; + + _messageCenter.addMessageListener = function(listener) { + _listeners[_listeners.length] = listener; + }; + + _messageCenter.addStateListener = function(key, listener) { + _stateListeners[_stateListeners.length] = { + key: key, + listener: listener + }; + }; + +})(); diff --git a/codes/agent/game-docker/api/document/resources/scripts/player/axplayer.js b/codes/agent/game-docker/api/document/resources/scripts/player/axplayer.js new file mode 100644 index 0000000..f9cb965 --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/player/axplayer.js @@ -0,0 +1,206 @@ +if (!window.$axure) window.$axure = function () { }; +if (typeof console == 'undefined') console = { + log: function () { } +}; +if(window._axUtils) $axure.utils = _axUtils; + +$axure.loadDocument = function(document) { + $axure.document = document; +}; + +function setUpController() { + + //$axure.utils = _axUtils; + + var _page = {}; + $axure.page = _page; + + $axure.utils.makeBindable(_page, ['load']); + + var _player = function() { + }; + $axure.player = _player; + + //----------------------------------------- + //Global Var array, getLinkUrl function and setGlobalVar listener are + //for use in setting global vars in page url string when clicking a + //page in the sitemap + //----------------------------------------- + var _globalVars = {}; + + //----------------------------------------- + //Used by getLinkUrl below to check if local server is running + //in order to send back the global variables as a query string + //in the page url + //----------------------------------------- + var _shouldSendVarsToServer = function () { + //If exception occurs (due to page in content frame being from a different domain, etc) + //then run the check without the url (which will end up checking against sitemap url) + try { + var mainFrame = document.getElementById("mainFrame"); + return $axure.shouldSendVarsToServer(mainFrame.contentWindow.location.href); + } catch (e) { + return $axure.shouldSendVarsToServer(); + } + }; + + var _getLinkUrl = function (baseUrl) { + var toAdd = ''; + for(var globalVarName in _globalVars) { + var val = _globalVars[globalVarName]; + if(val != null) { + if(toAdd.length > 0) toAdd += '&'; + toAdd += globalVarName + '=' + encodeURIComponent(val); + } + } + return toAdd.length > 0 ? baseUrl + (_shouldSendVarsToServer() ? '?' : '#') + toAdd + "&CSUM=1" : baseUrl; + }; + $axure.getLinkUrlWithVars = _getLinkUrl; + + $axure.messageCenter.addMessageListener(function(message, data) { + if (message == 'setGlobalVar'){ + _globalVars[data.globalVarName] = data.globalVarValue; + } + }); + + $axure.messageCenter.addStateListener('page.data', function (key, value) { + for (var subKey in value) { + _page[subKey] = value[subKey]; + } + $axure.page.triggerEvent('load'); + }); + + // --------------------------------------------- + // Navigates the main frame (setting the currently visible page). If the link is relative, + // this method should test if it is actually a axure rp page being loaded and properly set + // up all the controller for the page if it is + // --------------------------------------------- + _page.navigate = function (url, includeVariables) { + var mainFrame = document.getElementById("mainFrame"); + //var mainFrame = window.parent.mainFrame; + // if this is a relative url... + var urlToLoad; + if (url.indexOf(':') < 0 || url[0] == '/') { + var winHref = window.location.href; + var page = winHref.substring(0, winHref.lastIndexOf('/') + 1) + url; + urlToLoad = page; + } else { + urlToLoad = url; + } + if (!includeVariables) { + mainFrame.contentWindow.location.href = urlToLoad; + return; + } + var urlWithVars = $axure.getLinkUrlWithVars(urlToLoad); + var currentData = $axure.messageCenter.getState('page.data'); + var currentUrl = currentData && currentData.location; + if(currentUrl && currentUrl.indexOf('#') != -1) currentUrl = currentUrl.substring(0, currentUrl.indexOf('#')) + + // this is so we can make sure the current frame reloads if the variables have changed + // by default, if the location is the same but the hash code is different, the browser will not + // trigger a reload + mainFrame.contentWindow.location.href = + currentUrl && urlToLoad.toLowerCase() != currentUrl.toLowerCase() + ? urlWithVars + : 'resources/reload.html#' + encodeURI(urlWithVars); + + }; + + var pluginIds = []; + var plugins = {}; + var currentVisibleHostId = null; + // --------------------------------------------- + // Adds a tool box frame from a url to the interface. This is useful for loading plugins + // settings is an object that supports the following properties: + // - id : the id of the element for the plugin + // - context : the context to create the plugin host for + // - title : the user-visible caption for the plugin + // --------------------------------------------- + _player.createPluginHost = function (settings) { + // right now we only understand an interface context + if (!(!settings.context || settings.context === 'interface')) { + throw ('unknown context type'); + } + if (!settings.id) throw ('each plugin host needs an id'); + + var host = $('
    ') + .appendTo('#interfaceControlFrameHostContainer'); + + host.hide(); + + var headerLink = $('' + settings.title.toUpperCase() + ''); + + headerLink + .click($axure.utils.curry(interfaceControlHeaderButton_click, settings.id)).wrap('
  4. '); + + if((settings.id == 'feedbackHost' || settings.id == 'feedbackContainer') && pluginIds[pluginIds.length - 1] == 'debugHost') headerLink.parent().insertBefore('#debugHostBtn'); + else headerLink.parent().appendTo('#interfaceControlFrameHeader'); + + pluginIds[pluginIds.length] = settings.id; + plugins[settings.id] = settings; + + $(document).trigger('pluginCreated', [settings.gid]); + }; + + // private methods + var interfaceControlHeaderButton_click = function (id) { + var clickedPlugin = $('#interfaceControlFrameHeader a[pluginId=' + id + ']'); + if(clickedPlugin.hasClass('selected')) { + clickedPlugin.removeClass('selected'); + $('#' + id).hide(); + _player.collapseToBar(); + + $(document).trigger('pluginShown',['']); + } else { + $('#interfaceControlFrameHeader a').removeClass('selected'); + clickedPlugin.addClass('selected'); + + $('#' + currentVisibleHostId).hide(); + $('#' + id).show(); + currentVisibleHostId = id; + _player.expandFromBar(); + + $(document).trigger('pluginShown', [plugins[id].gid]); + } + + $(document).trigger('ContainerHeightChange'); + }; + + $axure.player.showPlugin = function(gid) { + for(var id in plugins) { + if(plugins[id].gid == gid) { + $('a[pluginId="' + id + '"]').click(); + break; + } + } + }; +} + +function setUpDocumentStateManager() { + var mgr = $axure.prototype.documentStateManager = {}; + $axure.utils.makeBindable(mgr, ['globalVariableChanged']); + + mgr.globalVariableValues = {}; + + mgr.setGlobalVariable = function(varname, value, source) { + var arg = {}; + arg.variableName = varname; + arg.newValue = value; + arg.oldValue = this.getGlobalVariable(varname); + arg.source = source; + + mgr.globalVariableValues[varname] = value; + this.triggerEvent('globalVariableChanged', arg); + }; + + mgr.getGlobalVariable = function(varname) { + return mgr.globalVariableValues[varname]; + }; +} + + +function setUpPageStateManager() { + var mgr = $axure.prototype.pageStateManager = {}; + + mgr.panelToStateIds = {}; +} diff --git a/codes/agent/game-docker/api/document/resources/scripts/player/splitter.js b/codes/agent/game-docker/api/document/resources/scripts/player/splitter.js new file mode 100644 index 0000000..9bda98a --- /dev/null +++ b/codes/agent/game-docker/api/document/resources/scripts/player/splitter.js @@ -0,0 +1,218 @@ +/* +* jQuery.splitter.js - two-pane splitter window plugin +* +* version 1.51 (2009/01/09) +* +* Dual licensed under the MIT and GPL licenses: +* http://www.opensource.org/licenses/mit-license.php +* http://www.gnu.org/licenses/gpl.html +*/ + +/** +* The splitter() plugin implements a two-pane resizable splitter window. +* The selected elements in the jQuery object are converted to a splitter; +* each selected element should have two child elements, used for the panes +* of the splitter. The plugin adds a third child element for the splitbar. +* +* For more details see: http://methvin.com/splitter/ +* +* +* @example $('#MySplitter').splitter(); +* @desc Create a vertical splitter with default settings +* +* @example $('#MySplitter').splitter({type: 'h', accessKey: 'M'}); +* @desc Create a horizontal splitter resizable via Alt+Shift+M +* +* @name splitter +* @type jQuery +* @param Object options Options for the splitter (not required) +* @cat Plugins/Splitter +* @return jQuery +* @author Dave Methvin (dave.methvin@gmail.com) +*/ +;(function($){ + +$.fn.splitter = function(args){ + args = args || {}; + return this.each(function() { + var zombie; // left-behind splitbar for outline resizes + function startSplitMouse(evt) { + if ( opts.outline ) + zombie = zombie || bar.clone(false).insertAfter(A); + panes.css("-webkit-user-select", "none"); // Safari selects A/B text on a move + bar.addClass(opts.activeClass); + $('
    ').insertAfter(bar); + A._posSplit = A[0][opts.pxSplit] - evt[opts.eventPos]; + $(document) + .bind("mousemove", doSplitMouse) + .bind("mouseup", endSplitMouse); + } + function doSplitMouse(evt) { + var newPos = A._posSplit+evt[opts.eventPos]; + if ( opts.outline ) { + newPos = Math.max(0, Math.min(newPos, splitter._DA - bar._DA)); + bar.css(opts.origin, newPos); + } else + resplit(newPos); + } + function endSplitMouse(evt) { + $('div.splitterMask').remove(); + bar.removeClass(opts.activeClass); + var newPos = A._posSplit+evt[opts.eventPos]; + if ( opts.outline ) { + zombie.remove(); zombie = null; + resplit(newPos); + } + panes.css("-webkit-user-select", "text"); // let Safari select text again + $(document) + .unbind("mousemove", doSplitMouse) + .unbind("mouseup", endSplitMouse); + } + function resplit(newPos) { + // Constrain new splitbar position to fit pane size limits + newPos = Math.max(A._min, splitter._DA - B._max, + Math.min(newPos, A._max, splitter._DA - bar._DA - B._min)); + // Resize/position the two panes + bar._DA = bar[0][opts.pxSplit]; // bar size may change during dock + + var posOffset = bar.is(':visible') ? bar._DA - 1 : 0; + + bar.css(opts.origin, newPos - posOffset).css(opts.fixed, splitter._DF); + A.css(opts.origin, 0).css(opts.split, newPos).css(opts.fixed, splitter._DF); + B.css(opts.origin, newPos + bar._DA - posOffset) + .css(opts.split, splitter._DA-bar._DA-newPos).css(opts.fixed, splitter._DF); + // IE fires resize for us; all others pay cash + if ( !IE_10_AND_BELOW ) + panes.trigger("resize"); + } + function dimSum(jq, dims) { + // Opera returns -1 for missing min/max width, turn into 0 + var sum = 0; + for ( var i=1; i < arguments.length; i++ ) + sum += Math.max(parseInt(jq.css(arguments[i])) || 0, 0); + return sum; + } + + // Determine settings based on incoming opts, element classes, and defaults + var vh = (args.splitHorizontal? 'h' : args.splitVertical? 'v' : args.type) || 'v'; + var opts = $.extend({ + activeClass: 'active', // class name for active splitter + pxPerKey: 8, // splitter px moved per keypress + tabIndex: 0, // tab order indicator + accessKey: '' // accessKey for splitbar + },{ + v: { // Vertical splitters: + keyLeft: 39, keyRight: 37, cursor: "col-resize", + splitbarClass: "vsplitbar", outlineClass: "voutline", + type: 'v', eventPos: "pageX", origin: "left", + split: "width", pxSplit: "offsetWidth", side1: "Left", side2: "Right", + fixed: "height", pxFixed: "offsetHeight", side3: "Top", side4: "Bottom" + }, + h: { // Horizontal splitters: + keyTop: 40, keyBottom: 38, cursor: "row-resize", + splitbarClass: "hsplitbar", outlineClass: "houtline", + type: 'h', eventPos: "pageY", origin: "top", + split: "height", pxSplit: "offsetHeight", side1: "Top", side2: "Bottom", + fixed: "width", pxFixed: "offsetWidth", side3: "Left", side4: "Right" + } + }[vh], args); + + // Create jQuery object closures for splitter and both panes + var splitter = $(this).css({position: "relative"}); + var panes = $(">*", splitter[0]).css({ + position: "absolute", // positioned inside splitter container + "z-index": "1", // splitbar is positioned above + "-moz-outline-style": "none" // don't show dotted outline + }); + var A = $(panes[0]); // left or top + var B = $(panes[1]); // right or bottom + + // Focuser element, provides keyboard support; title is shown by Opera accessKeys + var focuser = $('') + .attr({accessKey: opts.accessKey, tabIndex: opts.tabIndex, title: opts.splitbarClass}) + .bind($.browser.opera?"click":"focus", function(){ this.focus(); bar.addClass(opts.activeClass) }) + .bind("keydown", function(e){ + var key = e.which || e.keyCode; + var dir = key==opts["key"+opts.side1]? 1 : key==opts["key"+opts.side2]? -1 : 0; + if ( dir ) + resplit(A[0][opts.pxSplit]+dir*opts.pxPerKey, false); + }) + .bind("blur", function(){ bar.removeClass(opts.activeClass) }); + + // Splitbar element, can be already in the doc or we create one + var bar = $(panes[2] || '
    ') + .insertAfter(A).css("z-index", "100").append(focuser) + .attr({"class": opts.splitbarClass, unselectable: "on"}) + .css({position: "absolute", "user-select": "none", "-webkit-user-select": "none", + "-khtml-user-select": "none", "-moz-user-select": "none", "top": "0px"}) + .bind("mousedown", startSplitMouse); + // Use our cursor unless the style specifies a non-default cursor + if ( /^(auto|default|)$/.test(bar.css("cursor")) ) + bar.css("cursor", opts.cursor); + + // Cache several dimensions for speed, rather than re-querying constantly + bar._DA = bar[0][opts.pxSplit]; + splitter._PBF = $.boxModel? dimSum(splitter, "border"+opts.side3+"Width", "border"+opts.side4+"Width") : 0; + splitter._PBA = $.boxModel? dimSum(splitter, "border"+opts.side1+"Width", "border"+opts.side2+"Width") : 0; + A._pane = opts.side1; + B._pane = opts.side2; + $.each([A,B], function(){ + this._min = opts["min"+this._pane] || dimSum(this, "min-"+opts.split); + this._max = opts["max"+this._pane] || dimSum(this, "max-"+opts.split) || 9999; + this._init = opts["size"+this._pane]===true ? + parseInt($.curCSS(this[0],opts.split)) : opts["size"+this._pane]; + }); + + // Determine initial position, get from cookie if specified + var initPos = A._init; + if ( !isNaN(B._init) ) // recalc initial B size as an offset from the top or left side + initPos = splitter[0][opts.pxSplit] - splitter._PBA - B._init - bar._DA; + if ( opts.cookie ) { + if ( !$.cookie ) + alert('jQuery.splitter(): jQuery cookie plugin required'); + var ckpos = parseInt($.cookie(opts.cookie)); + if ( !isNaN(ckpos) ) + initPos = ckpos; + $(window).bind("unload", function(){ + var state = String(bar.css(opts.origin)); // current location of splitbar + $.cookie(opts.cookie, state, {expires: opts.cookieExpires || 365, + path: opts.cookiePath || document.location.pathname}); + }); + } + if ( isNaN(initPos) ) // King Solomon's algorithm + initPos = Math.round((splitter[0][opts.pxSplit] - splitter._PBA - bar._DA)/2); + + // Resize event propagation and splitter sizing + if ( opts.anchorToWindow ) { + // Account for margin or border on the splitter container and enforce min height + splitter._hadjust = dimSum(splitter, "borderTopWidth", "borderBottomWidth", "marginBottom"); + splitter._hmin = Math.max(dimSum(splitter, "minHeight"), 20); + $(window).bind("resize", function(){ + var top = splitter.offset().top; + var wh = $(window).height(); + splitter.css("height", Math.max(wh-top-splitter._hadjust, splitter._hmin)+"px"); + if ( !IE_10_AND_BELOW ) splitter.trigger("resize"); + }).trigger("resize"); + } + else if ( opts.resizeToWidth && !IE_10_AND_BELOW ) + $(window).bind("resize", function(){ + splitter.trigger("resize"); + }); + + // Resize event handler; triggered immediately to set initial position + splitter.bind("resize", function(e, size){ + // Custom events bubble in jQuery 1.3; don't Yo Dawg + if ( e.target != this ) return; + // Determine new width/height of splitter container + splitter._DF = splitter[0][opts.pxFixed] - splitter._PBF; + splitter._DA = splitter[0][opts.pxSplit] - splitter._PBA; + // Bail if splitter isn't visible or content isn't there yet + if ( splitter._DF <= 0 || splitter._DA <= 0 ) return; + // Re-divvy the adjustable dimension; maintain size of the preferred pane + resplit(!isNaN(size)? size : (!(opts.sizeRight||opts.sizeBottom)? A[0][opts.pxSplit] : + splitter._DA-B[0][opts.pxSplit]-bar._DA)); + }).trigger("resize" , [initPos]); + }); +}; + +})(jQuery); \ No newline at end of file diff --git a/codes/agent/game-docker/api/document/支付接口.html b/codes/agent/game-docker/api/document/支付接口.html new file mode 100644 index 0000000..47de36a --- /dev/null +++ b/codes/agent/game-docker/api/document/支付接口.html @@ -0,0 +1,4022 @@ + + + + 支付接口 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + +
    +

    一:获取门店支付方式列表信息(post)

    +
    +
    + + +
    +
    + +
    +

    接口地址:  https://api2.tscce.cn/api/newpay/querylist

    +
    +
    + + +
    +
    + +
    +

    接口参数:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    appid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    应用标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    devkey

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    开发者标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    market_key

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    门店标识, 由平台统一分配, 对应各自的门店

    +
    +
    + + +
    + + +
    +

    paytype

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    预先指定的支付方式

    如果指定该参数则只返回指定的支付方式信息

    +
    +
    + + +
    + + +
    +

    level

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    要获取的支付等级类型

    (1: 线上支付; 2: 线下扫码支付; 3: 移动app支付)

    +
    +
    + + +
    + + +
    +

    version

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    版本号(默认为1)

    +
    +
    + + +
    + + +
    +

    sign

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    签名信息,具体见签名算法

    +
    +
    +
    + + +
    +
    + +
    +

    返回信息:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    type_id

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付方式id

    +
    +
    + + +
    + + +
    +

    type_key

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付方式key

    +
    +
    + + +
    + + +
    +

    type_name

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付方式名称

    +
    +
    + + +
    + + +
    +

    image

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    logo图片地址

    +
    +
    + + +
    + + +
    +

    url

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    接口地址

    +
    +
    + + +
    + + +
    +

    is_third

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    是否为第三方支付方式(0: 否; 1: 是)

    +
    +
    + + +
    + + +
    +

    third_flag

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    第三方标识

    +
    +
    + + +
    + + +
    +

    type_level

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付等级

    +
    +
    +
    + + +
    +
    + +
    +

    返回值说明:

    +
    +
    + + +
    +
    + +
    +

    如果接口调用成功,将以标准json字符串的形式返回所支持的认证信息。

    例如:

    [

    {"type_id":"2","type_key":"002","type_name":"微信支付","image":"","url":"","is_third":"1","third_flag":"weixin"},

    {"type_id":"2","type_key":"002","type_name":"微信支付","image":"","url":"","is_third":"1","third_flag":"weixin"}

    ]

    +
    +
    + + +
    +
    + +
    +

    二:统一线上支付接口(post表单提交同步跳转)

    +
    +
    + + +
    +
    + +
    +

    接口地址:  https://api2.tscce.cn/api/newpay/pay/online/

    +
    +
    + + +
    +
    + +
    +

    接口参数: 

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    appid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    应用标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    devkey

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    开发者标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    sid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    登录认证时服务端返回的sid

    +
    +
    + + +
    + + +
    +

    scode

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次业务随机码, 由页面生成

    +
    +
    + + +
    + + +
    +

    orderid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    订单编号

    +
    +
    + + +
    + + +
    +

    fee

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次需要支付的金额,单位为分

    +
    +
    + + +
    + + +
    +

    title

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次支付主题

    +
    +
    + + +
    + + +
    +

    notice_url

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付成功后的通知回调地址, 异步

    +
    +
    + + +
    + + +
    +

    return_url

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付成功后的回跳地址, 同步

    +
    +
    + + +
    + + +
    +

    paytype

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付方式id

    +
    +
    + + +
    + + +
    +

    version

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    版本号(默认为1)

    +
    +
    + + +
    + + +
    +

    ...

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    如果在支付过程中需要其他附加的参数,可以一并传递给服务端。

    服务端在回调时会一并原样返回。

    +
    +
    + + +
    + + +
    +

    sign

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    签名信息,具体见签名算法

    +
    +
    +
    + + +
    +
    + +
    +

    返回信息:-

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    orderNo

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    订单号

    +
    +
    + + +
    + + +
    +

    out_trade_no

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    平台订单号

    +
    +
    + + +
    + + +
    +

    transaction_id

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    三方订单号(微信或支付宝等)

    +
    +
    + + +
    + + +
    +

    total_fee

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付金额(单位分)

    +
    +
    + + +
    + + +
    +

    version

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    版本号(默认为1)

    +
    +
    + + +
    + + +
    +

    ...

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    如果在发起支付时还附带有非必须的参数, 将在回调时一并返回.

    +
    +
    + + +
    + + +
    +

    sign

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    签名信息,具体见签名算法

    +
    +
    +
    + + +
    +
    + +
    +

    回调说明:

    +
    +
    + + +
    +
    + +
    +

    如果接口调用成功,将会调用指定的回调页面,sid和scode将会以参数的形式传递给页面。

    例如:

    http://return.html?orderNo=111&out_trade_no=111&transaction_id=111&total_fee=111&...&sign=...。


    +
    +
    + + +
    +
    + +
    +

    注:

    支付完毕后,服务端是以回调的形式通知客户端的。参数将以标准网页的参数传递方式传递。

    +
    +
    + + +
    +
    + +
    +

    支付回调通知

    +
    +
    + + +
    +
    + +
    +

    三:统一线下扫码支付接口(post)

    +
    +
    + + +
    +
    + +
    +

    接口地址:  https://api2.tscce.cn/api/newpay/pay/offline/

    +
    +
    + + +
    +
    + +
    +

    接口参数: 

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    appid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    应用标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    devkey

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    开发者标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    sid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    登录认证时服务端返回的sid

    +
    +
    + + +
    + + +
    +

    scode

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次业务随机码, 由页面生成

    +
    +
    + + +
    + + +
    +

    orderid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    订单编号

    +
    +
    + + +
    + + +
    +

    fee

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次需要支付的金额,单位为分

    +
    +
    + + +
    + + +
    +

    title

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次支付主题

    +
    +
    + + +
    + + +
    +

    notice_url

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付成功后的通知回调地址, 异步

    +
    +
    + + +
    + + +
    +

    paytype

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付方式id

    +
    +
    + + +
    + + +
    +

    version

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    版本号(默认为1)

    +
    +
    + + +
    + + +
    +

    ...

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    如果在支付过程中需要其他附加的参数,可以一并传递给服务端。

    服务端在回调时会一并原样返回。

    +
    +
    + + +
    + + +
    +

    sign

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    签名信息,具体见签名算法

    +
    +
    +
    + + +
    +
    + +
    +

    返回信息:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    error

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    返回值: 0成功; 非0失败;

    +
    +
    + + +
    + + +
    +

    error_code

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    错误号

    +
    +
    + + +
    + + +
    +

    msg

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    错误信息

    +
    +
    + + +
    + + +
    +

    data

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    返回的数据(包含支付连接和二维码图片地址)

    +
    +
    +
    + + +
    +
    + +
    +

    返回值说明:

    +
    +
    + + +
    +
    + +
    +

    如果接口调用成功,将以标准json字符串的形式返回所支持的认证信息。

    例如:

    {"error":"0","error_code":"0","msg":"","data":{"code_img_url":"","code_url":""}}

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    code_img_url

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    二维码图片地址

    +
    +
    + + +
    + + +
    +

    code_url

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付连接

    +
    +
    +
    + + +
    +
    + +
    +

    当接口成功调用时,data将返回如下数据

    +
    +
    + + +
    +
    + +
    +

    五:统一申请退款接口(post)

    +
    +
    + + +
    +
    + +
    +

    接口地址:  https://api2.tscce.cn/api/newpay/refund/

    +
    +
    + + +
    +
    + +
    +

    接口参数: 

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    appid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    应用标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    devkey

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    开发者标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    sid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    登录认证时服务端返回的sid

    +
    +
    + + +
    + + +
    +

    scode

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次业务随机码, 由页面生成

    +
    +
    + + +
    + + +
    +

    transaction_id

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    三方订单号

    +
    +
    + + +
    + + +
    +

    out_trade_no

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    平台订单号

    +
    +
    + + +
    + + +
    +

    refund_fee

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次需要退款的金额,不能超过支付的金额(单位:分)

    +
    +
    + + +
    + + +
    +

    version

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    版本号(默认为1)

    +
    +
    + + +
    + + +
    +

    ...

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    如果在退款过程中需要其他附加的参数,可以一并传递给服务端。

    服务端在返回时会一并原样返回。

    +
    +
    + + +
    + + +
    +

    sign

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    签名信息,具体见签名算法

    +
    +
    +
    + + +
    +
    + +
    +

    返回信息:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    error

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    返回值: 0成功; 非0失败;

    +
    +
    + + +
    + + +
    +

    error_code

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    错误号

    +
    +
    + + +
    + + +
    +

    msg

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    错误信息

    +
    +
    + + +
    + + +
    +

    data

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    返回的数据

    +
    +
    +
    + + +
    +
    + +
    +

    返回值说明:

    +
    +
    + + +
    +
    + +
    +

    如果接口调用成功,将以标准json字符串的形式返回所支持的认证信息。

    例如:

    {"error":"0","error_code":"0","msg":"","data":{...}}

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    ...

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    如果在发起退款时还附带有非必须的参数, 将在回调时一并返回.

    +
    +
    +
    + + +
    +
    + +
    +

    当接口成功调用时,data将返回如下数据

    +
    +
    + + +
    +
    + +
    +

    四:统一移动支付接口(post)

    +
    +
    + + +
    +
    + +
    +

    接口地址:  https://api2.tscce.cn/api/newpay/pay/mobile/

    +
    +
    + + +
    +
    + +
    +

    接口参数: 

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    appid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    应用标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    devkey

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    开发者标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    sid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    登录认证时服务端返回的sid(version=1时不使用该参数)

    +
    +
    + + +
    + + +
    +

    scode

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次业务随机码, 由页面生成(version=1时不使用该参数)

    +
    +
    + + +
    + + +
    +

    market_key

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    要支付的门店key(version=1时使用该参数做支付校验)

    +
    +
    + + +
    + + +
    +

    from_user

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    要支付的用户标志(openid)(version=1时使用该参数做支付校验)

    +
    +
    + + +
    + + +
    +

    orderid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    订单编号

    +
    +
    + + +
    + + +
    +

    fee

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次需要支付的金额,单位为分

    +
    +
    + + +
    + + +
    +

    title

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次支付主题

    +
    +
    + + +
    + + +
    +

    notice_url

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付成功后的通知回调地址, 异步

    +
    +
    + + +
    + + +
    +

    paytype

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    支付方式id

    +
    +
    + + +
    + + +
    +

    version

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    版本号(默认为1)

    +
    +
    + + +
    + + +
    +

    ...

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    如果在支付过程中需要其他附加的参数,可以一并传递给服务端。

    服务端在回调时会一并原样返回。

    +
    +
    + + +
    + + +
    +

    sign

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    签名信息,具体见签名算法

    +
    +
    +
    + + +
    +
    + +
    +

    返回信息:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    error

    +
    +
    + + +
    + + +
    +

    integer

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    返回值: 0成功; 非0失败;

    +
    +
    + + +
    + + +
    +

    error_code

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    错误号

    +
    +
    + + +
    + + +
    +

    msg

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    错误信息

    +
    +
    + + +
    + + +
    +

    data

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    返回的数据(预支付交易会话标识)

    +
    +
    +
    + + +
    +
    + +
    +

    返回值说明:

    +
    +
    + + +
    +
    + +
    +

    如果接口调用成功,将以标准json字符串的形式返回所支持的认证信息。

    例如:

    {"error":"0","error_code":"0","msg":"","data":{"prepay_id":""}}

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    prepay_id

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    预支付交易会话标识

    +
    +
    +
    + + +
    +
    + +
    +

    当接口成功调用时,data将返回如下数据

    +
    +
    +
    + + diff --git a/codes/agent/game-docker/api/document/支付流程.html b/codes/agent/game-docker/api/document/支付流程.html new file mode 100644 index 0000000..4aca53f --- /dev/null +++ b/codes/agent/game-docker/api/document/支付流程.html @@ -0,0 +1,181 @@ + + + + 支付流程 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + +
    +

    开始支付

    +
    +
    + + +
    +
    + +
    +

    获取支付信息列表

    (包括支援的支付列表和接口地址)

    +
    +
    + + +
    + + +
    +

    输入参数:

    appid: 应用标识, 由平台统一分配, 开发者自行配置(必须)

    devkey: 开发者标识, 由平台统一分配, 开发者自行配置(必须)

    market_key: 门店标识, 由平台统一分配, 对应各自的门店(必须)

    pay_type: 支付方式, 由商户配置, (可选, 可根据门店设置获取)

    sign: 参数签名(必须)

    +
    +
    + + +
    + + +
    +

    输入参数:

    appid: 应用标识, 由平台统一分配, 开发者自行配置(必须)

    devkey: 开发者标识, 由平台统一分配, 开发者自行配置(必须)

    sid: 用户登录认证成功后所返回的标识(必须)

    scode: 本次业务随机码, 由页面生成, 用户认证成功后也会返回(必须)

    orderid: 订单号(必须)

    fee: 支付金额, 单位分(必须)

    title: 支付标题(必须)

    notice_url: 支付成功后的通知回调地址, 异步(必须)

    return_url: 支付成功后的回跳地址, 同步(线上专用)(必须)

    paytype: 支付方式(必须)

    sign: 参数签名(必须)

    +
    +
    + + +
    +
    + +
    +

    发起支付(线上)

    获取支付码(线下)

    +
    +
    + + +
    + u1227_seg0 + u1227_seg1 + + +
    + + +
    + u1229_seg0 + u1229_seg1 + u1229_seg2 + + +
    + + +
    + u1231_seg0 + u1231_seg1 + + +
    + + +
    + u1233_seg0 + u1233_seg1 + u1233_seg2 + + +
    + + +
    +
    + +
    +

    通知支付结果

    +
    +
    + + +
    + u1237_seg0 + u1237_seg1 + + +
    + + +
    + + +
    +

    输入参数:

    orderNo: 订单号

    out_trade_no: 平台订单号

    transaction_id: 三方订单号(微信或支付宝等)

    total_fee: 支付金额(单位分)

    sign: 参数签名(必须)

    注: 如果在发起支付时还附带有非必须的参数, 将在回调时一并返回.

    +
    +
    + + +
    + u1241_seg0 + u1241_seg1 + u1241_seg2 + + +
    +
    + + diff --git a/codes/agent/game-docker/api/document/流程.rp b/codes/agent/game-docker/api/document/流程.rp new file mode 100644 index 0000000..019c046 Binary files /dev/null and b/codes/agent/game-docker/api/document/流程.rp differ diff --git a/codes/agent/game-docker/api/document/移动支付流程.html b/codes/agent/game-docker/api/document/移动支付流程.html new file mode 100644 index 0000000..9be71a0 --- /dev/null +++ b/codes/agent/game-docker/api/document/移动支付流程.html @@ -0,0 +1,64 @@ + + + + 移动支付流程 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + +
    +

    1.网页调用原生支付接口


    try{

    window.tsapply.applypayData(String data); 


    }catch(e){


    }

    data json字符串结构


    {"title":"苹果一斤","price":1,"orderid":"订单id","notice_url":"回调地址","typeplay":"1"}


    Title 支付商品详情 支付页面显示

    Price 支付金额  单位 分

    Orderid  订单编号

    notice_url  支付回调地址()

    Typeplay   支付类型



    2.用户完成支付回调 


    state  1 是成功  0 失败

    function PaytypePaystate(state){


    }


    +
    +
    +
    + + diff --git a/codes/agent/game-docker/api/document/签名算法.html b/codes/agent/game-docker/api/document/签名算法.html new file mode 100644 index 0000000..7810e05 --- /dev/null +++ b/codes/agent/game-docker/api/document/签名算法.html @@ -0,0 +1,64 @@ + + + + 签名算法 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + +
    +

    签名参数说明:

        签名参数为请求的所有参数(签名sign除外)的md5计算结果. 具体算法如下:

        一: 把所有的请求参数, 按参数名由小到大排序, 并用连接符&连接成一个字符串

        二: 在字符串后面追加一个签名key, 这个key由商户在所属门店后台中配置.

        三: 把生成的最终字符串通过md5加密.


    例:

      调用某接口, 必须的参数为: appid, devkey, market_key

      假设本次调用实际参数为  appid=aaa, devkey=bbb, market_key=111

      那么具体的签名过程为,首先按照参数名来排序,即:

        appid=aaa

        devkey=bbb

        market_key=111

      然后用&连接:

        appid=aaa&devkey=bbb&market_key=111

      再在结果后追加签名key, 假设key为123, 则为:

        appid=aaa&devkey=bbb&market_key=111&key=123

      最后用md5加密这个串:

        md5(appid=aaa&devkey=bbb&market_key=111&key=123)

      生成的最终结果即为最后的参数签名.

    +
    +
    +
    + + diff --git a/codes/agent/game-docker/api/document/认证接口.html b/codes/agent/game-docker/api/document/认证接口.html new file mode 100644 index 0000000..f410aa5 --- /dev/null +++ b/codes/agent/game-docker/api/document/认证接口.html @@ -0,0 +1,1357 @@ + + + + 认证接口 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + +
    +

    一:获取门店登陆方式(post)

    +
    +
    + + +
    +
    + +
    +

    接口地址:  https://api2.tscce.cn/api/login/querylist

    +
    +
    + + +
    +
    + +
    +

    接口参数:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    market_key

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    门店标识, 由平台统一分配, 对应各自的门店

    +
    +
    + + +
    + + +
    +

    logintype

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    预先指定的登录认证方式

    如果指定该参数则只返回指定的登录认证方式信息

    +
    +
    +
    + + +
    +
    + +
    +

    返回信息:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    type_id

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    认证方式id

    +
    +
    + + +
    + + +
    +

    type_key

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    认证方式key

    +
    +
    + + +
    + + +
    +

    type_name

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    认证方式名称

    +
    +
    + + +
    + + +
    +

    image

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    logo图片地址

    +
    +
    + + +
    + + +
    +

    url

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    接口地址

    +
    +
    + + +
    + + +
    +

    is_third

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    是否为第三方认证方式(0: 否; 1: 是)

    +
    +
    + + +
    + + +
    +

    third_flag

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    第三方标识

    +
    +
    +
    + + +
    +
    + +
    +

    返回值说明:

    +
    +
    + + +
    +
    + +
    +

    如果接口调用成功,将以标准json字符串的形式返回所支持的认证信息。

    例如:

    [

    {"type_id":"2","type_key":"002","type_name":"微信登录","image":"","url":"https%3A%2F%2Fapi2.tscce.cn%2Fapi%2Flogin%2Fweixin","is_third":"1","third_flag":"weixin"},

    {"type_id":"2","type_key":"002","type_name":"微信登录","image":"","url":"https%3A%2F%2Fapi2.tscce.cn%2Fapi%2Flogin%2Fweixin","is_third":"1","third_flag":"weixin"}

    ]

    +
    +
    + + +
    +
    + +
    +

    二:微信认证登录(get)

    +
    +
    + + +
    +
    + +
    +

    接口地址:  https://api2.tscce.cn/api/login/weixin

    +
    +
    + + +
    +
    + +
    +

    接口参数:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    appid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    应用标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    devkey

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    开发者标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    market_key

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    门店标识, 由平台统一分配, 对应各自的门店

    +
    +
    + + +
    + + +
    +

    scode

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次业务随机码, 由页面生成

    +
    +
    + + +
    + + +
    +

    target

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    登录成功后跳转到的页面地址

    +
    +
    + + +
    + + +
    +

    fail_target

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    登录出错后跳转到的页面地址

    +
    +
    +
    + + +
    +
    + +
    +

    返回信息:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    sid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    认证成功后,由服务端产生的唯一id

    +
    +
    + + +
    + + +
    +

    scode

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次业务随机码, 由页面生成

    +
    +
    +
    + + +
    +
    + +
    +

    返回值说明:

    +
    +
    + + +
    +
    + +
    +

    如果接口调用成功,将会调用指定的回调页面,sid和scode将会以参数的形式传递给页面。

    例如:

    http://login.html?sid=111&scode=111。

    如果接口调用错误,将会调用指定的错误回调页面,并把错误信息以参数形式传递给页面。

    例如:

    http://fail.html?error=1&error_code=10001&msg=xxx

    +
    +
    + + +
    +
    + +
    +

    三:根据sid和scode获取用户信息(get/post)

    +
    +
    + + +
    +
    + +
    +

    接口地址:  https://api2.tscce.cn/api/user

    +
    +
    + + +
    +
    + +
    +

    接口参数:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    appid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    应用标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    devkey

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    开发者标识, 由平台统一分配, 开发者自行配置

    +
    +
    + + +
    + + +
    +

    market_key

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    门店标识, 由平台统一分配, 对应各自的门店

    +
    +
    + + +
    + + +
    +

    sid

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    登录认证时服务端返回的sid

    +
    +
    + + +
    + + +
    +

    scode

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    本次业务随机码, 由页面生成

    +
    +
    +
    + + +
    +
    + +
    +

    返回信息:

    +
    +
    + + +
    + + +
    + + +
    +

    参数名

    +
    +
    + + +
    + + +
    +

    参数类型

    +
    +
    + + +
    + + +
    +

    是否必须

    +
    +
    + + +
    + + +
    +

    说明

    +
    +
    + + +
    + + +
    +

    usertype

    +
    +
    + + +
    + + +
    +

    string

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    账户认证方式(0:微信;1:qq;2:聚开心;3:密码;4:牛牛)

    +
    +
    + + +
    + + +
    +

    data

    +
    +
    + + +
    + + +
    +

    object

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    账户基本信息

    +
    +
    + + +
    + + +
    +

    dataContent

    +
    +
    + + +
    + + +
    +

    object

    +
    +
    + + +
    + + +
    +

    +
    +
    + + +
    + + +
    +

    账户扩展信息

    +
    +
    +
    + + +
    +
    + +
    +

    返回值说明:

    +
    +
    + + +
    +
    + +
    +

    如果接口调用成功,将会以标准json字符串形式返回用户的详细信息。

    例如:

    {"usertype":"0","data":{"headImage":"头像图片地址","nickName":"昵称","jifen":"积分"},"dataContent":{略}}

    +
    +
    +
    + + diff --git a/codes/agent/game-docker/api/document/认证流程.html b/codes/agent/game-docker/api/document/认证流程.html new file mode 100644 index 0000000..493f312 --- /dev/null +++ b/codes/agent/game-docker/api/document/认证流程.html @@ -0,0 +1,269 @@ + + + + 认证流程 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +
    + +
    +

    应用入口

    +
    +
    + + +
    +
    + +
    +

    获取用户认证信息列表

    (包括接口地址等)

    +
    +
    + + +
    + + +
    +

    输入参数:

    appid: 应用标识, 由平台统一分配, 开发者自行配置(必须)

    devkey: 开发者标识, 由平台统一分配, 开发者自行配置(必须)

    market_key: 门店标识, 由平台统一分配, 对应各自的门店(必须)

    login_type: 登录方式, 由商户配置, (可选, 可根据门店设置获取)

    +
    +
    + + +
    + u296_seg0 + u296_seg1 + + +
    + + +
    + u298_seg0 + u298_seg1 + u298_seg2 + u298_seg3 + + +
    + + +
    + + +
    +

    输入参数:

    appid: 应用标识, 由平台统一分配, 开发者自行配置(必须)

    devkey: 开发者标识, 由平台统一分配, 开发者自行配置(必须)

    scode: 本次业务随机码, 由页面生成(必须)

    market_key: 要登录的门店(必须)

    target: 登录成功后跳转到的页面地址(必须)

    fail_target: 登录出错后跳转到的页面地址(必须)

    +
    +
    + + +
    + u302_seg0 + u302_seg1 + + +
    + + +
    + u304_seg0 + u304_seg1 + u304_seg2 + + +
    + + +
    + + +
    +

    用户登录认证

    +
    +
    + + +
    +
    + +
    +

    跳转到错误页面, 并附带错误信息

    +
    +
    + + +
    +
    + +
    +

    跳转到指定的回调页面, 并附带本次认证产生的sid和scode

    +
    +
    + + +
    +
    + +
    +

    认证成功

    +
    +
    + + +
    +
    + +
    +

    认证失败

    +
    +
    + + +
    + u316_seg0 + u316_seg1 + + +
    + + +
    + u318_seg0 + u318_seg1 + + +
    + + +
    + u320_seg0 + u320_seg1 + + +
    + + +
    + u322_seg0 + u322_seg1 + + +
    + + +
    + u324_seg0 + u324_seg1 + u324_seg2 + u324_seg3 + + +
    + + +
    +
    + +
    +

    获取用户信息

    +
    +
    + + +
    + u328_seg0 + u328_seg1 + + +
    + + +
    +
    + +
    +

    其他业务操作

    +
    +
    + + +
    + u332_seg0 + u332_seg1 + + +
    +
    + + diff --git a/codes/agent/game-docker/api/domain_check_2419754.zip b/codes/agent/game-docker/api/domain_check_2419754.zip new file mode 100644 index 0000000..adae394 Binary files /dev/null and b/codes/agent/game-docker/api/domain_check_2419754.zip differ diff --git a/codes/agent/game-docker/api/framework/bootstrap.inc.php b/codes/agent/game-docker/api/framework/bootstrap.inc.php new file mode 100644 index 0000000..dc8398a --- /dev/null +++ b/codes/agent/game-docker/api/framework/bootstrap.inc.php @@ -0,0 +1,35 @@ +func('global'); +load()->func('compat'); +// 加载用户管理模块 +load()->model('user'); +// 加载缓存处理器 +load()->func('cache'); + +// 得到客户端的IP +define('CLIENT_IP', getip()); + +error_reporting(0); +//error_reporting(E_ALL | E_STRICT); + + +// 获取网站根路径 +$sitepath = substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/')); +// 网站访问根url +$_W['siteroot'] = htmlspecialchars('http://' . $_SERVER['HTTP_HOST'] . $sitepath); +if(substr($_W['siteroot'], -1) != '/') { + $_W['siteroot'] .= '/'; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/framework/class/loader.class.php b/codes/agent/game-docker/api/framework/class/loader.class.php new file mode 100644 index 0000000..6202625 --- /dev/null +++ b/codes/agent/game-docker/api/framework/class/loader.class.php @@ -0,0 +1,98 @@ +cache['func'][$name])) { + return true; + } + $file = IA_ROOT . '/framework/function/' . $name . '.func.php'; + if (file_exists($file)) { + include $file; + $this->cache['func'][$name] = true; + return true; + } else { + trigger_error('Invalid Helper Function /framework/function/' . $name . '.func.php', E_USER_ERROR); + return false; + } + } + // 加载指定的model,并在$cache用cache['model']的方式标识好是否加载成功 + function model($name) { + global $_W; + if (isset($this->cache['model'][$name])) { + return true; + } + $file = IA_ROOT . '/framework/model/' . $name . '.mod.php'; + if (file_exists($file)) { + include $file; + $this->cache['model'][$name] = true; + return true; + } else { + trigger_error('Invalid Model /framework/model/' . $name . '.mod.php', E_USER_ERROR); + return false; + } + } + // 加载指定的类,并在$cache用cache['class']的方式标识好是否加载成功 + function classs($name) { + global $_W; + if (isset($this->cache['class'][$name])) { + return true; + } + $file = IA_ROOT . '/framework/class/' . $name . '.class.php'; + if (file_exists($file)) { + include $file; + $this->cache['class'][$name] = true; + return true; + } else { + trigger_error('Invalid Class /framework/class/' . $name . '.class.php', E_USER_ERROR); + return false; + } + } + + function web($name) { + global $_W; + if (isset($this->cache['web'][$name])) { + return true; + } + $file = IA_ROOT . '/web/common/' . $name . '.func.php'; + if (file_exists($file)) { + include $file; + $this->cache['web'][$name] = true; + return true; + } else { + trigger_error('Invalid Web Helper /web/common/' . $name . '.func.php', E_USER_ERROR); + return false; + } + } + + // 加载指定的前端app函数,并在$cache用cache['app']的方式标识好是否加载成功 + function app($name) { + global $_W; + if (isset($this->cache['app'][$name])) { + return true; + } + $file = IA_ROOT . '/app/common/' . $name . '.func.php'; + if (file_exists($file)) { + include $file; + $this->cache['app'][$name] = true; + return true; + } else { + trigger_error('Invalid App Function /app/common/' . $name . '.func.php', E_USER_ERROR); + return false; + } + } +} diff --git a/codes/agent/game-docker/api/framework/class/weixin.account.class.php b/codes/agent/game-docker/api/framework/class/weixin.account.class.php new file mode 100644 index 0000000..b2f3a40 --- /dev/null +++ b/codes/agent/game-docker/api/framework/class/weixin.account.class.php @@ -0,0 +1,504 @@ +func('communication'); + +class WeiXinAccount +{ + protected $account = null;// 公众号信息 + + public function __construct($account = array()) + { + // 初始化子公号信息 + $this->account = $account; + } + + // 通过微信接口获得粉丝信息 + public function fansQueryInfo($uniid, $db, $pdo, $isOpen = true) + { + if ($isOpen) { + $openid = $uniid; + } else { + exit('error'); + } + + $token = $this->getAccessToken($db, $pdo); + + if (is_error($token)) { + return $token; + } + $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$token}&openid={$openid}&lang=zh_CN"; + $response = ihttp_get($url); + if (is_error($response)) { + return error(-1, "访问公众平台接口失败, 错误: {$response['message']}"); + } + $result = @json_decode($response['content'], true); + if (empty($result)) { + return error(-1, "接口调用失败, 元数据: {$response['meta']}"); + } elseif (!empty($result['errcode'])) { + return error(-1, "访问微信接口错误, 错误代码: {$result['errcode']}, 错误信息: {$result['errmsg']},错误详情:{$this->error_code($result['errcode'])}"); + } + return $result; + } + + public function fansBatchQueryInfo($data, $db) + { + if (empty($data)) { + return error(-1, '粉丝openid错误'); + } + foreach ($data as $da) { + $post[] = array( + 'openid' => trim($da), + 'lang' => 'zh-CN', + ); + } + $data = array(); + $data['user_list'] = $post; + $token = $this->getAccessToken($db); + if (is_error($token)) { + return $token; + } + $url = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token={$token}"; + $response = ihttp_post($url, json_encode($data)); + if (is_error($response)) { + return error(-1, "访问公众平台接口失败, 错误: {$response['message']}"); + } + $result = @json_decode($response['content'], true); + if (empty($result)) { + return error(-1, "接口调用失败, 元数据: {$response['meta']}"); + } elseif (!empty($result['errcode'])) { + return error(-1, "访问微信接口错误, 错误代码: {$result['errcode']}, 错误信息: {$result['errmsg']},错误详情:{$this->error_code($result['errcode'])}"); + } + return $result['user_info_list']; + } + + // 获得微信调用accessToken + public function getAccessToken($db, $pdo) + { + load()->func('communication'); + // 此处改动过 + $cachekey = "accesstoken:{$this->account['key']}"; + $cache = cache_load($cachekey, $db); + + $timeFlag = $cache['expire'] > TIMESTAMP; + if (!empty($cache) && !empty($cache['token']) && $cache['expire'] > TIMESTAMP) { + $this->account['access_token'] = $cache; + return $cache['token']; + } + + if (empty($this->account['key']) || empty($this->account['secret'])) { + return error('-1', '未填写公众号的 appid 或 appsecret!'); + } + $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->account['key']}&secret={$this->account['secret']}"; + $content = ihttp_get($url); + if (is_error($content)) { + return error('-2', '获取微信公众号授权失败, 请稍后重试!错误详情: ' . $content['message']); + } + + $token = @json_decode($content['content'], true); + if (empty($token) || !is_array($token) || empty($token['access_token']) || empty( + $token['expires_in']) + ) { + $errorinfo = substr($content['meta'], strpos($content['meta'], '{')); + $errorinfo = @json_decode($errorinfo, true); + return error('-3', '获取微信公众号授权失败, 请稍后重试! 公众平台返回原始数据为: 错误代码-' . $errorinfo['errcode'] . ',错误信息-' . $errorinfo['errmsg']); + } + $record = array(); + $record['token'] = $token['access_token']; + $record['expire'] = TIMESTAMP + $token['expires_in'] - 200; + $this->account['access_token'] = $record; + + cache_write($cachekey, $record, $db, $pdo); + return $record['token']; + } + + // 通过微信接口获得调用微信JS接口的临时票据 + public function getJsApiTicket($db, $pdo) + { + load()->func('communication'); + // 首先从本地缓存中查询未过期的JSApi调用票据 + $cachekey = "jsticket:{$this->account['key']}"; + $cache = cache_load($cachekey, $db); + if (!empty($cache) && !empty($cache['ticket']) && $cache['expire'] > TIMESTAMP) { + return $cache['ticket']; + } + load()->func('communication'); + // 获得微信调用accessToken + $access_token = $this->getAccessToken($db, $pdo); + if (is_error($access_token)) { + return $access_token; + } + // 生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用 + // 微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒, + // 通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限, + // 频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自 + // 己的服务全局缓存jsapi_ticket。 + $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={$access_token}&type=jsapi"; + $content = ihttp_get($url); + if (is_error($content)) { + return error(-1, '调用接口获取微信公众号 jsapi_ticket 失败, 错误信息: ' . $content['message']); + } + $result = @json_decode($content['content'], true); + if (empty($result) || intval(($result['errcode'])) != 0 || $result['errmsg'] != 'ok') { + return error(-1, '获取微信公众号 jsapi_ticket 结果错误, 错误信息: ' . $result['errmsg']); + } + $record = array(); + $record['ticket'] = $result['ticket'];// 临时票据 + $record['expire'] = TIMESTAMP + $result['expires_in'] - 200;// 到期时间 + $this->account['jsapi_ticket'] = $record; + cache_write($cachekey, $record, $db, $pdo);// 将票据信息回写到缓存中进行缓存 + return $record['ticket'];// 返回调用微信JS接口的临时票据 + } + + // 返回调用微信JS接口的配置数组 + public function getJssdkConfig() + { + global $_W; + // 通过微信接口获得调用微信JS接口的临时票据 + $jsapiTicket = $this->getJsApiTicket(); + if (is_error($jsapiTicket)) { + $jsapiTicket = $jsapiTicket['message']; + } + // 生成指定长度的随机字符 + // 第一个参数:要生成的长度 + // 第二个参数:是否生成数字形式 + $nonceStr = random(16); + $timestamp = TIMESTAMP;// 当前系统时间 + $url = $_W['siteurl'];// 当前脚本访问的全路径,包括参数(原始链接) + // 获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。 + // 拼接待签名的字符串 + $string1 = "jsapi_ticket={$jsapiTicket}&noncestr={$nonceStr}×tamp={$timestamp}&url={$url}"; + // 对字符串进行sha1签名,得到signature + $signature = sha1($string1); + // 组装调用配置 + $config = array( + "appId" => $this->account['key'], + // 子公号AppId + "nonceStr" => $nonceStr, + // 随机字符 + "timestamp" => "$timestamp", + // 当前时间戳 + "signature" => $signature, + // 签名 + ); + // 定义是否为开发者模式 + //if(DEVELOPMENT) { + $config['url'] = $url; + $config['string1'] = $string1; + $config['name'] = $this->account['name']; + //} + return $config; + } + + // 返回调用微信JS接口的配置数组 + public function getAjaxJssdkConfig($siteurl, $db, $pdo) + { + // 通过微信接口获得调用微信JS接口的临时票据 + $jsapiTicket = $this->getJsApiTicket($db, $pdo); + if (is_error($jsapiTicket)) { + $jsapiTicket = $jsapiTicket['message']; + } + + // 生成指定长度的随机字符 + // 第一个参数:要生成的长度 + // 第二个参数:是否生成数字形式 + $nonceStr = random(16); + $timestamp = TIMESTAMP;// 当前系统时间 + $url = $siteurl;// 当前脚本访问的全路径,包括参数(原始链接) + // 获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。 + // 拼接待签名的字符串 + $string1 = "jsapi_ticket={$jsapiTicket}&noncestr={$nonceStr}×tamp={$timestamp}&url={$url}"; + // 对字符串进行sha1签名,得到signature + $signature = sha1($string1); + // 组装调用配置 + $config = array( + "appId" => $this->account['key'], // 子公号AppId + "nonceStr" => $nonceStr, // 随机字符 + "timestamp" => "$timestamp", // 当前时间戳 + "signature" => $signature, // 签名 + ); + // 定义是否为开发者模式 + return $config; + } + + // 秘钥错误消息枚举,通过错误消息代码获得消息正文 + private function encrypt_error_code($code) + { + $errors = array( + '40001' => '签名验证错误', + '40002' => 'xml解析失败', + '40003' => 'sha加密生成签名失败', + '40004' => 'encodingAesKey 非法', + '40005' => 'appid 校验错误', + '40006' => 'aes 加密失败', + '40007' => 'aes 解密失败', + '40008' => '解密后得到的buffer非法', + '40009' => 'base64加密失败', + '40010' => 'base64解密失败', + '40011' => '生成xml失败', + ); + if ($errors[$code]) { + return $errors[$code]; + } else { + return '未知错误'; + } + } + + public function error_code($code) + { + $errors = array( + '-1' => '系统繁忙', + '0' => '请求成功', + '40001' => '获取access_token时AppSecret错误,或者access_token无效', + '40002' => '不合法的凭证类型', + '40003' => '不合法的OpenID', + '40004' => '不合法的媒体文件类型', + '40005' => '不合法的文件类型', + '40006' => '不合法的文件大小', + '40007' => '不合法的媒体文件id', + '40008' => '不合法的消息类型', + '40009' => '不合法的图片文件大小', + '40010' => '不合法的语音文件大小', + '40011' => '不合法的视频文件大小', + '40012' => '不合法的缩略图文件大小', + '40013' => '不合法的APPID', + '40014' => '不合法的access_token', + '40015' => '不合法的菜单类型', + '40016' => '不合法的按钮个数', + '40017' => '不合法的按钮个数', + '40018' => '不合法的按钮名字长度', + '40019' => '不合法的按钮KEY长度', + '40020' => '不合法的按钮URL长度', + '40021' => '不合法的菜单版本号', + '40022' => '不合法的子菜单级数', + '40023' => '不合法的子菜单按钮个数', + '40024' => '不合法的子菜单按钮类型', + '40025' => '不合法的子菜单按钮名字长度', + '40026' => '不合法的子菜单按钮KEY长度', + '40027' => '不合法的子菜单按钮URL长度', + '40028' => '不合法的自定义菜单使用用户', + '40029' => '不合法的oauth_code', + '40030' => '不合法的refresh_token', + '40031' => '不合法的openid列表', + '40032' => '不合法的openid列表长度', + '40033' => '不合法的请求字符,不能包含\uxxxx格式的字符', + '40035' => '不合法的参数', + '40038' => '不合法的请求格式', + '40039' => '不合法的URL长度', + '40050' => '不合法的分组id', + '40051' => '分组名字不合法', + '41001' => '缺少access_token参数', + '41002' => '缺少appid参数', + '41003' => '缺少refresh_token参数', + '41004' => '缺少secret参数', + '41005' => '缺少多媒体文件数据', + '41006' => '缺少media_id参数', + '41007' => '缺少子菜单数据', + '41008' => '缺少oauth code', + '41009' => '缺少openid', + '42001' => 'access_token超时', + '42002' => 'refresh_token超时', + '42003' => 'oauth_code超时', + '43001' => '需要GET请求', + '43002' => '需要POST请求', + '43003' => '需要HTTPS请求', + '43004' => '需要接收者关注', + '43005' => '需要好友关系', + '44001' => '多媒体文件为空', + '44002' => 'POST的数据包为空', + '44003' => '图文消息内容为空', + '44004' => '文本消息内容为空', + '45001' => '多媒体文件大小超过限制', + '45002' => '消息内容超过限制', + '45003' => '标题字段超过限制', + '45004' => '描述字段超过限制', + '45005' => '链接字段超过限制', + '45006' => '图片链接字段超过限制', + '45007' => '语音播放时间超过限制', + '45008' => '图文消息超过限制', + '45009' => '接口调用超过限制', + '45010' => '创建菜单个数超过限制', + '45015' => '回复时间超过限制', + '45016' => '系统分组,不允许修改', + '45017' => '分组名字过长', + '45018' => '分组数量超过上限', + '46001' => '不存在媒体数据', + '46002' => '不存在的菜单版本', + '46003' => '不存在的菜单数据', + '46004' => '不存在的用户', + '47001' => '解析JSON/XML内容错误', + '48001' => 'api功能未授权', + '50001' => '用户未授权该api', + '40070' => '基本信息baseinfo中填写的库存信息SKU不合法。', + '41011' => '必填字段不完整或不合法,参考相应接口。', + '40056' => '无效code,请确认code长度在20个字符以内,且处于非异常状态(转赠、删除)。', + '43009' => '无自定义SN权限,请参考开发者必读中的流程开通权限。', + '43010' => '无储值权限,请参考开发者必读中的流程开通权限。', + '43011' => '无积分权限,请参考开发者必读中的流程开通权限。', + '40078' => '无效卡券,未通过审核,已被置为失效。', + '40079' => '基本信息base_info中填写的date_info不合法或核销卡券未到生效时间。', + '45021' => '文本字段超过长度限制,请参考相应字段说明。', + '40080' => '卡券扩展信息cardext不合法。', + '40097' => '基本信息base_info中填写的url_name_type或promotion_url_name_type不合法。', + '49004' => '签名错误。', + '43012' => '无自定义cell跳转外链权限,请参考开发者必读中的申请流程开通权限。', + '40099' => '该code已被核销。', + '61005' => '缺少接入平台关键数据,等待微信开放平台推送数据,请十分钟后再试或是检查“授权事件接收URL”是否写错(index.php?c=account&a=auth&do=ticket地址中的&符号容易被替换成&amp;)', + '61023' => '请重新授权接入该公众号', + ); + $code = strval($code); + if ($code == '40001' || $code == '42001') { + $cachekey = "accesstoken:{$this->account['acid']}"; + cache_delete($cachekey); + return '微信公众平台授权异常, 系统已修复这个错误, 请刷新页面重试.'; + } + if ($errors[$code]) { + return $errors[$code]; + } else { + return '未知错误'; + } + } + + // 通过网页授权拉取用户详细信息,非静默授权 + public function getOauthUserInfo($accesstoken, $openid) + { + // 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同 + $apiurl = "https://api.weixin.qq.com/sns/userinfo?access_token={$accesstoken}&openid={$openid}&lang=zh_CN"; + $response = ihttp_get($apiurl); + if (is_error($response)) { + return $response; + } + return @json_decode($response['content'], true); + } + + // 通过code换取网页授权access_token + public function getOauthInfo($code) + { + $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$this->account['key']}&secret={$this->account['secret']}&code={$code}&grant_type=authorization_code"; + $response = ihttp_get($url); + if (is_error($response)) { + return $response; + } + return @json_decode($response['content'], true); + } + + // 返回网页静默授权的授权访问地址 + // 参数1:回调页面地址 + // 参数2:重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 + public function getOauthCodeUrl($callback, $state = '') + { + return "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->account['key']}&redirect_uri={$callback}&response_type=code&scope=snsapi_base&state={$state}#wechat_redirect"; + } + + // 返回网页非静默授权的授权访问地址 + // 参数1:回调页面地址 + // 参数2:重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节 + public function getOauthUserInfoUrl($callback, $state = '') + { + return "https://open.weixin.qq.com/connect/oauth2/authorize?appid={$this->account['key']}&redirect_uri={$callback}&response_type=code&scope=snsapi_userinfo&state={$state}#wechat_redirect"; + } + + + + // 发送模板消息 + // 参数1:要发送的目标用户openId + // 参数2:模板标识ID + // 参数3:要发送的模板消息内容 + // 参数4:模板消息跳转地址,可以留空 + // 参数5:模板消息背景颜色(新版本不支持) + public function sendTplNotice($db, $pdo, $touser, $template_id, $postdata, $url = '', $topcolor = '#FF683F') + { + // 要发送给的目标粉丝openid + if (empty($touser)) + return error(25000, '参数错误,粉丝openid不能为空'); + + // 要发送的模板标识 + if (empty($template_id)) + return error(250001, '参数错误,模板标示不能为空'); + + // 模板消息内容 + if (empty($postdata) || !(is_array($postdata) || is_object($postdata))) + return error(250002, '参数错误,请根据模板规则完善消息内容'); + + // 获得微信调用accessToken + $token = $this->getAccessToken($db, $pdo); + if (is_error($token)) { + $access_errno = $token['errno']; + return error(250003, '获取AccessToken失败'); + } + + $data = [ + 'touser' => trim($touser), /// 要发送给的目标粉丝openid + 'template_id' => trim($template_id), // 要发送的模板标识 + 'url' => trim($url), // 模板消息跳转地址(留空IOS点击显示空白 Android 无法点击 非空跳转至该URL) + //'topcolor' => trim($topcolor), /// 模板背景颜色(新版本中不再支持) + 'data' => $postdata, /// 模板消息内容 + ]; + $data = json_encode($data); + // 发送模板消息接口地址 + $post_url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$token}"; + $response = ihttp_request($post_url, $data, false); + if (is_error($response)) + return error(250004, "访问公众平台接口失败, 错误: {$response['message']}"); + + $result = @json_decode($response['content'], true); + + if (empty($result)) + return error(250006, "接口调用失败, 元数据: {$response['meta']}"); + elseif (!empty($result['errcode'])) + return error(250007, "访问微信接口错误, 错误代码: {$result['errcode']}, 错误信息: {$result['errmsg']},信息详情:" . $this->error_code($result['errcode'])); + else + return true; + } + + + public function SendTemplateMessage($to_user, $template_id, $target_url, $parameter, $color = '#7b68ee', $db = null, $pdo = null) + { + /// 要发送给的目标粉丝openid + if (empty($to_user)) + return error(25000, '参数错误,粉丝openid不能为空'); + + /// 要发送的模板标识 + if (empty($template_id)) + return error(250001, '参数错误,模板标示不能为空'); + + /// 模板消息内容 + if (empty($parameter) || !(is_array($parameter) || is_object($parameter))) + return error(250002, '参数错误,请根据模板规则完善消息内容'); + + /// 获得微信调用accessToken + $token = $this->getAccessToken($db, $pdo); + if (is_error($token)) + return error(250003, '获取AccessToken失败'); + + $data = []; + foreach ((array)$parameter as $key => $value) { + if (is_array($value) || is_object($value)) + $data[$key] = (array)$value; + else + $data[$key] = ['value' => $value, 'color' => $color, ]; + } + + $data = [ + 'touser' => trim($to_user), /// 要发送给的目标粉丝openid + 'template_id' => trim($template_id), // 要发送的模板标识 + 'url' => trim($target_url), // 模板消息跳转地址(留空IOS点击显示空白 Android 无法点击 非空跳转至该URL) + 'data' => $data, /// 模板消息内容 + ]; + $data = json_encode($data); + /// 发送模板消息接口地址 + $post_url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$token}"; + $response = ihttp_request($post_url, $data, false); + + if (is_error($response)) + return error(250004, "访问公众平台接口失败, 错误: {$response['message']}"); + + $result = @json_decode($response['content'], true); + + if (empty($result)) + return error(250006, "接口调用失败, 元数据: {$response['meta']}"); + elseif (!empty($result['errcode'])) + return error(250007, "访问微信接口错误, 错误代码: {$result['errcode']}, 错误信息: {$result['errmsg']},信息详情:" . $this->error_code($result['errcode'])); + else + return true; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/framework/function/cache.func.php b/codes/agent/game-docker/api/framework/function/cache.func.php new file mode 100644 index 0000000..f1231c3 --- /dev/null +++ b/codes/agent/game-docker/api/framework/function/cache.func.php @@ -0,0 +1,20 @@ +func('cache.mysql'); + +// 加载系统指定的配置项(core_cache表中) +function cache_load($key, $db,$unserialize = false) { + global $_W; + if (!empty($_W['cache'][$key])) { + return $_W['cache'][$key]; + } + // 读取指定的系统配置项(core_cache表中) + $data = $_W['cache'][$key] = cache_read($key,$db); + return $unserialize ? iunserializer($data) : $data; +} + + +function &cache_global($key) { + +} diff --git a/codes/agent/game-docker/api/framework/function/cache.mysql.func.php b/codes/agent/game-docker/api/framework/function/cache.mysql.func.php new file mode 100644 index 0000000..dc7ef24 --- /dev/null +++ b/codes/agent/game-docker/api/framework/function/cache.mysql.func.php @@ -0,0 +1,64 @@ +from('syweb_core_cache') + ->where('syweb_core_cache.`key`=?', $key) + ->get($db ,null); + if(count($val)>0){ + return iunserializer($val[0]["value"]); + } +} + + +function cache_search($prefix,$db) { + $rs = Sql::select('syweb_core_cache.*') + ->from('syweb_core_cache') + ->where('syweb_core_cache.`key` like ?', "{$prefix}%") + ->get($db ,null); + + $result = array(); + foreach ((array)$rs as $v) { + $result[$v['key']] = iunserializer($v['value']); + } + return $result; +} + +// 存储系统缓存 +function cache_write($key, $data,$db,$pdo) { + if (empty($key) || !isset($data)) { + return false; + } + $record = array(); + $record['`key`'] = $key; + $record['`value`'] = iserializer($data); + + $id = Sql::replaceInto('syweb_core_cache')->values($record)->exec($pdo)->lastInsertId(); + return $id; +} + + +function cache_delete($key) { + return Sql::deleteFrom('syweb_core_cache')->where('`key`=?',$key)->exec($pdo); +} + + +function cache_clean($prefix = '') { + global $_W; + if (empty($prefix)) { + $sql = 'DELETE FROM ' . tablename('core_cache'); + $result = pdo_query($sql); + if ($result) { + unset($_W['cache']); + } + } else { + $sql = 'DELETE FROM ' . tablename('core_cache') . ' WHERE `key` LIKE :key'; + $params = array(); + $params[':key'] = "{$prefix}:%"; + $result = pdo_query($sql, $params); + } + return $result; +} diff --git a/codes/agent/game-docker/api/framework/function/communication.func.php b/codes/agent/game-docker/api/framework/function/communication.func.php new file mode 100644 index 0000000..394e6ac --- /dev/null +++ b/codes/agent/game-docker/api/framework/function/communication.func.php @@ -0,0 +1,622 @@ += 0 && version_compare(phpversion(), '8.0') < 0) { + curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); + } + if (!empty($extra['ip'])) { + $extra['Host'] = $urlset['host']; + $urlset['host'] = $extra['ip']; + unset($extra['ip']); + } + curl_setopt($ch, CURLOPT_URL, $urlset['scheme'] . '://' . $urlset['host'] . ($urlset['port'] == '80' ? '' : ':' . $urlset['port']) . $urlset['path'] . $urlset['query']); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); + curl_setopt($ch, CURLOPT_HEADER, 1); + @curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); + if ($post) { + if (is_array($post)) { + $filepost = false; + foreach ($post as $name => $value) { + if ((is_string($value) && substr($value, 0, 1) == '@') || (class_exists('CURLFile') && $value instanceof CURLFile)) { + $filepost = true; + break; + } + } + if (!$filepost) { + $post = http_build_query($post); + } + } + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $post); + } + if (!empty($GLOBALS['_W']['config']['setting']['proxy'])) { + $urls = parse_url($GLOBALS['_W']['config']['setting']['proxy']['host']); + if (!empty($urls['host'])) { + curl_setopt($ch, CURLOPT_PROXY, "{$urls['host']}:{$urls['port']}"); + $proxytype = 'CURLPROXY_' . strtoupper($urls['scheme']); + if (!empty($urls['scheme']) && defined($proxytype)) { + curl_setopt($ch, CURLOPT_PROXYTYPE, constant($proxytype)); + } else { + curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); + curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); + } + if (!empty($GLOBALS['_W']['config']['setting']['proxy']['auth'])) { + curl_setopt($ch, CURLOPT_PROXYUSERPWD, $GLOBALS['_W']['config']['setting']['proxy']['auth']); + } + } + } + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); + curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); + curl_setopt($ch, CURLOPT_SSLVERSION, 1); + if (defined('CURL_SSLVERSION_TLSv1')) { + curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); + } + curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'); + if (!empty($extra) && is_array($extra)) { + $headers = array(); + foreach ($extra as $opt => $value) { + if (strexists($opt, 'CURLOPT_')) { + curl_setopt($ch, constant($opt), $value); + } elseif (is_numeric($opt)) { + curl_setopt($ch, $opt, $value); + } else { + $headers[] = "{$opt}: {$value}"; + } + } + if (!empty($headers)) { + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + } + } + $data = curl_exec($ch); + $status = curl_getinfo($ch); + $errno = curl_errno($ch); + $error = curl_error($ch); + curl_close($ch); + if ($errno || empty($data)) { + return error(1, $error); + } else { + return ihttp_response_parse($data); + } + } + + // 设置http请求方式,假如没有post参数,则使用get方式,否则采用post方式 + $method = empty($post) ? 'GET' : 'POST'; + $fdata = "{$method} {$urlset['path']}{$urlset['query']} HTTP/1.1\r\n"; + $fdata .= "Host: {$urlset['host']}\r\n"; + if (function_exists('gzdecode')) { + $fdata .= "Accept-Encoding: gzip, deflate\r\n"; + } + $fdata .= "Connection: close\r\n"; + if (!empty($extra) && is_array($extra)) { + foreach ($extra as $opt => $value) { + if (!strexists($opt, 'CURLOPT_')) { + $fdata .= "{$opt}: {$value}\r\n"; + } + } + } + $body = ''; + if ($post) { + if (is_array($post)) { + // 构建http请求参数 + $body = http_build_query($post); + } else { + if ($needUrlEncode) { + $body = urlencode($post); + } else { + $body = $post; + } + } + $fdata .= 'Content-Length: ' . strlen($body) . "\r\n\r\n{$body}"; + } else { + $fdata .= "\r\n"; + } + if ($urlset['scheme'] == 'https') { + $fp = fsockopen('ssl://' . $urlset['host'], $urlset['port'], $errno, $error); + } else { + $fp = fsockopen($urlset['host'], $urlset['port'], $errno, $error); + } + stream_set_blocking($fp, true); + stream_set_timeout($fp, $timeout); + if (!$fp) { + return error(1, $error); + } else { + fwrite($fp, $fdata); + $content = ''; + while (!feof($fp)) { + $content .= fgets($fp, 512); + } + fclose($fp); + return ihttp_response_parse($content, true); + } +} + + +function ihttp_response_parse($data, $chunked = false) +{ + $rlt = array(); + $headermeta = explode('HTTP/', $data); + if (count($headermeta) > 2) { + $data = 'HTTP/' . array_pop($headermeta); + } + $pos = strpos($data, "\r\n\r\n"); + $split1[0] = substr($data, 0, $pos); + $split1[1] = substr($data, $pos + 4, strlen($data)); + + $split2 = explode("\r\n", $split1[0], 2); + preg_match('/^(\S+) (\S+) (\S+)$/', $split2[0], $matches); + $rlt['code'] = $matches[2]; + $rlt['status'] = $matches[3]; + $rlt['responseline'] = $split2[0]; + $header = explode("\r\n", $split2[1]); + $isgzip = false; + $ischunk = false; + foreach ($header as $v) { + $pos = strpos($v, ':'); + $key = substr($v, 0, $pos); + $value = trim(substr($v, $pos + 1)); + if (is_array($rlt['headers'][$key])) { + $rlt['headers'][$key][] = $value; + } elseif (!empty($rlt['headers'][$key])) { + $temp = $rlt['headers'][$key]; + unset($rlt['headers'][$key]); + $rlt['headers'][$key][] = $temp; + $rlt['headers'][$key][] = $value; + } else { + $rlt['headers'][$key] = $value; + } + if (!$isgzip && strtolower($key) == 'content-encoding' && strtolower($value) == 'gzip') { + $isgzip = true; + } + if (!$ischunk && strtolower($key) == 'transfer-encoding' && strtolower($value) == 'chunked') { + $ischunk = true; + } + } + if ($chunked && $ischunk) { + $rlt['content'] = ihttp_response_parse_unchunk($split1[1]); + } else { + $rlt['content'] = $split1[1]; + } + if ($isgzip && function_exists('gzdecode')) { + $rlt['content'] = gzdecode($rlt['content']); + } + + $rlt['meta'] = $data; + if ($rlt['code'] == '100') { + return ihttp_response_parse($rlt['content']); + } + return $rlt; +} + +function ihttp_response_parse_unchunk($str = null) +{ + if (!is_string($str) or strlen($str) < 1) { + return false; + } + $eol = "\r\n"; + $add = strlen($eol); + $tmp = $str; + $str = ''; + do { + $tmp = ltrim($tmp); + $pos = strpos($tmp, $eol); + if ($pos === false) { + return false; + } + $len = hexdec(substr($tmp, 0, $pos)); + if (!is_numeric($len) or $len < 0) { + return false; + } + $str .= substr($tmp, ($pos + $add), $len); + $tmp = substr($tmp, ($len + $pos + $add)); + $check = trim($tmp); + } while (!empty($check)); + unset($tmp); + return $str; +} + + +function ihttp_get($url) +{ + return ihttp_request($url); +} + + +function ihttp_post($url, $data) +{ + $headers = array('Content-Type' => 'application/x-www-form-urlencoded'); + return ihttp_request($url, $data, $headers); +} + +// 发送邮件 +// $to:接收人 +// $subject:邮件主题 +// $body:邮件正文 +function ihttp_email($to, $subject, $body, $global = false) +{ + static $mailer; + set_time_limit(0); + + if (empty($mailer)) { + if (!class_exists('PHPMailer')) { + require IA_ROOT . '/framework/library/phpmailer/PHPMailerAutoload.php'; + } + $mailer = new PHPMailer(); + global $_W; + $config = $GLOBALS['_W']['setting']['mail']; + if (!$global) { + $row = pdo_fetch("SELECT `notify` FROM " . tablename('uni_settings') . " WHERE uniacid = :uniacid", array(':uniacid' => $_W['uniacid'])); + $row['notify'] = @iunserializer($row['notify']); + if (!empty($row['notify']) && !empty($row['notify']['mail'])) { + $config = $row['notify']['mail']; + } + } + + $config['charset'] = 'utf-8'; + if ($config['smtp']['type'] == '163') { + $config['smtp']['server'] = 'smtp.163.com'; + $config['smtp']['port'] = 25; + } else { + if (!empty($config['smtp']['authmode'])) { + $config['smtp']['server'] = 'ssl://' . $config['smtp']['server']; + } + } + + if (!empty($config['smtp']['authmode'])) { + if (!extension_loaded('openssl')) { + return error(1, '请开启 php_openssl 扩展!'); + } + } + $mailer->signature = $config['signature']; + $mailer->isSMTP(); + $mailer->CharSet = $config['charset']; + $mailer->Host = $config['smtp']['server']; + $mailer->Port = $config['smtp']['port']; + $mailer->SMTPAuth = true; + $mailer->Username = $config['username']; + $mailer->Password = $config['password']; + !empty($config['smtp']['authmode']) && $mailer->SMTPSecure = 'ssl'; + + $mailer->From = $config['username']; + $mailer->FromName = $config['sender']; + $mailer->isHTML(true); + } + if (!empty($mailer->signature)) { + $body .= htmlspecialchars_decode($mailer->signature); + } + $mailer->Subject = $subject; + $mailer->Body = $body; + $mailer->addAddress($to); + if ($mailer->send()) { + return true; + } else { + return error(1, $mailer->ErrorInfo); + } +} + +// 发送POST请求(模板消息尤其适用) +function do_post_request($url, $data, $optional_headers = null) +{ + $params = array( + 'http' => array( + 'method' => 'POST', + 'content' => $data, + ), + ); + + if ($optional_headers !== null) { + $params['http']['header'] = $optional_headers; + } + $ctx = stream_context_create($params); + $fp = @fopen($url, 'rb', false, $ctx); + if (!$fp) { + throw new Exception("Problem with $url, $php_errormsg"); + } + $response = @stream_get_contents($fp); + if ($response === false) { + throw new Exception("Problem reading data from $url, $php_errormsg"); + } + return $response; +} + + +// 字符集 +define('USEDCHARSET', 'utf-8'); + +/** + * @note 转换分隔符 + * @param string $string + * @return mixed + */ +function ConvertSeparator($string) +{ + $result = $string; + while (false !== mb_stripos($result, '\\', 0, USEDCHARSET)) { + $result = str_replace('\\', '/', $result); + } + while (false !== mb_stripos($result, '//', 0, USEDCHARSET)) { + $result = str_replace('//', '/', $result); + } + + return $result; +} + + +/** + * @date 2017-03-04 + * @note 获取当前页面的url地址 + * @return string + * @auth 应俊 + */ +function GetLocaleUrl() +{ + if (isset($_SERVER['PHP_SELF'])) { + $objectname = $_SERVER['PHP_SELF']; + } else { + $filename = ConvertSeparator(__FILE__); + $pathname = ConvertSeparator(isset($_SERVER['CONTEXT_DOCUMENT_ROOT']) ? $_SERVER['CONTEXT_DOCUMENT_ROOT'] : ''); + $pathlength = mb_strlen($pathname, USEDCHARSET); + $filelength = mb_strlen($filename, USEDCHARSET); + + if (false !== stripos($filename, $pathname)) + $objectname = mb_substr($filename, $pathlength, $filelength - $pathlength, USEDCHARSET); + else + $objectname = $filename; + } + + + $https = (isset($_SERVER['REQUEST_SCHEME']) && strcasecmp($_SERVER['REQUEST_SCHEME'], 'https') == 0) || + (isset($_SERVER['HTTPS']) && (strcasecmp($_SERVER['HTTPS'], 'on') == 0 || strcasecmp($_SERVER['HTTPS'], '1') == 0)); + $port = isset($_SERVER['SERVER_PORT']) ? $_SERVER['SERVER_PORT'] : 0; + $servername = isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : ''; + + if ($https) + $uri = 'https://' . $servername . (443 == $port ? '' : ':' . $port) . $objectname; + else + $uri = 'http://' . $servername . (80 == $port ? '' : ':' . $port) . $objectname; + + return $uri; +} + + +/** + * @date 2017-03-04 + * @note 给参数按key的顺序排序。(支持递归) + * @param mixed $parameter 要排序的参数 + * @return array + * @auth 应俊 + */ +function SortParam($parameter) +{ + $parameter = (array)$parameter; + foreach ($parameter as $k => $v) { + if (is_array($v) || is_object($v)) { + $parameter[$k] = SortParam($v); + } + } + + // 调用strcmp函数来排序,该函数区分大小写。 + uksort($parameter, 'strcmp'); + return $parameter; +} + + +/** + * @date 2017-03-06 + * @note 转换参数成字符串形式按key=value的形式,用&分隔)。 + * @param mixed $parameter 要转换的参数 + * @return string + * @auth 应俊 + */ +function ConvertParam($parameter) +{ + $parameter = (array)$parameter; + $return = ''; + foreach ($parameter as $k => $v) { + if (is_array($v) || is_object($v)) { + $return .= sprintf('&%s={%s}', $k, ConvertParam($v)); + } else { + $return .= sprintf('&%s=%s', $k, $v); + } + } + + $sublen = mb_strlen('&', USEDCHARSET); + $retlen = mb_strlen($return, USEDCHARSET); + $return = mb_substr($return, $sublen, $retlen - $sublen, USEDCHARSET); + return $return; +} + + +/** + * @date 2017-03-04 + * @note 为参数生成签名 + * @param mixed $parameter 要签名的参数 + * @param string $signkey 签名key + * @return string + * @auth 应俊 + */ +function SignParameter($parameter, $signkey = '') +{ + // 1:先把参数按参数名(key)从小到大排序 + $parameter = SortParam($parameter); + + // 2:连接参数成一个字符串(按key=value的形式,用&分隔)。 + $return = ConvertParam($parameter); + + // 3:结尾加上key=签名key + $return .= '&key=' . $signkey; + + // 4:md5加密这个字符串 + return md5($return); +} + + +/** + * @note 转换数据编码 + * @param $data + * @param string $charset + * @return string + * @auther 应俊 + */ +function Characet($data, $charset = USEDCHARSET) +{ + if (!empty ($data)) { + $encoding = mb_detect_encoding($data, array('ASCII', 'UTF-8', 'GBK', 'GB2312', 'LATIN1', 'BIG5',)); + if (0 != strcasecmp($encoding, $charset)) + $data = mb_convert_encoding($data, $charset, $encoding); + } + return $data; +} + + +/** + * @param mixed $data + * @return array|mixed + */ +function ChangePostData($data) +{ + switch (gettype($data)) { + case 'array': { + foreach ($data as $key => $value) { + $data[$key] = ChangePostData($value); + } + break; + } + + case 'object': { + $array = (array)$data; + foreach ($array as $key => $value) { + $data->$key = ChangePostData($value); + } + break; + } + + default: { + $data = preg_replace_callback('/\+/', function ($r) { + return '%2B'; + }, $data); + $data = preg_replace_callback('/\&/', function ($r) { + return '%26'; + }, $data); + break; + } + } + + return $data; +} + + +/** + * @note 发送post请求 + * @param string $url + * @param mixed $data + * @return string + */ +function SendPost($url, $data) +{ + $data = http_build_query(ChangePostData($data)); + + $opts = array( + 'http' => array( + 'method' => 'POST', + 'header' => "Content-type: application/x-www-form-urlencoded\r\n" . "Content-Length: " . strlen($data) . "\r\n", + 'content' => $data, + ), + ); + + $context = stream_context_create($opts); + $ret = file_get_contents($url, false, $context); + $ret = trim($ret, "\xEF\xBB\xBF"); + return $ret; +} + + +/** + * @note 从参数中过滤不需要的参数 + * @param array|null $ignores 要过滤的参数列表(参数名) + * @param array|null $parameters 目标参数列表 + * @return array + */ +function GetAttachParameters($ignores = null, $parameters = null) +{ + $return = (array)(empty($parameters) ? $_REQUEST : $parameters); + if (!empty($ignores)) { + foreach ($return as $k => $v) { + if (in_array($k, $ignores)) + unset($return[$k]); + } + } + + return $return; +} + + +function GetClientAddress() +{ + static $_ClientAddress = null; + + if ($_ClientAddress !== null) + return $_ClientAddress; + + if (isset($_SERVER)) { + if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { + $List = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); + + /// 取X-Forwarded-For中第一个非unknown的有效IP字符串 + foreach ($List as $Item) { + $Item = trim($Item); + if (strcasecmp($Item, 'unknown') != 0) { + $_ClientAddress = $Item; + break; + } + } + } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) + $_ClientAddress = $_SERVER['HTTP_CLIENT_IP']; + else { + if (isset($_SERVER['REMOTE_ADDR'])) + $_ClientAddress = $_SERVER['REMOTE_ADDR']; + else + $_ClientAddress = '0.0.0.0'; + } + } else { + if (getenv('HTTP_X_FORWARDED_FOR')) + $_ClientAddress = getenv('HTTP_X_FORWARDED_FOR'); + elseif (getenv('HTTP_CLIENT_IP')) + $_ClientAddress = getenv('HTTP_CLIENT_IP'); + else + $_ClientAddress = getenv('REMOTE_ADDR'); + } + + preg_match('/[\d\.]{7,15}/', $_ClientAddress, $List); + $_ClientAddress = !empty($List[0]) ? $List[0] : null; + + return $_ClientAddress; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/framework/function/compat.func.php b/codes/agent/game-docker/api/framework/function/compat.func.php new file mode 100644 index 0000000..4fff5a7 --- /dev/null +++ b/codes/agent/game-docker/api/framework/function/compat.func.php @@ -0,0 +1,77 @@ +encode($value); + } +} + +if (!function_exists('json_decode')) { + // 将传入的字符串解码为一个json字符串 + function json_decode($jsonString) { + // decode:解码为一个JSON字符串 + static $jsonobj; + if (!isset($jsonobj)) { + include_once (IA_ROOT . '/framework/library/json/JSON.php'); + $jsonobj = new Services_JSON(SERVICES_JSON_LOOSE_TYPE); + } + return $jsonobj->decode($jsonString); + } +} + +if (!function_exists('http_build_query')) { + // 构建http请求参数 + function http_build_query($formdata, $numeric_prefix = null, $arg_separator = null) { + // 假如参数不是数组的话,则直接返回false + if (!is_array($formdata)) + return false; + // 假如没有设置参数分割符,则默认设置为& + if ($arg_separator == null) + $arg_separator = '&'; + return http_build_recursive($formdata, $arg_separator); + } + // 采用递归的方式拼接参数为字符串 + // 参数1:要拼接的参数数组 + // 参数2:要拼接使用的参数分割符 + function http_build_recursive($formdata, $separator, $key = '', $prefix = '') { + $rlt = ''; + foreach ($formdata as $k => $v) { + if (is_array($v)) { + if ($key) + $rlt .= http_build_recursive($v, $separator, $key . '[' . $k . ']', $prefix); + else + $rlt .= http_build_recursive($v, $separator, $k, $prefix); + } else { + if ($key) + $rlt .= $prefix . $key . '[' . urlencode($k) . ']=' . urldecode($v) . '&'; + else + $rlt .= $prefix . urldecode($k) . '=' . urldecode($v) . '&'; + } + } + return $rlt; + } +} + +if (!function_exists('file_put_contents')) { + function file_put_contents($file, $string) { + $fp = @fopen($file, 'w') or exit("Can not open $file"); + flock($fp, LOCK_EX); + $stringlen = @fwrite($fp, $string); + flock($fp, LOCK_UN); + @fclose($fp); + return $stringlen; + } +} + +if (!function_exists('getimagesizefromstring')) { + function getimagesizefromstring($string_data) { + $uri = 'data://application/octet-stream;base64,' . base64_encode($string_data); + return getimagesize($uri); + } +} diff --git a/codes/agent/game-docker/api/framework/function/global.func.php b/codes/agent/game-docker/api/framework/function/global.func.php new file mode 100644 index 0000000..4622de6 --- /dev/null +++ b/codes/agent/game-docker/api/framework/function/global.func.php @@ -0,0 +1,1202 @@ + $newLength) { + $version2 .= str_repeat('0', $oldLength - $newLength); + } + if ($newLength > $oldLength) { + $version1 .= str_repeat('0', $newLength - $oldLength); + } + $version1 = intval($version1); + $version2 = intval($version2); + return version_compare($version1, $version2); +} + +// 利用系统函数删除内容中的反斜杠 +// 假如传入的是数组格式的话,则以递归的方式删除数组key和值的反斜杠 +function istripslashes($var) { + // stripslashes:删除反斜杠: + if (is_array($var)) { + foreach ($var as $key => $value) { + $var[stripslashes($key)] = istripslashes($value); + } + } else { + $var = stripslashes($var); + } + return $var; +} + +// 利用系统把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体 +// 并将内容的&替换为& +function ihtmlspecialchars($var) { + // str_replace:替换指定字符串中指定的值为某个值 + // 参数1:要替换的内容 + // 参数2:要替换后的内容 + // 参数3:被搜索的字符串 + + // htmlspecialchars:把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体 + // 参数1:要处理的字符串 + // 参数2:可选。规定如何处理引号、无效的编码以及使用哪种文档类型。 + // 可用的引号类型: + // ENT_COMPAT - 默认。仅编码双引号。 + // ENT_QUOTES - 编码双引号和单引号。 + // ENT_NOQUOTES - 不编码任何引号。 + //无效的编码: + // ENT_IGNORE - 忽略无效的编码,而不是让函数返回一个空的字符串。 + // 应尽量避免,因为这可能对安全性有影响。 + // ENT_SUBSTITUTE - 把无效的编码替代成一个指定的带有 Unicode 替代字符 + // U+FFFD(UTF-8)或者 &#FFFD; 的字符,而不是返回一个空的字符串。 + // ENT_DISALLOWED - 把指定文档类型中的无效代码点替代成 Unicode + // 替代字符 U+FFFD(UTF-8)或者 &#FFFD;。 + // 规定使用的文档类型的附加 flags: + // ENT_HTML401 - 默认。作为 HTML 4.01 处理代码。 + // ENT_HTML5 - 作为 HTML 5 处理代码。 + // ENT_XML1 - 作为 XML 1 处理代码。 + // ENT_XHTML - 作为 XHTML 处理代码。 + + if (is_array($var)) { + foreach ($var as $key => $value) { + $var[htmlspecialchars($key)] = ihtmlspecialchars($value); + } + } else { + $var = str_replace('&', '&', htmlspecialchars($var, ENT_QUOTES)); + } + return $var; +} + +// 记录cookie +// 第一个参数:cookie的键值 +// 第二个参数:要存储的cookie内容 +// 第三个参数:cookie过期时间 +function isetcookie($key, $value, $expire = 0, $httponly = false) { + global $_W; + $expire = $expire != 0 ? (TIMESTAMP + $expire) : 0;//过期时间 + //规定是否通过安全的 HTTPS 连接来传输 cookie。 + $secure = $_SERVER['SERVER_PORT'] == 443 ? 1 : 0; + return setcookie($_W['config']['cookie']['pre'] . $key, $value, $expire, $_W['config']['cookie']['path'], $_W['config']['cookie']['domain'], $secure, $httponly); +} + +// 得到客户端访问的IP +function getip() { + static $ip = ''; + $ip = $_SERVER['REMOTE_ADDR']; + if(isset($_SERVER['HTTP_CDN_SRC_IP'])) { + $ip = $_SERVER['HTTP_CDN_SRC_IP']; + } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) { + $ip = $_SERVER['HTTP_CLIENT_IP']; + } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) { + foreach ($matches[0] AS $xip) { + if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) { + $ip = $xip; + break; + } + } + } + return $ip; +} + +// 系统随机产生token,防止用户重复提交 +function token($specialadd = '') { + global $_W; + if(!defined('IN_MOBILE')) { + return substr(md5($_W['config']['setting']['authkey'] . $specialadd), 8, 8); + } else { + if(!empty($_SESSION['token'])) { + $count = count($_SESSION['token']) - 5; + asort($_SESSION['token']); + foreach($_SESSION['token'] as $k => $v) { + if(TIMESTAMP - $v > 300 || $count > 0) { + unset($_SESSION['token'][$k]); + $count--; + } + } + } + $key = substr(random(20), 0, 4); + $_SESSION['token'][$key] = TIMESTAMP; + return $key; + } +} + +// 生成指定长度的随机字符 +// 第一个参数:要生成的长度 +// 第二个参数:是否生成数字形式 +function random($length, $numeric = FALSE) { + // $_SERVER['DOCUMENT_ROOT'] + // 获取当前运行脚本所在的文档根目录。该根目录是由服务器配置文件中定义。 + // 例如apache配置文件httpd.conf中DocumentRoot配置项的值。 + $seed = base_convert(md5(microtime() . $_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35); + $seed = $numeric ? (str_replace('0', '', $seed) . '012340567890') : ($seed . 'zZ' . strtoupper($seed)); + if ($numeric) { + $hash = ''; + } else { + $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64); + $length--; + } + $max = strlen($seed) - 1; + for ($i = 0; $i < $length; $i++) { + $hash .= $seed[mt_rand(0, $max)]; // 🚨 PHP8兼容性:$seed{x} → $seed[x] + } + return $hash; +} + + +function checksubmit($var = 'submit', $allowget = false) { + global $_W, $_GPC; + if (empty($_GPC[$var])) { + return FALSE; + } + if(defined('IN_SYS')) { + if ($allowget || (($_W['ispost'] && !empty($_W['token']) && $_W['token'] == $_GPC['token']) && (empty($_SERVER['HTTP_REFERER']) || preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) { + return TRUE; + } + } else { + if(empty($_W['isajax']) && empty($_SESSION['token'][$_GPC['token']])) { + message('抱歉,表单已经失效请您重新进入提交数据', referer(), 'error'); + } else { + unset($_SESSION['token'][$_GPC['token']]); + } + return TRUE; + } + return FALSE; +} +// 检查验证码是否正确 +function checkcaptcha($code) { + global $_W, $_GPC; + session_start(); + $codehash = md5(strtolower($code) . $_W['config']['setting']['authkey']); + if (!empty($_GPC['__code']) && $codehash == $_SESSION['__code']) { + $return = true; + } else { + $return = false; + } + $_SESSION['__code'] = ''; + isetcookie('__code', ''); + return $return; +} + +function tablename($table) { + if(empty($GLOBALS['_W']['config']['db']['master'])) { + return "`{$GLOBALS['_W']['config']['db']['tablepre']}{$table}`"; + } + return "`{$GLOBALS['_W']['config']['db']['master']['tablepre']}{$table}`"; +} + +// 查询指定的数组中指定Key的内容,返回内容列表 +function array_elements($keys, $src, $default = FALSE) { + $return = array(); + if(!is_array($keys)) { + $keys = array($keys); + } + foreach($keys as $key) { + if(isset($src[$key])) { + $return[$key] = $src[$key]; + } else { + $return[$key] = $default; + } + } + return $return; +} + + +function range_limit($num, $downline, $upline, $returnNear = true) { + $num = intval($num); + $downline = intval($downline); + $upline = intval($upline); + if($num < $downline){ + return empty($returnNear) ? false : $downline; + } elseif ($num > $upline) { + return empty($returnNear) ? false : $upline; + } else { + return empty($returnNear) ? true : $num; + } +} + + +function ijson_encode($value) { + if (empty($value)) { + return false; + } + return addcslashes(json_encode($value), "\\\'\""); +} + + +function iserializer($value) { + return serialize($value); +} + + +function iunserializer($value) { + if (empty($value)) { + return ''; + } + if (!is_serialized($value)) { + return $value; + } + $result = unserialize($value); + if ($result === false) { + $temp = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $value); + return unserialize($temp); + } + return $result; +} + +// 判断指定的字符串是否是由base64转码 +function is_base64($str){ + if(!is_string($str)){ + return false; + } + return $str == base64_encode(base64_decode($str)); +} + +// 判断指定的字符串是否被序列化 +function is_serialized($data, $strict = true) { + if (!is_string($data)) { + return false; + } + $data = trim($data); + if ('N;' == $data) { + return true; + } + if (strlen($data) < 4) { + return false; + } + if (':' !== $data[1]) { + return false; + } + if ($strict) { + $lastc = substr($data, -1); + if (';' !== $lastc && '}' !== $lastc) { + return false; + } + } else { + $semicolon = strpos($data, ';'); + $brace = strpos($data, '}'); + if (false === $semicolon && false === $brace) + return false; + if (false !== $semicolon && $semicolon < 3) + return false; + if (false !== $brace && $brace < 4) + return false; + } + $token = $data[0]; + switch ($token) { + case 's' : + if ($strict) { + if ('"' !== substr($data, -2, 1)) { + return false; + } + } elseif (false === strpos($data, '"')) { + return false; + } + case 'a' : + case 'O' : + return (bool)preg_match("/^{$token}:[0-9]+:/s", $data); + case 'b' : + case 'i' : + case 'd' : + $end = $strict ? '$' : ''; + return (bool)preg_match("/^{$token}:[0-9.E-]+;$end/", $data); + } + return false; +} + +// 创建Web页面路由,并拼接出来进行返回 +function wurl($segment, $params = array()) { + list($controller, $action, $do) = explode('/', $segment); + $url = './index.php?'; + // 组装控制器参数 + if (!empty($controller)) { + $url .= "c={$controller}&"; + } + // 组装action参数 + if (!empty($action)) { + $url .= "a={$action}&"; + } + // 组装动作参数 + if (!empty($do)) { + $url .= "do={$do}&"; + } + if (!empty($params)) { + $queryString = http_build_query($params, '', '&'); + $url .= $queryString; + } + return $url; +} + +// 组装手机端的路径路由 +function murl($segment, $params = array(), $noredirect = true, $addhost = false) { + global $_W; + // list() 函数用于在一次操作中给一组变量赋值。 + list($controller, $action, $do) = explode('/', $segment); + if (!empty($addhost)) { + $url = $_W['siteroot'] . 'app/'; + } else { + $url = './'; + } + $str = ''; + // 判断指定的主公号或当前主公号下是否具有多个子号 + // 假如是1一个,则返回false,否则返回true + if(uni_is_multi_acid()) { + // 假如不止一个子号的话,则拼接当前操作的子号 + $str = "&j={$_W['acid']}"; + } + $url .= "index.php?i={$_W['uniacid']}{$str}&"; + if (!empty($controller)) { + $url .= "c={$controller}&"; + } + if (!empty($action)) { + $url .= "a={$action}&"; + } + if (!empty($do)) { + $url .= "do={$do}&"; + } + if (!empty($params)) { + $queryString = http_build_query($params, '', '&'); + $url .= $queryString; + if ($noredirect === false) { + $url .= '&wxref=mp.weixin.qq.com#wechat_redirect'; + } + } + return $url; +} + + +function pagination($total, $pageIndex, $pageSize = 15, $url = '', $context = array('before' => 5, 'after' => 4, 'ajaxcallback' => '')) { + global $_W; + $pdata = array( + 'tcount' => 0, + 'tpage' => 0, + 'cindex' => 0, + 'findex' => 0, + 'pindex' => 0, + 'nindex' => 0, + 'lindex' => 0, + 'options' => '' + ); + if ($context['ajaxcallback']) { + $context['isajax'] = true; + } + + $pdata['tcount'] = $total; + $pdata['tpage'] = ceil($total / $pageSize); + if ($pdata['tpage'] <= 1) { + return ''; + } + $cindex = $pageIndex; + $cindex = min($cindex, $pdata['tpage']); + $cindex = max($cindex, 1); + $pdata['cindex'] = $cindex; + $pdata['findex'] = 1; + $pdata['pindex'] = $cindex > 1 ? $cindex - 1 : 1; + $pdata['nindex'] = $cindex < $pdata['tpage'] ? $cindex + 1 : $pdata['tpage']; + $pdata['lindex'] = $pdata['tpage']; + + if ($context['isajax']) { + if (!$url) { + $url = $_W['script_name'] . '?' . http_build_query($_GET); + } + $pdata['faa'] = 'href="javascript:;" page="' . $pdata['findex'] . '" '. ($callbackfunc ? 'onclick="'.$callbackfunc.'(\'' . $_W['script_name'] . $url . '\', \'' . $pdata['findex'] . '\', this);return false;"' : ''); + $pdata['paa'] = 'href="javascript:;" page="' . $pdata['pindex'] . '" '. ($callbackfunc ? 'onclick="'.$callbackfunc.'(\'' . $_W['script_name'] . $url . '\', \'' . $pdata['pindex'] . '\', this);return false;"' : ''); + $pdata['naa'] = 'href="javascript:;" page="' . $pdata['nindex'] . '" '. ($callbackfunc ? 'onclick="'.$callbackfunc.'(\'' . $_W['script_name'] . $url . '\', \'' . $pdata['nindex'] . '\', this);return false;"' : ''); + $pdata['laa'] = 'href="javascript:;" page="' . $pdata['lindex'] . '" '. ($callbackfunc ? 'onclick="'.$callbackfunc.'(\'' . $_W['script_name'] . $url . '\', \'' . $pdata['lindex'] . '\', this);return false;"' : ''); + } else { + if ($url) { + $pdata['faa'] = 'href="?' . str_replace('*', $pdata['findex'], $url) . '"'; + $pdata['paa'] = 'href="?' . str_replace('*', $pdata['pindex'], $url) . '"'; + $pdata['naa'] = 'href="?' . str_replace('*', $pdata['nindex'], $url) . '"'; + $pdata['laa'] = 'href="?' . str_replace('*', $pdata['lindex'], $url) . '"'; + } else { + $_GET['page'] = $pdata['findex']; + $pdata['faa'] = 'href="' . $_W['script_name'] . '?' . http_build_query($_GET) . '"'; + $_GET['page'] = $pdata['pindex']; + $pdata['paa'] = 'href="' . $_W['script_name'] . '?' . http_build_query($_GET) . '"'; + $_GET['page'] = $pdata['nindex']; + $pdata['naa'] = 'href="' . $_W['script_name'] . '?' . http_build_query($_GET) . '"'; + $_GET['page'] = $pdata['lindex']; + $pdata['laa'] = 'href="' . $_W['script_name'] . '?' . http_build_query($_GET) . '"'; + } + } + + $html = '
      '; + if ($pdata['cindex'] > 1) { + $html .= "
    • 首页
    • "; + $html .= "
    • «上一页
    • "; + } + if (!$context['before'] && $context['before'] != 0) { + $context['before'] = 5; + } + if (!$context['after'] && $context['after'] != 0) { + $context['after'] = 4; + } + + if ($context['after'] != 0 && $context['before'] != 0) { + $range = array(); + $range['start'] = max(1, $pdata['cindex'] - $context['before']); + $range['end'] = min($pdata['tpage'], $pdata['cindex'] + $context['after']); + if ($range['end'] - $range['start'] < $context['before'] + $context['after']) { + $range['end'] = min($pdata['tpage'], $range['start'] + $context['before'] + $context['after']); + $range['start'] = max(1, $range['end'] - $context['before'] - $context['after']); + } + for ($i = $range['start']; $i <= $range['end']; $i++) { + if ($context['isajax']) { + $aa = 'href="javascript:;" page="' . $i . '" '. ($callbackfunc ? 'onclick="'.$callbackfunc.'(\'' . $_W['script_name'] . $url . '\', \'' . $i . '\', this);return false;"' : ''); + } else { + if ($url) { + $aa = 'href="?' . str_replace('*', $i, $url) . '"'; + } else { + $_GET['page'] = $i; + $aa = 'href="?' . http_build_query($_GET) . '"'; + } + } + $html .= ($i == $pdata['cindex'] ? '
    • ' . $i . '
    • ' : "
    • " . $i . '
    • '); + } + } + + if ($pdata['cindex'] < $pdata['tpage']) { + $html .= "
    • 下一页»
    • "; + $html .= "
    • 尾页
    • "; + } + $html .= '
    '; + return $html; +} + +// 返回多媒体文件的物理绝对路径 +function tomedia($src, $local_path = false){ + global $_W; + if (empty($src)) { + return ''; + } + // strpos() 函数查找字符串在另一字符串中第一次出现的位置。 + // string 必需。规定要搜索的字符串。 + // find 必需。规定要查找的字符串。 + // start 可选。规定在何处开始搜索。 + if (strpos($src, './addons') === 0) { + return $_W['siteroot'] . str_replace('./', '', $src); + } + // strexists:查找指定的字符串在指定的字符串中是否存在 + // 参数1:被查找的字符 + // 参数2:查找的字 + if (strexists($src, $_W['siteroot']) && !strexists($src, '/addons/')) { + $urls = parse_url($src); + $src = $t = substr($urls['path'], strpos($urls['path'], 'images')); + } + $t = strtolower($src); + if (strexists($t, 'http://') || strexists($t, 'https://')) { + return $src; + } + if ($local_path || empty($_W['setting']['remote']['type']) || file_exists(IA_ROOT . '/' . $_W['config']['upload']['attachdir'] . '/' . $src)) { + $src = $_W['siteroot'] . $_W['config']['upload']['attachdir'] . '/' . $src; + } else { + $src = $_W['attachurl_remote'] . $src; + } + return $src; +} + + +function error($errno, $message = '') { + return array( + 'errno' => $errno, + 'message' => $message, + ); +} + + +function is_error($data) { + if (empty($data) || !is_array($data) || !array_key_exists('errno', $data) || (array_key_exists('errno', $data) && $data['errno'] == 0)) { + return false; + } else { + return true; + } +} + +function is_error_api($data) { + if (empty($data)) + return false; + + if (is_array($data) && 0 == $data['error']) + return false; + + if ($data instanceof returnObject && 0 == $data->error) + return false; + + return true; +} + +// 返回地址,计算当前页的上一页地址 +function referer($default = '') { + global $_GPC, $_W; + // $_SESSION['HTTP_REFERER'] + // 可以获取当前链接的上一个连接的来源地址,即链接到当前页面的前一页面的 URL + // 地址,可以做到防盗链作用,只有点击超链接(即) + // 打开的页面才有HTTP_REFERER环境变量, 其它如 window.open()、 window. + // location=...、window.showModelessDialog()等打开的窗口 + // 都没有HTTP_REFERER 环境变量。 + $_W['referer'] = !empty($_GPC['referer']) ? $_GPC['referer'] : $_SERVER['HTTP_REFERER'];; + $_W['referer'] = substr($_W['referer'], -1) == '?' ? substr($_W['referer'], 0, -1) : $_W['referer']; + + if (strpos($_W['referer'], 'member.php?act=login')) { + $_W['referer'] = $default; + } + $_W['referer'] = $_W['referer']; + $_W['referer'] = str_replace('&', '&', $_W['referer']); + $reurl = parse_url($_W['referer']); + + if (!empty($reurl['host']) && !in_array($reurl['host'], array($_SERVER['HTTP_HOST'], 'www.' . $_SERVER['HTTP_HOST'])) && !in_array($_SERVER['HTTP_HOST'], array($reurl['host'], 'www.' . $reurl['host']))) { + $_W['referer'] = $_W['siteroot']; + } elseif (empty($reurl['host'])) { + $_W['referer'] = $_W['siteroot'] . './' . $_W['referer']; + } + return strip_tags($_W['referer']); +} + +// 查找指定的字符串在指定的字符串中是否存在 +function strexists($string, $find) { + // strpos() 函数查找字符串在另一字符串中第一次出现的位置。 + // 参数1:必需。规定要搜索的字符串。 + // 参数2:必需。规定要查找的字符串。 + return !(strpos($string, $find) === FALSE); +} + + +function cutstr($string, $length, $havedot = false, $charset = '') { + global $_W; + if (empty($charset)) { + $charset = $_W['charset']; + } + if (strtolower($charset) == 'gbk') { + $charset = 'gbk'; + } else { + $charset = 'utf8'; + } + if (istrlen($string, $charset) <= $length) { + return $string; + } + if (function_exists('mb_strcut')) { + $string = mb_substr($string, 0, $length, $charset); + } else { + $pre = '{%'; + $end = '%}'; + $string = str_replace(array('&', '"', '<', '>'), array($pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end), $string); + + $strcut = ''; + $strlen = strlen($string); + + if ($charset == 'utf8') { + $n = $tn = $noc = 0; + while ($n < $strlen) { + $t = ord($string[$n]); + if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { + $tn = 1; + $n++; + $noc++; + } elseif (194 <= $t && $t <= 223) { + $tn = 2; + $n += 2; + $noc++; + } elseif (224 <= $t && $t <= 239) { + $tn = 3; + $n += 3; + $noc++; + } elseif (240 <= $t && $t <= 247) { + $tn = 4; + $n += 4; + $noc++; + } elseif (248 <= $t && $t <= 251) { + $tn = 5; + $n += 5; + $noc++; + } elseif ($t == 252 || $t == 253) { + $tn = 6; + $n += 6; + $noc++; + } else { + $n++; + } + if ($noc >= $length) { + break; + } + } + if ($noc > $length) { + $n -= $tn; + } + $strcut = substr($string, 0, $n); + } else { + while ($n < $strlen) { + $t = ord($string[$n]); + if ($t > 127) { + $tn = 2; + $n += 2; + $noc++; + } else { + $tn = 1; + $n++; + $noc++; + } + if ($noc >= $length) { + break; + } + } + if ($noc > $length) { + $n -= $tn; + } + $strcut = substr($string, 0, $n); + } + $string = str_replace(array($pre . '&' . $end, $pre . '"' . $end, $pre . '<' . $end, $pre . '>' . $end), array('&', '"', '<', '>'), $strcut); + } + + if ($havedot) { + $string = $string . "..."; + } + + return $string; +} + + +function istrlen($string, $charset = '') { + global $_W; + if (empty($charset)) { + $charset = $_W['charset']; + } + if (strtolower($charset) == 'gbk') { + $charset = 'gbk'; + } else { + $charset = 'utf8'; + } + if (function_exists('mb_strlen')) { + return mb_strlen($string, $charset); + } else { + $n = $noc = 0; + $strlen = strlen($string); + + if ($charset == 'utf8') { + + while ($n < $strlen) { + $t = ord($string[$n]); + if ($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { + $n++; + $noc++; + } elseif (194 <= $t && $t <= 223) { + $n += 2; + $noc++; + } elseif (224 <= $t && $t <= 239) { + $n += 3; + $noc++; + } elseif (240 <= $t && $t <= 247) { + $n += 4; + $noc++; + } elseif (248 <= $t && $t <= 251) { + $n += 5; + $noc++; + } elseif ($t == 252 || $t == 253) { + $n += 6; + $noc++; + } else { + $n++; + } + } + + } else { + + while ($n < $strlen) { + $t = ord($string[$n]); + if ($t > 127) { + $n += 2; + $noc++; + } else { + $n++; + $noc++; + } + } + + } + + return $noc; + } +} + + +function emotion($message = '', $size = '24px') { + $emotions = array( + "/::)","/::~","/::B","/::|","/:8-)","/::<","/::$","/::X","/::Z","/::'(", + "/::-|","/::@","/::P","/::D","/::O","/::(","/::+","/:--b","/::Q","/::T", + "/:,@P","/:,@-D","/::d","/:,@o","/::g","/:|-)","/::!","/::L","/::>","/::,@", + "/:,@f","/::-S","/:?","/:,@x","/:,@@","/::8","/:,@!","/:!!!","/:xx","/:bye", + "/:wipe","/:dig","/:handclap","/:&-(","/:B-)","/:<@","/:@>","/::-O","/:>-|", + "/:P-(","/::'|","/:X-)","/::*","/:@x","/:8*","/:pd","/:","/:beer","/:basketb", + "/:oo","/:coffee","/:eat","/:pig","/:rose","/:fade","/:showlove","/:heart", + "/:break","/:cake","/:li","/:bome","/:kn","/:footb","/:ladybug","/:shit","/:moon", + "/:sun","/:gift","/:hug","/:strong","/:weak","/:share","/:v","/:@)","/:jj","/:@@", + "/:bad","/:lvu","/:no","/:ok","/:love","/:","/:jump","/:shake","/:","/:circle", + "/:kotow","/:turn","/:skip","/:oY","/:#-0","/:hiphot","/:kiss","/:<&","/:&>" + ); + foreach ($emotions as $index => $emotion) { + $message = str_replace($emotion, '', $message); + } + return $message; +} + + +function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { + $ckey_length = 4; + $key = md5($key != '' ? $key : $GLOBALS['_W']['config']['setting']['authkey']); + $keya = md5(substr($key, 0, 16)); + $keyb = md5(substr($key, 16, 16)); + $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length) : substr(md5(microtime()), -$ckey_length)) : ''; + + $cryptkey = $keya . md5($keya . $keyc); + $key_length = strlen($cryptkey); + + $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0) . substr(md5($string . $keyb), 0, 16) . $string; + $string_length = strlen($string); + + $result = ''; + $box = range(0, 255); + + $rndkey = array(); + for ($i = 0; $i <= 255; $i++) { + $rndkey[$i] = ord($cryptkey[$i % $key_length]); + } + + for ($j = $i = 0; $i < 256; $i++) { + $j = ($j + $box[$i] + $rndkey[$i]) % 256; + $tmp = $box[$i]; + $box[$i] = $box[$j]; + $box[$j] = $tmp; + } + + for ($a = $j = $i = 0; $i < $string_length; $i++) { + $a = ($a + 1) % 256; + $j = ($j + $box[$a]) % 256; + $tmp = $box[$a]; + $box[$a] = $box[$j]; + $box[$j] = $tmp; + $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); + } + + if ($operation == 'DECODE') { + if ((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26) . $keyb), 0, 16)) { + return substr($result, 26); + } else { + return ''; + } + } else { + return $keyc . str_replace('=', '', base64_encode($result)); + } + +} + + +function sizecount($size) { + if($size >= 1073741824) { + $size = round($size / 1073741824 * 100) / 100 . ' GB'; + } elseif($size >= 1048576) { + $size = round($size / 1048576 * 100) / 100 . ' MB'; + } elseif($size >= 1024) { + $size = round($size / 1024 * 100) / 100 . ' KB'; + } else { + $size = $size . ' Bytes'; + } + return $size; +} + +// 将数组格式数组转换为XML格式 +function array2xml($arr, $level = 1) { + $s = $level == 1 ? "" : ''; + foreach ($arr as $tagname => $value) { + if (is_numeric($tagname)) { + $tagname = $value['TagName']; + unset($value['TagName']); + } + if (!is_array($value)) { + $s .= "<{$tagname}>" . (!is_numeric($value) ? '' : '') . ""; + } else { + $s .= "<{$tagname}>" . array2xml($value, $level + 1) . ""; + } + } + $s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s); + return $level == 1 ? $s . "" : $s; +} + +// 将XML数据转换为数组格式 +function xml2array($xml) { + if (empty($xml)) { + return array(); + } + $result = array(); + $xmlobj = isimplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); + if($xmlobj instanceof SimpleXMLElement) { + $result = json_decode(json_encode($xmlobj), true); + if (is_array($result)) { + return $result; + } else { + return array(); + } + } else { + return $result; + } +} +// 得到当前访问脚本文件相对网站根目录的路径 +function scriptname() { + global $_W; + // $_SERVER['SCRIPT_FILENAME'] 反映的是当前执行程序的绝对路径及文件名; + // __FILE__ 反映的是原始文件(被包含文件)的绝对路径及文件名。 + // basename() 函数返回路径中的文件名部分。 + $_W['script_name'] = basename($_SERVER['SCRIPT_FILENAME']); + // $_SERVER['SCRIPT_NAME']只得到文件相对网站根目录的文件路径,不含访问参数 + // + if(basename($_SERVER['SCRIPT_NAME']) === $_W['script_name']) { + $_W['script_name'] = $_SERVER['SCRIPT_NAME']; + } else { + if(basename($_SERVER['PHP_SELF']) === $_W['script_name']) { + $_W['script_name'] = $_SERVER['PHP_SELF']; + } else { + if(isset($_SERVER['ORIG_SCRIPT_NAME']) && basename($_SERVER['ORIG_SCRIPT_NAME']) === $_W['script_name']) { + $_W['script_name'] = $_SERVER['ORIG_SCRIPT_NAME']; + } else { + if(($pos = strpos($_SERVER['PHP_SELF'], '/' . $scriptName)) !== false) { + $_W['script_name'] = substr($_SERVER['SCRIPT_NAME'], 0, $pos) . '/' . $_W['script_name']; + } else { + if(isset($_SERVER['DOCUMENT_ROOT']) && strpos($_SERVER['SCRIPT_FILENAME'], $_SERVER['DOCUMENT_ROOT']) === 0) { + $_W['script_name'] = str_replace('\\', '/', str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME'])); + } else { + $_W['script_name'] = 'unknown'; + } + } + } + } + } + return $_W['script_name']; +} + + +function utf8_bytes($cp) { + if ($cp > 0x10000){ + return chr(0xF0 | (($cp & 0x1C0000) >> 18)). + chr(0x80 | (($cp & 0x3F000) >> 12)). + chr(0x80 | (($cp & 0xFC0) >> 6)). + chr(0x80 | ($cp & 0x3F)); + }else if ($cp > 0x800){ + return chr(0xE0 | (($cp & 0xF000) >> 12)). + chr(0x80 | (($cp & 0xFC0) >> 6)). + chr(0x80 | ($cp & 0x3F)); + }else if ($cp > 0x80){ + return chr(0xC0 | (($cp & 0x7C0) >> 6)). + chr(0x80 | ($cp & 0x3F)); + }else{ + return chr($cp); + } +} + +function media2local($media_id, $all = false){ + global $_W; + if (empty($media_id)) { + return ''; + } + $data = pdo_fetch('SELECT * FROM ' . tablename('wechat_attachment') . ' WHERE uniacid = :uniacid AND media_id = :id', array(':uniacid' => $_W['uniacid'], ':id' => $media_id)); + if (!empty($data)) { + $data['attachment'] = tomedia($data['attachment'], true); + if (!$all) { + return $data['attachment']; + } + return $data; + } + return ''; +} + +function aes_decode($message, $encodingaeskey = '', $appid = '') { + $key = base64_decode($encodingaeskey . '='); + + $ciphertext_dec = base64_decode($message); + + // 🚨 PHP8兼容性:mcrypt替换为OpenSSL,严格保持微信协议处理 + // ⚠️ 重要:保持AES-128-CBC模式和所有微信协议特征 + $iv = substr($key, 0, 16); // ⚠️ 保持IV从key前16位提取的逻辑 + $decrypted = openssl_decrypt($ciphertext_dec, 'AES-128-CBC', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv); + + $block_size = 32; // ⚠️ 保持微信协议32字节块处理逻辑 + + $pad = ord(substr($decrypted, -1)); // ⚠️ 保持微信特有的填充算法实现 + if ($pad < 1 || $pad > 32) { + $pad = 0; + } + $result = substr($decrypted, 0, (strlen($decrypted) - $pad)); + if (strlen($result) < 16) { + return ''; + } + $content = substr($result, 16, strlen($result)); + $len_list = unpack("N", substr($content, 0, 4)); + $contentlen = $len_list[1]; + $content = substr($content, 4, $contentlen); + $from_appid = substr($content, $xml_len + 4); // ⚠️ 保持appid验证和错误处理逻辑 + if (!empty($appid) && $appid != $from_appid) { + return ''; + } + return $content; // ⚠️ 保持所有消息格式和协议细节 +} + +function aes_encode($message, $encodingaeskey = '', $appid = '') { + $key = base64_decode($encodingaeskey . '='); + $text = random(16) . pack("N", strlen($message)) . $message . $appid; + + // 🚨 PHP8兼容性:mcrypt_get_block_size替换为固定值,保持原有行为 + $size = 16; // AES-128块大小,等价于 mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC) + $iv = substr($key, 0, 16); // ⚠️ 保持IV从key前16位提取的逻辑 + + $block_size = 32; // ⚠️ 保持微信协议32字节块处理逻辑 + $text_length = strlen($text); + $amount_to_pad = $block_size - ($text_length % $block_size); // ⚠️ 保持微信填充算法 + if ($amount_to_pad == 0) { + $amount_to_pad = $block_size; + } + $pad_chr = chr($amount_to_pad); + $tmp = ''; + for ($index = 0; $index < $amount_to_pad; $index++) { // ⚠️ 保持微信特有实现细节 + $tmp .= $pad_chr; + } + $text = $text . $tmp; + + // 🚨 PHP8兼容性:mcrypt替换为OpenSSL,严格保持微信协议处理 + // ⚠️ 重要:保持AES-128-CBC模式和协议格式不变 + $encrypted = openssl_encrypt($text, 'AES-128-CBC', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv); + + $encrypt_msg = base64_encode($encrypted); // ⚠️ 保持协议格式不变 + return $encrypt_msg; +} + +// 函数把 XML 字符串载入对象中。 +function isimplexml_load_string($string, $class_name = 'SimpleXMLElement', $options = 0, $ns = '', $is_prefix = false) { + libxml_disable_entity_loader(true); + if (preg_match('/(\<\!DOCTYPE|\<\!ENTITY)/i', $string)) { + return false; + } + return simplexml_load_string($string, $class_name, $options, $ns, $is_prefix); +} + +function ihtml_entity_decode($str) { + $str = str_replace(' ', '#nbsp;', $str); + return str_replace('#nbsp;', ' ', html_entity_decode(urldecode($str))); +} +// 通过递归的方式将数组的Key转换为大小写 +// 转换为大写或者小写由第二个参数决定 +function iarray_change_key_case($array, $case = CASE_LOWER){ + if (!is_array($array) || empty($array)){ + return array(); + } + $array = array_change_key_case($array, $case); + foreach ($array as $key => $value){ + if (is_array($value)) { + $array[$key] = iarray_change_key_case($value, $case); + } + } + return $array; +} + +function isEmptyString($C_char){ + if (!is_string($C_char)) { + if( is_numeric($C_char) ){ + return false; + }else{ + return true; + } + } + if ($C_char=='0') return false; //判断字符串是否为空 + if (empty($C_char)) return true; //判断是否已定义字符串 + if ($C_char=='') return true; //判断字符串是否为空 + return false; +} + +function checklen($data){ + if(strlen($data)>15 || strlen($data)<5){ + return false; + } + return true; +} + + +/** + * @note 转换参数, 把所有参数经过urldecode解码后都转换成数组, 并且key全部转成小写 + * @param mixed $parameter + * @return array|string +*/ +function TranslateParameter($parameter) { + $result = array(); + switch (gettype($parameter)) { + case 'object': + $parameter = (array)$parameter; + foreach ($parameter as $k => $v) { + $result[mb_strtolower(rawurldecode($k))] = TranslateParameter($v); + } + break; + case 'array': + foreach ($parameter as $k => $v) { + $result[mb_strtolower(rawurldecode($k))] = TranslateParameter($v); + } + break; + case 'string': + $o = JsonStringToJsonObject($parameter); + if (!is_object($o)) { + $result = rawurldecode($parameter); + + if( is_float($result) ){ + $result = (float)$result; + } + if( is_int($result) ){ + $result = (int)$result; + } + } else { + $result = TranslateParameter($o); + } + break; + default: + $result = rawurldecode($parameter); + if( is_float($result) ){ + $result = (float)$result; + } + if( is_int($result) ){ + $result = (int)$result; + } + break; + } + + return $result; +} + + +/******************************* + * name: UnicodeCodeToUnicodeString. + * note: convert unicodecode to string(\uxxxx-->xx). + * parameters: string + * return: unicodestring if the function call succeeded, null otherwise. + ******************************* + * @param string $string + * @return string + *******************************/ +function UnicodeCodeToUnicodeString($string) +{ + try + { + if (function_exists('preg_replace_callback')) + return preg_replace_callback('#\\\u([0-9a-f]{4})#i', function ($r) { return iconv('UCS-2BE', 'UTF-8', pack('H4', $r[1])); }, $string); + elseif (function_exists('preg_replace')) + return preg_replace('#\\\u([0-9a-f]{4})#ie', 'iconv(\'UCS-2BE\', \'UTF-8\', pack(\'H4\', \'\\1\'))', $string); + else + return $string; + } + catch (Exception $Exception) + { + return null; + } +} + + +/******************************* + * name: JsonObjectToJsonString. + * note: convert object to string on json_encode function. + * parameters: mixed object + * return: return value for json_encode. + ******************************* + * @param mixed $object + * @return string + *******************************/ +function JsonObjectToJsonString($object) +{ + /// http://php.net/manual/zh/function.json-encode.php + if (defined('JSON_UNESCAPED_UNICODE')) + return json_encode($object, JSON_UNESCAPED_UNICODE); + else + return UnicodeCodeToUnicodeString(json_encode($object)); +} + + +/******************************* + * name: JsonStringToJsonObject. + * note: convert string to object on json_decode function. + * parameters: string + * return: object if the function call succeeded, null otherwise. + ******************************* + * @param string $string + * @return mixed + *******************************/ +function JsonStringToJsonObject($string) +{ + /// http://php.net/manual/zh/function.json-decode.php + + if (!$object = json_decode($string)) + { + //$object = json_decode(addslashes($string)); + //stripslashes + + /** @noinspection PhpIncludeInspection */ + ///$string = preg_replace_callback('/' . preg_quote('\\') . '/', function ($char){return '\\\\';}, $string); + $string = str_replace('\\', '\\\\', $string); + $object = json_decode($string); + if (!$object) + $object = $string; + } + + return $object; +} + + +function XmlObjectToXmlString($Object) +{ + if (is_object($Object)) + $Xml = (array)$Object; + else + $Xml = $Object; + + if (!is_array($Xml)) + return strval($Xml); + elseif (Count($Xml) <= 0) + return ''; + + $Result = ''; + foreach ($Xml as $Key => $Value) + { + if (is_numeric($Value)) + { + $Result .= "<{$Key}>{$Value}"; + } + elseif (is_object($Value) || is_array($Value)) + { + $Value = XmlObjectToXmlString($Value); + $Result .= "<{$Key}>"; + } + else + { + $Result .= "<{$Key}>"; + } + } + $Result .= ''; + + return $Result; +} + +function XmlStringToXmlObject($String) +{ + // 将XML转为array + // 禁止引用外部xml实体 + libxml_disable_entity_loader(true); + + $Result = @simplexml_load_string($String, 'SimpleXMLElement', LIBXML_NOCDATA); + return $Result ? $Result : $String; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/framework/library/json/JSON.php b/codes/agent/game-docker/api/framework/library/json/JSON.php new file mode 100644 index 0000000..b63cb3b --- /dev/null +++ b/codes/agent/game-docker/api/framework/library/json/JSON.php @@ -0,0 +1,806 @@ + + * @author Matt Knapp + * @author Brett Stimmerman + * @copyright 2005 Michal Migurski + * @version CVS: $Id: JSON.php,v 1.31 2006/06/28 05:54:17 migurski Exp $ + * @license http://www.opensource.org/licenses/bsd-license.php + * @link http://pear.php.net/pepr/pepr-proposal-show.php?id=198 + */ + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_SLICE', 1); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_STR', 2); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_ARR', 3); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_OBJ', 4); + +/** + * Marker constant for Services_JSON::decode(), used to flag stack state + */ +define('SERVICES_JSON_IN_CMT', 5); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_LOOSE_TYPE', 16); + +/** + * Behavior switch for Services_JSON::decode() + */ +define('SERVICES_JSON_SUPPRESS_ERRORS', 32); + +/** + * Converts to and from JSON format. + * + * Brief example of use: + * + * + * // create a new instance of Services_JSON + * $json = new Services_JSON(); + * + * // convert a complexe value to JSON notation, and send it to the browser + * $value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4))); + * $output = $json->encode($value); + * + * print($output); + * // prints: ["foo","bar",[1,2,"baz"],[3,[4]]] + * + * // accept incoming POST data, assumed to be in JSON notation + * $input = file_get_contents('php://input', 1000000); + * $value = $json->decode($input); + * + */ +class Services_JSON +{ + /** + * constructs a new JSON instance + * + * @param int $use object behavior flags; combine with boolean-OR + * + * possible values: + * - SERVICES_JSON_LOOSE_TYPE: loose typing. + * "{...}" syntax creates associative arrays + * instead of objects in decode(). + * - SERVICES_JSON_SUPPRESS_ERRORS: error suppression. + * Values which can't be encoded (e.g. resources) + * appear as NULL instead of throwing errors. + * By default, a deeply-nested resource will + * bubble up with an error, so all return values + * from encode() should be checked with isError() + */ + function Services_JSON($use = 0) + { + $this->use = $use; + } + + /** + * convert a string from one UTF-16 char to one UTF-8 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf16 UTF-16 character + * @return string UTF-8 character + * @access private + */ + function utf162utf8($utf16) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); + } + + $bytes = (ord($utf16{0}) << 8) | ord($utf16{1}); + + switch(true) { + case ((0x7F & $bytes) == $bytes): + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x7F & $bytes); + + case (0x07FF & $bytes) == $bytes: + // return a 2-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xC0 | (($bytes >> 6) & 0x1F)) + . chr(0x80 | ($bytes & 0x3F)); + + case (0xFFFF & $bytes) == $bytes: + // return a 3-byte UTF-8 character + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0xE0 | (($bytes >> 12) & 0x0F)) + . chr(0x80 | (($bytes >> 6) & 0x3F)) + . chr(0x80 | ($bytes & 0x3F)); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * convert a string from one UTF-8 char to one UTF-16 char + * + * Normally should be handled by mb_convert_encoding, but + * provides a slower PHP-only method for installations + * that lack the multibye string extension. + * + * @param string $utf8 UTF-8 character + * @return string UTF-16 character + * @access private + */ + function utf82utf16($utf8) + { + // oh please oh please oh please oh please oh please + if(function_exists('mb_convert_encoding')) { + return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8'); + } + + switch(strlen($utf8)) { + case 1: + // this case should never be reached, because we are in ASCII range + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return $utf8; + + case 2: + // return a UTF-16 character from a 2-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr(0x07 & (ord($utf8{0}) >> 2)) + . chr((0xC0 & (ord($utf8{0}) << 6)) + | (0x3F & ord($utf8{1}))); + + case 3: + // return a UTF-16 character from a 3-byte UTF-8 char + // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + return chr((0xF0 & (ord($utf8{0}) << 4)) + | (0x0F & (ord($utf8{1}) >> 2))) + . chr((0xC0 & (ord($utf8{1}) << 6)) + | (0x7F & ord($utf8{2}))); + } + + // ignoring UTF-32 for now, sorry + return ''; + } + + /** + * encodes an arbitrary variable into JSON format + * + * @param mixed $var any number, boolean, string, array, or object to be encoded. + * see argument 1 to Services_JSON() above for array-parsing behavior. + * if var is a strng, note that encode() always expects it + * to be in ASCII or UTF-8 format! + * + * @return mixed JSON string representation of input var or an error if a problem occurs + * @access public + */ + function encode($var) + { + switch (gettype($var)) { + case 'boolean': + return $var ? 'true' : 'false'; + + case 'NULL': + return 'null'; + + case 'integer': + return (int) $var; + + case 'double': + case 'float': + return (float) $var; + + case 'string': + // STRINGS ARE EXPECTED TO BE IN ASCII OR UTF-8 FORMAT + $ascii = ''; + $strlen_var = strlen($var); + + /* + * Iterate over every character in the string, + * escaping with a slash or encoding to UTF-8 where necessary + */ + for ($c = 0; $c < $strlen_var; ++$c) { + + $ord_var_c = ord($var{$c}); + + switch (true) { + case $ord_var_c == 0x08: + $ascii .= '\b'; + break; + case $ord_var_c == 0x09: + $ascii .= '\t'; + break; + case $ord_var_c == 0x0A: + $ascii .= '\n'; + break; + case $ord_var_c == 0x0C: + $ascii .= '\f'; + break; + case $ord_var_c == 0x0D: + $ascii .= '\r'; + break; + + case $ord_var_c == 0x22: + case $ord_var_c == 0x2F: + case $ord_var_c == 0x5C: + // double quote, slash, slosh + $ascii .= '\\'.$var{$c}; + break; + + case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)): + // characters U-00000000 - U-0000007F (same as ASCII) + $ascii .= $var{$c}; + break; + + case (($ord_var_c & 0xE0) == 0xC0): + // characters U-00000080 - U-000007FF, mask 110X XX XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, ord($var{$c + 1})); + $c += 1; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF0) == 0xE0): + // characters U-00000800 - U-0000FFFF, mask 1110X XX X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2})); + $c += 2; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xF8) == 0xF0): + // characters U-00010000 - U-001FFFFF, mask 11110X XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3})); + $c += 3; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFC) == 0xF8): + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4})); + $c += 4; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + + case (($ord_var_c & 0xFE) == 0xFC): + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $char = pack('C*', $ord_var_c, + ord($var{$c + 1}), + ord($var{$c + 2}), + ord($var{$c + 3}), + ord($var{$c + 4}), + ord($var{$c + 5})); + $c += 5; + $utf16 = $this->utf82utf16($char); + $ascii .= sprintf('\u%04s', bin2hex($utf16)); + break; + } + } + + return '"'.$ascii.'"'; + + case 'array': + /* + * As per JSON spec if any array key is not an integer + * we must treat the the whole array as an object. We + * also try to catch a sparsely populated associative + * array with numeric keys here because some JS engines + * will create an array with empty indexes up to + * max_index which can cause memory issues and because + * the keys, which may be relevant, will be remapped + * otherwise. + * + * As per the ECMA and JSON specification an object may + * have any string as a property. Unfortunately due to + * a hole in the ECMA specification if the key is a + * ECMA reserved word or starts with a digit the + * parameter is only accessible using ECMAScript's + * bracket notation. + */ + + // treat as a JSON object + if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) { + $properties = array_map(array($this, 'name_value'), + array_keys($var), + array_values($var)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + } + + // treat it like a regular array + $elements = array_map(array($this, 'encode'), $var); + + foreach($elements as $element) { + if(Services_JSON::isError($element)) { + return $element; + } + } + + return '[' . join(',', $elements) . ']'; + + case 'object': + $vars = get_object_vars($var); + + $properties = array_map(array($this, 'name_value'), + array_keys($vars), + array_values($vars)); + + foreach($properties as $property) { + if(Services_JSON::isError($property)) { + return $property; + } + } + + return '{' . join(',', $properties) . '}'; + + default: + return ($this->use & SERVICES_JSON_SUPPRESS_ERRORS) + ? 'null' + : new Services_JSON_Error(gettype($var)." can not be encoded as JSON string"); + } + } + + /** + * array-walking function for use in generating JSON-formatted name-value pairs + * + * @param string $name name of key to use + * @param mixed $value reference to an array element to be encoded + * + * @return string JSON-formatted name-value pair, like '"name":value' + * @access private + */ + function name_value($name, $value) + { + $encoded_value = $this->encode($value); + + if(Services_JSON::isError($encoded_value)) { + return $encoded_value; + } + + return $this->encode(strval($name)) . ':' . $encoded_value; + } + + /** + * reduce a string by removing leading and trailing comments and whitespace + * + * @param $str string string value to strip of comments and whitespace + * + * @return string string value stripped of comments and whitespace + * @access private + */ + function reduce_string($str) + { + $str = preg_replace(array( + + // eliminate single line comments in '// ...' form + '#^\s*//(.+)$#m', + + // eliminate multi-line comments in '/* ... */' form, at start of string + '#^\s*/\*(.+)\*/#Us', + + // eliminate multi-line comments in '/* ... */' form, at end of string + '#/\*(.+)\*/\s*$#Us' + + ), '', $str); + + // eliminate extraneous space + return trim($str); + } + + /** + * decodes a JSON string into appropriate variable + * + * @param string $str JSON-formatted string + * + * @return mixed number, boolean, string, array, or object + * corresponding to given JSON input string. + * See argument 1 to Services_JSON() above for object-output behavior. + * Note that decode() always returns strings + * in ASCII or UTF-8 format! + * @access public + */ + function decode($str) + { + $str = $this->reduce_string($str); + + switch (strtolower($str)) { + case 'true': + return true; + + case 'false': + return false; + + case 'null': + return null; + + default: + $m = array(); + + if (is_numeric($str)) { + // Lookie-loo, it's a number + + // This would work on its own, but I'm trying to be + // good about returning integers where appropriate: + // return (float)$str; + + // Return float or int, as appropriate + return ((float)$str == (integer)$str) + ? (integer)$str + : (float)$str; + + } elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) { + // STRINGS RETURNED IN UTF-8 FORMAT + $delim = substr($str, 0, 1); + $chrs = substr($str, 1, -1); + $utf8 = ''; + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c < $strlen_chrs; ++$c) { + + $substr_chrs_c_2 = substr($chrs, $c, 2); + $ord_chrs_c = ord($chrs{$c}); + + switch (true) { + case $substr_chrs_c_2 == '\b': + $utf8 .= chr(0x08); + ++$c; + break; + case $substr_chrs_c_2 == '\t': + $utf8 .= chr(0x09); + ++$c; + break; + case $substr_chrs_c_2 == '\n': + $utf8 .= chr(0x0A); + ++$c; + break; + case $substr_chrs_c_2 == '\f': + $utf8 .= chr(0x0C); + ++$c; + break; + case $substr_chrs_c_2 == '\r': + $utf8 .= chr(0x0D); + ++$c; + break; + + case $substr_chrs_c_2 == '\\"': + case $substr_chrs_c_2 == '\\\'': + case $substr_chrs_c_2 == '\\\\': + case $substr_chrs_c_2 == '\\/': + if (($delim == '"' && $substr_chrs_c_2 != '\\\'') || + ($delim == "'" && $substr_chrs_c_2 != '\\"')) { + $utf8 .= $chrs{++$c}; + } + break; + + case preg_match('/\\\u[0-9A-F]{4}/i', substr($chrs, $c, 6)): + // single, escaped unicode character + $utf16 = chr(hexdec(substr($chrs, ($c + 2), 2))) + . chr(hexdec(substr($chrs, ($c + 4), 2))); + $utf8 .= $this->utf162utf8($utf16); + $c += 5; + break; + + case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F): + $utf8 .= $chrs{$c}; + break; + + case ($ord_chrs_c & 0xE0) == 0xC0: + // characters U-00000080 - U-000007FF, mask 110XX X XX + //see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 2); + ++$c; + break; + + case ($ord_chrs_c & 0xF0) == 0xE0: + // characters U-00000800 - U-0000FFFF, mask 1110X X XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 3); + $c += 2; + break; + + case ($ord_chrs_c & 0xF8) == 0xF0: + // characters U-00010000 - U-001FFFFF, mask 11110X XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 4); + $c += 3; + break; + + case ($ord_chrs_c & 0xFC) == 0xF8: + // characters U-00200000 - U-03FFFFFF, mask 111110XX + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 5); + $c += 4; + break; + + case ($ord_chrs_c & 0xFE) == 0xFC: + // characters U-04000000 - U-7FFFFFFF, mask 1111110X + // see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 + $utf8 .= substr($chrs, $c, 6); + $c += 5; + break; + + } + + } + + return $utf8; + + } elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) { + // array, or object notation + + if ($str{0} == '[') { + $stk = array(SERVICES_JSON_IN_ARR); + $arr = array(); + } else { + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = array(); + } else { + $stk = array(SERVICES_JSON_IN_OBJ); + $obj = new stdClass(); + } + } + + array_push($stk, array('what' => SERVICES_JSON_SLICE, + 'where' => 0, + 'delim' => false)); + + $chrs = substr($str, 1, -1); + $chrs = $this->reduce_string($chrs); + + if ($chrs == '') { + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } else { + return $obj; + + } + } + + //print("\nparsing {$chrs}\n"); + + $strlen_chrs = strlen($chrs); + + for ($c = 0; $c <= $strlen_chrs; ++$c) { + + $top = end($stk); + $substr_chrs_c_2 = substr($chrs, $c, 2); + + if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) { + // found a comma that is not inside a string, array, etc., + // OR we've reached the end of the character list + $slice = substr($chrs, $top['where'], ($c - $top['where'])); + array_push($stk, array('what' => SERVICES_JSON_SLICE, 'where' => ($c + 1), 'delim' => false)); + //print("Found split at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + // we are in an array, so just push an element onto the stack + array_push($arr, $this->decode($slice)); + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + // we are in an object, so figure + // out the property name and set an + // element in an associative array, + // for now + $parts = array(); + + if (preg_match('/^\s*(["\'].*[^\\\]["\'])\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // "name":value pair + $key = $this->decode($parts[1]); + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } elseif (preg_match('/^\s*(\w+)\s*:\s*(\S.*),?$/Uis', $slice, $parts)) { + // name:value pair, where name is unquoted + $key = $parts[1]; + $val = $this->decode($parts[2]); + + if ($this->use & SERVICES_JSON_LOOSE_TYPE) { + $obj[$key] = $val; + } else { + $obj->$key = $val; + } + } + + } + + } elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) { + // found a quote, and we are not inside a string + array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c})); + //print("Found start of string at {$c}\n"); + + } elseif (($chrs{$c} == $top['delim']) && + ($top['what'] == SERVICES_JSON_IN_STR) && + ((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) { + // found a quote, we're in a string, and it's not escaped + // we know that it's not escaped becase there is _not_ an + // odd number of backslashes at the end of the string so far + array_pop($stk); + //print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '[') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-bracket, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false)); + //print("Found start of array at {$c}\n"); + + } elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) { + // found a right-bracket, and we're in an array + array_pop($stk); + //print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($chrs{$c} == '{') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a left-brace, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false)); + //print("Found start of object at {$c}\n"); + + } elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) { + // found a right-brace, and we're in an object + array_pop($stk); + //print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } elseif (($substr_chrs_c_2 == '/*') && + in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) { + // found a comment start, and we are in an array, object, or slice + array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false)); + $c++; + //print("Found start of comment at {$c}\n"); + + } elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) { + // found a comment end, and we're in one now + array_pop($stk); + $c++; + + for ($i = $top['where']; $i <= $c; ++$i) + $chrs = substr_replace($chrs, ' ', $i, 1); + + //print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n"); + + } + + } + + if (reset($stk) == SERVICES_JSON_IN_ARR) { + return $arr; + + } elseif (reset($stk) == SERVICES_JSON_IN_OBJ) { + return $obj; + + } + + } + } + } + + /** + * @t odo Ultimately, this should just call PEAR::isError() + */ + function isError($data, $code = null) + { + if (class_exists('pear')) { + return PEAR::isError($data, $code); + } elseif (is_object($data) && (get_class($data) == 'services_json_error' || + is_subclass_of($data, 'services_json_error'))) { + return true; + } + + return false; + } +} + +if (class_exists('PEAR_Error')) { + + class Services_JSON_Error extends PEAR_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + parent::PEAR_Error($message, $code, $mode, $options, $userinfo); + } + } + +} else { + + /** + * @t odo Ultimately, this class shall be descended from PEAR_Error + */ + class Services_JSON_Error + { + function Services_JSON_Error($message = 'unknown error', $code = null, + $mode = null, $options = null, $userinfo = null) + { + + } + } + +} + +?> diff --git a/codes/agent/game-docker/api/framework/model/cache.mod.php b/codes/agent/game-docker/api/framework/model/cache.mod.php new file mode 100644 index 0000000..db7c7ad --- /dev/null +++ b/codes/agent/game-docker/api/framework/model/cache.mod.php @@ -0,0 +1,145 @@ +func('file'); + rmdirs(IA_ROOT . '/data/tpl', true); +} + + +function cache_build_setting() { + $sql = 'SELECT * FROM ' . tablename('core_settings'); + $setting = pdo_fetchall($sql, array(), 'key'); + if (is_array($setting)) { + foreach ($setting as $k => $v) { + $setting[$v['key']] = iunserializer($v['value']); + } + cache_write("setting", $setting); + } +} + +// 删除指定公众号的缓存 +function cache_build_account_modules() { + $uniacid_arr = pdo_fetchall('SELECT uniacid FROM ' . tablename('uni_account')); + foreach($uniacid_arr as $account){ + cache_delete("unimodules:{$account['uniacid']}:1"); + cache_delete("unimodules:{$account['uniacid']}:"); + cache_delete("unimodulesappbinding:{$account['uniacid']}"); + } +} + +// 删除指定公众号的应用缓存 +function cache_build_account_outapps() { + $uniacid_arr = pdo_fetchall('SELECT uniacid FROM ' . tablename('uni_account')); + foreach($uniacid_arr as $account){ + cache_delete("unioutapps:{$account['uniacid']}:1"); + cache_delete("unioutapps:{$account['uniacid']}:"); + } +} + +function cache_build_account() { + global $_W; + $uniacid_arr = pdo_fetchall('SELECT uniacid FROM ' . tablename('uni_account')); + foreach($uniacid_arr as $account){ + cache_delete("uniaccount:{$account['uniacid']}"); + cache_delete("unisetting:{$account['uniacid']}"); + cache_delete("defaultgroupid:{$account['uniacid']}"); + } +} + +function cache_build_accesstoken() { + global $_W; + $uniacid_arr = pdo_fetchall('SELECT acid FROM ' . tablename('account_wechats')); + foreach($uniacid_arr as $account){ + cache_delete("accesstoken:{$account['acid']}"); + cache_delete("jsticket:{$account['acid']}"); + cache_delete("cardticket:{$account['acid']}"); + } +} + +function cache_build_users_struct() { + $struct = array(); + $result = pdo_fetchall("SHOW COLUMNS FROM " . tablename('mc_members')); + if (!empty($result)) { + foreach ($result as $row) { + $struct[] = $row['Field']; + } + cache_write('usersfields', $struct); + } + return $struct; +} + +// 更新系统菜单缓存 +function cache_build_frame_menu() { + $data = pdo_fetchall('SELECT * FROM ' . tablename('core_menu') . ' WHERE pid = 0 AND is_display = 1 ORDER BY is_system DESC, displayorder DESC, id ASC'); + $frames =array(); + if(!empty($data)) { + foreach($data as $da) { + $frames[$da['name']] = array(); + $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'])); + if(!empty($childs)) { + foreach($childs as $child) { + $temp = array(); + $temp['title'] = $child['title']; + $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')); + if(!empty($grandchilds)) { + foreach($grandchilds as $grandchild) { + $item = array(); + $item['id'] = $grandchild['id']; + $item['title'] = $grandchild['title']; + $item['url'] = $grandchild['url']; + $item['permission_name'] = $grandchild['permission_name']; + if(!empty($grandchild['append_title'])) { + $item['append']['title'] = ''; + $item['append']['url'] = $grandchild['append_url']; + } + $temp['items'][] = $item; + } + } + $frames[$da['name']][] = $temp; + } + } + } + } + cache_delete('system_frame'); + cache_write('system_frame', $frames); +} +// 更新订阅的消息类型缓存对象 +function cache_build_module_subscribe_type() { + global $_W; + // 按订阅的消息类型分组统计哪些模块订阅了当前消息类型 + $modules = pdo_fetchall("SELECT name, subscribes FROM ".tablename('modules')." WHERE subscribes <> ''"); + $subscribe = array(); + if (!empty($modules)) { + foreach ($modules as $module) { + $module['subscribes'] = unserialize($module['subscribes']); + if (!empty($module['subscribes'])) { + foreach ($module['subscribes'] as $event) { + if ($event == 'text') { + continue; + } + $subscribe[$event][] = $module['name']; + } + } + } + } + $module_ban = $_W['setting']['module_receive_ban']; + foreach ($subscribe as $event => $module_group) { + if (!empty($module_group)) { + foreach ($module_group as $index => $module) { + if (!empty($module_ban[$module])) { + unset($subscribe[$event][$index]); + } + } + } + } + // 订阅的消息类型缓存对象 + cache_write('module_receive_enable', $subscribe); +} + +function cache_build_platform() { + return pdo_query("DELETE FROM ".tablename('core_cache')." WHERE `key` LIKE 'account%' AND `key` <> 'account:ticket';"); +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/framework/model/payment.mod.php b/codes/agent/game-docker/api/framework/model/payment.mod.php new file mode 100644 index 0000000..a6a64d6 --- /dev/null +++ b/codes/agent/game-docker/api/framework/model/payment.mod.php @@ -0,0 +1,149 @@ + $value) { + if($key != 'sign' && $key != 'sign_type') { + $prepares[] = "{$key}={$value}"; + } + } + sort($prepares); + $string = implode('&', $prepares); + $string .= $alipay['secret']; + $set['sign'] = md5($string); + + $response = ihttp_request(ALIPAY_GATEWAY . '?' . http_build_query($set, '', '&'), array(), array('CURLOPT_FOLLOWLOCATION' => 0)); + return array('url' => $response['headers']['Location']); +} + +function wechat_build($params, $wechat) { + global $_W; + load()->func('communication'); + if (empty($wechat['version']) && !empty($wechat['signkey'])) { + $wechat['version'] = 1; + } + $wOpt = array(); + if ($wechat['version'] == 1) {// 旧版微信支付接口 + $wOpt['appId'] = $wechat['appid']; // 商户APPID + $wOpt['timeStamp'] = TIMESTAMP; // 当前时间戳 + $wOpt['nonceStr'] = random(8); // 8位随机字符 + $package = array(); + $package['bank_type'] = 'WX'; + $package['body'] = $params['title']; + $package['attach'] = $_W['uniacid']; + $package['partner'] = $wechat['partner']; + $package['out_trade_no'] = $params['uniontid']; + $package['total_fee'] = $params['fee'] * 100; + $package['fee_type'] = '1'; + $package['notify_url'] = $_W['siteroot'] . 'payment/wechat/notify.php'; + $package['spbill_create_ip'] = CLIENT_IP; + $package['time_start'] = date('YmdHis', TIMESTAMP); + $package['time_expire'] = date('YmdHis', TIMESTAMP + 600); + $package['input_charset'] = 'UTF-8'; + ksort($package); + $string1 = ''; + foreach($package as $key => $v) { + if (empty($v)) { + continue; + } + $string1 .= "{$key}={$v}&"; + } + $string1 .= "key={$wechat['key']}"; + $sign = strtoupper(md5($string1)); + + $string2 = ''; + foreach($package as $key => $v) { + $v = urlencode($v); + $string2 .= "{$key}={$v}&"; + } + $string2 .= "sign={$sign}"; + $wOpt['package'] = $string2; + + $string = ''; + $keys = array('appId', 'timeStamp', 'nonceStr', 'package', 'appKey'); + sort($keys); + foreach($keys as $key) { + $v = $wOpt[$key]; + if($key == 'appKey') { + $v = $wechat['signkey']; + } + $key = strtolower($key); + $string .= "{$key}={$v}&"; + } + $string = rtrim($string, '&'); + + $wOpt['signType'] = 'SHA1'; + $wOpt['paySign'] = sha1($string); + return $wOpt; + } else { + $package = array(); + $package['appid'] = $wechat['appid']; // 支付商户APPID + $package['mch_id'] = $wechat['mchid']; // 微信支付商户号(MchId) + $package['nonce_str'] = random(8); // 8位随机字符 + $package['body'] = $params['title']; // 支付标题 + $package['attach'] = $params['attach']; // 支付回调内容 + $package['out_trade_no'] = $params['uniontid'];// 订单编号 + $package['total_fee'] = $params['fee'] * 100;// 微信支付单位为分 + $package['spbill_create_ip'] = CLIENT_IP; // 支付客户端IP + $package['time_start'] = date('YmdHis', TIMESTAMP);// 支付发起时间戳 + $package['time_expire'] = date('YmdHis', TIMESTAMP + 600);// 支付有效期 + $package['notify_url'] = $_W['siteroot'] . 'callback/';// 支付回调地址 + $package['trade_type'] = 'JSAPI'; + $package['openid'] = $params['from_user']; + + ksort($package, SORT_STRING); + $string1 = ''; + foreach($package as $key => $v) { + if (empty($v)) { + continue; + } + $string1 .= "{$key}={$v}&"; + } + $string1 .= "key={$wechat['signkey']}"; + + $package['sign'] = strtoupper(md5($string1)); + $dat = array2xml($package); + $response = ihttp_request('https://api.mch.weixin.qq.com/pay/unifiedorder', $dat,false); + if (is_error($response)) { + return $response; + } + + $xml = @isimplexml_load_string($response['content'], 'SimpleXMLElement', LIBXML_NOCDATA); + if (strval($xml->return_code) == 'FAIL') { + return error(-1, strval($xml->return_msg)); + } + if (strval($xml->result_code) == 'FAIL') { + return error(-1, strval($xml->err_code).': '.strval($xml->err_code_des)); + } + $prepayid = $xml->prepay_id; + $wOpt['appId'] = $wechat['appid']; + $wOpt['timeStamp'] = TIMESTAMP; + $wOpt['nonceStr'] = random(8); + $wOpt['package'] = 'prepay_id='.$prepayid; + $wOpt['signType'] = 'MD5'; + ksort($wOpt, SORT_STRING); + foreach($wOpt as $key => $v) { + $string .= "{$key}={$v}&"; + } + $string .= "key={$wechat['signkey']}"; + $wOpt['paySign'] = strtoupper(md5($string)); + return $wOpt; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/framework/model/user.mod.php b/codes/agent/game-docker/api/framework/model/user.mod.php new file mode 100644 index 0000000..0c695bd --- /dev/null +++ b/codes/agent/game-docker/api/framework/model/user.mod.php @@ -0,0 +1,454 @@ +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]; + else + return null; +} + +function get_wechat_by_user_id($market_key, $open_id, $union_id, $db) +{ + + if (!empty($union_id)) + $userInfo = Sql::select('a.*') + ->from('syweb_users a,syweb_users_weixin b') + ->where('b.uid = a.id and a.market_key = ? and b.unionid = ?', $market_key, $union_id) + ->get($db, null); + else + $userInfo = Sql::select('a.*') + ->from('syweb_users a,syweb_users_weixin b') + ->where('b.uid = a.id and a.market_key = ? and b.openid = ?', $market_key, $open_id) + ->get($db, null); + + if (!empty($userInfo) && count($userInfo) > 0) + return $userInfo[0]; + else + 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, $open_id, $union_id, $market_key, $db, $pdo) +{ + // 首先验证指定的账号在全局用户信息中是否存在对应的记录 + if (!empty($union_id)) + $user_exist = Sql::select('a.id') + ->from('syweb_users a') + ->where('a.unionid = ? and a.market_key = ? and a.auth_type = ?', $union_id, $market_key, $auth_type) + ->get($db, null); + else + $user_exist = Sql::select('a.id') + ->from('syweb_users a') + ->where('a.openid = ? and a.market_key = ? and a.auth_type = ?', $open_id, $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 = "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) + { + $data = array( + 'main_account_id' => '', /// 默认没有绑定主账户 + 'sid' => $sid, + 'scode' => $scode, + 'sid_expire_time' => $sid_expire_time, + 'access_id' => $access_id, + 'access_key' => $access_key, + 'access_expire_time' => $access_expire_time, + 'market_key' => $market_key, + 'auth_type' => $auth_type, + 'openid' => $open_id, + 'unionid' => $union_id, + 'market_jifen' => 0, + 'create_time' => TIMESTAMP, + ); + + $id = Sql::insertInto('syweb_users')->values($data)->exec($pdo)->lastInsertId(); + if (!$id) + return -1; + else + return $id; + } + else + { + // 假如当前username存在,则修改一条对应的全局用户记录 + $data = array( + 'sid' => $sid, + 'scode' => $scode, + 'sid_expire_time' => $sid_expire_time, + 'access_id' => $access_id, + 'access_key' => $access_key, + 'access_expire_time' => $access_expire_time, + 'auth_type' => $auth_type, + ); + + Sql::update('syweb_users')->setArgs($data)->where('id = ?', $user_exist[0]['id'])->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/framework/model/user.mod.php.bak b/codes/agent/game-docker/api/framework/model/user.mod.php.bak new file mode 100644 index 0000000..8181ac9 --- /dev/null +++ b/codes/agent/game-docker/api/framework/model/user.mod.php.bak @@ -0,0 +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"]; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/index.html b/codes/agent/game-docker/api/index.html new file mode 100644 index 0000000..082c644 --- /dev/null +++ b/codes/agent/game-docker/api/index.html @@ -0,0 +1,13 @@ + + + + + + Test1 + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/jslib/yl.js b/codes/agent/game-docker/api/jslib/yl.js new file mode 100644 index 0000000..0ffbbc7 --- /dev/null +++ b/codes/agent/game-docker/api/jslib/yl.js @@ -0,0 +1,640 @@ +window.yl = new Array(); +window.yl.weixin = new Array(); +function weixin_ready(data){ + wx.config({ + debug: false, + appId: data.appId, + timestamp: data.timestamp, + nonceStr: data.nonceStr, + signature: data.signature, + jsApiList: [ + 'checkJsApi', + 'onMenuShareTimeline', + 'onMenuShareAppMessage', + 'onMenuShareQQ', + 'onMenuShareWeibo', + 'onMenuShareQZone', + 'hideMenuItems', + 'showMenuItems', + 'hideAllNonBaseMenuItem', + 'showAllNonBaseMenuItem', + 'translateVoice', + 'startRecord', + 'stopRecord', + 'onVoiceRecordEnd', + 'playVoice', + 'onVoicePlayEnd', + 'pauseVoice', + 'stopVoice', + 'uploadVoice', + 'downloadVoice', + 'chooseImage', + 'previewImage', + 'uploadImage', + 'downloadImage', + 'getNetworkType', + 'openLocation', + 'getLocation', + 'hideOptionMenu', + 'showOptionMenu', + 'closeWindow', + 'scanQRCode', + 'chooseWXPay', + 'openProductSpecificView', + 'addCard', + 'chooseCard', + 'openCard' + ] + }); +} + +wx.ready(function () { + // 1 判断当前版本是否支持指定 JS 接口,支持批量判断 + // p_jsApiList:需要判断的接口列表 + function checkJsApi(p_jsApiList) { + wx.checkJsApi({ + jsApiList: p_jsApiList, + success: function (res) { + return res; + } + }); + }; + window.yl.weixin.checkJsApi = checkJsApi; + + // 2. 分享接口 + // 2.1 监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口 + function shareAppMessage(p_title,p_desc,p_link,p_imgurl, + trigger_callback,success_callback,cancel_callback,fail_callback) { + wx.onMenuShareAppMessage({ + title: p_title, + desc: p_desc, + link: p_link, + imgUrl: p_imgurl, + trigger: function (res) { + // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回 + trigger_callback(res); + }, + success: function (res) { + success_callback(res); + }, + cancel: function (res) { + cancel_callback(res); + }, + fail: function (res) { + fail_callback(res); + } + }); + }; + window.yl.weixin.shareAppMessage = shareAppMessage; + + // 2.2 监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口 + function shareTimeline(p_title,p_link,p_imgurl, + trigger_callback,success_callback,cancel_callback,fail_callback) { + wx.onMenuShareTimeline({ + title: p_title, + link: p_link, + imgUrl: p_imgurl, + trigger: function (res) { + // 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回 + trigger_callback(res); + }, + success: function (res) { + success_callback(res); + }, + cancel: function (res) { + cancel_callback(res); + }, + fail: function (res) { + fail_callback(res); + } + }); + }; + window.yl.weixin.shareTimeline = shareTimeline; + + // 2.3 监听“分享到QQ”按钮点击、自定义分享内容及分享结果接口 + function shareQQ(p_title,p_desc,p_link,p_imgurl, + trigger_callback,complete_callback,success_callback,cancel_callback,fail_callback) { + wx.onMenuShareQQ({ + title: p_title, + desc: p_desc, + link: p_link, + imgUrl: p_imgurl, + trigger: function (res) { + trigger_callback(res); + }, + complete: function (res) { + complete_callback(res); + }, + success: function (res) { + success_callback(res); + }, + cancel: function (res) { + cancel_callback(res); + }, + fail: function (res) { + fail_callback(res); + } + }); + }; + window.yl.weixin.shareQQ = shareQQ; + + // 2.4 监听“分享到微博”按钮点击、自定义分享内容及分享结果接口 + function shareWeibo(p_title,p_desc,p_link,p_imgurl, + trigger_callback,complete_callback,success_callback,cancel_callback,fail_callback) { + wx.onMenuShareWeibo({ + title: p_title, + desc: p_desc, + link: p_link, + imgUrl: p_imgurl, + trigger: function (res) { + trigger_callback(res); + }, + complete: function (res) { + complete_callback(res); + }, + success: function (res) { + success_callback(res); + }, + cancel: function (res) { + cancel_callback(res); + }, + fail: function (res) { + fail_callback(res); + } + }); + }; + window.yl.weixin.shareWeibo = shareWeibo; + + // 2.5 监听“分享到QZone”按钮点击、自定义分享内容及分享接口 + function shareQZone(p_title,p_desc,p_link,p_imgurl, + trigger_callback,complete_callback,success_callback,cancel_callback,fail_callback) { + wx.onMenuShareQZone({ + title: p_title, + desc: p_desc, + link: p_link, + imgUrl: p_imgurl, + trigger: function (res) { + trigger_callback(res); + }, + complete: function (res) { + complete_callback(res); + }, + success: function (res) { + success_callback(res); + }, + cancel: function (res) { + cancel_callback(res); + }, + fail: function (res) { + fail_callback(res); + } + }); + }; + window.yl.weixin.shareQZone = shareQZone; + + // 3 智能接口 + //var voice = { + // localId: '', + // serverId: '' + //}; + // 3.1 识别音频并返回识别结果 + // voice_localId:录制的声音ID + function translateVoice(voice_localId) { + if (voice_localId == '') { + alert('请先使用 startRecord 接口录制一段声音'); + return; + } + wx.translateVoice({ + localId: voice_localId, + complete: function (res) { + if (res.hasOwnProperty('translateResult')) { + return res.translateResult; + // alert('识别结果:' + res.translateResult); + } else { + return false; + //alert('无法识别'); + } + } + }); + }; + window.yl.weixin.translateVoice = translateVoice; + + // 4 音频接口 + // 4.2 开始录音 + function startRecord() { + wx.startRecord({ + cancel: function () { + alert('用户拒绝授权录音'); + } + }); + }; + window.yl.weixin.startRecord = startRecord; + + // 4.3 停止录音 + function stopRecord() { + wx.stopRecord({ + success: function (res) { + return res.localId; + }, + fail: function (res) { + return res; + } + }); + }; + window.yl.weixin.stopRecord = stopRecord; + + // 4.4 监听录音自动停止 + wx.onVoiceRecordEnd({ + complete: function (res) { + voice.localId = res.localId; + alert('录音时间已超过一分钟'); + } + }); + + // 4.5 播放音频 + // voice_localId:音频ID + function playVoice(voice_localId) { + if (voice_localId == '') { + alert('请先使用 startRecord 接口录制一段声音'); + return; + } + wx.playVoice({ + localId: voice_localId + }); + }; + window.yl.weixin.playVoice = playVoice; + + // 4.6 暂停播放音频 + // voice_localId:音频ID + function pauseVoice(voice_localId) { + wx.pauseVoice({ + localId: voice_localId + }); + }; + window.yl.weixin.pauseVoice = pauseVoice; + + // 4.7 停止播放音频 + // voice_localId:音频ID + function stopVoice(voice_localId) { + wx.stopVoice({ + localId: voice_localId + }); + }; + window.yl.weixin.stopVoice = stopVoice; + + // 4.8 监听录音播放停止 + wx.onVoicePlayEnd({ + complete: function (res) { + alert('录音(' + res.localId + ')播放结束'); + } + }); + + // 4.8 上传语音 + // voice_localId:音频ID + function uploadVoice(voice_localId) { + if (voice_localId == '') { + alert('请先使用 startRecord 接口录制一段声音'); + return; + } + wx.uploadVoice({ + localId: voice_localId, + success: function (res) { + return res.serverId; + } + }); + }; + window.yl.weixin.uploadVoice = uploadVoice; + + // 4.9 下载语音 + // voice_serverId:上传的语音ID + function downloadVoice(voice_serverId) { + if (voice_serverId == '') { + alert('请先使用 uploadVoice 上传声音'); + return; + } + wx.downloadVoice({ + serverId: voice_serverId, + success: function (res) { + return res.localId; + } + }); + }; + window.yl.weixin.downloadVoice = downloadVoice; + + // 5 图片接口 + // 5.1 拍照、本地选图 + //var images = { + // localId: [], + // serverId: [] + //}; + function chooseImage() { + wx.chooseImage({ + success: function (res) { + return res.localIds; + //alert('已选择 ' + res.localIds.length + ' 张图片'); + } + }); + }; + window.yl.weixin.chooseImage = chooseImage; + + // 5.2 图片预览 + // p_curr_img:当前显示的图片链接 + // p_urls:需要预览的图片http链接列表(字符串数组格式) + function previewImage(p_curr_img,p_urls) { + wx.previewImage({ + current: p_curr_img, + urls: p_urls + }); + }; + window.yl.weixin.previewImage = previewImage; + + // 5.3 上传图片 + // p_images_localId:需要上传的图片集合 + function uploadImage(p_images_localId) { + if (p_images_localId.length == 0) { + alert('请先使用 chooseImage 接口选择图片'); + return; + } + var i = 0, length = p_images_localId.length; + images_serverId = []; + function upload() { + wx.uploadImage({ + localId: p_images_localId[i], + success: function (res) { + i++; + //alert('已上传:' + i + '/' + length); + images_serverId.push(res.serverId); + if (i < length) { + upload(); + } + }, + fail: function (res) { + return res; + } + }); + } + upload(); + }; + window.yl.weixin.uploadImage = uploadImage; + + // 5.4 下载图片 + function downloadImage(images_serverId) { + if (images_serverId.length === 0) { + alert('请先使用 uploadImage 上传图片'); + return; + } + var i = 0, length = images_serverId.length; + images_localId = []; + function download() { + wx.downloadImage({ + serverId: images_serverId[i], + success: function (res) { + i++; + //alert('已下载:' + i + '/' + length); + images_localId.push(res.localId); + if (i < length) { + download(); + } + } + }); + } + download(); + }; + window.yl.weixin.downloadImage = downloadImage; + + // 6 设备信息接口 + // 6.1 获取当前网络状态 + function getNetworkType() { + wx.getNetworkType({ + success: function (res) { + return res.networkType; + }, + fail: function (res) { + return res; + } + }); + }; + window.yl.weixin.getNetworkType = getNetworkType; + + // 7 地理位置接口 + // 7.1 查看地理位置 + // p_lat:纬度,浮点数,范围为90 ~ -90 + // p_lng:经度,浮点数,范围为180 ~ -180 + // p_name:位置名 + // p_address:地址详情说明 + // p_scale:地图缩放级别,整形值,范围从1~28。默认为最大 + // p_infoUrl:在查看位置界面底部显示的超链接,可点击跳转 + function openLocation(p_lat,p_lng,p_name,p_address,p_scale,p_infoUrl) { + wx.openLocation({ + latitude: p_lat,// 纬度,浮点数,范围为90 ~ -90 + longitude: p_lng,// 经度,浮点数,范围为180 ~ -180 + name: p_name,// 位置名 + address: p_address,// 地址详情说明 + scale: p_scale,// 地图缩放级别,整形值,范围从1~28。默认为最大 + infoUrl: p_infoUrl // 在查看位置界面底部显示的超链接,可点击跳转 + }); + }; + window.yl.weixin.openLocation = openLocation; + + // 7.2 获取当前地理位置 + function getLocation() { + wx.getLocation({ + success: function (res) { + return res; + }, + cancel: function (res) { + alert('用户拒绝授权获取地理位置'); + } + }); + }; + window.yl.weixin.getLocation = getLocation; + + // 8 界面操作接口 + // 8.1 隐藏右上角菜单 + function hideOptionMenu() { + wx.hideOptionMenu(); + }; + window.yl.weixin.hideOptionMenu = hideOptionMenu; + + // 8.2 显示右上角菜单 + function showOptionMenu() { + wx.showOptionMenu(); + }; + window.yl.weixin.showOptionMenu = showOptionMenu; + + // 8.3 批量隐藏菜单项 + function hideMenuItems() { + wx.hideMenuItems({ + menuList: [ + 'menuItem:readMode', // 阅读模式 + 'menuItem:share:timeline', // 分享到朋友圈 + 'menuItem:copyUrl' // 复制链接 + ], + success: function (res) { + return true; + //alert('已隐藏“阅读模式”,“分享到朋友圈”,“复制链接”等按钮'); + }, + fail: function (res) { + return res; + } + }); + }; + window.yl.weixin.hideMenuItems = hideMenuItems; + + // 8.4 批量显示菜单项 + function showMenuItems() { + wx.showMenuItems({ + menuList: [ + 'menuItem:readMode', // 阅读模式 + 'menuItem:share:timeline', // 分享到朋友圈 + 'menuItem:copyUrl' // 复制链接 + ], + success: function (res) { + //alert('已显示“阅读模式”,“分享到朋友圈”,“复制链接”等按钮'); + return res; + }, + fail: function (res) { + return res; + } + }); + }; + window.yl.weixin.showMenuItems = showMenuItems; + + // 8.5 隐藏所有非基本菜单项 + function hideAllNonBaseMenuItem() { + wx.hideAllNonBaseMenuItem({ + success: function () { + alert('已隐藏所有非基本菜单项'); + } + }); + }; + window.yl.weixin.hideAllNonBaseMenuItem = hideAllNonBaseMenuItem; + + // 8.6 显示所有被隐藏的非基本菜单项 + function showAllNonBaseMenuItem() { + wx.showAllNonBaseMenuItem({ + success: function () { + alert('已显示所有非基本菜单项'); + } + }); + }; + window.yl.weixin.showAllNonBaseMenuItem = showAllNonBaseMenuItem; + + // 8.7 关闭当前窗口 + function closeWindow() { + wx.closeWindow(); + }; + window.yl.weixin.closeWindow = closeWindow; + + // 9 微信原生接口 + // 9.1.1 扫描二维码并返回结果 + function scanQRCode0() { + wx.scanQRCode(); + }; + window.yl.weixin.scanQRCode0 = scanQRCode0; + + // 9.1.2 扫描二维码并返回结果 + function scanQRCode1(p_desc) { + wx.scanQRCode({ + needResult: 1, + desc: p_desc, + success: function (res) { + return res; + } + }); + }; + window.yl.weixin.scanQRCode1 = scanQRCode1; + + // 10 微信支付接口 + // 10.1 发起一个支付请求 + function chooseWXPay(p_timestamp,p_nonceStr,p_package,p_signType,p_paySign) { + // 注意:此 Demo 使用 2.7 版本支付接口实现,建议使用此接口时参考微信支付相关最新文档。 + wx.chooseWXPay({ + timestamp: p_timestamp, + nonceStr: p_nonceStr, + package: p_package, + signType: p_signType, // 注意:新版支付接口使用 MD5 加密 + paySign: p_paySign + }); + }; + window.yl.weixin.chooseWXPay = chooseWXPay; + + // 11.3 跳转微信商品页 + function openProductSpecificView(p_productId,p_extInfo) { + wx.openProductSpecificView({ + productId: p_productId, + extInfo: p_extInfo + }); + }; + window.yl.weixin.openProductSpecificView = openProductSpecificView; + + // 12 微信卡券接口 + // 12.1 添加卡券 + function addCard(p_cardList) { + wx.addCard({ + cardList: p_cardList, + success: function (res) { + return res.cardList; + // alert('已添加卡券:' + JSON.stringify(res.cardList)); + }, + cancel: function (res) { + return res; + } + }); + }; + window.yl.weixin.addCard = addCard; + + var codes = []; + // 12.2 选择卡券 + document.querySelector('#chooseCard').onclick = function () { + wx.chooseCard({ + cardSign: '6caa49f4a5af3d64ac247e1f563e5b5eb94619ad', + timestamp: 1437997723, + nonceStr: 'k0hGdSXKZEj3Min5', + success: function (res) { + res.cardList = JSON.parse(res.cardList); + encrypt_code = res.cardList[0]['encrypt_code']; + alert('已选择卡券:' + JSON.stringify(res.cardList)); + decryptCode(encrypt_code, function (code) { + codes.push(code); + }); + }, + cancel: function (res) { + alert(JSON.stringify(res)) + } + }); + }; + + // 12.3 查看卡券 + document.querySelector('#openCard').onclick = function () { + if (codes.length < 1) { + alert('请先使用 chooseCard 接口选择卡券。'); + return false; + } + var cardList = []; + for (var i = 0; i < codes.length; i++) { + cardList.push({ + cardId: 'pDF3iY9tv9zCGCj4jTXFOo1DxHdo', + code: codes[i] + }); + } + wx.openCard({ + cardList: cardList, + cancel: function (res) { + alert(JSON.stringify(res)) + } + }); + }; + + function decryptCode(code, callback) { + $.getJSON('/jssdk/decrypt_code.php?code=' + encodeURI(code), function (res) { + if (res.errcode == 0) { + codes.push(res.code); + } + }); + } +}); + +wx.error(function (res) { + alert(res.errMsg); +}); \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation.php new file mode 100644 index 0000000..a79a0f8 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation.php @@ -0,0 +1,79 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +/** + * Annotations class. + * + * @author Benjamin Eberlei + * @author Guilherme Blanco + * @author Jonathan Wage + * @author Roman Borschel + */ +class Annotation +{ + /** + * Value property. Common among all derived classes. + * + * @var string + */ + public $value; + + /** + * Constructor. + * + * @param array $data Key-value for properties to be defined in this class. + */ + public final function __construct(array $data) + { + foreach ($data as $key => $value) { + $this->$key = $value; + } + } + + /** + * Error handler for unknown property accessor in Annotation class. + * + * @param string $name Unknown property name. + * + * @throws \BadMethodCallException + */ + public function __get($name) + { + throw new \BadMethodCallException( + sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this)) + ); + } + + /** + * Error handler for unknown property mutator in Annotation class. + * + * @param string $name Unknown property name. + * @param mixed $value Property value. + * + * @throws \BadMethodCallException + */ + public function __set($name, $value) + { + throw new \BadMethodCallException( + sprintf("Unknown property '%s' on annotation '%s'.", $name, get_class($this)) + ); + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Attribute.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Attribute.php new file mode 100644 index 0000000..dbef6df --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Attribute.php @@ -0,0 +1,47 @@ +. + */ + +namespace Doctrine\Common\Annotations\Annotation; + +/** + * Annotation that can be used to signal to the parser + * to check the attribute type during the parsing process. + * + * @author Fabio B. Silva + * + * @Annotation + */ +final class Attribute +{ + /** + * @var string + */ + public $name; + + /** + * @var string + */ + public $type; + + /** + * @var boolean + */ + public $required = false; +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Attributes.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Attributes.php new file mode 100644 index 0000000..53134e3 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Attributes.php @@ -0,0 +1,37 @@ +. + */ + +namespace Doctrine\Common\Annotations\Annotation; + +/** + * Annotation that can be used to signal to the parser + * to check the types of all declared attributes during the parsing process. + * + * @author Fabio B. Silva + * + * @Annotation + */ +final class Attributes +{ + /** + * @var array + */ + public $value; +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Enum.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Enum.php new file mode 100644 index 0000000..e122a75 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Enum.php @@ -0,0 +1,84 @@ +. + */ + +namespace Doctrine\Common\Annotations\Annotation; + +/** + * Annotation that can be used to signal to the parser + * to check the available values during the parsing process. + * + * @since 2.4 + * @author Fabio B. Silva + * + * @Annotation + * @Attributes({ + * @Attribute("value", required = true, type = "array"), + * @Attribute("literal", required = false, type = "array") + * }) + */ +final class Enum +{ + /** + * @var array + */ + public $value; + + /** + * Literal target declaration. + * + * @var array + */ + public $literal; + + /** + * Annotation constructor. + * + * @param array $values + * + * @throws \InvalidArgumentException + */ + public function __construct(array $values) + { + if ( ! isset($values['literal'])) { + $values['literal'] = array(); + } + + foreach ($values['value'] as $var) { + if( ! is_scalar($var)) { + throw new \InvalidArgumentException(sprintf( + '@Enum supports only scalar values "%s" given.', + is_object($var) ? get_class($var) : gettype($var) + )); + } + } + + foreach ($values['literal'] as $key => $var) { + if( ! in_array($key, $values['value'])) { + throw new \InvalidArgumentException(sprintf( + 'Undefined enumerator value "%s" for literal "%s".', + $key , $var + )); + } + } + + $this->value = $values['value']; + $this->literal = $values['literal']; + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php new file mode 100644 index 0000000..175226a --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/IgnoreAnnotation.php @@ -0,0 +1,54 @@ +. + */ + +namespace Doctrine\Common\Annotations\Annotation; + +/** + * Annotation that can be used to signal to the parser to ignore specific + * annotations during the parsing process. + * + * @Annotation + * @author Johannes M. Schmitt + */ +final class IgnoreAnnotation +{ + /** + * @var array + */ + public $names; + + /** + * Constructor. + * + * @param array $values + * + * @throws \RuntimeException + */ + public function __construct(array $values) + { + if (is_string($values['value'])) { + $values['value'] = array($values['value']); + } + if (!is_array($values['value'])) { + throw new \RuntimeException(sprintf('@IgnoreAnnotation expects either a string name, or an array of strings, but got %s.', json_encode($values['value']))); + } + + $this->names = $values['value']; + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Required.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Required.php new file mode 100644 index 0000000..d67f960 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Required.php @@ -0,0 +1,33 @@ +. + */ + +namespace Doctrine\Common\Annotations\Annotation; + +/** + * Annotation that can be used to signal to the parser + * to check if that attribute is required during the parsing process. + * + * @author Fabio B. Silva + * + * @Annotation + */ +final class Required +{ +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Target.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Target.php new file mode 100644 index 0000000..f6c5445 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Annotation/Target.php @@ -0,0 +1,107 @@ +. + */ + +namespace Doctrine\Common\Annotations\Annotation; + +/** + * Annotation that can be used to signal to the parser + * to check the annotation target during the parsing process. + * + * @author Fabio B. Silva + * + * @Annotation + */ +final class Target +{ + const TARGET_CLASS = 1; + const TARGET_METHOD = 2; + const TARGET_PROPERTY = 4; + const TARGET_ANNOTATION = 8; + const TARGET_ALL = 15; + + /** + * @var array + */ + private static $map = array( + 'ALL' => self::TARGET_ALL, + 'CLASS' => self::TARGET_CLASS, + 'METHOD' => self::TARGET_METHOD, + 'PROPERTY' => self::TARGET_PROPERTY, + 'ANNOTATION' => self::TARGET_ANNOTATION, + ); + + /** + * @var array + */ + public $value; + + /** + * Targets as bitmask. + * + * @var integer + */ + public $targets; + + /** + * Literal target declaration. + * + * @var integer + */ + public $literal; + + /** + * Annotation constructor. + * + * @param array $values + * + * @throws \InvalidArgumentException + */ + public function __construct(array $values) + { + if (!isset($values['value'])){ + $values['value'] = null; + } + if (is_string($values['value'])){ + $values['value'] = array($values['value']); + } + if (!is_array($values['value'])){ + throw new \InvalidArgumentException( + sprintf('@Target expects either a string value, or an array of strings, "%s" given.', + is_object($values['value']) ? get_class($values['value']) : gettype($values['value']) + ) + ); + } + + $bitmask = 0; + foreach ($values['value'] as $literal) { + if(!isset(self::$map[$literal])){ + throw new \InvalidArgumentException( + sprintf('Invalid Target "%s". Available targets: [%s]', + $literal, implode(', ', array_keys(self::$map))) + ); + } + $bitmask |= self::$map[$literal]; + } + + $this->targets = $bitmask; + $this->value = $values['value']; + $this->literal = implode(', ', $this->value); + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationException.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationException.php new file mode 100644 index 0000000..d06fe66 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationException.php @@ -0,0 +1,197 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +/** + * Description of AnnotationException + * + * @since 2.0 + * @author Benjamin Eberlei + * @author Guilherme Blanco + * @author Jonathan Wage + * @author Roman Borschel + */ +class AnnotationException extends \Exception +{ + /** + * Creates a new AnnotationException describing a Syntax error. + * + * @param string $message Exception message + * + * @return AnnotationException + */ + public static function syntaxError($message) + { + return new self('[Syntax Error] ' . $message); + } + + /** + * Creates a new AnnotationException describing a Semantical error. + * + * @param string $message Exception message + * + * @return AnnotationException + */ + public static function semanticalError($message) + { + return new self('[Semantical Error] ' . $message); + } + + /** + * Creates a new AnnotationException describing an error which occurred during + * the creation of the annotation. + * + * @since 2.2 + * + * @param string $message + * + * @return AnnotationException + */ + public static function creationError($message) + { + return new self('[Creation Error] ' . $message); + } + + /** + * Creates a new AnnotationException describing a type error. + * + * @since 1.1 + * + * @param string $message + * + * @return AnnotationException + */ + public static function typeError($message) + { + return new self('[Type Error] ' . $message); + } + + /** + * Creates a new AnnotationException describing a constant semantical error. + * + * @since 2.3 + * + * @param string $identifier + * @param string $context + * + * @return AnnotationException + */ + public static function semanticalErrorConstants($identifier, $context = null) + { + return self::semanticalError(sprintf( + "Couldn't find constant %s%s.", + $identifier, + $context ? ', ' . $context : '' + )); + } + + /** + * Creates a new AnnotationException describing an type error of an attribute. + * + * @since 2.2 + * + * @param string $attributeName + * @param string $annotationName + * @param string $context + * @param string $expected + * @param mixed $actual + * + * @return AnnotationException + */ + public static function attributeTypeError($attributeName, $annotationName, $context, $expected, $actual) + { + return self::typeError(sprintf( + 'Attribute "%s" of @%s declared on %s expects %s, but got %s.', + $attributeName, + $annotationName, + $context, + $expected, + is_object($actual) ? 'an instance of ' . get_class($actual) : gettype($actual) + )); + } + + /** + * Creates a new AnnotationException describing an required error of an attribute. + * + * @since 2.2 + * + * @param string $attributeName + * @param string $annotationName + * @param string $context + * @param string $expected + * + * @return AnnotationException + */ + public static function requiredError($attributeName, $annotationName, $context, $expected) + { + return self::typeError(sprintf( + 'Attribute "%s" of @%s declared on %s expects %s. This value should not be null.', + $attributeName, + $annotationName, + $context, + $expected + )); + } + + /** + * Creates a new AnnotationException describing a invalid enummerator. + * + * @since 2.4 + * + * @param string $attributeName + * @param string $annotationName + * @param string $context + * @param array $available + * @param mixed $given + * + * @return AnnotationException + */ + public static function enumeratorError($attributeName, $annotationName, $context, $available, $given) + { + return new self(sprintf( + '[Enum Error] Attribute "%s" of @%s declared on %s accept only [%s], but got %s.', + $attributeName, + $annotationName, + $context, + implode(', ', $available), + is_object($given) ? get_class($given) : $given + )); + } + + /** + * @return AnnotationException + */ + public static function optimizerPlusSaveComments() + { + return new self( + "You have to enable opcache.save_comments=1 or zend_optimizerplus.save_comments=1." + ); + } + + /** + * @return AnnotationException + */ + public static function optimizerPlusLoadComments() + { + return new self( + "You have to enable opcache.load_comments=1 or zend_optimizerplus.load_comments=1." + ); + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationReader.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationReader.php new file mode 100644 index 0000000..d559960 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationReader.php @@ -0,0 +1,393 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +use Doctrine\Common\Annotations\Annotation\IgnoreAnnotation; +use Doctrine\Common\Annotations\Annotation\Target; +use ReflectionClass; +use ReflectionMethod; +use ReflectionProperty; + +/** + * A reader for docblock annotations. + * + * @author Benjamin Eberlei + * @author Guilherme Blanco + * @author Jonathan Wage + * @author Roman Borschel + * @author Johannes M. Schmitt + */ +class AnnotationReader implements Reader +{ + /** + * Global map for imports. + * + * @var array + */ + private static $globalImports = array( + 'ignoreannotation' => 'Doctrine\Common\Annotations\Annotation\IgnoreAnnotation', + ); + + /** + * A list with annotations that are not causing exceptions when not resolved to an annotation class. + * + * The names are case sensitive. + * + * @var array + */ + private static $globalIgnoredNames = array( + // Annotation tags + 'Annotation' => true, 'Attribute' => true, 'Attributes' => true, + /* Can we enable this? 'Enum' => true, */ + 'Required' => true, + 'Target' => true, + // Widely used tags (but not existent in phpdoc) + 'fix' => true , 'fixme' => true, + 'override' => true, + // PHPDocumentor 1 tags + 'abstract'=> true, 'access'=> true, + 'code' => true, + 'deprec'=> true, + 'endcode' => true, 'exception'=> true, + 'final'=> true, + 'ingroup' => true, 'inheritdoc'=> true, 'inheritDoc'=> true, + 'magic' => true, + 'name'=> true, + 'toc' => true, 'tutorial'=> true, + 'private' => true, + 'static'=> true, 'staticvar'=> true, 'staticVar'=> true, + 'throw' => true, + // PHPDocumentor 2 tags. + 'api' => true, 'author'=> true, + 'category'=> true, 'copyright'=> true, + 'deprecated'=> true, + 'example'=> true, + 'filesource'=> true, + 'global'=> true, + 'ignore'=> true, /* Can we enable this? 'index' => true, */ 'internal'=> true, + 'license'=> true, 'link'=> true, + 'method' => true, + 'package'=> true, 'param'=> true, 'property' => true, 'property-read' => true, 'property-write' => true, + 'return'=> true, + 'see'=> true, 'since'=> true, 'source' => true, 'subpackage'=> true, + 'throws'=> true, 'todo'=> true, 'TODO'=> true, + 'usedby'=> true, 'uses' => true, + 'var'=> true, 'version'=> true, + // PHPUnit tags + 'codeCoverageIgnore' => true, 'codeCoverageIgnoreStart' => true, 'codeCoverageIgnoreEnd' => true, + // PHPCheckStyle + 'SuppressWarnings' => true, + // PHPStorm + 'noinspection' => true, + // PEAR + 'package_version' => true, + // PlantUML + 'startuml' => true, 'enduml' => true, + ); + + /** + * Add a new annotation to the globally ignored annotation names with regard to exception handling. + * + * @param string $name + */ + static public function addGlobalIgnoredName($name) + { + self::$globalIgnoredNames[$name] = true; + } + + /** + * Annotations parser. + * + * @var \Doctrine\Common\Annotations\DocParser + */ + private $parser; + + /** + * Annotations parser used to collect parsing metadata. + * + * @var \Doctrine\Common\Annotations\DocParser + */ + private $preParser; + + /** + * PHP parser used to collect imports. + * + * @var \Doctrine\Common\Annotations\PhpParser + */ + private $phpParser; + + /** + * In-memory cache mechanism to store imported annotations per class. + * + * @var array + */ + private $imports = array(); + + /** + * In-memory cache mechanism to store ignored annotations per class. + * + * @var array + */ + private $ignoredAnnotationNames = array(); + + /** + * Constructor. + * + * Initializes a new AnnotationReader. + */ + public function __construct() + { + if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.save_comments') === "0" || ini_get('opcache.save_comments') === "0")) { + throw AnnotationException::optimizerPlusSaveComments(); + } + + if (extension_loaded('Zend OPcache') && ini_get('opcache.save_comments') == 0) { + throw AnnotationException::optimizerPlusSaveComments(); + } + + + if (extension_loaded('Zend Optimizer+') && (ini_get('zend_optimizerplus.load_comments') === "0" || ini_get('opcache.load_comments') === "0")) { + throw AnnotationException::optimizerPlusLoadComments(); + } + + if (extension_loaded('Zend OPcache') && ini_get('opcache.load_comments') == 0) { + throw AnnotationException::optimizerPlusLoadComments(); + } + + AnnotationRegistry::registerFile(__DIR__ . '/Annotation/IgnoreAnnotation.php'); + + $this->parser = new DocParser; + $this->preParser = new DocParser; + + $this->preParser->setImports(self::$globalImports); + $this->preParser->setIgnoreNotImportedAnnotations(true); + + $this->phpParser = new PhpParser; + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotations(ReflectionClass $class) + { + $this->parser->setTarget(Target::TARGET_CLASS); + $this->parser->setImports($this->getClassImports($class)); + $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class)); + + return $this->parser->parse($class->getDocComment(), 'class ' . $class->getName()); + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotation(ReflectionClass $class, $annotationName) + { + $annotations = $this->getClassAnnotations($class); + + foreach ($annotations as $annotation) { + if ($annotation instanceof $annotationName) { + return $annotation; + } + } + + return null; + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotations(ReflectionProperty $property) + { + $class = $property->getDeclaringClass(); + $context = 'property ' . $class->getName() . "::\$" . $property->getName(); + + $this->parser->setTarget(Target::TARGET_PROPERTY); + $this->parser->setImports($this->getPropertyImports($property)); + $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class)); + + return $this->parser->parse($property->getDocComment(), $context); + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotation(ReflectionProperty $property, $annotationName) + { + $annotations = $this->getPropertyAnnotations($property); + + foreach ($annotations as $annotation) { + if ($annotation instanceof $annotationName) { + return $annotation; + } + } + + return null; + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotations(ReflectionMethod $method) + { + $class = $method->getDeclaringClass(); + $context = 'method ' . $class->getName() . '::' . $method->getName() . '()'; + + $this->parser->setTarget(Target::TARGET_METHOD); + $this->parser->setImports($this->getMethodImports($method)); + $this->parser->setIgnoredAnnotationNames($this->getIgnoredAnnotationNames($class)); + + return $this->parser->parse($method->getDocComment(), $context); + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotation(ReflectionMethod $method, $annotationName) + { + $annotations = $this->getMethodAnnotations($method); + + foreach ($annotations as $annotation) { + if ($annotation instanceof $annotationName) { + return $annotation; + } + } + + return null; + } + + /** + * Returns the ignored annotations for the given class. + * + * @param \ReflectionClass $class + * + * @return array + */ + private function getIgnoredAnnotationNames(ReflectionClass $class) + { + if (isset($this->ignoredAnnotationNames[$name = $class->getName()])) { + return $this->ignoredAnnotationNames[$name]; + } + + $this->collectParsingMetadata($class); + + return $this->ignoredAnnotationNames[$name]; + } + + /** + * Retrieves imports. + * + * @param \ReflectionClass $class + * + * @return array + */ + private function getClassImports(ReflectionClass $class) + { + if (isset($this->imports[$name = $class->getName()])) { + return $this->imports[$name]; + } + + $this->collectParsingMetadata($class); + + return $this->imports[$name]; + } + + /** + * Retrieves imports for methods. + * + * @param \ReflectionMethod $method + * + * @return array + */ + private function getMethodImports(ReflectionMethod $method) + { + $class = $method->getDeclaringClass(); + $classImports = $this->getClassImports($class); + if (!method_exists($class, 'getTraits')) { + return $classImports; + } + + $traitImports = array(); + + foreach ($class->getTraits() as $trait) { + if ($trait->hasMethod($method->getName()) + && $trait->getFileName() === $method->getFileName() + ) { + $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait)); + } + } + + return array_merge($classImports, $traitImports); + } + + /** + * Retrieves imports for properties. + * + * @param \ReflectionProperty $property + * + * @return array + */ + private function getPropertyImports(ReflectionProperty $property) + { + $class = $property->getDeclaringClass(); + $classImports = $this->getClassImports($class); + if (!method_exists($class, 'getTraits')) { + return $classImports; + } + + $traitImports = array(); + + foreach ($class->getTraits() as $trait) { + if ($trait->hasProperty($property->getName())) { + $traitImports = array_merge($traitImports, $this->phpParser->parseClass($trait)); + } + } + + return array_merge($classImports, $traitImports); + } + + /** + * Collects parsing metadata for a given class. + * + * @param \ReflectionClass $class + */ + private function collectParsingMetadata(ReflectionClass $class) + { + $ignoredAnnotationNames = self::$globalIgnoredNames; + $annotations = $this->preParser->parse($class->getDocComment(), 'class ' . $class->name); + + foreach ($annotations as $annotation) { + if ($annotation instanceof IgnoreAnnotation) { + foreach ($annotation->names AS $annot) { + $ignoredAnnotationNames[$annot] = true; + } + } + } + + $name = $class->getName(); + + $this->imports[$name] = array_merge( + self::$globalImports, + $this->phpParser->parseClass($class), + array('__NAMESPACE__' => $class->getNamespaceName()) + ); + + $this->ignoredAnnotationNames[$name] = $ignoredAnnotationNames; + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationRegistry.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationRegistry.php new file mode 100644 index 0000000..13ceb63 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/AnnotationRegistry.php @@ -0,0 +1,151 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +/** + * AnnotationRegistry. + */ +final class AnnotationRegistry +{ + /** + * A map of namespaces to use for autoloading purposes based on a PSR-0 convention. + * + * Contains the namespace as key and an array of directories as value. If the value is NULL + * the include path is used for checking for the corresponding file. + * + * This autoloading mechanism does not utilize the PHP autoloading but implements autoloading on its own. + * + * @var array + */ + static private $autoloadNamespaces = array(); + + /** + * A map of autoloader callables. + * + * @var array + */ + static private $loaders = array(); + + /** + * @return void + */ + static public function reset() + { + self::$autoloadNamespaces = array(); + self::$loaders = array(); + } + + /** + * Registers file. + * + * @param string $file + * + * @return void + */ + static public function registerFile($file) + { + require_once $file; + } + + /** + * Adds a namespace with one or many directories to look for files or null for the include path. + * + * Loading of this namespaces will be done with a PSR-0 namespace loading algorithm. + * + * @param string $namespace + * @param string|array|null $dirs + * + * @return void + */ + static public function registerAutoloadNamespace($namespace, $dirs = null) + { + self::$autoloadNamespaces[$namespace] = $dirs; + } + + /** + * Registers multiple namespaces. + * + * Loading of this namespaces will be done with a PSR-0 namespace loading algorithm. + * + * @param array $namespaces + * + * @return void + */ + static public function registerAutoloadNamespaces(array $namespaces) + { + self::$autoloadNamespaces = array_merge(self::$autoloadNamespaces, $namespaces); + } + + /** + * Registers an autoloading callable for annotations, much like spl_autoload_register(). + * + * NOTE: These class loaders HAVE to be silent when a class was not found! + * IMPORTANT: Loaders have to return true if they loaded a class that could contain the searched annotation class. + * + * @param callable $callable + * + * @return void + * + * @throws \InvalidArgumentException + */ + static public function registerLoader($callable) + { + if (!is_callable($callable)) { + throw new \InvalidArgumentException("A callable is expected in AnnotationRegistry::registerLoader()."); + } + self::$loaders[] = $callable; + } + + /** + * Autoloads an annotation class silently. + * + * @param string $class + * + * @return boolean + */ + static public function loadAnnotationClass($class) + { + foreach (self::$autoloadNamespaces AS $namespace => $dirs) { + if (strpos($class, $namespace) === 0) { + $file = str_replace("\\", DIRECTORY_SEPARATOR, $class) . ".php"; + if ($dirs === null) { + if ($path = stream_resolve_include_path($file)) { + require $path; + return true; + } + } else { + foreach((array)$dirs AS $dir) { + if (is_file($dir . DIRECTORY_SEPARATOR . $file)) { + require $dir . DIRECTORY_SEPARATOR . $file; + return true; + } + } + } + } + } + + foreach (self::$loaders AS $loader) { + if (call_user_func($loader, $class) === true) { + return true; + } + } + return false; + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/CachedReader.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/CachedReader.php new file mode 100644 index 0000000..e6dc593 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/CachedReader.php @@ -0,0 +1,235 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +use Doctrine\Common\Cache\Cache; + +/** + * A cache aware annotation reader. + * + * @author Johannes M. Schmitt + * @author Benjamin Eberlei + */ +final class CachedReader implements Reader +{ + /** + * @var string + */ + private static $CACHE_SALT = '@[Annot]'; + + /** + * @var Reader + */ + private $delegate; + + /** + * @var Cache + */ + private $cache; + + /** + * @var boolean + */ + private $debug; + + /** + * @var array + */ + private $loadedAnnotations = array(); + + /** + * Constructor. + * + * @param Reader $reader + * @param Cache $cache + * @param bool $debug + */ + public function __construct(Reader $reader, Cache $cache, $debug = false) + { + $this->delegate = $reader; + $this->cache = $cache; + $this->debug = (boolean) $debug; + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotations(\ReflectionClass $class) + { + $cacheKey = $class->getName(); + + if (isset($this->loadedAnnotations[$cacheKey])) { + return $this->loadedAnnotations[$cacheKey]; + } + + if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) { + $annots = $this->delegate->getClassAnnotations($class); + $this->saveToCache($cacheKey, $annots); + } + + return $this->loadedAnnotations[$cacheKey] = $annots; + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotation(\ReflectionClass $class, $annotationName) + { + foreach ($this->getClassAnnotations($class) as $annot) { + if ($annot instanceof $annotationName) { + return $annot; + } + } + + return null; + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotations(\ReflectionProperty $property) + { + $class = $property->getDeclaringClass(); + $cacheKey = $class->getName().'$'.$property->getName(); + + if (isset($this->loadedAnnotations[$cacheKey])) { + return $this->loadedAnnotations[$cacheKey]; + } + + if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) { + $annots = $this->delegate->getPropertyAnnotations($property); + $this->saveToCache($cacheKey, $annots); + } + + return $this->loadedAnnotations[$cacheKey] = $annots; + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName) + { + foreach ($this->getPropertyAnnotations($property) as $annot) { + if ($annot instanceof $annotationName) { + return $annot; + } + } + + return null; + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotations(\ReflectionMethod $method) + { + $class = $method->getDeclaringClass(); + $cacheKey = $class->getName().'#'.$method->getName(); + + if (isset($this->loadedAnnotations[$cacheKey])) { + return $this->loadedAnnotations[$cacheKey]; + } + + if (false === ($annots = $this->fetchFromCache($cacheKey, $class))) { + $annots = $this->delegate->getMethodAnnotations($method); + $this->saveToCache($cacheKey, $annots); + } + + return $this->loadedAnnotations[$cacheKey] = $annots; + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotation(\ReflectionMethod $method, $annotationName) + { + foreach ($this->getMethodAnnotations($method) as $annot) { + if ($annot instanceof $annotationName) { + return $annot; + } + } + + return null; + } + + /** + * Clears loaded annotations. + * + * @return void + */ + public function clearLoadedAnnotations() + { + $this->loadedAnnotations = array(); + } + + /** + * Fetches a value from the cache. + * + * @param string $rawCacheKey The cache key. + * @param \ReflectionClass $class The related class. + * + * @return mixed The cached value or false when the value is not in cache. + */ + private function fetchFromCache($rawCacheKey, \ReflectionClass $class) + { + $cacheKey = $rawCacheKey . self::$CACHE_SALT; + if (($data = $this->cache->fetch($cacheKey)) !== false) { + if (!$this->debug || $this->isCacheFresh($cacheKey, $class)) { + return $data; + } + } + + return false; + } + + /** + * Saves a value to the cache. + * + * @param string $rawCacheKey The cache key. + * @param mixed $value The value. + * + * @return void + */ + private function saveToCache($rawCacheKey, $value) + { + $cacheKey = $rawCacheKey . self::$CACHE_SALT; + $this->cache->save($cacheKey, $value); + if ($this->debug) { + $this->cache->save('[C]'.$cacheKey, time()); + } + } + + /** + * Checks if the cache is fresh. + * + * @param string $cacheKey + * @param \ReflectionClass $class + * + * @return boolean + */ + private function isCacheFresh($cacheKey, \ReflectionClass $class) + { + if (false === $filename = $class->getFilename()) { + return true; + } + + return $this->cache->fetch('[C]'.$cacheKey) >= filemtime($filename); + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/DocLexer.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/DocLexer.php new file mode 100644 index 0000000..330afd3 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/DocLexer.php @@ -0,0 +1,134 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +use Doctrine\Common\Lexer\AbstractLexer; + +/** + * Simple lexer for docblock annotations. + * + * @author Benjamin Eberlei + * @author Guilherme Blanco + * @author Jonathan Wage + * @author Roman Borschel + * @author Johannes M. Schmitt + */ +final class DocLexer extends AbstractLexer +{ + const T_NONE = 1; + const T_INTEGER = 2; + const T_STRING = 3; + const T_FLOAT = 4; + + // All tokens that are also identifiers should be >= 100 + const T_IDENTIFIER = 100; + const T_AT = 101; + const T_CLOSE_CURLY_BRACES = 102; + const T_CLOSE_PARENTHESIS = 103; + const T_COMMA = 104; + const T_EQUALS = 105; + const T_FALSE = 106; + const T_NAMESPACE_SEPARATOR = 107; + const T_OPEN_CURLY_BRACES = 108; + const T_OPEN_PARENTHESIS = 109; + const T_TRUE = 110; + const T_NULL = 111; + const T_COLON = 112; + + /** + * @var array + */ + protected $noCase = array( + '@' => self::T_AT, + ',' => self::T_COMMA, + '(' => self::T_OPEN_PARENTHESIS, + ')' => self::T_CLOSE_PARENTHESIS, + '{' => self::T_OPEN_CURLY_BRACES, + '}' => self::T_CLOSE_CURLY_BRACES, + '=' => self::T_EQUALS, + ':' => self::T_COLON, + '\\' => self::T_NAMESPACE_SEPARATOR + ); + + /** + * @var array + */ + protected $withCase = array( + 'true' => self::T_TRUE, + 'false' => self::T_FALSE, + 'null' => self::T_NULL + ); + + /** + * {@inheritdoc} + */ + protected function getCatchablePatterns() + { + return array( + '[a-z_\\\][a-z0-9_\:\\\]*[a-z_][a-z0-9_]*', + '(?:[+-]?[0-9]+(?:[\.][0-9]+)*)(?:[eE][+-]?[0-9]+)?', + '"(?:[^"]|"")*"', + ); + } + + /** + * {@inheritdoc} + */ + protected function getNonCatchablePatterns() + { + return array('\s+', '\*+', '(.)'); + } + + /** + * {@inheritdoc} + */ + protected function getType(&$value) + { + $type = self::T_NONE; + + if ($value[0] === '"') { + $value = str_replace('""', '"', substr($value, 1, strlen($value) - 2)); + + return self::T_STRING; + } + + if (isset($this->noCase[$value])) { + return $this->noCase[$value]; + } + + if ($value[0] === '_' || $value[0] === '\\' || ctype_alpha($value[0])) { + return self::T_IDENTIFIER; + } + + $lowerValue = strtolower($value); + + if (isset($this->withCase[$lowerValue])) { + return $this->withCase[$lowerValue]; + } + + // Checking numeric value + if (is_numeric($value)) { + return (strpos($value, '.') !== false || stripos($value, 'e') !== false) + ? self::T_FLOAT : self::T_INTEGER; + } + + return $type; + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/DocParser.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/DocParser.php new file mode 100644 index 0000000..db66846 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/DocParser.php @@ -0,0 +1,1138 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +use Doctrine\Common\Annotations\Annotation\Attribute; +use ReflectionClass; +use Doctrine\Common\Annotations\Annotation\Enum; +use Doctrine\Common\Annotations\Annotation\Target; +use Doctrine\Common\Annotations\Annotation\Attributes; + +/** + * A parser for docblock annotations. + * + * It is strongly discouraged to change the default annotation parsing process. + * + * @author Benjamin Eberlei + * @author Guilherme Blanco + * @author Jonathan Wage + * @author Roman Borschel + * @author Johannes M. Schmitt + * @author Fabio B. Silva + */ +final class DocParser +{ + /** + * An array of all valid tokens for a class name. + * + * @var array + */ + private static $classIdentifiers = array( + DocLexer::T_IDENTIFIER, + DocLexer::T_TRUE, + DocLexer::T_FALSE, + DocLexer::T_NULL + ); + + /** + * The lexer. + * + * @var \Doctrine\Common\Annotations\DocLexer + */ + private $lexer; + + /** + * Current target context. + * + * @var string + */ + private $target; + + /** + * Doc parser used to collect annotation target. + * + * @var \Doctrine\Common\Annotations\DocParser + */ + private static $metadataParser; + + /** + * Flag to control if the current annotation is nested or not. + * + * @var boolean + */ + private $isNestedAnnotation = false; + + /** + * Hashmap containing all use-statements that are to be used when parsing + * the given doc block. + * + * @var array + */ + private $imports = array(); + + /** + * This hashmap is used internally to cache results of class_exists() + * look-ups. + * + * @var array + */ + private $classExists = array(); + + /** + * Whether annotations that have not been imported should be ignored. + * + * @var boolean + */ + private $ignoreNotImportedAnnotations = false; + + /** + * An array of default namespaces if operating in simple mode. + * + * @var array + */ + private $namespaces = array(); + + /** + * A list with annotations that are not causing exceptions when not resolved to an annotation class. + * + * The names must be the raw names as used in the class, not the fully qualified + * class names. + * + * @var array + */ + private $ignoredAnnotationNames = array(); + + /** + * @var string + */ + private $context = ''; + + /** + * Hash-map for caching annotation metadata. + * + * @var array + */ + private static $annotationMetadata = array( + 'Doctrine\Common\Annotations\Annotation\Target' => array( + 'is_annotation' => true, + 'has_constructor' => true, + 'properties' => array(), + 'targets_literal' => 'ANNOTATION_CLASS', + 'targets' => Target::TARGET_CLASS, + 'default_property' => 'value', + 'attribute_types' => array( + 'value' => array( + 'required' => false, + 'type' =>'array', + 'array_type'=>'string', + 'value' =>'array' + ) + ), + ), + 'Doctrine\Common\Annotations\Annotation\Attribute' => array( + 'is_annotation' => true, + 'has_constructor' => false, + 'targets_literal' => 'ANNOTATION_ANNOTATION', + 'targets' => Target::TARGET_ANNOTATION, + 'default_property' => 'name', + 'properties' => array( + 'name' => 'name', + 'type' => 'type', + 'required' => 'required' + ), + 'attribute_types' => array( + 'value' => array( + 'required' => true, + 'type' =>'string', + 'value' =>'string' + ), + 'type' => array( + 'required' =>true, + 'type' =>'string', + 'value' =>'string' + ), + 'required' => array( + 'required' =>false, + 'type' =>'boolean', + 'value' =>'boolean' + ) + ), + ), + 'Doctrine\Common\Annotations\Annotation\Attributes' => array( + 'is_annotation' => true, + 'has_constructor' => false, + 'targets_literal' => 'ANNOTATION_CLASS', + 'targets' => Target::TARGET_CLASS, + 'default_property' => 'value', + 'properties' => array( + 'value' => 'value' + ), + 'attribute_types' => array( + 'value' => array( + 'type' =>'array', + 'required' =>true, + 'array_type'=>'Doctrine\Common\Annotations\Annotation\Attribute', + 'value' =>'array' + ) + ), + ), + 'Doctrine\Common\Annotations\Annotation\Enum' => array( + 'is_annotation' => true, + 'has_constructor' => true, + 'targets_literal' => 'ANNOTATION_PROPERTY', + 'targets' => Target::TARGET_PROPERTY, + 'default_property' => 'value', + 'properties' => array( + 'value' => 'value' + ), + 'attribute_types' => array( + 'value' => array( + 'type' => 'array', + 'required' => true, + ), + 'literal' => array( + 'type' => 'array', + 'required' => false, + ), + ), + ), + ); + + /** + * Hash-map for handle types declaration. + * + * @var array + */ + private static $typeMap = array( + 'float' => 'double', + 'bool' => 'boolean', + // allow uppercase Boolean in honor of George Boole + 'Boolean' => 'boolean', + 'int' => 'integer', + ); + + /** + * Constructs a new DocParser. + */ + public function __construct() + { + $this->lexer = new DocLexer; + } + + /** + * Sets the annotation names that are ignored during the parsing process. + * + * The names are supposed to be the raw names as used in the class, not the + * fully qualified class names. + * + * @param array $names + * + * @return void + */ + public function setIgnoredAnnotationNames(array $names) + { + $this->ignoredAnnotationNames = $names; + } + + /** + * Sets ignore on not-imported annotations. + * + * @param boolean $bool + * + * @return void + */ + public function setIgnoreNotImportedAnnotations($bool) + { + $this->ignoreNotImportedAnnotations = (boolean) $bool; + } + + /** + * Sets the default namespaces. + * + * @param array $namespace + * + * @return void + * + * @throws \RuntimeException + */ + public function addNamespace($namespace) + { + if ($this->imports) { + throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.'); + } + + $this->namespaces[] = $namespace; + } + + /** + * Sets the imports. + * + * @param array $imports + * + * @return void + * + * @throws \RuntimeException + */ + public function setImports(array $imports) + { + if ($this->namespaces) { + throw new \RuntimeException('You must either use addNamespace(), or setImports(), but not both.'); + } + + $this->imports = $imports; + } + + /** + * Sets current target context as bitmask. + * + * @param integer $target + * + * @return void + */ + public function setTarget($target) + { + $this->target = $target; + } + + /** + * Parses the given docblock string for annotations. + * + * @param string $input The docblock string to parse. + * @param string $context The parsing context. + * + * @return array Array of annotations. If no annotations are found, an empty array is returned. + */ + public function parse($input, $context = '') + { + $pos = $this->findInitialTokenPosition($input); + if ($pos === null) { + return array(); + } + + $this->context = $context; + + $this->lexer->setInput(trim(substr($input, $pos), '* /')); + $this->lexer->moveNext(); + + return $this->Annotations(); + } + + /** + * Finds the first valid annotation + * + * @param string $input The docblock string to parse + * + * @return int|null + */ + private function findInitialTokenPosition($input) + { + $pos = 0; + + // search for first valid annotation + while (($pos = strpos($input, '@', $pos)) !== false) { + // if the @ is preceded by a space or * it is valid + if ($pos === 0 || $input[$pos - 1] === ' ' || $input[$pos - 1] === '*') { + return $pos; + } + + $pos++; + } + + return null; + } + + /** + * Attempts to match the given token with the current lookahead token. + * If they match, updates the lookahead token; otherwise raises a syntax error. + * + * @param integer $token Type of token. + * + * @return boolean True if tokens match; false otherwise. + */ + private function match($token) + { + if ( ! $this->lexer->isNextToken($token) ) { + $this->syntaxError($this->lexer->getLiteral($token)); + } + + return $this->lexer->moveNext(); + } + + /** + * Attempts to match the current lookahead token with any of the given tokens. + * + * If any of them matches, this method updates the lookahead token; otherwise + * a syntax error is raised. + * + * @param array $tokens + * + * @return boolean + */ + private function matchAny(array $tokens) + { + if ( ! $this->lexer->isNextTokenAny($tokens)) { + $this->syntaxError(implode(' or ', array_map(array($this->lexer, 'getLiteral'), $tokens))); + } + + return $this->lexer->moveNext(); + } + + /** + * Generates a new syntax error. + * + * @param string $expected Expected string. + * @param array|null $token Optional token. + * + * @return void + * + * @throws AnnotationException + */ + private function syntaxError($expected, $token = null) + { + if ($token === null) { + $token = $this->lexer->lookahead; + } + + $message = sprintf('Expected %s, got ', $expected); + $message .= ($this->lexer->lookahead === null) + ? 'end of string' + : sprintf("'%s' at position %s", $token['value'], $token['position']); + + if (strlen($this->context)) { + $message .= ' in ' . $this->context; + } + + $message .= '.'; + + throw AnnotationException::syntaxError($message); + } + + /** + * Attempts to check if a class exists or not. This never goes through the PHP autoloading mechanism + * but uses the {@link AnnotationRegistry} to load classes. + * + * @param string $fqcn + * + * @return boolean + */ + private function classExists($fqcn) + { + if (isset($this->classExists[$fqcn])) { + return $this->classExists[$fqcn]; + } + + // first check if the class already exists, maybe loaded through another AnnotationReader + if (class_exists($fqcn, false)) { + return $this->classExists[$fqcn] = true; + } + + // final check, does this class exist? + return $this->classExists[$fqcn] = AnnotationRegistry::loadAnnotationClass($fqcn); + } + + /** + * Collects parsing metadata for a given annotation class + * + * @param string $name The annotation name + * + * @return void + */ + private function collectAnnotationMetadata($name) + { + if (self::$metadataParser === null) { + self::$metadataParser = new self(); + + self::$metadataParser->setIgnoreNotImportedAnnotations(true); + self::$metadataParser->setIgnoredAnnotationNames($this->ignoredAnnotationNames); + self::$metadataParser->setImports(array( + 'enum' => 'Doctrine\Common\Annotations\Annotation\Enum', + 'target' => 'Doctrine\Common\Annotations\Annotation\Target', + 'attribute' => 'Doctrine\Common\Annotations\Annotation\Attribute', + 'attributes' => 'Doctrine\Common\Annotations\Annotation\Attributes' + )); + + AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Enum.php'); + AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Target.php'); + AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Attribute.php'); + AnnotationRegistry::registerFile(__DIR__ . '/Annotation/Attributes.php'); + } + + $class = new \ReflectionClass($name); + $docComment = $class->getDocComment(); + + // Sets default values for annotation metadata + $metadata = array( + 'default_property' => null, + 'has_constructor' => (null !== $constructor = $class->getConstructor()) && $constructor->getNumberOfParameters() > 0, + 'properties' => array(), + 'property_types' => array(), + 'attribute_types' => array(), + 'targets_literal' => null, + 'targets' => Target::TARGET_ALL, + 'is_annotation' => false !== strpos($docComment, '@Annotation'), + ); + + // verify that the class is really meant to be an annotation + if ($metadata['is_annotation']) { + self::$metadataParser->setTarget(Target::TARGET_CLASS); + + foreach (self::$metadataParser->parse($docComment, 'class @' . $name) as $annotation) { + if ($annotation instanceof Target) { + $metadata['targets'] = $annotation->targets; + $metadata['targets_literal'] = $annotation->literal; + + continue; + } + + if ($annotation instanceof Attributes) { + foreach ($annotation->value as $attribute) { + $this->collectAttributeTypeMetadata($metadata, $attribute); + } + } + } + + // if not has a constructor will inject values into public properties + if (false === $metadata['has_constructor']) { + // collect all public properties + foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) { + $metadata['properties'][$property->name] = $property->name; + + if (false === ($propertyComment = $property->getDocComment())) { + continue; + } + + $attribute = new Attribute(); + + $attribute->required = (false !== strpos($propertyComment, '@Required')); + $attribute->name = $property->name; + $attribute->type = (false !== strpos($propertyComment, '@var') && preg_match('/@var\s+([^\s]+)/',$propertyComment, $matches)) + ? $matches[1] + : 'mixed'; + + $this->collectAttributeTypeMetadata($metadata, $attribute); + + // checks if the property has @Enum + if (false !== strpos($propertyComment, '@Enum')) { + $context = 'property ' . $class->name . "::\$" . $property->name; + + self::$metadataParser->setTarget(Target::TARGET_PROPERTY); + + foreach (self::$metadataParser->parse($propertyComment, $context) as $annotation) { + if ( ! $annotation instanceof Enum) { + continue; + } + + $metadata['enum'][$property->name]['value'] = $annotation->value; + $metadata['enum'][$property->name]['literal'] = ( ! empty($annotation->literal)) + ? $annotation->literal + : $annotation->value; + } + } + } + + // choose the first property as default property + $metadata['default_property'] = reset($metadata['properties']); + } + } + + self::$annotationMetadata[$name] = $metadata; + } + + /** + * Collects parsing metadata for a given attribute. + * + * @param array $metadata + * @param Attribute $attribute + * + * @return void + */ + private function collectAttributeTypeMetadata(&$metadata, Attribute $attribute) + { + // handle internal type declaration + $type = isset(self::$typeMap[$attribute->type]) + ? self::$typeMap[$attribute->type] + : $attribute->type; + + // handle the case if the property type is mixed + if ('mixed' === $type) { + return; + } + + // Evaluate type + switch (true) { + // Checks if the property has array + case (false !== $pos = strpos($type, '<')): + $arrayType = substr($type, $pos + 1, -1); + $type = 'array'; + + if (isset(self::$typeMap[$arrayType])) { + $arrayType = self::$typeMap[$arrayType]; + } + + $metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType; + break; + + // Checks if the property has type[] + case (false !== $pos = strrpos($type, '[')): + $arrayType = substr($type, 0, $pos); + $type = 'array'; + + if (isset(self::$typeMap[$arrayType])) { + $arrayType = self::$typeMap[$arrayType]; + } + + $metadata['attribute_types'][$attribute->name]['array_type'] = $arrayType; + break; + } + + $metadata['attribute_types'][$attribute->name]['type'] = $type; + $metadata['attribute_types'][$attribute->name]['value'] = $attribute->type; + $metadata['attribute_types'][$attribute->name]['required'] = $attribute->required; + } + + /** + * Annotations ::= Annotation {[ "*" ]* [Annotation]}* + * + * @return array + */ + private function Annotations() + { + $annotations = array(); + + while (null !== $this->lexer->lookahead) { + if (DocLexer::T_AT !== $this->lexer->lookahead['type']) { + $this->lexer->moveNext(); + continue; + } + + // make sure the @ is preceded by non-catchable pattern + if (null !== $this->lexer->token && $this->lexer->lookahead['position'] === $this->lexer->token['position'] + strlen($this->lexer->token['value'])) { + $this->lexer->moveNext(); + continue; + } + + // make sure the @ is followed by either a namespace separator, or + // an identifier token + if ((null === $peek = $this->lexer->glimpse()) + || (DocLexer::T_NAMESPACE_SEPARATOR !== $peek['type'] && !in_array($peek['type'], self::$classIdentifiers, true)) + || $peek['position'] !== $this->lexer->lookahead['position'] + 1) { + $this->lexer->moveNext(); + continue; + } + + $this->isNestedAnnotation = false; + if (false !== $annot = $this->Annotation()) { + $annotations[] = $annot; + } + } + + return $annotations; + } + + /** + * Annotation ::= "@" AnnotationName MethodCall + * AnnotationName ::= QualifiedName | SimpleName + * QualifiedName ::= NameSpacePart "\" {NameSpacePart "\"}* SimpleName + * NameSpacePart ::= identifier | null | false | true + * SimpleName ::= identifier | null | false | true + * + * @return mixed False if it is not a valid annotation. + * + * @throws AnnotationException + */ + private function Annotation() + { + $this->match(DocLexer::T_AT); + + // check if we have an annotation + $name = $this->Identifier(); + + // only process names which are not fully qualified, yet + // fully qualified names must start with a \ + $originalName = $name; + + if ('\\' !== $name[0]) { + $alias = (false === $pos = strpos($name, '\\'))? $name : substr($name, 0, $pos); + $found = false; + + if ($this->namespaces) { + foreach ($this->namespaces as $namespace) { + if ($this->classExists($namespace.'\\'.$name)) { + $name = $namespace.'\\'.$name; + $found = true; + break; + } + } + } elseif (isset($this->imports[$loweredAlias = strtolower($alias)])) { + $found = true; + $name = (false !== $pos) + ? $this->imports[$loweredAlias] . substr($name, $pos) + : $this->imports[$loweredAlias]; + } elseif ( ! isset($this->ignoredAnnotationNames[$name]) + && isset($this->imports['__NAMESPACE__']) + && $this->classExists($this->imports['__NAMESPACE__'] . '\\' . $name) + ) { + $name = $this->imports['__NAMESPACE__'].'\\'.$name; + $found = true; + } elseif (! isset($this->ignoredAnnotationNames[$name]) && $this->classExists($name)) { + $found = true; + } + + if ( ! $found) { + if ($this->ignoreNotImportedAnnotations || isset($this->ignoredAnnotationNames[$name])) { + return false; + } + + throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s was never imported. Did you maybe forget to add a "use" statement for this annotation?', $name, $this->context)); + } + } + + if ( ! $this->classExists($name)) { + throw AnnotationException::semanticalError(sprintf('The annotation "@%s" in %s does not exist, or could not be auto-loaded.', $name, $this->context)); + } + + // at this point, $name contains the fully qualified class name of the + // annotation, and it is also guaranteed that this class exists, and + // that it is loaded + + + // collects the metadata annotation only if there is not yet + if ( ! isset(self::$annotationMetadata[$name])) { + $this->collectAnnotationMetadata($name); + } + + // verify that the class is really meant to be an annotation and not just any ordinary class + if (self::$annotationMetadata[$name]['is_annotation'] === false) { + if (isset($this->ignoredAnnotationNames[$originalName])) { + return false; + } + + 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)); + } + + //if target is nested annotation + $target = $this->isNestedAnnotation ? Target::TARGET_ANNOTATION : $this->target; + + // Next will be nested + $this->isNestedAnnotation = true; + + //if annotation does not support current target + if (0 === (self::$annotationMetadata[$name]['targets'] & $target) && $target) { + throw AnnotationException::semanticalError( + sprintf('Annotation @%s is not allowed to be declared on %s. You may only use this annotation on these code elements: %s.', + $originalName, $this->context, self::$annotationMetadata[$name]['targets_literal']) + ); + } + + $values = $this->MethodCall(); + + if (isset(self::$annotationMetadata[$name]['enum'])) { + // checks all declared attributes + foreach (self::$annotationMetadata[$name]['enum'] as $property => $enum) { + // checks if the attribute is a valid enumerator + if (isset($values[$property]) && ! in_array($values[$property], $enum['value'])) { + throw AnnotationException::enumeratorError($property, $name, $this->context, $enum['literal'], $values[$property]); + } + } + } + + // checks all declared attributes + foreach (self::$annotationMetadata[$name]['attribute_types'] as $property => $type) { + if ($property === self::$annotationMetadata[$name]['default_property'] + && !isset($values[$property]) && isset($values['value'])) { + $property = 'value'; + } + + // handle a not given attribute or null value + if (!isset($values[$property])) { + if ($type['required']) { + throw AnnotationException::requiredError($property, $originalName, $this->context, 'a(n) '.$type['value']); + } + + continue; + } + + if ($type['type'] === 'array') { + // handle the case of a single value + if ( ! is_array($values[$property])) { + $values[$property] = array($values[$property]); + } + + // checks if the attribute has array type declaration, such as "array" + if (isset($type['array_type'])) { + foreach ($values[$property] as $item) { + if (gettype($item) !== $type['array_type'] && !$item instanceof $type['array_type']) { + throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'either a(n) '.$type['array_type'].', or an array of '.$type['array_type'].'s', $item); + } + } + } + } elseif (gettype($values[$property]) !== $type['type'] && !$values[$property] instanceof $type['type']) { + throw AnnotationException::attributeTypeError($property, $originalName, $this->context, 'a(n) '.$type['value'], $values[$property]); + } + } + + // check if the annotation expects values via the constructor, + // or directly injected into public properties + if (self::$annotationMetadata[$name]['has_constructor'] === true) { + return new $name($values); + } + + $instance = new $name(); + + foreach ($values as $property => $value) { + if (!isset(self::$annotationMetadata[$name]['properties'][$property])) { + if ('value' !== $property) { + throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not have a property named "%s". Available properties: %s', $originalName, $this->context, $property, implode(', ', self::$annotationMetadata[$name]['properties']))); + } + + // handle the case if the property has no annotations + if ( ! $property = self::$annotationMetadata[$name]['default_property']) { + throw AnnotationException::creationError(sprintf('The annotation @%s declared on %s does not accept any values, but got %s.', $originalName, $this->context, json_encode($values))); + } + } + + $instance->{$property} = $value; + } + + return $instance; + } + + /** + * MethodCall ::= ["(" [Values] ")"] + * + * @return array + */ + private function MethodCall() + { + $values = array(); + + if ( ! $this->lexer->isNextToken(DocLexer::T_OPEN_PARENTHESIS)) { + return $values; + } + + $this->match(DocLexer::T_OPEN_PARENTHESIS); + + if ( ! $this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) { + $values = $this->Values(); + } + + $this->match(DocLexer::T_CLOSE_PARENTHESIS); + + return $values; + } + + /** + * Values ::= Array | Value {"," Value}* [","] + * + * @return array + */ + private function Values() + { + $values = array($this->Value()); + + while ($this->lexer->isNextToken(DocLexer::T_COMMA)) { + $this->match(DocLexer::T_COMMA); + + if ($this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) { + break; + } + + $token = $this->lexer->lookahead; + $value = $this->Value(); + + if ( ! is_object($value) && ! is_array($value)) { + $this->syntaxError('Value', $token); + } + + $values[] = $value; + } + + foreach ($values as $k => $value) { + if (is_object($value) && $value instanceof \stdClass) { + $values[$value->name] = $value->value; + } else if ( ! isset($values['value'])){ + $values['value'] = $value; + } else { + if ( ! is_array($values['value'])) { + $values['value'] = array($values['value']); + } + + $values['value'][] = $value; + } + + unset($values[$k]); + } + + return $values; + } + + /** + * Constant ::= integer | string | float | boolean + * + * @return mixed + * + * @throws AnnotationException + */ + private function Constant() + { + $identifier = $this->Identifier(); + + if ( ! defined($identifier) && false !== strpos($identifier, '::') && '\\' !== $identifier[0]) { + list($className, $const) = explode('::', $identifier); + + $alias = (false === $pos = strpos($className, '\\')) ? $className : substr($className, 0, $pos); + $found = false; + + switch (true) { + case !empty ($this->namespaces): + foreach ($this->namespaces as $ns) { + if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) { + $className = $ns.'\\'.$className; + $found = true; + break; + } + } + break; + + case isset($this->imports[$loweredAlias = strtolower($alias)]): + $found = true; + $className = (false !== $pos) + ? $this->imports[$loweredAlias] . substr($className, $pos) + : $this->imports[$loweredAlias]; + break; + + default: + if(isset($this->imports['__NAMESPACE__'])) { + $ns = $this->imports['__NAMESPACE__']; + + if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) { + $className = $ns.'\\'.$className; + $found = true; + } + } + break; + } + + if ($found) { + $identifier = $className . '::' . $const; + } + } + + // checks if identifier ends with ::class, \strlen('::class') === 7 + $classPos = stripos($identifier, '::class'); + if ($classPos === strlen($identifier) - 7) { + return substr($identifier, 0, $classPos); + } + + if (!defined($identifier)) { + throw AnnotationException::semanticalErrorConstants($identifier, $this->context); + } + + return constant($identifier); + } + + /** + * Identifier ::= string + * + * @return string + */ + private function Identifier() + { + // check if we have an annotation + if ( ! $this->lexer->isNextTokenAny(self::$classIdentifiers)) { + $this->syntaxError('namespace separator or identifier'); + } + + $this->lexer->moveNext(); + + $className = $this->lexer->token['value']; + + while ($this->lexer->lookahead['position'] === ($this->lexer->token['position'] + strlen($this->lexer->token['value'])) + && $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)) { + + $this->match(DocLexer::T_NAMESPACE_SEPARATOR); + $this->matchAny(self::$classIdentifiers); + + $className .= '\\' . $this->lexer->token['value']; + } + + return $className; + } + + /** + * Value ::= PlainValue | FieldAssignment + * + * @return mixed + */ + private function Value() + { + $peek = $this->lexer->glimpse(); + + if (DocLexer::T_EQUALS === $peek['type']) { + return $this->FieldAssignment(); + } + + return $this->PlainValue(); + } + + /** + * PlainValue ::= integer | string | float | boolean | Array | Annotation + * + * @return mixed + */ + private function PlainValue() + { + if ($this->lexer->isNextToken(DocLexer::T_OPEN_CURLY_BRACES)) { + return $this->Arrayx(); + } + + if ($this->lexer->isNextToken(DocLexer::T_AT)) { + return $this->Annotation(); + } + + if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) { + return $this->Constant(); + } + + switch ($this->lexer->lookahead['type']) { + case DocLexer::T_STRING: + $this->match(DocLexer::T_STRING); + return $this->lexer->token['value']; + + case DocLexer::T_INTEGER: + $this->match(DocLexer::T_INTEGER); + return (int)$this->lexer->token['value']; + + case DocLexer::T_FLOAT: + $this->match(DocLexer::T_FLOAT); + return (float)$this->lexer->token['value']; + + case DocLexer::T_TRUE: + $this->match(DocLexer::T_TRUE); + return true; + + case DocLexer::T_FALSE: + $this->match(DocLexer::T_FALSE); + return false; + + case DocLexer::T_NULL: + $this->match(DocLexer::T_NULL); + return null; + + default: + $this->syntaxError('PlainValue'); + } + } + + /** + * FieldAssignment ::= FieldName "=" PlainValue + * FieldName ::= identifier + * + * @return array + */ + private function FieldAssignment() + { + $this->match(DocLexer::T_IDENTIFIER); + $fieldName = $this->lexer->token['value']; + + $this->match(DocLexer::T_EQUALS); + + $item = new \stdClass(); + $item->name = $fieldName; + $item->value = $this->PlainValue(); + + return $item; + } + + /** + * Array ::= "{" ArrayEntry {"," ArrayEntry}* [","] "}" + * + * @return array + */ + private function Arrayx() + { + $array = $values = array(); + + $this->match(DocLexer::T_OPEN_CURLY_BRACES); + + // If the array is empty, stop parsing and return. + if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) { + $this->match(DocLexer::T_CLOSE_CURLY_BRACES); + + return $array; + } + + $values[] = $this->ArrayEntry(); + + while ($this->lexer->isNextToken(DocLexer::T_COMMA)) { + $this->match(DocLexer::T_COMMA); + + // optional trailing comma + if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) { + break; + } + + $values[] = $this->ArrayEntry(); + } + + $this->match(DocLexer::T_CLOSE_CURLY_BRACES); + + foreach ($values as $value) { + list ($key, $val) = $value; + + if ($key !== null) { + $array[$key] = $val; + } else { + $array[] = $val; + } + } + + return $array; + } + + /** + * ArrayEntry ::= Value | KeyValuePair + * KeyValuePair ::= Key ("=" | ":") PlainValue | Constant + * Key ::= string | integer | Constant + * + * @return array + */ + private function ArrayEntry() + { + $peek = $this->lexer->glimpse(); + + if (DocLexer::T_EQUALS === $peek['type'] + || DocLexer::T_COLON === $peek['type']) { + + if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) { + $key = $this->Constant(); + } else { + $this->matchAny(array(DocLexer::T_INTEGER, DocLexer::T_STRING)); + $key = $this->lexer->token['value']; + } + + $this->matchAny(array(DocLexer::T_EQUALS, DocLexer::T_COLON)); + + return array($key, $this->PlainValue()); + } + + return array(null, $this->Value()); + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/FileCacheReader.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/FileCacheReader.php new file mode 100644 index 0000000..e9b29af --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/FileCacheReader.php @@ -0,0 +1,252 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +/** + * File cache reader for annotations. + * + * @author Johannes M. Schmitt + * @author Benjamin Eberlei + */ +class FileCacheReader implements Reader +{ + /** + * @var Reader + */ + private $reader; + + /** + * @var string + */ + private $dir; + + /** + * @var bool + */ + private $debug; + + /** + * @var array + */ + private $loadedAnnotations = array(); + + /** + * @var array + */ + private $classNameHashes = array(); + + /** + * Constructor. + * + * @param Reader $reader + * @param string $cacheDir + * @param boolean $debug + * + * @throws \InvalidArgumentException + */ + public function __construct(Reader $reader, $cacheDir, $debug = false) + { + $this->reader = $reader; + if (!is_dir($cacheDir) && !@mkdir($cacheDir, 0777, true)) { + throw new \InvalidArgumentException(sprintf('The directory "%s" does not exist and could not be created.', $cacheDir)); + } + + $this->dir = rtrim($cacheDir, '\\/'); + $this->debug = $debug; + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotations(\ReflectionClass $class) + { + if ( ! isset($this->classNameHashes[$class->name])) { + $this->classNameHashes[$class->name] = sha1($class->name); + } + $key = $this->classNameHashes[$class->name]; + + if (isset($this->loadedAnnotations[$key])) { + return $this->loadedAnnotations[$key]; + } + + $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php'; + if (!is_file($path)) { + $annot = $this->reader->getClassAnnotations($class); + $this->saveCacheFile($path, $annot); + return $this->loadedAnnotations[$key] = $annot; + } + + if ($this->debug + && (false !== $filename = $class->getFilename()) + && filemtime($path) < filemtime($filename)) { + @unlink($path); + + $annot = $this->reader->getClassAnnotations($class); + $this->saveCacheFile($path, $annot); + return $this->loadedAnnotations[$key] = $annot; + } + + return $this->loadedAnnotations[$key] = include $path; + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotations(\ReflectionProperty $property) + { + $class = $property->getDeclaringClass(); + if ( ! isset($this->classNameHashes[$class->name])) { + $this->classNameHashes[$class->name] = sha1($class->name); + } + $key = $this->classNameHashes[$class->name].'$'.$property->getName(); + + if (isset($this->loadedAnnotations[$key])) { + return $this->loadedAnnotations[$key]; + } + + $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php'; + if (!is_file($path)) { + $annot = $this->reader->getPropertyAnnotations($property); + $this->saveCacheFile($path, $annot); + return $this->loadedAnnotations[$key] = $annot; + } + + if ($this->debug + && (false !== $filename = $class->getFilename()) + && filemtime($path) < filemtime($filename)) { + @unlink($path); + + $annot = $this->reader->getPropertyAnnotations($property); + $this->saveCacheFile($path, $annot); + return $this->loadedAnnotations[$key] = $annot; + } + + return $this->loadedAnnotations[$key] = include $path; + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotations(\ReflectionMethod $method) + { + $class = $method->getDeclaringClass(); + if ( ! isset($this->classNameHashes[$class->name])) { + $this->classNameHashes[$class->name] = sha1($class->name); + } + $key = $this->classNameHashes[$class->name].'#'.$method->getName(); + + if (isset($this->loadedAnnotations[$key])) { + return $this->loadedAnnotations[$key]; + } + + $path = $this->dir.'/'.strtr($key, '\\', '-').'.cache.php'; + if (!is_file($path)) { + $annot = $this->reader->getMethodAnnotations($method); + $this->saveCacheFile($path, $annot); + return $this->loadedAnnotations[$key] = $annot; + } + + if ($this->debug + && (false !== $filename = $class->getFilename()) + && filemtime($path) < filemtime($filename)) { + @unlink($path); + + $annot = $this->reader->getMethodAnnotations($method); + $this->saveCacheFile($path, $annot); + return $this->loadedAnnotations[$key] = $annot; + } + + return $this->loadedAnnotations[$key] = include $path; + } + + /** + * Saves the cache file. + * + * @param string $path + * @param mixed $data + * + * @return void + */ + private function saveCacheFile($path, $data) + { + if (!is_writable($this->dir)) { + throw new \InvalidArgumentException(sprintf('The directory "%s" is not writable. Both, the webserver and the console user need access. You can manage access rights for multiple users with "chmod +a". If your system does not support this, check out the acl package.', $this->dir)); + } + file_put_contents($path, 'getClassAnnotations($class); + + foreach ($annotations as $annotation) { + if ($annotation instanceof $annotationName) { + return $annotation; + } + } + + return null; + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotation(\ReflectionMethod $method, $annotationName) + { + $annotations = $this->getMethodAnnotations($method); + + foreach ($annotations as $annotation) { + if ($annotation instanceof $annotationName) { + return $annotation; + } + } + + return null; + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName) + { + $annotations = $this->getPropertyAnnotations($property); + + foreach ($annotations as $annotation) { + if ($annotation instanceof $annotationName) { + return $annotation; + } + } + + return null; + } + + /** + * Clears loaded annotations. + * + * @return void + */ + public function clearLoadedAnnotations() + { + $this->loadedAnnotations = array(); + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/IndexedReader.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/IndexedReader.php new file mode 100644 index 0000000..bf7fbdc --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/IndexedReader.php @@ -0,0 +1,119 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +/** + * Allows the reader to be used in-place of Doctrine's reader. + * + * @author Johannes M. Schmitt + */ +class IndexedReader implements Reader +{ + /** + * @var Reader + */ + private $delegate; + + /** + * Constructor. + * + * @param Reader $reader + */ + public function __construct(Reader $reader) + { + $this->delegate = $reader; + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotations(\ReflectionClass $class) + { + $annotations = array(); + foreach ($this->delegate->getClassAnnotations($class) as $annot) { + $annotations[get_class($annot)] = $annot; + } + + return $annotations; + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotation(\ReflectionClass $class, $annotation) + { + return $this->delegate->getClassAnnotation($class, $annotation); + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotations(\ReflectionMethod $method) + { + $annotations = array(); + foreach ($this->delegate->getMethodAnnotations($method) as $annot) { + $annotations[get_class($annot)] = $annot; + } + + return $annotations; + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotation(\ReflectionMethod $method, $annotation) + { + return $this->delegate->getMethodAnnotation($method, $annotation); + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotations(\ReflectionProperty $property) + { + $annotations = array(); + foreach ($this->delegate->getPropertyAnnotations($property) as $annot) { + $annotations[get_class($annot)] = $annot; + } + + return $annotations; + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotation(\ReflectionProperty $property, $annotation) + { + return $this->delegate->getPropertyAnnotation($property, $annotation); + } + + /** + * Proxies all methods to the delegate. + * + * @param string $method + * @param array $args + * + * @return mixed + */ + public function __call($method, $args) + { + return call_user_func_array(array($this->delegate, $method), $args); + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/PhpParser.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/PhpParser.php new file mode 100644 index 0000000..21ee7cc --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/PhpParser.php @@ -0,0 +1,91 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +use SplFileObject; + +/** + * Parses a file for namespaces/use/class declarations. + * + * @author Fabien Potencier + * @author Christian Kaps + */ +final class PhpParser +{ + /** + * Parses a class. + * + * @param \ReflectionClass $class A ReflectionClass object. + * + * @return array A list with use statements in the form (Alias => FQN). + */ + public function parseClass(\ReflectionClass $class) + { + if (method_exists($class, 'getUseStatements')) { + return $class->getUseStatements(); + } + + if (false === $filename = $class->getFilename()) { + return array(); + } + + $content = $this->getFileContent($filename, $class->getStartLine()); + + if (null === $content) { + return array(); + } + + $namespace = preg_quote($class->getNamespaceName()); + $content = preg_replace('/^.*?(\bnamespace\s+' . $namespace . '\s*[;{].*)$/s', '\\1', $content); + $tokenizer = new TokenParser('parseUseStatements($class->getNamespaceName()); + + return $statements; + } + + /** + * Gets the content of the file right up to the given line number. + * + * @param string $filename The name of the file to load. + * @param integer $lineNumber The number of lines to read from file. + * + * @return string The content of the file. + */ + private function getFileContent($filename, $lineNumber) + { + if ( ! is_file($filename)) { + return null; + } + + $content = ''; + $lineCnt = 0; + $file = new SplFileObject($filename); + while (!$file->eof()) { + if ($lineCnt++ == $lineNumber) { + break; + } + + $content .= $file->fgets(); + } + + return $content; + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Reader.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Reader.php new file mode 100644 index 0000000..4774f87 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/Reader.php @@ -0,0 +1,89 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +/** + * Interface for annotation readers. + * + * @author Johannes M. Schmitt + */ +interface Reader +{ + /** + * Gets the annotations applied to a class. + * + * @param \ReflectionClass $class The ReflectionClass of the class from which + * the class annotations should be read. + * + * @return array An array of Annotations. + */ + function getClassAnnotations(\ReflectionClass $class); + + /** + * Gets a class annotation. + * + * @param \ReflectionClass $class The ReflectionClass of the class from which + * the class annotations should be read. + * @param string $annotationName The name of the annotation. + * + * @return object|null The Annotation or NULL, if the requested annotation does not exist. + */ + function getClassAnnotation(\ReflectionClass $class, $annotationName); + + /** + * Gets the annotations applied to a method. + * + * @param \ReflectionMethod $method The ReflectionMethod of the method from which + * the annotations should be read. + * + * @return array An array of Annotations. + */ + function getMethodAnnotations(\ReflectionMethod $method); + + /** + * Gets a method annotation. + * + * @param \ReflectionMethod $method The ReflectionMethod to read the annotations from. + * @param string $annotationName The name of the annotation. + * + * @return object|null The Annotation or NULL, if the requested annotation does not exist. + */ + function getMethodAnnotation(\ReflectionMethod $method, $annotationName); + + /** + * Gets the annotations applied to a property. + * + * @param \ReflectionProperty $property The ReflectionProperty of the property + * from which the annotations should be read. + * + * @return array An array of Annotations. + */ + function getPropertyAnnotations(\ReflectionProperty $property); + + /** + * Gets a property annotation. + * + * @param \ReflectionProperty $property The ReflectionProperty to read the annotations from. + * @param string $annotationName The name of the annotation. + * + * @return object|null The Annotation or NULL, if the requested annotation does not exist. + */ + function getPropertyAnnotation(\ReflectionProperty $property, $annotationName); +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php new file mode 100644 index 0000000..d71ad01 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/SimpleAnnotationReader.php @@ -0,0 +1,127 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +/** + * Simple Annotation Reader. + * + * This annotation reader is intended to be used in projects where you have + * full-control over all annotations that are available. + * + * @since 2.2 + * @author Johannes M. Schmitt + * @author Fabio B. Silva + */ +class SimpleAnnotationReader implements Reader +{ + /** + * @var DocParser + */ + protected $parser; + + /** + * Constructor. + * + * Initializes a new SimpleAnnotationReader. + */ + public function __construct() + { + $this->parser = new DocParser(); + $this->parser->setIgnoreNotImportedAnnotations(true); + } + + /** + * Adds a namespace in which we will look for annotations. + * + * @param string $namespace + * + * @return void + */ + public function addNamespace($namespace) + { + $this->parser->addNamespace($namespace); + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotations(\ReflectionClass $class) + { + return $this->parser->parse($class->getDocComment(), 'class '.$class->getName()); + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotations(\ReflectionMethod $method) + { + return $this->parser->parse($method->getDocComment(), 'method '.$method->getDeclaringClass()->name.'::'.$method->getName().'()'); + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotations(\ReflectionProperty $property) + { + return $this->parser->parse($property->getDocComment(), 'property '.$property->getDeclaringClass()->name.'::$'.$property->getName()); + } + + /** + * {@inheritDoc} + */ + public function getClassAnnotation(\ReflectionClass $class, $annotationName) + { + foreach ($this->getClassAnnotations($class) as $annot) { + if ($annot instanceof $annotationName) { + return $annot; + } + } + + return null; + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotation(\ReflectionMethod $method, $annotationName) + { + foreach ($this->getMethodAnnotations($method) as $annot) { + if ($annot instanceof $annotationName) { + return $annot; + } + } + + return null; + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotation(\ReflectionProperty $property, $annotationName) + { + foreach ($this->getPropertyAnnotations($property) as $annot) { + if ($annot instanceof $annotationName) { + return $annot; + } + } + + return null; + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/TokenParser.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/TokenParser.php new file mode 100644 index 0000000..9bdccce --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Annotations/TokenParser.php @@ -0,0 +1,187 @@ +. + */ + +namespace Doctrine\Common\Annotations; + +/** + * Parses a file for namespaces/use/class declarations. + * + * @author Fabien Potencier + * @author Christian Kaps + */ +class TokenParser +{ + /** + * The token list. + * + * @var array + */ + private $tokens; + + /** + * The number of tokens. + * + * @var int + */ + private $numTokens; + + /** + * The current array pointer. + * + * @var int + */ + private $pointer = 0; + + /** + * @param string $contents + */ + public function __construct($contents) + { + $this->tokens = token_get_all($contents); + + // The PHP parser sets internal compiler globals for certain things. Annoyingly, the last docblock comment it + // saw gets stored in doc_comment. When it comes to compile the next thing to be include()d this stored + // doc_comment becomes owned by the first thing the compiler sees in the file that it considers might have a + // docblock. If the first thing in the file is a class without a doc block this would cause calls to + // getDocBlock() on said class to return our long lost doc_comment. Argh. + // To workaround, cause the parser to parse an empty docblock. Sure getDocBlock() will return this, but at least + // it's harmless to us. + token_get_all("numTokens = count($this->tokens); + } + + /** + * Gets the next non whitespace and non comment token. + * + * @param boolean $docCommentIsComment If TRUE then a doc comment is considered a comment and skipped. + * If FALSE then only whitespace and normal comments are skipped. + * + * @return array|null The token if exists, null otherwise. + */ + public function next($docCommentIsComment = TRUE) + { + for ($i = $this->pointer; $i < $this->numTokens; $i++) { + $this->pointer++; + if ($this->tokens[$i][0] === T_WHITESPACE || + $this->tokens[$i][0] === T_COMMENT || + ($docCommentIsComment && $this->tokens[$i][0] === T_DOC_COMMENT)) { + + continue; + } + + return $this->tokens[$i]; + } + + return null; + } + + /** + * Parses a single use statement. + * + * @return array A list with all found class names for a use statement. + */ + public function parseUseStatement() + { + $class = ''; + $alias = ''; + $statements = array(); + $explicitAlias = false; + while (($token = $this->next())) { + $isNameToken = $token[0] === T_STRING || $token[0] === T_NS_SEPARATOR; + if (!$explicitAlias && $isNameToken) { + $class .= $token[1]; + $alias = $token[1]; + } else if ($explicitAlias && $isNameToken) { + $alias .= $token[1]; + } else if ($token[0] === T_AS) { + $explicitAlias = true; + $alias = ''; + } else if ($token === ',') { + $statements[strtolower($alias)] = $class; + $class = ''; + $alias = ''; + $explicitAlias = false; + } else if ($token === ';') { + $statements[strtolower($alias)] = $class; + break; + } else { + break; + } + } + + return $statements; + } + + /** + * Gets all use statements. + * + * @param string $namespaceName The namespace name of the reflected class. + * + * @return array A list with all found use statements. + */ + public function parseUseStatements($namespaceName) + { + $statements = array(); + while (($token = $this->next())) { + if ($token[0] === T_USE) { + $statements = array_merge($statements, $this->parseUseStatement()); + continue; + } + if ($token[0] !== T_NAMESPACE || $this->parseNamespace() != $namespaceName) { + continue; + } + + // Get fresh array for new namespace. This is to prevent the parser to collect the use statements + // for a previous namespace with the same name. This is the case if a namespace is defined twice + // or if a namespace with the same name is commented out. + $statements = array(); + } + + return $statements; + } + + /** + * Gets the namespace. + * + * @return string The found namespace. + */ + public function parseNamespace() + { + $name = ''; + while (($token = $this->next()) && ($token[0] === T_STRING || $token[0] === T_NS_SEPARATOR)) { + $name .= $token[1]; + } + + return $name; + } + + /** + * Gets the class name. + * + * @return string The found class name. + */ + public function parseClass() + { + // Namespaces and class names are tokenized the same: T_STRINGs + // separated by T_NS_SEPARATOR so we can use one function to provide + // both. + return $this->parseNamespace(); + } +} diff --git a/codes/agent/game-docker/api/lib/Doctrine/Common/Lexer/AbstractLexer.php b/codes/agent/game-docker/api/lib/Doctrine/Common/Lexer/AbstractLexer.php new file mode 100644 index 0000000..399a552 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Doctrine/Common/Lexer/AbstractLexer.php @@ -0,0 +1,327 @@ +. + */ + +namespace Doctrine\Common\Lexer; + +/** + * Base class for writing simple lexers, i.e. for creating small DSLs. + * + * @since 2.0 + * @author Guilherme Blanco + * @author Jonathan Wage + * @author Roman Borschel + */ +abstract class AbstractLexer +{ + /** + * Lexer original input string. + * + * @var string + */ + private $input; + + /** + * Array of scanned tokens. + * + * Each token is an associative array containing three items: + * - 'value' : the string value of the token in the input string + * - 'type' : the type of the token (identifier, numeric, string, input + * parameter, none) + * - 'position' : the position of the token in the input string + * + * @var array + */ + private $tokens = array(); + + /** + * Current lexer position in input string. + * + * @var integer + */ + private $position = 0; + + /** + * Current peek of current lexer position. + * + * @var integer + */ + private $peek = 0; + + /** + * The next token in the input. + * + * @var array + */ + public $lookahead; + + /** + * The last matched/seen token. + * + * @var array + */ + public $token; + + /** + * Sets the input data to be tokenized. + * + * The Lexer is immediately reset and the new input tokenized. + * Any unprocessed tokens from any previous input are lost. + * + * @param string $input The input to be tokenized. + * + * @return void + */ + public function setInput($input) + { + $this->input = $input; + $this->tokens = array(); + + $this->reset(); + $this->scan($input); + } + + /** + * Resets the lexer. + * + * @return void + */ + public function reset() + { + $this->lookahead = null; + $this->token = null; + $this->peek = 0; + $this->position = 0; + } + + /** + * Resets the peek pointer to 0. + * + * @return void + */ + public function resetPeek() + { + $this->peek = 0; + } + + /** + * Resets the lexer position on the input to the given position. + * + * @param integer $position Position to place the lexical scanner. + * + * @return void + */ + public function resetPosition($position = 0) + { + $this->position = $position; + } + + /** + * Retrieve the original lexer's input until a given position. + * + * @param integer $position + * + * @return string + */ + public function getInputUntilPosition($position) + { + return substr($this->input, 0, $position); + } + + /** + * Checks whether a given token matches the current lookahead. + * + * @param integer|string $token + * + * @return boolean + */ + public function isNextToken($token) + { + return null !== $this->lookahead && $this->lookahead['type'] === $token; + } + + /** + * Checks whether any of the given tokens matches the current lookahead. + * + * @param array $tokens + * + * @return boolean + */ + public function isNextTokenAny(array $tokens) + { + return null !== $this->lookahead && in_array($this->lookahead['type'], $tokens, true); + } + + /** + * Moves to the next token in the input string. + * + * @return boolean + */ + public function moveNext() + { + $this->peek = 0; + $this->token = $this->lookahead; + $this->lookahead = (isset($this->tokens[$this->position])) + ? $this->tokens[$this->position++] : null; + + return $this->lookahead !== null; + } + + /** + * Tells the lexer to skip input tokens until it sees a token with the given value. + * + * @param string $type The token type to skip until. + * + * @return void + */ + public function skipUntil($type) + { + while ($this->lookahead !== null && $this->lookahead['type'] !== $type) { + $this->moveNext(); + } + } + + /** + * Checks if given value is identical to the given token. + * + * @param mixed $value + * @param integer $token + * + * @return boolean + */ + public function isA($value, $token) + { + return $this->getType($value) === $token; + } + + /** + * Moves the lookahead token forward. + * + * @return array|null The next token or NULL if there are no more tokens ahead. + */ + public function peek() + { + if (isset($this->tokens[$this->position + $this->peek])) { + return $this->tokens[$this->position + $this->peek++]; + } else { + return null; + } + } + + /** + * Peeks at the next token, returns it and immediately resets the peek. + * + * @return array|null The next token or NULL if there are no more tokens ahead. + */ + public function glimpse() + { + $peek = $this->peek(); + $this->peek = 0; + return $peek; + } + + /** + * Scans the input string for tokens. + * + * @param string $input A query string. + * + * @return void + */ + protected function scan($input) + { + static $regex; + + if ( ! isset($regex)) { + $regex = sprintf( + '/(%s)|%s/%s', + implode(')|(', $this->getCatchablePatterns()), + implode('|', $this->getNonCatchablePatterns()), + $this->getModifiers() + ); + } + + $flags = PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE; + $matches = preg_split($regex, $input, -1, $flags); + + foreach ($matches as $match) { + // Must remain before 'value' assignment since it can change content + $type = $this->getType($match[0]); + + $this->tokens[] = array( + 'value' => $match[0], + 'type' => $type, + 'position' => $match[1], + ); + } + } + + /** + * Gets the literal for a given token. + * + * @param integer $token + * + * @return string + */ + public function getLiteral($token) + { + $className = get_class($this); + $reflClass = new \ReflectionClass($className); + $constants = $reflClass->getConstants(); + + foreach ($constants as $name => $value) { + if ($value === $token) { + return $className . '::' . $name; + } + } + + return $token; + } + + /** + * Regex modifiers + * + * @return string + */ + protected function getModifiers() + { + return 'i'; + } + + /** + * Lexical catchable patterns. + * + * @return array + */ + abstract protected function getCatchablePatterns(); + + /** + * Lexical non-catchable patterns. + * + * @return array + */ + abstract protected function getNonCatchablePatterns(); + + /** + * Retrieve token type. Also processes the token value if necessary. + * + * @param string $value + * + * @return integer + */ + abstract protected function getType(&$value); +} diff --git a/codes/agent/game-docker/api/lib/Peekmo/JsonPath/JsonPath.php b/codes/agent/game-docker/api/lib/Peekmo/JsonPath/JsonPath.php new file mode 100644 index 0000000..ab9c780 --- /dev/null +++ b/codes/agent/game-docker/api/lib/Peekmo/JsonPath/JsonPath.php @@ -0,0 +1,298 @@ +'); + + public function jsonPath(&$obj, $expr, $args = null, $create=false, $default=null) + { + if (is_object($obj)) { + throw new \Exception('You sent an object, not an array.'); + } + + $this->resultType = ($args ? $args['resultType'] : "VALUE"); + $x = $this->normalize($expr); + + $this->obj = $obj; + if ($expr && $obj!==null && ($this->resultType == "VALUE" || $this->resultType == "PATH")) { + $this->trace(preg_replace("/^\\$;/", "", $x), $obj, "$", $create, $default); + if (count($this->result)) { + return $this->result; + } + + return false; + } + } + + // normalize path expression + private function normalize($expression) + { + // Replaces filters by #0 #1... + $expression = preg_replace_callback( + array("/[\['](\??\(.*?\))[\]']/", "/\['(.*?)'\]/"), + array(&$this, "tempFilters"), + $expression + ); + + // ; separator between each elements + $expression = preg_replace( + array("/'?\.'?|\['?/", "/;;;|;;/", "/;$|'?\]|'$/"), + array(";", ";..;", ""), + $expression + ); + + // Restore filters + $expression = preg_replace_callback("/#([0-9]+)/", array(&$this, "restoreFilters"), $expression); + $this->result = array(); // result array was temporarily used as a buffer .. + return $expression; + } + + /** + * Pushs the filter into the list + * @param string $filter + * @return string + */ + private function tempFilters($filter) + { + $f = $filter[1]; + $elements = explode('\'', $f); + + // Hack to make "dot" works on filters + for ($i=0, $m=0; $i 0 && substr($elements[$i-1], 0, 1) == '\\') { + continue; + } + + $e = explode('.', $elements[$i]); + $str = ''; $first = true; + foreach ($e as $substr) { + if ($first) { + $str = $substr; + $first = false; + continue; + } + + $end = null; + if (false !== $pos = $this->strpos_array($substr, $this->keywords)) { + list($substr, $end) = array(substr($substr, 0, $pos), substr($substr, $pos, strlen($substr))); + } + + $str .= '[' . $substr . ']'; + if (null !== $end) { + $str .= $end; + } + } + $elements[$i] = $str; + } + + $m++; + } + + return "[#" . (array_push($this->result, implode('\'', $elements)) - 1) . "]"; + } + + /** + * Get a filter back + * @param string $filter + * @return mixed + */ + private function restoreFilters($filter) + { + return $this->result[$filter[1]]; + } + + /** + * Builds json path expression + * @param string $path + * @return string + */ + private function asPath($path) + { + $expr = explode(";", $path); + $fullPath = "$"; + for ($i = 1, $n = count($expr); $i < $n; $i++) { + $fullPath .= preg_match("/^[0-9*]+$/", $expr[$i]) ? ("[" . $expr[$i] . "]") : ("['" . $expr[$i] . "']"); + } + + return $fullPath; + } + + private function store($p, $v) + { + if ($p) { + array_push($this->result, ($this->resultType == "PATH" ? $this->asPath($p) : $v)); + } + + return !!$p; + } + + private function trace($expr, &$val, $path, $create=false, $default=null) + { + if ($expr !== "") { + $x = explode(";", $expr); + $loc = array_shift($x); + $x = implode(";", $x); + + if (is_array($val) && array_key_exists($loc, $val)) { + $this->trace($x, $val[$loc], $path . ";" . $loc, $create, $default); + } + else if ($loc == "*") { + $this->walk($loc, $x, $val, $path, array(&$this, "_callback_03")); + } + else if ($loc === "..") { + $this->trace($x, $val, $path,$create, $default); + $this->walk($loc, $x, $val, $path, array(&$this, "_callback_04")); + } + else if (preg_match("/^\(.*?\)$/", $loc)) { // [(expr)] + $this->trace($this->evalx($loc, $val, substr($path, strrpos($path, ";") + 1)) . ";" . $x, $val, $path,$create, $default); + } + else if (preg_match("/^\?\(.*?\)$/", $loc)) { // [?(expr)] + $this->walk($loc, $x, $val, $path, array(&$this, "_callback_05")); + } + else if (preg_match("/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$/", $loc)) { // [start:end:step] phyton slice syntax + $this->slice($loc, $x, $val, $path,$create, $default); + } + else if (preg_match("/,/", $loc)) { // [name1,name2,...] + for ($s = preg_split("/'?,'?/", $loc), $i = 0, $n = count($s); $i < $n; $i++) + $this->trace($s[$i] . ";" . $x, $val, $path, $create, $default); + } + else if (is_array($val) && $create && ! array_key_exists($loc, $val)) { + if ($x !== "") { + $val[$loc] = array(); + } else { + $val[$loc] = $default; + } + $this->trace($x, $val[$loc], $path . ";" . $loc, $create, $default); + } + } else { + $this->store($path, $val); + } + } + + private function _callback_03($m, $l, $x, $v, $p) + { + $this->trace($m . ";" . $x, $v, $p); + } + + + private function _callback_04($m, $l, $x, $v, $p) + { + if (is_array($v[$m])) { + $this->trace("..;" . $x, $v[$m], $p . ";" . $m); + } + } + + private function _callback_05($m, $l, $x, $v, $p) + { + if ($this->evalx(preg_replace("/^\?\((.*?)\)$/", "$1", $l), $v[$m])) { + $this->trace($m . ";" . $x, $v, $p); + } + } + + private function walk($loc, $expr, $val, $path, $f) + { + foreach ($val as $m => $v) { + call_user_func($f, $m, $loc, $expr, $val, $path); + } + } + + private function slice($loc, $expr, &$v, $path,$create=false, $default=null) + { + $s = explode(":", preg_replace("/^(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$/", "$1:$2:$3", $loc)); + $len = count($v); + $start = (int)$s[0] ? $s[0] : 0; + $end = (int)$s[1] ? $s[1] : $len; + if($create){ + if($start>=$end){ + $end = $start+1; + } + } + $step = (int)$s[2] ? $s[2] : 1; + if($create){ + $start = ($start < 0) ? max(0, $start + $len) : $start; + $end = ($end < 0) ? max(0, $end + $len) : $end; + }else{ + $start = ($start < 0) ? max(0, $start + $len) : min($len, $start); + $end = ($end < 0) ? max(0, $end + $len) : min($len, $end); + } + + for ($i = $start; $i < $end; $i += $step) { + $this->trace($i . ";" . $expr, $v, $path, $create, $default); + } + } + + /** + * @param string $x filter + * @param array $v node + * + * @param string $vname + * @return string + */ + private function evalx($x, $v, $vname = null) + { + $name = ""; + $expr = preg_replace(array("/\\$/", "/@/"), array("\$this->obj", "\$v"), $x); + $res = eval("\$name = $expr;"); + + if ($res === false) { + print("(jsonPath) SyntaxError: " . $expr); + } else { + return $name; + } + } + + private function toObject($array) + { + //$o = (object)''; + $o = new \stdClass(); + + foreach ($array as $key => $value) { + if (is_array($value)) { + $value = $this->toObject($value); + } + + $o->$key = $value; + } + + return $o; + } + + /** + * Search one of the given needs in the array + * @param string $haystack + * @param array $needles + * @return bool|string + */ + private function strpos_array($haystack, array $needles) + { + $closer = 10000; + foreach($needles as $needle) { + if (false !== $pos = strpos($haystack, $needle)) { + if ($pos < $closer) { + $closer = $pos; + } + } + } + + return 10000 === $closer ? false : $closer; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/Peekmo/JsonPath/JsonStore.php b/codes/agent/game-docker/api/lib/Peekmo/JsonPath/JsonStore.php new file mode 100644 index 0000000..c09be4d --- /dev/null +++ b/codes/agent/game-docker/api/lib/Peekmo/JsonPath/JsonStore.php @@ -0,0 +1,222 @@ +jsonPath = new JsonPath(); + $this->setData($data); + } + + /** + * Sets JsonStore's manipulated data + * @param string|array|\stdClass $data + */ + public function setData($data) + { + $this->data = $data; + + if (is_string($this->data)) { + $this->data = json_decode($this->data, true); + } else if (is_object($data)) { + $this->data = json_decode(json_encode($this->data), true); + } else if (!is_array($data)) { + throw new \InvalidArgumentException(sprintf('Invalid data type in JsonStore. Expected object, array or string, got %s', gettype($data))); + } + } + + /** + * JsonEncoded version of the object + * @return string + */ + public function toString() + { + return json_encode($this->data); + } + + /** + * Returns the given json string to object + * @return \stdClass + */ + public function toObject() + { + return json_decode(json_encode($this->data)); + } + + /** + * Returns the given json string to array + * @return array + */ + public function toArray() + { + return $this->data; + } + + /** + * Gets elements matching the given JsonPath expression + * @param string $expr JsonPath expression + * @param bool $unique Gets unique results or not + * @param bool $create create if not found + * @return array + */ + public function get($expr, $unique = false, $create = false, $default = null) + { + if ((($exprs = $this->normalizedFirst($expr,$create,$default)) !== false) && + (is_array($exprs) || $exprs instanceof \Traversable) + ) { + $values = array(); + + foreach ($exprs as $expr) { + $o =& $this->data; + $keys = preg_split( + "/([\"'])?\]\[([\"'])?/", + preg_replace(array("/^\\$\[[\"']?/", "/[\"']?\]$/"), "", $expr) + ); + + for ($i = 0; $i < count($keys); $i++) { + $o =& $o[$keys[$i]]; + } + + $values[] = & $o; + } + + if (true === $unique) { + if (!empty($values) && is_array($values[0])) { + array_walk($values, function(&$value) { + $value = json_encode($value); + }); + + $values = array_unique($values); + array_walk($values, function(&$value) { + $value = json_decode($value, true); + }); + + return array_values($values); + } + + return array_unique($values); + } + + return $values; + } + + return self::$emptyArray; + } + + /** + * Sets the value for all elements matching the given JsonPath expression + * @param string $expr JsonPath expression + * @param mixed $value Value to set + * @return bool returns true if success + */ + function set($expr, $value) + { + if ($res = $this->get($expr, false, true, null)) { + foreach ($res as &$r) { + $r = $value; + } + return true; + } + return false; + } + + /** + * Adds one or more elements matching the given json path expression + * @param string $parentexpr JsonPath expression to the parent + * @param mixed $value Value to add + * @param string $name Key name + * @return bool returns true if success + */ + public function add($parentexpr, $value, $name = "") + { + if ($parents = $this->get($parentexpr)) { + + foreach ($parents as &$parent) { + $parent = is_array($parent) ? $parent : array(); + + if ($name != "") { + $parent[$name] = $value; + } else { + $parent[] = $value; + } + } + + return true; + } + + return false; + } + + /** + * Removes all elements matching the given jsonpath expression + * @param string $expr JsonPath expression + * @return bool returns true if success + */ + public function remove($expr) + { + if ((($exprs = $this->normalizedFirst($expr)) !== false) && + (is_array($exprs) || $exprs instanceof \Traversable) + ) { + foreach ($exprs as &$expr) { + $o =& $this->data; + $keys = preg_split( + "/([\"'])?\]\[([\"'])?/", + preg_replace(array("/^\\$\[[\"']?/", "/[\"']?\]$/"), "", $expr) + ); + for ($i = 0; $i < count($keys) - 1; $i++) { + $o =& $o[$keys[$i]]; + } + + unset($o[$keys[$i]]); + } + + return true; + } + + return false; + } + + private function normalizedFirst($expr, $create,$default) + { + if ($expr == "") { + return false; + } else { + if (preg_match("/^\$(\[([0-9*]+|'[-a-zA-Z0-9_ ]+')\])*$/", $expr)) { + print("normalized: " . $expr); + + return $expr; + } else { + $res = $this->jsonPath->jsonPath($this->data, $expr, array("resultType" => "PATH"), $create,$default); + + return $res; + } + } + } +} + +?> diff --git a/codes/agent/game-docker/api/lib/emoji/emoji.php b/codes/agent/game-docker/api/lib/emoji/emoji.php new file mode 100644 index 0000000..939b66c --- /dev/null +++ b/codes/agent/game-docker/api/lib/emoji/emoji.php @@ -0,0 +1,9931 @@ + array( + "\xc2\xa9" => 'COPYRIGHT SIGN', + "\xc2\xae" => 'REGISTERED SIGN', + "\xe2\x80\xbc" => 'DOUBLE EXCLAMATION MARK', + "\xe2\x81\x89" => 'EXCLAMATION QUESTION MARK', + "\xe2\x84\xa2" => 'TRADE MARK SIGN', + "\xe2\x84\xb9" => 'INFORMATION SOURCE', + "\xe2\x86\x94" => 'LEFT RIGHT ARROW', + "\xe2\x86\x95" => 'UP DOWN ARROW', + "\xe2\x86\x96" => 'NORTH WEST ARROW', + "\xe2\x86\x97" => 'NORTH EAST ARROW', + "\xe2\x86\x98" => 'SOUTH EAST ARROW', + "\xe2\x86\x99" => 'SOUTH WEST ARROW', + "\xe2\x86\xa9" => 'LEFTWARDS ARROW WITH HOOK', + "\xe2\x86\xaa" => 'RIGHTWARDS ARROW WITH HOOK', + "\xe2\x8c\x9a" => 'WATCH', + "\xe2\x8c\x9b" => 'HOURGLASS', + "\xe2\x8c\xa8" => 'KEYBOARD', + "\xe2\x8f\xa9" => 'BLACK RIGHT-POINTING DOUBLE TRIANGLE', + "\xe2\x8f\xaa" => 'BLACK LEFT-POINTING DOUBLE TRIANGLE', + "\xe2\x8f\xab" => 'BLACK UP-POINTING DOUBLE TRIANGLE', + "\xe2\x8f\xac" => 'BLACK DOWN-POINTING DOUBLE TRIANGLE', + "\xe2\x8f\xad" => 'BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR', + "\xe2\x8f\xae" => 'BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR', + "\xe2\x8f\xaf" => 'BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR', + "\xe2\x8f\xb0" => 'ALARM CLOCK', + "\xe2\x8f\xb1" => 'STOPWATCH', + "\xe2\x8f\xb2" => 'TIMER CLOCK', + "\xe2\x8f\xb3" => 'HOURGLASS WITH FLOWING SAND', + "\xe2\x8f\xb8" => 'DOUBLE VERTICAL BAR', + "\xe2\x8f\xb9" => 'BLACK SQUARE FOR STOP', + "\xe2\x8f\xba" => 'BLACK CIRCLE FOR RECORD', + "\xe2\x93\x82" => 'CIRCLED LATIN CAPITAL LETTER M', + "\xe2\x96\xaa" => 'BLACK SMALL SQUARE', + "\xe2\x96\xab" => 'WHITE SMALL SQUARE', + "\xe2\x96\xb6" => 'BLACK RIGHT-POINTING TRIANGLE', + "\xe2\x97\x80" => 'BLACK LEFT-POINTING TRIANGLE', + "\xe2\x97\xbb" => 'WHITE MEDIUM SQUARE', + "\xe2\x97\xbc" => 'BLACK MEDIUM SQUARE', + "\xe2\x97\xbd" => 'WHITE MEDIUM SMALL SQUARE', + "\xe2\x97\xbe" => 'BLACK MEDIUM SMALL SQUARE', + "\xe2\x98\x80" => 'BLACK SUN WITH RAYS', + "\xe2\x98\x81" => 'CLOUD', + "\xe2\x98\x82" => 'UMBRELLA', + "\xe2\x98\x83" => 'SNOWMAN', + "\xe2\x98\x84" => 'COMET', + "\xe2\x98\x8e" => 'BLACK TELEPHONE', + "\xe2\x98\x91" => 'BALLOT BOX WITH CHECK', + "\xe2\x98\x94" => 'UMBRELLA WITH RAIN DROPS', + "\xe2\x98\x95" => 'HOT BEVERAGE', + "\xe2\x98\x98" => 'SHAMROCK', + "\xe2\x98\x9d" => 'WHITE UP POINTING INDEX', + "\xe2\x98\xa0" => 'SKULL AND CROSSBONES', + "\xe2\x98\xa2" => 'RADIOACTIVE SIGN', + "\xe2\x98\xa3" => 'BIOHAZARD SIGN', + "\xe2\x98\xa6" => 'ORTHODOX CROSS', + "\xe2\x98\xaa" => 'STAR AND CRESCENT', + "\xe2\x98\xae" => 'PEACE SYMBOL', + "\xe2\x98\xaf" => 'YIN YANG', + "\xe2\x98\xb8" => 'WHEEL OF DHARMA', + "\xe2\x98\xb9" => 'WHITE FROWNING FACE', + "\xe2\x98\xba" => 'WHITE SMILING FACE', + "\xe2\x99\x88" => 'ARIES', + "\xe2\x99\x89" => 'TAURUS', + "\xe2\x99\x8a" => 'GEMINI', + "\xe2\x99\x8b" => 'CANCER', + "\xe2\x99\x8c" => 'LEO', + "\xe2\x99\x8d" => 'VIRGO', + "\xe2\x99\x8e" => 'LIBRA', + "\xe2\x99\x8f" => 'SCORPIUS', + "\xe2\x99\x90" => 'SAGITTARIUS', + "\xe2\x99\x91" => 'CAPRICORN', + "\xe2\x99\x92" => 'AQUARIUS', + "\xe2\x99\x93" => 'PISCES', + "\xe2\x99\xa0" => 'BLACK SPADE SUIT', + "\xe2\x99\xa3" => 'BLACK CLUB SUIT', + "\xe2\x99\xa5" => 'BLACK HEART SUIT', + "\xe2\x99\xa6" => 'BLACK DIAMOND SUIT', + "\xe2\x99\xa8" => 'HOT SPRINGS', + "\xe2\x99\xbb" => 'BLACK UNIVERSAL RECYCLING SYMBOL', + "\xe2\x99\xbf" => 'WHEELCHAIR SYMBOL', + "\xe2\x9a\x92" => 'HAMMER AND PICK', + "\xe2\x9a\x93" => 'ANCHOR', + "\xe2\x9a\x94" => 'CROSSED SWORDS', + "\xe2\x9a\x96" => 'SCALES', + "\xe2\x9a\x97" => 'ALEMBIC', + "\xe2\x9a\x99" => 'GEAR', + "\xe2\x9a\x9b" => 'ATOM SYMBOL', + "\xe2\x9a\x9c" => 'FLEUR-DE-LIS', + "\xe2\x9a\xa0" => 'WARNING SIGN', + "\xe2\x9a\xa1" => 'HIGH VOLTAGE SIGN', + "\xe2\x9a\xaa" => 'MEDIUM WHITE CIRCLE', + "\xe2\x9a\xab" => 'MEDIUM BLACK CIRCLE', + "\xe2\x9a\xb0" => 'COFFIN', + "\xe2\x9a\xb1" => 'FUNERAL URN', + "\xe2\x9a\xbd" => 'SOCCER BALL', + "\xe2\x9a\xbe" => 'BASEBALL', + "\xe2\x9b\x84" => 'SNOWMAN WITHOUT SNOW', + "\xe2\x9b\x85" => 'SUN BEHIND CLOUD', + "\xe2\x9b\x88" => 'THUNDER CLOUD AND RAIN', + "\xe2\x9b\x8e" => 'OPHIUCHUS', + "\xe2\x9b\x8f" => 'PICK', + "\xe2\x9b\x91" => 'HELMET WITH WHITE CROSS', + "\xe2\x9b\x93" => 'CHAINS', + "\xe2\x9b\x94" => 'NO ENTRY', + "\xe2\x9b\xa9" => 'SHINTO SHRINE', + "\xe2\x9b\xaa" => 'CHURCH', + "\xe2\x9b\xb0" => 'MOUNTAIN', + "\xe2\x9b\xb1" => 'UMBRELLA ON GROUND', + "\xe2\x9b\xb2" => 'FOUNTAIN', + "\xe2\x9b\xb3" => 'FLAG IN HOLE', + "\xe2\x9b\xb4" => 'FERRY', + "\xe2\x9b\xb5" => 'SAILBOAT', + "\xe2\x9b\xb7" => 'SKIER', + "\xe2\x9b\xb8" => 'ICE SKATE', + "\xe2\x9b\xb9" => 'PERSON WITH BALL', + "\xe2\x9b\xba" => 'TENT', + "\xe2\x9b\xbd" => 'FUEL PUMP', + "\xe2\x9c\x82" => 'BLACK SCISSORS', + "\xe2\x9c\x85" => 'WHITE HEAVY CHECK MARK', + "\xe2\x9c\x88" => 'AIRPLANE', + "\xe2\x9c\x89" => 'ENVELOPE', + "\xe2\x9c\x8a" => 'RAISED FIST', + "\xe2\x9c\x8b" => 'RAISED HAND', + "\xe2\x9c\x8c" => 'VICTORY HAND', + "\xe2\x9c\x8d" => 'WRITING HAND', + "\xe2\x9c\x8f" => 'PENCIL', + "\xe2\x9c\x92" => 'BLACK NIB', + "\xe2\x9c\x94" => 'HEAVY CHECK MARK', + "\xe2\x9c\x96" => 'HEAVY MULTIPLICATION X', + "\xe2\x9c\x9d" => 'LATIN CROSS', + "\xe2\x9c\xa1" => 'STAR OF DAVID', + "\xe2\x9c\xa8" => 'SPARKLES', + "\xe2\x9c\xb3" => 'EIGHT SPOKED ASTERISK', + "\xe2\x9c\xb4" => 'EIGHT POINTED BLACK STAR', + "\xe2\x9d\x84" => 'SNOWFLAKE', + "\xe2\x9d\x87" => 'SPARKLE', + "\xe2\x9d\x8c" => 'CROSS MARK', + "\xe2\x9d\x8e" => 'NEGATIVE SQUARED CROSS MARK', + "\xe2\x9d\x93" => 'BLACK QUESTION MARK ORNAMENT', + "\xe2\x9d\x94" => 'WHITE QUESTION MARK ORNAMENT', + "\xe2\x9d\x95" => 'WHITE EXCLAMATION MARK ORNAMENT', + "\xe2\x9d\x97" => 'HEAVY EXCLAMATION MARK SYMBOL', + "\xe2\x9d\xa3" => 'HEAVY HEART EXCLAMATION MARK ORNAMENT', + "\xe2\x9d\xa4" => 'HEAVY BLACK HEART', + "\xe2\x9e\x95" => 'HEAVY PLUS SIGN', + "\xe2\x9e\x96" => 'HEAVY MINUS SIGN', + "\xe2\x9e\x97" => 'HEAVY DIVISION SIGN', + "\xe2\x9e\xa1" => 'BLACK RIGHTWARDS ARROW', + "\xe2\x9e\xb0" => 'CURLY LOOP', + "\xe2\x9e\xbf" => 'DOUBLE CURLY LOOP', + "\xe2\xa4\xb4" => 'ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS', + "\xe2\xa4\xb5" => 'ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS', + "\xe2\xac\x85" => 'LEFTWARDS BLACK ARROW', + "\xe2\xac\x86" => 'UPWARDS BLACK ARROW', + "\xe2\xac\x87" => 'DOWNWARDS BLACK ARROW', + "\xe2\xac\x9b" => 'BLACK LARGE SQUARE', + "\xe2\xac\x9c" => 'WHITE LARGE SQUARE', + "\xe2\xad\x90" => 'WHITE MEDIUM STAR', + "\xe2\xad\x95" => 'HEAVY LARGE CIRCLE', + "\xe3\x80\xb0" => 'WAVY DASH', + "\xe3\x80\xbd" => 'PART ALTERNATION MARK', + "\xe3\x8a\x97" => 'CIRCLED IDEOGRAPH CONGRATULATION', + "\xe3\x8a\x99" => 'CIRCLED IDEOGRAPH SECRET', + "\xf0\x9f\x80\x84" => 'MAHJONG TILE RED DRAGON', + "\xf0\x9f\x83\x8f" => 'PLAYING CARD BLACK JOKER', + "\xf0\x9f\x85\xb0" => 'NEGATIVE SQUARED LATIN CAPITAL LETTER A', + "\xf0\x9f\x85\xb1" => 'NEGATIVE SQUARED LATIN CAPITAL LETTER B', + "\xf0\x9f\x85\xbe" => 'NEGATIVE SQUARED LATIN CAPITAL LETTER O', + "\xf0\x9f\x85\xbf" => 'NEGATIVE SQUARED LATIN CAPITAL LETTER P', + "\xf0\x9f\x86\x8e" => 'NEGATIVE SQUARED AB', + "\xf0\x9f\x86\x91" => 'SQUARED CL', + "\xf0\x9f\x86\x92" => 'SQUARED COOL', + "\xf0\x9f\x86\x93" => 'SQUARED FREE', + "\xf0\x9f\x86\x94" => 'SQUARED ID', + "\xf0\x9f\x86\x95" => 'SQUARED NEW', + "\xf0\x9f\x86\x96" => 'SQUARED NG', + "\xf0\x9f\x86\x97" => 'SQUARED OK', + "\xf0\x9f\x86\x98" => 'SQUARED SOS', + "\xf0\x9f\x86\x99" => 'SQUARED UP WITH EXCLAMATION MARK', + "\xf0\x9f\x86\x9a" => 'SQUARED VS', + "\xf0\x9f\x88\x81" => 'SQUARED KATAKANA KOKO', + "\xf0\x9f\x88\x82" => 'SQUARED KATAKANA SA', + "\xf0\x9f\x88\x9a" => 'SQUARED CJK UNIFIED IDEOGRAPH-7121', + "\xf0\x9f\x88\xaf" => 'SQUARED CJK UNIFIED IDEOGRAPH-6307', + "\xf0\x9f\x88\xb2" => 'SQUARED CJK UNIFIED IDEOGRAPH-7981', + "\xf0\x9f\x88\xb3" => 'SQUARED CJK UNIFIED IDEOGRAPH-7A7A', + "\xf0\x9f\x88\xb4" => 'SQUARED CJK UNIFIED IDEOGRAPH-5408', + "\xf0\x9f\x88\xb5" => 'SQUARED CJK UNIFIED IDEOGRAPH-6E80', + "\xf0\x9f\x88\xb6" => 'SQUARED CJK UNIFIED IDEOGRAPH-6709', + "\xf0\x9f\x88\xb7" => 'SQUARED CJK UNIFIED IDEOGRAPH-6708', + "\xf0\x9f\x88\xb8" => 'SQUARED CJK UNIFIED IDEOGRAPH-7533', + "\xf0\x9f\x88\xb9" => 'SQUARED CJK UNIFIED IDEOGRAPH-5272', + "\xf0\x9f\x88\xba" => 'SQUARED CJK UNIFIED IDEOGRAPH-55B6', + "\xf0\x9f\x89\x90" => 'CIRCLED IDEOGRAPH ADVANTAGE', + "\xf0\x9f\x89\x91" => 'CIRCLED IDEOGRAPH ACCEPT', + "\xf0\x9f\x8c\x80" => 'CYCLONE', + "\xf0\x9f\x8c\x81" => 'FOGGY', + "\xf0\x9f\x8c\x82" => 'CLOSED UMBRELLA', + "\xf0\x9f\x8c\x83" => 'NIGHT WITH STARS', + "\xf0\x9f\x8c\x84" => 'SUNRISE OVER MOUNTAINS', + "\xf0\x9f\x8c\x85" => 'SUNRISE', + "\xf0\x9f\x8c\x86" => 'CITYSCAPE AT DUSK', + "\xf0\x9f\x8c\x87" => 'SUNSET OVER BUILDINGS', + "\xf0\x9f\x8c\x88" => 'RAINBOW', + "\xf0\x9f\x8c\x89" => 'BRIDGE AT NIGHT', + "\xf0\x9f\x8c\x8a" => 'WATER WAVE', + "\xf0\x9f\x8c\x8b" => 'VOLCANO', + "\xf0\x9f\x8c\x8c" => 'MILKY WAY', + "\xf0\x9f\x8c\x8d" => 'EARTH GLOBE EUROPE-AFRICA', + "\xf0\x9f\x8c\x8e" => 'EARTH GLOBE AMERICAS', + "\xf0\x9f\x8c\x8f" => 'EARTH GLOBE ASIA-AUSTRALIA', + "\xf0\x9f\x8c\x90" => 'GLOBE WITH MERIDIANS', + "\xf0\x9f\x8c\x91" => 'NEW MOON SYMBOL', + "\xf0\x9f\x8c\x92" => 'WAXING CRESCENT MOON SYMBOL', + "\xf0\x9f\x8c\x93" => 'FIRST QUARTER MOON SYMBOL', + "\xf0\x9f\x8c\x94" => 'WAXING GIBBOUS MOON SYMBOL', + "\xf0\x9f\x8c\x95" => 'FULL MOON SYMBOL', + "\xf0\x9f\x8c\x96" => 'WANING GIBBOUS MOON SYMBOL', + "\xf0\x9f\x8c\x97" => 'LAST QUARTER MOON SYMBOL', + "\xf0\x9f\x8c\x98" => 'WANING CRESCENT MOON SYMBOL', + "\xf0\x9f\x8c\x99" => 'CRESCENT MOON', + "\xf0\x9f\x8c\x9a" => 'NEW MOON WITH FACE', + "\xf0\x9f\x8c\x9b" => 'FIRST QUARTER MOON WITH FACE', + "\xf0\x9f\x8c\x9c" => 'LAST QUARTER MOON WITH FACE', + "\xf0\x9f\x8c\x9d" => 'FULL MOON WITH FACE', + "\xf0\x9f\x8c\x9e" => 'SUN WITH FACE', + "\xf0\x9f\x8c\x9f" => 'GLOWING STAR', + "\xf0\x9f\x8c\xa0" => 'SHOOTING STAR', + "\xf0\x9f\x8c\xa1" => 'THERMOMETER', + "\xf0\x9f\x8c\xa4" => 'WHITE SUN WITH SMALL CLOUD', + "\xf0\x9f\x8c\xa5" => 'WHITE SUN BEHIND CLOUD', + "\xf0\x9f\x8c\xa6" => 'WHITE SUN BEHIND CLOUD WITH RAIN', + "\xf0\x9f\x8c\xa7" => 'CLOUD WITH RAIN', + "\xf0\x9f\x8c\xa8" => 'CLOUD WITH SNOW', + "\xf0\x9f\x8c\xa9" => 'CLOUD WITH LIGHTNING', + "\xf0\x9f\x8c\xaa" => 'CLOUD WITH TORNADO', + "\xf0\x9f\x8c\xab" => 'FOG', + "\xf0\x9f\x8c\xac" => 'WIND BLOWING FACE', + "\xf0\x9f\x8c\xad" => 'HOT DOG', + "\xf0\x9f\x8c\xae" => 'TACO', + "\xf0\x9f\x8c\xaf" => 'BURRITO', + "\xf0\x9f\x8c\xb0" => 'CHESTNUT', + "\xf0\x9f\x8c\xb1" => 'SEEDLING', + "\xf0\x9f\x8c\xb2" => 'EVERGREEN TREE', + "\xf0\x9f\x8c\xb3" => 'DECIDUOUS TREE', + "\xf0\x9f\x8c\xb4" => 'PALM TREE', + "\xf0\x9f\x8c\xb5" => 'CACTUS', + "\xf0\x9f\x8c\xb6" => 'HOT PEPPER', + "\xf0\x9f\x8c\xb7" => 'TULIP', + "\xf0\x9f\x8c\xb8" => 'CHERRY BLOSSOM', + "\xf0\x9f\x8c\xb9" => 'ROSE', + "\xf0\x9f\x8c\xba" => 'HIBISCUS', + "\xf0\x9f\x8c\xbb" => 'SUNFLOWER', + "\xf0\x9f\x8c\xbc" => 'BLOSSOM', + "\xf0\x9f\x8c\xbd" => 'EAR OF MAIZE', + "\xf0\x9f\x8c\xbe" => 'EAR OF RICE', + "\xf0\x9f\x8c\xbf" => 'HERB', + "\xf0\x9f\x8d\x80" => 'FOUR LEAF CLOVER', + "\xf0\x9f\x8d\x81" => 'MAPLE LEAF', + "\xf0\x9f\x8d\x82" => 'FALLEN LEAF', + "\xf0\x9f\x8d\x83" => 'LEAF FLUTTERING IN WIND', + "\xf0\x9f\x8d\x84" => 'MUSHROOM', + "\xf0\x9f\x8d\x85" => 'TOMATO', + "\xf0\x9f\x8d\x86" => 'AUBERGINE', + "\xf0\x9f\x8d\x87" => 'GRAPES', + "\xf0\x9f\x8d\x88" => 'MELON', + "\xf0\x9f\x8d\x89" => 'WATERMELON', + "\xf0\x9f\x8d\x8a" => 'TANGERINE', + "\xf0\x9f\x8d\x8b" => 'LEMON', + "\xf0\x9f\x8d\x8c" => 'BANANA', + "\xf0\x9f\x8d\x8d" => 'PINEAPPLE', + "\xf0\x9f\x8d\x8e" => 'RED APPLE', + "\xf0\x9f\x8d\x8f" => 'GREEN APPLE', + "\xf0\x9f\x8d\x90" => 'PEAR', + "\xf0\x9f\x8d\x91" => 'PEACH', + "\xf0\x9f\x8d\x92" => 'CHERRIES', + "\xf0\x9f\x8d\x93" => 'STRAWBERRY', + "\xf0\x9f\x8d\x94" => 'HAMBURGER', + "\xf0\x9f\x8d\x95" => 'SLICE OF PIZZA', + "\xf0\x9f\x8d\x96" => 'MEAT ON BONE', + "\xf0\x9f\x8d\x97" => 'POULTRY LEG', + "\xf0\x9f\x8d\x98" => 'RICE CRACKER', + "\xf0\x9f\x8d\x99" => 'RICE BALL', + "\xf0\x9f\x8d\x9a" => 'COOKED RICE', + "\xf0\x9f\x8d\x9b" => 'CURRY AND RICE', + "\xf0\x9f\x8d\x9c" => 'STEAMING BOWL', + "\xf0\x9f\x8d\x9d" => 'SPAGHETTI', + "\xf0\x9f\x8d\x9e" => 'BREAD', + "\xf0\x9f\x8d\x9f" => 'FRENCH FRIES', + "\xf0\x9f\x8d\xa0" => 'ROASTED SWEET POTATO', + "\xf0\x9f\x8d\xa1" => 'DANGO', + "\xf0\x9f\x8d\xa2" => 'ODEN', + "\xf0\x9f\x8d\xa3" => 'SUSHI', + "\xf0\x9f\x8d\xa4" => 'FRIED SHRIMP', + "\xf0\x9f\x8d\xa5" => 'FISH CAKE WITH SWIRL DESIGN', + "\xf0\x9f\x8d\xa6" => 'SOFT ICE CREAM', + "\xf0\x9f\x8d\xa7" => 'SHAVED ICE', + "\xf0\x9f\x8d\xa8" => 'ICE CREAM', + "\xf0\x9f\x8d\xa9" => 'DOUGHNUT', + "\xf0\x9f\x8d\xaa" => 'COOKIE', + "\xf0\x9f\x8d\xab" => 'CHOCOLATE BAR', + "\xf0\x9f\x8d\xac" => 'CANDY', + "\xf0\x9f\x8d\xad" => 'LOLLIPOP', + "\xf0\x9f\x8d\xae" => 'CUSTARD', + "\xf0\x9f\x8d\xaf" => 'HONEY POT', + "\xf0\x9f\x8d\xb0" => 'SHORTCAKE', + "\xf0\x9f\x8d\xb1" => 'BENTO BOX', + "\xf0\x9f\x8d\xb2" => 'POT OF FOOD', + "\xf0\x9f\x8d\xb3" => 'COOKING', + "\xf0\x9f\x8d\xb4" => 'FORK AND KNIFE', + "\xf0\x9f\x8d\xb5" => 'TEACUP WITHOUT HANDLE', + "\xf0\x9f\x8d\xb6" => 'SAKE BOTTLE AND CUP', + "\xf0\x9f\x8d\xb7" => 'WINE GLASS', + "\xf0\x9f\x8d\xb8" => 'COCKTAIL GLASS', + "\xf0\x9f\x8d\xb9" => 'TROPICAL DRINK', + "\xf0\x9f\x8d\xba" => 'BEER MUG', + "\xf0\x9f\x8d\xbb" => 'CLINKING BEER MUGS', + "\xf0\x9f\x8d\xbc" => 'BABY BOTTLE', + "\xf0\x9f\x8d\xbd" => 'FORK AND KNIFE WITH PLATE', + "\xf0\x9f\x8d\xbe" => 'BOTTLE WITH POPPING CORK', + "\xf0\x9f\x8d\xbf" => 'POPCORN', + "\xf0\x9f\x8e\x80" => 'RIBBON', + "\xf0\x9f\x8e\x81" => 'WRAPPED PRESENT', + "\xf0\x9f\x8e\x82" => 'BIRTHDAY CAKE', + "\xf0\x9f\x8e\x83" => 'JACK-O-LANTERN', + "\xf0\x9f\x8e\x84" => 'CHRISTMAS TREE', + "\xf0\x9f\x8e\x85" => 'FATHER CHRISTMAS', + "\xf0\x9f\x8e\x86" => 'FIREWORKS', + "\xf0\x9f\x8e\x87" => 'FIREWORK SPARKLER', + "\xf0\x9f\x8e\x88" => 'BALLOON', + "\xf0\x9f\x8e\x89" => 'PARTY POPPER', + "\xf0\x9f\x8e\x8a" => 'CONFETTI BALL', + "\xf0\x9f\x8e\x8b" => 'TANABATA TREE', + "\xf0\x9f\x8e\x8c" => 'CROSSED FLAGS', + "\xf0\x9f\x8e\x8d" => 'PINE DECORATION', + "\xf0\x9f\x8e\x8e" => 'JAPANESE DOLLS', + "\xf0\x9f\x8e\x8f" => 'CARP STREAMER', + "\xf0\x9f\x8e\x90" => 'WIND CHIME', + "\xf0\x9f\x8e\x91" => 'MOON VIEWING CEREMONY', + "\xf0\x9f\x8e\x92" => 'SCHOOL SATCHEL', + "\xf0\x9f\x8e\x93" => 'GRADUATION CAP', + "\xf0\x9f\x8e\x96" => 'MILITARY MEDAL', + "\xf0\x9f\x8e\x97" => 'REMINDER RIBBON', + "\xf0\x9f\x8e\x99" => 'STUDIO MICROPHONE', + "\xf0\x9f\x8e\x9a" => 'LEVEL SLIDER', + "\xf0\x9f\x8e\x9b" => 'CONTROL KNOBS', + "\xf0\x9f\x8e\x9e" => 'FILM FRAMES', + "\xf0\x9f\x8e\x9f" => 'ADMISSION TICKETS', + "\xf0\x9f\x8e\xa0" => 'CAROUSEL HORSE', + "\xf0\x9f\x8e\xa1" => 'FERRIS WHEEL', + "\xf0\x9f\x8e\xa2" => 'ROLLER COASTER', + "\xf0\x9f\x8e\xa3" => 'FISHING POLE AND FISH', + "\xf0\x9f\x8e\xa4" => 'MICROPHONE', + "\xf0\x9f\x8e\xa5" => 'MOVIE CAMERA', + "\xf0\x9f\x8e\xa6" => 'CINEMA', + "\xf0\x9f\x8e\xa7" => 'HEADPHONE', + "\xf0\x9f\x8e\xa8" => 'ARTIST PALETTE', + "\xf0\x9f\x8e\xa9" => 'TOP HAT', + "\xf0\x9f\x8e\xaa" => 'CIRCUS TENT', + "\xf0\x9f\x8e\xab" => 'TICKET', + "\xf0\x9f\x8e\xac" => 'CLAPPER BOARD', + "\xf0\x9f\x8e\xad" => 'PERFORMING ARTS', + "\xf0\x9f\x8e\xae" => 'VIDEO GAME', + "\xf0\x9f\x8e\xaf" => 'DIRECT HIT', + "\xf0\x9f\x8e\xb0" => 'SLOT MACHINE', + "\xf0\x9f\x8e\xb1" => 'BILLIARDS', + "\xf0\x9f\x8e\xb2" => 'GAME DIE', + "\xf0\x9f\x8e\xb3" => 'BOWLING', + "\xf0\x9f\x8e\xb4" => 'FLOWER PLAYING CARDS', + "\xf0\x9f\x8e\xb5" => 'MUSICAL NOTE', + "\xf0\x9f\x8e\xb6" => 'MULTIPLE MUSICAL NOTES', + "\xf0\x9f\x8e\xb7" => 'SAXOPHONE', + "\xf0\x9f\x8e\xb8" => 'GUITAR', + "\xf0\x9f\x8e\xb9" => 'MUSICAL KEYBOARD', + "\xf0\x9f\x8e\xba" => 'TRUMPET', + "\xf0\x9f\x8e\xbb" => 'VIOLIN', + "\xf0\x9f\x8e\xbc" => 'MUSICAL SCORE', + "\xf0\x9f\x8e\xbd" => 'RUNNING SHIRT WITH SASH', + "\xf0\x9f\x8e\xbe" => 'TENNIS RACQUET AND BALL', + "\xf0\x9f\x8e\xbf" => 'SKI AND SKI BOOT', + "\xf0\x9f\x8f\x80" => 'BASKETBALL AND HOOP', + "\xf0\x9f\x8f\x81" => 'CHEQUERED FLAG', + "\xf0\x9f\x8f\x82" => 'SNOWBOARDER', + "\xf0\x9f\x8f\x83" => 'RUNNER', + "\xf0\x9f\x8f\x84" => 'SURFER', + "\xf0\x9f\x8f\x85" => 'SPORTS MEDAL', + "\xf0\x9f\x8f\x86" => 'TROPHY', + "\xf0\x9f\x8f\x87" => 'HORSE RACING', + "\xf0\x9f\x8f\x88" => 'AMERICAN FOOTBALL', + "\xf0\x9f\x8f\x89" => 'RUGBY FOOTBALL', + "\xf0\x9f\x8f\x8a" => 'SWIMMER', + "\xf0\x9f\x8f\x8b" => 'WEIGHT LIFTER', + "\xf0\x9f\x8f\x8c" => 'GOLFER', + "\xf0\x9f\x8f\x8d" => 'RACING MOTORCYCLE', + "\xf0\x9f\x8f\x8e" => 'RACING CAR', + "\xf0\x9f\x8f\x8f" => 'CRICKET BAT AND BALL', + "\xf0\x9f\x8f\x90" => 'VOLLEYBALL', + "\xf0\x9f\x8f\x91" => 'FIELD HOCKEY STICK AND BALL', + "\xf0\x9f\x8f\x92" => 'ICE HOCKEY STICK AND PUCK', + "\xf0\x9f\x8f\x93" => 'TABLE TENNIS PADDLE AND BALL', + "\xf0\x9f\x8f\x94" => 'SNOW CAPPED MOUNTAIN', + "\xf0\x9f\x8f\x95" => 'CAMPING', + "\xf0\x9f\x8f\x96" => 'BEACH WITH UMBRELLA', + "\xf0\x9f\x8f\x97" => 'BUILDING CONSTRUCTION', + "\xf0\x9f\x8f\x98" => 'HOUSE BUILDINGS', + "\xf0\x9f\x8f\x99" => 'CITYSCAPE', + "\xf0\x9f\x8f\x9a" => 'DERELICT HOUSE BUILDING', + "\xf0\x9f\x8f\x9b" => 'CLASSICAL BUILDING', + "\xf0\x9f\x8f\x9c" => 'DESERT', + "\xf0\x9f\x8f\x9d" => 'DESERT ISLAND', + "\xf0\x9f\x8f\x9e" => 'NATIONAL PARK', + "\xf0\x9f\x8f\x9f" => 'STADIUM', + "\xf0\x9f\x8f\xa0" => 'HOUSE BUILDING', + "\xf0\x9f\x8f\xa1" => 'HOUSE WITH GARDEN', + "\xf0\x9f\x8f\xa2" => 'OFFICE BUILDING', + "\xf0\x9f\x8f\xa3" => 'JAPANESE POST OFFICE', + "\xf0\x9f\x8f\xa4" => 'EUROPEAN POST OFFICE', + "\xf0\x9f\x8f\xa5" => 'HOSPITAL', + "\xf0\x9f\x8f\xa6" => 'BANK', + "\xf0\x9f\x8f\xa7" => 'AUTOMATED TELLER MACHINE', + "\xf0\x9f\x8f\xa8" => 'HOTEL', + "\xf0\x9f\x8f\xa9" => 'LOVE HOTEL', + "\xf0\x9f\x8f\xaa" => 'CONVENIENCE STORE', + "\xf0\x9f\x8f\xab" => 'SCHOOL', + "\xf0\x9f\x8f\xac" => 'DEPARTMENT STORE', + "\xf0\x9f\x8f\xad" => 'FACTORY', + "\xf0\x9f\x8f\xae" => 'IZAKAYA LANTERN', + "\xf0\x9f\x8f\xaf" => 'JAPANESE CASTLE', + "\xf0\x9f\x8f\xb0" => 'EUROPEAN CASTLE', + "\xf0\x9f\x8f\xb3" => 'WAVING WHITE FLAG', + "\xf0\x9f\x8f\xb4" => 'WAVING BLACK FLAG', + "\xf0\x9f\x8f\xb5" => 'ROSETTE', + "\xf0\x9f\x8f\xb7" => 'LABEL', + "\xf0\x9f\x8f\xb8" => 'BADMINTON RACQUET AND SHUTTLECOCK', + "\xf0\x9f\x8f\xb9" => 'BOW AND ARROW', + "\xf0\x9f\x8f\xba" => 'AMPHORA', + "\xf0\x9f\x8f\xbb" => 'EMOJI MODIFIER FITZPATRICK TYPE-1-2', + "\xf0\x9f\x8f\xbc" => 'EMOJI MODIFIER FITZPATRICK TYPE-3', + "\xf0\x9f\x8f\xbd" => 'EMOJI MODIFIER FITZPATRICK TYPE-4', + "\xf0\x9f\x8f\xbe" => 'EMOJI MODIFIER FITZPATRICK TYPE-5', + "\xf0\x9f\x8f\xbf" => 'EMOJI MODIFIER FITZPATRICK TYPE-6', + "\xf0\x9f\x90\x80" => 'RAT', + "\xf0\x9f\x90\x81" => 'MOUSE', + "\xf0\x9f\x90\x82" => 'OX', + "\xf0\x9f\x90\x83" => 'WATER BUFFALO', + "\xf0\x9f\x90\x84" => 'COW', + "\xf0\x9f\x90\x85" => 'TIGER', + "\xf0\x9f\x90\x86" => 'LEOPARD', + "\xf0\x9f\x90\x87" => 'RABBIT', + "\xf0\x9f\x90\x88" => 'CAT', + "\xf0\x9f\x90\x89" => 'DRAGON', + "\xf0\x9f\x90\x8a" => 'CROCODILE', + "\xf0\x9f\x90\x8b" => 'WHALE', + "\xf0\x9f\x90\x8c" => 'SNAIL', + "\xf0\x9f\x90\x8d" => 'SNAKE', + "\xf0\x9f\x90\x8e" => 'HORSE', + "\xf0\x9f\x90\x8f" => 'RAM', + "\xf0\x9f\x90\x90" => 'GOAT', + "\xf0\x9f\x90\x91" => 'SHEEP', + "\xf0\x9f\x90\x92" => 'MONKEY', + "\xf0\x9f\x90\x93" => 'ROOSTER', + "\xf0\x9f\x90\x94" => 'CHICKEN', + "\xf0\x9f\x90\x95" => 'DOG', + "\xf0\x9f\x90\x96" => 'PIG', + "\xf0\x9f\x90\x97" => 'BOAR', + "\xf0\x9f\x90\x98" => 'ELEPHANT', + "\xf0\x9f\x90\x99" => 'OCTOPUS', + "\xf0\x9f\x90\x9a" => 'SPIRAL SHELL', + "\xf0\x9f\x90\x9b" => 'BUG', + "\xf0\x9f\x90\x9c" => 'ANT', + "\xf0\x9f\x90\x9d" => 'HONEYBEE', + "\xf0\x9f\x90\x9e" => 'LADY BEETLE', + "\xf0\x9f\x90\x9f" => 'FISH', + "\xf0\x9f\x90\xa0" => 'TROPICAL FISH', + "\xf0\x9f\x90\xa1" => 'BLOWFISH', + "\xf0\x9f\x90\xa2" => 'TURTLE', + "\xf0\x9f\x90\xa3" => 'HATCHING CHICK', + "\xf0\x9f\x90\xa4" => 'BABY CHICK', + "\xf0\x9f\x90\xa5" => 'FRONT-FACING BABY CHICK', + "\xf0\x9f\x90\xa6" => 'BIRD', + "\xf0\x9f\x90\xa7" => 'PENGUIN', + "\xf0\x9f\x90\xa8" => 'KOALA', + "\xf0\x9f\x90\xa9" => 'POODLE', + "\xf0\x9f\x90\xaa" => 'DROMEDARY CAMEL', + "\xf0\x9f\x90\xab" => 'BACTRIAN CAMEL', + "\xf0\x9f\x90\xac" => 'DOLPHIN', + "\xf0\x9f\x90\xad" => 'MOUSE FACE', + "\xf0\x9f\x90\xae" => 'COW FACE', + "\xf0\x9f\x90\xaf" => 'TIGER FACE', + "\xf0\x9f\x90\xb0" => 'RABBIT FACE', + "\xf0\x9f\x90\xb1" => 'CAT FACE', + "\xf0\x9f\x90\xb2" => 'DRAGON FACE', + "\xf0\x9f\x90\xb3" => 'SPOUTING WHALE', + "\xf0\x9f\x90\xb4" => 'HORSE FACE', + "\xf0\x9f\x90\xb5" => 'MONKEY FACE', + "\xf0\x9f\x90\xb6" => 'DOG FACE', + "\xf0\x9f\x90\xb7" => 'PIG FACE', + "\xf0\x9f\x90\xb8" => 'FROG FACE', + "\xf0\x9f\x90\xb9" => 'HAMSTER FACE', + "\xf0\x9f\x90\xba" => 'WOLF FACE', + "\xf0\x9f\x90\xbb" => 'BEAR FACE', + "\xf0\x9f\x90\xbc" => 'PANDA FACE', + "\xf0\x9f\x90\xbd" => 'PIG NOSE', + "\xf0\x9f\x90\xbe" => 'PAW PRINTS', + "\xf0\x9f\x90\xbf" => 'CHIPMUNK', + "\xf0\x9f\x91\x80" => 'EYES', + "\xf0\x9f\x91\x81" => 'EYE', + "\xf0\x9f\x91\x82" => 'EAR', + "\xf0\x9f\x91\x83" => 'NOSE', + "\xf0\x9f\x91\x84" => 'MOUTH', + "\xf0\x9f\x91\x85" => 'TONGUE', + "\xf0\x9f\x91\x86" => 'WHITE UP POINTING BACKHAND INDEX', + "\xf0\x9f\x91\x87" => 'WHITE DOWN POINTING BACKHAND INDEX', + "\xf0\x9f\x91\x88" => 'WHITE LEFT POINTING BACKHAND INDEX', + "\xf0\x9f\x91\x89" => 'WHITE RIGHT POINTING BACKHAND INDEX', + "\xf0\x9f\x91\x8a" => 'FISTED HAND SIGN', + "\xf0\x9f\x91\x8b" => 'WAVING HAND SIGN', + "\xf0\x9f\x91\x8c" => 'OK HAND SIGN', + "\xf0\x9f\x91\x8d" => 'THUMBS UP SIGN', + "\xf0\x9f\x91\x8e" => 'THUMBS DOWN SIGN', + "\xf0\x9f\x91\x8f" => 'CLAPPING HANDS SIGN', + "\xf0\x9f\x91\x90" => 'OPEN HANDS SIGN', + "\xf0\x9f\x91\x91" => 'CROWN', + "\xf0\x9f\x91\x92" => 'WOMANS HAT', + "\xf0\x9f\x91\x93" => 'EYEGLASSES', + "\xf0\x9f\x91\x94" => 'NECKTIE', + "\xf0\x9f\x91\x95" => 'T-SHIRT', + "\xf0\x9f\x91\x96" => 'JEANS', + "\xf0\x9f\x91\x97" => 'DRESS', + "\xf0\x9f\x91\x98" => 'KIMONO', + "\xf0\x9f\x91\x99" => 'BIKINI', + "\xf0\x9f\x91\x9a" => 'WOMANS CLOTHES', + "\xf0\x9f\x91\x9b" => 'PURSE', + "\xf0\x9f\x91\x9c" => 'HANDBAG', + "\xf0\x9f\x91\x9d" => 'POUCH', + "\xf0\x9f\x91\x9e" => 'MANS SHOE', + "\xf0\x9f\x91\x9f" => 'ATHLETIC SHOE', + "\xf0\x9f\x91\xa0" => 'HIGH-HEELED SHOE', + "\xf0\x9f\x91\xa1" => 'WOMANS SANDAL', + "\xf0\x9f\x91\xa2" => 'WOMANS BOOTS', + "\xf0\x9f\x91\xa3" => 'FOOTPRINTS', + "\xf0\x9f\x91\xa4" => 'BUST IN SILHOUETTE', + "\xf0\x9f\x91\xa5" => 'BUSTS IN SILHOUETTE', + "\xf0\x9f\x91\xa6" => 'BOY', + "\xf0\x9f\x91\xa7" => 'GIRL', + "\xf0\x9f\x91\xa8" => 'MAN', + "\xf0\x9f\x91\xa9" => 'WOMAN', + "\xf0\x9f\x91\xaa" => 'FAMILY', + "\xf0\x9f\x91\xab" => 'MAN AND WOMAN HOLDING HANDS', + "\xf0\x9f\x91\xac" => 'TWO MEN HOLDING HANDS', + "\xf0\x9f\x91\xad" => 'TWO WOMEN HOLDING HANDS', + "\xf0\x9f\x91\xae" => 'POLICE OFFICER', + "\xf0\x9f\x91\xaf" => 'WOMAN WITH BUNNY EARS', + "\xf0\x9f\x91\xb0" => 'BRIDE WITH VEIL', + "\xf0\x9f\x91\xb1" => 'PERSON WITH BLOND HAIR', + "\xf0\x9f\x91\xb2" => 'MAN WITH GUA PI MAO', + "\xf0\x9f\x91\xb3" => 'MAN WITH TURBAN', + "\xf0\x9f\x91\xb4" => 'OLDER MAN', + "\xf0\x9f\x91\xb5" => 'OLDER WOMAN', + "\xf0\x9f\x91\xb6" => 'BABY', + "\xf0\x9f\x91\xb7" => 'CONSTRUCTION WORKER', + "\xf0\x9f\x91\xb8" => 'PRINCESS', + "\xf0\x9f\x91\xb9" => 'JAPANESE OGRE', + "\xf0\x9f\x91\xba" => 'JAPANESE GOBLIN', + "\xf0\x9f\x91\xbb" => 'GHOST', + "\xf0\x9f\x91\xbc" => 'BABY ANGEL', + "\xf0\x9f\x91\xbd" => 'EXTRATERRESTRIAL ALIEN', + "\xf0\x9f\x91\xbe" => 'ALIEN MONSTER', + "\xf0\x9f\x91\xbf" => 'IMP', + "\xf0\x9f\x92\x80" => 'SKULL', + "\xf0\x9f\x92\x81" => 'INFORMATION DESK PERSON', + "\xf0\x9f\x92\x82" => 'GUARDSMAN', + "\xf0\x9f\x92\x83" => 'DANCER', + "\xf0\x9f\x92\x84" => 'LIPSTICK', + "\xf0\x9f\x92\x85" => 'NAIL POLISH', + "\xf0\x9f\x92\x86" => 'FACE MASSAGE', + "\xf0\x9f\x92\x87" => 'HAIRCUT', + "\xf0\x9f\x92\x88" => 'BARBER POLE', + "\xf0\x9f\x92\x89" => 'SYRINGE', + "\xf0\x9f\x92\x8a" => 'PILL', + "\xf0\x9f\x92\x8b" => 'KISS MARK', + "\xf0\x9f\x92\x8c" => 'LOVE LETTER', + "\xf0\x9f\x92\x8d" => 'RING', + "\xf0\x9f\x92\x8e" => 'GEM STONE', + "\xf0\x9f\x92\x8f" => 'KISS', + "\xf0\x9f\x92\x90" => 'BOUQUET', + "\xf0\x9f\x92\x91" => 'COUPLE WITH HEART', + "\xf0\x9f\x92\x92" => 'WEDDING', + "\xf0\x9f\x92\x93" => 'BEATING HEART', + "\xf0\x9f\x92\x94" => 'BROKEN HEART', + "\xf0\x9f\x92\x95" => 'TWO HEARTS', + "\xf0\x9f\x92\x96" => 'SPARKLING HEART', + "\xf0\x9f\x92\x97" => 'GROWING HEART', + "\xf0\x9f\x92\x98" => 'HEART WITH ARROW', + "\xf0\x9f\x92\x99" => 'BLUE HEART', + "\xf0\x9f\x92\x9a" => 'GREEN HEART', + "\xf0\x9f\x92\x9b" => 'YELLOW HEART', + "\xf0\x9f\x92\x9c" => 'PURPLE HEART', + "\xf0\x9f\x92\x9d" => 'HEART WITH RIBBON', + "\xf0\x9f\x92\x9e" => 'REVOLVING HEARTS', + "\xf0\x9f\x92\x9f" => 'HEART DECORATION', + "\xf0\x9f\x92\xa0" => 'DIAMOND SHAPE WITH A DOT INSIDE', + "\xf0\x9f\x92\xa1" => 'ELECTRIC LIGHT BULB', + "\xf0\x9f\x92\xa2" => 'ANGER SYMBOL', + "\xf0\x9f\x92\xa3" => 'BOMB', + "\xf0\x9f\x92\xa4" => 'SLEEPING SYMBOL', + "\xf0\x9f\x92\xa5" => 'COLLISION SYMBOL', + "\xf0\x9f\x92\xa6" => 'SPLASHING SWEAT SYMBOL', + "\xf0\x9f\x92\xa7" => 'DROPLET', + "\xf0\x9f\x92\xa8" => 'DASH SYMBOL', + "\xf0\x9f\x92\xa9" => 'PILE OF POO', + "\xf0\x9f\x92\xaa" => 'FLEXED BICEPS', + "\xf0\x9f\x92\xab" => 'DIZZY SYMBOL', + "\xf0\x9f\x92\xac" => 'SPEECH BALLOON', + "\xf0\x9f\x92\xad" => 'THOUGHT BALLOON', + "\xf0\x9f\x92\xae" => 'WHITE FLOWER', + "\xf0\x9f\x92\xaf" => 'HUNDRED POINTS SYMBOL', + "\xf0\x9f\x92\xb0" => 'MONEY BAG', + "\xf0\x9f\x92\xb1" => 'CURRENCY EXCHANGE', + "\xf0\x9f\x92\xb2" => 'HEAVY DOLLAR SIGN', + "\xf0\x9f\x92\xb3" => 'CREDIT CARD', + "\xf0\x9f\x92\xb4" => 'BANKNOTE WITH YEN SIGN', + "\xf0\x9f\x92\xb5" => 'BANKNOTE WITH DOLLAR SIGN', + "\xf0\x9f\x92\xb6" => 'BANKNOTE WITH EURO SIGN', + "\xf0\x9f\x92\xb7" => 'BANKNOTE WITH POUND SIGN', + "\xf0\x9f\x92\xb8" => 'MONEY WITH WINGS', + "\xf0\x9f\x92\xb9" => 'CHART WITH UPWARDS TREND AND YEN SIGN', + "\xf0\x9f\x92\xba" => 'SEAT', + "\xf0\x9f\x92\xbb" => 'PERSONAL COMPUTER', + "\xf0\x9f\x92\xbc" => 'BRIEFCASE', + "\xf0\x9f\x92\xbd" => 'MINIDISC', + "\xf0\x9f\x92\xbe" => 'FLOPPY DISK', + "\xf0\x9f\x92\xbf" => 'OPTICAL DISC', + "\xf0\x9f\x93\x80" => 'DVD', + "\xf0\x9f\x93\x81" => 'FILE FOLDER', + "\xf0\x9f\x93\x82" => 'OPEN FILE FOLDER', + "\xf0\x9f\x93\x83" => 'PAGE WITH CURL', + "\xf0\x9f\x93\x84" => 'PAGE FACING UP', + "\xf0\x9f\x93\x85" => 'CALENDAR', + "\xf0\x9f\x93\x86" => 'TEAR-OFF CALENDAR', + "\xf0\x9f\x93\x87" => 'CARD INDEX', + "\xf0\x9f\x93\x88" => 'CHART WITH UPWARDS TREND', + "\xf0\x9f\x93\x89" => 'CHART WITH DOWNWARDS TREND', + "\xf0\x9f\x93\x8a" => 'BAR CHART', + "\xf0\x9f\x93\x8b" => 'CLIPBOARD', + "\xf0\x9f\x93\x8c" => 'PUSHPIN', + "\xf0\x9f\x93\x8d" => 'ROUND PUSHPIN', + "\xf0\x9f\x93\x8e" => 'PAPERCLIP', + "\xf0\x9f\x93\x8f" => 'STRAIGHT RULER', + "\xf0\x9f\x93\x90" => 'TRIANGULAR RULER', + "\xf0\x9f\x93\x91" => 'BOOKMARK TABS', + "\xf0\x9f\x93\x92" => 'LEDGER', + "\xf0\x9f\x93\x93" => 'NOTEBOOK', + "\xf0\x9f\x93\x94" => 'NOTEBOOK WITH DECORATIVE COVER', + "\xf0\x9f\x93\x95" => 'CLOSED BOOK', + "\xf0\x9f\x93\x96" => 'OPEN BOOK', + "\xf0\x9f\x93\x97" => 'GREEN BOOK', + "\xf0\x9f\x93\x98" => 'BLUE BOOK', + "\xf0\x9f\x93\x99" => 'ORANGE BOOK', + "\xf0\x9f\x93\x9a" => 'BOOKS', + "\xf0\x9f\x93\x9b" => 'NAME BADGE', + "\xf0\x9f\x93\x9c" => 'SCROLL', + "\xf0\x9f\x93\x9d" => 'MEMO', + "\xf0\x9f\x93\x9e" => 'TELEPHONE RECEIVER', + "\xf0\x9f\x93\x9f" => 'PAGER', + "\xf0\x9f\x93\xa0" => 'FAX MACHINE', + "\xf0\x9f\x93\xa1" => 'SATELLITE ANTENNA', + "\xf0\x9f\x93\xa2" => 'PUBLIC ADDRESS LOUDSPEAKER', + "\xf0\x9f\x93\xa3" => 'CHEERING MEGAPHONE', + "\xf0\x9f\x93\xa4" => 'OUTBOX TRAY', + "\xf0\x9f\x93\xa5" => 'INBOX TRAY', + "\xf0\x9f\x93\xa6" => 'PACKAGE', + "\xf0\x9f\x93\xa7" => 'E-MAIL SYMBOL', + "\xf0\x9f\x93\xa8" => 'INCOMING ENVELOPE', + "\xf0\x9f\x93\xa9" => 'ENVELOPE WITH DOWNWARDS ARROW ABOVE', + "\xf0\x9f\x93\xaa" => 'CLOSED MAILBOX WITH LOWERED FLAG', + "\xf0\x9f\x93\xab" => 'CLOSED MAILBOX WITH RAISED FLAG', + "\xf0\x9f\x93\xac" => 'OPEN MAILBOX WITH RAISED FLAG', + "\xf0\x9f\x93\xad" => 'OPEN MAILBOX WITH LOWERED FLAG', + "\xf0\x9f\x93\xae" => 'POSTBOX', + "\xf0\x9f\x93\xaf" => 'POSTAL HORN', + "\xf0\x9f\x93\xb0" => 'NEWSPAPER', + "\xf0\x9f\x93\xb1" => 'MOBILE PHONE', + "\xf0\x9f\x93\xb2" => 'MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT', + "\xf0\x9f\x93\xb3" => 'VIBRATION MODE', + "\xf0\x9f\x93\xb4" => 'MOBILE PHONE OFF', + "\xf0\x9f\x93\xb5" => 'NO MOBILE PHONES', + "\xf0\x9f\x93\xb6" => 'ANTENNA WITH BARS', + "\xf0\x9f\x93\xb7" => 'CAMERA', + "\xf0\x9f\x93\xb8" => 'CAMERA WITH FLASH', + "\xf0\x9f\x93\xb9" => 'VIDEO CAMERA', + "\xf0\x9f\x93\xba" => 'TELEVISION', + "\xf0\x9f\x93\xbb" => 'RADIO', + "\xf0\x9f\x93\xbc" => 'VIDEOCASSETTE', + "\xf0\x9f\x93\xbd" => 'FILM PROJECTOR', + "\xf0\x9f\x93\xbf" => 'PRAYER BEADS', + "\xf0\x9f\x94\x80" => 'TWISTED RIGHTWARDS ARROWS', + "\xf0\x9f\x94\x81" => 'CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS', + "\xf0\x9f\x94\x82" => 'CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY', + "\xf0\x9f\x94\x83" => 'CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS', + "\xf0\x9f\x94\x84" => 'ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS', + "\xf0\x9f\x94\x85" => 'LOW BRIGHTNESS SYMBOL', + "\xf0\x9f\x94\x86" => 'HIGH BRIGHTNESS SYMBOL', + "\xf0\x9f\x94\x87" => 'SPEAKER WITH CANCELLATION STROKE', + "\xf0\x9f\x94\x88" => 'SPEAKER', + "\xf0\x9f\x94\x89" => 'SPEAKER WITH ONE SOUND WAVE', + "\xf0\x9f\x94\x8a" => 'SPEAKER WITH THREE SOUND WAVES', + "\xf0\x9f\x94\x8b" => 'BATTERY', + "\xf0\x9f\x94\x8c" => 'ELECTRIC PLUG', + "\xf0\x9f\x94\x8d" => 'LEFT-POINTING MAGNIFYING GLASS', + "\xf0\x9f\x94\x8e" => 'RIGHT-POINTING MAGNIFYING GLASS', + "\xf0\x9f\x94\x8f" => 'LOCK WITH INK PEN', + "\xf0\x9f\x94\x90" => 'CLOSED LOCK WITH KEY', + "\xf0\x9f\x94\x91" => 'KEY', + "\xf0\x9f\x94\x92" => 'LOCK', + "\xf0\x9f\x94\x93" => 'OPEN LOCK', + "\xf0\x9f\x94\x94" => 'BELL', + "\xf0\x9f\x94\x95" => 'BELL WITH CANCELLATION STROKE', + "\xf0\x9f\x94\x96" => 'BOOKMARK', + "\xf0\x9f\x94\x97" => 'LINK SYMBOL', + "\xf0\x9f\x94\x98" => 'RADIO BUTTON', + "\xf0\x9f\x94\x99" => 'BACK WITH LEFTWARDS ARROW ABOVE', + "\xf0\x9f\x94\x9a" => 'END WITH LEFTWARDS ARROW ABOVE', + "\xf0\x9f\x94\x9b" => 'ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE', + "\xf0\x9f\x94\x9c" => 'SOON WITH RIGHTWARDS ARROW ABOVE', + "\xf0\x9f\x94\x9d" => 'TOP WITH UPWARDS ARROW ABOVE', + "\xf0\x9f\x94\x9e" => 'NO ONE UNDER EIGHTEEN SYMBOL', + "\xf0\x9f\x94\x9f" => 'KEYCAP TEN', + "\xf0\x9f\x94\xa0" => 'INPUT SYMBOL FOR LATIN CAPITAL LETTERS', + "\xf0\x9f\x94\xa1" => 'INPUT SYMBOL FOR LATIN SMALL LETTERS', + "\xf0\x9f\x94\xa2" => 'INPUT SYMBOL FOR NUMBERS', + "\xf0\x9f\x94\xa3" => 'INPUT SYMBOL FOR SYMBOLS', + "\xf0\x9f\x94\xa4" => 'INPUT SYMBOL FOR LATIN LETTERS', + "\xf0\x9f\x94\xa5" => 'FIRE', + "\xf0\x9f\x94\xa6" => 'ELECTRIC TORCH', + "\xf0\x9f\x94\xa7" => 'WRENCH', + "\xf0\x9f\x94\xa8" => 'HAMMER', + "\xf0\x9f\x94\xa9" => 'NUT AND BOLT', + "\xf0\x9f\x94\xaa" => 'HOCHO', + "\xf0\x9f\x94\xab" => 'PISTOL', + "\xf0\x9f\x94\xac" => 'MICROSCOPE', + "\xf0\x9f\x94\xad" => 'TELESCOPE', + "\xf0\x9f\x94\xae" => 'CRYSTAL BALL', + "\xf0\x9f\x94\xaf" => 'SIX POINTED STAR WITH MIDDLE DOT', + "\xf0\x9f\x94\xb0" => 'JAPANESE SYMBOL FOR BEGINNER', + "\xf0\x9f\x94\xb1" => 'TRIDENT EMBLEM', + "\xf0\x9f\x94\xb2" => 'BLACK SQUARE BUTTON', + "\xf0\x9f\x94\xb3" => 'WHITE SQUARE BUTTON', + "\xf0\x9f\x94\xb4" => 'LARGE RED CIRCLE', + "\xf0\x9f\x94\xb5" => 'LARGE BLUE CIRCLE', + "\xf0\x9f\x94\xb6" => 'LARGE ORANGE DIAMOND', + "\xf0\x9f\x94\xb7" => 'LARGE BLUE DIAMOND', + "\xf0\x9f\x94\xb8" => 'SMALL ORANGE DIAMOND', + "\xf0\x9f\x94\xb9" => 'SMALL BLUE DIAMOND', + "\xf0\x9f\x94\xba" => 'UP-POINTING RED TRIANGLE', + "\xf0\x9f\x94\xbb" => 'DOWN-POINTING RED TRIANGLE', + "\xf0\x9f\x94\xbc" => 'UP-POINTING SMALL RED TRIANGLE', + "\xf0\x9f\x94\xbd" => 'DOWN-POINTING SMALL RED TRIANGLE', + "\xf0\x9f\x95\x89" => 'OM SYMBOL', + "\xf0\x9f\x95\x8a" => 'DOVE OF PEACE', + "\xf0\x9f\x95\x8b" => 'KAABA', + "\xf0\x9f\x95\x8c" => 'MOSQUE', + "\xf0\x9f\x95\x8d" => 'SYNAGOGUE', + "\xf0\x9f\x95\x8e" => 'MENORAH WITH NINE BRANCHES', + "\xf0\x9f\x95\x90" => 'CLOCK FACE ONE OCLOCK', + "\xf0\x9f\x95\x91" => 'CLOCK FACE TWO OCLOCK', + "\xf0\x9f\x95\x92" => 'CLOCK FACE THREE OCLOCK', + "\xf0\x9f\x95\x93" => 'CLOCK FACE FOUR OCLOCK', + "\xf0\x9f\x95\x94" => 'CLOCK FACE FIVE OCLOCK', + "\xf0\x9f\x95\x95" => 'CLOCK FACE SIX OCLOCK', + "\xf0\x9f\x95\x96" => 'CLOCK FACE SEVEN OCLOCK', + "\xf0\x9f\x95\x97" => 'CLOCK FACE EIGHT OCLOCK', + "\xf0\x9f\x95\x98" => 'CLOCK FACE NINE OCLOCK', + "\xf0\x9f\x95\x99" => 'CLOCK FACE TEN OCLOCK', + "\xf0\x9f\x95\x9a" => 'CLOCK FACE ELEVEN OCLOCK', + "\xf0\x9f\x95\x9b" => 'CLOCK FACE TWELVE OCLOCK', + "\xf0\x9f\x95\x9c" => 'CLOCK FACE ONE-THIRTY', + "\xf0\x9f\x95\x9d" => 'CLOCK FACE TWO-THIRTY', + "\xf0\x9f\x95\x9e" => 'CLOCK FACE THREE-THIRTY', + "\xf0\x9f\x95\x9f" => 'CLOCK FACE FOUR-THIRTY', + "\xf0\x9f\x95\xa0" => 'CLOCK FACE FIVE-THIRTY', + "\xf0\x9f\x95\xa1" => 'CLOCK FACE SIX-THIRTY', + "\xf0\x9f\x95\xa2" => 'CLOCK FACE SEVEN-THIRTY', + "\xf0\x9f\x95\xa3" => 'CLOCK FACE EIGHT-THIRTY', + "\xf0\x9f\x95\xa4" => 'CLOCK FACE NINE-THIRTY', + "\xf0\x9f\x95\xa5" => 'CLOCK FACE TEN-THIRTY', + "\xf0\x9f\x95\xa6" => 'CLOCK FACE ELEVEN-THIRTY', + "\xf0\x9f\x95\xa7" => 'CLOCK FACE TWELVE-THIRTY', + "\xf0\x9f\x95\xaf" => 'CANDLE', + "\xf0\x9f\x95\xb0" => 'MANTELPIECE CLOCK', + "\xf0\x9f\x95\xb3" => 'HOLE', + "\xf0\x9f\x95\xb4" => 'MAN IN BUSINESS SUIT LEVITATING', + "\xf0\x9f\x95\xb5" => 'SLEUTH OR SPY', + "\xf0\x9f\x95\xb6" => 'DARK SUNGLASSES', + "\xf0\x9f\x95\xb7" => 'SPIDER', + "\xf0\x9f\x95\xb8" => 'SPIDER WEB', + "\xf0\x9f\x95\xb9" => 'JOYSTICK', + "\xf0\x9f\x96\x87" => 'LINKED PAPERCLIPS', + "\xf0\x9f\x96\x8a" => 'LOWER LEFT BALLPOINT PEN', + "\xf0\x9f\x96\x8b" => 'LOWER LEFT FOUNTAIN PEN', + "\xf0\x9f\x96\x8c" => 'LOWER LEFT PAINTBRUSH', + "\xf0\x9f\x96\x8d" => 'LOWER LEFT CRAYON', + "\xf0\x9f\x96\x90" => 'RAISED HAND WITH FINGERS SPLAYED', + "\xf0\x9f\x96\x95" => 'REVERSED HAND WITH MIDDLE FINGER EXTENDED', + "\xf0\x9f\x96\x96" => 'RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS', + "\xf0\x9f\x96\xa5" => 'DESKTOP COMPUTER', + "\xf0\x9f\x96\xa8" => 'PRINTER', + "\xf0\x9f\x96\xb1" => 'THREE BUTTON MOUSE', + "\xf0\x9f\x96\xb2" => 'TRACKBALL', + "\xf0\x9f\x96\xbc" => 'FRAME WITH PICTURE', + "\xf0\x9f\x97\x82" => 'CARD INDEX DIVIDERS', + "\xf0\x9f\x97\x83" => 'CARD FILE BOX', + "\xf0\x9f\x97\x84" => 'FILE CABINET', + "\xf0\x9f\x97\x91" => 'WASTEBASKET', + "\xf0\x9f\x97\x92" => 'SPIRAL NOTE PAD', + "\xf0\x9f\x97\x93" => 'SPIRAL CALENDAR PAD', + "\xf0\x9f\x97\x9c" => 'COMPRESSION', + "\xf0\x9f\x97\x9d" => 'OLD KEY', + "\xf0\x9f\x97\x9e" => 'ROLLED-UP NEWSPAPER', + "\xf0\x9f\x97\xa1" => 'DAGGER KNIFE', + "\xf0\x9f\x97\xa3" => 'SPEAKING HEAD IN SILHOUETTE', + "\xf0\x9f\x97\xa8" => 'LEFT SPEECH BUBBLE', + "\xf0\x9f\x97\xaf" => 'RIGHT ANGER BUBBLE', + "\xf0\x9f\x97\xb3" => 'BALLOT BOX WITH BALLOT', + "\xf0\x9f\x97\xba" => 'WORLD MAP', + "\xf0\x9f\x97\xbb" => 'MOUNT FUJI', + "\xf0\x9f\x97\xbc" => 'TOKYO TOWER', + "\xf0\x9f\x97\xbd" => 'STATUE OF LIBERTY', + "\xf0\x9f\x97\xbe" => 'SILHOUETTE OF JAPAN', + "\xf0\x9f\x97\xbf" => 'MOYAI', + "\xf0\x9f\x98\x80" => 'GRINNING FACE', + "\xf0\x9f\x98\x81" => 'GRINNING FACE WITH SMILING EYES', + "\xf0\x9f\x98\x82" => 'FACE WITH TEARS OF JOY', + "\xf0\x9f\x98\x83" => 'SMILING FACE WITH OPEN MOUTH', + "\xf0\x9f\x98\x84" => 'SMILING FACE WITH OPEN MOUTH AND SMILING EYES', + "\xf0\x9f\x98\x85" => 'SMILING FACE WITH OPEN MOUTH AND COLD SWEAT', + "\xf0\x9f\x98\x86" => 'SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES', + "\xf0\x9f\x98\x87" => 'SMILING FACE WITH HALO', + "\xf0\x9f\x98\x88" => 'SMILING FACE WITH HORNS', + "\xf0\x9f\x98\x89" => 'WINKING FACE', + "\xf0\x9f\x98\x8a" => 'SMILING FACE WITH SMILING EYES', + "\xf0\x9f\x98\x8b" => 'FACE SAVOURING DELICIOUS FOOD', + "\xf0\x9f\x98\x8c" => 'RELIEVED FACE', + "\xf0\x9f\x98\x8d" => 'SMILING FACE WITH HEART-SHAPED EYES', + "\xf0\x9f\x98\x8e" => 'SMILING FACE WITH SUNGLASSES', + "\xf0\x9f\x98\x8f" => 'SMIRKING FACE', + "\xf0\x9f\x98\x90" => 'NEUTRAL FACE', + "\xf0\x9f\x98\x91" => 'EXPRESSIONLESS FACE', + "\xf0\x9f\x98\x92" => 'UNAMUSED FACE', + "\xf0\x9f\x98\x93" => 'FACE WITH COLD SWEAT', + "\xf0\x9f\x98\x94" => 'PENSIVE FACE', + "\xf0\x9f\x98\x95" => 'CONFUSED FACE', + "\xf0\x9f\x98\x96" => 'CONFOUNDED FACE', + "\xf0\x9f\x98\x97" => 'KISSING FACE', + "\xf0\x9f\x98\x98" => 'FACE THROWING A KISS', + "\xf0\x9f\x98\x99" => 'KISSING FACE WITH SMILING EYES', + "\xf0\x9f\x98\x9a" => 'KISSING FACE WITH CLOSED EYES', + "\xf0\x9f\x98\x9b" => 'FACE WITH STUCK-OUT TONGUE', + "\xf0\x9f\x98\x9c" => 'FACE WITH STUCK-OUT TONGUE AND WINKING EYE', + "\xf0\x9f\x98\x9d" => 'FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES', + "\xf0\x9f\x98\x9e" => 'DISAPPOINTED FACE', + "\xf0\x9f\x98\x9f" => 'WORRIED FACE', + "\xf0\x9f\x98\xa0" => 'ANGRY FACE', + "\xf0\x9f\x98\xa1" => 'POUTING FACE', + "\xf0\x9f\x98\xa2" => 'CRYING FACE', + "\xf0\x9f\x98\xa3" => 'PERSEVERING FACE', + "\xf0\x9f\x98\xa4" => 'FACE WITH LOOK OF TRIUMPH', + "\xf0\x9f\x98\xa5" => 'DISAPPOINTED BUT RELIEVED FACE', + "\xf0\x9f\x98\xa6" => 'FROWNING FACE WITH OPEN MOUTH', + "\xf0\x9f\x98\xa7" => 'ANGUISHED FACE', + "\xf0\x9f\x98\xa8" => 'FEARFUL FACE', + "\xf0\x9f\x98\xa9" => 'WEARY FACE', + "\xf0\x9f\x98\xaa" => 'SLEEPY FACE', + "\xf0\x9f\x98\xab" => 'TIRED FACE', + "\xf0\x9f\x98\xac" => 'GRIMACING FACE', + "\xf0\x9f\x98\xad" => 'LOUDLY CRYING FACE', + "\xf0\x9f\x98\xae" => 'FACE WITH OPEN MOUTH', + "\xf0\x9f\x98\xaf" => 'HUSHED FACE', + "\xf0\x9f\x98\xb0" => 'FACE WITH OPEN MOUTH AND COLD SWEAT', + "\xf0\x9f\x98\xb1" => 'FACE SCREAMING IN FEAR', + "\xf0\x9f\x98\xb2" => 'ASTONISHED FACE', + "\xf0\x9f\x98\xb3" => 'FLUSHED FACE', + "\xf0\x9f\x98\xb4" => 'SLEEPING FACE', + "\xf0\x9f\x98\xb5" => 'DIZZY FACE', + "\xf0\x9f\x98\xb6" => 'FACE WITHOUT MOUTH', + "\xf0\x9f\x98\xb7" => 'FACE WITH MEDICAL MASK', + "\xf0\x9f\x98\xb8" => 'GRINNING CAT FACE WITH SMILING EYES', + "\xf0\x9f\x98\xb9" => 'CAT FACE WITH TEARS OF JOY', + "\xf0\x9f\x98\xba" => 'SMILING CAT FACE WITH OPEN MOUTH', + "\xf0\x9f\x98\xbb" => 'SMILING CAT FACE WITH HEART-SHAPED EYES', + "\xf0\x9f\x98\xbc" => 'CAT FACE WITH WRY SMILE', + "\xf0\x9f\x98\xbd" => 'KISSING CAT FACE WITH CLOSED EYES', + "\xf0\x9f\x98\xbe" => 'POUTING CAT FACE', + "\xf0\x9f\x98\xbf" => 'CRYING CAT FACE', + "\xf0\x9f\x99\x80" => 'WEARY CAT FACE', + "\xf0\x9f\x99\x81" => 'SLIGHTLY FROWNING FACE', + "\xf0\x9f\x99\x82" => 'SLIGHTLY SMILING FACE', + "\xf0\x9f\x99\x83" => 'UPSIDE-DOWN FACE', + "\xf0\x9f\x99\x84" => 'FACE WITH ROLLING EYES', + "\xf0\x9f\x99\x85" => 'FACE WITH NO GOOD GESTURE', + "\xf0\x9f\x99\x86" => 'FACE WITH OK GESTURE', + "\xf0\x9f\x99\x87" => 'PERSON BOWING DEEPLY', + "\xf0\x9f\x99\x88" => 'SEE-NO-EVIL MONKEY', + "\xf0\x9f\x99\x89" => 'HEAR-NO-EVIL MONKEY', + "\xf0\x9f\x99\x8a" => 'SPEAK-NO-EVIL MONKEY', + "\xf0\x9f\x99\x8b" => 'HAPPY PERSON RAISING ONE HAND', + "\xf0\x9f\x99\x8c" => 'PERSON RAISING BOTH HANDS IN CELEBRATION', + "\xf0\x9f\x99\x8d" => 'PERSON FROWNING', + "\xf0\x9f\x99\x8e" => 'PERSON WITH POUTING FACE', + "\xf0\x9f\x99\x8f" => 'PERSON WITH FOLDED HANDS', + "\xf0\x9f\x9a\x80" => 'ROCKET', + "\xf0\x9f\x9a\x81" => 'HELICOPTER', + "\xf0\x9f\x9a\x82" => 'STEAM LOCOMOTIVE', + "\xf0\x9f\x9a\x83" => 'RAILWAY CAR', + "\xf0\x9f\x9a\x84" => 'HIGH-SPEED TRAIN', + "\xf0\x9f\x9a\x85" => 'HIGH-SPEED TRAIN WITH BULLET NOSE', + "\xf0\x9f\x9a\x86" => 'TRAIN', + "\xf0\x9f\x9a\x87" => 'METRO', + "\xf0\x9f\x9a\x88" => 'LIGHT RAIL', + "\xf0\x9f\x9a\x89" => 'STATION', + "\xf0\x9f\x9a\x8a" => 'TRAM', + "\xf0\x9f\x9a\x8b" => 'TRAM CAR', + "\xf0\x9f\x9a\x8c" => 'BUS', + "\xf0\x9f\x9a\x8d" => 'ONCOMING BUS', + "\xf0\x9f\x9a\x8e" => 'TROLLEYBUS', + "\xf0\x9f\x9a\x8f" => 'BUS STOP', + "\xf0\x9f\x9a\x90" => 'MINIBUS', + "\xf0\x9f\x9a\x91" => 'AMBULANCE', + "\xf0\x9f\x9a\x92" => 'FIRE ENGINE', + "\xf0\x9f\x9a\x93" => 'POLICE CAR', + "\xf0\x9f\x9a\x94" => 'ONCOMING POLICE CAR', + "\xf0\x9f\x9a\x95" => 'TAXI', + "\xf0\x9f\x9a\x96" => 'ONCOMING TAXI', + "\xf0\x9f\x9a\x97" => 'AUTOMOBILE', + "\xf0\x9f\x9a\x98" => 'ONCOMING AUTOMOBILE', + "\xf0\x9f\x9a\x99" => 'RECREATIONAL VEHICLE', + "\xf0\x9f\x9a\x9a" => 'DELIVERY TRUCK', + "\xf0\x9f\x9a\x9b" => 'ARTICULATED LORRY', + "\xf0\x9f\x9a\x9c" => 'TRACTOR', + "\xf0\x9f\x9a\x9d" => 'MONORAIL', + "\xf0\x9f\x9a\x9e" => 'MOUNTAIN RAILWAY', + "\xf0\x9f\x9a\x9f" => 'SUSPENSION RAILWAY', + "\xf0\x9f\x9a\xa0" => 'MOUNTAIN CABLEWAY', + "\xf0\x9f\x9a\xa1" => 'AERIAL TRAMWAY', + "\xf0\x9f\x9a\xa2" => 'SHIP', + "\xf0\x9f\x9a\xa3" => 'ROWBOAT', + "\xf0\x9f\x9a\xa4" => 'SPEEDBOAT', + "\xf0\x9f\x9a\xa5" => 'HORIZONTAL TRAFFIC LIGHT', + "\xf0\x9f\x9a\xa6" => 'VERTICAL TRAFFIC LIGHT', + "\xf0\x9f\x9a\xa7" => 'CONSTRUCTION SIGN', + "\xf0\x9f\x9a\xa8" => 'POLICE CARS REVOLVING LIGHT', + "\xf0\x9f\x9a\xa9" => 'TRIANGULAR FLAG ON POST', + "\xf0\x9f\x9a\xaa" => 'DOOR', + "\xf0\x9f\x9a\xab" => 'NO ENTRY SIGN', + "\xf0\x9f\x9a\xac" => 'SMOKING SYMBOL', + "\xf0\x9f\x9a\xad" => 'NO SMOKING SYMBOL', + "\xf0\x9f\x9a\xae" => 'PUT LITTER IN ITS PLACE SYMBOL', + "\xf0\x9f\x9a\xaf" => 'DO NOT LITTER SYMBOL', + "\xf0\x9f\x9a\xb0" => 'POTABLE WATER SYMBOL', + "\xf0\x9f\x9a\xb1" => 'NON-POTABLE WATER SYMBOL', + "\xf0\x9f\x9a\xb2" => 'BICYCLE', + "\xf0\x9f\x9a\xb3" => 'NO BICYCLES', + "\xf0\x9f\x9a\xb4" => 'BICYCLIST', + "\xf0\x9f\x9a\xb5" => 'MOUNTAIN BICYCLIST', + "\xf0\x9f\x9a\xb6" => 'PEDESTRIAN', + "\xf0\x9f\x9a\xb7" => 'NO PEDESTRIANS', + "\xf0\x9f\x9a\xb8" => 'CHILDREN CROSSING', + "\xf0\x9f\x9a\xb9" => 'MENS SYMBOL', + "\xf0\x9f\x9a\xba" => 'WOMENS SYMBOL', + "\xf0\x9f\x9a\xbb" => 'RESTROOM', + "\xf0\x9f\x9a\xbc" => 'BABY SYMBOL', + "\xf0\x9f\x9a\xbd" => 'TOILET', + "\xf0\x9f\x9a\xbe" => 'WATER CLOSET', + "\xf0\x9f\x9a\xbf" => 'SHOWER', + "\xf0\x9f\x9b\x80" => 'BATH', + "\xf0\x9f\x9b\x81" => 'BATHTUB', + "\xf0\x9f\x9b\x82" => 'PASSPORT CONTROL', + "\xf0\x9f\x9b\x83" => 'CUSTOMS', + "\xf0\x9f\x9b\x84" => 'BAGGAGE CLAIM', + "\xf0\x9f\x9b\x85" => 'LEFT LUGGAGE', + "\xf0\x9f\x9b\x8b" => 'COUCH AND LAMP', + "\xf0\x9f\x9b\x8c" => 'SLEEPING ACCOMMODATION', + "\xf0\x9f\x9b\x8d" => 'SHOPPING BAGS', + "\xf0\x9f\x9b\x8e" => 'BELLHOP BELL', + "\xf0\x9f\x9b\x8f" => 'BED', + "\xf0\x9f\x9b\x90" => 'PLACE OF WORSHIP', + "\xf0\x9f\x9b\xa0" => 'HAMMER AND WRENCH', + "\xf0\x9f\x9b\xa1" => 'SHIELD', + "\xf0\x9f\x9b\xa2" => 'OIL DRUM', + "\xf0\x9f\x9b\xa3" => 'MOTORWAY', + "\xf0\x9f\x9b\xa4" => 'RAILWAY TRACK', + "\xf0\x9f\x9b\xa5" => 'MOTOR BOAT', + "\xf0\x9f\x9b\xa9" => 'SMALL AIRPLANE', + "\xf0\x9f\x9b\xab" => 'AIRPLANE DEPARTURE', + "\xf0\x9f\x9b\xac" => 'AIRPLANE ARRIVING', + "\xf0\x9f\x9b\xb0" => 'SATELLITE', + "\xf0\x9f\x9b\xb3" => 'PASSENGER SHIP', + "\xf0\x9f\xa4\x90" => 'ZIPPER-MOUTH FACE', + "\xf0\x9f\xa4\x91" => 'MONEY-MOUTH FACE', + "\xf0\x9f\xa4\x92" => 'FACE WITH THERMOMETER', + "\xf0\x9f\xa4\x93" => 'NERD FACE', + "\xf0\x9f\xa4\x94" => 'THINKING FACE', + "\xf0\x9f\xa4\x95" => 'FACE WITH HEAD-BANDAGE', + "\xf0\x9f\xa4\x96" => 'ROBOT FACE', + "\xf0\x9f\xa4\x97" => 'HUGGING FACE', + "\xf0\x9f\xa4\x98" => 'SIGN OF THE HORNS', + "\xf0\x9f\xa6\x80" => 'CRAB', + "\xf0\x9f\xa6\x81" => 'LION FACE', + "\xf0\x9f\xa6\x82" => 'SCORPION', + "\xf0\x9f\xa6\x83" => 'TURKEY', + "\xf0\x9f\xa6\x84" => 'UNICORN FACE', + "\xf0\x9f\xa7\x80" => 'CHEESE WEDGE', + "#\xe2\x83\xa3" => 'HASH KEY', + "*\xe2\x83\xa3" => '', + "0\xe2\x83\xa3" => 'KEYCAP 0', + "1\xe2\x83\xa3" => 'KEYCAP 1', + "2\xe2\x83\xa3" => 'KEYCAP 2', + "3\xe2\x83\xa3" => 'KEYCAP 3', + "4\xe2\x83\xa3" => 'KEYCAP 4', + "5\xe2\x83\xa3" => 'KEYCAP 5', + "6\xe2\x83\xa3" => 'KEYCAP 6', + "7\xe2\x83\xa3" => 'KEYCAP 7', + "8\xe2\x83\xa3" => 'KEYCAP 8', + "9\xe2\x83\xa3" => 'KEYCAP 9', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS AC', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa9" => 'REGIONAL INDICATOR SYMBOL LETTERS AD', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS AE', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS AF', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS AG', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS AI', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS AL', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS AM', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS AO', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb6" => 'REGIONAL INDICATOR SYMBOL LETTERS AQ', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS AR', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS AS', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS AT', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS AU', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS AW', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd" => 'REGIONAL INDICATOR SYMBOL LETTERS AX', + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS AZ', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS BA', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa7" => 'REGIONAL INDICATOR SYMBOL LETTERS BB', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa9" => 'REGIONAL INDICATOR SYMBOL LETTERS BD', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS BE', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS BF', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS BG', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS BH', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS BI', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaf" => 'REGIONAL INDICATOR SYMBOL LETTERS BJ', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS BL', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS BM', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS BN', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS BO', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb6" => 'REGIONAL INDICATOR SYMBOL LETTERS BQ', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS BR', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS BS', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS BT', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbb" => 'REGIONAL INDICATOR SYMBOL LETTERS BV', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS BW', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS BY', + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS BZ', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS CA', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS CC', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa9" => 'REGIONAL INDICATOR SYMBOL LETTERS CD', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS CF', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS CG', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS CH', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS CI', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS CK', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS CL', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS CM', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS CN', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS CO', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb5" => 'REGIONAL INDICATOR SYMBOL LETTERS CP', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS CR', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS CU', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbb" => 'REGIONAL INDICATOR SYMBOL LETTERS CV', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS CW', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd" => 'REGIONAL INDICATOR SYMBOL LETTERS CX', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS CY', + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS CZ', + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS DE', + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS DG', + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaf" => 'REGIONAL INDICATOR SYMBOL LETTERS DJ', + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS DK', + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS DM', + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS DO', + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS DZ', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS EA', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS EC', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS EE', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS EG', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS EH', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS ER', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS ES', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS ET', + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS EU', + "\xf0\x9f\x87\xab\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS FI', + "\xf0\x9f\x87\xab\xf0\x9f\x87\xaf" => 'REGIONAL INDICATOR SYMBOL LETTERS FJ', + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS FK', + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS FM', + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS FO', + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS FR', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS GA', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa7" => 'REGIONAL INDICATOR SYMBOL LETTERS GB', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa9" => 'REGIONAL INDICATOR SYMBOL LETTERS GD', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS GE', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS GF', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS GG', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS GH', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS GI', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS GL', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS GM', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS GN', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb5" => 'REGIONAL INDICATOR SYMBOL LETTERS GP', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb6" => 'REGIONAL INDICATOR SYMBOL LETTERS GQ', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS GR', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS GS', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS GT', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS GU', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS GW', + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS GY', + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS HK', + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS HM', + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS HN', + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS HR', + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS HT', + "\xf0\x9f\x87\xad\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS HU', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS IC', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa9" => 'REGIONAL INDICATOR SYMBOL LETTERS ID', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS IE', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS IL', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS IM', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS IN', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS IO', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb6" => 'REGIONAL INDICATOR SYMBOL LETTERS IQ', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS IR', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS IS', + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS IT', + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS JE', + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS JM', + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS JO', + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5" => 'REGIONAL INDICATOR SYMBOL LETTERS JP', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS KE', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS KG', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS KH', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS KI', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS KM', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS KN', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb5" => 'REGIONAL INDICATOR SYMBOL LETTERS KP', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS KR', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS KW', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS KY', + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS KZ', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS LA', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa7" => 'REGIONAL INDICATOR SYMBOL LETTERS LB', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS LC', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS LI', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS LK', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS LR', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS LS', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS LT', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS LU', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbb" => 'REGIONAL INDICATOR SYMBOL LETTERS LV', + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS LY', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS MA', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS MC', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa9" => 'REGIONAL INDICATOR SYMBOL LETTERS MD', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS ME', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS MF', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS MG', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS MH', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS MK', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS ML', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS MM', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS MN', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS MO', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb5" => 'REGIONAL INDICATOR SYMBOL LETTERS MP', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb6" => 'REGIONAL INDICATOR SYMBOL LETTERS MQ', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS MR', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS MS', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS MT', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS MU', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbb" => 'REGIONAL INDICATOR SYMBOL LETTERS MV', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS MW', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbd" => 'REGIONAL INDICATOR SYMBOL LETTERS MX', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS MY', + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS MZ', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS NA', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS NC', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS NE', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS NF', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS NG', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS NI', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS NL', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS NO', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb5" => 'REGIONAL INDICATOR SYMBOL LETTERS NP', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS NR', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS NU', + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS NZ', + "\xf0\x9f\x87\xb4\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS OM', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS PA', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS PE', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS PF', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS PG', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS PH', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS PK', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS PL', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS PM', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS PN', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS PR', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS PS', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS PT', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS PW', + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS PY', + "\xf0\x9f\x87\xb6\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS QA', + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS RE', + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS RO', + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS RS', + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS RU', + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS RW', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS SA', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa7" => 'REGIONAL INDICATOR SYMBOL LETTERS SB', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS SC', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa9" => 'REGIONAL INDICATOR SYMBOL LETTERS SD', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS SE', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS SG', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS SH', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS SI', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaf" => 'REGIONAL INDICATOR SYMBOL LETTERS SJ', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS SK', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS SL', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS SM', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS SN', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS SO', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS SR', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS SS', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS ST', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb" => 'REGIONAL INDICATOR SYMBOL LETTERS SV', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbd" => 'REGIONAL INDICATOR SYMBOL LETTERS SX', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS SY', + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS SZ', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS TA', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS TC', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa9" => 'REGIONAL INDICATOR SYMBOL LETTERS TD', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS TF', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS TG', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xad" => 'REGIONAL INDICATOR SYMBOL LETTERS TH', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xaf" => 'REGIONAL INDICATOR SYMBOL LETTERS TJ', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS TK', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb1" => 'REGIONAL INDICATOR SYMBOL LETTERS TL', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS TM', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS TN', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb4" => 'REGIONAL INDICATOR SYMBOL LETTERS TO', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb7" => 'REGIONAL INDICATOR SYMBOL LETTERS TR', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS TT', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbb" => 'REGIONAL INDICATOR SYMBOL LETTERS TV', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS TW', + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS TZ', + "\xf0\x9f\x87\xba\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS UA', + "\xf0\x9f\x87\xba\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS UG', + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS UM', + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS US', + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbe" => 'REGIONAL INDICATOR SYMBOL LETTERS UY', + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbf" => 'REGIONAL INDICATOR SYMBOL LETTERS UZ', + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS VA', + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa8" => 'REGIONAL INDICATOR SYMBOL LETTERS VC', + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS VE', + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xac" => 'REGIONAL INDICATOR SYMBOL LETTERS VG', + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xae" => 'REGIONAL INDICATOR SYMBOL LETTERS VI', + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xb3" => 'REGIONAL INDICATOR SYMBOL LETTERS VN', + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xba" => 'REGIONAL INDICATOR SYMBOL LETTERS VU', + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xab" => 'REGIONAL INDICATOR SYMBOL LETTERS WF', + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xb8" => 'REGIONAL INDICATOR SYMBOL LETTERS WS', + "\xf0\x9f\x87\xbd\xf0\x9f\x87\xb0" => 'REGIONAL INDICATOR SYMBOL LETTERS XK', + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xaa" => 'REGIONAL INDICATOR SYMBOL LETTERS YE', + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xb9" => 'REGIONAL INDICATOR SYMBOL LETTERS YT', + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xa6" => 'REGIONAL INDICATOR SYMBOL LETTERS ZA', + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xb2" => 'REGIONAL INDICATOR SYMBOL LETTERS ZM', + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xbc" => 'REGIONAL INDICATOR SYMBOL LETTERS ZW', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa8" => '', + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa8" => '', + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6" => '', + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6" => '', + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7" => '', + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6" => '', + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7" => '', + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa9" => '', + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa9" => '', + ), + 'kaomoji' => array( + ), + 'unified_to_docomo' => array( + "\xc2\xa9"=>"\xee\x9c\xb1", + "\xc2\xae"=>"\xee\x9c\xb6", + "\xe2\x80\xbc"=>"\xee\x9c\x84", + "\xe2\x81\x89"=>"\xee\x9c\x83", + "\xe2\x84\xa2"=>"\xee\x9c\xb2", + "\xe2\x84\xb9"=>"", + "\xe2\x86\x94"=>"\xee\x9c\xbc", + "\xe2\x86\x95"=>"\xee\x9c\xbd", + "\xe2\x86\x96"=>"\xee\x9a\x97", + "\xe2\x86\x97"=>"\xee\x99\xb8", + "\xe2\x86\x98"=>"\xee\x9a\x96", + "\xe2\x86\x99"=>"\xee\x9a\xa5", + "\xe2\x86\xa9"=>"\xee\x9b\x9a", + "\xe2\x86\xaa"=>"", + "\xe2\x8c\x9a"=>"\xee\x9c\x9f", + "\xe2\x8c\x9b"=>"\xee\x9c\x9c", + "\xe2\x8c\xa8"=>"", + "\xe2\x8f\xa9"=>"", + "\xe2\x8f\xaa"=>"", + "\xe2\x8f\xab"=>"", + "\xe2\x8f\xac"=>"", + "\xe2\x8f\xad"=>"", + "\xe2\x8f\xae"=>"", + "\xe2\x8f\xaf"=>"", + "\xe2\x8f\xb0"=>"\xee\x9a\xba", + "\xe2\x8f\xb1"=>"", + "\xe2\x8f\xb2"=>"", + "\xe2\x8f\xb3"=>"\xee\x9c\x9c", + "\xe2\x8f\xb8"=>"", + "\xe2\x8f\xb9"=>"", + "\xe2\x8f\xba"=>"", + "\xe2\x93\x82"=>"\xee\x99\x9c", + "\xe2\x96\xaa"=>"", + "\xe2\x96\xab"=>"", + "\xe2\x96\xb6"=>"", + "\xe2\x97\x80"=>"", + "\xe2\x97\xbb"=>"", + "\xe2\x97\xbc"=>"", + "\xe2\x97\xbd"=>"", + "\xe2\x97\xbe"=>"", + "\xe2\x98\x80"=>"\xee\x98\xbe", + "\xe2\x98\x81"=>"\xee\x98\xbf", + "\xe2\x98\x82"=>"", + "\xe2\x98\x83"=>"", + "\xe2\x98\x84"=>"", + "\xe2\x98\x8e"=>"\xee\x9a\x87", + "\xe2\x98\x91"=>"", + "\xe2\x98\x94"=>"\xee\x99\x80", + "\xe2\x98\x95"=>"\xee\x99\xb0", + "\xe2\x98\x98"=>"", + "\xe2\x98\x9d"=>"", + "\xe2\x98\xa0"=>"", + "\xe2\x98\xa2"=>"", + "\xe2\x98\xa3"=>"", + "\xe2\x98\xa6"=>"", + "\xe2\x98\xaa"=>"", + "\xe2\x98\xae"=>"", + "\xe2\x98\xaf"=>"", + "\xe2\x98\xb8"=>"", + "\xe2\x98\xb9"=>"", + "\xe2\x98\xba"=>"\xee\x9b\xb0", + "\xe2\x99\x88"=>"\xee\x99\x86", + "\xe2\x99\x89"=>"\xee\x99\x87", + "\xe2\x99\x8a"=>"\xee\x99\x88", + "\xe2\x99\x8b"=>"\xee\x99\x89", + "\xe2\x99\x8c"=>"\xee\x99\x8a", + "\xe2\x99\x8d"=>"\xee\x99\x8b", + "\xe2\x99\x8e"=>"\xee\x99\x8c", + "\xe2\x99\x8f"=>"\xee\x99\x8d", + "\xe2\x99\x90"=>"\xee\x99\x8e", + "\xe2\x99\x91"=>"\xee\x99\x8f", + "\xe2\x99\x92"=>"\xee\x99\x90", + "\xe2\x99\x93"=>"\xee\x99\x91", + "\xe2\x99\xa0"=>"\xee\x9a\x8e", + "\xe2\x99\xa3"=>"\xee\x9a\x90", + "\xe2\x99\xa5"=>"\xee\x9a\x8d", + "\xe2\x99\xa6"=>"\xee\x9a\x8f", + "\xe2\x99\xa8"=>"\xee\x9b\xb7", + "\xe2\x99\xbb"=>"\xee\x9c\xb5", + "\xe2\x99\xbf"=>"\xee\x9a\x9b", + "\xe2\x9a\x92"=>"", + "\xe2\x9a\x93"=>"\xee\x99\xa1", + "\xe2\x9a\x94"=>"", + "\xe2\x9a\x96"=>"", + "\xe2\x9a\x97"=>"", + "\xe2\x9a\x99"=>"", + "\xe2\x9a\x9b"=>"", + "\xe2\x9a\x9c"=>"", + "\xe2\x9a\xa0"=>"\xee\x9c\xb7", + "\xe2\x9a\xa1"=>"\xee\x99\x82", + "\xe2\x9a\xaa"=>"\xee\x9a\x9c", + "\xe2\x9a\xab"=>"\xee\x9a\x9c", + "\xe2\x9a\xb0"=>"", + "\xe2\x9a\xb1"=>"", + "\xe2\x9a\xbd"=>"\xee\x99\x96", + "\xe2\x9a\xbe"=>"\xee\x99\x93", + "\xe2\x9b\x84"=>"\xee\x99\x81", + "\xe2\x9b\x85"=>"\xee\x98\xbe\xee\x98\xbf", + "\xe2\x9b\x88"=>"", + "\xe2\x9b\x8e"=>"", + "\xe2\x9b\x8f"=>"", + "\xe2\x9b\x91"=>"", + "\xe2\x9b\x93"=>"", + "\xe2\x9b\x94"=>"\xee\x9c\xaf", + "\xe2\x9b\xa9"=>"", + "\xe2\x9b\xaa"=>"", + "\xe2\x9b\xb0"=>"", + "\xe2\x9b\xb1"=>"", + "\xe2\x9b\xb2"=>"", + "\xe2\x9b\xb3"=>"\xee\x99\x94", + "\xe2\x9b\xb4"=>"", + "\xe2\x9b\xb5"=>"\xee\x9a\xa3", + "\xe2\x9b\xb7"=>"", + "\xe2\x9b\xb8"=>"", + "\xe2\x9b\xb9"=>"", + "\xe2\x9b\xba"=>"", + "\xe2\x9b\xbd"=>"\xee\x99\xab", + "\xe2\x9c\x82"=>"\xee\x99\xb5", + "\xe2\x9c\x85"=>"", + "\xe2\x9c\x88"=>"\xee\x99\xa2", + "\xe2\x9c\x89"=>"\xee\x9b\x93", + "\xe2\x9c\x8a"=>"\xee\x9a\x93", + "\xe2\x9c\x8b"=>"\xee\x9a\x95", + "\xe2\x9c\x8c"=>"\xee\x9a\x94", + "\xe2\x9c\x8d"=>"", + "\xe2\x9c\x8f"=>"\xee\x9c\x99", + "\xe2\x9c\x92"=>"\xee\x9a\xae", + "\xe2\x9c\x94"=>"", + "\xe2\x9c\x96"=>"", + "\xe2\x9c\x9d"=>"", + "\xe2\x9c\xa1"=>"", + "\xe2\x9c\xa8"=>"\xee\x9b\xba", + "\xe2\x9c\xb3"=>"\xee\x9b\xb8", + "\xe2\x9c\xb4"=>"\xee\x9b\xb8", + "\xe2\x9d\x84"=>"", + "\xe2\x9d\x87"=>"\xee\x9b\xba", + "\xe2\x9d\x8c"=>"", + "\xe2\x9d\x8e"=>"", + "\xe2\x9d\x93"=>"", + "\xe2\x9d\x94"=>"", + "\xe2\x9d\x95"=>"\xee\x9c\x82", + "\xe2\x9d\x97"=>"\xee\x9c\x82", + "\xe2\x9d\xa3"=>"", + "\xe2\x9d\xa4"=>"\xee\x9b\xac", + "\xe2\x9e\x95"=>"", + "\xe2\x9e\x96"=>"", + "\xe2\x9e\x97"=>"", + "\xe2\x9e\xa1"=>"", + "\xe2\x9e\xb0"=>"\xee\x9c\x8a", + "\xe2\x9e\xbf"=>"\xee\x9b\x9f", + "\xe2\xa4\xb4"=>"\xee\x9b\xb5", + "\xe2\xa4\xb5"=>"\xee\x9c\x80", + "\xe2\xac\x85"=>"", + "\xe2\xac\x86"=>"", + "\xe2\xac\x87"=>"", + "\xe2\xac\x9b"=>"", + "\xe2\xac\x9c"=>"", + "\xe2\xad\x90"=>"", + "\xe2\xad\x95"=>"\xee\x9a\xa0", + "\xe3\x80\xb0"=>"\xee\x9c\x89", + "\xe3\x80\xbd"=>"", + "\xe3\x8a\x97"=>"", + "\xe3\x8a\x99"=>"\xee\x9c\xb4", + "\xf0\x9f\x80\x84"=>"", + "\xf0\x9f\x83\x8f"=>"", + "\xf0\x9f\x85\xb0"=>"", + "\xf0\x9f\x85\xb1"=>"", + "\xf0\x9f\x85\xbe"=>"", + "\xf0\x9f\x85\xbf"=>"\xee\x99\xac", + "\xf0\x9f\x86\x8e"=>"", + "\xf0\x9f\x86\x91"=>"\xee\x9b\x9b", + "\xf0\x9f\x86\x92"=>"", + "\xf0\x9f\x86\x93"=>"\xee\x9b\x97", + "\xf0\x9f\x86\x94"=>"\xee\x9b\x98", + "\xf0\x9f\x86\x95"=>"\xee\x9b\x9d", + "\xf0\x9f\x86\x96"=>"\xee\x9c\xaf", + "\xf0\x9f\x86\x97"=>"\xee\x9c\x8b", + "\xf0\x9f\x86\x98"=>"", + "\xf0\x9f\x86\x99"=>"", + "\xf0\x9f\x86\x9a"=>"", + "\xf0\x9f\x88\x81"=>"", + "\xf0\x9f\x88\x82"=>"", + "\xf0\x9f\x88\x9a"=>"", + "\xf0\x9f\x88\xaf"=>"", + "\xf0\x9f\x88\xb2"=>"\xee\x9c\xb8", + "\xf0\x9f\x88\xb3"=>"\xee\x9c\xb9", + "\xf0\x9f\x88\xb4"=>"\xee\x9c\xba", + "\xf0\x9f\x88\xb5"=>"\xee\x9c\xbb", + "\xf0\x9f\x88\xb6"=>"", + "\xf0\x9f\x88\xb7"=>"", + "\xf0\x9f\x88\xb8"=>"", + "\xf0\x9f\x88\xb9"=>"", + "\xf0\x9f\x88\xba"=>"", + "\xf0\x9f\x89\x90"=>"", + "\xf0\x9f\x89\x91"=>"", + "\xf0\x9f\x8c\x80"=>"\xee\x99\x83", + "\xf0\x9f\x8c\x81"=>"\xee\x99\x84", + "\xf0\x9f\x8c\x82"=>"\xee\x99\x85", + "\xf0\x9f\x8c\x83"=>"\xee\x9a\xb3", + "\xf0\x9f\x8c\x84"=>"\xee\x98\xbe", + "\xf0\x9f\x8c\x85"=>"\xee\x98\xbe", + "\xf0\x9f\x8c\x86"=>"", + "\xf0\x9f\x8c\x87"=>"\xee\x98\xbe", + "\xf0\x9f\x8c\x88"=>"", + "\xf0\x9f\x8c\x89"=>"\xee\x9a\xb3", + "\xf0\x9f\x8c\x8a"=>"\xee\x9c\xbf", + "\xf0\x9f\x8c\x8b"=>"", + "\xf0\x9f\x8c\x8c"=>"\xee\x9a\xb3", + "\xf0\x9f\x8c\x8d"=>"", + "\xf0\x9f\x8c\x8e"=>"", + "\xf0\x9f\x8c\x8f"=>"", + "\xf0\x9f\x8c\x90"=>"", + "\xf0\x9f\x8c\x91"=>"\xee\x9a\x9c", + "\xf0\x9f\x8c\x92"=>"", + "\xf0\x9f\x8c\x93"=>"\xee\x9a\x9e", + "\xf0\x9f\x8c\x94"=>"\xee\x9a\x9d", + "\xf0\x9f\x8c\x95"=>"\xee\x9a\xa0", + "\xf0\x9f\x8c\x96"=>"", + "\xf0\x9f\x8c\x97"=>"", + "\xf0\x9f\x8c\x98"=>"", + "\xf0\x9f\x8c\x99"=>"\xee\x9a\x9f", + "\xf0\x9f\x8c\x9a"=>"", + "\xf0\x9f\x8c\x9b"=>"\xee\x9a\x9e", + "\xf0\x9f\x8c\x9c"=>"", + "\xf0\x9f\x8c\x9d"=>"", + "\xf0\x9f\x8c\x9e"=>"", + "\xf0\x9f\x8c\x9f"=>"", + "\xf0\x9f\x8c\xa0"=>"", + "\xf0\x9f\x8c\xa1"=>"", + "\xf0\x9f\x8c\xa4"=>"", + "\xf0\x9f\x8c\xa5"=>"", + "\xf0\x9f\x8c\xa6"=>"", + "\xf0\x9f\x8c\xa7"=>"", + "\xf0\x9f\x8c\xa8"=>"", + "\xf0\x9f\x8c\xa9"=>"", + "\xf0\x9f\x8c\xaa"=>"", + "\xf0\x9f\x8c\xab"=>"", + "\xf0\x9f\x8c\xac"=>"", + "\xf0\x9f\x8c\xad"=>"", + "\xf0\x9f\x8c\xae"=>"", + "\xf0\x9f\x8c\xaf"=>"", + "\xf0\x9f\x8c\xb0"=>"", + "\xf0\x9f\x8c\xb1"=>"\xee\x9d\x86", + "\xf0\x9f\x8c\xb2"=>"", + "\xf0\x9f\x8c\xb3"=>"", + "\xf0\x9f\x8c\xb4"=>"", + "\xf0\x9f\x8c\xb5"=>"", + "\xf0\x9f\x8c\xb6"=>"", + "\xf0\x9f\x8c\xb7"=>"\xee\x9d\x83", + "\xf0\x9f\x8c\xb8"=>"\xee\x9d\x88", + "\xf0\x9f\x8c\xb9"=>"", + "\xf0\x9f\x8c\xba"=>"", + "\xf0\x9f\x8c\xbb"=>"", + "\xf0\x9f\x8c\xbc"=>"", + "\xf0\x9f\x8c\xbd"=>"", + "\xf0\x9f\x8c\xbe"=>"", + "\xf0\x9f\x8c\xbf"=>"\xee\x9d\x81", + "\xf0\x9f\x8d\x80"=>"\xee\x9d\x81", + "\xf0\x9f\x8d\x81"=>"\xee\x9d\x87", + "\xf0\x9f\x8d\x82"=>"\xee\x9d\x87", + "\xf0\x9f\x8d\x83"=>"", + "\xf0\x9f\x8d\x84"=>"", + "\xf0\x9f\x8d\x85"=>"", + "\xf0\x9f\x8d\x86"=>"", + "\xf0\x9f\x8d\x87"=>"", + "\xf0\x9f\x8d\x88"=>"", + "\xf0\x9f\x8d\x89"=>"", + "\xf0\x9f\x8d\x8a"=>"", + "\xf0\x9f\x8d\x8b"=>"", + "\xf0\x9f\x8d\x8c"=>"\xee\x9d\x84", + "\xf0\x9f\x8d\x8d"=>"", + "\xf0\x9f\x8d\x8e"=>"\xee\x9d\x85", + "\xf0\x9f\x8d\x8f"=>"\xee\x9d\x85", + "\xf0\x9f\x8d\x90"=>"", + "\xf0\x9f\x8d\x91"=>"", + "\xf0\x9f\x8d\x92"=>"\xee\x9d\x82", + "\xf0\x9f\x8d\x93"=>"", + "\xf0\x9f\x8d\x94"=>"\xee\x99\xb3", + "\xf0\x9f\x8d\x95"=>"", + "\xf0\x9f\x8d\x96"=>"", + "\xf0\x9f\x8d\x97"=>"", + "\xf0\x9f\x8d\x98"=>"", + "\xf0\x9f\x8d\x99"=>"\xee\x9d\x89", + "\xf0\x9f\x8d\x9a"=>"\xee\x9d\x8c", + "\xf0\x9f\x8d\x9b"=>"", + "\xf0\x9f\x8d\x9c"=>"\xee\x9d\x8c", + "\xf0\x9f\x8d\x9d"=>"", + "\xf0\x9f\x8d\x9e"=>"\xee\x9d\x8d", + "\xf0\x9f\x8d\x9f"=>"", + "\xf0\x9f\x8d\xa0"=>"", + "\xf0\x9f\x8d\xa1"=>"", + "\xf0\x9f\x8d\xa2"=>"", + "\xf0\x9f\x8d\xa3"=>"", + "\xf0\x9f\x8d\xa4"=>"", + "\xf0\x9f\x8d\xa5"=>"\xee\x99\x83", + "\xf0\x9f\x8d\xa6"=>"", + "\xf0\x9f\x8d\xa7"=>"", + "\xf0\x9f\x8d\xa8"=>"", + "\xf0\x9f\x8d\xa9"=>"", + "\xf0\x9f\x8d\xaa"=>"", + "\xf0\x9f\x8d\xab"=>"", + "\xf0\x9f\x8d\xac"=>"", + "\xf0\x9f\x8d\xad"=>"", + "\xf0\x9f\x8d\xae"=>"", + "\xf0\x9f\x8d\xaf"=>"", + "\xf0\x9f\x8d\xb0"=>"\xee\x9d\x8a", + "\xf0\x9f\x8d\xb1"=>"", + "\xf0\x9f\x8d\xb2"=>"", + "\xf0\x9f\x8d\xb3"=>"", + "\xf0\x9f\x8d\xb4"=>"\xee\x99\xaf", + "\xf0\x9f\x8d\xb5"=>"\xee\x9c\x9e", + "\xf0\x9f\x8d\xb6"=>"\xee\x9d\x8b", + "\xf0\x9f\x8d\xb7"=>"\xee\x9d\x96", + "\xf0\x9f\x8d\xb8"=>"\xee\x99\xb1", + "\xf0\x9f\x8d\xb9"=>"\xee\x99\xb1", + "\xf0\x9f\x8d\xba"=>"\xee\x99\xb2", + "\xf0\x9f\x8d\xbb"=>"\xee\x99\xb2", + "\xf0\x9f\x8d\xbc"=>"", + "\xf0\x9f\x8d\xbd"=>"", + "\xf0\x9f\x8d\xbe"=>"", + "\xf0\x9f\x8d\xbf"=>"", + "\xf0\x9f\x8e\x80"=>"\xee\x9a\x84", + "\xf0\x9f\x8e\x81"=>"\xee\x9a\x85", + "\xf0\x9f\x8e\x82"=>"\xee\x9a\x86", + "\xf0\x9f\x8e\x83"=>"", + "\xf0\x9f\x8e\x84"=>"\xee\x9a\xa4", + "\xf0\x9f\x8e\x85"=>"", + "\xf0\x9f\x8e\x86"=>"", + "\xf0\x9f\x8e\x87"=>"", + "\xf0\x9f\x8e\x88"=>"", + "\xf0\x9f\x8e\x89"=>"", + "\xf0\x9f\x8e\x8a"=>"", + "\xf0\x9f\x8e\x8b"=>"", + "\xf0\x9f\x8e\x8c"=>"", + "\xf0\x9f\x8e\x8d"=>"", + "\xf0\x9f\x8e\x8e"=>"", + "\xf0\x9f\x8e\x8f"=>"", + "\xf0\x9f\x8e\x90"=>"", + "\xf0\x9f\x8e\x91"=>"", + "\xf0\x9f\x8e\x92"=>"", + "\xf0\x9f\x8e\x93"=>"", + "\xf0\x9f\x8e\x96"=>"", + "\xf0\x9f\x8e\x97"=>"", + "\xf0\x9f\x8e\x99"=>"", + "\xf0\x9f\x8e\x9a"=>"", + "\xf0\x9f\x8e\x9b"=>"", + "\xf0\x9f\x8e\x9e"=>"", + "\xf0\x9f\x8e\x9f"=>"", + "\xf0\x9f\x8e\xa0"=>"\xee\x99\xb9", + "\xf0\x9f\x8e\xa1"=>"", + "\xf0\x9f\x8e\xa2"=>"", + "\xf0\x9f\x8e\xa3"=>"\xee\x9d\x91", + "\xf0\x9f\x8e\xa4"=>"\xee\x99\xb6", + "\xf0\x9f\x8e\xa5"=>"\xee\x99\xb7", + "\xf0\x9f\x8e\xa6"=>"\xee\x99\xb7", + "\xf0\x9f\x8e\xa7"=>"\xee\x99\xba", + "\xf0\x9f\x8e\xa8"=>"\xee\x99\xbb", + "\xf0\x9f\x8e\xa9"=>"\xee\x99\xbc", + "\xf0\x9f\x8e\xaa"=>"\xee\x99\xbd", + "\xf0\x9f\x8e\xab"=>"\xee\x99\xbe", + "\xf0\x9f\x8e\xac"=>"\xee\x9a\xac", + "\xf0\x9f\x8e\xad"=>"", + "\xf0\x9f\x8e\xae"=>"\xee\x9a\x8b", + "\xf0\x9f\x8e\xaf"=>"", + "\xf0\x9f\x8e\xb0"=>"", + "\xf0\x9f\x8e\xb1"=>"", + "\xf0\x9f\x8e\xb2"=>"", + "\xf0\x9f\x8e\xb3"=>"", + "\xf0\x9f\x8e\xb4"=>"", + "\xf0\x9f\x8e\xb5"=>"\xee\x9b\xb6", + "\xf0\x9f\x8e\xb6"=>"\xee\x9b\xbf", + "\xf0\x9f\x8e\xb7"=>"", + "\xf0\x9f\x8e\xb8"=>"", + "\xf0\x9f\x8e\xb9"=>"", + "\xf0\x9f\x8e\xba"=>"", + "\xf0\x9f\x8e\xbb"=>"", + "\xf0\x9f\x8e\xbc"=>"\xee\x9b\xbf", + "\xf0\x9f\x8e\xbd"=>"\xee\x99\x92", + "\xf0\x9f\x8e\xbe"=>"\xee\x99\x95", + "\xf0\x9f\x8e\xbf"=>"\xee\x99\x97", + "\xf0\x9f\x8f\x80"=>"\xee\x99\x98", + "\xf0\x9f\x8f\x81"=>"\xee\x99\x99", + "\xf0\x9f\x8f\x82"=>"\xee\x9c\x92", + "\xf0\x9f\x8f\x83"=>"\xee\x9c\xb3", + "\xf0\x9f\x8f\x84"=>"\xee\x9c\x92", + "\xf0\x9f\x8f\x85"=>"", + "\xf0\x9f\x8f\x86"=>"", + "\xf0\x9f\x8f\x87"=>"", + "\xf0\x9f\x8f\x88"=>"", + "\xf0\x9f\x8f\x89"=>"", + "\xf0\x9f\x8f\x8a"=>"", + "\xf0\x9f\x8f\x8b"=>"", + "\xf0\x9f\x8f\x8c"=>"", + "\xf0\x9f\x8f\x8d"=>"", + "\xf0\x9f\x8f\x8e"=>"", + "\xf0\x9f\x8f\x8f"=>"", + "\xf0\x9f\x8f\x90"=>"", + "\xf0\x9f\x8f\x91"=>"", + "\xf0\x9f\x8f\x92"=>"", + "\xf0\x9f\x8f\x93"=>"", + "\xf0\x9f\x8f\x94"=>"", + "\xf0\x9f\x8f\x95"=>"", + "\xf0\x9f\x8f\x96"=>"", + "\xf0\x9f\x8f\x97"=>"", + "\xf0\x9f\x8f\x98"=>"", + "\xf0\x9f\x8f\x99"=>"", + "\xf0\x9f\x8f\x9a"=>"", + "\xf0\x9f\x8f\x9b"=>"", + "\xf0\x9f\x8f\x9c"=>"", + "\xf0\x9f\x8f\x9d"=>"", + "\xf0\x9f\x8f\x9e"=>"", + "\xf0\x9f\x8f\x9f"=>"", + "\xf0\x9f\x8f\xa0"=>"\xee\x99\xa3", + "\xf0\x9f\x8f\xa1"=>"\xee\x99\xa3", + "\xf0\x9f\x8f\xa2"=>"\xee\x99\xa4", + "\xf0\x9f\x8f\xa3"=>"\xee\x99\xa5", + "\xf0\x9f\x8f\xa4"=>"", + "\xf0\x9f\x8f\xa5"=>"\xee\x99\xa6", + "\xf0\x9f\x8f\xa6"=>"\xee\x99\xa7", + "\xf0\x9f\x8f\xa7"=>"\xee\x99\xa8", + "\xf0\x9f\x8f\xa8"=>"\xee\x99\xa9", + "\xf0\x9f\x8f\xa9"=>"\xee\x99\xa9\xee\x9b\xaf", + "\xf0\x9f\x8f\xaa"=>"\xee\x99\xaa", + "\xf0\x9f\x8f\xab"=>"\xee\x9c\xbe", + "\xf0\x9f\x8f\xac"=>"", + "\xf0\x9f\x8f\xad"=>"", + "\xf0\x9f\x8f\xae"=>"\xee\x9d\x8b", + "\xf0\x9f\x8f\xaf"=>"", + "\xf0\x9f\x8f\xb0"=>"", + "\xf0\x9f\x8f\xb3"=>"", + "\xf0\x9f\x8f\xb4"=>"", + "\xf0\x9f\x8f\xb5"=>"", + "\xf0\x9f\x8f\xb7"=>"", + "\xf0\x9f\x8f\xb8"=>"", + "\xf0\x9f\x8f\xb9"=>"", + "\xf0\x9f\x8f\xba"=>"", + "\xf0\x9f\x8f\xbb"=>"", + "\xf0\x9f\x8f\xbc"=>"", + "\xf0\x9f\x8f\xbd"=>"", + "\xf0\x9f\x8f\xbe"=>"", + "\xf0\x9f\x8f\xbf"=>"", + "\xf0\x9f\x90\x80"=>"", + "\xf0\x9f\x90\x81"=>"", + "\xf0\x9f\x90\x82"=>"", + "\xf0\x9f\x90\x83"=>"", + "\xf0\x9f\x90\x84"=>"", + "\xf0\x9f\x90\x85"=>"", + "\xf0\x9f\x90\x86"=>"", + "\xf0\x9f\x90\x87"=>"", + "\xf0\x9f\x90\x88"=>"", + "\xf0\x9f\x90\x89"=>"", + "\xf0\x9f\x90\x8a"=>"", + "\xf0\x9f\x90\x8b"=>"", + "\xf0\x9f\x90\x8c"=>"\xee\x9d\x8e", + "\xf0\x9f\x90\x8d"=>"", + "\xf0\x9f\x90\x8e"=>"\xee\x9d\x94", + "\xf0\x9f\x90\x8f"=>"", + "\xf0\x9f\x90\x90"=>"", + "\xf0\x9f\x90\x91"=>"", + "\xf0\x9f\x90\x92"=>"", + "\xf0\x9f\x90\x93"=>"", + "\xf0\x9f\x90\x94"=>"", + "\xf0\x9f\x90\x95"=>"", + "\xf0\x9f\x90\x96"=>"", + "\xf0\x9f\x90\x97"=>"", + "\xf0\x9f\x90\x98"=>"", + "\xf0\x9f\x90\x99"=>"", + "\xf0\x9f\x90\x9a"=>"", + "\xf0\x9f\x90\x9b"=>"", + "\xf0\x9f\x90\x9c"=>"", + "\xf0\x9f\x90\x9d"=>"", + "\xf0\x9f\x90\x9e"=>"", + "\xf0\x9f\x90\x9f"=>"\xee\x9d\x91", + "\xf0\x9f\x90\xa0"=>"\xee\x9d\x91", + "\xf0\x9f\x90\xa1"=>"\xee\x9d\x91", + "\xf0\x9f\x90\xa2"=>"", + "\xf0\x9f\x90\xa3"=>"\xee\x9d\x8f", + "\xf0\x9f\x90\xa4"=>"\xee\x9d\x8f", + "\xf0\x9f\x90\xa5"=>"\xee\x9d\x8f", + "\xf0\x9f\x90\xa6"=>"\xee\x9d\x8f", + "\xf0\x9f\x90\xa7"=>"\xee\x9d\x90", + "\xf0\x9f\x90\xa8"=>"", + "\xf0\x9f\x90\xa9"=>"\xee\x9a\xa1", + "\xf0\x9f\x90\xaa"=>"", + "\xf0\x9f\x90\xab"=>"", + "\xf0\x9f\x90\xac"=>"", + "\xf0\x9f\x90\xad"=>"", + "\xf0\x9f\x90\xae"=>"", + "\xf0\x9f\x90\xaf"=>"", + "\xf0\x9f\x90\xb0"=>"", + "\xf0\x9f\x90\xb1"=>"\xee\x9a\xa2", + "\xf0\x9f\x90\xb2"=>"", + "\xf0\x9f\x90\xb3"=>"", + "\xf0\x9f\x90\xb4"=>"\xee\x9d\x94", + "\xf0\x9f\x90\xb5"=>"", + "\xf0\x9f\x90\xb6"=>"\xee\x9a\xa1", + "\xf0\x9f\x90\xb7"=>"\xee\x9d\x95", + "\xf0\x9f\x90\xb8"=>"", + "\xf0\x9f\x90\xb9"=>"", + "\xf0\x9f\x90\xba"=>"\xee\x9a\xa1", + "\xf0\x9f\x90\xbb"=>"", + "\xf0\x9f\x90\xbc"=>"", + "\xf0\x9f\x90\xbd"=>"\xee\x9d\x95", + "\xf0\x9f\x90\xbe"=>"\xee\x9a\x98", + "\xf0\x9f\x90\xbf"=>"", + "\xf0\x9f\x91\x80"=>"\xee\x9a\x91", + "\xf0\x9f\x91\x81"=>"", + "\xf0\x9f\x91\x82"=>"\xee\x9a\x92", + "\xf0\x9f\x91\x83"=>"", + "\xf0\x9f\x91\x84"=>"\xee\x9b\xb9", + "\xf0\x9f\x91\x85"=>"\xee\x9c\xa8", + "\xf0\x9f\x91\x86"=>"", + "\xf0\x9f\x91\x87"=>"", + "\xf0\x9f\x91\x88"=>"", + "\xf0\x9f\x91\x89"=>"", + "\xf0\x9f\x91\x8a"=>"\xee\x9b\xbd", + "\xf0\x9f\x91\x8b"=>"\xee\x9a\x95", + "\xf0\x9f\x91\x8c"=>"\xee\x9c\x8b", + "\xf0\x9f\x91\x8d"=>"\xee\x9c\xa7", + "\xf0\x9f\x91\x8e"=>"\xee\x9c\x80", + "\xf0\x9f\x91\x8f"=>"", + "\xf0\x9f\x91\x90"=>"\xee\x9a\x95", + "\xf0\x9f\x91\x91"=>"\xee\x9c\x9a", + "\xf0\x9f\x91\x92"=>"", + "\xf0\x9f\x91\x93"=>"\xee\x9a\x9a", + "\xf0\x9f\x91\x94"=>"", + "\xf0\x9f\x91\x95"=>"\xee\x9c\x8e", + "\xf0\x9f\x91\x96"=>"\xee\x9c\x91", + "\xf0\x9f\x91\x97"=>"", + "\xf0\x9f\x91\x98"=>"", + "\xf0\x9f\x91\x99"=>"", + "\xf0\x9f\x91\x9a"=>"\xee\x9c\x8e", + "\xf0\x9f\x91\x9b"=>"\xee\x9c\x8f", + "\xf0\x9f\x91\x9c"=>"\xee\x9a\x82", + "\xf0\x9f\x91\x9d"=>"\xee\x9a\xad", + "\xf0\x9f\x91\x9e"=>"\xee\x9a\x99", + "\xf0\x9f\x91\x9f"=>"\xee\x9a\x99", + "\xf0\x9f\x91\xa0"=>"\xee\x99\xb4", + "\xf0\x9f\x91\xa1"=>"\xee\x99\xb4", + "\xf0\x9f\x91\xa2"=>"", + "\xf0\x9f\x91\xa3"=>"\xee\x9a\x98", + "\xf0\x9f\x91\xa4"=>"\xee\x9a\xb1", + "\xf0\x9f\x91\xa5"=>"", + "\xf0\x9f\x91\xa6"=>"\xee\x9b\xb0", + "\xf0\x9f\x91\xa7"=>"\xee\x9b\xb0", + "\xf0\x9f\x91\xa8"=>"\xee\x9b\xb0", + "\xf0\x9f\x91\xa9"=>"\xee\x9b\xb0", + "\xf0\x9f\x91\xaa"=>"", + "\xf0\x9f\x91\xab"=>"", + "\xf0\x9f\x91\xac"=>"", + "\xf0\x9f\x91\xad"=>"", + "\xf0\x9f\x91\xae"=>"", + "\xf0\x9f\x91\xaf"=>"", + "\xf0\x9f\x91\xb0"=>"", + "\xf0\x9f\x91\xb1"=>"", + "\xf0\x9f\x91\xb2"=>"", + "\xf0\x9f\x91\xb3"=>"", + "\xf0\x9f\x91\xb4"=>"", + "\xf0\x9f\x91\xb5"=>"", + "\xf0\x9f\x91\xb6"=>"", + "\xf0\x9f\x91\xb7"=>"", + "\xf0\x9f\x91\xb8"=>"", + "\xf0\x9f\x91\xb9"=>"", + "\xf0\x9f\x91\xba"=>"", + "\xf0\x9f\x91\xbb"=>"", + "\xf0\x9f\x91\xbc"=>"", + "\xf0\x9f\x91\xbd"=>"", + "\xf0\x9f\x91\xbe"=>"", + "\xf0\x9f\x91\xbf"=>"", + "\xf0\x9f\x92\x80"=>"", + "\xf0\x9f\x92\x81"=>"", + "\xf0\x9f\x92\x82"=>"", + "\xf0\x9f\x92\x83"=>"", + "\xf0\x9f\x92\x84"=>"\xee\x9c\x90", + "\xf0\x9f\x92\x85"=>"", + "\xf0\x9f\x92\x86"=>"", + "\xf0\x9f\x92\x87"=>"\xee\x99\xb5", + "\xf0\x9f\x92\x88"=>"", + "\xf0\x9f\x92\x89"=>"", + "\xf0\x9f\x92\x8a"=>"", + "\xf0\x9f\x92\x8b"=>"\xee\x9b\xb9", + "\xf0\x9f\x92\x8c"=>"\xee\x9c\x97", + "\xf0\x9f\x92\x8d"=>"\xee\x9c\x9b", + "\xf0\x9f\x92\x8e"=>"\xee\x9c\x9b", + "\xf0\x9f\x92\x8f"=>"\xee\x9b\xb9", + "\xf0\x9f\x92\x90"=>"", + "\xf0\x9f\x92\x91"=>"\xee\x9b\xad", + "\xf0\x9f\x92\x92"=>"", + "\xf0\x9f\x92\x93"=>"\xee\x9b\xad", + "\xf0\x9f\x92\x94"=>"\xee\x9b\xae", + "\xf0\x9f\x92\x95"=>"\xee\x9b\xaf", + "\xf0\x9f\x92\x96"=>"\xee\x9b\xac", + "\xf0\x9f\x92\x97"=>"\xee\x9b\xad", + "\xf0\x9f\x92\x98"=>"\xee\x9b\xac", + "\xf0\x9f\x92\x99"=>"\xee\x9b\xac", + "\xf0\x9f\x92\x9a"=>"\xee\x9b\xac", + "\xf0\x9f\x92\x9b"=>"\xee\x9b\xac", + "\xf0\x9f\x92\x9c"=>"\xee\x9b\xac", + "\xf0\x9f\x92\x9d"=>"\xee\x9b\xac", + "\xf0\x9f\x92\x9e"=>"\xee\x9b\xad", + "\xf0\x9f\x92\x9f"=>"\xee\x9b\xb8", + "\xf0\x9f\x92\xa0"=>"\xee\x9b\xb8", + "\xf0\x9f\x92\xa1"=>"\xee\x9b\xbb", + "\xf0\x9f\x92\xa2"=>"\xee\x9b\xbc", + "\xf0\x9f\x92\xa3"=>"\xee\x9b\xbe", + "\xf0\x9f\x92\xa4"=>"\xee\x9c\x81", + "\xf0\x9f\x92\xa5"=>"\xee\x9c\x85", + "\xf0\x9f\x92\xa6"=>"\xee\x9c\x86", + "\xf0\x9f\x92\xa7"=>"\xee\x9c\x87", + "\xf0\x9f\x92\xa8"=>"\xee\x9c\x88", + "\xf0\x9f\x92\xa9"=>"", + "\xf0\x9f\x92\xaa"=>"", + "\xf0\x9f\x92\xab"=>"", + "\xf0\x9f\x92\xac"=>"", + "\xf0\x9f\x92\xad"=>"", + "\xf0\x9f\x92\xae"=>"", + "\xf0\x9f\x92\xaf"=>"", + "\xf0\x9f\x92\xb0"=>"\xee\x9c\x95", + "\xf0\x9f\x92\xb1"=>"", + "\xf0\x9f\x92\xb2"=>"\xee\x9c\x95", + "\xf0\x9f\x92\xb3"=>"", + "\xf0\x9f\x92\xb4"=>"\xee\x9b\x96", + "\xf0\x9f\x92\xb5"=>"\xee\x9c\x95", + "\xf0\x9f\x92\xb6"=>"", + "\xf0\x9f\x92\xb7"=>"", + "\xf0\x9f\x92\xb8"=>"", + "\xf0\x9f\x92\xb9"=>"", + "\xf0\x9f\x92\xba"=>"\xee\x9a\xb2", + "\xf0\x9f\x92\xbb"=>"\xee\x9c\x96", + "\xf0\x9f\x92\xbc"=>"\xee\x9a\x82", + "\xf0\x9f\x92\xbd"=>"", + "\xf0\x9f\x92\xbe"=>"", + "\xf0\x9f\x92\xbf"=>"\xee\x9a\x8c", + "\xf0\x9f\x93\x80"=>"\xee\x9a\x8c", + "\xf0\x9f\x93\x81"=>"", + "\xf0\x9f\x93\x82"=>"", + "\xf0\x9f\x93\x83"=>"\xee\x9a\x89", + "\xf0\x9f\x93\x84"=>"\xee\x9a\x89", + "\xf0\x9f\x93\x85"=>"", + "\xf0\x9f\x93\x86"=>"", + "\xf0\x9f\x93\x87"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x88"=>"", + "\xf0\x9f\x93\x89"=>"", + "\xf0\x9f\x93\x8a"=>"", + "\xf0\x9f\x93\x8b"=>"\xee\x9a\x89", + "\xf0\x9f\x93\x8c"=>"", + "\xf0\x9f\x93\x8d"=>"", + "\xf0\x9f\x93\x8e"=>"\xee\x9c\xb0", + "\xf0\x9f\x93\x8f"=>"", + "\xf0\x9f\x93\x90"=>"", + "\xf0\x9f\x93\x91"=>"\xee\x9a\x89", + "\xf0\x9f\x93\x92"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x93"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x94"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x95"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x96"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x97"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x98"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x99"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x9a"=>"\xee\x9a\x83", + "\xf0\x9f\x93\x9b"=>"", + "\xf0\x9f\x93\x9c"=>"\xee\x9c\x8a", + "\xf0\x9f\x93\x9d"=>"\xee\x9a\x89", + "\xf0\x9f\x93\x9e"=>"\xee\x9a\x87", + "\xf0\x9f\x93\x9f"=>"\xee\x99\x9a", + "\xf0\x9f\x93\xa0"=>"\xee\x9b\x90", + "\xf0\x9f\x93\xa1"=>"", + "\xf0\x9f\x93\xa2"=>"", + "\xf0\x9f\x93\xa3"=>"", + "\xf0\x9f\x93\xa4"=>"", + "\xf0\x9f\x93\xa5"=>"", + "\xf0\x9f\x93\xa6"=>"\xee\x9a\x85", + "\xf0\x9f\x93\xa7"=>"\xee\x9b\x93", + "\xf0\x9f\x93\xa8"=>"\xee\x9b\x8f", + "\xf0\x9f\x93\xa9"=>"\xee\x9b\x8f", + "\xf0\x9f\x93\xaa"=>"\xee\x99\xa5", + "\xf0\x9f\x93\xab"=>"\xee\x99\xa5", + "\xf0\x9f\x93\xac"=>"", + "\xf0\x9f\x93\xad"=>"", + "\xf0\x9f\x93\xae"=>"\xee\x99\xa5", + "\xf0\x9f\x93\xaf"=>"", + "\xf0\x9f\x93\xb0"=>"", + "\xf0\x9f\x93\xb1"=>"\xee\x9a\x88", + "\xf0\x9f\x93\xb2"=>"\xee\x9b\x8e", + "\xf0\x9f\x93\xb3"=>"", + "\xf0\x9f\x93\xb4"=>"", + "\xf0\x9f\x93\xb5"=>"", + "\xf0\x9f\x93\xb6"=>"", + "\xf0\x9f\x93\xb7"=>"\xee\x9a\x81", + "\xf0\x9f\x93\xb8"=>"", + "\xf0\x9f\x93\xb9"=>"\xee\x99\xb7", + "\xf0\x9f\x93\xba"=>"\xee\x9a\x8a", + "\xf0\x9f\x93\xbb"=>"", + "\xf0\x9f\x93\xbc"=>"", + "\xf0\x9f\x93\xbd"=>"", + "\xf0\x9f\x93\xbf"=>"", + "\xf0\x9f\x94\x80"=>"", + "\xf0\x9f\x94\x81"=>"", + "\xf0\x9f\x94\x82"=>"", + "\xf0\x9f\x94\x83"=>"\xee\x9c\xb5", + "\xf0\x9f\x94\x84"=>"", + "\xf0\x9f\x94\x85"=>"", + "\xf0\x9f\x94\x86"=>"", + "\xf0\x9f\x94\x87"=>"", + "\xf0\x9f\x94\x88"=>"", + "\xf0\x9f\x94\x89"=>"", + "\xf0\x9f\x94\x8a"=>"", + "\xf0\x9f\x94\x8b"=>"", + "\xf0\x9f\x94\x8c"=>"", + "\xf0\x9f\x94\x8d"=>"\xee\x9b\x9c", + "\xf0\x9f\x94\x8e"=>"\xee\x9b\x9c", + "\xf0\x9f\x94\x8f"=>"\xee\x9b\x99", + "\xf0\x9f\x94\x90"=>"\xee\x9b\x99", + "\xf0\x9f\x94\x91"=>"\xee\x9b\x99", + "\xf0\x9f\x94\x92"=>"\xee\x9b\x99", + "\xf0\x9f\x94\x93"=>"\xee\x9b\x99", + "\xf0\x9f\x94\x94"=>"\xee\x9c\x93", + "\xf0\x9f\x94\x95"=>"", + "\xf0\x9f\x94\x96"=>"", + "\xf0\x9f\x94\x97"=>"", + "\xf0\x9f\x94\x98"=>"", + "\xf0\x9f\x94\x99"=>"", + "\xf0\x9f\x94\x9a"=>"\xee\x9a\xb9", + "\xf0\x9f\x94\x9b"=>"\xee\x9a\xb8", + "\xf0\x9f\x94\x9c"=>"\xee\x9a\xb7", + "\xf0\x9f\x94\x9d"=>"", + "\xf0\x9f\x94\x9e"=>"", + "\xf0\x9f\x94\x9f"=>"", + "\xf0\x9f\x94\xa0"=>"", + "\xf0\x9f\x94\xa1"=>"", + "\xf0\x9f\x94\xa2"=>"", + "\xf0\x9f\x94\xa3"=>"", + "\xf0\x9f\x94\xa4"=>"", + "\xf0\x9f\x94\xa5"=>"", + "\xf0\x9f\x94\xa6"=>"\xee\x9b\xbb", + "\xf0\x9f\x94\xa7"=>"\xee\x9c\x98", + "\xf0\x9f\x94\xa8"=>"", + "\xf0\x9f\x94\xa9"=>"", + "\xf0\x9f\x94\xaa"=>"", + "\xf0\x9f\x94\xab"=>"", + "\xf0\x9f\x94\xac"=>"", + "\xf0\x9f\x94\xad"=>"", + "\xf0\x9f\x94\xae"=>"", + "\xf0\x9f\x94\xaf"=>"", + "\xf0\x9f\x94\xb0"=>"", + "\xf0\x9f\x94\xb1"=>"\xee\x9c\x9a", + "\xf0\x9f\x94\xb2"=>"\xee\x9a\x9c", + "\xf0\x9f\x94\xb3"=>"\xee\x9a\x9c", + "\xf0\x9f\x94\xb4"=>"\xee\x9a\x9c", + "\xf0\x9f\x94\xb5"=>"\xee\x9a\x9c", + "\xf0\x9f\x94\xb6"=>"", + "\xf0\x9f\x94\xb7"=>"", + "\xf0\x9f\x94\xb8"=>"", + "\xf0\x9f\x94\xb9"=>"", + "\xf0\x9f\x94\xba"=>"", + "\xf0\x9f\x94\xbb"=>"", + "\xf0\x9f\x94\xbc"=>"", + "\xf0\x9f\x94\xbd"=>"", + "\xf0\x9f\x95\x89"=>"", + "\xf0\x9f\x95\x8a"=>"", + "\xf0\x9f\x95\x8b"=>"", + "\xf0\x9f\x95\x8c"=>"", + "\xf0\x9f\x95\x8d"=>"", + "\xf0\x9f\x95\x8e"=>"", + "\xf0\x9f\x95\x90"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x91"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x92"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x93"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x94"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x95"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x96"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x97"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x98"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x99"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x9a"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x9b"=>"\xee\x9a\xba", + "\xf0\x9f\x95\x9c"=>"", + "\xf0\x9f\x95\x9d"=>"", + "\xf0\x9f\x95\x9e"=>"", + "\xf0\x9f\x95\x9f"=>"", + "\xf0\x9f\x95\xa0"=>"", + "\xf0\x9f\x95\xa1"=>"", + "\xf0\x9f\x95\xa2"=>"", + "\xf0\x9f\x95\xa3"=>"", + "\xf0\x9f\x95\xa4"=>"", + "\xf0\x9f\x95\xa5"=>"", + "\xf0\x9f\x95\xa6"=>"", + "\xf0\x9f\x95\xa7"=>"", + "\xf0\x9f\x95\xaf"=>"", + "\xf0\x9f\x95\xb0"=>"", + "\xf0\x9f\x95\xb3"=>"", + "\xf0\x9f\x95\xb4"=>"", + "\xf0\x9f\x95\xb5"=>"", + "\xf0\x9f\x95\xb6"=>"", + "\xf0\x9f\x95\xb7"=>"", + "\xf0\x9f\x95\xb8"=>"", + "\xf0\x9f\x95\xb9"=>"", + "\xf0\x9f\x96\x87"=>"", + "\xf0\x9f\x96\x8a"=>"", + "\xf0\x9f\x96\x8b"=>"", + "\xf0\x9f\x96\x8c"=>"", + "\xf0\x9f\x96\x8d"=>"", + "\xf0\x9f\x96\x90"=>"", + "\xf0\x9f\x96\x95"=>"", + "\xf0\x9f\x96\x96"=>"", + "\xf0\x9f\x96\xa5"=>"", + "\xf0\x9f\x96\xa8"=>"", + "\xf0\x9f\x96\xb1"=>"", + "\xf0\x9f\x96\xb2"=>"", + "\xf0\x9f\x96\xbc"=>"", + "\xf0\x9f\x97\x82"=>"", + "\xf0\x9f\x97\x83"=>"", + "\xf0\x9f\x97\x84"=>"", + "\xf0\x9f\x97\x91"=>"", + "\xf0\x9f\x97\x92"=>"", + "\xf0\x9f\x97\x93"=>"", + "\xf0\x9f\x97\x9c"=>"", + "\xf0\x9f\x97\x9d"=>"", + "\xf0\x9f\x97\x9e"=>"", + "\xf0\x9f\x97\xa1"=>"", + "\xf0\x9f\x97\xa3"=>"", + "\xf0\x9f\x97\xa8"=>"", + "\xf0\x9f\x97\xaf"=>"", + "\xf0\x9f\x97\xb3"=>"", + "\xf0\x9f\x97\xba"=>"", + "\xf0\x9f\x97\xbb"=>"\xee\x9d\x80", + "\xf0\x9f\x97\xbc"=>"", + "\xf0\x9f\x97\xbd"=>"", + "\xf0\x9f\x97\xbe"=>"", + "\xf0\x9f\x97\xbf"=>"", + "\xf0\x9f\x98\x80"=>"", + "\xf0\x9f\x98\x81"=>"\xee\x9d\x93", + "\xf0\x9f\x98\x82"=>"\xee\x9c\xaa", + "\xf0\x9f\x98\x83"=>"\xee\x9b\xb0", + "\xf0\x9f\x98\x84"=>"\xee\x9b\xb0", + "\xf0\x9f\x98\x85"=>"\xee\x9c\xa2", + "\xf0\x9f\x98\x86"=>"\xee\x9c\xaa", + "\xf0\x9f\x98\x87"=>"", + "\xf0\x9f\x98\x88"=>"", + "\xf0\x9f\x98\x89"=>"\xee\x9c\xa9", + "\xf0\x9f\x98\x8a"=>"\xee\x9b\xb0", + "\xf0\x9f\x98\x8b"=>"\xee\x9d\x92", + "\xf0\x9f\x98\x8c"=>"\xee\x9c\xa1", + "\xf0\x9f\x98\x8d"=>"\xee\x9c\xa6", + "\xf0\x9f\x98\x8e"=>"", + "\xf0\x9f\x98\x8f"=>"\xee\x9c\xac", + "\xf0\x9f\x98\x90"=>"", + "\xf0\x9f\x98\x91"=>"", + "\xf0\x9f\x98\x92"=>"\xee\x9c\xa5", + "\xf0\x9f\x98\x93"=>"\xee\x9c\xa3", + "\xf0\x9f\x98\x94"=>"\xee\x9c\xa0", + "\xf0\x9f\x98\x95"=>"", + "\xf0\x9f\x98\x96"=>"\xee\x9b\xb3", + "\xf0\x9f\x98\x97"=>"", + "\xf0\x9f\x98\x98"=>"\xee\x9c\xa6", + "\xf0\x9f\x98\x99"=>"", + "\xf0\x9f\x98\x9a"=>"\xee\x9c\xa6", + "\xf0\x9f\x98\x9b"=>"", + "\xf0\x9f\x98\x9c"=>"\xee\x9c\xa8", + "\xf0\x9f\x98\x9d"=>"\xee\x9c\xa8", + "\xf0\x9f\x98\x9e"=>"\xee\x9b\xb2", + "\xf0\x9f\x98\x9f"=>"", + "\xf0\x9f\x98\xa0"=>"\xee\x9b\xb1", + "\xf0\x9f\x98\xa1"=>"\xee\x9c\xa4", + "\xf0\x9f\x98\xa2"=>"\xee\x9c\xae", + "\xf0\x9f\x98\xa3"=>"\xee\x9c\xab", + "\xf0\x9f\x98\xa4"=>"\xee\x9d\x93", + "\xf0\x9f\x98\xa5"=>"\xee\x9c\xa3", + "\xf0\x9f\x98\xa6"=>"", + "\xf0\x9f\x98\xa7"=>"", + "\xf0\x9f\x98\xa8"=>"\xee\x9d\x97", + "\xf0\x9f\x98\xa9"=>"\xee\x9b\xb3", + "\xf0\x9f\x98\xaa"=>"\xee\x9c\x81", + "\xf0\x9f\x98\xab"=>"\xee\x9c\xab", + "\xf0\x9f\x98\xac"=>"", + "\xf0\x9f\x98\xad"=>"\xee\x9c\xad", + "\xf0\x9f\x98\xae"=>"", + "\xf0\x9f\x98\xaf"=>"", + "\xf0\x9f\x98\xb0"=>"\xee\x9c\xa3", + "\xf0\x9f\x98\xb1"=>"\xee\x9d\x97", + "\xf0\x9f\x98\xb2"=>"\xee\x9b\xb4", + "\xf0\x9f\x98\xb3"=>"\xee\x9c\xaa", + "\xf0\x9f\x98\xb4"=>"", + "\xf0\x9f\x98\xb5"=>"\xee\x9b\xb4", + "\xf0\x9f\x98\xb6"=>"", + "\xf0\x9f\x98\xb7"=>"", + "\xf0\x9f\x98\xb8"=>"\xee\x9d\x93", + "\xf0\x9f\x98\xb9"=>"\xee\x9c\xaa", + "\xf0\x9f\x98\xba"=>"\xee\x9b\xb0", + "\xf0\x9f\x98\xbb"=>"\xee\x9c\xa6", + "\xf0\x9f\x98\xbc"=>"\xee\x9d\x93", + "\xf0\x9f\x98\xbd"=>"\xee\x9c\xa6", + "\xf0\x9f\x98\xbe"=>"\xee\x9c\xa4", + "\xf0\x9f\x98\xbf"=>"\xee\x9c\xae", + "\xf0\x9f\x99\x80"=>"\xee\x9b\xb3", + "\xf0\x9f\x99\x81"=>"", + "\xf0\x9f\x99\x82"=>"", + "\xf0\x9f\x99\x83"=>"", + "\xf0\x9f\x99\x84"=>"", + "\xf0\x9f\x99\x85"=>"\xee\x9c\xaf", + "\xf0\x9f\x99\x86"=>"\xee\x9c\x8b", + "\xf0\x9f\x99\x87"=>"", + "\xf0\x9f\x99\x88"=>"", + "\xf0\x9f\x99\x89"=>"", + "\xf0\x9f\x99\x8a"=>"", + "\xf0\x9f\x99\x8b"=>"", + "\xf0\x9f\x99\x8c"=>"", + "\xf0\x9f\x99\x8d"=>"\xee\x9b\xb3", + "\xf0\x9f\x99\x8e"=>"\xee\x9b\xb1", + "\xf0\x9f\x99\x8f"=>"", + "\xf0\x9f\x9a\x80"=>"", + "\xf0\x9f\x9a\x81"=>"", + "\xf0\x9f\x9a\x82"=>"", + "\xf0\x9f\x9a\x83"=>"\xee\x99\x9b", + "\xf0\x9f\x9a\x84"=>"\xee\x99\x9d", + "\xf0\x9f\x9a\x85"=>"\xee\x99\x9d", + "\xf0\x9f\x9a\x86"=>"", + "\xf0\x9f\x9a\x87"=>"\xee\x99\x9c", + "\xf0\x9f\x9a\x88"=>"", + "\xf0\x9f\x9a\x89"=>"", + "\xf0\x9f\x9a\x8a"=>"", + "\xf0\x9f\x9a\x8b"=>"", + "\xf0\x9f\x9a\x8c"=>"\xee\x99\xa0", + "\xf0\x9f\x9a\x8d"=>"", + "\xf0\x9f\x9a\x8e"=>"", + "\xf0\x9f\x9a\x8f"=>"", + "\xf0\x9f\x9a\x90"=>"", + "\xf0\x9f\x9a\x91"=>"", + "\xf0\x9f\x9a\x92"=>"", + "\xf0\x9f\x9a\x93"=>"", + "\xf0\x9f\x9a\x94"=>"", + "\xf0\x9f\x9a\x95"=>"\xee\x99\x9e", + "\xf0\x9f\x9a\x96"=>"", + "\xf0\x9f\x9a\x97"=>"\xee\x99\x9e", + "\xf0\x9f\x9a\x98"=>"", + "\xf0\x9f\x9a\x99"=>"\xee\x99\x9f", + "\xf0\x9f\x9a\x9a"=>"", + "\xf0\x9f\x9a\x9b"=>"", + "\xf0\x9f\x9a\x9c"=>"", + "\xf0\x9f\x9a\x9d"=>"", + "\xf0\x9f\x9a\x9e"=>"", + "\xf0\x9f\x9a\x9f"=>"", + "\xf0\x9f\x9a\xa0"=>"", + "\xf0\x9f\x9a\xa1"=>"", + "\xf0\x9f\x9a\xa2"=>"\xee\x99\xa1", + "\xf0\x9f\x9a\xa3"=>"", + "\xf0\x9f\x9a\xa4"=>"\xee\x9a\xa3", + "\xf0\x9f\x9a\xa5"=>"\xee\x99\xad", + "\xf0\x9f\x9a\xa6"=>"", + "\xf0\x9f\x9a\xa7"=>"", + "\xf0\x9f\x9a\xa8"=>"", + "\xf0\x9f\x9a\xa9"=>"\xee\x9b\x9e", + "\xf0\x9f\x9a\xaa"=>"\xee\x9c\x94", + "\xf0\x9f\x9a\xab"=>"\xee\x9c\xb8", + "\xf0\x9f\x9a\xac"=>"\xee\x99\xbf", + "\xf0\x9f\x9a\xad"=>"\xee\x9a\x80", + "\xf0\x9f\x9a\xae"=>"", + "\xf0\x9f\x9a\xaf"=>"", + "\xf0\x9f\x9a\xb0"=>"", + "\xf0\x9f\x9a\xb1"=>"", + "\xf0\x9f\x9a\xb2"=>"\xee\x9c\x9d", + "\xf0\x9f\x9a\xb3"=>"", + "\xf0\x9f\x9a\xb4"=>"", + "\xf0\x9f\x9a\xb5"=>"", + "\xf0\x9f\x9a\xb6"=>"\xee\x9c\xb3", + "\xf0\x9f\x9a\xb7"=>"", + "\xf0\x9f\x9a\xb8"=>"", + "\xf0\x9f\x9a\xb9"=>"", + "\xf0\x9f\x9a\xba"=>"", + "\xf0\x9f\x9a\xbb"=>"\xee\x99\xae", + "\xf0\x9f\x9a\xbc"=>"", + "\xf0\x9f\x9a\xbd"=>"\xee\x99\xae", + "\xf0\x9f\x9a\xbe"=>"\xee\x99\xae", + "\xf0\x9f\x9a\xbf"=>"", + "\xf0\x9f\x9b\x80"=>"\xee\x9b\xb7", + "\xf0\x9f\x9b\x81"=>"", + "\xf0\x9f\x9b\x82"=>"", + "\xf0\x9f\x9b\x83"=>"", + "\xf0\x9f\x9b\x84"=>"", + "\xf0\x9f\x9b\x85"=>"", + "\xf0\x9f\x9b\x8b"=>"", + "\xf0\x9f\x9b\x8c"=>"", + "\xf0\x9f\x9b\x8d"=>"", + "\xf0\x9f\x9b\x8e"=>"", + "\xf0\x9f\x9b\x8f"=>"", + "\xf0\x9f\x9b\x90"=>"", + "\xf0\x9f\x9b\xa0"=>"", + "\xf0\x9f\x9b\xa1"=>"", + "\xf0\x9f\x9b\xa2"=>"", + "\xf0\x9f\x9b\xa3"=>"", + "\xf0\x9f\x9b\xa4"=>"", + "\xf0\x9f\x9b\xa5"=>"", + "\xf0\x9f\x9b\xa9"=>"", + "\xf0\x9f\x9b\xab"=>"", + "\xf0\x9f\x9b\xac"=>"", + "\xf0\x9f\x9b\xb0"=>"", + "\xf0\x9f\x9b\xb3"=>"", + "\xf0\x9f\xa4\x90"=>"", + "\xf0\x9f\xa4\x91"=>"", + "\xf0\x9f\xa4\x92"=>"", + "\xf0\x9f\xa4\x93"=>"", + "\xf0\x9f\xa4\x94"=>"", + "\xf0\x9f\xa4\x95"=>"", + "\xf0\x9f\xa4\x96"=>"", + "\xf0\x9f\xa4\x97"=>"", + "\xf0\x9f\xa4\x98"=>"", + "\xf0\x9f\xa6\x80"=>"", + "\xf0\x9f\xa6\x81"=>"", + "\xf0\x9f\xa6\x82"=>"", + "\xf0\x9f\xa6\x83"=>"", + "\xf0\x9f\xa6\x84"=>"", + "\xf0\x9f\xa7\x80"=>"", + "#\xe2\x83\xa3"=>"\xee\x9b\xa0", + "*\xe2\x83\xa3"=>"", + "0\xe2\x83\xa3"=>"\xee\x9b\xab", + "1\xe2\x83\xa3"=>"\xee\x9b\xa2", + "2\xe2\x83\xa3"=>"\xee\x9b\xa3", + "3\xe2\x83\xa3"=>"\xee\x9b\xa4", + "4\xe2\x83\xa3"=>"\xee\x9b\xa5", + "5\xe2\x83\xa3"=>"\xee\x9b\xa6", + "6\xe2\x83\xa3"=>"\xee\x9b\xa7", + "7\xe2\x83\xa3"=>"\xee\x9b\xa8", + "8\xe2\x83\xa3"=>"\xee\x9b\xa9", + "9\xe2\x83\xa3"=>"\xee\x9b\xaa", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb4\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb6\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xbd\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + ), + 'unified_to_kddi' => array( + "\xc2\xa9"=>"\xee\x95\x98", + "\xc2\xae"=>"\xee\x95\x99", + "\xe2\x80\xbc"=>"\xee\xac\xb0", + "\xe2\x81\x89"=>"\xee\xac\xaf", + "\xe2\x84\xa2"=>"\xee\x95\x8e", + "\xe2\x84\xb9"=>"\xee\x94\xb3", + "\xe2\x86\x94"=>"\xee\xad\xba", + "\xe2\x86\x95"=>"\xee\xad\xbb", + "\xe2\x86\x96"=>"\xee\x95\x8c", + "\xe2\x86\x97"=>"\xee\x95\x95", + "\xe2\x86\x98"=>"\xee\x95\x8d", + "\xe2\x86\x99"=>"\xee\x95\x96", + "\xe2\x86\xa9"=>"\xee\x95\x9d", + "\xe2\x86\xaa"=>"\xee\x95\x9c", + "\xe2\x8c\x9a"=>"\xee\x95\xba", + "\xe2\x8c\x9b"=>"\xee\x95\xbb", + "\xe2\x8c\xa8"=>"", + "\xe2\x8f\xa9"=>"\xee\x94\xb0", + "\xe2\x8f\xaa"=>"\xee\x94\xaf", + "\xe2\x8f\xab"=>"\xee\x95\x85", + "\xe2\x8f\xac"=>"\xee\x95\x84", + "\xe2\x8f\xad"=>"", + "\xe2\x8f\xae"=>"", + "\xe2\x8f\xaf"=>"", + "\xe2\x8f\xb0"=>"\xee\x96\x94", + "\xe2\x8f\xb1"=>"", + "\xe2\x8f\xb2"=>"", + "\xe2\x8f\xb3"=>"\xee\x91\xbc", + "\xe2\x8f\xb8"=>"", + "\xe2\x8f\xb9"=>"", + "\xe2\x8f\xba"=>"", + "\xe2\x93\x82"=>"\xee\x96\xbc", + "\xe2\x96\xaa"=>"\xee\x94\xb2", + "\xe2\x96\xab"=>"\xee\x94\xb1", + "\xe2\x96\xb6"=>"\xee\x94\xae", + "\xe2\x97\x80"=>"\xee\x94\xad", + "\xe2\x97\xbb"=>"\xee\x94\xb8", + "\xe2\x97\xbc"=>"\xee\x94\xb9", + "\xe2\x97\xbd"=>"\xee\x94\xb4", + "\xe2\x97\xbe"=>"\xee\x94\xb5", + "\xe2\x98\x80"=>"\xee\x92\x88", + "\xe2\x98\x81"=>"\xee\x92\x8d", + "\xe2\x98\x82"=>"", + "\xe2\x98\x83"=>"", + "\xe2\x98\x84"=>"", + "\xe2\x98\x8e"=>"\xee\x96\x96", + "\xe2\x98\x91"=>"\xee\xac\x82", + "\xe2\x98\x94"=>"\xee\x92\x8c", + "\xe2\x98\x95"=>"\xee\x96\x97", + "\xe2\x98\x98"=>"", + "\xe2\x98\x9d"=>"\xee\x93\xb6", + "\xe2\x98\xa0"=>"", + "\xe2\x98\xa2"=>"", + "\xe2\x98\xa3"=>"", + "\xe2\x98\xa6"=>"", + "\xe2\x98\xaa"=>"", + "\xe2\x98\xae"=>"", + "\xe2\x98\xaf"=>"", + "\xe2\x98\xb8"=>"", + "\xe2\x98\xb9"=>"", + "\xe2\x98\xba"=>"\xee\x93\xbb", + "\xe2\x99\x88"=>"\xee\x92\x8f", + "\xe2\x99\x89"=>"\xee\x92\x90", + "\xe2\x99\x8a"=>"\xee\x92\x91", + "\xe2\x99\x8b"=>"\xee\x92\x92", + "\xe2\x99\x8c"=>"\xee\x92\x93", + "\xe2\x99\x8d"=>"\xee\x92\x94", + "\xe2\x99\x8e"=>"\xee\x92\x95", + "\xe2\x99\x8f"=>"\xee\x92\x96", + "\xe2\x99\x90"=>"\xee\x92\x97", + "\xe2\x99\x91"=>"\xee\x92\x98", + "\xe2\x99\x92"=>"\xee\x92\x99", + "\xe2\x99\x93"=>"\xee\x92\x9a", + "\xe2\x99\xa0"=>"\xee\x96\xa1", + "\xe2\x99\xa3"=>"\xee\x96\xa3", + "\xe2\x99\xa5"=>"\xee\xaa\xa5", + "\xe2\x99\xa6"=>"\xee\x96\xa2", + "\xe2\x99\xa8"=>"\xee\x92\xbc", + "\xe2\x99\xbb"=>"\xee\xad\xb9", + "\xe2\x99\xbf"=>"\xee\x91\xbf", + "\xe2\x9a\x92"=>"", + "\xe2\x9a\x93"=>"\xee\x92\xa9", + "\xe2\x9a\x94"=>"", + "\xe2\x9a\x96"=>"", + "\xe2\x9a\x97"=>"", + "\xe2\x9a\x99"=>"", + "\xe2\x9a\x9b"=>"", + "\xe2\x9a\x9c"=>"", + "\xe2\x9a\xa0"=>"\xee\x92\x81", + "\xe2\x9a\xa1"=>"\xee\x92\x87", + "\xe2\x9a\xaa"=>"\xee\x94\xba", + "\xe2\x9a\xab"=>"\xee\x94\xbb", + "\xe2\x9a\xb0"=>"", + "\xe2\x9a\xb1"=>"", + "\xe2\x9a\xbd"=>"\xee\x92\xb6", + "\xe2\x9a\xbe"=>"\xee\x92\xba", + "\xe2\x9b\x84"=>"\xee\x92\x85", + "\xe2\x9b\x85"=>"\xee\x92\x8e", + "\xe2\x9b\x88"=>"", + "\xe2\x9b\x8e"=>"\xee\x92\x9b", + "\xe2\x9b\x8f"=>"", + "\xe2\x9b\x91"=>"", + "\xe2\x9b\x93"=>"", + "\xe2\x9b\x94"=>"\xee\x92\x84", + "\xe2\x9b\xa9"=>"", + "\xe2\x9b\xaa"=>"\xee\x96\xbb", + "\xe2\x9b\xb0"=>"", + "\xe2\x9b\xb1"=>"", + "\xe2\x9b\xb2"=>"\xee\x97\x8f", + "\xe2\x9b\xb3"=>"\xee\x96\x99", + "\xe2\x9b\xb4"=>"", + "\xe2\x9b\xb5"=>"\xee\x92\xb4", + "\xe2\x9b\xb7"=>"", + "\xe2\x9b\xb8"=>"", + "\xe2\x9b\xb9"=>"", + "\xe2\x9b\xba"=>"\xee\x97\x90", + "\xe2\x9b\xbd"=>"\xee\x95\xb1", + "\xe2\x9c\x82"=>"\xee\x94\x96", + "\xe2\x9c\x85"=>"\xee\x95\x9e", + "\xe2\x9c\x88"=>"\xee\x92\xb3", + "\xe2\x9c\x89"=>"\xee\x94\xa1", + "\xe2\x9c\x8a"=>"\xee\xae\x83", + "\xe2\x9c\x8b"=>"\xee\x96\xa7", + "\xe2\x9c\x8c"=>"\xee\x96\xa6", + "\xe2\x9c\x8d"=>"", + "\xe2\x9c\x8f"=>"\xee\x92\xa1", + "\xe2\x9c\x92"=>"\xee\xac\x83", + "\xe2\x9c\x94"=>"\xee\x95\x97", + "\xe2\x9c\x96"=>"\xee\x95\x8f", + "\xe2\x9c\x9d"=>"", + "\xe2\x9c\xa1"=>"", + "\xe2\x9c\xa8"=>"\xee\xaa\xab", + "\xe2\x9c\xb3"=>"\xee\x94\xbe", + "\xe2\x9c\xb4"=>"\xee\x91\xb9", + "\xe2\x9d\x84"=>"\xee\x92\x8a", + "\xe2\x9d\x87"=>"\xee\x91\xac", + "\xe2\x9d\x8c"=>"\xee\x95\x90", + "\xe2\x9d\x8e"=>"\xee\x95\x91", + "\xe2\x9d\x93"=>"\xee\x92\x83", + "\xe2\x9d\x94"=>"\xee\x92\x83", + "\xe2\x9d\x95"=>"\xee\x92\x82", + "\xe2\x9d\x97"=>"\xee\x92\x82", + "\xe2\x9d\xa3"=>"", + "\xe2\x9d\xa4"=>"\xee\x96\x95", + "\xe2\x9e\x95"=>"\xee\x94\xbc", + "\xe2\x9e\x96"=>"\xee\x94\xbd", + "\xe2\x9e\x97"=>"\xee\x95\x94", + "\xe2\x9e\xa1"=>"\xee\x95\x92", + "\xe2\x9e\xb0"=>"\xee\xac\xb1", + "\xe2\x9e\xbf"=>"", + "\xe2\xa4\xb4"=>"\xee\xac\xad", + "\xe2\xa4\xb5"=>"\xee\xac\xae", + "\xe2\xac\x85"=>"\xee\x95\x93", + "\xe2\xac\x86"=>"\xee\x94\xbf", + "\xe2\xac\x87"=>"\xee\x95\x80", + "\xe2\xac\x9b"=>"\xee\x95\x89", + "\xe2\xac\x9c"=>"\xee\x95\x88", + "\xe2\xad\x90"=>"\xee\x92\x8b", + "\xe2\xad\x95"=>"\xee\xaa\xad", + "\xe3\x80\xb0"=>"", + "\xe3\x80\xbd"=>"", + "\xe3\x8a\x97"=>"\xee\xaa\x99", + "\xe3\x8a\x99"=>"\xee\x93\xb1", + "\xf0\x9f\x80\x84"=>"\xee\x97\x91", + "\xf0\x9f\x83\x8f"=>"\xee\xad\xaf", + "\xf0\x9f\x85\xb0"=>"\xee\xac\xa6", + "\xf0\x9f\x85\xb1"=>"\xee\xac\xa7", + "\xf0\x9f\x85\xbe"=>"\xee\xac\xa8", + "\xf0\x9f\x85\xbf"=>"\xee\x92\xa6", + "\xf0\x9f\x86\x8e"=>"\xee\xac\xa9", + "\xf0\x9f\x86\x91"=>"\xee\x96\xab", + "\xf0\x9f\x86\x92"=>"\xee\xaa\x85", + "\xf0\x9f\x86\x93"=>"\xee\x95\xb8", + "\xf0\x9f\x86\x94"=>"\xee\xaa\x88", + "\xf0\x9f\x86\x95"=>"\xee\x96\xb5", + "\xf0\x9f\x86\x96"=>"", + "\xf0\x9f\x86\x97"=>"\xee\x96\xad", + "\xf0\x9f\x86\x98"=>"\xee\x93\xa8", + "\xf0\x9f\x86\x99"=>"\xee\x94\x8f", + "\xf0\x9f\x86\x9a"=>"\xee\x97\x92", + "\xf0\x9f\x88\x81"=>"", + "\xf0\x9f\x88\x82"=>"\xee\xaa\x87", + "\xf0\x9f\x88\x9a"=>"", + "\xf0\x9f\x88\xaf"=>"\xee\xaa\x8b", + "\xf0\x9f\x88\xb2"=>"", + "\xf0\x9f\x88\xb3"=>"\xee\xaa\x8a", + "\xf0\x9f\x88\xb4"=>"", + "\xf0\x9f\x88\xb5"=>"\xee\xaa\x89", + "\xf0\x9f\x88\xb6"=>"", + "\xf0\x9f\x88\xb7"=>"", + "\xf0\x9f\x88\xb8"=>"", + "\xf0\x9f\x88\xb9"=>"\xee\xaa\x86", + "\xf0\x9f\x88\xba"=>"\xee\xaa\x8c", + "\xf0\x9f\x89\x90"=>"\xee\x93\xb7", + "\xf0\x9f\x89\x91"=>"\xee\xac\x81", + "\xf0\x9f\x8c\x80"=>"\xee\x91\xa9", + "\xf0\x9f\x8c\x81"=>"\xee\x96\x98", + "\xf0\x9f\x8c\x82"=>"\xee\xab\xa8", + "\xf0\x9f\x8c\x83"=>"\xee\xab\xb1", + "\xf0\x9f\x8c\x84"=>"\xee\xab\xb4", + "\xf0\x9f\x8c\x85"=>"\xee\xab\xb4", + "\xf0\x9f\x8c\x86"=>"\xee\x97\x9a", + "\xf0\x9f\x8c\x87"=>"\xee\x97\x9a", + "\xf0\x9f\x8c\x88"=>"\xee\xab\xb2", + "\xf0\x9f\x8c\x89"=>"\xee\x92\xbf", + "\xf0\x9f\x8c\x8a"=>"\xee\xad\xbc", + "\xf0\x9f\x8c\x8b"=>"\xee\xad\x93", + "\xf0\x9f\x8c\x8c"=>"\xee\xad\x9f", + "\xf0\x9f\x8c\x8d"=>"", + "\xf0\x9f\x8c\x8e"=>"", + "\xf0\x9f\x8c\x8f"=>"\xee\x96\xb3", + "\xf0\x9f\x8c\x90"=>"", + "\xf0\x9f\x8c\x91"=>"\xee\x96\xa8", + "\xf0\x9f\x8c\x92"=>"", + "\xf0\x9f\x8c\x93"=>"\xee\x96\xaa", + "\xf0\x9f\x8c\x94"=>"\xee\x96\xa9", + "\xf0\x9f\x8c\x95"=>"", + "\xf0\x9f\x8c\x96"=>"", + "\xf0\x9f\x8c\x97"=>"", + "\xf0\x9f\x8c\x98"=>"", + "\xf0\x9f\x8c\x99"=>"\xee\x92\x86", + "\xf0\x9f\x8c\x9a"=>"", + "\xf0\x9f\x8c\x9b"=>"\xee\x92\x89", + "\xf0\x9f\x8c\x9c"=>"", + "\xf0\x9f\x8c\x9d"=>"", + "\xf0\x9f\x8c\x9e"=>"", + "\xf0\x9f\x8c\x9f"=>"\xee\x92\x8b", + "\xf0\x9f\x8c\xa0"=>"\xee\x91\xa8", + "\xf0\x9f\x8c\xa1"=>"", + "\xf0\x9f\x8c\xa4"=>"", + "\xf0\x9f\x8c\xa5"=>"", + "\xf0\x9f\x8c\xa6"=>"", + "\xf0\x9f\x8c\xa7"=>"", + "\xf0\x9f\x8c\xa8"=>"", + "\xf0\x9f\x8c\xa9"=>"", + "\xf0\x9f\x8c\xaa"=>"", + "\xf0\x9f\x8c\xab"=>"", + "\xf0\x9f\x8c\xac"=>"", + "\xf0\x9f\x8c\xad"=>"", + "\xf0\x9f\x8c\xae"=>"", + "\xf0\x9f\x8c\xaf"=>"", + "\xf0\x9f\x8c\xb0"=>"\xee\xac\xb8", + "\xf0\x9f\x8c\xb1"=>"\xee\xad\xbd", + "\xf0\x9f\x8c\xb2"=>"", + "\xf0\x9f\x8c\xb3"=>"", + "\xf0\x9f\x8c\xb4"=>"\xee\x93\xa2", + "\xf0\x9f\x8c\xb5"=>"\xee\xaa\x96", + "\xf0\x9f\x8c\xb6"=>"", + "\xf0\x9f\x8c\xb7"=>"\xee\x93\xa4", + "\xf0\x9f\x8c\xb8"=>"\xee\x93\x8a", + "\xf0\x9f\x8c\xb9"=>"\xee\x96\xba", + "\xf0\x9f\x8c\xba"=>"\xee\xaa\x94", + "\xf0\x9f\x8c\xbb"=>"\xee\x93\xa3", + "\xf0\x9f\x8c\xbc"=>"\xee\xad\x89", + "\xf0\x9f\x8c\xbd"=>"\xee\xac\xb6", + "\xf0\x9f\x8c\xbe"=>"", + "\xf0\x9f\x8c\xbf"=>"\xee\xae\x82", + "\xf0\x9f\x8d\x80"=>"\xee\x94\x93", + "\xf0\x9f\x8d\x81"=>"\xee\x93\x8e", + "\xf0\x9f\x8d\x82"=>"\xee\x97\x8d", + "\xf0\x9f\x8d\x83"=>"\xee\x97\x8d", + "\xf0\x9f\x8d\x84"=>"\xee\xac\xb7", + "\xf0\x9f\x8d\x85"=>"\xee\xaa\xbb", + "\xf0\x9f\x8d\x86"=>"\xee\xaa\xbc", + "\xf0\x9f\x8d\x87"=>"\xee\xac\xb4", + "\xf0\x9f\x8d\x88"=>"\xee\xac\xb2", + "\xf0\x9f\x8d\x89"=>"\xee\x93\x8d", + "\xf0\x9f\x8d\x8a"=>"\xee\xaa\xba", + "\xf0\x9f\x8d\x8b"=>"", + "\xf0\x9f\x8d\x8c"=>"\xee\xac\xb5", + "\xf0\x9f\x8d\x8d"=>"\xee\xac\xb3", + "\xf0\x9f\x8d\x8e"=>"\xee\xaa\xb9", + "\xf0\x9f\x8d\x8f"=>"\xee\xad\x9a", + "\xf0\x9f\x8d\x90"=>"", + "\xf0\x9f\x8d\x91"=>"\xee\xac\xb9", + "\xf0\x9f\x8d\x92"=>"\xee\x93\x92", + "\xf0\x9f\x8d\x93"=>"\xee\x93\x94", + "\xf0\x9f\x8d\x94"=>"\xee\x93\x96", + "\xf0\x9f\x8d\x95"=>"\xee\xac\xbb", + "\xf0\x9f\x8d\x96"=>"\xee\x93\x84", + "\xf0\x9f\x8d\x97"=>"\xee\xac\xbc", + "\xf0\x9f\x8d\x98"=>"\xee\xaa\xb3", + "\xf0\x9f\x8d\x99"=>"\xee\x93\x95", + "\xf0\x9f\x8d\x9a"=>"\xee\xaa\xb4", + "\xf0\x9f\x8d\x9b"=>"\xee\xaa\xb6", + "\xf0\x9f\x8d\x9c"=>"\xee\x96\xb4", + "\xf0\x9f\x8d\x9d"=>"\xee\xaa\xb5", + "\xf0\x9f\x8d\x9e"=>"\xee\xaa\xaf", + "\xf0\x9f\x8d\x9f"=>"\xee\xaa\xb1", + "\xf0\x9f\x8d\xa0"=>"\xee\xac\xba", + "\xf0\x9f\x8d\xa1"=>"\xee\xaa\xb2", + "\xf0\x9f\x8d\xa2"=>"\xee\xaa\xb7", + "\xf0\x9f\x8d\xa3"=>"\xee\xaa\xb8", + "\xf0\x9f\x8d\xa4"=>"\xee\xad\xb0", + "\xf0\x9f\x8d\xa5"=>"\xee\x93\xad", + "\xf0\x9f\x8d\xa6"=>"\xee\xaa\xb0", + "\xf0\x9f\x8d\xa7"=>"\xee\xab\xaa", + "\xf0\x9f\x8d\xa8"=>"\xee\xad\x8a", + "\xf0\x9f\x8d\xa9"=>"\xee\xad\x8b", + "\xf0\x9f\x8d\xaa"=>"\xee\xad\x8c", + "\xf0\x9f\x8d\xab"=>"\xee\xad\x8d", + "\xf0\x9f\x8d\xac"=>"\xee\xad\x8e", + "\xf0\x9f\x8d\xad"=>"\xee\xad\x8f", + "\xf0\x9f\x8d\xae"=>"\xee\xad\x96", + "\xf0\x9f\x8d\xaf"=>"\xee\xad\x99", + "\xf0\x9f\x8d\xb0"=>"\xee\x93\x90", + "\xf0\x9f\x8d\xb1"=>"\xee\xaa\xbd", + "\xf0\x9f\x8d\xb2"=>"\xee\xaa\xbe", + "\xf0\x9f\x8d\xb3"=>"\xee\x93\x91", + "\xf0\x9f\x8d\xb4"=>"\xee\x92\xac", + "\xf0\x9f\x8d\xb5"=>"\xee\xaa\xae", + "\xf0\x9f\x8d\xb6"=>"\xee\xaa\x97", + "\xf0\x9f\x8d\xb7"=>"\xee\x93\x81", + "\xf0\x9f\x8d\xb8"=>"\xee\x93\x82", + "\xf0\x9f\x8d\xb9"=>"\xee\xac\xbe", + "\xf0\x9f\x8d\xba"=>"\xee\x93\x83", + "\xf0\x9f\x8d\xbb"=>"\xee\xaa\x98", + "\xf0\x9f\x8d\xbc"=>"", + "\xf0\x9f\x8d\xbd"=>"", + "\xf0\x9f\x8d\xbe"=>"", + "\xf0\x9f\x8d\xbf"=>"", + "\xf0\x9f\x8e\x80"=>"\xee\x96\x9f", + "\xf0\x9f\x8e\x81"=>"\xee\x93\x8f", + "\xf0\x9f\x8e\x82"=>"\xee\x96\xa0", + "\xf0\x9f\x8e\x83"=>"\xee\xab\xae", + "\xf0\x9f\x8e\x84"=>"\xee\x93\x89", + "\xf0\x9f\x8e\x85"=>"\xee\xab\xb0", + "\xf0\x9f\x8e\x86"=>"\xee\x97\x8c", + "\xf0\x9f\x8e\x87"=>"\xee\xab\xab", + "\xf0\x9f\x8e\x88"=>"\xee\xaa\x9b", + "\xf0\x9f\x8e\x89"=>"\xee\xaa\x9c", + "\xf0\x9f\x8e\x8a"=>"\xee\x91\xaf", + "\xf0\x9f\x8e\x8b"=>"\xee\xac\xbd", + "\xf0\x9f\x8e\x8c"=>"\xee\x97\x99", + "\xf0\x9f\x8e\x8d"=>"\xee\xab\xa3", + "\xf0\x9f\x8e\x8e"=>"\xee\xab\xa4", + "\xf0\x9f\x8e\x8f"=>"\xee\xab\xa7", + "\xf0\x9f\x8e\x90"=>"\xee\xab\xad", + "\xf0\x9f\x8e\x91"=>"\xee\xab\xaf", + "\xf0\x9f\x8e\x92"=>"\xee\xab\xa6", + "\xf0\x9f\x8e\x93"=>"\xee\xab\xa5", + "\xf0\x9f\x8e\x96"=>"", + "\xf0\x9f\x8e\x97"=>"", + "\xf0\x9f\x8e\x99"=>"", + "\xf0\x9f\x8e\x9a"=>"", + "\xf0\x9f\x8e\x9b"=>"", + "\xf0\x9f\x8e\x9e"=>"", + "\xf0\x9f\x8e\x9f"=>"", + "\xf0\x9f\x8e\xa0"=>"", + "\xf0\x9f\x8e\xa1"=>"\xee\x91\xad", + "\xf0\x9f\x8e\xa2"=>"\xee\xab\xa2", + "\xf0\x9f\x8e\xa3"=>"\xee\xad\x82", + "\xf0\x9f\x8e\xa4"=>"\xee\x94\x83", + "\xf0\x9f\x8e\xa5"=>"\xee\x94\x97", + "\xf0\x9f\x8e\xa6"=>"\xee\x94\x97", + "\xf0\x9f\x8e\xa7"=>"\xee\x94\x88", + "\xf0\x9f\x8e\xa8"=>"\xee\x96\x9c", + "\xf0\x9f\x8e\xa9"=>"\xee\xab\xb5", + "\xf0\x9f\x8e\xaa"=>"\xee\x96\x9e", + "\xf0\x9f\x8e\xab"=>"\xee\x92\x9e", + "\xf0\x9f\x8e\xac"=>"\xee\x92\xbe", + "\xf0\x9f\x8e\xad"=>"\xee\x96\x9d", + "\xf0\x9f\x8e\xae"=>"\xee\x93\x86", + "\xf0\x9f\x8e\xaf"=>"\xee\x93\x85", + "\xf0\x9f\x8e\xb0"=>"\xee\x91\xae", + "\xf0\x9f\x8e\xb1"=>"\xee\xab\x9d", + "\xf0\x9f\x8e\xb2"=>"\xee\x93\x88", + "\xf0\x9f\x8e\xb3"=>"\xee\xad\x83", + "\xf0\x9f\x8e\xb4"=>"\xee\xad\xae", + "\xf0\x9f\x8e\xb5"=>"\xee\x96\xbe", + "\xf0\x9f\x8e\xb6"=>"\xee\x94\x85", + "\xf0\x9f\x8e\xb7"=>"", + "\xf0\x9f\x8e\xb8"=>"\xee\x94\x86", + "\xf0\x9f\x8e\xb9"=>"\xee\xad\x80", + "\xf0\x9f\x8e\xba"=>"\xee\xab\x9c", + "\xf0\x9f\x8e\xbb"=>"\xee\x94\x87", + "\xf0\x9f\x8e\xbc"=>"\xee\xab\x8c", + "\xf0\x9f\x8e\xbd"=>"", + "\xf0\x9f\x8e\xbe"=>"\xee\x92\xb7", + "\xf0\x9f\x8e\xbf"=>"\xee\xaa\xac", + "\xf0\x9f\x8f\x80"=>"\xee\x96\x9a", + "\xf0\x9f\x8f\x81"=>"\xee\x92\xb9", + "\xf0\x9f\x8f\x82"=>"\xee\x92\xb8", + "\xf0\x9f\x8f\x83"=>"\xee\x91\xab", + "\xf0\x9f\x8f\x84"=>"\xee\xad\x81", + "\xf0\x9f\x8f\x85"=>"", + "\xf0\x9f\x8f\x86"=>"\xee\x97\x93", + "\xf0\x9f\x8f\x87"=>"", + "\xf0\x9f\x8f\x88"=>"\xee\x92\xbb", + "\xf0\x9f\x8f\x89"=>"", + "\xf0\x9f\x8f\x8a"=>"\xee\xab\x9e", + "\xf0\x9f\x8f\x8b"=>"", + "\xf0\x9f\x8f\x8c"=>"", + "\xf0\x9f\x8f\x8d"=>"", + "\xf0\x9f\x8f\x8e"=>"", + "\xf0\x9f\x8f\x8f"=>"", + "\xf0\x9f\x8f\x90"=>"", + "\xf0\x9f\x8f\x91"=>"", + "\xf0\x9f\x8f\x92"=>"", + "\xf0\x9f\x8f\x93"=>"", + "\xf0\x9f\x8f\x94"=>"", + "\xf0\x9f\x8f\x95"=>"", + "\xf0\x9f\x8f\x96"=>"", + "\xf0\x9f\x8f\x97"=>"", + "\xf0\x9f\x8f\x98"=>"", + "\xf0\x9f\x8f\x99"=>"", + "\xf0\x9f\x8f\x9a"=>"", + "\xf0\x9f\x8f\x9b"=>"", + "\xf0\x9f\x8f\x9c"=>"", + "\xf0\x9f\x8f\x9d"=>"", + "\xf0\x9f\x8f\x9e"=>"", + "\xf0\x9f\x8f\x9f"=>"", + "\xf0\x9f\x8f\xa0"=>"\xee\x92\xab", + "\xf0\x9f\x8f\xa1"=>"\xee\xac\x89", + "\xf0\x9f\x8f\xa2"=>"\xee\x92\xad", + "\xf0\x9f\x8f\xa3"=>"\xee\x97\x9e", + "\xf0\x9f\x8f\xa4"=>"", + "\xf0\x9f\x8f\xa5"=>"\xee\x97\x9f", + "\xf0\x9f\x8f\xa6"=>"\xee\x92\xaa", + "\xf0\x9f\x8f\xa7"=>"\xee\x92\xa3", + "\xf0\x9f\x8f\xa8"=>"\xee\xaa\x81", + "\xf0\x9f\x8f\xa9"=>"\xee\xab\xb3", + "\xf0\x9f\x8f\xaa"=>"\xee\x92\xa4", + "\xf0\x9f\x8f\xab"=>"\xee\xaa\x80", + "\xf0\x9f\x8f\xac"=>"\xee\xab\xb6", + "\xf0\x9f\x8f\xad"=>"\xee\xab\xb9", + "\xf0\x9f\x8f\xae"=>"\xee\x92\xbd", + "\xf0\x9f\x8f\xaf"=>"\xee\xab\xb7", + "\xf0\x9f\x8f\xb0"=>"\xee\xab\xb8", + "\xf0\x9f\x8f\xb3"=>"", + "\xf0\x9f\x8f\xb4"=>"", + "\xf0\x9f\x8f\xb5"=>"", + "\xf0\x9f\x8f\xb7"=>"", + "\xf0\x9f\x8f\xb8"=>"", + "\xf0\x9f\x8f\xb9"=>"", + "\xf0\x9f\x8f\xba"=>"", + "\xf0\x9f\x8f\xbb"=>"", + "\xf0\x9f\x8f\xbc"=>"", + "\xf0\x9f\x8f\xbd"=>"", + "\xf0\x9f\x8f\xbe"=>"", + "\xf0\x9f\x8f\xbf"=>"", + "\xf0\x9f\x90\x80"=>"", + "\xf0\x9f\x90\x81"=>"", + "\xf0\x9f\x90\x82"=>"", + "\xf0\x9f\x90\x83"=>"", + "\xf0\x9f\x90\x84"=>"", + "\xf0\x9f\x90\x85"=>"", + "\xf0\x9f\x90\x86"=>"", + "\xf0\x9f\x90\x87"=>"", + "\xf0\x9f\x90\x88"=>"", + "\xf0\x9f\x90\x89"=>"", + "\xf0\x9f\x90\x8a"=>"", + "\xf0\x9f\x90\x8b"=>"", + "\xf0\x9f\x90\x8c"=>"\xee\xad\xbe", + "\xf0\x9f\x90\x8d"=>"\xee\xac\xa2", + "\xf0\x9f\x90\x8e"=>"\xee\x93\x98", + "\xf0\x9f\x90\x8f"=>"", + "\xf0\x9f\x90\x90"=>"", + "\xf0\x9f\x90\x91"=>"\xee\x92\x8f", + "\xf0\x9f\x90\x92"=>"\xee\x93\x99", + "\xf0\x9f\x90\x93"=>"", + "\xf0\x9f\x90\x94"=>"\xee\xac\xa3", + "\xf0\x9f\x90\x95"=>"", + "\xf0\x9f\x90\x96"=>"", + "\xf0\x9f\x90\x97"=>"\xee\xac\xa4", + "\xf0\x9f\x90\x98"=>"\xee\xac\x9f", + "\xf0\x9f\x90\x99"=>"\xee\x97\x87", + "\xf0\x9f\x90\x9a"=>"\xee\xab\xac", + "\xf0\x9f\x90\x9b"=>"\xee\xac\x9e", + "\xf0\x9f\x90\x9c"=>"\xee\x93\x9d", + "\xf0\x9f\x90\x9d"=>"\xee\xad\x97", + "\xf0\x9f\x90\x9e"=>"\xee\xad\x98", + "\xf0\x9f\x90\x9f"=>"\xee\x92\x9a", + "\xf0\x9f\x90\xa0"=>"\xee\xac\x9d", + "\xf0\x9f\x90\xa1"=>"\xee\x93\x93", + "\xf0\x9f\x90\xa2"=>"\xee\x97\x94", + "\xf0\x9f\x90\xa3"=>"\xee\x97\x9b", + "\xf0\x9f\x90\xa4"=>"\xee\x93\xa0", + "\xf0\x9f\x90\xa5"=>"\xee\xad\xb6", + "\xf0\x9f\x90\xa6"=>"\xee\x93\xa0", + "\xf0\x9f\x90\xa7"=>"\xee\x93\x9c", + "\xf0\x9f\x90\xa8"=>"\xee\xac\xa0", + "\xf0\x9f\x90\xa9"=>"\xee\x93\x9f", + "\xf0\x9f\x90\xaa"=>"", + "\xf0\x9f\x90\xab"=>"\xee\xac\xa5", + "\xf0\x9f\x90\xac"=>"\xee\xac\x9b", + "\xf0\x9f\x90\xad"=>"\xee\x97\x82", + "\xf0\x9f\x90\xae"=>"\xee\xac\xa1", + "\xf0\x9f\x90\xaf"=>"\xee\x97\x80", + "\xf0\x9f\x90\xb0"=>"\xee\x93\x97", + "\xf0\x9f\x90\xb1"=>"\xee\x93\x9b", + "\xf0\x9f\x90\xb2"=>"\xee\xac\xbf", + "\xf0\x9f\x90\xb3"=>"\xee\x91\xb0", + "\xf0\x9f\x90\xb4"=>"\xee\x93\x98", + "\xf0\x9f\x90\xb5"=>"\xee\x93\x99", + "\xf0\x9f\x90\xb6"=>"\xee\x93\xa1", + "\xf0\x9f\x90\xb7"=>"\xee\x93\x9e", + "\xf0\x9f\x90\xb8"=>"\xee\x93\x9a", + "\xf0\x9f\x90\xb9"=>"", + "\xf0\x9f\x90\xba"=>"\xee\x93\xa1", + "\xf0\x9f\x90\xbb"=>"\xee\x97\x81", + "\xf0\x9f\x90\xbc"=>"\xee\xad\x86", + "\xf0\x9f\x90\xbd"=>"\xee\xad\x88", + "\xf0\x9f\x90\xbe"=>"\xee\x93\xae", + "\xf0\x9f\x90\xbf"=>"", + "\xf0\x9f\x91\x80"=>"\xee\x96\xa4", + "\xf0\x9f\x91\x81"=>"", + "\xf0\x9f\x91\x82"=>"\xee\x96\xa5", + "\xf0\x9f\x91\x83"=>"\xee\xab\x90", + "\xf0\x9f\x91\x84"=>"\xee\xab\x91", + "\xf0\x9f\x91\x85"=>"\xee\xad\x87", + "\xf0\x9f\x91\x86"=>"\xee\xaa\x8d", + "\xf0\x9f\x91\x87"=>"\xee\xaa\x8e", + "\xf0\x9f\x91\x88"=>"\xee\x93\xbf", + "\xf0\x9f\x91\x89"=>"\xee\x94\x80", + "\xf0\x9f\x91\x8a"=>"\xee\x93\xb3", + "\xf0\x9f\x91\x8b"=>"\xee\xab\x96", + "\xf0\x9f\x91\x8c"=>"\xee\xab\x94", + "\xf0\x9f\x91\x8d"=>"\xee\x93\xb9", + "\xf0\x9f\x91\x8e"=>"\xee\xab\x95", + "\xf0\x9f\x91\x8f"=>"\xee\xab\x93", + "\xf0\x9f\x91\x90"=>"\xee\xab\x96", + "\xf0\x9f\x91\x91"=>"\xee\x97\x89", + "\xf0\x9f\x91\x92"=>"\xee\xaa\x9e", + "\xf0\x9f\x91\x93"=>"\xee\x93\xbe", + "\xf0\x9f\x91\x94"=>"\xee\xaa\x93", + "\xf0\x9f\x91\x95"=>"\xee\x96\xb6", + "\xf0\x9f\x91\x96"=>"\xee\xad\xb7", + "\xf0\x9f\x91\x97"=>"\xee\xad\xab", + "\xf0\x9f\x91\x98"=>"\xee\xaa\xa3", + "\xf0\x9f\x91\x99"=>"\xee\xaa\xa4", + "\xf0\x9f\x91\x9a"=>"\xee\x94\x8d", + "\xf0\x9f\x91\x9b"=>"\xee\x94\x84", + "\xf0\x9f\x91\x9c"=>"\xee\x92\x9c", + "\xf0\x9f\x91\x9d"=>"", + "\xf0\x9f\x91\x9e"=>"\xee\x96\xb7", + "\xf0\x9f\x91\x9f"=>"\xee\xac\xab", + "\xf0\x9f\x91\xa0"=>"\xee\x94\x9a", + "\xf0\x9f\x91\xa1"=>"\xee\x94\x9a", + "\xf0\x9f\x91\xa2"=>"\xee\xaa\x9f", + "\xf0\x9f\x91\xa3"=>"\xee\xac\xaa", + "\xf0\x9f\x91\xa4"=>"", + "\xf0\x9f\x91\xa5"=>"", + "\xf0\x9f\x91\xa6"=>"\xee\x93\xbc", + "\xf0\x9f\x91\xa7"=>"\xee\x93\xba", + "\xf0\x9f\x91\xa8"=>"\xee\x93\xbc", + "\xf0\x9f\x91\xa9"=>"\xee\x93\xba", + "\xf0\x9f\x91\xaa"=>"\xee\x94\x81", + "\xf0\x9f\x91\xab"=>"", + "\xf0\x9f\x91\xac"=>"", + "\xf0\x9f\x91\xad"=>"", + "\xf0\x9f\x91\xae"=>"\xee\x97\x9d", + "\xf0\x9f\x91\xaf"=>"\xee\xab\x9b", + "\xf0\x9f\x91\xb0"=>"\xee\xab\xa9", + "\xf0\x9f\x91\xb1"=>"\xee\xac\x93", + "\xf0\x9f\x91\xb2"=>"\xee\xac\x94", + "\xf0\x9f\x91\xb3"=>"\xee\xac\x95", + "\xf0\x9f\x91\xb4"=>"\xee\xac\x96", + "\xf0\x9f\x91\xb5"=>"\xee\xac\x97", + "\xf0\x9f\x91\xb6"=>"\xee\xac\x98", + "\xf0\x9f\x91\xb7"=>"\xee\xac\x99", + "\xf0\x9f\x91\xb8"=>"\xee\xac\x9a", + "\xf0\x9f\x91\xb9"=>"\xee\xad\x84", + "\xf0\x9f\x91\xba"=>"\xee\xad\x85", + "\xf0\x9f\x91\xbb"=>"\xee\x93\x8b", + "\xf0\x9f\x91\xbc"=>"\xee\x96\xbf", + "\xf0\x9f\x91\xbd"=>"\xee\x94\x8e", + "\xf0\x9f\x91\xbe"=>"\xee\x93\xac", + "\xf0\x9f\x91\xbf"=>"\xee\x93\xaf", + "\xf0\x9f\x92\x80"=>"\xee\x93\xb8", + "\xf0\x9f\x92\x81"=>"", + "\xf0\x9f\x92\x82"=>"", + "\xf0\x9f\x92\x83"=>"\xee\xac\x9c", + "\xf0\x9f\x92\x84"=>"\xee\x94\x89", + "\xf0\x9f\x92\x85"=>"\xee\xaa\xa0", + "\xf0\x9f\x92\x86"=>"\xee\x94\x8b", + "\xf0\x9f\x92\x87"=>"\xee\xaa\xa1", + "\xf0\x9f\x92\x88"=>"\xee\xaa\xa2", + "\xf0\x9f\x92\x89"=>"\xee\x94\x90", + "\xf0\x9f\x92\x8a"=>"\xee\xaa\x9a", + "\xf0\x9f\x92\x8b"=>"\xee\x93\xab", + "\xf0\x9f\x92\x8c"=>"\xee\xad\xb8", + "\xf0\x9f\x92\x8d"=>"\xee\x94\x94", + "\xf0\x9f\x92\x8e"=>"\xee\x94\x94", + "\xf0\x9f\x92\x8f"=>"\xee\x97\x8a", + "\xf0\x9f\x92\x90"=>"\xee\xaa\x95", + "\xf0\x9f\x92\x91"=>"\xee\xab\x9a", + "\xf0\x9f\x92\x92"=>"\xee\x96\xbb", + "\xf0\x9f\x92\x93"=>"\xee\xad\xb5", + "\xf0\x9f\x92\x94"=>"\xee\x91\xb7", + "\xf0\x9f\x92\x95"=>"\xee\x91\xb8", + "\xf0\x9f\x92\x96"=>"\xee\xaa\xa6", + "\xf0\x9f\x92\x97"=>"\xee\xad\xb5", + "\xf0\x9f\x92\x98"=>"\xee\x93\xaa", + "\xf0\x9f\x92\x99"=>"\xee\xaa\xa7", + "\xf0\x9f\x92\x9a"=>"\xee\xaa\xa8", + "\xf0\x9f\x92\x9b"=>"\xee\xaa\xa9", + "\xf0\x9f\x92\x9c"=>"\xee\xaa\xaa", + "\xf0\x9f\x92\x9d"=>"\xee\xad\x94", + "\xf0\x9f\x92\x9e"=>"\xee\x96\xaf", + "\xf0\x9f\x92\x9f"=>"\xee\x96\x95", + "\xf0\x9f\x92\xa0"=>"", + "\xf0\x9f\x92\xa1"=>"\xee\x91\xb6", + "\xf0\x9f\x92\xa2"=>"\xee\x93\xa5", + "\xf0\x9f\x92\xa3"=>"\xee\x91\xba", + "\xf0\x9f\x92\xa4"=>"\xee\x91\xb5", + "\xf0\x9f\x92\xa5"=>"\xee\x96\xb0", + "\xf0\x9f\x92\xa6"=>"\xee\x96\xb1", + "\xf0\x9f\x92\xa7"=>"\xee\x93\xa6", + "\xf0\x9f\x92\xa8"=>"\xee\x93\xb4", + "\xf0\x9f\x92\xa9"=>"\xee\x93\xb5", + "\xf0\x9f\x92\xaa"=>"\xee\x93\xa9", + "\xf0\x9f\x92\xab"=>"\xee\xad\x9c", + "\xf0\x9f\x92\xac"=>"\xee\x93\xbd", + "\xf0\x9f\x92\xad"=>"", + "\xf0\x9f\x92\xae"=>"\xee\x93\xb0", + "\xf0\x9f\x92\xaf"=>"\xee\x93\xb2", + "\xf0\x9f\x92\xb0"=>"\xee\x93\x87", + "\xf0\x9f\x92\xb1"=>"", + "\xf0\x9f\x92\xb2"=>"\xee\x95\xb9", + "\xf0\x9f\x92\xb3"=>"\xee\x95\xbc", + "\xf0\x9f\x92\xb4"=>"\xee\x95\xbd", + "\xf0\x9f\x92\xb5"=>"\xee\x96\x85", + "\xf0\x9f\x92\xb6"=>"", + "\xf0\x9f\x92\xb7"=>"", + "\xf0\x9f\x92\xb8"=>"\xee\xad\x9b", + "\xf0\x9f\x92\xb9"=>"\xee\x97\x9c", + "\xf0\x9f\x92\xba"=>"", + "\xf0\x9f\x92\xbb"=>"\xee\x96\xb8", + "\xf0\x9f\x92\xbc"=>"\xee\x97\x8e", + "\xf0\x9f\x92\xbd"=>"\xee\x96\x82", + "\xf0\x9f\x92\xbe"=>"\xee\x95\xa2", + "\xf0\x9f\x92\xbf"=>"\xee\x94\x8c", + "\xf0\x9f\x93\x80"=>"\xee\x94\x8c", + "\xf0\x9f\x93\x81"=>"\xee\x96\x8f", + "\xf0\x9f\x93\x82"=>"\xee\x96\x90", + "\xf0\x9f\x93\x83"=>"\xee\x95\xa1", + "\xf0\x9f\x93\x84"=>"\xee\x95\xa9", + "\xf0\x9f\x93\x85"=>"\xee\x95\xa3", + "\xf0\x9f\x93\x86"=>"\xee\x95\xaa", + "\xf0\x9f\x93\x87"=>"\xee\x95\xac", + "\xf0\x9f\x93\x88"=>"\xee\x95\xb5", + "\xf0\x9f\x93\x89"=>"\xee\x95\xb6", + "\xf0\x9f\x93\x8a"=>"\xee\x95\xb4", + "\xf0\x9f\x93\x8b"=>"\xee\x95\xa4", + "\xf0\x9f\x93\x8c"=>"\xee\x95\xad", + "\xf0\x9f\x93\x8d"=>"\xee\x95\xa0", + "\xf0\x9f\x93\x8e"=>"\xee\x92\xa0", + "\xf0\x9f\x93\x8f"=>"\xee\x95\xb0", + "\xf0\x9f\x93\x90"=>"\xee\x92\xa2", + "\xf0\x9f\x93\x91"=>"\xee\xac\x8b", + "\xf0\x9f\x93\x92"=>"\xee\x95\xae", + "\xf0\x9f\x93\x93"=>"\xee\x95\xab", + "\xf0\x9f\x93\x94"=>"\xee\x92\x9d", + "\xf0\x9f\x93\x95"=>"\xee\x95\xa8", + "\xf0\x9f\x93\x96"=>"\xee\x92\x9f", + "\xf0\x9f\x93\x97"=>"\xee\x95\xa5", + "\xf0\x9f\x93\x98"=>"\xee\x95\xa6", + "\xf0\x9f\x93\x99"=>"\xee\x95\xa7", + "\xf0\x9f\x93\x9a"=>"\xee\x95\xaf", + "\xf0\x9f\x93\x9b"=>"\xee\x94\x9d", + "\xf0\x9f\x93\x9c"=>"\xee\x95\x9f", + "\xf0\x9f\x93\x9d"=>"\xee\xaa\x92", + "\xf0\x9f\x93\x9e"=>"\xee\x94\x9e", + "\xf0\x9f\x93\x9f"=>"\xee\x96\x9b", + "\xf0\x9f\x93\xa0"=>"\xee\x94\xa0", + "\xf0\x9f\x93\xa1"=>"\xee\x92\xa8", + "\xf0\x9f\x93\xa2"=>"\xee\x94\x91", + "\xf0\x9f\x93\xa3"=>"\xee\x94\x91", + "\xf0\x9f\x93\xa4"=>"\xee\x96\x92", + "\xf0\x9f\x93\xa5"=>"\xee\x96\x93", + "\xf0\x9f\x93\xa6"=>"\xee\x94\x9f", + "\xf0\x9f\x93\xa7"=>"\xee\xad\xb1", + "\xf0\x9f\x93\xa8"=>"\xee\x96\x91", + "\xf0\x9f\x93\xa9"=>"\xee\xad\xa2", + "\xf0\x9f\x93\xaa"=>"\xee\x94\x9b", + "\xf0\x9f\x93\xab"=>"\xee\xac\x8a", + "\xf0\x9f\x93\xac"=>"", + "\xf0\x9f\x93\xad"=>"", + "\xf0\x9f\x93\xae"=>"\xee\x94\x9b", + "\xf0\x9f\x93\xaf"=>"", + "\xf0\x9f\x93\xb0"=>"\xee\x96\x8b", + "\xf0\x9f\x93\xb1"=>"\xee\x96\x88", + "\xf0\x9f\x93\xb2"=>"\xee\xac\x88", + "\xf0\x9f\x93\xb3"=>"\xee\xaa\x90", + "\xf0\x9f\x93\xb4"=>"\xee\xaa\x91", + "\xf0\x9f\x93\xb5"=>"", + "\xf0\x9f\x93\xb6"=>"\xee\xaa\x84", + "\xf0\x9f\x93\xb7"=>"\xee\x94\x95", + "\xf0\x9f\x93\xb8"=>"", + "\xf0\x9f\x93\xb9"=>"\xee\x95\xbe", + "\xf0\x9f\x93\xba"=>"\xee\x94\x82", + "\xf0\x9f\x93\xbb"=>"\xee\x96\xb9", + "\xf0\x9f\x93\xbc"=>"\xee\x96\x80", + "\xf0\x9f\x93\xbd"=>"", + "\xf0\x9f\x93\xbf"=>"", + "\xf0\x9f\x94\x80"=>"", + "\xf0\x9f\x94\x81"=>"", + "\xf0\x9f\x94\x82"=>"", + "\xf0\x9f\x94\x83"=>"\xee\xac\x8d", + "\xf0\x9f\x94\x84"=>"", + "\xf0\x9f\x94\x85"=>"", + "\xf0\x9f\x94\x86"=>"", + "\xf0\x9f\x94\x87"=>"", + "\xf0\x9f\x94\x88"=>"", + "\xf0\x9f\x94\x89"=>"", + "\xf0\x9f\x94\x8a"=>"\xee\x94\x91", + "\xf0\x9f\x94\x8b"=>"\xee\x96\x84", + "\xf0\x9f\x94\x8c"=>"\xee\x96\x89", + "\xf0\x9f\x94\x8d"=>"\xee\x94\x98", + "\xf0\x9f\x94\x8e"=>"\xee\xac\x85", + "\xf0\x9f\x94\x8f"=>"\xee\xac\x8c", + "\xf0\x9f\x94\x90"=>"\xee\xab\xbc", + "\xf0\x9f\x94\x91"=>"\xee\x94\x99", + "\xf0\x9f\x94\x92"=>"\xee\x94\x9c", + "\xf0\x9f\x94\x93"=>"\xee\x94\x9c", + "\xf0\x9f\x94\x94"=>"\xee\x94\x92", + "\xf0\x9f\x94\x95"=>"", + "\xf0\x9f\x94\x96"=>"\xee\xac\x87", + "\xf0\x9f\x94\x97"=>"\xee\x96\x8a", + "\xf0\x9f\x94\x98"=>"\xee\xac\x84", + "\xf0\x9f\x94\x99"=>"\xee\xac\x86", + "\xf0\x9f\x94\x9a"=>"", + "\xf0\x9f\x94\x9b"=>"", + "\xf0\x9f\x94\x9c"=>"", + "\xf0\x9f\x94\x9d"=>"", + "\xf0\x9f\x94\x9e"=>"\xee\xaa\x83", + "\xf0\x9f\x94\x9f"=>"\xee\x94\xab", + "\xf0\x9f\x94\xa0"=>"\xee\xab\xbd", + "\xf0\x9f\x94\xa1"=>"\xee\xab\xbe", + "\xf0\x9f\x94\xa2"=>"\xee\xab\xbf", + "\xf0\x9f\x94\xa3"=>"\xee\xac\x80", + "\xf0\x9f\x94\xa4"=>"\xee\xad\x95", + "\xf0\x9f\x94\xa5"=>"\xee\x91\xbb", + "\xf0\x9f\x94\xa6"=>"\xee\x96\x83", + "\xf0\x9f\x94\xa7"=>"\xee\x96\x87", + "\xf0\x9f\x94\xa8"=>"\xee\x97\x8b", + "\xf0\x9f\x94\xa9"=>"\xee\x96\x81", + "\xf0\x9f\x94\xaa"=>"\xee\x95\xbf", + "\xf0\x9f\x94\xab"=>"\xee\x94\x8a", + "\xf0\x9f\x94\xac"=>"", + "\xf0\x9f\x94\xad"=>"", + "\xf0\x9f\x94\xae"=>"\xee\xaa\x8f", + "\xf0\x9f\x94\xaf"=>"\xee\xaa\x8f", + "\xf0\x9f\x94\xb0"=>"\xee\x92\x80", + "\xf0\x9f\x94\xb1"=>"\xee\x97\x89", + "\xf0\x9f\x94\xb2"=>"\xee\x95\x8b", + "\xf0\x9f\x94\xb3"=>"\xee\x95\x8b", + "\xf0\x9f\x94\xb4"=>"\xee\x95\x8a", + "\xf0\x9f\x94\xb5"=>"\xee\x95\x8b", + "\xf0\x9f\x94\xb6"=>"\xee\x95\x86", + "\xf0\x9f\x94\xb7"=>"\xee\x95\x87", + "\xf0\x9f\x94\xb8"=>"\xee\x94\xb6", + "\xf0\x9f\x94\xb9"=>"\xee\x94\xb7", + "\xf0\x9f\x94\xba"=>"\xee\x95\x9a", + "\xf0\x9f\x94\xbb"=>"\xee\x95\x9b", + "\xf0\x9f\x94\xbc"=>"\xee\x95\x83", + "\xf0\x9f\x94\xbd"=>"\xee\x95\x82", + "\xf0\x9f\x95\x89"=>"", + "\xf0\x9f\x95\x8a"=>"", + "\xf0\x9f\x95\x8b"=>"", + "\xf0\x9f\x95\x8c"=>"", + "\xf0\x9f\x95\x8d"=>"", + "\xf0\x9f\x95\x8e"=>"", + "\xf0\x9f\x95\x90"=>"\xee\x96\x94", + "\xf0\x9f\x95\x91"=>"\xee\x96\x94", + "\xf0\x9f\x95\x92"=>"\xee\x96\x94", + "\xf0\x9f\x95\x93"=>"\xee\x96\x94", + "\xf0\x9f\x95\x94"=>"\xee\x96\x94", + "\xf0\x9f\x95\x95"=>"\xee\x96\x94", + "\xf0\x9f\x95\x96"=>"\xee\x96\x94", + "\xf0\x9f\x95\x97"=>"\xee\x96\x94", + "\xf0\x9f\x95\x98"=>"\xee\x96\x94", + "\xf0\x9f\x95\x99"=>"\xee\x96\x94", + "\xf0\x9f\x95\x9a"=>"\xee\x96\x94", + "\xf0\x9f\x95\x9b"=>"\xee\x96\x94", + "\xf0\x9f\x95\x9c"=>"", + "\xf0\x9f\x95\x9d"=>"", + "\xf0\x9f\x95\x9e"=>"", + "\xf0\x9f\x95\x9f"=>"", + "\xf0\x9f\x95\xa0"=>"", + "\xf0\x9f\x95\xa1"=>"", + "\xf0\x9f\x95\xa2"=>"", + "\xf0\x9f\x95\xa3"=>"", + "\xf0\x9f\x95\xa4"=>"", + "\xf0\x9f\x95\xa5"=>"", + "\xf0\x9f\x95\xa6"=>"", + "\xf0\x9f\x95\xa7"=>"", + "\xf0\x9f\x95\xaf"=>"", + "\xf0\x9f\x95\xb0"=>"", + "\xf0\x9f\x95\xb3"=>"", + "\xf0\x9f\x95\xb4"=>"", + "\xf0\x9f\x95\xb5"=>"", + "\xf0\x9f\x95\xb6"=>"", + "\xf0\x9f\x95\xb7"=>"", + "\xf0\x9f\x95\xb8"=>"", + "\xf0\x9f\x95\xb9"=>"", + "\xf0\x9f\x96\x87"=>"", + "\xf0\x9f\x96\x8a"=>"", + "\xf0\x9f\x96\x8b"=>"", + "\xf0\x9f\x96\x8c"=>"", + "\xf0\x9f\x96\x8d"=>"", + "\xf0\x9f\x96\x90"=>"", + "\xf0\x9f\x96\x95"=>"", + "\xf0\x9f\x96\x96"=>"", + "\xf0\x9f\x96\xa5"=>"", + "\xf0\x9f\x96\xa8"=>"", + "\xf0\x9f\x96\xb1"=>"", + "\xf0\x9f\x96\xb2"=>"", + "\xf0\x9f\x96\xbc"=>"", + "\xf0\x9f\x97\x82"=>"", + "\xf0\x9f\x97\x83"=>"", + "\xf0\x9f\x97\x84"=>"", + "\xf0\x9f\x97\x91"=>"", + "\xf0\x9f\x97\x92"=>"", + "\xf0\x9f\x97\x93"=>"", + "\xf0\x9f\x97\x9c"=>"", + "\xf0\x9f\x97\x9d"=>"", + "\xf0\x9f\x97\x9e"=>"", + "\xf0\x9f\x97\xa1"=>"", + "\xf0\x9f\x97\xa3"=>"", + "\xf0\x9f\x97\xa8"=>"", + "\xf0\x9f\x97\xaf"=>"", + "\xf0\x9f\x97\xb3"=>"", + "\xf0\x9f\x97\xba"=>"", + "\xf0\x9f\x97\xbb"=>"\xee\x96\xbd", + "\xf0\x9f\x97\xbc"=>"\xee\x93\x80", + "\xf0\x9f\x97\xbd"=>"", + "\xf0\x9f\x97\xbe"=>"\xee\x95\xb2", + "\xf0\x9f\x97\xbf"=>"\xee\xad\xac", + "\xf0\x9f\x98\x80"=>"", + "\xf0\x9f\x98\x81"=>"\xee\xae\x80", + "\xf0\x9f\x98\x82"=>"\xee\xad\xa4", + "\xf0\x9f\x98\x83"=>"\xee\x91\xb1", + "\xf0\x9f\x98\x84"=>"\xee\x91\xb1", + "\xf0\x9f\x98\x85"=>"\xee\x91\xb1\xee\x96\xb1", + "\xf0\x9f\x98\x86"=>"\xee\xab\x85", + "\xf0\x9f\x98\x87"=>"", + "\xf0\x9f\x98\x88"=>"", + "\xf0\x9f\x98\x89"=>"\xee\x97\x83", + "\xf0\x9f\x98\x8a"=>"\xee\xab\x8d", + "\xf0\x9f\x98\x8b"=>"\xee\xab\x8d", + "\xf0\x9f\x98\x8c"=>"\xee\xab\x85", + "\xf0\x9f\x98\x8d"=>"\xee\x97\x84", + "\xf0\x9f\x98\x8e"=>"", + "\xf0\x9f\x98\x8f"=>"\xee\xaa\xbf", + "\xf0\x9f\x98\x90"=>"", + "\xf0\x9f\x98\x91"=>"", + "\xf0\x9f\x98\x92"=>"\xee\xab\x89", + "\xf0\x9f\x98\x93"=>"\xee\x97\x86", + "\xf0\x9f\x98\x94"=>"\xee\xab\x80", + "\xf0\x9f\x98\x95"=>"", + "\xf0\x9f\x98\x96"=>"\xee\xab\x83", + "\xf0\x9f\x98\x97"=>"", + "\xf0\x9f\x98\x98"=>"\xee\xab\x8f", + "\xf0\x9f\x98\x99"=>"", + "\xf0\x9f\x98\x9a"=>"\xee\xab\x8e", + "\xf0\x9f\x98\x9b"=>"", + "\xf0\x9f\x98\x9c"=>"\xee\x93\xa7", + "\xf0\x9f\x98\x9d"=>"\xee\x93\xa7", + "\xf0\x9f\x98\x9e"=>"\xee\xab\x80", + "\xf0\x9f\x98\x9f"=>"", + "\xf0\x9f\x98\xa0"=>"\xee\x91\xb2", + "\xf0\x9f\x98\xa1"=>"\xee\xad\x9d", + "\xf0\x9f\x98\xa2"=>"\xee\xad\xa9", + "\xf0\x9f\x98\xa3"=>"\xee\xab\x82", + "\xf0\x9f\x98\xa4"=>"\xee\xab\x81", + "\xf0\x9f\x98\xa5"=>"\xee\x97\x86", + "\xf0\x9f\x98\xa6"=>"", + "\xf0\x9f\x98\xa7"=>"", + "\xf0\x9f\x98\xa8"=>"\xee\xab\x86", + "\xf0\x9f\x98\xa9"=>"\xee\xad\xa7", + "\xf0\x9f\x98\xaa"=>"\xee\xab\x84", + "\xf0\x9f\x98\xab"=>"\xee\x91\xb4", + "\xf0\x9f\x98\xac"=>"", + "\xf0\x9f\x98\xad"=>"\xee\x91\xb3", + "\xf0\x9f\x98\xae"=>"", + "\xf0\x9f\x98\xaf"=>"", + "\xf0\x9f\x98\xb0"=>"\xee\xab\x8b", + "\xf0\x9f\x98\xb1"=>"\xee\x97\x85", + "\xf0\x9f\x98\xb2"=>"\xee\xab\x8a", + "\xf0\x9f\x98\xb3"=>"\xee\xab\x88", + "\xf0\x9f\x98\xb4"=>"", + "\xf0\x9f\x98\xb5"=>"\xee\x96\xae", + "\xf0\x9f\x98\xb6"=>"", + "\xf0\x9f\x98\xb7"=>"\xee\xab\x87", + "\xf0\x9f\x98\xb8"=>"\xee\xad\xbf", + "\xf0\x9f\x98\xb9"=>"\xee\xad\xa3", + "\xf0\x9f\x98\xba"=>"\xee\xad\xa1", + "\xf0\x9f\x98\xbb"=>"\xee\xad\xa5", + "\xf0\x9f\x98\xbc"=>"\xee\xad\xaa", + "\xf0\x9f\x98\xbd"=>"\xee\xad\xa0", + "\xf0\x9f\x98\xbe"=>"\xee\xad\x9e", + "\xf0\x9f\x98\xbf"=>"\xee\xad\xa8", + "\xf0\x9f\x99\x80"=>"\xee\xad\xa6", + "\xf0\x9f\x99\x81"=>"", + "\xf0\x9f\x99\x82"=>"", + "\xf0\x9f\x99\x83"=>"", + "\xf0\x9f\x99\x84"=>"", + "\xf0\x9f\x99\x85"=>"\xee\xab\x97", + "\xf0\x9f\x99\x86"=>"\xee\xab\x98", + "\xf0\x9f\x99\x87"=>"\xee\xab\x99", + "\xf0\x9f\x99\x88"=>"\xee\xad\x90", + "\xf0\x9f\x99\x89"=>"\xee\xad\x92", + "\xf0\x9f\x99\x8a"=>"\xee\xad\x91", + "\xf0\x9f\x99\x8b"=>"\xee\xae\x85", + "\xf0\x9f\x99\x8c"=>"\xee\xae\x86", + "\xf0\x9f\x99\x8d"=>"\xee\xae\x87", + "\xf0\x9f\x99\x8e"=>"\xee\xae\x88", + "\xf0\x9f\x99\x8f"=>"\xee\xab\x92", + "\xf0\x9f\x9a\x80"=>"\xee\x97\x88", + "\xf0\x9f\x9a\x81"=>"", + "\xf0\x9f\x9a\x82"=>"", + "\xf0\x9f\x9a\x83"=>"\xee\x92\xb5", + "\xf0\x9f\x9a\x84"=>"\xee\x92\xb0", + "\xf0\x9f\x9a\x85"=>"\xee\x92\xb0", + "\xf0\x9f\x9a\x86"=>"", + "\xf0\x9f\x9a\x87"=>"\xee\x96\xbc", + "\xf0\x9f\x9a\x88"=>"", + "\xf0\x9f\x9a\x89"=>"\xee\xad\xad", + "\xf0\x9f\x9a\x8a"=>"", + "\xf0\x9f\x9a\x8b"=>"", + "\xf0\x9f\x9a\x8c"=>"\xee\x92\xaf", + "\xf0\x9f\x9a\x8d"=>"", + "\xf0\x9f\x9a\x8e"=>"", + "\xf0\x9f\x9a\x8f"=>"\xee\x92\xa7", + "\xf0\x9f\x9a\x90"=>"", + "\xf0\x9f\x9a\x91"=>"\xee\xab\xa0", + "\xf0\x9f\x9a\x92"=>"\xee\xab\x9f", + "\xf0\x9f\x9a\x93"=>"\xee\xab\xa1", + "\xf0\x9f\x9a\x94"=>"", + "\xf0\x9f\x9a\x95"=>"\xee\x92\xb1", + "\xf0\x9f\x9a\x96"=>"", + "\xf0\x9f\x9a\x97"=>"\xee\x92\xb1", + "\xf0\x9f\x9a\x98"=>"", + "\xf0\x9f\x9a\x99"=>"\xee\x92\xb1", + "\xf0\x9f\x9a\x9a"=>"\xee\x92\xb2", + "\xf0\x9f\x9a\x9b"=>"", + "\xf0\x9f\x9a\x9c"=>"", + "\xf0\x9f\x9a\x9d"=>"", + "\xf0\x9f\x9a\x9e"=>"", + "\xf0\x9f\x9a\x9f"=>"", + "\xf0\x9f\x9a\xa0"=>"", + "\xf0\x9f\x9a\xa1"=>"", + "\xf0\x9f\x9a\xa2"=>"\xee\xaa\x82", + "\xf0\x9f\x9a\xa3"=>"", + "\xf0\x9f\x9a\xa4"=>"\xee\x92\xb4", + "\xf0\x9f\x9a\xa5"=>"\xee\x91\xaa", + "\xf0\x9f\x9a\xa6"=>"", + "\xf0\x9f\x9a\xa7"=>"\xee\x97\x97", + "\xf0\x9f\x9a\xa8"=>"\xee\xad\xb3", + "\xf0\x9f\x9a\xa9"=>"\xee\xac\xac", + "\xf0\x9f\x9a\xaa"=>"", + "\xf0\x9f\x9a\xab"=>"\xee\x95\x81", + "\xf0\x9f\x9a\xac"=>"\xee\x91\xbd", + "\xf0\x9f\x9a\xad"=>"\xee\x91\xbe", + "\xf0\x9f\x9a\xae"=>"", + "\xf0\x9f\x9a\xaf"=>"", + "\xf0\x9f\x9a\xb0"=>"", + "\xf0\x9f\x9a\xb1"=>"", + "\xf0\x9f\x9a\xb2"=>"\xee\x92\xae", + "\xf0\x9f\x9a\xb3"=>"", + "\xf0\x9f\x9a\xb4"=>"", + "\xf0\x9f\x9a\xb5"=>"", + "\xf0\x9f\x9a\xb6"=>"\xee\xad\xb2", + "\xf0\x9f\x9a\xb7"=>"", + "\xf0\x9f\x9a\xb8"=>"", + "\xf0\x9f\x9a\xb9"=>"", + "\xf0\x9f\x9a\xba"=>"", + "\xf0\x9f\x9a\xbb"=>"\xee\x92\xa5", + "\xf0\x9f\x9a\xbc"=>"\xee\xac\x98", + "\xf0\x9f\x9a\xbd"=>"\xee\x92\xa5", + "\xf0\x9f\x9a\xbe"=>"\xee\x92\xa5", + "\xf0\x9f\x9a\xbf"=>"", + "\xf0\x9f\x9b\x80"=>"\xee\x97\x98", + "\xf0\x9f\x9b\x81"=>"", + "\xf0\x9f\x9b\x82"=>"", + "\xf0\x9f\x9b\x83"=>"", + "\xf0\x9f\x9b\x84"=>"", + "\xf0\x9f\x9b\x85"=>"", + "\xf0\x9f\x9b\x8b"=>"", + "\xf0\x9f\x9b\x8c"=>"", + "\xf0\x9f\x9b\x8d"=>"", + "\xf0\x9f\x9b\x8e"=>"", + "\xf0\x9f\x9b\x8f"=>"", + "\xf0\x9f\x9b\x90"=>"", + "\xf0\x9f\x9b\xa0"=>"", + "\xf0\x9f\x9b\xa1"=>"", + "\xf0\x9f\x9b\xa2"=>"", + "\xf0\x9f\x9b\xa3"=>"", + "\xf0\x9f\x9b\xa4"=>"", + "\xf0\x9f\x9b\xa5"=>"", + "\xf0\x9f\x9b\xa9"=>"", + "\xf0\x9f\x9b\xab"=>"", + "\xf0\x9f\x9b\xac"=>"", + "\xf0\x9f\x9b\xb0"=>"", + "\xf0\x9f\x9b\xb3"=>"", + "\xf0\x9f\xa4\x90"=>"", + "\xf0\x9f\xa4\x91"=>"", + "\xf0\x9f\xa4\x92"=>"", + "\xf0\x9f\xa4\x93"=>"", + "\xf0\x9f\xa4\x94"=>"", + "\xf0\x9f\xa4\x95"=>"", + "\xf0\x9f\xa4\x96"=>"", + "\xf0\x9f\xa4\x97"=>"", + "\xf0\x9f\xa4\x98"=>"", + "\xf0\x9f\xa6\x80"=>"", + "\xf0\x9f\xa6\x81"=>"", + "\xf0\x9f\xa6\x82"=>"", + "\xf0\x9f\xa6\x83"=>"", + "\xf0\x9f\xa6\x84"=>"", + "\xf0\x9f\xa7\x80"=>"", + "#\xe2\x83\xa3"=>"\xee\xae\x84", + "*\xe2\x83\xa3"=>"", + "0\xe2\x83\xa3"=>"\xee\x96\xac", + "1\xe2\x83\xa3"=>"\xee\x94\xa2", + "2\xe2\x83\xa3"=>"\xee\x94\xa3", + "3\xe2\x83\xa3"=>"\xee\x94\xa4", + "4\xe2\x83\xa3"=>"\xee\x94\xa5", + "5\xe2\x83\xa3"=>"\xee\x94\xa6", + "6\xe2\x83\xa3"=>"\xee\x94\xa7", + "7\xe2\x83\xa3"=>"\xee\x94\xa8", + "8\xe2\x83\xa3"=>"\xee\x94\xa9", + "9\xe2\x83\xa3"=>"\xee\x94\xaa", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3"=>"\xee\xac\x91", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa"=>"\xee\xac\x8e", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8"=>"\xee\x97\x95", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb7"=>"\xee\xab\xba", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa7"=>"\xee\xac\x90", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb9"=>"\xee\xac\x8f", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5"=>"\xee\x93\x8c", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7"=>"\xee\xac\x92", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb4\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb6\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xba"=>"\xee\x97\x96", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb8"=>"\xee\x95\xb3", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xbd\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + ), + 'unified_to_softbank' => array( + "\xc2\xa9"=>"\xee\x89\x8e", + "\xc2\xae"=>"\xee\x89\x8f", + "\xe2\x80\xbc"=>"", + "\xe2\x81\x89"=>"", + "\xe2\x84\xa2"=>"\xee\x94\xb7", + "\xe2\x84\xb9"=>"", + "\xe2\x86\x94"=>"", + "\xe2\x86\x95"=>"", + "\xe2\x86\x96"=>"\xee\x88\xb7", + "\xe2\x86\x97"=>"\xee\x88\xb6", + "\xe2\x86\x98"=>"\xee\x88\xb8", + "\xe2\x86\x99"=>"\xee\x88\xb9", + "\xe2\x86\xa9"=>"", + "\xe2\x86\xaa"=>"", + "\xe2\x8c\x9a"=>"", + "\xe2\x8c\x9b"=>"", + "\xe2\x8c\xa8"=>"", + "\xe2\x8f\xa9"=>"\xee\x88\xbc", + "\xe2\x8f\xaa"=>"\xee\x88\xbd", + "\xe2\x8f\xab"=>"", + "\xe2\x8f\xac"=>"", + "\xe2\x8f\xad"=>"", + "\xe2\x8f\xae"=>"", + "\xe2\x8f\xaf"=>"", + "\xe2\x8f\xb0"=>"\xee\x80\xad", + "\xe2\x8f\xb1"=>"", + "\xe2\x8f\xb2"=>"", + "\xe2\x8f\xb3"=>"", + "\xe2\x8f\xb8"=>"", + "\xe2\x8f\xb9"=>"", + "\xe2\x8f\xba"=>"", + "\xe2\x93\x82"=>"\xee\x90\xb4", + "\xe2\x96\xaa"=>"\xee\x88\x9a", + "\xe2\x96\xab"=>"\xee\x88\x9b", + "\xe2\x96\xb6"=>"\xee\x88\xba", + "\xe2\x97\x80"=>"\xee\x88\xbb", + "\xe2\x97\xbb"=>"\xee\x88\x9b", + "\xe2\x97\xbc"=>"\xee\x88\x9a", + "\xe2\x97\xbd"=>"\xee\x88\x9b", + "\xe2\x97\xbe"=>"\xee\x88\x9a", + "\xe2\x98\x80"=>"\xee\x81\x8a", + "\xe2\x98\x81"=>"\xee\x81\x89", + "\xe2\x98\x82"=>"", + "\xe2\x98\x83"=>"", + "\xe2\x98\x84"=>"", + "\xe2\x98\x8e"=>"\xee\x80\x89", + "\xe2\x98\x91"=>"", + "\xe2\x98\x94"=>"\xee\x81\x8b", + "\xe2\x98\x95"=>"\xee\x81\x85", + "\xe2\x98\x98"=>"", + "\xe2\x98\x9d"=>"\xee\x80\x8f", + "\xe2\x98\xa0"=>"", + "\xe2\x98\xa2"=>"", + "\xe2\x98\xa3"=>"", + "\xe2\x98\xa6"=>"", + "\xe2\x98\xaa"=>"", + "\xe2\x98\xae"=>"", + "\xe2\x98\xaf"=>"", + "\xe2\x98\xb8"=>"", + "\xe2\x98\xb9"=>"", + "\xe2\x98\xba"=>"\xee\x90\x94", + "\xe2\x99\x88"=>"\xee\x88\xbf", + "\xe2\x99\x89"=>"\xee\x89\x80", + "\xe2\x99\x8a"=>"\xee\x89\x81", + "\xe2\x99\x8b"=>"\xee\x89\x82", + "\xe2\x99\x8c"=>"\xee\x89\x83", + "\xe2\x99\x8d"=>"\xee\x89\x84", + "\xe2\x99\x8e"=>"\xee\x89\x85", + "\xe2\x99\x8f"=>"\xee\x89\x86", + "\xe2\x99\x90"=>"\xee\x89\x87", + "\xe2\x99\x91"=>"\xee\x89\x88", + "\xe2\x99\x92"=>"\xee\x89\x89", + "\xe2\x99\x93"=>"\xee\x89\x8a", + "\xe2\x99\xa0"=>"\xee\x88\x8e", + "\xe2\x99\xa3"=>"\xee\x88\x8f", + "\xe2\x99\xa5"=>"\xee\x88\x8c", + "\xe2\x99\xa6"=>"\xee\x88\x8d", + "\xe2\x99\xa8"=>"\xee\x84\xa3", + "\xe2\x99\xbb"=>"", + "\xe2\x99\xbf"=>"\xee\x88\x8a", + "\xe2\x9a\x92"=>"", + "\xe2\x9a\x93"=>"\xee\x88\x82", + "\xe2\x9a\x94"=>"", + "\xe2\x9a\x96"=>"", + "\xe2\x9a\x97"=>"", + "\xe2\x9a\x99"=>"", + "\xe2\x9a\x9b"=>"", + "\xe2\x9a\x9c"=>"", + "\xe2\x9a\xa0"=>"\xee\x89\x92", + "\xe2\x9a\xa1"=>"\xee\x84\xbd", + "\xe2\x9a\xaa"=>"\xee\x88\x99", + "\xe2\x9a\xab"=>"\xee\x88\x99", + "\xe2\x9a\xb0"=>"", + "\xe2\x9a\xb1"=>"", + "\xe2\x9a\xbd"=>"\xee\x80\x98", + "\xe2\x9a\xbe"=>"\xee\x80\x96", + "\xe2\x9b\x84"=>"\xee\x81\x88", + "\xe2\x9b\x85"=>"\xee\x81\x8a\xee\x81\x89", + "\xe2\x9b\x88"=>"", + "\xe2\x9b\x8e"=>"\xee\x89\x8b", + "\xe2\x9b\x8f"=>"", + "\xe2\x9b\x91"=>"", + "\xe2\x9b\x93"=>"", + "\xe2\x9b\x94"=>"\xee\x84\xb7", + "\xe2\x9b\xa9"=>"", + "\xe2\x9b\xaa"=>"\xee\x80\xb7", + "\xe2\x9b\xb0"=>"", + "\xe2\x9b\xb1"=>"", + "\xe2\x9b\xb2"=>"\xee\x84\xa1", + "\xe2\x9b\xb3"=>"\xee\x80\x94", + "\xe2\x9b\xb4"=>"", + "\xe2\x9b\xb5"=>"\xee\x80\x9c", + "\xe2\x9b\xb7"=>"", + "\xe2\x9b\xb8"=>"", + "\xe2\x9b\xb9"=>"", + "\xe2\x9b\xba"=>"\xee\x84\xa2", + "\xe2\x9b\xbd"=>"\xee\x80\xba", + "\xe2\x9c\x82"=>"\xee\x8c\x93", + "\xe2\x9c\x85"=>"", + "\xe2\x9c\x88"=>"\xee\x80\x9d", + "\xe2\x9c\x89"=>"\xee\x84\x83", + "\xe2\x9c\x8a"=>"\xee\x80\x90", + "\xe2\x9c\x8b"=>"\xee\x80\x92", + "\xe2\x9c\x8c"=>"\xee\x80\x91", + "\xe2\x9c\x8d"=>"", + "\xe2\x9c\x8f"=>"\xee\x8c\x81", + "\xe2\x9c\x92"=>"", + "\xe2\x9c\x94"=>"", + "\xe2\x9c\x96"=>"\xee\x8c\xb3", + "\xe2\x9c\x9d"=>"", + "\xe2\x9c\xa1"=>"", + "\xe2\x9c\xa8"=>"\xee\x8c\xae", + "\xe2\x9c\xb3"=>"\xee\x88\x86", + "\xe2\x9c\xb4"=>"\xee\x88\x85", + "\xe2\x9d\x84"=>"", + "\xe2\x9d\x87"=>"\xee\x8c\xae", + "\xe2\x9d\x8c"=>"\xee\x8c\xb3", + "\xe2\x9d\x8e"=>"\xee\x8c\xb3", + "\xe2\x9d\x93"=>"\xee\x80\xa0", + "\xe2\x9d\x94"=>"\xee\x8c\xb6", + "\xe2\x9d\x95"=>"\xee\x8c\xb7", + "\xe2\x9d\x97"=>"\xee\x80\xa1", + "\xe2\x9d\xa3"=>"", + "\xe2\x9d\xa4"=>"\xee\x80\xa2", + "\xe2\x9e\x95"=>"", + "\xe2\x9e\x96"=>"", + "\xe2\x9e\x97"=>"", + "\xe2\x9e\xa1"=>"\xee\x88\xb4", + "\xe2\x9e\xb0"=>"", + "\xe2\x9e\xbf"=>"\xee\x88\x91", + "\xe2\xa4\xb4"=>"\xee\x88\xb6", + "\xe2\xa4\xb5"=>"\xee\x88\xb8", + "\xe2\xac\x85"=>"\xee\x88\xb5", + "\xe2\xac\x86"=>"\xee\x88\xb2", + "\xe2\xac\x87"=>"\xee\x88\xb3", + "\xe2\xac\x9b"=>"\xee\x88\x9a", + "\xe2\xac\x9c"=>"\xee\x88\x9b", + "\xe2\xad\x90"=>"\xee\x8c\xaf", + "\xe2\xad\x95"=>"\xee\x8c\xb2", + "\xe3\x80\xb0"=>"", + "\xe3\x80\xbd"=>"\xee\x84\xac", + "\xe3\x8a\x97"=>"\xee\x8c\x8d", + "\xe3\x8a\x99"=>"\xee\x8c\x95", + "\xf0\x9f\x80\x84"=>"\xee\x84\xad", + "\xf0\x9f\x83\x8f"=>"", + "\xf0\x9f\x85\xb0"=>"\xee\x94\xb2", + "\xf0\x9f\x85\xb1"=>"\xee\x94\xb3", + "\xf0\x9f\x85\xbe"=>"\xee\x94\xb5", + "\xf0\x9f\x85\xbf"=>"\xee\x85\x8f", + "\xf0\x9f\x86\x8e"=>"\xee\x94\xb4", + "\xf0\x9f\x86\x91"=>"", + "\xf0\x9f\x86\x92"=>"\xee\x88\x94", + "\xf0\x9f\x86\x93"=>"", + "\xf0\x9f\x86\x94"=>"\xee\x88\xa9", + "\xf0\x9f\x86\x95"=>"\xee\x88\x92", + "\xf0\x9f\x86\x96"=>"", + "\xf0\x9f\x86\x97"=>"\xee\x89\x8d", + "\xf0\x9f\x86\x98"=>"", + "\xf0\x9f\x86\x99"=>"\xee\x88\x93", + "\xf0\x9f\x86\x9a"=>"\xee\x84\xae", + "\xf0\x9f\x88\x81"=>"\xee\x88\x83", + "\xf0\x9f\x88\x82"=>"\xee\x88\xa8", + "\xf0\x9f\x88\x9a"=>"\xee\x88\x96", + "\xf0\x9f\x88\xaf"=>"\xee\x88\xac", + "\xf0\x9f\x88\xb2"=>"", + "\xf0\x9f\x88\xb3"=>"\xee\x88\xab", + "\xf0\x9f\x88\xb4"=>"", + "\xf0\x9f\x88\xb5"=>"\xee\x88\xaa", + "\xf0\x9f\x88\xb6"=>"\xee\x88\x95", + "\xf0\x9f\x88\xb7"=>"\xee\x88\x97", + "\xf0\x9f\x88\xb8"=>"\xee\x88\x98", + "\xf0\x9f\x88\xb9"=>"\xee\x88\xa7", + "\xf0\x9f\x88\xba"=>"\xee\x88\xad", + "\xf0\x9f\x89\x90"=>"\xee\x88\xa6", + "\xf0\x9f\x89\x91"=>"", + "\xf0\x9f\x8c\x80"=>"\xee\x91\x83", + "\xf0\x9f\x8c\x81"=>"", + "\xf0\x9f\x8c\x82"=>"\xee\x90\xbc", + "\xf0\x9f\x8c\x83"=>"\xee\x91\x8b", + "\xf0\x9f\x8c\x84"=>"\xee\x81\x8d", + "\xf0\x9f\x8c\x85"=>"\xee\x91\x89", + "\xf0\x9f\x8c\x86"=>"\xee\x85\x86", + "\xf0\x9f\x8c\x87"=>"\xee\x91\x8a", + "\xf0\x9f\x8c\x88"=>"\xee\x91\x8c", + "\xf0\x9f\x8c\x89"=>"\xee\x91\x8b", + "\xf0\x9f\x8c\x8a"=>"\xee\x90\xbe", + "\xf0\x9f\x8c\x8b"=>"", + "\xf0\x9f\x8c\x8c"=>"\xee\x91\x8b", + "\xf0\x9f\x8c\x8d"=>"", + "\xf0\x9f\x8c\x8e"=>"", + "\xf0\x9f\x8c\x8f"=>"", + "\xf0\x9f\x8c\x90"=>"", + "\xf0\x9f\x8c\x91"=>"", + "\xf0\x9f\x8c\x92"=>"", + "\xf0\x9f\x8c\x93"=>"\xee\x81\x8c", + "\xf0\x9f\x8c\x94"=>"\xee\x81\x8c", + "\xf0\x9f\x8c\x95"=>"", + "\xf0\x9f\x8c\x96"=>"", + "\xf0\x9f\x8c\x97"=>"", + "\xf0\x9f\x8c\x98"=>"", + "\xf0\x9f\x8c\x99"=>"\xee\x81\x8c", + "\xf0\x9f\x8c\x9a"=>"", + "\xf0\x9f\x8c\x9b"=>"\xee\x81\x8c", + "\xf0\x9f\x8c\x9c"=>"", + "\xf0\x9f\x8c\x9d"=>"", + "\xf0\x9f\x8c\x9e"=>"", + "\xf0\x9f\x8c\x9f"=>"\xee\x8c\xb5", + "\xf0\x9f\x8c\xa0"=>"", + "\xf0\x9f\x8c\xa1"=>"", + "\xf0\x9f\x8c\xa4"=>"", + "\xf0\x9f\x8c\xa5"=>"", + "\xf0\x9f\x8c\xa6"=>"", + "\xf0\x9f\x8c\xa7"=>"", + "\xf0\x9f\x8c\xa8"=>"", + "\xf0\x9f\x8c\xa9"=>"", + "\xf0\x9f\x8c\xaa"=>"", + "\xf0\x9f\x8c\xab"=>"", + "\xf0\x9f\x8c\xac"=>"", + "\xf0\x9f\x8c\xad"=>"", + "\xf0\x9f\x8c\xae"=>"", + "\xf0\x9f\x8c\xaf"=>"", + "\xf0\x9f\x8c\xb0"=>"", + "\xf0\x9f\x8c\xb1"=>"\xee\x84\x90", + "\xf0\x9f\x8c\xb2"=>"", + "\xf0\x9f\x8c\xb3"=>"", + "\xf0\x9f\x8c\xb4"=>"\xee\x8c\x87", + "\xf0\x9f\x8c\xb5"=>"\xee\x8c\x88", + "\xf0\x9f\x8c\xb6"=>"", + "\xf0\x9f\x8c\xb7"=>"\xee\x8c\x84", + "\xf0\x9f\x8c\xb8"=>"\xee\x80\xb0", + "\xf0\x9f\x8c\xb9"=>"\xee\x80\xb2", + "\xf0\x9f\x8c\xba"=>"\xee\x8c\x83", + "\xf0\x9f\x8c\xbb"=>"\xee\x8c\x85", + "\xf0\x9f\x8c\xbc"=>"\xee\x8c\x85", + "\xf0\x9f\x8c\xbd"=>"", + "\xf0\x9f\x8c\xbe"=>"\xee\x91\x84", + "\xf0\x9f\x8c\xbf"=>"\xee\x84\x90", + "\xf0\x9f\x8d\x80"=>"\xee\x84\x90", + "\xf0\x9f\x8d\x81"=>"\xee\x84\x98", + "\xf0\x9f\x8d\x82"=>"\xee\x84\x99", + "\xf0\x9f\x8d\x83"=>"\xee\x91\x87", + "\xf0\x9f\x8d\x84"=>"", + "\xf0\x9f\x8d\x85"=>"\xee\x8d\x89", + "\xf0\x9f\x8d\x86"=>"\xee\x8d\x8a", + "\xf0\x9f\x8d\x87"=>"", + "\xf0\x9f\x8d\x88"=>"", + "\xf0\x9f\x8d\x89"=>"\xee\x8d\x88", + "\xf0\x9f\x8d\x8a"=>"\xee\x8d\x86", + "\xf0\x9f\x8d\x8b"=>"", + "\xf0\x9f\x8d\x8c"=>"", + "\xf0\x9f\x8d\x8d"=>"", + "\xf0\x9f\x8d\x8e"=>"\xee\x8d\x85", + "\xf0\x9f\x8d\x8f"=>"\xee\x8d\x85", + "\xf0\x9f\x8d\x90"=>"", + "\xf0\x9f\x8d\x91"=>"", + "\xf0\x9f\x8d\x92"=>"", + "\xf0\x9f\x8d\x93"=>"\xee\x8d\x87", + "\xf0\x9f\x8d\x94"=>"\xee\x84\xa0", + "\xf0\x9f\x8d\x95"=>"", + "\xf0\x9f\x8d\x96"=>"", + "\xf0\x9f\x8d\x97"=>"", + "\xf0\x9f\x8d\x98"=>"\xee\x8c\xbd", + "\xf0\x9f\x8d\x99"=>"\xee\x8d\x82", + "\xf0\x9f\x8d\x9a"=>"\xee\x8c\xbe", + "\xf0\x9f\x8d\x9b"=>"\xee\x8d\x81", + "\xf0\x9f\x8d\x9c"=>"\xee\x8d\x80", + "\xf0\x9f\x8d\x9d"=>"\xee\x8c\xbf", + "\xf0\x9f\x8d\x9e"=>"\xee\x8c\xb9", + "\xf0\x9f\x8d\x9f"=>"\xee\x8c\xbb", + "\xf0\x9f\x8d\xa0"=>"", + "\xf0\x9f\x8d\xa1"=>"\xee\x8c\xbc", + "\xf0\x9f\x8d\xa2"=>"\xee\x8d\x83", + "\xf0\x9f\x8d\xa3"=>"\xee\x8d\x84", + "\xf0\x9f\x8d\xa4"=>"", + "\xf0\x9f\x8d\xa5"=>"", + "\xf0\x9f\x8d\xa6"=>"\xee\x8c\xba", + "\xf0\x9f\x8d\xa7"=>"\xee\x90\xbf", + "\xf0\x9f\x8d\xa8"=>"", + "\xf0\x9f\x8d\xa9"=>"", + "\xf0\x9f\x8d\xaa"=>"", + "\xf0\x9f\x8d\xab"=>"", + "\xf0\x9f\x8d\xac"=>"", + "\xf0\x9f\x8d\xad"=>"", + "\xf0\x9f\x8d\xae"=>"", + "\xf0\x9f\x8d\xaf"=>"", + "\xf0\x9f\x8d\xb0"=>"\xee\x81\x86", + "\xf0\x9f\x8d\xb1"=>"\xee\x8d\x8c", + "\xf0\x9f\x8d\xb2"=>"\xee\x8d\x8d", + "\xf0\x9f\x8d\xb3"=>"\xee\x85\x87", + "\xf0\x9f\x8d\xb4"=>"\xee\x81\x83", + "\xf0\x9f\x8d\xb5"=>"\xee\x8c\xb8", + "\xf0\x9f\x8d\xb6"=>"\xee\x8c\x8b", + "\xf0\x9f\x8d\xb7"=>"\xee\x81\x84", + "\xf0\x9f\x8d\xb8"=>"\xee\x81\x84", + "\xf0\x9f\x8d\xb9"=>"\xee\x81\x84", + "\xf0\x9f\x8d\xba"=>"\xee\x81\x87", + "\xf0\x9f\x8d\xbb"=>"\xee\x8c\x8c", + "\xf0\x9f\x8d\xbc"=>"", + "\xf0\x9f\x8d\xbd"=>"", + "\xf0\x9f\x8d\xbe"=>"", + "\xf0\x9f\x8d\xbf"=>"", + "\xf0\x9f\x8e\x80"=>"\xee\x8c\x94", + "\xf0\x9f\x8e\x81"=>"\xee\x84\x92", + "\xf0\x9f\x8e\x82"=>"\xee\x8d\x8b", + "\xf0\x9f\x8e\x83"=>"\xee\x91\x85", + "\xf0\x9f\x8e\x84"=>"\xee\x80\xb3", + "\xf0\x9f\x8e\x85"=>"\xee\x91\x88", + "\xf0\x9f\x8e\x86"=>"\xee\x84\x97", + "\xf0\x9f\x8e\x87"=>"\xee\x91\x80", + "\xf0\x9f\x8e\x88"=>"\xee\x8c\x90", + "\xf0\x9f\x8e\x89"=>"\xee\x8c\x92", + "\xf0\x9f\x8e\x8a"=>"", + "\xf0\x9f\x8e\x8b"=>"", + "\xf0\x9f\x8e\x8c"=>"\xee\x85\x83", + "\xf0\x9f\x8e\x8d"=>"\xee\x90\xb6", + "\xf0\x9f\x8e\x8e"=>"\xee\x90\xb8", + "\xf0\x9f\x8e\x8f"=>"\xee\x90\xbb", + "\xf0\x9f\x8e\x90"=>"\xee\x91\x82", + "\xf0\x9f\x8e\x91"=>"\xee\x91\x86", + "\xf0\x9f\x8e\x92"=>"\xee\x90\xba", + "\xf0\x9f\x8e\x93"=>"\xee\x90\xb9", + "\xf0\x9f\x8e\x96"=>"", + "\xf0\x9f\x8e\x97"=>"", + "\xf0\x9f\x8e\x99"=>"", + "\xf0\x9f\x8e\x9a"=>"", + "\xf0\x9f\x8e\x9b"=>"", + "\xf0\x9f\x8e\x9e"=>"", + "\xf0\x9f\x8e\x9f"=>"", + "\xf0\x9f\x8e\xa0"=>"", + "\xf0\x9f\x8e\xa1"=>"\xee\x84\xa4", + "\xf0\x9f\x8e\xa2"=>"\xee\x90\xb3", + "\xf0\x9f\x8e\xa3"=>"\xee\x80\x99", + "\xf0\x9f\x8e\xa4"=>"\xee\x80\xbc", + "\xf0\x9f\x8e\xa5"=>"\xee\x80\xbd", + "\xf0\x9f\x8e\xa6"=>"\xee\x94\x87", + "\xf0\x9f\x8e\xa7"=>"\xee\x8c\x8a", + "\xf0\x9f\x8e\xa8"=>"\xee\x94\x82", + "\xf0\x9f\x8e\xa9"=>"\xee\x94\x83", + "\xf0\x9f\x8e\xaa"=>"", + "\xf0\x9f\x8e\xab"=>"\xee\x84\xa5", + "\xf0\x9f\x8e\xac"=>"\xee\x8c\xa4", + "\xf0\x9f\x8e\xad"=>"\xee\x94\x83", + "\xf0\x9f\x8e\xae"=>"", + "\xf0\x9f\x8e\xaf"=>"\xee\x84\xb0", + "\xf0\x9f\x8e\xb0"=>"\xee\x84\xb3", + "\xf0\x9f\x8e\xb1"=>"\xee\x90\xac", + "\xf0\x9f\x8e\xb2"=>"", + "\xf0\x9f\x8e\xb3"=>"", + "\xf0\x9f\x8e\xb4"=>"", + "\xf0\x9f\x8e\xb5"=>"\xee\x80\xbe", + "\xf0\x9f\x8e\xb6"=>"\xee\x8c\xa6", + "\xf0\x9f\x8e\xb7"=>"\xee\x81\x80", + "\xf0\x9f\x8e\xb8"=>"\xee\x81\x81", + "\xf0\x9f\x8e\xb9"=>"", + "\xf0\x9f\x8e\xba"=>"\xee\x81\x82", + "\xf0\x9f\x8e\xbb"=>"", + "\xf0\x9f\x8e\xbc"=>"\xee\x8c\xa6", + "\xf0\x9f\x8e\xbd"=>"", + "\xf0\x9f\x8e\xbe"=>"\xee\x80\x95", + "\xf0\x9f\x8e\xbf"=>"\xee\x80\x93", + "\xf0\x9f\x8f\x80"=>"\xee\x90\xaa", + "\xf0\x9f\x8f\x81"=>"\xee\x84\xb2", + "\xf0\x9f\x8f\x82"=>"", + "\xf0\x9f\x8f\x83"=>"\xee\x84\x95", + "\xf0\x9f\x8f\x84"=>"\xee\x80\x97", + "\xf0\x9f\x8f\x85"=>"", + "\xf0\x9f\x8f\x86"=>"\xee\x84\xb1", + "\xf0\x9f\x8f\x87"=>"", + "\xf0\x9f\x8f\x88"=>"\xee\x90\xab", + "\xf0\x9f\x8f\x89"=>"", + "\xf0\x9f\x8f\x8a"=>"\xee\x90\xad", + "\xf0\x9f\x8f\x8b"=>"", + "\xf0\x9f\x8f\x8c"=>"", + "\xf0\x9f\x8f\x8d"=>"", + "\xf0\x9f\x8f\x8e"=>"", + "\xf0\x9f\x8f\x8f"=>"", + "\xf0\x9f\x8f\x90"=>"", + "\xf0\x9f\x8f\x91"=>"", + "\xf0\x9f\x8f\x92"=>"", + "\xf0\x9f\x8f\x93"=>"", + "\xf0\x9f\x8f\x94"=>"", + "\xf0\x9f\x8f\x95"=>"", + "\xf0\x9f\x8f\x96"=>"", + "\xf0\x9f\x8f\x97"=>"", + "\xf0\x9f\x8f\x98"=>"", + "\xf0\x9f\x8f\x99"=>"", + "\xf0\x9f\x8f\x9a"=>"", + "\xf0\x9f\x8f\x9b"=>"", + "\xf0\x9f\x8f\x9c"=>"", + "\xf0\x9f\x8f\x9d"=>"", + "\xf0\x9f\x8f\x9e"=>"", + "\xf0\x9f\x8f\x9f"=>"", + "\xf0\x9f\x8f\xa0"=>"\xee\x80\xb6", + "\xf0\x9f\x8f\xa1"=>"\xee\x80\xb6", + "\xf0\x9f\x8f\xa2"=>"\xee\x80\xb8", + "\xf0\x9f\x8f\xa3"=>"\xee\x85\x93", + "\xf0\x9f\x8f\xa4"=>"", + "\xf0\x9f\x8f\xa5"=>"\xee\x85\x95", + "\xf0\x9f\x8f\xa6"=>"\xee\x85\x8d", + "\xf0\x9f\x8f\xa7"=>"\xee\x85\x94", + "\xf0\x9f\x8f\xa8"=>"\xee\x85\x98", + "\xf0\x9f\x8f\xa9"=>"\xee\x94\x81", + "\xf0\x9f\x8f\xaa"=>"\xee\x85\x96", + "\xf0\x9f\x8f\xab"=>"\xee\x85\x97", + "\xf0\x9f\x8f\xac"=>"\xee\x94\x84", + "\xf0\x9f\x8f\xad"=>"\xee\x94\x88", + "\xf0\x9f\x8f\xae"=>"\xee\x8c\x8b", + "\xf0\x9f\x8f\xaf"=>"\xee\x94\x85", + "\xf0\x9f\x8f\xb0"=>"\xee\x94\x86", + "\xf0\x9f\x8f\xb3"=>"", + "\xf0\x9f\x8f\xb4"=>"", + "\xf0\x9f\x8f\xb5"=>"", + "\xf0\x9f\x8f\xb7"=>"", + "\xf0\x9f\x8f\xb8"=>"", + "\xf0\x9f\x8f\xb9"=>"", + "\xf0\x9f\x8f\xba"=>"", + "\xf0\x9f\x8f\xbb"=>"", + "\xf0\x9f\x8f\xbc"=>"", + "\xf0\x9f\x8f\xbd"=>"", + "\xf0\x9f\x8f\xbe"=>"", + "\xf0\x9f\x8f\xbf"=>"", + "\xf0\x9f\x90\x80"=>"", + "\xf0\x9f\x90\x81"=>"", + "\xf0\x9f\x90\x82"=>"", + "\xf0\x9f\x90\x83"=>"", + "\xf0\x9f\x90\x84"=>"", + "\xf0\x9f\x90\x85"=>"", + "\xf0\x9f\x90\x86"=>"", + "\xf0\x9f\x90\x87"=>"", + "\xf0\x9f\x90\x88"=>"", + "\xf0\x9f\x90\x89"=>"", + "\xf0\x9f\x90\x8a"=>"", + "\xf0\x9f\x90\x8b"=>"", + "\xf0\x9f\x90\x8c"=>"", + "\xf0\x9f\x90\x8d"=>"\xee\x94\xad", + "\xf0\x9f\x90\x8e"=>"\xee\x84\xb4", + "\xf0\x9f\x90\x8f"=>"", + "\xf0\x9f\x90\x90"=>"", + "\xf0\x9f\x90\x91"=>"\xee\x94\xa9", + "\xf0\x9f\x90\x92"=>"\xee\x94\xa8", + "\xf0\x9f\x90\x93"=>"", + "\xf0\x9f\x90\x94"=>"\xee\x94\xae", + "\xf0\x9f\x90\x95"=>"", + "\xf0\x9f\x90\x96"=>"", + "\xf0\x9f\x90\x97"=>"\xee\x94\xaf", + "\xf0\x9f\x90\x98"=>"\xee\x94\xa6", + "\xf0\x9f\x90\x99"=>"\xee\x84\x8a", + "\xf0\x9f\x90\x9a"=>"\xee\x91\x81", + "\xf0\x9f\x90\x9b"=>"\xee\x94\xa5", + "\xf0\x9f\x90\x9c"=>"", + "\xf0\x9f\x90\x9d"=>"", + "\xf0\x9f\x90\x9e"=>"", + "\xf0\x9f\x90\x9f"=>"\xee\x80\x99", + "\xf0\x9f\x90\xa0"=>"\xee\x94\xa2", + "\xf0\x9f\x90\xa1"=>"\xee\x80\x99", + "\xf0\x9f\x90\xa2"=>"", + "\xf0\x9f\x90\xa3"=>"\xee\x94\xa3", + "\xf0\x9f\x90\xa4"=>"\xee\x94\xa3", + "\xf0\x9f\x90\xa5"=>"\xee\x94\xa3", + "\xf0\x9f\x90\xa6"=>"\xee\x94\xa1", + "\xf0\x9f\x90\xa7"=>"\xee\x81\x95", + "\xf0\x9f\x90\xa8"=>"\xee\x94\xa7", + "\xf0\x9f\x90\xa9"=>"\xee\x81\x92", + "\xf0\x9f\x90\xaa"=>"", + "\xf0\x9f\x90\xab"=>"\xee\x94\xb0", + "\xf0\x9f\x90\xac"=>"\xee\x94\xa0", + "\xf0\x9f\x90\xad"=>"\xee\x81\x93", + "\xf0\x9f\x90\xae"=>"\xee\x94\xab", + "\xf0\x9f\x90\xaf"=>"\xee\x81\x90", + "\xf0\x9f\x90\xb0"=>"\xee\x94\xac", + "\xf0\x9f\x90\xb1"=>"\xee\x81\x8f", + "\xf0\x9f\x90\xb2"=>"", + "\xf0\x9f\x90\xb3"=>"\xee\x81\x94", + "\xf0\x9f\x90\xb4"=>"\xee\x80\x9a", + "\xf0\x9f\x90\xb5"=>"\xee\x84\x89", + "\xf0\x9f\x90\xb6"=>"\xee\x81\x92", + "\xf0\x9f\x90\xb7"=>"\xee\x84\x8b", + "\xf0\x9f\x90\xb8"=>"\xee\x94\xb1", + "\xf0\x9f\x90\xb9"=>"\xee\x94\xa4", + "\xf0\x9f\x90\xba"=>"\xee\x94\xaa", + "\xf0\x9f\x90\xbb"=>"\xee\x81\x91", + "\xf0\x9f\x90\xbc"=>"", + "\xf0\x9f\x90\xbd"=>"\xee\x84\x8b", + "\xf0\x9f\x90\xbe"=>"\xee\x94\xb6", + "\xf0\x9f\x90\xbf"=>"", + "\xf0\x9f\x91\x80"=>"\xee\x90\x99", + "\xf0\x9f\x91\x81"=>"", + "\xf0\x9f\x91\x82"=>"\xee\x90\x9b", + "\xf0\x9f\x91\x83"=>"\xee\x90\x9a", + "\xf0\x9f\x91\x84"=>"\xee\x90\x9c", + "\xf0\x9f\x91\x85"=>"\xee\x90\x89", + "\xf0\x9f\x91\x86"=>"\xee\x88\xae", + "\xf0\x9f\x91\x87"=>"\xee\x88\xaf", + "\xf0\x9f\x91\x88"=>"\xee\x88\xb0", + "\xf0\x9f\x91\x89"=>"\xee\x88\xb1", + "\xf0\x9f\x91\x8a"=>"\xee\x80\x8d", + "\xf0\x9f\x91\x8b"=>"\xee\x90\x9e", + "\xf0\x9f\x91\x8c"=>"\xee\x90\xa0", + "\xf0\x9f\x91\x8d"=>"\xee\x80\x8e", + "\xf0\x9f\x91\x8e"=>"\xee\x90\xa1", + "\xf0\x9f\x91\x8f"=>"\xee\x90\x9f", + "\xf0\x9f\x91\x90"=>"\xee\x90\xa2", + "\xf0\x9f\x91\x91"=>"\xee\x84\x8e", + "\xf0\x9f\x91\x92"=>"\xee\x8c\x98", + "\xf0\x9f\x91\x93"=>"", + "\xf0\x9f\x91\x94"=>"\xee\x8c\x82", + "\xf0\x9f\x91\x95"=>"\xee\x80\x86", + "\xf0\x9f\x91\x96"=>"", + "\xf0\x9f\x91\x97"=>"\xee\x8c\x99", + "\xf0\x9f\x91\x98"=>"\xee\x8c\xa1", + "\xf0\x9f\x91\x99"=>"\xee\x8c\xa2", + "\xf0\x9f\x91\x9a"=>"\xee\x80\x86", + "\xf0\x9f\x91\x9b"=>"", + "\xf0\x9f\x91\x9c"=>"\xee\x8c\xa3", + "\xf0\x9f\x91\x9d"=>"", + "\xf0\x9f\x91\x9e"=>"\xee\x80\x87", + "\xf0\x9f\x91\x9f"=>"\xee\x80\x87", + "\xf0\x9f\x91\xa0"=>"\xee\x84\xbe", + "\xf0\x9f\x91\xa1"=>"\xee\x8c\x9a", + "\xf0\x9f\x91\xa2"=>"\xee\x8c\x9b", + "\xf0\x9f\x91\xa3"=>"\xee\x94\xb6", + "\xf0\x9f\x91\xa4"=>"", + "\xf0\x9f\x91\xa5"=>"", + "\xf0\x9f\x91\xa6"=>"\xee\x80\x81", + "\xf0\x9f\x91\xa7"=>"\xee\x80\x82", + "\xf0\x9f\x91\xa8"=>"\xee\x80\x84", + "\xf0\x9f\x91\xa9"=>"\xee\x80\x85", + "\xf0\x9f\x91\xaa"=>"", + "\xf0\x9f\x91\xab"=>"\xee\x90\xa8", + "\xf0\x9f\x91\xac"=>"", + "\xf0\x9f\x91\xad"=>"", + "\xf0\x9f\x91\xae"=>"\xee\x85\x92", + "\xf0\x9f\x91\xaf"=>"\xee\x90\xa9", + "\xf0\x9f\x91\xb0"=>"", + "\xf0\x9f\x91\xb1"=>"\xee\x94\x95", + "\xf0\x9f\x91\xb2"=>"\xee\x94\x96", + "\xf0\x9f\x91\xb3"=>"\xee\x94\x97", + "\xf0\x9f\x91\xb4"=>"\xee\x94\x98", + "\xf0\x9f\x91\xb5"=>"\xee\x94\x99", + "\xf0\x9f\x91\xb6"=>"\xee\x94\x9a", + "\xf0\x9f\x91\xb7"=>"\xee\x94\x9b", + "\xf0\x9f\x91\xb8"=>"\xee\x94\x9c", + "\xf0\x9f\x91\xb9"=>"", + "\xf0\x9f\x91\xba"=>"", + "\xf0\x9f\x91\xbb"=>"\xee\x84\x9b", + "\xf0\x9f\x91\xbc"=>"\xee\x81\x8e", + "\xf0\x9f\x91\xbd"=>"\xee\x84\x8c", + "\xf0\x9f\x91\xbe"=>"\xee\x84\xab", + "\xf0\x9f\x91\xbf"=>"\xee\x84\x9a", + "\xf0\x9f\x92\x80"=>"\xee\x84\x9c", + "\xf0\x9f\x92\x81"=>"\xee\x89\x93", + "\xf0\x9f\x92\x82"=>"\xee\x94\x9e", + "\xf0\x9f\x92\x83"=>"\xee\x94\x9f", + "\xf0\x9f\x92\x84"=>"\xee\x8c\x9c", + "\xf0\x9f\x92\x85"=>"\xee\x8c\x9d", + "\xf0\x9f\x92\x86"=>"\xee\x8c\x9e", + "\xf0\x9f\x92\x87"=>"\xee\x8c\x9f", + "\xf0\x9f\x92\x88"=>"\xee\x8c\xa0", + "\xf0\x9f\x92\x89"=>"\xee\x84\xbb", + "\xf0\x9f\x92\x8a"=>"\xee\x8c\x8f", + "\xf0\x9f\x92\x8b"=>"\xee\x80\x83", + "\xf0\x9f\x92\x8c"=>"\xee\x84\x83\xee\x8c\xa8", + "\xf0\x9f\x92\x8d"=>"\xee\x80\xb4", + "\xf0\x9f\x92\x8e"=>"\xee\x80\xb5", + "\xf0\x9f\x92\x8f"=>"\xee\x84\x91", + "\xf0\x9f\x92\x90"=>"\xee\x8c\x86", + "\xf0\x9f\x92\x91"=>"\xee\x90\xa5", + "\xf0\x9f\x92\x92"=>"\xee\x90\xbd", + "\xf0\x9f\x92\x93"=>"\xee\x8c\xa7", + "\xf0\x9f\x92\x94"=>"\xee\x80\xa3", + "\xf0\x9f\x92\x95"=>"\xee\x8c\xa7", + "\xf0\x9f\x92\x96"=>"\xee\x8c\xa7", + "\xf0\x9f\x92\x97"=>"\xee\x8c\xa8", + "\xf0\x9f\x92\x98"=>"\xee\x8c\xa9", + "\xf0\x9f\x92\x99"=>"\xee\x8c\xaa", + "\xf0\x9f\x92\x9a"=>"\xee\x8c\xab", + "\xf0\x9f\x92\x9b"=>"\xee\x8c\xac", + "\xf0\x9f\x92\x9c"=>"\xee\x8c\xad", + "\xf0\x9f\x92\x9d"=>"\xee\x90\xb7", + "\xf0\x9f\x92\x9e"=>"\xee\x8c\xa7", + "\xf0\x9f\x92\x9f"=>"\xee\x88\x84", + "\xf0\x9f\x92\xa0"=>"", + "\xf0\x9f\x92\xa1"=>"\xee\x84\x8f", + "\xf0\x9f\x92\xa2"=>"\xee\x8c\xb4", + "\xf0\x9f\x92\xa3"=>"\xee\x8c\x91", + "\xf0\x9f\x92\xa4"=>"\xee\x84\xbc", + "\xf0\x9f\x92\xa5"=>"", + "\xf0\x9f\x92\xa6"=>"\xee\x8c\xb1", + "\xf0\x9f\x92\xa7"=>"\xee\x8c\xb1", + "\xf0\x9f\x92\xa8"=>"\xee\x8c\xb0", + "\xf0\x9f\x92\xa9"=>"\xee\x81\x9a", + "\xf0\x9f\x92\xaa"=>"\xee\x85\x8c", + "\xf0\x9f\x92\xab"=>"\xee\x90\x87", + "\xf0\x9f\x92\xac"=>"", + "\xf0\x9f\x92\xad"=>"", + "\xf0\x9f\x92\xae"=>"", + "\xf0\x9f\x92\xaf"=>"", + "\xf0\x9f\x92\xb0"=>"\xee\x84\xaf", + "\xf0\x9f\x92\xb1"=>"\xee\x85\x89", + "\xf0\x9f\x92\xb2"=>"\xee\x84\xaf", + "\xf0\x9f\x92\xb3"=>"", + "\xf0\x9f\x92\xb4"=>"", + "\xf0\x9f\x92\xb5"=>"\xee\x84\xaf", + "\xf0\x9f\x92\xb6"=>"", + "\xf0\x9f\x92\xb7"=>"", + "\xf0\x9f\x92\xb8"=>"", + "\xf0\x9f\x92\xb9"=>"\xee\x85\x8a", + "\xf0\x9f\x92\xba"=>"\xee\x84\x9f", + "\xf0\x9f\x92\xbb"=>"\xee\x80\x8c", + "\xf0\x9f\x92\xbc"=>"\xee\x84\x9e", + "\xf0\x9f\x92\xbd"=>"\xee\x8c\x96", + "\xf0\x9f\x92\xbe"=>"\xee\x8c\x96", + "\xf0\x9f\x92\xbf"=>"\xee\x84\xa6", + "\xf0\x9f\x93\x80"=>"\xee\x84\xa7", + "\xf0\x9f\x93\x81"=>"", + "\xf0\x9f\x93\x82"=>"", + "\xf0\x9f\x93\x83"=>"\xee\x8c\x81", + "\xf0\x9f\x93\x84"=>"\xee\x8c\x81", + "\xf0\x9f\x93\x85"=>"", + "\xf0\x9f\x93\x86"=>"", + "\xf0\x9f\x93\x87"=>"\xee\x85\x88", + "\xf0\x9f\x93\x88"=>"\xee\x85\x8a", + "\xf0\x9f\x93\x89"=>"", + "\xf0\x9f\x93\x8a"=>"\xee\x85\x8a", + "\xf0\x9f\x93\x8b"=>"\xee\x8c\x81", + "\xf0\x9f\x93\x8c"=>"", + "\xf0\x9f\x93\x8d"=>"", + "\xf0\x9f\x93\x8e"=>"", + "\xf0\x9f\x93\x8f"=>"", + "\xf0\x9f\x93\x90"=>"", + "\xf0\x9f\x93\x91"=>"\xee\x8c\x81", + "\xf0\x9f\x93\x92"=>"\xee\x85\x88", + "\xf0\x9f\x93\x93"=>"\xee\x85\x88", + "\xf0\x9f\x93\x94"=>"\xee\x85\x88", + "\xf0\x9f\x93\x95"=>"\xee\x85\x88", + "\xf0\x9f\x93\x96"=>"\xee\x85\x88", + "\xf0\x9f\x93\x97"=>"\xee\x85\x88", + "\xf0\x9f\x93\x98"=>"\xee\x85\x88", + "\xf0\x9f\x93\x99"=>"\xee\x85\x88", + "\xf0\x9f\x93\x9a"=>"\xee\x85\x88", + "\xf0\x9f\x93\x9b"=>"", + "\xf0\x9f\x93\x9c"=>"", + "\xf0\x9f\x93\x9d"=>"\xee\x8c\x81", + "\xf0\x9f\x93\x9e"=>"\xee\x80\x89", + "\xf0\x9f\x93\x9f"=>"", + "\xf0\x9f\x93\xa0"=>"\xee\x80\x8b", + "\xf0\x9f\x93\xa1"=>"\xee\x85\x8b", + "\xf0\x9f\x93\xa2"=>"\xee\x85\x82", + "\xf0\x9f\x93\xa3"=>"\xee\x8c\x97", + "\xf0\x9f\x93\xa4"=>"", + "\xf0\x9f\x93\xa5"=>"", + "\xf0\x9f\x93\xa6"=>"\xee\x84\x92", + "\xf0\x9f\x93\xa7"=>"\xee\x84\x83", + "\xf0\x9f\x93\xa8"=>"\xee\x84\x83", + "\xf0\x9f\x93\xa9"=>"\xee\x84\x83", + "\xf0\x9f\x93\xaa"=>"\xee\x84\x81", + "\xf0\x9f\x93\xab"=>"\xee\x84\x81", + "\xf0\x9f\x93\xac"=>"", + "\xf0\x9f\x93\xad"=>"", + "\xf0\x9f\x93\xae"=>"\xee\x84\x82", + "\xf0\x9f\x93\xaf"=>"", + "\xf0\x9f\x93\xb0"=>"", + "\xf0\x9f\x93\xb1"=>"\xee\x80\x8a", + "\xf0\x9f\x93\xb2"=>"\xee\x84\x84", + "\xf0\x9f\x93\xb3"=>"\xee\x89\x90", + "\xf0\x9f\x93\xb4"=>"\xee\x89\x91", + "\xf0\x9f\x93\xb5"=>"", + "\xf0\x9f\x93\xb6"=>"\xee\x88\x8b", + "\xf0\x9f\x93\xb7"=>"\xee\x80\x88", + "\xf0\x9f\x93\xb8"=>"", + "\xf0\x9f\x93\xb9"=>"\xee\x80\xbd", + "\xf0\x9f\x93\xba"=>"\xee\x84\xaa", + "\xf0\x9f\x93\xbb"=>"\xee\x84\xa8", + "\xf0\x9f\x93\xbc"=>"\xee\x84\xa9", + "\xf0\x9f\x93\xbd"=>"", + "\xf0\x9f\x93\xbf"=>"", + "\xf0\x9f\x94\x80"=>"", + "\xf0\x9f\x94\x81"=>"", + "\xf0\x9f\x94\x82"=>"", + "\xf0\x9f\x94\x83"=>"", + "\xf0\x9f\x94\x84"=>"", + "\xf0\x9f\x94\x85"=>"", + "\xf0\x9f\x94\x86"=>"", + "\xf0\x9f\x94\x87"=>"", + "\xf0\x9f\x94\x88"=>"", + "\xf0\x9f\x94\x89"=>"", + "\xf0\x9f\x94\x8a"=>"\xee\x85\x81", + "\xf0\x9f\x94\x8b"=>"", + "\xf0\x9f\x94\x8c"=>"", + "\xf0\x9f\x94\x8d"=>"\xee\x84\x94", + "\xf0\x9f\x94\x8e"=>"\xee\x84\x94", + "\xf0\x9f\x94\x8f"=>"\xee\x85\x84", + "\xf0\x9f\x94\x90"=>"\xee\x85\x84", + "\xf0\x9f\x94\x91"=>"\xee\x80\xbf", + "\xf0\x9f\x94\x92"=>"\xee\x85\x84", + "\xf0\x9f\x94\x93"=>"\xee\x85\x85", + "\xf0\x9f\x94\x94"=>"\xee\x8c\xa5", + "\xf0\x9f\x94\x95"=>"", + "\xf0\x9f\x94\x96"=>"", + "\xf0\x9f\x94\x97"=>"", + "\xf0\x9f\x94\x98"=>"", + "\xf0\x9f\x94\x99"=>"\xee\x88\xb5", + "\xf0\x9f\x94\x9a"=>"", + "\xf0\x9f\x94\x9b"=>"", + "\xf0\x9f\x94\x9c"=>"", + "\xf0\x9f\x94\x9d"=>"\xee\x89\x8c", + "\xf0\x9f\x94\x9e"=>"\xee\x88\x87", + "\xf0\x9f\x94\x9f"=>"", + "\xf0\x9f\x94\xa0"=>"", + "\xf0\x9f\x94\xa1"=>"", + "\xf0\x9f\x94\xa2"=>"", + "\xf0\x9f\x94\xa3"=>"", + "\xf0\x9f\x94\xa4"=>"", + "\xf0\x9f\x94\xa5"=>"\xee\x84\x9d", + "\xf0\x9f\x94\xa6"=>"", + "\xf0\x9f\x94\xa7"=>"", + "\xf0\x9f\x94\xa8"=>"\xee\x84\x96", + "\xf0\x9f\x94\xa9"=>"", + "\xf0\x9f\x94\xaa"=>"", + "\xf0\x9f\x94\xab"=>"\xee\x84\x93", + "\xf0\x9f\x94\xac"=>"", + "\xf0\x9f\x94\xad"=>"", + "\xf0\x9f\x94\xae"=>"\xee\x88\xbe", + "\xf0\x9f\x94\xaf"=>"\xee\x88\xbe", + "\xf0\x9f\x94\xb0"=>"\xee\x88\x89", + "\xf0\x9f\x94\xb1"=>"\xee\x80\xb1", + "\xf0\x9f\x94\xb2"=>"\xee\x88\x9a", + "\xf0\x9f\x94\xb3"=>"\xee\x88\x9b", + "\xf0\x9f\x94\xb4"=>"\xee\x88\x99", + "\xf0\x9f\x94\xb5"=>"\xee\x88\x9a", + "\xf0\x9f\x94\xb6"=>"\xee\x88\x9b", + "\xf0\x9f\x94\xb7"=>"\xee\x88\x9b", + "\xf0\x9f\x94\xb8"=>"\xee\x88\x9b", + "\xf0\x9f\x94\xb9"=>"\xee\x88\x9b", + "\xf0\x9f\x94\xba"=>"", + "\xf0\x9f\x94\xbb"=>"", + "\xf0\x9f\x94\xbc"=>"", + "\xf0\x9f\x94\xbd"=>"", + "\xf0\x9f\x95\x89"=>"", + "\xf0\x9f\x95\x8a"=>"", + "\xf0\x9f\x95\x8b"=>"", + "\xf0\x9f\x95\x8c"=>"", + "\xf0\x9f\x95\x8d"=>"", + "\xf0\x9f\x95\x8e"=>"", + "\xf0\x9f\x95\x90"=>"\xee\x80\xa4", + "\xf0\x9f\x95\x91"=>"\xee\x80\xa5", + "\xf0\x9f\x95\x92"=>"\xee\x80\xa6", + "\xf0\x9f\x95\x93"=>"\xee\x80\xa7", + "\xf0\x9f\x95\x94"=>"\xee\x80\xa8", + "\xf0\x9f\x95\x95"=>"\xee\x80\xa9", + "\xf0\x9f\x95\x96"=>"\xee\x80\xaa", + "\xf0\x9f\x95\x97"=>"\xee\x80\xab", + "\xf0\x9f\x95\x98"=>"\xee\x80\xac", + "\xf0\x9f\x95\x99"=>"\xee\x80\xad", + "\xf0\x9f\x95\x9a"=>"\xee\x80\xae", + "\xf0\x9f\x95\x9b"=>"\xee\x80\xaf", + "\xf0\x9f\x95\x9c"=>"", + "\xf0\x9f\x95\x9d"=>"", + "\xf0\x9f\x95\x9e"=>"", + "\xf0\x9f\x95\x9f"=>"", + "\xf0\x9f\x95\xa0"=>"", + "\xf0\x9f\x95\xa1"=>"", + "\xf0\x9f\x95\xa2"=>"", + "\xf0\x9f\x95\xa3"=>"", + "\xf0\x9f\x95\xa4"=>"", + "\xf0\x9f\x95\xa5"=>"", + "\xf0\x9f\x95\xa6"=>"", + "\xf0\x9f\x95\xa7"=>"", + "\xf0\x9f\x95\xaf"=>"", + "\xf0\x9f\x95\xb0"=>"", + "\xf0\x9f\x95\xb3"=>"", + "\xf0\x9f\x95\xb4"=>"", + "\xf0\x9f\x95\xb5"=>"", + "\xf0\x9f\x95\xb6"=>"", + "\xf0\x9f\x95\xb7"=>"", + "\xf0\x9f\x95\xb8"=>"", + "\xf0\x9f\x95\xb9"=>"", + "\xf0\x9f\x96\x87"=>"", + "\xf0\x9f\x96\x8a"=>"", + "\xf0\x9f\x96\x8b"=>"", + "\xf0\x9f\x96\x8c"=>"", + "\xf0\x9f\x96\x8d"=>"", + "\xf0\x9f\x96\x90"=>"", + "\xf0\x9f\x96\x95"=>"", + "\xf0\x9f\x96\x96"=>"", + "\xf0\x9f\x96\xa5"=>"", + "\xf0\x9f\x96\xa8"=>"", + "\xf0\x9f\x96\xb1"=>"", + "\xf0\x9f\x96\xb2"=>"", + "\xf0\x9f\x96\xbc"=>"", + "\xf0\x9f\x97\x82"=>"", + "\xf0\x9f\x97\x83"=>"", + "\xf0\x9f\x97\x84"=>"", + "\xf0\x9f\x97\x91"=>"", + "\xf0\x9f\x97\x92"=>"", + "\xf0\x9f\x97\x93"=>"", + "\xf0\x9f\x97\x9c"=>"", + "\xf0\x9f\x97\x9d"=>"", + "\xf0\x9f\x97\x9e"=>"", + "\xf0\x9f\x97\xa1"=>"", + "\xf0\x9f\x97\xa3"=>"", + "\xf0\x9f\x97\xa8"=>"", + "\xf0\x9f\x97\xaf"=>"", + "\xf0\x9f\x97\xb3"=>"", + "\xf0\x9f\x97\xba"=>"", + "\xf0\x9f\x97\xbb"=>"\xee\x80\xbb", + "\xf0\x9f\x97\xbc"=>"\xee\x94\x89", + "\xf0\x9f\x97\xbd"=>"\xee\x94\x9d", + "\xf0\x9f\x97\xbe"=>"", + "\xf0\x9f\x97\xbf"=>"", + "\xf0\x9f\x98\x80"=>"", + "\xf0\x9f\x98\x81"=>"\xee\x90\x84", + "\xf0\x9f\x98\x82"=>"\xee\x90\x92", + "\xf0\x9f\x98\x83"=>"\xee\x81\x97", + "\xf0\x9f\x98\x84"=>"\xee\x90\x95", + "\xf0\x9f\x98\x85"=>"\xee\x90\x95\xee\x8c\xb1", + "\xf0\x9f\x98\x86"=>"\xee\x90\x8a", + "\xf0\x9f\x98\x87"=>"", + "\xf0\x9f\x98\x88"=>"", + "\xf0\x9f\x98\x89"=>"\xee\x90\x85", + "\xf0\x9f\x98\x8a"=>"\xee\x81\x96", + "\xf0\x9f\x98\x8b"=>"\xee\x81\x96", + "\xf0\x9f\x98\x8c"=>"\xee\x90\x8a", + "\xf0\x9f\x98\x8d"=>"\xee\x84\x86", + "\xf0\x9f\x98\x8e"=>"", + "\xf0\x9f\x98\x8f"=>"\xee\x90\x82", + "\xf0\x9f\x98\x90"=>"", + "\xf0\x9f\x98\x91"=>"", + "\xf0\x9f\x98\x92"=>"\xee\x90\x8e", + "\xf0\x9f\x98\x93"=>"\xee\x84\x88", + "\xf0\x9f\x98\x94"=>"\xee\x90\x83", + "\xf0\x9f\x98\x95"=>"", + "\xf0\x9f\x98\x96"=>"\xee\x90\x87", + "\xf0\x9f\x98\x97"=>"", + "\xf0\x9f\x98\x98"=>"\xee\x90\x98", + "\xf0\x9f\x98\x99"=>"", + "\xf0\x9f\x98\x9a"=>"\xee\x90\x97", + "\xf0\x9f\x98\x9b"=>"", + "\xf0\x9f\x98\x9c"=>"\xee\x84\x85", + "\xf0\x9f\x98\x9d"=>"\xee\x90\x89", + "\xf0\x9f\x98\x9e"=>"\xee\x81\x98", + "\xf0\x9f\x98\x9f"=>"", + "\xf0\x9f\x98\xa0"=>"\xee\x81\x99", + "\xf0\x9f\x98\xa1"=>"\xee\x90\x96", + "\xf0\x9f\x98\xa2"=>"\xee\x90\x93", + "\xf0\x9f\x98\xa3"=>"\xee\x90\x86", + "\xf0\x9f\x98\xa4"=>"\xee\x90\x84", + "\xf0\x9f\x98\xa5"=>"\xee\x90\x81", + "\xf0\x9f\x98\xa6"=>"", + "\xf0\x9f\x98\xa7"=>"", + "\xf0\x9f\x98\xa8"=>"\xee\x90\x8b", + "\xf0\x9f\x98\xa9"=>"\xee\x90\x83", + "\xf0\x9f\x98\xaa"=>"\xee\x90\x88", + "\xf0\x9f\x98\xab"=>"\xee\x90\x86", + "\xf0\x9f\x98\xac"=>"", + "\xf0\x9f\x98\xad"=>"\xee\x90\x91", + "\xf0\x9f\x98\xae"=>"", + "\xf0\x9f\x98\xaf"=>"", + "\xf0\x9f\x98\xb0"=>"\xee\x90\x8f", + "\xf0\x9f\x98\xb1"=>"\xee\x84\x87", + "\xf0\x9f\x98\xb2"=>"\xee\x90\x90", + "\xf0\x9f\x98\xb3"=>"\xee\x90\x8d", + "\xf0\x9f\x98\xb4"=>"", + "\xf0\x9f\x98\xb5"=>"\xee\x90\x86", + "\xf0\x9f\x98\xb6"=>"", + "\xf0\x9f\x98\xb7"=>"\xee\x90\x8c", + "\xf0\x9f\x98\xb8"=>"\xee\x90\x84", + "\xf0\x9f\x98\xb9"=>"\xee\x90\x92", + "\xf0\x9f\x98\xba"=>"\xee\x81\x97", + "\xf0\x9f\x98\xbb"=>"\xee\x84\x86", + "\xf0\x9f\x98\xbc"=>"\xee\x90\x84", + "\xf0\x9f\x98\xbd"=>"\xee\x90\x98", + "\xf0\x9f\x98\xbe"=>"\xee\x90\x96", + "\xf0\x9f\x98\xbf"=>"\xee\x90\x93", + "\xf0\x9f\x99\x80"=>"\xee\x90\x83", + "\xf0\x9f\x99\x81"=>"", + "\xf0\x9f\x99\x82"=>"", + "\xf0\x9f\x99\x83"=>"", + "\xf0\x9f\x99\x84"=>"", + "\xf0\x9f\x99\x85"=>"\xee\x90\xa3", + "\xf0\x9f\x99\x86"=>"\xee\x90\xa4", + "\xf0\x9f\x99\x87"=>"\xee\x90\xa6", + "\xf0\x9f\x99\x88"=>"", + "\xf0\x9f\x99\x89"=>"", + "\xf0\x9f\x99\x8a"=>"", + "\xf0\x9f\x99\x8b"=>"\xee\x80\x92", + "\xf0\x9f\x99\x8c"=>"\xee\x90\xa7", + "\xf0\x9f\x99\x8d"=>"\xee\x90\x83", + "\xf0\x9f\x99\x8e"=>"\xee\x90\x96", + "\xf0\x9f\x99\x8f"=>"\xee\x90\x9d", + "\xf0\x9f\x9a\x80"=>"\xee\x84\x8d", + "\xf0\x9f\x9a\x81"=>"", + "\xf0\x9f\x9a\x82"=>"", + "\xf0\x9f\x9a\x83"=>"\xee\x80\x9e", + "\xf0\x9f\x9a\x84"=>"\xee\x90\xb5", + "\xf0\x9f\x9a\x85"=>"\xee\x80\x9f", + "\xf0\x9f\x9a\x86"=>"", + "\xf0\x9f\x9a\x87"=>"\xee\x90\xb4", + "\xf0\x9f\x9a\x88"=>"", + "\xf0\x9f\x9a\x89"=>"\xee\x80\xb9", + "\xf0\x9f\x9a\x8a"=>"", + "\xf0\x9f\x9a\x8b"=>"", + "\xf0\x9f\x9a\x8c"=>"\xee\x85\x99", + "\xf0\x9f\x9a\x8d"=>"", + "\xf0\x9f\x9a\x8e"=>"", + "\xf0\x9f\x9a\x8f"=>"\xee\x85\x90", + "\xf0\x9f\x9a\x90"=>"", + "\xf0\x9f\x9a\x91"=>"\xee\x90\xb1", + "\xf0\x9f\x9a\x92"=>"\xee\x90\xb0", + "\xf0\x9f\x9a\x93"=>"\xee\x90\xb2", + "\xf0\x9f\x9a\x94"=>"", + "\xf0\x9f\x9a\x95"=>"\xee\x85\x9a", + "\xf0\x9f\x9a\x96"=>"", + "\xf0\x9f\x9a\x97"=>"\xee\x80\x9b", + "\xf0\x9f\x9a\x98"=>"", + "\xf0\x9f\x9a\x99"=>"\xee\x90\xae", + "\xf0\x9f\x9a\x9a"=>"\xee\x90\xaf", + "\xf0\x9f\x9a\x9b"=>"", + "\xf0\x9f\x9a\x9c"=>"", + "\xf0\x9f\x9a\x9d"=>"", + "\xf0\x9f\x9a\x9e"=>"", + "\xf0\x9f\x9a\x9f"=>"", + "\xf0\x9f\x9a\xa0"=>"", + "\xf0\x9f\x9a\xa1"=>"", + "\xf0\x9f\x9a\xa2"=>"\xee\x88\x82", + "\xf0\x9f\x9a\xa3"=>"", + "\xf0\x9f\x9a\xa4"=>"\xee\x84\xb5", + "\xf0\x9f\x9a\xa5"=>"\xee\x85\x8e", + "\xf0\x9f\x9a\xa6"=>"", + "\xf0\x9f\x9a\xa7"=>"\xee\x84\xb7", + "\xf0\x9f\x9a\xa8"=>"\xee\x90\xb2", + "\xf0\x9f\x9a\xa9"=>"", + "\xf0\x9f\x9a\xaa"=>"", + "\xf0\x9f\x9a\xab"=>"", + "\xf0\x9f\x9a\xac"=>"\xee\x8c\x8e", + "\xf0\x9f\x9a\xad"=>"\xee\x88\x88", + "\xf0\x9f\x9a\xae"=>"", + "\xf0\x9f\x9a\xaf"=>"", + "\xf0\x9f\x9a\xb0"=>"", + "\xf0\x9f\x9a\xb1"=>"", + "\xf0\x9f\x9a\xb2"=>"\xee\x84\xb6", + "\xf0\x9f\x9a\xb3"=>"", + "\xf0\x9f\x9a\xb4"=>"", + "\xf0\x9f\x9a\xb5"=>"", + "\xf0\x9f\x9a\xb6"=>"\xee\x88\x81", + "\xf0\x9f\x9a\xb7"=>"", + "\xf0\x9f\x9a\xb8"=>"", + "\xf0\x9f\x9a\xb9"=>"\xee\x84\xb8", + "\xf0\x9f\x9a\xba"=>"\xee\x84\xb9", + "\xf0\x9f\x9a\xbb"=>"\xee\x85\x91", + "\xf0\x9f\x9a\xbc"=>"\xee\x84\xba", + "\xf0\x9f\x9a\xbd"=>"\xee\x85\x80", + "\xf0\x9f\x9a\xbe"=>"\xee\x8c\x89", + "\xf0\x9f\x9a\xbf"=>"", + "\xf0\x9f\x9b\x80"=>"\xee\x84\xbf", + "\xf0\x9f\x9b\x81"=>"", + "\xf0\x9f\x9b\x82"=>"", + "\xf0\x9f\x9b\x83"=>"", + "\xf0\x9f\x9b\x84"=>"", + "\xf0\x9f\x9b\x85"=>"", + "\xf0\x9f\x9b\x8b"=>"", + "\xf0\x9f\x9b\x8c"=>"", + "\xf0\x9f\x9b\x8d"=>"", + "\xf0\x9f\x9b\x8e"=>"", + "\xf0\x9f\x9b\x8f"=>"", + "\xf0\x9f\x9b\x90"=>"", + "\xf0\x9f\x9b\xa0"=>"", + "\xf0\x9f\x9b\xa1"=>"", + "\xf0\x9f\x9b\xa2"=>"", + "\xf0\x9f\x9b\xa3"=>"", + "\xf0\x9f\x9b\xa4"=>"", + "\xf0\x9f\x9b\xa5"=>"", + "\xf0\x9f\x9b\xa9"=>"", + "\xf0\x9f\x9b\xab"=>"", + "\xf0\x9f\x9b\xac"=>"", + "\xf0\x9f\x9b\xb0"=>"", + "\xf0\x9f\x9b\xb3"=>"", + "\xf0\x9f\xa4\x90"=>"", + "\xf0\x9f\xa4\x91"=>"", + "\xf0\x9f\xa4\x92"=>"", + "\xf0\x9f\xa4\x93"=>"", + "\xf0\x9f\xa4\x94"=>"", + "\xf0\x9f\xa4\x95"=>"", + "\xf0\x9f\xa4\x96"=>"", + "\xf0\x9f\xa4\x97"=>"", + "\xf0\x9f\xa4\x98"=>"", + "\xf0\x9f\xa6\x80"=>"", + "\xf0\x9f\xa6\x81"=>"", + "\xf0\x9f\xa6\x82"=>"", + "\xf0\x9f\xa6\x83"=>"", + "\xf0\x9f\xa6\x84"=>"", + "\xf0\x9f\xa7\x80"=>"", + "#\xe2\x83\xa3"=>"\xee\x88\x90", + "*\xe2\x83\xa3"=>"", + "0\xe2\x83\xa3"=>"\xee\x88\xa5", + "1\xe2\x83\xa3"=>"\xee\x88\x9c", + "2\xe2\x83\xa3"=>"\xee\x88\x9d", + "3\xe2\x83\xa3"=>"\xee\x88\x9e", + "4\xe2\x83\xa3"=>"\xee\x88\x9f", + "5\xe2\x83\xa3"=>"\xee\x88\xa0", + "6\xe2\x83\xa3"=>"\xee\x88\xa1", + "7\xe2\x83\xa3"=>"\xee\x88\xa2", + "8\xe2\x83\xa3"=>"\xee\x88\xa3", + "9\xe2\x83\xa3"=>"\xee\x88\xa4", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3"=>"\xee\x94\x93", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa"=>"\xee\x94\x8e", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8"=>"\xee\x94\x91", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb7"=>"\xee\x94\x8d", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa7"=>"\xee\x94\x90", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb9"=>"\xee\x94\x8f", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5"=>"\xee\x94\x8b", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7"=>"\xee\x94\x94", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb4\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb6\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xba"=>"\xee\x94\x92", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb8"=>"\xee\x94\x8c", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xbd\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + ), + 'unified_to_google' => array( + "\xc2\xa9"=>"\xf3\xbe\xac\xa9", + "\xc2\xae"=>"\xf3\xbe\xac\xad", + "\xe2\x80\xbc"=>"\xf3\xbe\xac\x86", + "\xe2\x81\x89"=>"\xf3\xbe\xac\x85", + "\xe2\x84\xa2"=>"\xf3\xbe\xac\xaa", + "\xe2\x84\xb9"=>"\xf3\xbe\xad\x87", + "\xe2\x86\x94"=>"\xf3\xbe\xab\xb6", + "\xe2\x86\x95"=>"\xf3\xbe\xab\xb7", + "\xe2\x86\x96"=>"\xf3\xbe\xab\xb2", + "\xe2\x86\x97"=>"\xf3\xbe\xab\xb0", + "\xe2\x86\x98"=>"\xf3\xbe\xab\xb1", + "\xe2\x86\x99"=>"\xf3\xbe\xab\xb3", + "\xe2\x86\xa9"=>"\xf3\xbe\xae\x83", + "\xe2\x86\xaa"=>"\xf3\xbe\xae\x88", + "\xe2\x8c\x9a"=>"\xf3\xbe\x80\x9d", + "\xe2\x8c\x9b"=>"\xf3\xbe\x80\x9c", + "\xe2\x8c\xa8"=>"", + "\xe2\x8f\xa9"=>"\xf3\xbe\xab\xbe", + "\xe2\x8f\xaa"=>"\xf3\xbe\xab\xbf", + "\xe2\x8f\xab"=>"\xf3\xbe\xac\x83", + "\xe2\x8f\xac"=>"\xf3\xbe\xac\x82", + "\xe2\x8f\xad"=>"", + "\xe2\x8f\xae"=>"", + "\xe2\x8f\xaf"=>"", + "\xe2\x8f\xb0"=>"\xf3\xbe\x80\xaa", + "\xe2\x8f\xb1"=>"", + "\xe2\x8f\xb2"=>"", + "\xe2\x8f\xb3"=>"\xf3\xbe\x80\x9b", + "\xe2\x8f\xb8"=>"", + "\xe2\x8f\xb9"=>"", + "\xe2\x8f\xba"=>"", + "\xe2\x93\x82"=>"\xf3\xbe\x9f\xa1", + "\xe2\x96\xaa"=>"\xf3\xbe\xad\xae", + "\xe2\x96\xab"=>"\xf3\xbe\xad\xad", + "\xe2\x96\xb6"=>"\xf3\xbe\xab\xbc", + "\xe2\x97\x80"=>"\xf3\xbe\xab\xbd", + "\xe2\x97\xbb"=>"\xf3\xbe\xad\xb1", + "\xe2\x97\xbc"=>"\xf3\xbe\xad\xb2", + "\xe2\x97\xbd"=>"\xf3\xbe\xad\xaf", + "\xe2\x97\xbe"=>"\xf3\xbe\xad\xb0", + "\xe2\x98\x80"=>"\xf3\xbe\x80\x80", + "\xe2\x98\x81"=>"\xf3\xbe\x80\x81", + "\xe2\x98\x82"=>"", + "\xe2\x98\x83"=>"", + "\xe2\x98\x84"=>"", + "\xe2\x98\x8e"=>"\xf3\xbe\x94\xa3", + "\xe2\x98\x91"=>"\xf3\xbe\xae\x8b", + "\xe2\x98\x94"=>"\xf3\xbe\x80\x82", + "\xe2\x98\x95"=>"\xf3\xbe\xa6\x81", + "\xe2\x98\x98"=>"", + "\xe2\x98\x9d"=>"\xf3\xbe\xae\x98", + "\xe2\x98\xa0"=>"", + "\xe2\x98\xa2"=>"", + "\xe2\x98\xa3"=>"", + "\xe2\x98\xa6"=>"", + "\xe2\x98\xaa"=>"", + "\xe2\x98\xae"=>"", + "\xe2\x98\xaf"=>"", + "\xe2\x98\xb8"=>"", + "\xe2\x98\xb9"=>"", + "\xe2\x98\xba"=>"\xf3\xbe\x8c\xb6", + "\xe2\x99\x88"=>"\xf3\xbe\x80\xab", + "\xe2\x99\x89"=>"\xf3\xbe\x80\xac", + "\xe2\x99\x8a"=>"\xf3\xbe\x80\xad", + "\xe2\x99\x8b"=>"\xf3\xbe\x80\xae", + "\xe2\x99\x8c"=>"\xf3\xbe\x80\xaf", + "\xe2\x99\x8d"=>"\xf3\xbe\x80\xb0", + "\xe2\x99\x8e"=>"\xf3\xbe\x80\xb1", + "\xe2\x99\x8f"=>"\xf3\xbe\x80\xb2", + "\xe2\x99\x90"=>"\xf3\xbe\x80\xb3", + "\xe2\x99\x91"=>"\xf3\xbe\x80\xb4", + "\xe2\x99\x92"=>"\xf3\xbe\x80\xb5", + "\xe2\x99\x93"=>"\xf3\xbe\x80\xb6", + "\xe2\x99\xa0"=>"\xf3\xbe\xac\x9b", + "\xe2\x99\xa3"=>"\xf3\xbe\xac\x9d", + "\xe2\x99\xa5"=>"\xf3\xbe\xac\x9a", + "\xe2\x99\xa6"=>"\xf3\xbe\xac\x9c", + "\xe2\x99\xa8"=>"\xf3\xbe\x9f\xba", + "\xe2\x99\xbb"=>"\xf3\xbe\xac\xac", + "\xe2\x99\xbf"=>"\xf3\xbe\xac\xa0", + "\xe2\x9a\x92"=>"", + "\xe2\x9a\x93"=>"\xf3\xbe\x93\x81", + "\xe2\x9a\x94"=>"", + "\xe2\x9a\x96"=>"", + "\xe2\x9a\x97"=>"", + "\xe2\x9a\x99"=>"", + "\xe2\x9a\x9b"=>"", + "\xe2\x9a\x9c"=>"", + "\xe2\x9a\xa0"=>"\xf3\xbe\xac\xa3", + "\xe2\x9a\xa1"=>"\xf3\xbe\x80\x84", + "\xe2\x9a\xaa"=>"\xf3\xbe\xad\xa5", + "\xe2\x9a\xab"=>"\xf3\xbe\xad\xa6", + "\xe2\x9a\xb0"=>"", + "\xe2\x9a\xb1"=>"", + "\xe2\x9a\xbd"=>"\xf3\xbe\x9f\x94", + "\xe2\x9a\xbe"=>"\xf3\xbe\x9f\x91", + "\xe2\x9b\x84"=>"\xf3\xbe\x80\x83", + "\xe2\x9b\x85"=>"\xf3\xbe\x80\x8f", + "\xe2\x9b\x88"=>"", + "\xe2\x9b\x8e"=>"\xf3\xbe\x80\xb7", + "\xe2\x9b\x8f"=>"", + "\xe2\x9b\x91"=>"", + "\xe2\x9b\x93"=>"", + "\xe2\x9b\x94"=>"\xf3\xbe\xac\xa6", + "\xe2\x9b\xa9"=>"", + "\xe2\x9b\xaa"=>"\xf3\xbe\x92\xbb", + "\xe2\x9b\xb0"=>"", + "\xe2\x9b\xb1"=>"", + "\xe2\x9b\xb2"=>"\xf3\xbe\x92\xbc", + "\xe2\x9b\xb3"=>"\xf3\xbe\x9f\x92", + "\xe2\x9b\xb4"=>"", + "\xe2\x9b\xb5"=>"\xf3\xbe\x9f\xaa", + "\xe2\x9b\xb7"=>"", + "\xe2\x9b\xb8"=>"", + "\xe2\x9b\xb9"=>"", + "\xe2\x9b\xba"=>"\xf3\xbe\x9f\xbb", + "\xe2\x9b\xbd"=>"\xf3\xbe\x9f\xb5", + "\xe2\x9c\x82"=>"\xf3\xbe\x94\xbe", + "\xe2\x9c\x85"=>"\xf3\xbe\xad\x8a", + "\xe2\x9c\x88"=>"\xf3\xbe\x9f\xa9", + "\xe2\x9c\x89"=>"\xf3\xbe\x94\xa9", + "\xe2\x9c\x8a"=>"\xf3\xbe\xae\x93", + "\xe2\x9c\x8b"=>"\xf3\xbe\xae\x95", + "\xe2\x9c\x8c"=>"\xf3\xbe\xae\x94", + "\xe2\x9c\x8d"=>"", + "\xe2\x9c\x8f"=>"\xf3\xbe\x94\xb9", + "\xe2\x9c\x92"=>"\xf3\xbe\x94\xb6", + "\xe2\x9c\x94"=>"\xf3\xbe\xad\x89", + "\xe2\x9c\x96"=>"\xf3\xbe\xad\x93", + "\xe2\x9c\x9d"=>"", + "\xe2\x9c\xa1"=>"", + "\xe2\x9c\xa8"=>"\xf3\xbe\xad\xa0", + "\xe2\x9c\xb3"=>"\xf3\xbe\xad\xa2", + "\xe2\x9c\xb4"=>"\xf3\xbe\xad\xa1", + "\xe2\x9d\x84"=>"\xf3\xbe\x80\x8e", + "\xe2\x9d\x87"=>"\xf3\xbe\xad\xb7", + "\xe2\x9d\x8c"=>"\xf3\xbe\xad\x85", + "\xe2\x9d\x8e"=>"\xf3\xbe\xad\x86", + "\xe2\x9d\x93"=>"\xf3\xbe\xac\x89", + "\xe2\x9d\x94"=>"\xf3\xbe\xac\x8a", + "\xe2\x9d\x95"=>"\xf3\xbe\xac\x8b", + "\xe2\x9d\x97"=>"\xf3\xbe\xac\x84", + "\xe2\x9d\xa3"=>"", + "\xe2\x9d\xa4"=>"\xf3\xbe\xac\x8c", + "\xe2\x9e\x95"=>"\xf3\xbe\xad\x91", + "\xe2\x9e\x96"=>"\xf3\xbe\xad\x92", + "\xe2\x9e\x97"=>"\xf3\xbe\xad\x94", + "\xe2\x9e\xa1"=>"\xf3\xbe\xab\xba", + "\xe2\x9e\xb0"=>"\xf3\xbe\xac\x88", + "\xe2\x9e\xbf"=>"\xf3\xbe\xa0\xab", + "\xe2\xa4\xb4"=>"\xf3\xbe\xab\xb4", + "\xe2\xa4\xb5"=>"\xf3\xbe\xab\xb5", + "\xe2\xac\x85"=>"\xf3\xbe\xab\xbb", + "\xe2\xac\x86"=>"\xf3\xbe\xab\xb8", + "\xe2\xac\x87"=>"\xf3\xbe\xab\xb9", + "\xe2\xac\x9b"=>"\xf3\xbe\xad\xac", + "\xe2\xac\x9c"=>"\xf3\xbe\xad\xab", + "\xe2\xad\x90"=>"\xf3\xbe\xad\xa8", + "\xe2\xad\x95"=>"\xf3\xbe\xad\x84", + "\xe3\x80\xb0"=>"\xf3\xbe\xac\x87", + "\xe3\x80\xbd"=>"\xf3\xbe\xa0\x9b", + "\xe3\x8a\x97"=>"\xf3\xbe\xad\x83", + "\xe3\x8a\x99"=>"\xf3\xbe\xac\xab", + "\xf0\x9f\x80\x84"=>"\xf3\xbe\xa0\x8b", + "\xf0\x9f\x83\x8f"=>"\xf3\xbe\xa0\x92", + "\xf0\x9f\x85\xb0"=>"\xf3\xbe\x94\x8b", + "\xf0\x9f\x85\xb1"=>"\xf3\xbe\x94\x8c", + "\xf0\x9f\x85\xbe"=>"\xf3\xbe\x94\x8e", + "\xf0\x9f\x85\xbf"=>"\xf3\xbe\x9f\xb6", + "\xf0\x9f\x86\x8e"=>"\xf3\xbe\x94\x8d", + "\xf0\x9f\x86\x91"=>"\xf3\xbe\xae\x84", + "\xf0\x9f\x86\x92"=>"\xf3\xbe\xac\xb8", + "\xf0\x9f\x86\x93"=>"\xf3\xbe\xac\xa1", + "\xf0\x9f\x86\x94"=>"\xf3\xbe\xae\x81", + "\xf0\x9f\x86\x95"=>"\xf3\xbe\xac\xb6", + "\xf0\x9f\x86\x96"=>"\xf3\xbe\xac\xa8", + "\xf0\x9f\x86\x97"=>"\xf3\xbe\xac\xa7", + "\xf0\x9f\x86\x98"=>"\xf3\xbe\xad\x8f", + "\xf0\x9f\x86\x99"=>"\xf3\xbe\xac\xb7", + "\xf0\x9f\x86\x9a"=>"\xf3\xbe\xac\xb2", + "\xf0\x9f\x88\x81"=>"\xf3\xbe\xac\xa4", + "\xf0\x9f\x88\x82"=>"\xf3\xbe\xac\xbf", + "\xf0\x9f\x88\x9a"=>"\xf3\xbe\xac\xba", + "\xf0\x9f\x88\xaf"=>"\xf3\xbe\xad\x80", + "\xf0\x9f\x88\xb2"=>"\xf3\xbe\xac\xae", + "\xf0\x9f\x88\xb3"=>"\xf3\xbe\xac\xaf", + "\xf0\x9f\x88\xb4"=>"\xf3\xbe\xac\xb0", + "\xf0\x9f\x88\xb5"=>"\xf3\xbe\xac\xb1", + "\xf0\x9f\x88\xb6"=>"\xf3\xbe\xac\xb9", + "\xf0\x9f\x88\xb7"=>"\xf3\xbe\xac\xbb", + "\xf0\x9f\x88\xb8"=>"\xf3\xbe\xac\xbc", + "\xf0\x9f\x88\xb9"=>"\xf3\xbe\xac\xbe", + "\xf0\x9f\x88\xba"=>"\xf3\xbe\xad\x81", + "\xf0\x9f\x89\x90"=>"\xf3\xbe\xac\xbd", + "\xf0\x9f\x89\x91"=>"\xf3\xbe\xad\x90", + "\xf0\x9f\x8c\x80"=>"\xf3\xbe\x80\x85", + "\xf0\x9f\x8c\x81"=>"\xf3\xbe\x80\x86", + "\xf0\x9f\x8c\x82"=>"\xf3\xbe\x80\x87", + "\xf0\x9f\x8c\x83"=>"\xf3\xbe\x80\x88", + "\xf0\x9f\x8c\x84"=>"\xf3\xbe\x80\x89", + "\xf0\x9f\x8c\x85"=>"\xf3\xbe\x80\x8a", + "\xf0\x9f\x8c\x86"=>"\xf3\xbe\x80\x8b", + "\xf0\x9f\x8c\x87"=>"\xf3\xbe\x80\x8c", + "\xf0\x9f\x8c\x88"=>"\xf3\xbe\x80\x8d", + "\xf0\x9f\x8c\x89"=>"\xf3\xbe\x80\x90", + "\xf0\x9f\x8c\x8a"=>"\xf3\xbe\x80\xb8", + "\xf0\x9f\x8c\x8b"=>"\xf3\xbe\x80\xba", + "\xf0\x9f\x8c\x8c"=>"\xf3\xbe\x80\xbb", + "\xf0\x9f\x8c\x8d"=>"", + "\xf0\x9f\x8c\x8e"=>"", + "\xf0\x9f\x8c\x8f"=>"\xf3\xbe\x80\xb9", + "\xf0\x9f\x8c\x90"=>"", + "\xf0\x9f\x8c\x91"=>"\xf3\xbe\x80\x91", + "\xf0\x9f\x8c\x92"=>"", + "\xf0\x9f\x8c\x93"=>"\xf3\xbe\x80\x93", + "\xf0\x9f\x8c\x94"=>"\xf3\xbe\x80\x92", + "\xf0\x9f\x8c\x95"=>"\xf3\xbe\x80\x95", + "\xf0\x9f\x8c\x96"=>"", + "\xf0\x9f\x8c\x97"=>"", + "\xf0\x9f\x8c\x98"=>"", + "\xf0\x9f\x8c\x99"=>"\xf3\xbe\x80\x94", + "\xf0\x9f\x8c\x9a"=>"", + "\xf0\x9f\x8c\x9b"=>"\xf3\xbe\x80\x96", + "\xf0\x9f\x8c\x9c"=>"", + "\xf0\x9f\x8c\x9d"=>"", + "\xf0\x9f\x8c\x9e"=>"", + "\xf0\x9f\x8c\x9f"=>"\xf3\xbe\xad\xa9", + "\xf0\x9f\x8c\xa0"=>"\xf3\xbe\xad\xaa", + "\xf0\x9f\x8c\xa1"=>"", + "\xf0\x9f\x8c\xa4"=>"", + "\xf0\x9f\x8c\xa5"=>"", + "\xf0\x9f\x8c\xa6"=>"", + "\xf0\x9f\x8c\xa7"=>"", + "\xf0\x9f\x8c\xa8"=>"", + "\xf0\x9f\x8c\xa9"=>"", + "\xf0\x9f\x8c\xaa"=>"", + "\xf0\x9f\x8c\xab"=>"", + "\xf0\x9f\x8c\xac"=>"", + "\xf0\x9f\x8c\xad"=>"", + "\xf0\x9f\x8c\xae"=>"", + "\xf0\x9f\x8c\xaf"=>"", + "\xf0\x9f\x8c\xb0"=>"\xf3\xbe\x81\x8c", + "\xf0\x9f\x8c\xb1"=>"\xf3\xbe\x80\xbe", + "\xf0\x9f\x8c\xb2"=>"", + "\xf0\x9f\x8c\xb3"=>"", + "\xf0\x9f\x8c\xb4"=>"\xf3\xbe\x81\x87", + "\xf0\x9f\x8c\xb5"=>"\xf3\xbe\x81\x88", + "\xf0\x9f\x8c\xb6"=>"", + "\xf0\x9f\x8c\xb7"=>"\xf3\xbe\x80\xbd", + "\xf0\x9f\x8c\xb8"=>"\xf3\xbe\x81\x80", + "\xf0\x9f\x8c\xb9"=>"\xf3\xbe\x81\x81", + "\xf0\x9f\x8c\xba"=>"\xf3\xbe\x81\x85", + "\xf0\x9f\x8c\xbb"=>"\xf3\xbe\x81\x86", + "\xf0\x9f\x8c\xbc"=>"\xf3\xbe\x81\x8d", + "\xf0\x9f\x8c\xbd"=>"\xf3\xbe\x81\x8a", + "\xf0\x9f\x8c\xbe"=>"\xf3\xbe\x81\x89", + "\xf0\x9f\x8c\xbf"=>"\xf3\xbe\x81\x8e", + "\xf0\x9f\x8d\x80"=>"\xf3\xbe\x80\xbc", + "\xf0\x9f\x8d\x81"=>"\xf3\xbe\x80\xbf", + "\xf0\x9f\x8d\x82"=>"\xf3\xbe\x81\x82", + "\xf0\x9f\x8d\x83"=>"\xf3\xbe\x81\x83", + "\xf0\x9f\x8d\x84"=>"\xf3\xbe\x81\x8b", + "\xf0\x9f\x8d\x85"=>"\xf3\xbe\x81\x95", + "\xf0\x9f\x8d\x86"=>"\xf3\xbe\x81\x96", + "\xf0\x9f\x8d\x87"=>"\xf3\xbe\x81\x99", + "\xf0\x9f\x8d\x88"=>"\xf3\xbe\x81\x97", + "\xf0\x9f\x8d\x89"=>"\xf3\xbe\x81\x94", + "\xf0\x9f\x8d\x8a"=>"\xf3\xbe\x81\x92", + "\xf0\x9f\x8d\x8b"=>"", + "\xf0\x9f\x8d\x8c"=>"\xf3\xbe\x81\x90", + "\xf0\x9f\x8d\x8d"=>"\xf3\xbe\x81\x98", + "\xf0\x9f\x8d\x8e"=>"\xf3\xbe\x81\x91", + "\xf0\x9f\x8d\x8f"=>"\xf3\xbe\x81\x9b", + "\xf0\x9f\x8d\x90"=>"", + "\xf0\x9f\x8d\x91"=>"\xf3\xbe\x81\x9a", + "\xf0\x9f\x8d\x92"=>"\xf3\xbe\x81\x8f", + "\xf0\x9f\x8d\x93"=>"\xf3\xbe\x81\x93", + "\xf0\x9f\x8d\x94"=>"\xf3\xbe\xa5\xa0", + "\xf0\x9f\x8d\x95"=>"\xf3\xbe\xa5\xb5", + "\xf0\x9f\x8d\x96"=>"\xf3\xbe\xa5\xb2", + "\xf0\x9f\x8d\x97"=>"\xf3\xbe\xa5\xb6", + "\xf0\x9f\x8d\x98"=>"\xf3\xbe\xa5\xa9", + "\xf0\x9f\x8d\x99"=>"\xf3\xbe\xa5\xa1", + "\xf0\x9f\x8d\x9a"=>"\xf3\xbe\xa5\xaa", + "\xf0\x9f\x8d\x9b"=>"\xf3\xbe\xa5\xac", + "\xf0\x9f\x8d\x9c"=>"\xf3\xbe\xa5\xa3", + "\xf0\x9f\x8d\x9d"=>"\xf3\xbe\xa5\xab", + "\xf0\x9f\x8d\x9e"=>"\xf3\xbe\xa5\xa4", + "\xf0\x9f\x8d\x9f"=>"\xf3\xbe\xa5\xa7", + "\xf0\x9f\x8d\xa0"=>"\xf3\xbe\xa5\xb4", + "\xf0\x9f\x8d\xa1"=>"\xf3\xbe\xa5\xa8", + "\xf0\x9f\x8d\xa2"=>"\xf3\xbe\xa5\xad", + "\xf0\x9f\x8d\xa3"=>"\xf3\xbe\xa5\xae", + "\xf0\x9f\x8d\xa4"=>"\xf3\xbe\xa5\xbf", + "\xf0\x9f\x8d\xa5"=>"\xf3\xbe\xa5\xb3", + "\xf0\x9f\x8d\xa6"=>"\xf3\xbe\xa5\xa6", + "\xf0\x9f\x8d\xa7"=>"\xf3\xbe\xa5\xb1", + "\xf0\x9f\x8d\xa8"=>"\xf3\xbe\xa5\xb7", + "\xf0\x9f\x8d\xa9"=>"\xf3\xbe\xa5\xb8", + "\xf0\x9f\x8d\xaa"=>"\xf3\xbe\xa5\xb9", + "\xf0\x9f\x8d\xab"=>"\xf3\xbe\xa5\xba", + "\xf0\x9f\x8d\xac"=>"\xf3\xbe\xa5\xbb", + "\xf0\x9f\x8d\xad"=>"\xf3\xbe\xa5\xbc", + "\xf0\x9f\x8d\xae"=>"\xf3\xbe\xa5\xbd", + "\xf0\x9f\x8d\xaf"=>"\xf3\xbe\xa5\xbe", + "\xf0\x9f\x8d\xb0"=>"\xf3\xbe\xa5\xa2", + "\xf0\x9f\x8d\xb1"=>"\xf3\xbe\xa5\xaf", + "\xf0\x9f\x8d\xb2"=>"\xf3\xbe\xa5\xb0", + "\xf0\x9f\x8d\xb3"=>"\xf3\xbe\xa5\xa5", + "\xf0\x9f\x8d\xb4"=>"\xf3\xbe\xa6\x80", + "\xf0\x9f\x8d\xb5"=>"\xf3\xbe\xa6\x84", + "\xf0\x9f\x8d\xb6"=>"\xf3\xbe\xa6\x85", + "\xf0\x9f\x8d\xb7"=>"\xf3\xbe\xa6\x86", + "\xf0\x9f\x8d\xb8"=>"\xf3\xbe\xa6\x82", + "\xf0\x9f\x8d\xb9"=>"\xf3\xbe\xa6\x88", + "\xf0\x9f\x8d\xba"=>"\xf3\xbe\xa6\x83", + "\xf0\x9f\x8d\xbb"=>"\xf3\xbe\xa6\x87", + "\xf0\x9f\x8d\xbc"=>"", + "\xf0\x9f\x8d\xbd"=>"", + "\xf0\x9f\x8d\xbe"=>"", + "\xf0\x9f\x8d\xbf"=>"", + "\xf0\x9f\x8e\x80"=>"\xf3\xbe\x94\x8f", + "\xf0\x9f\x8e\x81"=>"\xf3\xbe\x94\x90", + "\xf0\x9f\x8e\x82"=>"\xf3\xbe\x94\x91", + "\xf0\x9f\x8e\x83"=>"\xf3\xbe\x94\x9f", + "\xf0\x9f\x8e\x84"=>"\xf3\xbe\x94\x92", + "\xf0\x9f\x8e\x85"=>"\xf3\xbe\x94\x93", + "\xf0\x9f\x8e\x86"=>"\xf3\xbe\x94\x95", + "\xf0\x9f\x8e\x87"=>"\xf3\xbe\x94\x9d", + "\xf0\x9f\x8e\x88"=>"\xf3\xbe\x94\x96", + "\xf0\x9f\x8e\x89"=>"\xf3\xbe\x94\x97", + "\xf0\x9f\x8e\x8a"=>"\xf3\xbe\x94\xa0", + "\xf0\x9f\x8e\x8b"=>"\xf3\xbe\x94\xa1", + "\xf0\x9f\x8e\x8c"=>"\xf3\xbe\x94\x94", + "\xf0\x9f\x8e\x8d"=>"\xf3\xbe\x94\x98", + "\xf0\x9f\x8e\x8e"=>"\xf3\xbe\x94\x99", + "\xf0\x9f\x8e\x8f"=>"\xf3\xbe\x94\x9c", + "\xf0\x9f\x8e\x90"=>"\xf3\xbe\x94\x9e", + "\xf0\x9f\x8e\x91"=>"\xf3\xbe\x80\x97", + "\xf0\x9f\x8e\x92"=>"\xf3\xbe\x94\x9b", + "\xf0\x9f\x8e\x93"=>"\xf3\xbe\x94\x9a", + "\xf0\x9f\x8e\x96"=>"", + "\xf0\x9f\x8e\x97"=>"", + "\xf0\x9f\x8e\x99"=>"", + "\xf0\x9f\x8e\x9a"=>"", + "\xf0\x9f\x8e\x9b"=>"", + "\xf0\x9f\x8e\x9e"=>"", + "\xf0\x9f\x8e\x9f"=>"", + "\xf0\x9f\x8e\xa0"=>"\xf3\xbe\x9f\xbc", + "\xf0\x9f\x8e\xa1"=>"\xf3\xbe\x9f\xbd", + "\xf0\x9f\x8e\xa2"=>"\xf3\xbe\x9f\xbe", + "\xf0\x9f\x8e\xa3"=>"\xf3\xbe\x9f\xbf", + "\xf0\x9f\x8e\xa4"=>"\xf3\xbe\xa0\x80", + "\xf0\x9f\x8e\xa5"=>"\xf3\xbe\xa0\x81", + "\xf0\x9f\x8e\xa6"=>"\xf3\xbe\xa0\x82", + "\xf0\x9f\x8e\xa7"=>"\xf3\xbe\xa0\x83", + "\xf0\x9f\x8e\xa8"=>"\xf3\xbe\xa0\x84", + "\xf0\x9f\x8e\xa9"=>"\xf3\xbe\xa0\x85", + "\xf0\x9f\x8e\xaa"=>"\xf3\xbe\xa0\x86", + "\xf0\x9f\x8e\xab"=>"\xf3\xbe\xa0\x87", + "\xf0\x9f\x8e\xac"=>"\xf3\xbe\xa0\x88", + "\xf0\x9f\x8e\xad"=>"\xf3\xbe\xa0\x89", + "\xf0\x9f\x8e\xae"=>"\xf3\xbe\xa0\x8a", + "\xf0\x9f\x8e\xaf"=>"\xf3\xbe\xa0\x8c", + "\xf0\x9f\x8e\xb0"=>"\xf3\xbe\xa0\x8d", + "\xf0\x9f\x8e\xb1"=>"\xf3\xbe\xa0\x8e", + "\xf0\x9f\x8e\xb2"=>"\xf3\xbe\xa0\x8f", + "\xf0\x9f\x8e\xb3"=>"\xf3\xbe\xa0\x90", + "\xf0\x9f\x8e\xb4"=>"\xf3\xbe\xa0\x91", + "\xf0\x9f\x8e\xb5"=>"\xf3\xbe\xa0\x93", + "\xf0\x9f\x8e\xb6"=>"\xf3\xbe\xa0\x94", + "\xf0\x9f\x8e\xb7"=>"\xf3\xbe\xa0\x95", + "\xf0\x9f\x8e\xb8"=>"\xf3\xbe\xa0\x96", + "\xf0\x9f\x8e\xb9"=>"\xf3\xbe\xa0\x97", + "\xf0\x9f\x8e\xba"=>"\xf3\xbe\xa0\x98", + "\xf0\x9f\x8e\xbb"=>"\xf3\xbe\xa0\x99", + "\xf0\x9f\x8e\xbc"=>"\xf3\xbe\xa0\x9a", + "\xf0\x9f\x8e\xbd"=>"\xf3\xbe\x9f\x90", + "\xf0\x9f\x8e\xbe"=>"\xf3\xbe\x9f\x93", + "\xf0\x9f\x8e\xbf"=>"\xf3\xbe\x9f\x95", + "\xf0\x9f\x8f\x80"=>"\xf3\xbe\x9f\x96", + "\xf0\x9f\x8f\x81"=>"\xf3\xbe\x9f\x97", + "\xf0\x9f\x8f\x82"=>"\xf3\xbe\x9f\x98", + "\xf0\x9f\x8f\x83"=>"\xf3\xbe\x9f\x99", + "\xf0\x9f\x8f\x84"=>"\xf3\xbe\x9f\x9a", + "\xf0\x9f\x8f\x85"=>"", + "\xf0\x9f\x8f\x86"=>"\xf3\xbe\x9f\x9b", + "\xf0\x9f\x8f\x87"=>"", + "\xf0\x9f\x8f\x88"=>"\xf3\xbe\x9f\x9d", + "\xf0\x9f\x8f\x89"=>"", + "\xf0\x9f\x8f\x8a"=>"\xf3\xbe\x9f\x9e", + "\xf0\x9f\x8f\x8b"=>"", + "\xf0\x9f\x8f\x8c"=>"", + "\xf0\x9f\x8f\x8d"=>"", + "\xf0\x9f\x8f\x8e"=>"", + "\xf0\x9f\x8f\x8f"=>"", + "\xf0\x9f\x8f\x90"=>"", + "\xf0\x9f\x8f\x91"=>"", + "\xf0\x9f\x8f\x92"=>"", + "\xf0\x9f\x8f\x93"=>"", + "\xf0\x9f\x8f\x94"=>"", + "\xf0\x9f\x8f\x95"=>"", + "\xf0\x9f\x8f\x96"=>"", + "\xf0\x9f\x8f\x97"=>"", + "\xf0\x9f\x8f\x98"=>"", + "\xf0\x9f\x8f\x99"=>"", + "\xf0\x9f\x8f\x9a"=>"", + "\xf0\x9f\x8f\x9b"=>"", + "\xf0\x9f\x8f\x9c"=>"", + "\xf0\x9f\x8f\x9d"=>"", + "\xf0\x9f\x8f\x9e"=>"", + "\xf0\x9f\x8f\x9f"=>"", + "\xf0\x9f\x8f\xa0"=>"\xf3\xbe\x92\xb0", + "\xf0\x9f\x8f\xa1"=>"\xf3\xbe\x92\xb1", + "\xf0\x9f\x8f\xa2"=>"\xf3\xbe\x92\xb2", + "\xf0\x9f\x8f\xa3"=>"\xf3\xbe\x92\xb3", + "\xf0\x9f\x8f\xa4"=>"", + "\xf0\x9f\x8f\xa5"=>"\xf3\xbe\x92\xb4", + "\xf0\x9f\x8f\xa6"=>"\xf3\xbe\x92\xb5", + "\xf0\x9f\x8f\xa7"=>"\xf3\xbe\x92\xb6", + "\xf0\x9f\x8f\xa8"=>"\xf3\xbe\x92\xb7", + "\xf0\x9f\x8f\xa9"=>"\xf3\xbe\x92\xb8", + "\xf0\x9f\x8f\xaa"=>"\xf3\xbe\x92\xb9", + "\xf0\x9f\x8f\xab"=>"\xf3\xbe\x92\xba", + "\xf0\x9f\x8f\xac"=>"\xf3\xbe\x92\xbd", + "\xf0\x9f\x8f\xad"=>"\xf3\xbe\x93\x80", + "\xf0\x9f\x8f\xae"=>"\xf3\xbe\x93\x82", + "\xf0\x9f\x8f\xaf"=>"\xf3\xbe\x92\xbe", + "\xf0\x9f\x8f\xb0"=>"\xf3\xbe\x92\xbf", + "\xf0\x9f\x8f\xb3"=>"", + "\xf0\x9f\x8f\xb4"=>"", + "\xf0\x9f\x8f\xb5"=>"", + "\xf0\x9f\x8f\xb7"=>"", + "\xf0\x9f\x8f\xb8"=>"", + "\xf0\x9f\x8f\xb9"=>"", + "\xf0\x9f\x8f\xba"=>"", + "\xf0\x9f\x8f\xbb"=>"", + "\xf0\x9f\x8f\xbc"=>"", + "\xf0\x9f\x8f\xbd"=>"", + "\xf0\x9f\x8f\xbe"=>"", + "\xf0\x9f\x8f\xbf"=>"", + "\xf0\x9f\x90\x80"=>"", + "\xf0\x9f\x90\x81"=>"", + "\xf0\x9f\x90\x82"=>"", + "\xf0\x9f\x90\x83"=>"", + "\xf0\x9f\x90\x84"=>"", + "\xf0\x9f\x90\x85"=>"", + "\xf0\x9f\x90\x86"=>"", + "\xf0\x9f\x90\x87"=>"", + "\xf0\x9f\x90\x88"=>"", + "\xf0\x9f\x90\x89"=>"", + "\xf0\x9f\x90\x8a"=>"", + "\xf0\x9f\x90\x8b"=>"", + "\xf0\x9f\x90\x8c"=>"\xf3\xbe\x86\xb9", + "\xf0\x9f\x90\x8d"=>"\xf3\xbe\x87\x93", + "\xf0\x9f\x90\x8e"=>"\xf3\xbe\x9f\x9c", + "\xf0\x9f\x90\x8f"=>"", + "\xf0\x9f\x90\x90"=>"", + "\xf0\x9f\x90\x91"=>"\xf3\xbe\x87\x8f", + "\xf0\x9f\x90\x92"=>"\xf3\xbe\x87\x8e", + "\xf0\x9f\x90\x93"=>"", + "\xf0\x9f\x90\x94"=>"\xf3\xbe\x87\x94", + "\xf0\x9f\x90\x95"=>"", + "\xf0\x9f\x90\x96"=>"", + "\xf0\x9f\x90\x97"=>"\xf3\xbe\x87\x95", + "\xf0\x9f\x90\x98"=>"\xf3\xbe\x87\x8c", + "\xf0\x9f\x90\x99"=>"\xf3\xbe\x87\x85", + "\xf0\x9f\x90\x9a"=>"\xf3\xbe\x87\x86", + "\xf0\x9f\x90\x9b"=>"\xf3\xbe\x87\x8b", + "\xf0\x9f\x90\x9c"=>"\xf3\xbe\x87\x9a", + "\xf0\x9f\x90\x9d"=>"\xf3\xbe\x87\xa1", + "\xf0\x9f\x90\x9e"=>"\xf3\xbe\x87\xa2", + "\xf0\x9f\x90\x9f"=>"\xf3\xbe\x86\xbd", + "\xf0\x9f\x90\xa0"=>"\xf3\xbe\x87\x89", + "\xf0\x9f\x90\xa1"=>"\xf3\xbe\x87\x99", + "\xf0\x9f\x90\xa2"=>"\xf3\xbe\x87\x9c", + "\xf0\x9f\x90\xa3"=>"\xf3\xbe\x87\x9d", + "\xf0\x9f\x90\xa4"=>"\xf3\xbe\x86\xba", + "\xf0\x9f\x90\xa5"=>"\xf3\xbe\x86\xbb", + "\xf0\x9f\x90\xa6"=>"\xf3\xbe\x87\x88", + "\xf0\x9f\x90\xa7"=>"\xf3\xbe\x86\xbc", + "\xf0\x9f\x90\xa8"=>"\xf3\xbe\x87\x8d", + "\xf0\x9f\x90\xa9"=>"\xf3\xbe\x87\x98", + "\xf0\x9f\x90\xaa"=>"", + "\xf0\x9f\x90\xab"=>"\xf3\xbe\x87\x96", + "\xf0\x9f\x90\xac"=>"\xf3\xbe\x87\x87", + "\xf0\x9f\x90\xad"=>"\xf3\xbe\x87\x82", + "\xf0\x9f\x90\xae"=>"\xf3\xbe\x87\x91", + "\xf0\x9f\x90\xaf"=>"\xf3\xbe\x87\x80", + "\xf0\x9f\x90\xb0"=>"\xf3\xbe\x87\x92", + "\xf0\x9f\x90\xb1"=>"\xf3\xbe\x86\xb8", + "\xf0\x9f\x90\xb2"=>"\xf3\xbe\x87\x9e", + "\xf0\x9f\x90\xb3"=>"\xf3\xbe\x87\x83", + "\xf0\x9f\x90\xb4"=>"\xf3\xbe\x86\xbe", + "\xf0\x9f\x90\xb5"=>"\xf3\xbe\x87\x84", + "\xf0\x9f\x90\xb6"=>"\xf3\xbe\x86\xb7", + "\xf0\x9f\x90\xb7"=>"\xf3\xbe\x86\xbf", + "\xf0\x9f\x90\xb8"=>"\xf3\xbe\x87\x97", + "\xf0\x9f\x90\xb9"=>"\xf3\xbe\x87\x8a", + "\xf0\x9f\x90\xba"=>"\xf3\xbe\x87\x90", + "\xf0\x9f\x90\xbb"=>"\xf3\xbe\x87\x81", + "\xf0\x9f\x90\xbc"=>"\xf3\xbe\x87\x9f", + "\xf0\x9f\x90\xbd"=>"\xf3\xbe\x87\xa0", + "\xf0\x9f\x90\xbe"=>"\xf3\xbe\x87\x9b", + "\xf0\x9f\x90\xbf"=>"", + "\xf0\x9f\x91\x80"=>"\xf3\xbe\x86\x90", + "\xf0\x9f\x91\x81"=>"", + "\xf0\x9f\x91\x82"=>"\xf3\xbe\x86\x91", + "\xf0\x9f\x91\x83"=>"\xf3\xbe\x86\x92", + "\xf0\x9f\x91\x84"=>"\xf3\xbe\x86\x93", + "\xf0\x9f\x91\x85"=>"\xf3\xbe\x86\x94", + "\xf0\x9f\x91\x86"=>"\xf3\xbe\xae\x99", + "\xf0\x9f\x91\x87"=>"\xf3\xbe\xae\x9a", + "\xf0\x9f\x91\x88"=>"\xf3\xbe\xae\x9b", + "\xf0\x9f\x91\x89"=>"\xf3\xbe\xae\x9c", + "\xf0\x9f\x91\x8a"=>"\xf3\xbe\xae\x96", + "\xf0\x9f\x91\x8b"=>"\xf3\xbe\xae\x9d", + "\xf0\x9f\x91\x8c"=>"\xf3\xbe\xae\x9f", + "\xf0\x9f\x91\x8d"=>"\xf3\xbe\xae\x97", + "\xf0\x9f\x91\x8e"=>"\xf3\xbe\xae\xa0", + "\xf0\x9f\x91\x8f"=>"\xf3\xbe\xae\x9e", + "\xf0\x9f\x91\x90"=>"\xf3\xbe\xae\xa1", + "\xf0\x9f\x91\x91"=>"\xf3\xbe\x93\x91", + "\xf0\x9f\x91\x92"=>"\xf3\xbe\x93\x94", + "\xf0\x9f\x91\x93"=>"\xf3\xbe\x93\x8e", + "\xf0\x9f\x91\x94"=>"\xf3\xbe\x93\x93", + "\xf0\x9f\x91\x95"=>"\xf3\xbe\x93\x8f", + "\xf0\x9f\x91\x96"=>"\xf3\xbe\x93\x90", + "\xf0\x9f\x91\x97"=>"\xf3\xbe\x93\x95", + "\xf0\x9f\x91\x98"=>"\xf3\xbe\x93\x99", + "\xf0\x9f\x91\x99"=>"\xf3\xbe\x93\x9a", + "\xf0\x9f\x91\x9a"=>"\xf3\xbe\x93\x9b", + "\xf0\x9f\x91\x9b"=>"\xf3\xbe\x93\x9c", + "\xf0\x9f\x91\x9c"=>"\xf3\xbe\x93\xb0", + "\xf0\x9f\x91\x9d"=>"\xf3\xbe\x93\xb1", + "\xf0\x9f\x91\x9e"=>"\xf3\xbe\x93\x8c", + "\xf0\x9f\x91\x9f"=>"\xf3\xbe\x93\x8d", + "\xf0\x9f\x91\xa0"=>"\xf3\xbe\x93\x96", + "\xf0\x9f\x91\xa1"=>"\xf3\xbe\x93\x97", + "\xf0\x9f\x91\xa2"=>"\xf3\xbe\x93\x98", + "\xf0\x9f\x91\xa3"=>"\xf3\xbe\x95\x93", + "\xf0\x9f\x91\xa4"=>"\xf3\xbe\x86\x9a", + "\xf0\x9f\x91\xa5"=>"", + "\xf0\x9f\x91\xa6"=>"\xf3\xbe\x86\x9b", + "\xf0\x9f\x91\xa7"=>"\xf3\xbe\x86\x9c", + "\xf0\x9f\x91\xa8"=>"\xf3\xbe\x86\x9d", + "\xf0\x9f\x91\xa9"=>"\xf3\xbe\x86\x9e", + "\xf0\x9f\x91\xaa"=>"\xf3\xbe\x86\x9f", + "\xf0\x9f\x91\xab"=>"\xf3\xbe\x86\xa0", + "\xf0\x9f\x91\xac"=>"", + "\xf0\x9f\x91\xad"=>"", + "\xf0\x9f\x91\xae"=>"\xf3\xbe\x86\xa1", + "\xf0\x9f\x91\xaf"=>"\xf3\xbe\x86\xa2", + "\xf0\x9f\x91\xb0"=>"\xf3\xbe\x86\xa3", + "\xf0\x9f\x91\xb1"=>"\xf3\xbe\x86\xa4", + "\xf0\x9f\x91\xb2"=>"\xf3\xbe\x86\xa5", + "\xf0\x9f\x91\xb3"=>"\xf3\xbe\x86\xa6", + "\xf0\x9f\x91\xb4"=>"\xf3\xbe\x86\xa7", + "\xf0\x9f\x91\xb5"=>"\xf3\xbe\x86\xa8", + "\xf0\x9f\x91\xb6"=>"\xf3\xbe\x86\xa9", + "\xf0\x9f\x91\xb7"=>"\xf3\xbe\x86\xaa", + "\xf0\x9f\x91\xb8"=>"\xf3\xbe\x86\xab", + "\xf0\x9f\x91\xb9"=>"\xf3\xbe\x86\xac", + "\xf0\x9f\x91\xba"=>"\xf3\xbe\x86\xad", + "\xf0\x9f\x91\xbb"=>"\xf3\xbe\x86\xae", + "\xf0\x9f\x91\xbc"=>"\xf3\xbe\x86\xaf", + "\xf0\x9f\x91\xbd"=>"\xf3\xbe\x86\xb0", + "\xf0\x9f\x91\xbe"=>"\xf3\xbe\x86\xb1", + "\xf0\x9f\x91\xbf"=>"\xf3\xbe\x86\xb2", + "\xf0\x9f\x92\x80"=>"\xf3\xbe\x86\xb3", + "\xf0\x9f\x92\x81"=>"\xf3\xbe\x86\xb4", + "\xf0\x9f\x92\x82"=>"\xf3\xbe\x86\xb5", + "\xf0\x9f\x92\x83"=>"\xf3\xbe\x86\xb6", + "\xf0\x9f\x92\x84"=>"\xf3\xbe\x86\x95", + "\xf0\x9f\x92\x85"=>"\xf3\xbe\x86\x96", + "\xf0\x9f\x92\x86"=>"\xf3\xbe\x86\x97", + "\xf0\x9f\x92\x87"=>"\xf3\xbe\x86\x98", + "\xf0\x9f\x92\x88"=>"\xf3\xbe\x86\x99", + "\xf0\x9f\x92\x89"=>"\xf3\xbe\x94\x89", + "\xf0\x9f\x92\x8a"=>"\xf3\xbe\x94\x8a", + "\xf0\x9f\x92\x8b"=>"\xf3\xbe\xa0\xa3", + "\xf0\x9f\x92\x8c"=>"\xf3\xbe\xa0\xa4", + "\xf0\x9f\x92\x8d"=>"\xf3\xbe\xa0\xa5", + "\xf0\x9f\x92\x8e"=>"\xf3\xbe\xa0\xa6", + "\xf0\x9f\x92\x8f"=>"\xf3\xbe\xa0\xa7", + "\xf0\x9f\x92\x90"=>"\xf3\xbe\xa0\xa8", + "\xf0\x9f\x92\x91"=>"\xf3\xbe\xa0\xa9", + "\xf0\x9f\x92\x92"=>"\xf3\xbe\xa0\xaa", + "\xf0\x9f\x92\x93"=>"\xf3\xbe\xac\x8d", + "\xf0\x9f\x92\x94"=>"\xf3\xbe\xac\x8e", + "\xf0\x9f\x92\x95"=>"\xf3\xbe\xac\x8f", + "\xf0\x9f\x92\x96"=>"\xf3\xbe\xac\x90", + "\xf0\x9f\x92\x97"=>"\xf3\xbe\xac\x91", + "\xf0\x9f\x92\x98"=>"\xf3\xbe\xac\x92", + "\xf0\x9f\x92\x99"=>"\xf3\xbe\xac\x93", + "\xf0\x9f\x92\x9a"=>"\xf3\xbe\xac\x94", + "\xf0\x9f\x92\x9b"=>"\xf3\xbe\xac\x95", + "\xf0\x9f\x92\x9c"=>"\xf3\xbe\xac\x96", + "\xf0\x9f\x92\x9d"=>"\xf3\xbe\xac\x97", + "\xf0\x9f\x92\x9e"=>"\xf3\xbe\xac\x98", + "\xf0\x9f\x92\x9f"=>"\xf3\xbe\xac\x99", + "\xf0\x9f\x92\xa0"=>"\xf3\xbe\xad\x95", + "\xf0\x9f\x92\xa1"=>"\xf3\xbe\xad\x96", + "\xf0\x9f\x92\xa2"=>"\xf3\xbe\xad\x97", + "\xf0\x9f\x92\xa3"=>"\xf3\xbe\xad\x98", + "\xf0\x9f\x92\xa4"=>"\xf3\xbe\xad\x99", + "\xf0\x9f\x92\xa5"=>"\xf3\xbe\xad\x9a", + "\xf0\x9f\x92\xa6"=>"\xf3\xbe\xad\x9b", + "\xf0\x9f\x92\xa7"=>"\xf3\xbe\xad\x9c", + "\xf0\x9f\x92\xa8"=>"\xf3\xbe\xad\x9d", + "\xf0\x9f\x92\xa9"=>"\xf3\xbe\x93\xb4", + "\xf0\x9f\x92\xaa"=>"\xf3\xbe\xad\x9e", + "\xf0\x9f\x92\xab"=>"\xf3\xbe\xad\x9f", + "\xf0\x9f\x92\xac"=>"\xf3\xbe\x94\xb2", + "\xf0\x9f\x92\xad"=>"", + "\xf0\x9f\x92\xae"=>"\xf3\xbe\xad\xba", + "\xf0\x9f\x92\xaf"=>"\xf3\xbe\xad\xbb", + "\xf0\x9f\x92\xb0"=>"\xf3\xbe\x93\x9d", + "\xf0\x9f\x92\xb1"=>"\xf3\xbe\x93\x9e", + "\xf0\x9f\x92\xb2"=>"\xf3\xbe\x93\xa0", + "\xf0\x9f\x92\xb3"=>"\xf3\xbe\x93\xa1", + "\xf0\x9f\x92\xb4"=>"\xf3\xbe\x93\xa2", + "\xf0\x9f\x92\xb5"=>"\xf3\xbe\x93\xa3", + "\xf0\x9f\x92\xb6"=>"", + "\xf0\x9f\x92\xb7"=>"", + "\xf0\x9f\x92\xb8"=>"\xf3\xbe\x93\xa4", + "\xf0\x9f\x92\xb9"=>"\xf3\xbe\x93\x9f", + "\xf0\x9f\x92\xba"=>"\xf3\xbe\x94\xb7", + "\xf0\x9f\x92\xbb"=>"\xf3\xbe\x94\xb8", + "\xf0\x9f\x92\xbc"=>"\xf3\xbe\x94\xbb", + "\xf0\x9f\x92\xbd"=>"\xf3\xbe\x94\xbc", + "\xf0\x9f\x92\xbe"=>"\xf3\xbe\x94\xbd", + "\xf0\x9f\x92\xbf"=>"\xf3\xbe\xa0\x9d", + "\xf0\x9f\x93\x80"=>"\xf3\xbe\xa0\x9e", + "\xf0\x9f\x93\x81"=>"\xf3\xbe\x95\x83", + "\xf0\x9f\x93\x82"=>"\xf3\xbe\x95\x84", + "\xf0\x9f\x93\x83"=>"\xf3\xbe\x95\x80", + "\xf0\x9f\x93\x84"=>"\xf3\xbe\x95\x81", + "\xf0\x9f\x93\x85"=>"\xf3\xbe\x95\x82", + "\xf0\x9f\x93\x86"=>"\xf3\xbe\x95\x89", + "\xf0\x9f\x93\x87"=>"\xf3\xbe\x95\x8d", + "\xf0\x9f\x93\x88"=>"\xf3\xbe\x95\x8b", + "\xf0\x9f\x93\x89"=>"\xf3\xbe\x95\x8c", + "\xf0\x9f\x93\x8a"=>"\xf3\xbe\x95\x8a", + "\xf0\x9f\x93\x8b"=>"\xf3\xbe\x95\x88", + "\xf0\x9f\x93\x8c"=>"\xf3\xbe\x95\x8e", + "\xf0\x9f\x93\x8d"=>"\xf3\xbe\x94\xbf", + "\xf0\x9f\x93\x8e"=>"\xf3\xbe\x94\xba", + "\xf0\x9f\x93\x8f"=>"\xf3\xbe\x95\x90", + "\xf0\x9f\x93\x90"=>"\xf3\xbe\x95\x91", + "\xf0\x9f\x93\x91"=>"\xf3\xbe\x95\x92", + "\xf0\x9f\x93\x92"=>"\xf3\xbe\x95\x8f", + "\xf0\x9f\x93\x93"=>"\xf3\xbe\x95\x85", + "\xf0\x9f\x93\x94"=>"\xf3\xbe\x95\x87", + "\xf0\x9f\x93\x95"=>"\xf3\xbe\x94\x82", + "\xf0\x9f\x93\x96"=>"\xf3\xbe\x95\x86", + "\xf0\x9f\x93\x97"=>"\xf3\xbe\x93\xbf", + "\xf0\x9f\x93\x98"=>"\xf3\xbe\x94\x80", + "\xf0\x9f\x93\x99"=>"\xf3\xbe\x94\x81", + "\xf0\x9f\x93\x9a"=>"\xf3\xbe\x94\x83", + "\xf0\x9f\x93\x9b"=>"\xf3\xbe\x94\x84", + "\xf0\x9f\x93\x9c"=>"\xf3\xbe\x93\xbd", + "\xf0\x9f\x93\x9d"=>"\xf3\xbe\x94\xa7", + "\xf0\x9f\x93\x9e"=>"\xf3\xbe\x94\xa4", + "\xf0\x9f\x93\x9f"=>"\xf3\xbe\x94\xa2", + "\xf0\x9f\x93\xa0"=>"\xf3\xbe\x94\xa8", + "\xf0\x9f\x93\xa1"=>"\xf3\xbe\x94\xb1", + "\xf0\x9f\x93\xa2"=>"\xf3\xbe\x94\xaf", + "\xf0\x9f\x93\xa3"=>"\xf3\xbe\x94\xb0", + "\xf0\x9f\x93\xa4"=>"\xf3\xbe\x94\xb3", + "\xf0\x9f\x93\xa5"=>"\xf3\xbe\x94\xb4", + "\xf0\x9f\x93\xa6"=>"\xf3\xbe\x94\xb5", + "\xf0\x9f\x93\xa7"=>"\xf3\xbe\xae\x92", + "\xf0\x9f\x93\xa8"=>"\xf3\xbe\x94\xaa", + "\xf0\x9f\x93\xa9"=>"\xf3\xbe\x94\xab", + "\xf0\x9f\x93\xaa"=>"\xf3\xbe\x94\xac", + "\xf0\x9f\x93\xab"=>"\xf3\xbe\x94\xad", + "\xf0\x9f\x93\xac"=>"", + "\xf0\x9f\x93\xad"=>"", + "\xf0\x9f\x93\xae"=>"\xf3\xbe\x94\xae", + "\xf0\x9f\x93\xaf"=>"", + "\xf0\x9f\x93\xb0"=>"\xf3\xbe\xa0\xa2", + "\xf0\x9f\x93\xb1"=>"\xf3\xbe\x94\xa5", + "\xf0\x9f\x93\xb2"=>"\xf3\xbe\x94\xa6", + "\xf0\x9f\x93\xb3"=>"\xf3\xbe\xa0\xb9", + "\xf0\x9f\x93\xb4"=>"\xf3\xbe\xa0\xba", + "\xf0\x9f\x93\xb5"=>"", + "\xf0\x9f\x93\xb6"=>"\xf3\xbe\xa0\xb8", + "\xf0\x9f\x93\xb7"=>"\xf3\xbe\x93\xaf", + "\xf0\x9f\x93\xb8"=>"", + "\xf0\x9f\x93\xb9"=>"\xf3\xbe\x93\xb9", + "\xf0\x9f\x93\xba"=>"\xf3\xbe\xa0\x9c", + "\xf0\x9f\x93\xbb"=>"\xf3\xbe\xa0\x9f", + "\xf0\x9f\x93\xbc"=>"\xf3\xbe\xa0\xa0", + "\xf0\x9f\x93\xbd"=>"", + "\xf0\x9f\x93\xbf"=>"", + "\xf0\x9f\x94\x80"=>"", + "\xf0\x9f\x94\x81"=>"", + "\xf0\x9f\x94\x82"=>"", + "\xf0\x9f\x94\x83"=>"\xf3\xbe\xae\x91", + "\xf0\x9f\x94\x84"=>"", + "\xf0\x9f\x94\x85"=>"", + "\xf0\x9f\x94\x86"=>"", + "\xf0\x9f\x94\x87"=>"", + "\xf0\x9f\x94\x88"=>"", + "\xf0\x9f\x94\x89"=>"", + "\xf0\x9f\x94\x8a"=>"\xf3\xbe\xa0\xa1", + "\xf0\x9f\x94\x8b"=>"\xf3\xbe\x93\xbc", + "\xf0\x9f\x94\x8c"=>"\xf3\xbe\x93\xbe", + "\xf0\x9f\x94\x8d"=>"\xf3\xbe\xae\x85", + "\xf0\x9f\x94\x8e"=>"\xf3\xbe\xae\x8d", + "\xf0\x9f\x94\x8f"=>"\xf3\xbe\xae\x90", + "\xf0\x9f\x94\x90"=>"\xf3\xbe\xae\x8a", + "\xf0\x9f\x94\x91"=>"\xf3\xbe\xae\x82", + "\xf0\x9f\x94\x92"=>"\xf3\xbe\xae\x86", + "\xf0\x9f\x94\x93"=>"\xf3\xbe\xae\x87", + "\xf0\x9f\x94\x94"=>"\xf3\xbe\x93\xb2", + "\xf0\x9f\x94\x95"=>"", + "\xf0\x9f\x94\x96"=>"\xf3\xbe\xae\x8f", + "\xf0\x9f\x94\x97"=>"\xf3\xbe\xad\x8b", + "\xf0\x9f\x94\x98"=>"\xf3\xbe\xae\x8c", + "\xf0\x9f\x94\x99"=>"\xf3\xbe\xae\x8e", + "\xf0\x9f\x94\x9a"=>"\xf3\xbe\x80\x9a", + "\xf0\x9f\x94\x9b"=>"\xf3\xbe\x80\x99", + "\xf0\x9f\x94\x9c"=>"\xf3\xbe\x80\x98", + "\xf0\x9f\x94\x9d"=>"\xf3\xbe\xad\x82", + "\xf0\x9f\x94\x9e"=>"\xf3\xbe\xac\xa5", + "\xf0\x9f\x94\x9f"=>"\xf3\xbe\xa0\xbb", + "\xf0\x9f\x94\xa0"=>"\xf3\xbe\xad\xbc", + "\xf0\x9f\x94\xa1"=>"\xf3\xbe\xad\xbd", + "\xf0\x9f\x94\xa2"=>"\xf3\xbe\xad\xbe", + "\xf0\x9f\x94\xa3"=>"\xf3\xbe\xad\xbf", + "\xf0\x9f\x94\xa4"=>"\xf3\xbe\xae\x80", + "\xf0\x9f\x94\xa5"=>"\xf3\xbe\x93\xb6", + "\xf0\x9f\x94\xa6"=>"\xf3\xbe\x93\xbb", + "\xf0\x9f\x94\xa7"=>"\xf3\xbe\x93\x89", + "\xf0\x9f\x94\xa8"=>"\xf3\xbe\x93\x8a", + "\xf0\x9f\x94\xa9"=>"\xf3\xbe\x93\x8b", + "\xf0\x9f\x94\xaa"=>"\xf3\xbe\x93\xba", + "\xf0\x9f\x94\xab"=>"\xf3\xbe\x93\xb5", + "\xf0\x9f\x94\xac"=>"", + "\xf0\x9f\x94\xad"=>"", + "\xf0\x9f\x94\xae"=>"\xf3\xbe\x93\xb7", + "\xf0\x9f\x94\xaf"=>"\xf3\xbe\x93\xb8", + "\xf0\x9f\x94\xb0"=>"\xf3\xbe\x81\x84", + "\xf0\x9f\x94\xb1"=>"\xf3\xbe\x93\x92", + "\xf0\x9f\x94\xb2"=>"\xf3\xbe\xad\xa4", + "\xf0\x9f\x94\xb3"=>"\xf3\xbe\xad\xa7", + "\xf0\x9f\x94\xb4"=>"\xf3\xbe\xad\xa3", + "\xf0\x9f\x94\xb5"=>"\xf3\xbe\xad\xa4", + "\xf0\x9f\x94\xb6"=>"\xf3\xbe\xad\xb3", + "\xf0\x9f\x94\xb7"=>"\xf3\xbe\xad\xb4", + "\xf0\x9f\x94\xb8"=>"\xf3\xbe\xad\xb5", + "\xf0\x9f\x94\xb9"=>"\xf3\xbe\xad\xb6", + "\xf0\x9f\x94\xba"=>"\xf3\xbe\xad\xb8", + "\xf0\x9f\x94\xbb"=>"\xf3\xbe\xad\xb9", + "\xf0\x9f\x94\xbc"=>"\xf3\xbe\xac\x81", + "\xf0\x9f\x94\xbd"=>"\xf3\xbe\xac\x80", + "\xf0\x9f\x95\x89"=>"", + "\xf0\x9f\x95\x8a"=>"", + "\xf0\x9f\x95\x8b"=>"", + "\xf0\x9f\x95\x8c"=>"", + "\xf0\x9f\x95\x8d"=>"", + "\xf0\x9f\x95\x8e"=>"", + "\xf0\x9f\x95\x90"=>"\xf3\xbe\x80\x9e", + "\xf0\x9f\x95\x91"=>"\xf3\xbe\x80\x9f", + "\xf0\x9f\x95\x92"=>"\xf3\xbe\x80\xa0", + "\xf0\x9f\x95\x93"=>"\xf3\xbe\x80\xa1", + "\xf0\x9f\x95\x94"=>"\xf3\xbe\x80\xa2", + "\xf0\x9f\x95\x95"=>"\xf3\xbe\x80\xa3", + "\xf0\x9f\x95\x96"=>"\xf3\xbe\x80\xa4", + "\xf0\x9f\x95\x97"=>"\xf3\xbe\x80\xa5", + "\xf0\x9f\x95\x98"=>"\xf3\xbe\x80\xa6", + "\xf0\x9f\x95\x99"=>"\xf3\xbe\x80\xa7", + "\xf0\x9f\x95\x9a"=>"\xf3\xbe\x80\xa8", + "\xf0\x9f\x95\x9b"=>"\xf3\xbe\x80\xa9", + "\xf0\x9f\x95\x9c"=>"", + "\xf0\x9f\x95\x9d"=>"", + "\xf0\x9f\x95\x9e"=>"", + "\xf0\x9f\x95\x9f"=>"", + "\xf0\x9f\x95\xa0"=>"", + "\xf0\x9f\x95\xa1"=>"", + "\xf0\x9f\x95\xa2"=>"", + "\xf0\x9f\x95\xa3"=>"", + "\xf0\x9f\x95\xa4"=>"", + "\xf0\x9f\x95\xa5"=>"", + "\xf0\x9f\x95\xa6"=>"", + "\xf0\x9f\x95\xa7"=>"", + "\xf0\x9f\x95\xaf"=>"", + "\xf0\x9f\x95\xb0"=>"", + "\xf0\x9f\x95\xb3"=>"", + "\xf0\x9f\x95\xb4"=>"", + "\xf0\x9f\x95\xb5"=>"", + "\xf0\x9f\x95\xb6"=>"", + "\xf0\x9f\x95\xb7"=>"", + "\xf0\x9f\x95\xb8"=>"", + "\xf0\x9f\x95\xb9"=>"", + "\xf0\x9f\x96\x87"=>"", + "\xf0\x9f\x96\x8a"=>"", + "\xf0\x9f\x96\x8b"=>"", + "\xf0\x9f\x96\x8c"=>"", + "\xf0\x9f\x96\x8d"=>"", + "\xf0\x9f\x96\x90"=>"", + "\xf0\x9f\x96\x95"=>"", + "\xf0\x9f\x96\x96"=>"", + "\xf0\x9f\x96\xa5"=>"", + "\xf0\x9f\x96\xa8"=>"", + "\xf0\x9f\x96\xb1"=>"", + "\xf0\x9f\x96\xb2"=>"", + "\xf0\x9f\x96\xbc"=>"", + "\xf0\x9f\x97\x82"=>"", + "\xf0\x9f\x97\x83"=>"", + "\xf0\x9f\x97\x84"=>"", + "\xf0\x9f\x97\x91"=>"", + "\xf0\x9f\x97\x92"=>"", + "\xf0\x9f\x97\x93"=>"", + "\xf0\x9f\x97\x9c"=>"", + "\xf0\x9f\x97\x9d"=>"", + "\xf0\x9f\x97\x9e"=>"", + "\xf0\x9f\x97\xa1"=>"", + "\xf0\x9f\x97\xa3"=>"", + "\xf0\x9f\x97\xa8"=>"", + "\xf0\x9f\x97\xaf"=>"", + "\xf0\x9f\x97\xb3"=>"", + "\xf0\x9f\x97\xba"=>"", + "\xf0\x9f\x97\xbb"=>"\xf3\xbe\x93\x83", + "\xf0\x9f\x97\xbc"=>"\xf3\xbe\x93\x84", + "\xf0\x9f\x97\xbd"=>"\xf3\xbe\x93\x86", + "\xf0\x9f\x97\xbe"=>"\xf3\xbe\x93\x87", + "\xf0\x9f\x97\xbf"=>"\xf3\xbe\x93\x88", + "\xf0\x9f\x98\x80"=>"", + "\xf0\x9f\x98\x81"=>"\xf3\xbe\x8c\xb3", + "\xf0\x9f\x98\x82"=>"\xf3\xbe\x8c\xb4", + "\xf0\x9f\x98\x83"=>"\xf3\xbe\x8c\xb0", + "\xf0\x9f\x98\x84"=>"\xf3\xbe\x8c\xb8", + "\xf0\x9f\x98\x85"=>"\xf3\xbe\x8c\xb1", + "\xf0\x9f\x98\x86"=>"\xf3\xbe\x8c\xb2", + "\xf0\x9f\x98\x87"=>"", + "\xf0\x9f\x98\x88"=>"", + "\xf0\x9f\x98\x89"=>"\xf3\xbe\x8d\x87", + "\xf0\x9f\x98\x8a"=>"\xf3\xbe\x8c\xb5", + "\xf0\x9f\x98\x8b"=>"\xf3\xbe\x8c\xab", + "\xf0\x9f\x98\x8c"=>"\xf3\xbe\x8c\xbe", + "\xf0\x9f\x98\x8d"=>"\xf3\xbe\x8c\xa7", + "\xf0\x9f\x98\x8e"=>"", + "\xf0\x9f\x98\x8f"=>"\xf3\xbe\x8d\x83", + "\xf0\x9f\x98\x90"=>"", + "\xf0\x9f\x98\x91"=>"", + "\xf0\x9f\x98\x92"=>"\xf3\xbe\x8c\xa6", + "\xf0\x9f\x98\x93"=>"\xf3\xbe\x8d\x84", + "\xf0\x9f\x98\x94"=>"\xf3\xbe\x8d\x80", + "\xf0\x9f\x98\x95"=>"", + "\xf0\x9f\x98\x96"=>"\xf3\xbe\x8c\xbf", + "\xf0\x9f\x98\x97"=>"", + "\xf0\x9f\x98\x98"=>"\xf3\xbe\x8c\xac", + "\xf0\x9f\x98\x99"=>"", + "\xf0\x9f\x98\x9a"=>"\xf3\xbe\x8c\xad", + "\xf0\x9f\x98\x9b"=>"", + "\xf0\x9f\x98\x9c"=>"\xf3\xbe\x8c\xa9", + "\xf0\x9f\x98\x9d"=>"\xf3\xbe\x8c\xaa", + "\xf0\x9f\x98\x9e"=>"\xf3\xbe\x8c\xa3", + "\xf0\x9f\x98\x9f"=>"", + "\xf0\x9f\x98\xa0"=>"\xf3\xbe\x8c\xa0", + "\xf0\x9f\x98\xa1"=>"\xf3\xbe\x8c\xbd", + "\xf0\x9f\x98\xa2"=>"\xf3\xbe\x8c\xb9", + "\xf0\x9f\x98\xa3"=>"\xf3\xbe\x8c\xbc", + "\xf0\x9f\x98\xa4"=>"\xf3\xbe\x8c\xa8", + "\xf0\x9f\x98\xa5"=>"\xf3\xbe\x8d\x85", + "\xf0\x9f\x98\xa6"=>"", + "\xf0\x9f\x98\xa7"=>"", + "\xf0\x9f\x98\xa8"=>"\xf3\xbe\x8c\xbb", + "\xf0\x9f\x98\xa9"=>"\xf3\xbe\x8c\xa1", + "\xf0\x9f\x98\xaa"=>"\xf3\xbe\x8d\x82", + "\xf0\x9f\x98\xab"=>"\xf3\xbe\x8d\x86", + "\xf0\x9f\x98\xac"=>"", + "\xf0\x9f\x98\xad"=>"\xf3\xbe\x8c\xba", + "\xf0\x9f\x98\xae"=>"", + "\xf0\x9f\x98\xaf"=>"", + "\xf0\x9f\x98\xb0"=>"\xf3\xbe\x8c\xa5", + "\xf0\x9f\x98\xb1"=>"\xf3\xbe\x8d\x81", + "\xf0\x9f\x98\xb2"=>"\xf3\xbe\x8c\xa2", + "\xf0\x9f\x98\xb3"=>"\xf3\xbe\x8c\xaf", + "\xf0\x9f\x98\xb4"=>"", + "\xf0\x9f\x98\xb5"=>"\xf3\xbe\x8c\xa4", + "\xf0\x9f\x98\xb6"=>"", + "\xf0\x9f\x98\xb7"=>"\xf3\xbe\x8c\xae", + "\xf0\x9f\x98\xb8"=>"\xf3\xbe\x8d\x89", + "\xf0\x9f\x98\xb9"=>"\xf3\xbe\x8d\x8a", + "\xf0\x9f\x98\xba"=>"\xf3\xbe\x8d\x88", + "\xf0\x9f\x98\xbb"=>"\xf3\xbe\x8d\x8c", + "\xf0\x9f\x98\xbc"=>"\xf3\xbe\x8d\x8f", + "\xf0\x9f\x98\xbd"=>"\xf3\xbe\x8d\x8b", + "\xf0\x9f\x98\xbe"=>"\xf3\xbe\x8d\x8e", + "\xf0\x9f\x98\xbf"=>"\xf3\xbe\x8d\x8d", + "\xf0\x9f\x99\x80"=>"\xf3\xbe\x8d\x90", + "\xf0\x9f\x99\x81"=>"", + "\xf0\x9f\x99\x82"=>"", + "\xf0\x9f\x99\x83"=>"", + "\xf0\x9f\x99\x84"=>"", + "\xf0\x9f\x99\x85"=>"\xf3\xbe\x8d\x91", + "\xf0\x9f\x99\x86"=>"\xf3\xbe\x8d\x92", + "\xf0\x9f\x99\x87"=>"\xf3\xbe\x8d\x93", + "\xf0\x9f\x99\x88"=>"\xf3\xbe\x8d\x94", + "\xf0\x9f\x99\x89"=>"\xf3\xbe\x8d\x96", + "\xf0\x9f\x99\x8a"=>"\xf3\xbe\x8d\x95", + "\xf0\x9f\x99\x8b"=>"\xf3\xbe\x8d\x97", + "\xf0\x9f\x99\x8c"=>"\xf3\xbe\x8d\x98", + "\xf0\x9f\x99\x8d"=>"\xf3\xbe\x8d\x99", + "\xf0\x9f\x99\x8e"=>"\xf3\xbe\x8d\x9a", + "\xf0\x9f\x99\x8f"=>"\xf3\xbe\x8d\x9b", + "\xf0\x9f\x9a\x80"=>"\xf3\xbe\x9f\xad", + "\xf0\x9f\x9a\x81"=>"", + "\xf0\x9f\x9a\x82"=>"", + "\xf0\x9f\x9a\x83"=>"\xf3\xbe\x9f\x9f", + "\xf0\x9f\x9a\x84"=>"\xf3\xbe\x9f\xa2", + "\xf0\x9f\x9a\x85"=>"\xf3\xbe\x9f\xa3", + "\xf0\x9f\x9a\x86"=>"", + "\xf0\x9f\x9a\x87"=>"\xf3\xbe\x9f\xa0", + "\xf0\x9f\x9a\x88"=>"", + "\xf0\x9f\x9a\x89"=>"\xf3\xbe\x9f\xac", + "\xf0\x9f\x9a\x8a"=>"", + "\xf0\x9f\x9a\x8b"=>"", + "\xf0\x9f\x9a\x8c"=>"\xf3\xbe\x9f\xa6", + "\xf0\x9f\x9a\x8d"=>"", + "\xf0\x9f\x9a\x8e"=>"", + "\xf0\x9f\x9a\x8f"=>"\xf3\xbe\x9f\xa7", + "\xf0\x9f\x9a\x90"=>"", + "\xf0\x9f\x9a\x91"=>"\xf3\xbe\x9f\xb3", + "\xf0\x9f\x9a\x92"=>"\xf3\xbe\x9f\xb2", + "\xf0\x9f\x9a\x93"=>"\xf3\xbe\x9f\xb4", + "\xf0\x9f\x9a\x94"=>"", + "\xf0\x9f\x9a\x95"=>"\xf3\xbe\x9f\xaf", + "\xf0\x9f\x9a\x96"=>"", + "\xf0\x9f\x9a\x97"=>"\xf3\xbe\x9f\xa4", + "\xf0\x9f\x9a\x98"=>"", + "\xf0\x9f\x9a\x99"=>"\xf3\xbe\x9f\xa5", + "\xf0\x9f\x9a\x9a"=>"\xf3\xbe\x9f\xb1", + "\xf0\x9f\x9a\x9b"=>"", + "\xf0\x9f\x9a\x9c"=>"", + "\xf0\x9f\x9a\x9d"=>"", + "\xf0\x9f\x9a\x9e"=>"", + "\xf0\x9f\x9a\x9f"=>"", + "\xf0\x9f\x9a\xa0"=>"", + "\xf0\x9f\x9a\xa1"=>"", + "\xf0\x9f\x9a\xa2"=>"\xf3\xbe\x9f\xa8", + "\xf0\x9f\x9a\xa3"=>"", + "\xf0\x9f\x9a\xa4"=>"\xf3\xbe\x9f\xae", + "\xf0\x9f\x9a\xa5"=>"\xf3\xbe\x9f\xb7", + "\xf0\x9f\x9a\xa6"=>"", + "\xf0\x9f\x9a\xa7"=>"\xf3\xbe\x9f\xb8", + "\xf0\x9f\x9a\xa8"=>"\xf3\xbe\x9f\xb9", + "\xf0\x9f\x9a\xa9"=>"\xf3\xbe\xac\xa2", + "\xf0\x9f\x9a\xaa"=>"\xf3\xbe\x93\xb3", + "\xf0\x9f\x9a\xab"=>"\xf3\xbe\xad\x88", + "\xf0\x9f\x9a\xac"=>"\xf3\xbe\xac\x9e", + "\xf0\x9f\x9a\xad"=>"\xf3\xbe\xac\x9f", + "\xf0\x9f\x9a\xae"=>"", + "\xf0\x9f\x9a\xaf"=>"", + "\xf0\x9f\x9a\xb0"=>"", + "\xf0\x9f\x9a\xb1"=>"", + "\xf0\x9f\x9a\xb2"=>"\xf3\xbe\x9f\xab", + "\xf0\x9f\x9a\xb3"=>"", + "\xf0\x9f\x9a\xb4"=>"", + "\xf0\x9f\x9a\xb5"=>"", + "\xf0\x9f\x9a\xb6"=>"\xf3\xbe\x9f\xb0", + "\xf0\x9f\x9a\xb7"=>"", + "\xf0\x9f\x9a\xb8"=>"", + "\xf0\x9f\x9a\xb9"=>"\xf3\xbe\xac\xb3", + "\xf0\x9f\x9a\xba"=>"\xf3\xbe\xac\xb4", + "\xf0\x9f\x9a\xbb"=>"\xf3\xbe\x94\x86", + "\xf0\x9f\x9a\xbc"=>"\xf3\xbe\xac\xb5", + "\xf0\x9f\x9a\xbd"=>"\xf3\xbe\x94\x87", + "\xf0\x9f\x9a\xbe"=>"\xf3\xbe\x94\x88", + "\xf0\x9f\x9a\xbf"=>"", + "\xf0\x9f\x9b\x80"=>"\xf3\xbe\x94\x85", + "\xf0\x9f\x9b\x81"=>"", + "\xf0\x9f\x9b\x82"=>"", + "\xf0\x9f\x9b\x83"=>"", + "\xf0\x9f\x9b\x84"=>"", + "\xf0\x9f\x9b\x85"=>"", + "\xf0\x9f\x9b\x8b"=>"", + "\xf0\x9f\x9b\x8c"=>"", + "\xf0\x9f\x9b\x8d"=>"", + "\xf0\x9f\x9b\x8e"=>"", + "\xf0\x9f\x9b\x8f"=>"", + "\xf0\x9f\x9b\x90"=>"", + "\xf0\x9f\x9b\xa0"=>"", + "\xf0\x9f\x9b\xa1"=>"", + "\xf0\x9f\x9b\xa2"=>"", + "\xf0\x9f\x9b\xa3"=>"", + "\xf0\x9f\x9b\xa4"=>"", + "\xf0\x9f\x9b\xa5"=>"", + "\xf0\x9f\x9b\xa9"=>"", + "\xf0\x9f\x9b\xab"=>"", + "\xf0\x9f\x9b\xac"=>"", + "\xf0\x9f\x9b\xb0"=>"", + "\xf0\x9f\x9b\xb3"=>"", + "\xf0\x9f\xa4\x90"=>"", + "\xf0\x9f\xa4\x91"=>"", + "\xf0\x9f\xa4\x92"=>"", + "\xf0\x9f\xa4\x93"=>"", + "\xf0\x9f\xa4\x94"=>"", + "\xf0\x9f\xa4\x95"=>"", + "\xf0\x9f\xa4\x96"=>"", + "\xf0\x9f\xa4\x97"=>"", + "\xf0\x9f\xa4\x98"=>"", + "\xf0\x9f\xa6\x80"=>"", + "\xf0\x9f\xa6\x81"=>"", + "\xf0\x9f\xa6\x82"=>"", + "\xf0\x9f\xa6\x83"=>"", + "\xf0\x9f\xa6\x84"=>"", + "\xf0\x9f\xa7\x80"=>"", + "#\xe2\x83\xa3"=>"\xf3\xbe\xa0\xac", + "*\xe2\x83\xa3"=>"", + "0\xe2\x83\xa3"=>"\xf3\xbe\xa0\xb7", + "1\xe2\x83\xa3"=>"\xf3\xbe\xa0\xae", + "2\xe2\x83\xa3"=>"\xf3\xbe\xa0\xaf", + "3\xe2\x83\xa3"=>"\xf3\xbe\xa0\xb0", + "4\xe2\x83\xa3"=>"\xf3\xbe\xa0\xb1", + "5\xe2\x83\xa3"=>"\xf3\xbe\xa0\xb2", + "6\xe2\x83\xa3"=>"\xf3\xbe\xa0\xb3", + "7\xe2\x83\xa3"=>"\xf3\xbe\xa0\xb4", + "8\xe2\x83\xa3"=>"\xf3\xbe\xa0\xb5", + "9\xe2\x83\xa3"=>"\xf3\xbe\xa0\xb6", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3"=>"\xf3\xbe\x93\xad", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa"=>"\xf3\xbe\x93\xa8", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8"=>"\xf3\xbe\x93\xab", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb7"=>"\xf3\xbe\x93\xa7", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa7"=>"\xf3\xbe\x93\xaa", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb9"=>"\xf3\xbe\x93\xa9", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5"=>"\xf3\xbe\x93\xa5", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7"=>"\xf3\xbe\x93\xae", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb4\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb6\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xba"=>"\xf3\xbe\x93\xac", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb8"=>"\xf3\xbe\x93\xa6", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xbd\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + ), + 'docomo_to_unified' => array( + "\xee\x9c\xb1"=>"\xc2\xa9", + "\xee\x9c\xb6"=>"\xc2\xae", + "\xee\x9c\x84"=>"\xe2\x80\xbc", + "\xee\x9c\x83"=>"\xe2\x81\x89", + "\xee\x9c\xb2"=>"\xe2\x84\xa2", + "\xee\x9c\xbc"=>"\xe2\x86\x94", + "\xee\x9c\xbd"=>"\xe2\x86\x95", + "\xee\x9a\x97"=>"\xe2\x86\x96", + "\xee\x99\xb8"=>"\xe2\x86\x97", + "\xee\x9a\x96"=>"\xe2\x86\x98", + "\xee\x9a\xa5"=>"\xe2\x86\x99", + "\xee\x9b\x9a"=>"\xe2\x86\xa9", + "\xee\x9c\x9f"=>"\xe2\x8c\x9a", + "\xee\x9c\x9c"=>"\xe2\x8f\xb3", + "\xee\x9a\xba"=>"\xf0\x9f\x95\x9b", + "\xee\x99\x9c"=>"\xf0\x9f\x9a\x87", + "\xee\x98\xbe"=>"\xf0\x9f\x8c\x87", + "\xee\x98\xbf"=>"\xe2\x98\x81", + "\xee\x9a\x87"=>"\xf0\x9f\x93\x9e", + "\xee\x99\x80"=>"\xe2\x98\x94", + "\xee\x99\xb0"=>"\xe2\x98\x95", + "\xee\x9b\xb0"=>"\xf0\x9f\x98\xba", + "\xee\x99\x86"=>"\xe2\x99\x88", + "\xee\x99\x87"=>"\xe2\x99\x89", + "\xee\x99\x88"=>"\xe2\x99\x8a", + "\xee\x99\x89"=>"\xe2\x99\x8b", + "\xee\x99\x8a"=>"\xe2\x99\x8c", + "\xee\x99\x8b"=>"\xe2\x99\x8d", + "\xee\x99\x8c"=>"\xe2\x99\x8e", + "\xee\x99\x8d"=>"\xe2\x99\x8f", + "\xee\x99\x8e"=>"\xe2\x99\x90", + "\xee\x99\x8f"=>"\xe2\x99\x91", + "\xee\x99\x90"=>"\xe2\x99\x92", + "\xee\x99\x91"=>"\xe2\x99\x93", + "\xee\x9a\x8e"=>"\xe2\x99\xa0", + "\xee\x9a\x90"=>"\xe2\x99\xa3", + "\xee\x9a\x8d"=>"\xe2\x99\xa5", + "\xee\x9a\x8f"=>"\xe2\x99\xa6", + "\xee\x9b\xb7"=>"\xf0\x9f\x9b\x80", + "\xee\x9c\xb5"=>"\xf0\x9f\x94\x83", + "\xee\x9a\x9b"=>"\xe2\x99\xbf", + "\xee\x99\xa1"=>"\xf0\x9f\x9a\xa2", + "\xee\x9c\xb7"=>"\xe2\x9a\xa0", + "\xee\x99\x82"=>"\xe2\x9a\xa1", + "\xee\x9a\x9c"=>"\xf0\x9f\x94\xb5", + "\xee\x99\x96"=>"\xe2\x9a\xbd", + "\xee\x99\x93"=>"\xe2\x9a\xbe", + "\xee\x99\x81"=>"\xe2\x9b\x84", + "\xee\x98\xbe\xee\x98\xbf"=>"\xe2\x9b\x85", + "\xee\x9c\xaf"=>"\xf0\x9f\x99\x85", + "\xee\x99\x94"=>"\xe2\x9b\xb3", + "\xee\x9a\xa3"=>"\xf0\x9f\x9a\xa4", + "\xee\x99\xab"=>"\xe2\x9b\xbd", + "\xee\x99\xb5"=>"\xf0\x9f\x92\x87", + "\xee\x99\xa2"=>"\xe2\x9c\x88", + "\xee\x9b\x93"=>"\xf0\x9f\x93\xa7", + "\xee\x9a\x93"=>"\xe2\x9c\x8a", + "\xee\x9a\x95"=>"\xf0\x9f\x91\x90", + "\xee\x9a\x94"=>"\xe2\x9c\x8c", + "\xee\x9c\x99"=>"\xe2\x9c\x8f", + "\xee\x9a\xae"=>"\xe2\x9c\x92", + "\xee\x9b\xba"=>"\xe2\x9d\x87", + "\xee\x9b\xb8"=>"\xf0\x9f\x92\xa0", + "\xee\x9c\x82"=>"\xe2\x9d\x97", + "\xee\x9b\xac"=>"\xf0\x9f\x92\x9d", + "\xee\x9c\x8a"=>"\xf0\x9f\x93\x9c", + "\xee\x9b\x9f"=>"\xe2\x9e\xbf", + "\xee\x9b\xb5"=>"\xe2\xa4\xb4", + "\xee\x9c\x80"=>"\xf0\x9f\x91\x8e", + "\xee\x9a\xa0"=>"\xf0\x9f\x8c\x95", + "\xee\x9c\x89"=>"\xe3\x80\xb0", + "\xee\x9c\xb4"=>"\xe3\x8a\x99", + "\xee\x99\xac"=>"\xf0\x9f\x85\xbf", + "\xee\x9b\x9b"=>"\xf0\x9f\x86\x91", + "\xee\x9b\x97"=>"\xf0\x9f\x86\x93", + "\xee\x9b\x98"=>"\xf0\x9f\x86\x94", + "\xee\x9b\x9d"=>"\xf0\x9f\x86\x95", + "\xee\x9c\x8b"=>"\xf0\x9f\x99\x86", + "\xee\x9c\xb8"=>"\xf0\x9f\x9a\xab", + "\xee\x9c\xb9"=>"\xf0\x9f\x88\xb3", + "\xee\x9c\xba"=>"\xf0\x9f\x88\xb4", + "\xee\x9c\xbb"=>"\xf0\x9f\x88\xb5", + "\xee\x99\x83"=>"\xf0\x9f\x8d\xa5", + "\xee\x99\x84"=>"\xf0\x9f\x8c\x81", + "\xee\x99\x85"=>"\xf0\x9f\x8c\x82", + "\xee\x9a\xb3"=>"\xf0\x9f\x8c\x8c", + "\xee\x9c\xbf"=>"\xf0\x9f\x8c\x8a", + "\xee\x9a\x9e"=>"\xf0\x9f\x8c\x9b", + "\xee\x9a\x9d"=>"\xf0\x9f\x8c\x94", + "\xee\x9a\x9f"=>"\xf0\x9f\x8c\x99", + "\xee\x9d\x86"=>"\xf0\x9f\x8c\xb1", + "\xee\x9d\x83"=>"\xf0\x9f\x8c\xb7", + "\xee\x9d\x88"=>"\xf0\x9f\x8c\xb8", + "\xee\x9d\x81"=>"\xf0\x9f\x8d\x80", + "\xee\x9d\x87"=>"\xf0\x9f\x8d\x82", + "\xee\x9d\x84"=>"\xf0\x9f\x8d\x8c", + "\xee\x9d\x85"=>"\xf0\x9f\x8d\x8f", + "\xee\x9d\x82"=>"\xf0\x9f\x8d\x92", + "\xee\x99\xb3"=>"\xf0\x9f\x8d\x94", + "\xee\x9d\x89"=>"\xf0\x9f\x8d\x99", + "\xee\x9d\x8c"=>"\xf0\x9f\x8d\x9c", + "\xee\x9d\x8d"=>"\xf0\x9f\x8d\x9e", + "\xee\x9d\x8a"=>"\xf0\x9f\x8d\xb0", + "\xee\x99\xaf"=>"\xf0\x9f\x8d\xb4", + "\xee\x9c\x9e"=>"\xf0\x9f\x8d\xb5", + "\xee\x9d\x8b"=>"\xf0\x9f\x8f\xae", + "\xee\x9d\x96"=>"\xf0\x9f\x8d\xb7", + "\xee\x99\xb1"=>"\xf0\x9f\x8d\xb9", + "\xee\x99\xb2"=>"\xf0\x9f\x8d\xbb", + "\xee\x9a\x84"=>"\xf0\x9f\x8e\x80", + "\xee\x9a\x85"=>"\xf0\x9f\x93\xa6", + "\xee\x9a\x86"=>"\xf0\x9f\x8e\x82", + "\xee\x9a\xa4"=>"\xf0\x9f\x8e\x84", + "\xee\x99\xb9"=>"\xf0\x9f\x8e\xa0", + "\xee\x9d\x91"=>"\xf0\x9f\x90\xa1", + "\xee\x99\xb6"=>"\xf0\x9f\x8e\xa4", + "\xee\x99\xb7"=>"\xf0\x9f\x93\xb9", + "\xee\x99\xba"=>"\xf0\x9f\x8e\xa7", + "\xee\x99\xbb"=>"\xf0\x9f\x8e\xa8", + "\xee\x99\xbc"=>"\xf0\x9f\x8e\xa9", + "\xee\x99\xbd"=>"\xf0\x9f\x8e\xaa", + "\xee\x99\xbe"=>"\xf0\x9f\x8e\xab", + "\xee\x9a\xac"=>"\xf0\x9f\x8e\xac", + "\xee\x9a\x8b"=>"\xf0\x9f\x8e\xae", + "\xee\x9b\xb6"=>"\xf0\x9f\x8e\xb5", + "\xee\x9b\xbf"=>"\xf0\x9f\x8e\xbc", + "\xee\x99\x92"=>"\xf0\x9f\x8e\xbd", + "\xee\x99\x95"=>"\xf0\x9f\x8e\xbe", + "\xee\x99\x97"=>"\xf0\x9f\x8e\xbf", + "\xee\x99\x98"=>"\xf0\x9f\x8f\x80", + "\xee\x99\x99"=>"\xf0\x9f\x8f\x81", + "\xee\x9c\x92"=>"\xf0\x9f\x8f\x84", + "\xee\x9c\xb3"=>"\xf0\x9f\x9a\xb6", + "\xee\x99\xa3"=>"\xf0\x9f\x8f\xa1", + "\xee\x99\xa4"=>"\xf0\x9f\x8f\xa2", + "\xee\x99\xa5"=>"\xf0\x9f\x93\xae", + "\xee\x99\xa6"=>"\xf0\x9f\x8f\xa5", + "\xee\x99\xa7"=>"\xf0\x9f\x8f\xa6", + "\xee\x99\xa8"=>"\xf0\x9f\x8f\xa7", + "\xee\x99\xa9"=>"\xf0\x9f\x8f\xa8", + "\xee\x99\xa9\xee\x9b\xaf"=>"\xf0\x9f\x8f\xa9", + "\xee\x99\xaa"=>"\xf0\x9f\x8f\xaa", + "\xee\x9c\xbe"=>"\xf0\x9f\x8f\xab", + "\xee\x9d\x8e"=>"\xf0\x9f\x90\x8c", + "\xee\x9d\x94"=>"\xf0\x9f\x90\xb4", + "\xee\x9d\x8f"=>"\xf0\x9f\x90\xa6", + "\xee\x9d\x90"=>"\xf0\x9f\x90\xa7", + "\xee\x9a\xa1"=>"\xf0\x9f\x90\xba", + "\xee\x9a\xa2"=>"\xf0\x9f\x90\xb1", + "\xee\x9d\x95"=>"\xf0\x9f\x90\xbd", + "\xee\x9a\x98"=>"\xf0\x9f\x91\xa3", + "\xee\x9a\x91"=>"\xf0\x9f\x91\x80", + "\xee\x9a\x92"=>"\xf0\x9f\x91\x82", + "\xee\x9b\xb9"=>"\xf0\x9f\x92\x8f", + "\xee\x9c\xa8"=>"\xf0\x9f\x98\x9d", + "\xee\x9b\xbd"=>"\xf0\x9f\x91\x8a", + "\xee\x9c\xa7"=>"\xf0\x9f\x91\x8d", + "\xee\x9c\x9a"=>"\xf0\x9f\x94\xb1", + "\xee\x9a\x9a"=>"\xf0\x9f\x91\x93", + "\xee\x9c\x8e"=>"\xf0\x9f\x91\x9a", + "\xee\x9c\x91"=>"\xf0\x9f\x91\x96", + "\xee\x9c\x8f"=>"\xf0\x9f\x91\x9b", + "\xee\x9a\x82"=>"\xf0\x9f\x92\xbc", + "\xee\x9a\xad"=>"\xf0\x9f\x91\x9d", + "\xee\x9a\x99"=>"\xf0\x9f\x91\x9f", + "\xee\x99\xb4"=>"\xf0\x9f\x91\xa1", + "\xee\x9a\xb1"=>"\xf0\x9f\x91\xa4", + "\xee\x9c\x90"=>"\xf0\x9f\x92\x84", + "\xee\x9c\x97"=>"\xf0\x9f\x92\x8c", + "\xee\x9c\x9b"=>"\xf0\x9f\x92\x8e", + "\xee\x9b\xad"=>"\xf0\x9f\x92\x9e", + "\xee\x9b\xae"=>"\xf0\x9f\x92\x94", + "\xee\x9b\xaf"=>"\xf0\x9f\x92\x95", + "\xee\x9b\xbb"=>"\xf0\x9f\x94\xa6", + "\xee\x9b\xbc"=>"\xf0\x9f\x92\xa2", + "\xee\x9b\xbe"=>"\xf0\x9f\x92\xa3", + "\xee\x9c\x81"=>"\xf0\x9f\x98\xaa", + "\xee\x9c\x85"=>"\xf0\x9f\x92\xa5", + "\xee\x9c\x86"=>"\xf0\x9f\x92\xa6", + "\xee\x9c\x87"=>"\xf0\x9f\x92\xa7", + "\xee\x9c\x88"=>"\xf0\x9f\x92\xa8", + "\xee\x9c\x95"=>"\xf0\x9f\x92\xb5", + "\xee\x9b\x96"=>"\xf0\x9f\x92\xb4", + "\xee\x9a\xb2"=>"\xf0\x9f\x92\xba", + "\xee\x9c\x96"=>"\xf0\x9f\x92\xbb", + "\xee\x9a\x8c"=>"\xf0\x9f\x93\x80", + "\xee\x9a\x89"=>"\xf0\x9f\x93\x9d", + "\xee\x9a\x83"=>"\xf0\x9f\x93\x9a", + "\xee\x9c\xb0"=>"\xf0\x9f\x93\x8e", + "\xee\x99\x9a"=>"\xf0\x9f\x93\x9f", + "\xee\x9b\x90"=>"\xf0\x9f\x93\xa0", + "\xee\x9b\x8f"=>"\xf0\x9f\x93\xa9", + "\xee\x9a\x88"=>"\xf0\x9f\x93\xb1", + "\xee\x9b\x8e"=>"\xf0\x9f\x93\xb2", + "\xee\x9a\x81"=>"\xf0\x9f\x93\xb7", + "\xee\x9a\x8a"=>"\xf0\x9f\x93\xba", + "\xee\x9b\x9c"=>"\xf0\x9f\x94\x8e", + "\xee\x9b\x99"=>"\xf0\x9f\x94\x93", + "\xee\x9c\x93"=>"\xf0\x9f\x94\x94", + "\xee\x9a\xb9"=>"\xf0\x9f\x94\x9a", + "\xee\x9a\xb8"=>"\xf0\x9f\x94\x9b", + "\xee\x9a\xb7"=>"\xf0\x9f\x94\x9c", + "\xee\x9c\x98"=>"\xf0\x9f\x94\xa7", + "\xee\x9d\x80"=>"\xf0\x9f\x97\xbb", + "\xee\x9d\x93"=>"\xf0\x9f\x98\xbc", + "\xee\x9c\xaa"=>"\xf0\x9f\x98\xb9", + "\xee\x9c\xa2"=>"\xf0\x9f\x98\x85", + "\xee\x9c\xa9"=>"\xf0\x9f\x98\x89", + "\xee\x9d\x92"=>"\xf0\x9f\x98\x8b", + "\xee\x9c\xa1"=>"\xf0\x9f\x98\x8c", + "\xee\x9c\xa6"=>"\xf0\x9f\x98\xbd", + "\xee\x9c\xac"=>"\xf0\x9f\x98\x8f", + "\xee\x9c\xa5"=>"\xf0\x9f\x98\x92", + "\xee\x9c\xa3"=>"\xf0\x9f\x98\xb0", + "\xee\x9c\xa0"=>"\xf0\x9f\x98\x94", + "\xee\x9b\xb3"=>"\xf0\x9f\x99\x8d", + "\xee\x9b\xb2"=>"\xf0\x9f\x98\x9e", + "\xee\x9b\xb1"=>"\xf0\x9f\x99\x8e", + "\xee\x9c\xa4"=>"\xf0\x9f\x98\xbe", + "\xee\x9c\xae"=>"\xf0\x9f\x98\xbf", + "\xee\x9c\xab"=>"\xf0\x9f\x98\xab", + "\xee\x9d\x97"=>"\xf0\x9f\x98\xb1", + "\xee\x9c\xad"=>"\xf0\x9f\x98\xad", + "\xee\x9b\xb4"=>"\xf0\x9f\x98\xb5", + "\xee\x99\x9b"=>"\xf0\x9f\x9a\x83", + "\xee\x99\x9d"=>"\xf0\x9f\x9a\x85", + "\xee\x99\xa0"=>"\xf0\x9f\x9a\x8c", + "\xee\x99\x9e"=>"\xf0\x9f\x9a\x97", + "\xee\x99\x9f"=>"\xf0\x9f\x9a\x99", + "\xee\x99\xad"=>"\xf0\x9f\x9a\xa5", + "\xee\x9b\x9e"=>"\xf0\x9f\x9a\xa9", + "\xee\x9c\x94"=>"\xf0\x9f\x9a\xaa", + "\xee\x99\xbf"=>"\xf0\x9f\x9a\xac", + "\xee\x9a\x80"=>"\xf0\x9f\x9a\xad", + "\xee\x9c\x9d"=>"\xf0\x9f\x9a\xb2", + "\xee\x99\xae"=>"\xf0\x9f\x9a\xbe", + "\xee\x9b\xa0"=>"#\xe2\x83\xa3", + "\xee\x9b\xab"=>"0\xe2\x83\xa3", + "\xee\x9b\xa2"=>"1\xe2\x83\xa3", + "\xee\x9b\xa3"=>"2\xe2\x83\xa3", + "\xee\x9b\xa4"=>"3\xe2\x83\xa3", + "\xee\x9b\xa5"=>"4\xe2\x83\xa3", + "\xee\x9b\xa6"=>"5\xe2\x83\xa3", + "\xee\x9b\xa7"=>"6\xe2\x83\xa3", + "\xee\x9b\xa8"=>"7\xe2\x83\xa3", + "\xee\x9b\xa9"=>"8\xe2\x83\xa3", + "\xee\x9b\xaa"=>"9\xe2\x83\xa3", + ), + 'kddi_to_unified' => array( + "\xee\x95\x98"=>"\xc2\xa9", + "\xee\x95\x99"=>"\xc2\xae", + "\xee\xac\xb0"=>"\xe2\x80\xbc", + "\xee\xac\xaf"=>"\xe2\x81\x89", + "\xee\x95\x8e"=>"\xe2\x84\xa2", + "\xee\x94\xb3"=>"\xe2\x84\xb9", + "\xee\xad\xba"=>"\xe2\x86\x94", + "\xee\xad\xbb"=>"\xe2\x86\x95", + "\xee\x95\x8c"=>"\xe2\x86\x96", + "\xee\x95\x95"=>"\xe2\x86\x97", + "\xee\x95\x8d"=>"\xe2\x86\x98", + "\xee\x95\x96"=>"\xe2\x86\x99", + "\xee\x95\x9d"=>"\xe2\x86\xa9", + "\xee\x95\x9c"=>"\xe2\x86\xaa", + "\xee\x95\xba"=>"\xe2\x8c\x9a", + "\xee\x95\xbb"=>"\xe2\x8c\x9b", + "\xee\x94\xb0"=>"\xe2\x8f\xa9", + "\xee\x94\xaf"=>"\xe2\x8f\xaa", + "\xee\x95\x85"=>"\xe2\x8f\xab", + "\xee\x95\x84"=>"\xe2\x8f\xac", + "\xee\x96\x94"=>"\xf0\x9f\x95\x9b", + "\xee\x91\xbc"=>"\xe2\x8f\xb3", + "\xee\x96\xbc"=>"\xf0\x9f\x9a\x87", + "\xee\x94\xb2"=>"\xe2\x96\xaa", + "\xee\x94\xb1"=>"\xe2\x96\xab", + "\xee\x94\xae"=>"\xe2\x96\xb6", + "\xee\x94\xad"=>"\xe2\x97\x80", + "\xee\x94\xb8"=>"\xe2\x97\xbb", + "\xee\x94\xb9"=>"\xe2\x97\xbc", + "\xee\x94\xb4"=>"\xe2\x97\xbd", + "\xee\x94\xb5"=>"\xe2\x97\xbe", + "\xee\x92\x88"=>"\xe2\x98\x80", + "\xee\x92\x8d"=>"\xe2\x98\x81", + "\xee\x96\x96"=>"\xe2\x98\x8e", + "\xee\xac\x82"=>"\xe2\x98\x91", + "\xee\x92\x8c"=>"\xe2\x98\x94", + "\xee\x96\x97"=>"\xe2\x98\x95", + "\xee\x93\xb6"=>"\xe2\x98\x9d", + "\xee\x93\xbb"=>"\xe2\x98\xba", + "\xee\x92\x8f"=>"\xf0\x9f\x90\x91", + "\xee\x92\x90"=>"\xe2\x99\x89", + "\xee\x92\x91"=>"\xe2\x99\x8a", + "\xee\x92\x92"=>"\xe2\x99\x8b", + "\xee\x92\x93"=>"\xe2\x99\x8c", + "\xee\x92\x94"=>"\xe2\x99\x8d", + "\xee\x92\x95"=>"\xe2\x99\x8e", + "\xee\x92\x96"=>"\xe2\x99\x8f", + "\xee\x92\x97"=>"\xe2\x99\x90", + "\xee\x92\x98"=>"\xe2\x99\x91", + "\xee\x92\x99"=>"\xe2\x99\x92", + "\xee\x92\x9a"=>"\xf0\x9f\x90\x9f", + "\xee\x96\xa1"=>"\xe2\x99\xa0", + "\xee\x96\xa3"=>"\xe2\x99\xa3", + "\xee\xaa\xa5"=>"\xe2\x99\xa5", + "\xee\x96\xa2"=>"\xe2\x99\xa6", + "\xee\x92\xbc"=>"\xe2\x99\xa8", + "\xee\xad\xb9"=>"\xe2\x99\xbb", + "\xee\x91\xbf"=>"\xe2\x99\xbf", + "\xee\x92\xa9"=>"\xe2\x9a\x93", + "\xee\x92\x81"=>"\xe2\x9a\xa0", + "\xee\x92\x87"=>"\xe2\x9a\xa1", + "\xee\x94\xba"=>"\xe2\x9a\xaa", + "\xee\x94\xbb"=>"\xe2\x9a\xab", + "\xee\x92\xb6"=>"\xe2\x9a\xbd", + "\xee\x92\xba"=>"\xe2\x9a\xbe", + "\xee\x92\x85"=>"\xe2\x9b\x84", + "\xee\x92\x8e"=>"\xe2\x9b\x85", + "\xee\x92\x9b"=>"\xe2\x9b\x8e", + "\xee\x92\x84"=>"\xe2\x9b\x94", + "\xee\x96\xbb"=>"\xf0\x9f\x92\x92", + "\xee\x97\x8f"=>"\xe2\x9b\xb2", + "\xee\x96\x99"=>"\xe2\x9b\xb3", + "\xee\x92\xb4"=>"\xf0\x9f\x9a\xa4", + "\xee\x97\x90"=>"\xe2\x9b\xba", + "\xee\x95\xb1"=>"\xe2\x9b\xbd", + "\xee\x94\x96"=>"\xe2\x9c\x82", + "\xee\x95\x9e"=>"\xe2\x9c\x85", + "\xee\x92\xb3"=>"\xe2\x9c\x88", + "\xee\x94\xa1"=>"\xe2\x9c\x89", + "\xee\xae\x83"=>"\xe2\x9c\x8a", + "\xee\x96\xa7"=>"\xe2\x9c\x8b", + "\xee\x96\xa6"=>"\xe2\x9c\x8c", + "\xee\x92\xa1"=>"\xe2\x9c\x8f", + "\xee\xac\x83"=>"\xe2\x9c\x92", + "\xee\x95\x97"=>"\xe2\x9c\x94", + "\xee\x95\x8f"=>"\xe2\x9c\x96", + "\xee\xaa\xab"=>"\xe2\x9c\xa8", + "\xee\x94\xbe"=>"\xe2\x9c\xb3", + "\xee\x91\xb9"=>"\xe2\x9c\xb4", + "\xee\x92\x8a"=>"\xe2\x9d\x84", + "\xee\x91\xac"=>"\xe2\x9d\x87", + "\xee\x95\x90"=>"\xe2\x9d\x8c", + "\xee\x95\x91"=>"\xe2\x9d\x8e", + "\xee\x92\x83"=>"\xe2\x9d\x94", + "\xee\x92\x82"=>"\xe2\x9d\x97", + "\xee\x96\x95"=>"\xf0\x9f\x92\x9f", + "\xee\x94\xbc"=>"\xe2\x9e\x95", + "\xee\x94\xbd"=>"\xe2\x9e\x96", + "\xee\x95\x94"=>"\xe2\x9e\x97", + "\xee\x95\x92"=>"\xe2\x9e\xa1", + "\xee\xac\xb1"=>"\xe2\x9e\xb0", + "\xee\xac\xad"=>"\xe2\xa4\xb4", + "\xee\xac\xae"=>"\xe2\xa4\xb5", + "\xee\x95\x93"=>"\xe2\xac\x85", + "\xee\x94\xbf"=>"\xe2\xac\x86", + "\xee\x95\x80"=>"\xe2\xac\x87", + "\xee\x95\x89"=>"\xe2\xac\x9b", + "\xee\x95\x88"=>"\xe2\xac\x9c", + "\xee\x92\x8b"=>"\xf0\x9f\x8c\x9f", + "\xee\xaa\xad"=>"\xe2\xad\x95", + "\xee\xaa\x99"=>"\xe3\x8a\x97", + "\xee\x93\xb1"=>"\xe3\x8a\x99", + "\xee\x97\x91"=>"\xf0\x9f\x80\x84", + "\xee\xad\xaf"=>"\xf0\x9f\x83\x8f", + "\xee\xac\xa6"=>"\xf0\x9f\x85\xb0", + "\xee\xac\xa7"=>"\xf0\x9f\x85\xb1", + "\xee\xac\xa8"=>"\xf0\x9f\x85\xbe", + "\xee\x92\xa6"=>"\xf0\x9f\x85\xbf", + "\xee\xac\xa9"=>"\xf0\x9f\x86\x8e", + "\xee\x96\xab"=>"\xf0\x9f\x86\x91", + "\xee\xaa\x85"=>"\xf0\x9f\x86\x92", + "\xee\x95\xb8"=>"\xf0\x9f\x86\x93", + "\xee\xaa\x88"=>"\xf0\x9f\x86\x94", + "\xee\x96\xb5"=>"\xf0\x9f\x86\x95", + "\xee\x96\xad"=>"\xf0\x9f\x86\x97", + "\xee\x93\xa8"=>"\xf0\x9f\x86\x98", + "\xee\x94\x8f"=>"\xf0\x9f\x86\x99", + "\xee\x97\x92"=>"\xf0\x9f\x86\x9a", + "\xee\xaa\x87"=>"\xf0\x9f\x88\x82", + "\xee\xaa\x8b"=>"\xf0\x9f\x88\xaf", + "\xee\xaa\x8a"=>"\xf0\x9f\x88\xb3", + "\xee\xaa\x89"=>"\xf0\x9f\x88\xb5", + "\xee\xaa\x86"=>"\xf0\x9f\x88\xb9", + "\xee\xaa\x8c"=>"\xf0\x9f\x88\xba", + "\xee\x93\xb7"=>"\xf0\x9f\x89\x90", + "\xee\xac\x81"=>"\xf0\x9f\x89\x91", + "\xee\x91\xa9"=>"\xf0\x9f\x8c\x80", + "\xee\x96\x98"=>"\xf0\x9f\x8c\x81", + "\xee\xab\xa8"=>"\xf0\x9f\x8c\x82", + "\xee\xab\xb1"=>"\xf0\x9f\x8c\x83", + "\xee\xab\xb4"=>"\xf0\x9f\x8c\x85", + "\xee\x97\x9a"=>"\xf0\x9f\x8c\x87", + "\xee\xab\xb2"=>"\xf0\x9f\x8c\x88", + "\xee\x92\xbf"=>"\xf0\x9f\x8c\x89", + "\xee\xad\xbc"=>"\xf0\x9f\x8c\x8a", + "\xee\xad\x93"=>"\xf0\x9f\x8c\x8b", + "\xee\xad\x9f"=>"\xf0\x9f\x8c\x8c", + "\xee\x96\xb3"=>"\xf0\x9f\x8c\x8f", + "\xee\x96\xa8"=>"\xf0\x9f\x8c\x91", + "\xee\x96\xaa"=>"\xf0\x9f\x8c\x93", + "\xee\x96\xa9"=>"\xf0\x9f\x8c\x94", + "\xee\x92\x86"=>"\xf0\x9f\x8c\x99", + "\xee\x92\x89"=>"\xf0\x9f\x8c\x9b", + "\xee\x91\xa8"=>"\xf0\x9f\x8c\xa0", + "\xee\xac\xb8"=>"\xf0\x9f\x8c\xb0", + "\xee\xad\xbd"=>"\xf0\x9f\x8c\xb1", + "\xee\x93\xa2"=>"\xf0\x9f\x8c\xb4", + "\xee\xaa\x96"=>"\xf0\x9f\x8c\xb5", + "\xee\x93\xa4"=>"\xf0\x9f\x8c\xb7", + "\xee\x93\x8a"=>"\xf0\x9f\x8c\xb8", + "\xee\x96\xba"=>"\xf0\x9f\x8c\xb9", + "\xee\xaa\x94"=>"\xf0\x9f\x8c\xba", + "\xee\x93\xa3"=>"\xf0\x9f\x8c\xbb", + "\xee\xad\x89"=>"\xf0\x9f\x8c\xbc", + "\xee\xac\xb6"=>"\xf0\x9f\x8c\xbd", + "\xee\xae\x82"=>"\xf0\x9f\x8c\xbf", + "\xee\x94\x93"=>"\xf0\x9f\x8d\x80", + "\xee\x93\x8e"=>"\xf0\x9f\x8d\x81", + "\xee\x97\x8d"=>"\xf0\x9f\x8d\x83", + "\xee\xac\xb7"=>"\xf0\x9f\x8d\x84", + "\xee\xaa\xbb"=>"\xf0\x9f\x8d\x85", + "\xee\xaa\xbc"=>"\xf0\x9f\x8d\x86", + "\xee\xac\xb4"=>"\xf0\x9f\x8d\x87", + "\xee\xac\xb2"=>"\xf0\x9f\x8d\x88", + "\xee\x93\x8d"=>"\xf0\x9f\x8d\x89", + "\xee\xaa\xba"=>"\xf0\x9f\x8d\x8a", + "\xee\xac\xb5"=>"\xf0\x9f\x8d\x8c", + "\xee\xac\xb3"=>"\xf0\x9f\x8d\x8d", + "\xee\xaa\xb9"=>"\xf0\x9f\x8d\x8e", + "\xee\xad\x9a"=>"\xf0\x9f\x8d\x8f", + "\xee\xac\xb9"=>"\xf0\x9f\x8d\x91", + "\xee\x93\x92"=>"\xf0\x9f\x8d\x92", + "\xee\x93\x94"=>"\xf0\x9f\x8d\x93", + "\xee\x93\x96"=>"\xf0\x9f\x8d\x94", + "\xee\xac\xbb"=>"\xf0\x9f\x8d\x95", + "\xee\x93\x84"=>"\xf0\x9f\x8d\x96", + "\xee\xac\xbc"=>"\xf0\x9f\x8d\x97", + "\xee\xaa\xb3"=>"\xf0\x9f\x8d\x98", + "\xee\x93\x95"=>"\xf0\x9f\x8d\x99", + "\xee\xaa\xb4"=>"\xf0\x9f\x8d\x9a", + "\xee\xaa\xb6"=>"\xf0\x9f\x8d\x9b", + "\xee\x96\xb4"=>"\xf0\x9f\x8d\x9c", + "\xee\xaa\xb5"=>"\xf0\x9f\x8d\x9d", + "\xee\xaa\xaf"=>"\xf0\x9f\x8d\x9e", + "\xee\xaa\xb1"=>"\xf0\x9f\x8d\x9f", + "\xee\xac\xba"=>"\xf0\x9f\x8d\xa0", + "\xee\xaa\xb2"=>"\xf0\x9f\x8d\xa1", + "\xee\xaa\xb7"=>"\xf0\x9f\x8d\xa2", + "\xee\xaa\xb8"=>"\xf0\x9f\x8d\xa3", + "\xee\xad\xb0"=>"\xf0\x9f\x8d\xa4", + "\xee\x93\xad"=>"\xf0\x9f\x8d\xa5", + "\xee\xaa\xb0"=>"\xf0\x9f\x8d\xa6", + "\xee\xab\xaa"=>"\xf0\x9f\x8d\xa7", + "\xee\xad\x8a"=>"\xf0\x9f\x8d\xa8", + "\xee\xad\x8b"=>"\xf0\x9f\x8d\xa9", + "\xee\xad\x8c"=>"\xf0\x9f\x8d\xaa", + "\xee\xad\x8d"=>"\xf0\x9f\x8d\xab", + "\xee\xad\x8e"=>"\xf0\x9f\x8d\xac", + "\xee\xad\x8f"=>"\xf0\x9f\x8d\xad", + "\xee\xad\x96"=>"\xf0\x9f\x8d\xae", + "\xee\xad\x99"=>"\xf0\x9f\x8d\xaf", + "\xee\x93\x90"=>"\xf0\x9f\x8d\xb0", + "\xee\xaa\xbd"=>"\xf0\x9f\x8d\xb1", + "\xee\xaa\xbe"=>"\xf0\x9f\x8d\xb2", + "\xee\x93\x91"=>"\xf0\x9f\x8d\xb3", + "\xee\x92\xac"=>"\xf0\x9f\x8d\xb4", + "\xee\xaa\xae"=>"\xf0\x9f\x8d\xb5", + "\xee\xaa\x97"=>"\xf0\x9f\x8d\xb6", + "\xee\x93\x81"=>"\xf0\x9f\x8d\xb7", + "\xee\x93\x82"=>"\xf0\x9f\x8d\xb8", + "\xee\xac\xbe"=>"\xf0\x9f\x8d\xb9", + "\xee\x93\x83"=>"\xf0\x9f\x8d\xba", + "\xee\xaa\x98"=>"\xf0\x9f\x8d\xbb", + "\xee\x96\x9f"=>"\xf0\x9f\x8e\x80", + "\xee\x93\x8f"=>"\xf0\x9f\x8e\x81", + "\xee\x96\xa0"=>"\xf0\x9f\x8e\x82", + "\xee\xab\xae"=>"\xf0\x9f\x8e\x83", + "\xee\x93\x89"=>"\xf0\x9f\x8e\x84", + "\xee\xab\xb0"=>"\xf0\x9f\x8e\x85", + "\xee\x97\x8c"=>"\xf0\x9f\x8e\x86", + "\xee\xab\xab"=>"\xf0\x9f\x8e\x87", + "\xee\xaa\x9b"=>"\xf0\x9f\x8e\x88", + "\xee\xaa\x9c"=>"\xf0\x9f\x8e\x89", + "\xee\x91\xaf"=>"\xf0\x9f\x8e\x8a", + "\xee\xac\xbd"=>"\xf0\x9f\x8e\x8b", + "\xee\x97\x99"=>"\xf0\x9f\x8e\x8c", + "\xee\xab\xa3"=>"\xf0\x9f\x8e\x8d", + "\xee\xab\xa4"=>"\xf0\x9f\x8e\x8e", + "\xee\xab\xa7"=>"\xf0\x9f\x8e\x8f", + "\xee\xab\xad"=>"\xf0\x9f\x8e\x90", + "\xee\xab\xaf"=>"\xf0\x9f\x8e\x91", + "\xee\xab\xa6"=>"\xf0\x9f\x8e\x92", + "\xee\xab\xa5"=>"\xf0\x9f\x8e\x93", + "\xee\x91\xad"=>"\xf0\x9f\x8e\xa1", + "\xee\xab\xa2"=>"\xf0\x9f\x8e\xa2", + "\xee\xad\x82"=>"\xf0\x9f\x8e\xa3", + "\xee\x94\x83"=>"\xf0\x9f\x8e\xa4", + "\xee\x94\x97"=>"\xf0\x9f\x8e\xa6", + "\xee\x94\x88"=>"\xf0\x9f\x8e\xa7", + "\xee\x96\x9c"=>"\xf0\x9f\x8e\xa8", + "\xee\xab\xb5"=>"\xf0\x9f\x8e\xa9", + "\xee\x96\x9e"=>"\xf0\x9f\x8e\xaa", + "\xee\x92\x9e"=>"\xf0\x9f\x8e\xab", + "\xee\x92\xbe"=>"\xf0\x9f\x8e\xac", + "\xee\x96\x9d"=>"\xf0\x9f\x8e\xad", + "\xee\x93\x86"=>"\xf0\x9f\x8e\xae", + "\xee\x93\x85"=>"\xf0\x9f\x8e\xaf", + "\xee\x91\xae"=>"\xf0\x9f\x8e\xb0", + "\xee\xab\x9d"=>"\xf0\x9f\x8e\xb1", + "\xee\x93\x88"=>"\xf0\x9f\x8e\xb2", + "\xee\xad\x83"=>"\xf0\x9f\x8e\xb3", + "\xee\xad\xae"=>"\xf0\x9f\x8e\xb4", + "\xee\x96\xbe"=>"\xf0\x9f\x8e\xb5", + "\xee\x94\x85"=>"\xf0\x9f\x8e\xb6", + "\xee\x94\x86"=>"\xf0\x9f\x8e\xb8", + "\xee\xad\x80"=>"\xf0\x9f\x8e\xb9", + "\xee\xab\x9c"=>"\xf0\x9f\x8e\xba", + "\xee\x94\x87"=>"\xf0\x9f\x8e\xbb", + "\xee\xab\x8c"=>"\xf0\x9f\x8e\xbc", + "\xee\x92\xb7"=>"\xf0\x9f\x8e\xbe", + "\xee\xaa\xac"=>"\xf0\x9f\x8e\xbf", + "\xee\x96\x9a"=>"\xf0\x9f\x8f\x80", + "\xee\x92\xb9"=>"\xf0\x9f\x8f\x81", + "\xee\x92\xb8"=>"\xf0\x9f\x8f\x82", + "\xee\x91\xab"=>"\xf0\x9f\x8f\x83", + "\xee\xad\x81"=>"\xf0\x9f\x8f\x84", + "\xee\x97\x93"=>"\xf0\x9f\x8f\x86", + "\xee\x92\xbb"=>"\xf0\x9f\x8f\x88", + "\xee\xab\x9e"=>"\xf0\x9f\x8f\x8a", + "\xee\x92\xab"=>"\xf0\x9f\x8f\xa0", + "\xee\xac\x89"=>"\xf0\x9f\x8f\xa1", + "\xee\x92\xad"=>"\xf0\x9f\x8f\xa2", + "\xee\x97\x9e"=>"\xf0\x9f\x8f\xa3", + "\xee\x97\x9f"=>"\xf0\x9f\x8f\xa5", + "\xee\x92\xaa"=>"\xf0\x9f\x8f\xa6", + "\xee\x92\xa3"=>"\xf0\x9f\x8f\xa7", + "\xee\xaa\x81"=>"\xf0\x9f\x8f\xa8", + "\xee\xab\xb3"=>"\xf0\x9f\x8f\xa9", + "\xee\x92\xa4"=>"\xf0\x9f\x8f\xaa", + "\xee\xaa\x80"=>"\xf0\x9f\x8f\xab", + "\xee\xab\xb6"=>"\xf0\x9f\x8f\xac", + "\xee\xab\xb9"=>"\xf0\x9f\x8f\xad", + "\xee\x92\xbd"=>"\xf0\x9f\x8f\xae", + "\xee\xab\xb7"=>"\xf0\x9f\x8f\xaf", + "\xee\xab\xb8"=>"\xf0\x9f\x8f\xb0", + "\xee\xad\xbe"=>"\xf0\x9f\x90\x8c", + "\xee\xac\xa2"=>"\xf0\x9f\x90\x8d", + "\xee\x93\x98"=>"\xf0\x9f\x90\xb4", + "\xee\x93\x99"=>"\xf0\x9f\x90\xb5", + "\xee\xac\xa3"=>"\xf0\x9f\x90\x94", + "\xee\xac\xa4"=>"\xf0\x9f\x90\x97", + "\xee\xac\x9f"=>"\xf0\x9f\x90\x98", + "\xee\x97\x87"=>"\xf0\x9f\x90\x99", + "\xee\xab\xac"=>"\xf0\x9f\x90\x9a", + "\xee\xac\x9e"=>"\xf0\x9f\x90\x9b", + "\xee\x93\x9d"=>"\xf0\x9f\x90\x9c", + "\xee\xad\x97"=>"\xf0\x9f\x90\x9d", + "\xee\xad\x98"=>"\xf0\x9f\x90\x9e", + "\xee\xac\x9d"=>"\xf0\x9f\x90\xa0", + "\xee\x93\x93"=>"\xf0\x9f\x90\xa1", + "\xee\x97\x94"=>"\xf0\x9f\x90\xa2", + "\xee\x97\x9b"=>"\xf0\x9f\x90\xa3", + "\xee\x93\xa0"=>"\xf0\x9f\x90\xa6", + "\xee\xad\xb6"=>"\xf0\x9f\x90\xa5", + "\xee\x93\x9c"=>"\xf0\x9f\x90\xa7", + "\xee\xac\xa0"=>"\xf0\x9f\x90\xa8", + "\xee\x93\x9f"=>"\xf0\x9f\x90\xa9", + "\xee\xac\xa5"=>"\xf0\x9f\x90\xab", + "\xee\xac\x9b"=>"\xf0\x9f\x90\xac", + "\xee\x97\x82"=>"\xf0\x9f\x90\xad", + "\xee\xac\xa1"=>"\xf0\x9f\x90\xae", + "\xee\x97\x80"=>"\xf0\x9f\x90\xaf", + "\xee\x93\x97"=>"\xf0\x9f\x90\xb0", + "\xee\x93\x9b"=>"\xf0\x9f\x90\xb1", + "\xee\xac\xbf"=>"\xf0\x9f\x90\xb2", + "\xee\x91\xb0"=>"\xf0\x9f\x90\xb3", + "\xee\x93\xa1"=>"\xf0\x9f\x90\xba", + "\xee\x93\x9e"=>"\xf0\x9f\x90\xb7", + "\xee\x93\x9a"=>"\xf0\x9f\x90\xb8", + "\xee\x97\x81"=>"\xf0\x9f\x90\xbb", + "\xee\xad\x86"=>"\xf0\x9f\x90\xbc", + "\xee\xad\x88"=>"\xf0\x9f\x90\xbd", + "\xee\x93\xae"=>"\xf0\x9f\x90\xbe", + "\xee\x96\xa4"=>"\xf0\x9f\x91\x80", + "\xee\x96\xa5"=>"\xf0\x9f\x91\x82", + "\xee\xab\x90"=>"\xf0\x9f\x91\x83", + "\xee\xab\x91"=>"\xf0\x9f\x91\x84", + "\xee\xad\x87"=>"\xf0\x9f\x91\x85", + "\xee\xaa\x8d"=>"\xf0\x9f\x91\x86", + "\xee\xaa\x8e"=>"\xf0\x9f\x91\x87", + "\xee\x93\xbf"=>"\xf0\x9f\x91\x88", + "\xee\x94\x80"=>"\xf0\x9f\x91\x89", + "\xee\x93\xb3"=>"\xf0\x9f\x91\x8a", + "\xee\xab\x96"=>"\xf0\x9f\x91\x90", + "\xee\xab\x94"=>"\xf0\x9f\x91\x8c", + "\xee\x93\xb9"=>"\xf0\x9f\x91\x8d", + "\xee\xab\x95"=>"\xf0\x9f\x91\x8e", + "\xee\xab\x93"=>"\xf0\x9f\x91\x8f", + "\xee\x97\x89"=>"\xf0\x9f\x94\xb1", + "\xee\xaa\x9e"=>"\xf0\x9f\x91\x92", + "\xee\x93\xbe"=>"\xf0\x9f\x91\x93", + "\xee\xaa\x93"=>"\xf0\x9f\x91\x94", + "\xee\x96\xb6"=>"\xf0\x9f\x91\x95", + "\xee\xad\xb7"=>"\xf0\x9f\x91\x96", + "\xee\xad\xab"=>"\xf0\x9f\x91\x97", + "\xee\xaa\xa3"=>"\xf0\x9f\x91\x98", + "\xee\xaa\xa4"=>"\xf0\x9f\x91\x99", + "\xee\x94\x8d"=>"\xf0\x9f\x91\x9a", + "\xee\x94\x84"=>"\xf0\x9f\x91\x9b", + "\xee\x92\x9c"=>"\xf0\x9f\x91\x9c", + "\xee\x96\xb7"=>"\xf0\x9f\x91\x9e", + "\xee\xac\xab"=>"\xf0\x9f\x91\x9f", + "\xee\x94\x9a"=>"\xf0\x9f\x91\xa1", + "\xee\xaa\x9f"=>"\xf0\x9f\x91\xa2", + "\xee\xac\xaa"=>"\xf0\x9f\x91\xa3", + "\xee\x93\xbc"=>"\xf0\x9f\x91\xa8", + "\xee\x93\xba"=>"\xf0\x9f\x91\xa9", + "\xee\x94\x81"=>"\xf0\x9f\x91\xaa", + "\xee\x97\x9d"=>"\xf0\x9f\x91\xae", + "\xee\xab\x9b"=>"\xf0\x9f\x91\xaf", + "\xee\xab\xa9"=>"\xf0\x9f\x91\xb0", + "\xee\xac\x93"=>"\xf0\x9f\x91\xb1", + "\xee\xac\x94"=>"\xf0\x9f\x91\xb2", + "\xee\xac\x95"=>"\xf0\x9f\x91\xb3", + "\xee\xac\x96"=>"\xf0\x9f\x91\xb4", + "\xee\xac\x97"=>"\xf0\x9f\x91\xb5", + "\xee\xac\x98"=>"\xf0\x9f\x9a\xbc", + "\xee\xac\x99"=>"\xf0\x9f\x91\xb7", + "\xee\xac\x9a"=>"\xf0\x9f\x91\xb8", + "\xee\xad\x84"=>"\xf0\x9f\x91\xb9", + "\xee\xad\x85"=>"\xf0\x9f\x91\xba", + "\xee\x93\x8b"=>"\xf0\x9f\x91\xbb", + "\xee\x96\xbf"=>"\xf0\x9f\x91\xbc", + "\xee\x94\x8e"=>"\xf0\x9f\x91\xbd", + "\xee\x93\xac"=>"\xf0\x9f\x91\xbe", + "\xee\x93\xaf"=>"\xf0\x9f\x91\xbf", + "\xee\x93\xb8"=>"\xf0\x9f\x92\x80", + "\xee\xac\x9c"=>"\xf0\x9f\x92\x83", + "\xee\x94\x89"=>"\xf0\x9f\x92\x84", + "\xee\xaa\xa0"=>"\xf0\x9f\x92\x85", + "\xee\x94\x8b"=>"\xf0\x9f\x92\x86", + "\xee\xaa\xa1"=>"\xf0\x9f\x92\x87", + "\xee\xaa\xa2"=>"\xf0\x9f\x92\x88", + "\xee\x94\x90"=>"\xf0\x9f\x92\x89", + "\xee\xaa\x9a"=>"\xf0\x9f\x92\x8a", + "\xee\x93\xab"=>"\xf0\x9f\x92\x8b", + "\xee\xad\xb8"=>"\xf0\x9f\x92\x8c", + "\xee\x94\x94"=>"\xf0\x9f\x92\x8e", + "\xee\x97\x8a"=>"\xf0\x9f\x92\x8f", + "\xee\xaa\x95"=>"\xf0\x9f\x92\x90", + "\xee\xab\x9a"=>"\xf0\x9f\x92\x91", + "\xee\xad\xb5"=>"\xf0\x9f\x92\x97", + "\xee\x91\xb7"=>"\xf0\x9f\x92\x94", + "\xee\x91\xb8"=>"\xf0\x9f\x92\x95", + "\xee\xaa\xa6"=>"\xf0\x9f\x92\x96", + "\xee\x93\xaa"=>"\xf0\x9f\x92\x98", + "\xee\xaa\xa7"=>"\xf0\x9f\x92\x99", + "\xee\xaa\xa8"=>"\xf0\x9f\x92\x9a", + "\xee\xaa\xa9"=>"\xf0\x9f\x92\x9b", + "\xee\xaa\xaa"=>"\xf0\x9f\x92\x9c", + "\xee\xad\x94"=>"\xf0\x9f\x92\x9d", + "\xee\x96\xaf"=>"\xf0\x9f\x92\x9e", + "\xee\x91\xb6"=>"\xf0\x9f\x92\xa1", + "\xee\x93\xa5"=>"\xf0\x9f\x92\xa2", + "\xee\x91\xba"=>"\xf0\x9f\x92\xa3", + "\xee\x91\xb5"=>"\xf0\x9f\x92\xa4", + "\xee\x96\xb0"=>"\xf0\x9f\x92\xa5", + "\xee\x96\xb1"=>"\xf0\x9f\x92\xa6", + "\xee\x93\xa6"=>"\xf0\x9f\x92\xa7", + "\xee\x93\xb4"=>"\xf0\x9f\x92\xa8", + "\xee\x93\xb5"=>"\xf0\x9f\x92\xa9", + "\xee\x93\xa9"=>"\xf0\x9f\x92\xaa", + "\xee\xad\x9c"=>"\xf0\x9f\x92\xab", + "\xee\x93\xbd"=>"\xf0\x9f\x92\xac", + "\xee\x93\xb0"=>"\xf0\x9f\x92\xae", + "\xee\x93\xb2"=>"\xf0\x9f\x92\xaf", + "\xee\x93\x87"=>"\xf0\x9f\x92\xb0", + "\xee\x95\xb9"=>"\xf0\x9f\x92\xb2", + "\xee\x95\xbc"=>"\xf0\x9f\x92\xb3", + "\xee\x95\xbd"=>"\xf0\x9f\x92\xb4", + "\xee\x96\x85"=>"\xf0\x9f\x92\xb5", + "\xee\xad\x9b"=>"\xf0\x9f\x92\xb8", + "\xee\x97\x9c"=>"\xf0\x9f\x92\xb9", + "\xee\x96\xb8"=>"\xf0\x9f\x92\xbb", + "\xee\x97\x8e"=>"\xf0\x9f\x92\xbc", + "\xee\x96\x82"=>"\xf0\x9f\x92\xbd", + "\xee\x95\xa2"=>"\xf0\x9f\x92\xbe", + "\xee\x94\x8c"=>"\xf0\x9f\x93\x80", + "\xee\x96\x8f"=>"\xf0\x9f\x93\x81", + "\xee\x96\x90"=>"\xf0\x9f\x93\x82", + "\xee\x95\xa1"=>"\xf0\x9f\x93\x83", + "\xee\x95\xa9"=>"\xf0\x9f\x93\x84", + "\xee\x95\xa3"=>"\xf0\x9f\x93\x85", + "\xee\x95\xaa"=>"\xf0\x9f\x93\x86", + "\xee\x95\xac"=>"\xf0\x9f\x93\x87", + "\xee\x95\xb5"=>"\xf0\x9f\x93\x88", + "\xee\x95\xb6"=>"\xf0\x9f\x93\x89", + "\xee\x95\xb4"=>"\xf0\x9f\x93\x8a", + "\xee\x95\xa4"=>"\xf0\x9f\x93\x8b", + "\xee\x95\xad"=>"\xf0\x9f\x93\x8c", + "\xee\x95\xa0"=>"\xf0\x9f\x93\x8d", + "\xee\x92\xa0"=>"\xf0\x9f\x93\x8e", + "\xee\x95\xb0"=>"\xf0\x9f\x93\x8f", + "\xee\x92\xa2"=>"\xf0\x9f\x93\x90", + "\xee\xac\x8b"=>"\xf0\x9f\x93\x91", + "\xee\x95\xae"=>"\xf0\x9f\x93\x92", + "\xee\x95\xab"=>"\xf0\x9f\x93\x93", + "\xee\x92\x9d"=>"\xf0\x9f\x93\x94", + "\xee\x95\xa8"=>"\xf0\x9f\x93\x95", + "\xee\x92\x9f"=>"\xf0\x9f\x93\x96", + "\xee\x95\xa5"=>"\xf0\x9f\x93\x97", + "\xee\x95\xa6"=>"\xf0\x9f\x93\x98", + "\xee\x95\xa7"=>"\xf0\x9f\x93\x99", + "\xee\x95\xaf"=>"\xf0\x9f\x93\x9a", + "\xee\x94\x9d"=>"\xf0\x9f\x93\x9b", + "\xee\x95\x9f"=>"\xf0\x9f\x93\x9c", + "\xee\xaa\x92"=>"\xf0\x9f\x93\x9d", + "\xee\x94\x9e"=>"\xf0\x9f\x93\x9e", + "\xee\x96\x9b"=>"\xf0\x9f\x93\x9f", + "\xee\x94\xa0"=>"\xf0\x9f\x93\xa0", + "\xee\x92\xa8"=>"\xf0\x9f\x93\xa1", + "\xee\x94\x91"=>"\xf0\x9f\x94\x8a", + "\xee\x96\x92"=>"\xf0\x9f\x93\xa4", + "\xee\x96\x93"=>"\xf0\x9f\x93\xa5", + "\xee\x94\x9f"=>"\xf0\x9f\x93\xa6", + "\xee\xad\xb1"=>"\xf0\x9f\x93\xa7", + "\xee\x96\x91"=>"\xf0\x9f\x93\xa8", + "\xee\xad\xa2"=>"\xf0\x9f\x93\xa9", + "\xee\x94\x9b"=>"\xf0\x9f\x93\xae", + "\xee\xac\x8a"=>"\xf0\x9f\x93\xab", + "\xee\x96\x8b"=>"\xf0\x9f\x93\xb0", + "\xee\x96\x88"=>"\xf0\x9f\x93\xb1", + "\xee\xac\x88"=>"\xf0\x9f\x93\xb2", + "\xee\xaa\x90"=>"\xf0\x9f\x93\xb3", + "\xee\xaa\x91"=>"\xf0\x9f\x93\xb4", + "\xee\xaa\x84"=>"\xf0\x9f\x93\xb6", + "\xee\x94\x95"=>"\xf0\x9f\x93\xb7", + "\xee\x95\xbe"=>"\xf0\x9f\x93\xb9", + "\xee\x94\x82"=>"\xf0\x9f\x93\xba", + "\xee\x96\xb9"=>"\xf0\x9f\x93\xbb", + "\xee\x96\x80"=>"\xf0\x9f\x93\xbc", + "\xee\xac\x8d"=>"\xf0\x9f\x94\x83", + "\xee\x96\x84"=>"\xf0\x9f\x94\x8b", + "\xee\x96\x89"=>"\xf0\x9f\x94\x8c", + "\xee\x94\x98"=>"\xf0\x9f\x94\x8d", + "\xee\xac\x85"=>"\xf0\x9f\x94\x8e", + "\xee\xac\x8c"=>"\xf0\x9f\x94\x8f", + "\xee\xab\xbc"=>"\xf0\x9f\x94\x90", + "\xee\x94\x99"=>"\xf0\x9f\x94\x91", + "\xee\x94\x9c"=>"\xf0\x9f\x94\x93", + "\xee\x94\x92"=>"\xf0\x9f\x94\x94", + "\xee\xac\x87"=>"\xf0\x9f\x94\x96", + "\xee\x96\x8a"=>"\xf0\x9f\x94\x97", + "\xee\xac\x84"=>"\xf0\x9f\x94\x98", + "\xee\xac\x86"=>"\xf0\x9f\x94\x99", + "\xee\xaa\x83"=>"\xf0\x9f\x94\x9e", + "\xee\x94\xab"=>"\xf0\x9f\x94\x9f", + "\xee\xab\xbd"=>"\xf0\x9f\x94\xa0", + "\xee\xab\xbe"=>"\xf0\x9f\x94\xa1", + "\xee\xab\xbf"=>"\xf0\x9f\x94\xa2", + "\xee\xac\x80"=>"\xf0\x9f\x94\xa3", + "\xee\xad\x95"=>"\xf0\x9f\x94\xa4", + "\xee\x91\xbb"=>"\xf0\x9f\x94\xa5", + "\xee\x96\x83"=>"\xf0\x9f\x94\xa6", + "\xee\x96\x87"=>"\xf0\x9f\x94\xa7", + "\xee\x97\x8b"=>"\xf0\x9f\x94\xa8", + "\xee\x96\x81"=>"\xf0\x9f\x94\xa9", + "\xee\x95\xbf"=>"\xf0\x9f\x94\xaa", + "\xee\x94\x8a"=>"\xf0\x9f\x94\xab", + "\xee\xaa\x8f"=>"\xf0\x9f\x94\xaf", + "\xee\x92\x80"=>"\xf0\x9f\x94\xb0", + "\xee\x95\x8b"=>"\xf0\x9f\x94\xb5", + "\xee\x95\x8a"=>"\xf0\x9f\x94\xb4", + "\xee\x95\x86"=>"\xf0\x9f\x94\xb6", + "\xee\x95\x87"=>"\xf0\x9f\x94\xb7", + "\xee\x94\xb6"=>"\xf0\x9f\x94\xb8", + "\xee\x94\xb7"=>"\xf0\x9f\x94\xb9", + "\xee\x95\x9a"=>"\xf0\x9f\x94\xba", + "\xee\x95\x9b"=>"\xf0\x9f\x94\xbb", + "\xee\x95\x83"=>"\xf0\x9f\x94\xbc", + "\xee\x95\x82"=>"\xf0\x9f\x94\xbd", + "\xee\x96\xbd"=>"\xf0\x9f\x97\xbb", + "\xee\x93\x80"=>"\xf0\x9f\x97\xbc", + "\xee\x95\xb2"=>"\xf0\x9f\x97\xbe", + "\xee\xad\xac"=>"\xf0\x9f\x97\xbf", + "\xee\xae\x80"=>"\xf0\x9f\x98\x81", + "\xee\xad\xa4"=>"\xf0\x9f\x98\x82", + "\xee\x91\xb1"=>"\xf0\x9f\x98\x84", + "\xee\x91\xb1\xee\x96\xb1"=>"\xf0\x9f\x98\x85", + "\xee\xab\x85"=>"\xf0\x9f\x98\x8c", + "\xee\x97\x83"=>"\xf0\x9f\x98\x89", + "\xee\xab\x8d"=>"\xf0\x9f\x98\x8b", + "\xee\x97\x84"=>"\xf0\x9f\x98\x8d", + "\xee\xaa\xbf"=>"\xf0\x9f\x98\x8f", + "\xee\xab\x89"=>"\xf0\x9f\x98\x92", + "\xee\x97\x86"=>"\xf0\x9f\x98\xa5", + "\xee\xab\x80"=>"\xf0\x9f\x98\x9e", + "\xee\xab\x83"=>"\xf0\x9f\x98\x96", + "\xee\xab\x8f"=>"\xf0\x9f\x98\x98", + "\xee\xab\x8e"=>"\xf0\x9f\x98\x9a", + "\xee\x93\xa7"=>"\xf0\x9f\x98\x9d", + "\xee\x91\xb2"=>"\xf0\x9f\x98\xa0", + "\xee\xad\x9d"=>"\xf0\x9f\x98\xa1", + "\xee\xad\xa9"=>"\xf0\x9f\x98\xa2", + "\xee\xab\x82"=>"\xf0\x9f\x98\xa3", + "\xee\xab\x81"=>"\xf0\x9f\x98\xa4", + "\xee\xab\x86"=>"\xf0\x9f\x98\xa8", + "\xee\xad\xa7"=>"\xf0\x9f\x98\xa9", + "\xee\xab\x84"=>"\xf0\x9f\x98\xaa", + "\xee\x91\xb4"=>"\xf0\x9f\x98\xab", + "\xee\x91\xb3"=>"\xf0\x9f\x98\xad", + "\xee\xab\x8b"=>"\xf0\x9f\x98\xb0", + "\xee\x97\x85"=>"\xf0\x9f\x98\xb1", + "\xee\xab\x8a"=>"\xf0\x9f\x98\xb2", + "\xee\xab\x88"=>"\xf0\x9f\x98\xb3", + "\xee\x96\xae"=>"\xf0\x9f\x98\xb5", + "\xee\xab\x87"=>"\xf0\x9f\x98\xb7", + "\xee\xad\xbf"=>"\xf0\x9f\x98\xb8", + "\xee\xad\xa3"=>"\xf0\x9f\x98\xb9", + "\xee\xad\xa1"=>"\xf0\x9f\x98\xba", + "\xee\xad\xa5"=>"\xf0\x9f\x98\xbb", + "\xee\xad\xaa"=>"\xf0\x9f\x98\xbc", + "\xee\xad\xa0"=>"\xf0\x9f\x98\xbd", + "\xee\xad\x9e"=>"\xf0\x9f\x98\xbe", + "\xee\xad\xa8"=>"\xf0\x9f\x98\xbf", + "\xee\xad\xa6"=>"\xf0\x9f\x99\x80", + "\xee\xab\x97"=>"\xf0\x9f\x99\x85", + "\xee\xab\x98"=>"\xf0\x9f\x99\x86", + "\xee\xab\x99"=>"\xf0\x9f\x99\x87", + "\xee\xad\x90"=>"\xf0\x9f\x99\x88", + "\xee\xad\x92"=>"\xf0\x9f\x99\x89", + "\xee\xad\x91"=>"\xf0\x9f\x99\x8a", + "\xee\xae\x85"=>"\xf0\x9f\x99\x8b", + "\xee\xae\x86"=>"\xf0\x9f\x99\x8c", + "\xee\xae\x87"=>"\xf0\x9f\x99\x8d", + "\xee\xae\x88"=>"\xf0\x9f\x99\x8e", + "\xee\xab\x92"=>"\xf0\x9f\x99\x8f", + "\xee\x97\x88"=>"\xf0\x9f\x9a\x80", + "\xee\x92\xb5"=>"\xf0\x9f\x9a\x83", + "\xee\x92\xb0"=>"\xf0\x9f\x9a\x85", + "\xee\xad\xad"=>"\xf0\x9f\x9a\x89", + "\xee\x92\xaf"=>"\xf0\x9f\x9a\x8c", + "\xee\x92\xa7"=>"\xf0\x9f\x9a\x8f", + "\xee\xab\xa0"=>"\xf0\x9f\x9a\x91", + "\xee\xab\x9f"=>"\xf0\x9f\x9a\x92", + "\xee\xab\xa1"=>"\xf0\x9f\x9a\x93", + "\xee\x92\xb1"=>"\xf0\x9f\x9a\x99", + "\xee\x92\xb2"=>"\xf0\x9f\x9a\x9a", + "\xee\xaa\x82"=>"\xf0\x9f\x9a\xa2", + "\xee\x91\xaa"=>"\xf0\x9f\x9a\xa5", + "\xee\x97\x97"=>"\xf0\x9f\x9a\xa7", + "\xee\xad\xb3"=>"\xf0\x9f\x9a\xa8", + "\xee\xac\xac"=>"\xf0\x9f\x9a\xa9", + "\xee\x95\x81"=>"\xf0\x9f\x9a\xab", + "\xee\x91\xbd"=>"\xf0\x9f\x9a\xac", + "\xee\x91\xbe"=>"\xf0\x9f\x9a\xad", + "\xee\x92\xae"=>"\xf0\x9f\x9a\xb2", + "\xee\xad\xb2"=>"\xf0\x9f\x9a\xb6", + "\xee\x92\xa5"=>"\xf0\x9f\x9a\xbe", + "\xee\x97\x98"=>"\xf0\x9f\x9b\x80", + "\xee\xae\x84"=>"#\xe2\x83\xa3", + "\xee\x96\xac"=>"0\xe2\x83\xa3", + "\xee\x94\xa2"=>"1\xe2\x83\xa3", + "\xee\x94\xa3"=>"2\xe2\x83\xa3", + "\xee\x94\xa4"=>"3\xe2\x83\xa3", + "\xee\x94\xa5"=>"4\xe2\x83\xa3", + "\xee\x94\xa6"=>"5\xe2\x83\xa3", + "\xee\x94\xa7"=>"6\xe2\x83\xa3", + "\xee\x94\xa8"=>"7\xe2\x83\xa3", + "\xee\x94\xa9"=>"8\xe2\x83\xa3", + "\xee\x94\xaa"=>"9\xe2\x83\xa3", + "\xee\xac\x91"=>"\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3", + "\xee\xac\x8e"=>"\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa", + "\xee\x97\x95"=>"\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8", + "\xee\xab\xba"=>"\xf0\x9f\x87\xab\xf0\x9f\x87\xb7", + "\xee\xac\x90"=>"\xf0\x9f\x87\xac\xf0\x9f\x87\xa7", + "\xee\xac\x8f"=>"\xf0\x9f\x87\xae\xf0\x9f\x87\xb9", + "\xee\x93\x8c"=>"\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5", + "\xee\xac\x92"=>"\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7", + "\xee\x97\x96"=>"\xf0\x9f\x87\xb7\xf0\x9f\x87\xba", + "\xee\x95\xb3"=>"\xf0\x9f\x87\xba\xf0\x9f\x87\xb8", + ), + 'softbank_to_unified' => array( + "\xee\x89\x8e"=>"\xc2\xa9", + "\xee\x89\x8f"=>"\xc2\xae", + "\xee\x94\xb7"=>"\xe2\x84\xa2", + "\xee\x88\xb7"=>"\xe2\x86\x96", + "\xee\x88\xb6"=>"\xe2\xa4\xb4", + "\xee\x88\xb8"=>"\xe2\xa4\xb5", + "\xee\x88\xb9"=>"\xe2\x86\x99", + "\xee\x88\xbc"=>"\xe2\x8f\xa9", + "\xee\x88\xbd"=>"\xe2\x8f\xaa", + "\xee\x80\xad"=>"\xf0\x9f\x95\x99", + "\xee\x90\xb4"=>"\xf0\x9f\x9a\x87", + "\xee\x88\x9a"=>"\xf0\x9f\x94\xb5", + "\xee\x88\x9b"=>"\xf0\x9f\x94\xb9", + "\xee\x88\xba"=>"\xe2\x96\xb6", + "\xee\x88\xbb"=>"\xe2\x97\x80", + "\xee\x81\x8a"=>"\xe2\x98\x80", + "\xee\x81\x89"=>"\xe2\x98\x81", + "\xee\x80\x89"=>"\xf0\x9f\x93\x9e", + "\xee\x81\x8b"=>"\xe2\x98\x94", + "\xee\x81\x85"=>"\xe2\x98\x95", + "\xee\x80\x8f"=>"\xe2\x98\x9d", + "\xee\x90\x94"=>"\xe2\x98\xba", + "\xee\x88\xbf"=>"\xe2\x99\x88", + "\xee\x89\x80"=>"\xe2\x99\x89", + "\xee\x89\x81"=>"\xe2\x99\x8a", + "\xee\x89\x82"=>"\xe2\x99\x8b", + "\xee\x89\x83"=>"\xe2\x99\x8c", + "\xee\x89\x84"=>"\xe2\x99\x8d", + "\xee\x89\x85"=>"\xe2\x99\x8e", + "\xee\x89\x86"=>"\xe2\x99\x8f", + "\xee\x89\x87"=>"\xe2\x99\x90", + "\xee\x89\x88"=>"\xe2\x99\x91", + "\xee\x89\x89"=>"\xe2\x99\x92", + "\xee\x89\x8a"=>"\xe2\x99\x93", + "\xee\x88\x8e"=>"\xe2\x99\xa0", + "\xee\x88\x8f"=>"\xe2\x99\xa3", + "\xee\x88\x8c"=>"\xe2\x99\xa5", + "\xee\x88\x8d"=>"\xe2\x99\xa6", + "\xee\x84\xa3"=>"\xe2\x99\xa8", + "\xee\x88\x8a"=>"\xe2\x99\xbf", + "\xee\x88\x82"=>"\xf0\x9f\x9a\xa2", + "\xee\x89\x92"=>"\xe2\x9a\xa0", + "\xee\x84\xbd"=>"\xe2\x9a\xa1", + "\xee\x88\x99"=>"\xf0\x9f\x94\xb4", + "\xee\x80\x98"=>"\xe2\x9a\xbd", + "\xee\x80\x96"=>"\xe2\x9a\xbe", + "\xee\x81\x88"=>"\xe2\x9b\x84", + "\xee\x81\x8a\xee\x81\x89"=>"\xe2\x9b\x85", + "\xee\x89\x8b"=>"\xe2\x9b\x8e", + "\xee\x84\xb7"=>"\xf0\x9f\x9a\xa7", + "\xee\x80\xb7"=>"\xe2\x9b\xaa", + "\xee\x84\xa1"=>"\xe2\x9b\xb2", + "\xee\x80\x94"=>"\xe2\x9b\xb3", + "\xee\x80\x9c"=>"\xe2\x9b\xb5", + "\xee\x84\xa2"=>"\xe2\x9b\xba", + "\xee\x80\xba"=>"\xe2\x9b\xbd", + "\xee\x8c\x93"=>"\xe2\x9c\x82", + "\xee\x80\x9d"=>"\xe2\x9c\x88", + "\xee\x84\x83"=>"\xf0\x9f\x93\xa9", + "\xee\x80\x90"=>"\xe2\x9c\x8a", + "\xee\x80\x92"=>"\xf0\x9f\x99\x8b", + "\xee\x80\x91"=>"\xe2\x9c\x8c", + "\xee\x8c\x81"=>"\xf0\x9f\x93\x9d", + "\xee\x8c\xb3"=>"\xe2\x9d\x8e", + "\xee\x8c\xae"=>"\xe2\x9d\x87", + "\xee\x88\x86"=>"\xe2\x9c\xb3", + "\xee\x88\x85"=>"\xe2\x9c\xb4", + "\xee\x80\xa0"=>"\xe2\x9d\x93", + "\xee\x8c\xb6"=>"\xe2\x9d\x94", + "\xee\x8c\xb7"=>"\xe2\x9d\x95", + "\xee\x80\xa1"=>"\xe2\x9d\x97", + "\xee\x80\xa2"=>"\xe2\x9d\xa4", + "\xee\x88\xb4"=>"\xe2\x9e\xa1", + "\xee\x88\x91"=>"\xe2\x9e\xbf", + "\xee\x88\xb5"=>"\xf0\x9f\x94\x99", + "\xee\x88\xb2"=>"\xe2\xac\x86", + "\xee\x88\xb3"=>"\xe2\xac\x87", + "\xee\x8c\xaf"=>"\xe2\xad\x90", + "\xee\x8c\xb2"=>"\xe2\xad\x95", + "\xee\x84\xac"=>"\xe3\x80\xbd", + "\xee\x8c\x8d"=>"\xe3\x8a\x97", + "\xee\x8c\x95"=>"\xe3\x8a\x99", + "\xee\x84\xad"=>"\xf0\x9f\x80\x84", + "\xee\x94\xb2"=>"\xf0\x9f\x85\xb0", + "\xee\x94\xb3"=>"\xf0\x9f\x85\xb1", + "\xee\x94\xb5"=>"\xf0\x9f\x85\xbe", + "\xee\x85\x8f"=>"\xf0\x9f\x85\xbf", + "\xee\x94\xb4"=>"\xf0\x9f\x86\x8e", + "\xee\x88\x94"=>"\xf0\x9f\x86\x92", + "\xee\x88\xa9"=>"\xf0\x9f\x86\x94", + "\xee\x88\x92"=>"\xf0\x9f\x86\x95", + "\xee\x89\x8d"=>"\xf0\x9f\x86\x97", + "\xee\x88\x93"=>"\xf0\x9f\x86\x99", + "\xee\x84\xae"=>"\xf0\x9f\x86\x9a", + "\xee\x88\x83"=>"\xf0\x9f\x88\x81", + "\xee\x88\xa8"=>"\xf0\x9f\x88\x82", + "\xee\x88\x96"=>"\xf0\x9f\x88\x9a", + "\xee\x88\xac"=>"\xf0\x9f\x88\xaf", + "\xee\x88\xab"=>"\xf0\x9f\x88\xb3", + "\xee\x88\xaa"=>"\xf0\x9f\x88\xb5", + "\xee\x88\x95"=>"\xf0\x9f\x88\xb6", + "\xee\x88\x97"=>"\xf0\x9f\x88\xb7", + "\xee\x88\x98"=>"\xf0\x9f\x88\xb8", + "\xee\x88\xa7"=>"\xf0\x9f\x88\xb9", + "\xee\x88\xad"=>"\xf0\x9f\x88\xba", + "\xee\x88\xa6"=>"\xf0\x9f\x89\x90", + "\xee\x91\x83"=>"\xf0\x9f\x8c\x80", + "\xee\x90\xbc"=>"\xf0\x9f\x8c\x82", + "\xee\x91\x8b"=>"\xf0\x9f\x8c\x8c", + "\xee\x81\x8d"=>"\xf0\x9f\x8c\x84", + "\xee\x91\x89"=>"\xf0\x9f\x8c\x85", + "\xee\x85\x86"=>"\xf0\x9f\x8c\x86", + "\xee\x91\x8a"=>"\xf0\x9f\x8c\x87", + "\xee\x91\x8c"=>"\xf0\x9f\x8c\x88", + "\xee\x90\xbe"=>"\xf0\x9f\x8c\x8a", + "\xee\x81\x8c"=>"\xf0\x9f\x8c\x9b", + "\xee\x8c\xb5"=>"\xf0\x9f\x8c\x9f", + "\xee\x84\x90"=>"\xf0\x9f\x8d\x80", + "\xee\x8c\x87"=>"\xf0\x9f\x8c\xb4", + "\xee\x8c\x88"=>"\xf0\x9f\x8c\xb5", + "\xee\x8c\x84"=>"\xf0\x9f\x8c\xb7", + "\xee\x80\xb0"=>"\xf0\x9f\x8c\xb8", + "\xee\x80\xb2"=>"\xf0\x9f\x8c\xb9", + "\xee\x8c\x83"=>"\xf0\x9f\x8c\xba", + "\xee\x8c\x85"=>"\xf0\x9f\x8c\xbc", + "\xee\x91\x84"=>"\xf0\x9f\x8c\xbe", + "\xee\x84\x98"=>"\xf0\x9f\x8d\x81", + "\xee\x84\x99"=>"\xf0\x9f\x8d\x82", + "\xee\x91\x87"=>"\xf0\x9f\x8d\x83", + "\xee\x8d\x89"=>"\xf0\x9f\x8d\x85", + "\xee\x8d\x8a"=>"\xf0\x9f\x8d\x86", + "\xee\x8d\x88"=>"\xf0\x9f\x8d\x89", + "\xee\x8d\x86"=>"\xf0\x9f\x8d\x8a", + "\xee\x8d\x85"=>"\xf0\x9f\x8d\x8f", + "\xee\x8d\x87"=>"\xf0\x9f\x8d\x93", + "\xee\x84\xa0"=>"\xf0\x9f\x8d\x94", + "\xee\x8c\xbd"=>"\xf0\x9f\x8d\x98", + "\xee\x8d\x82"=>"\xf0\x9f\x8d\x99", + "\xee\x8c\xbe"=>"\xf0\x9f\x8d\x9a", + "\xee\x8d\x81"=>"\xf0\x9f\x8d\x9b", + "\xee\x8d\x80"=>"\xf0\x9f\x8d\x9c", + "\xee\x8c\xbf"=>"\xf0\x9f\x8d\x9d", + "\xee\x8c\xb9"=>"\xf0\x9f\x8d\x9e", + "\xee\x8c\xbb"=>"\xf0\x9f\x8d\x9f", + "\xee\x8c\xbc"=>"\xf0\x9f\x8d\xa1", + "\xee\x8d\x83"=>"\xf0\x9f\x8d\xa2", + "\xee\x8d\x84"=>"\xf0\x9f\x8d\xa3", + "\xee\x8c\xba"=>"\xf0\x9f\x8d\xa6", + "\xee\x90\xbf"=>"\xf0\x9f\x8d\xa7", + "\xee\x81\x86"=>"\xf0\x9f\x8d\xb0", + "\xee\x8d\x8c"=>"\xf0\x9f\x8d\xb1", + "\xee\x8d\x8d"=>"\xf0\x9f\x8d\xb2", + "\xee\x85\x87"=>"\xf0\x9f\x8d\xb3", + "\xee\x81\x83"=>"\xf0\x9f\x8d\xb4", + "\xee\x8c\xb8"=>"\xf0\x9f\x8d\xb5", + "\xee\x8c\x8b"=>"\xf0\x9f\x8f\xae", + "\xee\x81\x84"=>"\xf0\x9f\x8d\xb9", + "\xee\x81\x87"=>"\xf0\x9f\x8d\xba", + "\xee\x8c\x8c"=>"\xf0\x9f\x8d\xbb", + "\xee\x8c\x94"=>"\xf0\x9f\x8e\x80", + "\xee\x84\x92"=>"\xf0\x9f\x93\xa6", + "\xee\x8d\x8b"=>"\xf0\x9f\x8e\x82", + "\xee\x91\x85"=>"\xf0\x9f\x8e\x83", + "\xee\x80\xb3"=>"\xf0\x9f\x8e\x84", + "\xee\x91\x88"=>"\xf0\x9f\x8e\x85", + "\xee\x84\x97"=>"\xf0\x9f\x8e\x86", + "\xee\x91\x80"=>"\xf0\x9f\x8e\x87", + "\xee\x8c\x90"=>"\xf0\x9f\x8e\x88", + "\xee\x8c\x92"=>"\xf0\x9f\x8e\x89", + "\xee\x85\x83"=>"\xf0\x9f\x8e\x8c", + "\xee\x90\xb6"=>"\xf0\x9f\x8e\x8d", + "\xee\x90\xb8"=>"\xf0\x9f\x8e\x8e", + "\xee\x90\xbb"=>"\xf0\x9f\x8e\x8f", + "\xee\x91\x82"=>"\xf0\x9f\x8e\x90", + "\xee\x91\x86"=>"\xf0\x9f\x8e\x91", + "\xee\x90\xba"=>"\xf0\x9f\x8e\x92", + "\xee\x90\xb9"=>"\xf0\x9f\x8e\x93", + "\xee\x84\xa4"=>"\xf0\x9f\x8e\xa1", + "\xee\x90\xb3"=>"\xf0\x9f\x8e\xa2", + "\xee\x80\x99"=>"\xf0\x9f\x90\xa1", + "\xee\x80\xbc"=>"\xf0\x9f\x8e\xa4", + "\xee\x80\xbd"=>"\xf0\x9f\x93\xb9", + "\xee\x94\x87"=>"\xf0\x9f\x8e\xa6", + "\xee\x8c\x8a"=>"\xf0\x9f\x8e\xa7", + "\xee\x94\x82"=>"\xf0\x9f\x8e\xa8", + "\xee\x94\x83"=>"\xf0\x9f\x8e\xad", + "\xee\x84\xa5"=>"\xf0\x9f\x8e\xab", + "\xee\x8c\xa4"=>"\xf0\x9f\x8e\xac", + "\xee\x84\xb0"=>"\xf0\x9f\x8e\xaf", + "\xee\x84\xb3"=>"\xf0\x9f\x8e\xb0", + "\xee\x90\xac"=>"\xf0\x9f\x8e\xb1", + "\xee\x80\xbe"=>"\xf0\x9f\x8e\xb5", + "\xee\x8c\xa6"=>"\xf0\x9f\x8e\xbc", + "\xee\x81\x80"=>"\xf0\x9f\x8e\xb7", + "\xee\x81\x81"=>"\xf0\x9f\x8e\xb8", + "\xee\x81\x82"=>"\xf0\x9f\x8e\xba", + "\xee\x80\x95"=>"\xf0\x9f\x8e\xbe", + "\xee\x80\x93"=>"\xf0\x9f\x8e\xbf", + "\xee\x90\xaa"=>"\xf0\x9f\x8f\x80", + "\xee\x84\xb2"=>"\xf0\x9f\x8f\x81", + "\xee\x84\x95"=>"\xf0\x9f\x8f\x83", + "\xee\x80\x97"=>"\xf0\x9f\x8f\x84", + "\xee\x84\xb1"=>"\xf0\x9f\x8f\x86", + "\xee\x90\xab"=>"\xf0\x9f\x8f\x88", + "\xee\x90\xad"=>"\xf0\x9f\x8f\x8a", + "\xee\x80\xb6"=>"\xf0\x9f\x8f\xa1", + "\xee\x80\xb8"=>"\xf0\x9f\x8f\xa2", + "\xee\x85\x93"=>"\xf0\x9f\x8f\xa3", + "\xee\x85\x95"=>"\xf0\x9f\x8f\xa5", + "\xee\x85\x8d"=>"\xf0\x9f\x8f\xa6", + "\xee\x85\x94"=>"\xf0\x9f\x8f\xa7", + "\xee\x85\x98"=>"\xf0\x9f\x8f\xa8", + "\xee\x94\x81"=>"\xf0\x9f\x8f\xa9", + "\xee\x85\x96"=>"\xf0\x9f\x8f\xaa", + "\xee\x85\x97"=>"\xf0\x9f\x8f\xab", + "\xee\x94\x84"=>"\xf0\x9f\x8f\xac", + "\xee\x94\x88"=>"\xf0\x9f\x8f\xad", + "\xee\x94\x85"=>"\xf0\x9f\x8f\xaf", + "\xee\x94\x86"=>"\xf0\x9f\x8f\xb0", + "\xee\x94\xad"=>"\xf0\x9f\x90\x8d", + "\xee\x84\xb4"=>"\xf0\x9f\x90\x8e", + "\xee\x94\xa9"=>"\xf0\x9f\x90\x91", + "\xee\x94\xa8"=>"\xf0\x9f\x90\x92", + "\xee\x94\xae"=>"\xf0\x9f\x90\x94", + "\xee\x94\xaf"=>"\xf0\x9f\x90\x97", + "\xee\x94\xa6"=>"\xf0\x9f\x90\x98", + "\xee\x84\x8a"=>"\xf0\x9f\x90\x99", + "\xee\x91\x81"=>"\xf0\x9f\x90\x9a", + "\xee\x94\xa5"=>"\xf0\x9f\x90\x9b", + "\xee\x94\xa2"=>"\xf0\x9f\x90\xa0", + "\xee\x94\xa3"=>"\xf0\x9f\x90\xa5", + "\xee\x94\xa1"=>"\xf0\x9f\x90\xa6", + "\xee\x81\x95"=>"\xf0\x9f\x90\xa7", + "\xee\x94\xa7"=>"\xf0\x9f\x90\xa8", + "\xee\x81\x92"=>"\xf0\x9f\x90\xb6", + "\xee\x94\xb0"=>"\xf0\x9f\x90\xab", + "\xee\x94\xa0"=>"\xf0\x9f\x90\xac", + "\xee\x81\x93"=>"\xf0\x9f\x90\xad", + "\xee\x94\xab"=>"\xf0\x9f\x90\xae", + "\xee\x81\x90"=>"\xf0\x9f\x90\xaf", + "\xee\x94\xac"=>"\xf0\x9f\x90\xb0", + "\xee\x81\x8f"=>"\xf0\x9f\x90\xb1", + "\xee\x81\x94"=>"\xf0\x9f\x90\xb3", + "\xee\x80\x9a"=>"\xf0\x9f\x90\xb4", + "\xee\x84\x89"=>"\xf0\x9f\x90\xb5", + "\xee\x84\x8b"=>"\xf0\x9f\x90\xbd", + "\xee\x94\xb1"=>"\xf0\x9f\x90\xb8", + "\xee\x94\xa4"=>"\xf0\x9f\x90\xb9", + "\xee\x94\xaa"=>"\xf0\x9f\x90\xba", + "\xee\x81\x91"=>"\xf0\x9f\x90\xbb", + "\xee\x94\xb6"=>"\xf0\x9f\x91\xa3", + "\xee\x90\x99"=>"\xf0\x9f\x91\x80", + "\xee\x90\x9b"=>"\xf0\x9f\x91\x82", + "\xee\x90\x9a"=>"\xf0\x9f\x91\x83", + "\xee\x90\x9c"=>"\xf0\x9f\x91\x84", + "\xee\x90\x89"=>"\xf0\x9f\x98\x9d", + "\xee\x88\xae"=>"\xf0\x9f\x91\x86", + "\xee\x88\xaf"=>"\xf0\x9f\x91\x87", + "\xee\x88\xb0"=>"\xf0\x9f\x91\x88", + "\xee\x88\xb1"=>"\xf0\x9f\x91\x89", + "\xee\x80\x8d"=>"\xf0\x9f\x91\x8a", + "\xee\x90\x9e"=>"\xf0\x9f\x91\x8b", + "\xee\x90\xa0"=>"\xf0\x9f\x91\x8c", + "\xee\x80\x8e"=>"\xf0\x9f\x91\x8d", + "\xee\x90\xa1"=>"\xf0\x9f\x91\x8e", + "\xee\x90\x9f"=>"\xf0\x9f\x91\x8f", + "\xee\x90\xa2"=>"\xf0\x9f\x91\x90", + "\xee\x84\x8e"=>"\xf0\x9f\x91\x91", + "\xee\x8c\x98"=>"\xf0\x9f\x91\x92", + "\xee\x8c\x82"=>"\xf0\x9f\x91\x94", + "\xee\x80\x86"=>"\xf0\x9f\x91\x9a", + "\xee\x8c\x99"=>"\xf0\x9f\x91\x97", + "\xee\x8c\xa1"=>"\xf0\x9f\x91\x98", + "\xee\x8c\xa2"=>"\xf0\x9f\x91\x99", + "\xee\x8c\xa3"=>"\xf0\x9f\x91\x9c", + "\xee\x80\x87"=>"\xf0\x9f\x91\x9f", + "\xee\x84\xbe"=>"\xf0\x9f\x91\xa0", + "\xee\x8c\x9a"=>"\xf0\x9f\x91\xa1", + "\xee\x8c\x9b"=>"\xf0\x9f\x91\xa2", + "\xee\x80\x81"=>"\xf0\x9f\x91\xa6", + "\xee\x80\x82"=>"\xf0\x9f\x91\xa7", + "\xee\x80\x84"=>"\xf0\x9f\x91\xa8", + "\xee\x80\x85"=>"\xf0\x9f\x91\xa9", + "\xee\x90\xa8"=>"\xf0\x9f\x91\xab", + "\xee\x85\x92"=>"\xf0\x9f\x91\xae", + "\xee\x90\xa9"=>"\xf0\x9f\x91\xaf", + "\xee\x94\x95"=>"\xf0\x9f\x91\xb1", + "\xee\x94\x96"=>"\xf0\x9f\x91\xb2", + "\xee\x94\x97"=>"\xf0\x9f\x91\xb3", + "\xee\x94\x98"=>"\xf0\x9f\x91\xb4", + "\xee\x94\x99"=>"\xf0\x9f\x91\xb5", + "\xee\x94\x9a"=>"\xf0\x9f\x91\xb6", + "\xee\x94\x9b"=>"\xf0\x9f\x91\xb7", + "\xee\x94\x9c"=>"\xf0\x9f\x91\xb8", + "\xee\x84\x9b"=>"\xf0\x9f\x91\xbb", + "\xee\x81\x8e"=>"\xf0\x9f\x91\xbc", + "\xee\x84\x8c"=>"\xf0\x9f\x91\xbd", + "\xee\x84\xab"=>"\xf0\x9f\x91\xbe", + "\xee\x84\x9a"=>"\xf0\x9f\x91\xbf", + "\xee\x84\x9c"=>"\xf0\x9f\x92\x80", + "\xee\x89\x93"=>"\xf0\x9f\x92\x81", + "\xee\x94\x9e"=>"\xf0\x9f\x92\x82", + "\xee\x94\x9f"=>"\xf0\x9f\x92\x83", + "\xee\x8c\x9c"=>"\xf0\x9f\x92\x84", + "\xee\x8c\x9d"=>"\xf0\x9f\x92\x85", + "\xee\x8c\x9e"=>"\xf0\x9f\x92\x86", + "\xee\x8c\x9f"=>"\xf0\x9f\x92\x87", + "\xee\x8c\xa0"=>"\xf0\x9f\x92\x88", + "\xee\x84\xbb"=>"\xf0\x9f\x92\x89", + "\xee\x8c\x8f"=>"\xf0\x9f\x92\x8a", + "\xee\x80\x83"=>"\xf0\x9f\x92\x8b", + "\xee\x84\x83\xee\x8c\xa8"=>"\xf0\x9f\x92\x8c", + "\xee\x80\xb4"=>"\xf0\x9f\x92\x8d", + "\xee\x80\xb5"=>"\xf0\x9f\x92\x8e", + "\xee\x84\x91"=>"\xf0\x9f\x92\x8f", + "\xee\x8c\x86"=>"\xf0\x9f\x92\x90", + "\xee\x90\xa5"=>"\xf0\x9f\x92\x91", + "\xee\x90\xbd"=>"\xf0\x9f\x92\x92", + "\xee\x8c\xa7"=>"\xf0\x9f\x92\x9e", + "\xee\x80\xa3"=>"\xf0\x9f\x92\x94", + "\xee\x8c\xa8"=>"\xf0\x9f\x92\x97", + "\xee\x8c\xa9"=>"\xf0\x9f\x92\x98", + "\xee\x8c\xaa"=>"\xf0\x9f\x92\x99", + "\xee\x8c\xab"=>"\xf0\x9f\x92\x9a", + "\xee\x8c\xac"=>"\xf0\x9f\x92\x9b", + "\xee\x8c\xad"=>"\xf0\x9f\x92\x9c", + "\xee\x90\xb7"=>"\xf0\x9f\x92\x9d", + "\xee\x88\x84"=>"\xf0\x9f\x92\x9f", + "\xee\x84\x8f"=>"\xf0\x9f\x92\xa1", + "\xee\x8c\xb4"=>"\xf0\x9f\x92\xa2", + "\xee\x8c\x91"=>"\xf0\x9f\x92\xa3", + "\xee\x84\xbc"=>"\xf0\x9f\x92\xa4", + "\xee\x8c\xb1"=>"\xf0\x9f\x92\xa7", + "\xee\x8c\xb0"=>"\xf0\x9f\x92\xa8", + "\xee\x81\x9a"=>"\xf0\x9f\x92\xa9", + "\xee\x85\x8c"=>"\xf0\x9f\x92\xaa", + "\xee\x90\x87"=>"\xf0\x9f\x98\x96", + "\xee\x84\xaf"=>"\xf0\x9f\x92\xb5", + "\xee\x85\x89"=>"\xf0\x9f\x92\xb1", + "\xee\x85\x8a"=>"\xf0\x9f\x93\x8a", + "\xee\x84\x9f"=>"\xf0\x9f\x92\xba", + "\xee\x80\x8c"=>"\xf0\x9f\x92\xbb", + "\xee\x84\x9e"=>"\xf0\x9f\x92\xbc", + "\xee\x8c\x96"=>"\xf0\x9f\x92\xbe", + "\xee\x84\xa6"=>"\xf0\x9f\x92\xbf", + "\xee\x84\xa7"=>"\xf0\x9f\x93\x80", + "\xee\x85\x88"=>"\xf0\x9f\x93\x9a", + "\xee\x80\x8b"=>"\xf0\x9f\x93\xa0", + "\xee\x85\x8b"=>"\xf0\x9f\x93\xa1", + "\xee\x85\x82"=>"\xf0\x9f\x93\xa2", + "\xee\x8c\x97"=>"\xf0\x9f\x93\xa3", + "\xee\x84\x81"=>"\xf0\x9f\x93\xab", + "\xee\x84\x82"=>"\xf0\x9f\x93\xae", + "\xee\x80\x8a"=>"\xf0\x9f\x93\xb1", + "\xee\x84\x84"=>"\xf0\x9f\x93\xb2", + "\xee\x89\x90"=>"\xf0\x9f\x93\xb3", + "\xee\x89\x91"=>"\xf0\x9f\x93\xb4", + "\xee\x88\x8b"=>"\xf0\x9f\x93\xb6", + "\xee\x80\x88"=>"\xf0\x9f\x93\xb7", + "\xee\x84\xaa"=>"\xf0\x9f\x93\xba", + "\xee\x84\xa8"=>"\xf0\x9f\x93\xbb", + "\xee\x84\xa9"=>"\xf0\x9f\x93\xbc", + "\xee\x85\x81"=>"\xf0\x9f\x94\x8a", + "\xee\x84\x94"=>"\xf0\x9f\x94\x8e", + "\xee\x85\x84"=>"\xf0\x9f\x94\x92", + "\xee\x80\xbf"=>"\xf0\x9f\x94\x91", + "\xee\x85\x85"=>"\xf0\x9f\x94\x93", + "\xee\x8c\xa5"=>"\xf0\x9f\x94\x94", + "\xee\x89\x8c"=>"\xf0\x9f\x94\x9d", + "\xee\x88\x87"=>"\xf0\x9f\x94\x9e", + "\xee\x84\x9d"=>"\xf0\x9f\x94\xa5", + "\xee\x84\x96"=>"\xf0\x9f\x94\xa8", + "\xee\x84\x93"=>"\xf0\x9f\x94\xab", + "\xee\x88\xbe"=>"\xf0\x9f\x94\xaf", + "\xee\x88\x89"=>"\xf0\x9f\x94\xb0", + "\xee\x80\xb1"=>"\xf0\x9f\x94\xb1", + "\xee\x80\xa4"=>"\xf0\x9f\x95\x90", + "\xee\x80\xa5"=>"\xf0\x9f\x95\x91", + "\xee\x80\xa6"=>"\xf0\x9f\x95\x92", + "\xee\x80\xa7"=>"\xf0\x9f\x95\x93", + "\xee\x80\xa8"=>"\xf0\x9f\x95\x94", + "\xee\x80\xa9"=>"\xf0\x9f\x95\x95", + "\xee\x80\xaa"=>"\xf0\x9f\x95\x96", + "\xee\x80\xab"=>"\xf0\x9f\x95\x97", + "\xee\x80\xac"=>"\xf0\x9f\x95\x98", + "\xee\x80\xae"=>"\xf0\x9f\x95\x9a", + "\xee\x80\xaf"=>"\xf0\x9f\x95\x9b", + "\xee\x80\xbb"=>"\xf0\x9f\x97\xbb", + "\xee\x94\x89"=>"\xf0\x9f\x97\xbc", + "\xee\x94\x9d"=>"\xf0\x9f\x97\xbd", + "\xee\x90\x84"=>"\xf0\x9f\x98\xbc", + "\xee\x90\x92"=>"\xf0\x9f\x98\xb9", + "\xee\x81\x97"=>"\xf0\x9f\x98\xba", + "\xee\x90\x95"=>"\xf0\x9f\x98\x84", + "\xee\x90\x95\xee\x8c\xb1"=>"\xf0\x9f\x98\x85", + "\xee\x90\x8a"=>"\xf0\x9f\x98\x8c", + "\xee\x90\x85"=>"\xf0\x9f\x98\x89", + "\xee\x81\x96"=>"\xf0\x9f\x98\x8b", + "\xee\x84\x86"=>"\xf0\x9f\x98\xbb", + "\xee\x90\x82"=>"\xf0\x9f\x98\x8f", + "\xee\x90\x8e"=>"\xf0\x9f\x98\x92", + "\xee\x84\x88"=>"\xf0\x9f\x98\x93", + "\xee\x90\x83"=>"\xf0\x9f\x99\x8d", + "\xee\x90\x98"=>"\xf0\x9f\x98\xbd", + "\xee\x90\x97"=>"\xf0\x9f\x98\x9a", + "\xee\x84\x85"=>"\xf0\x9f\x98\x9c", + "\xee\x81\x98"=>"\xf0\x9f\x98\x9e", + "\xee\x81\x99"=>"\xf0\x9f\x98\xa0", + "\xee\x90\x96"=>"\xf0\x9f\x99\x8e", + "\xee\x90\x93"=>"\xf0\x9f\x98\xbf", + "\xee\x90\x86"=>"\xf0\x9f\x98\xb5", + "\xee\x90\x81"=>"\xf0\x9f\x98\xa5", + "\xee\x90\x8b"=>"\xf0\x9f\x98\xa8", + "\xee\x90\x88"=>"\xf0\x9f\x98\xaa", + "\xee\x90\x91"=>"\xf0\x9f\x98\xad", + "\xee\x90\x8f"=>"\xf0\x9f\x98\xb0", + "\xee\x84\x87"=>"\xf0\x9f\x98\xb1", + "\xee\x90\x90"=>"\xf0\x9f\x98\xb2", + "\xee\x90\x8d"=>"\xf0\x9f\x98\xb3", + "\xee\x90\x8c"=>"\xf0\x9f\x98\xb7", + "\xee\x90\xa3"=>"\xf0\x9f\x99\x85", + "\xee\x90\xa4"=>"\xf0\x9f\x99\x86", + "\xee\x90\xa6"=>"\xf0\x9f\x99\x87", + "\xee\x90\xa7"=>"\xf0\x9f\x99\x8c", + "\xee\x90\x9d"=>"\xf0\x9f\x99\x8f", + "\xee\x84\x8d"=>"\xf0\x9f\x9a\x80", + "\xee\x80\x9e"=>"\xf0\x9f\x9a\x83", + "\xee\x90\xb5"=>"\xf0\x9f\x9a\x84", + "\xee\x80\x9f"=>"\xf0\x9f\x9a\x85", + "\xee\x80\xb9"=>"\xf0\x9f\x9a\x89", + "\xee\x85\x99"=>"\xf0\x9f\x9a\x8c", + "\xee\x85\x90"=>"\xf0\x9f\x9a\x8f", + "\xee\x90\xb1"=>"\xf0\x9f\x9a\x91", + "\xee\x90\xb0"=>"\xf0\x9f\x9a\x92", + "\xee\x90\xb2"=>"\xf0\x9f\x9a\xa8", + "\xee\x85\x9a"=>"\xf0\x9f\x9a\x95", + "\xee\x80\x9b"=>"\xf0\x9f\x9a\x97", + "\xee\x90\xae"=>"\xf0\x9f\x9a\x99", + "\xee\x90\xaf"=>"\xf0\x9f\x9a\x9a", + "\xee\x84\xb5"=>"\xf0\x9f\x9a\xa4", + "\xee\x85\x8e"=>"\xf0\x9f\x9a\xa5", + "\xee\x8c\x8e"=>"\xf0\x9f\x9a\xac", + "\xee\x88\x88"=>"\xf0\x9f\x9a\xad", + "\xee\x84\xb6"=>"\xf0\x9f\x9a\xb2", + "\xee\x88\x81"=>"\xf0\x9f\x9a\xb6", + "\xee\x84\xb8"=>"\xf0\x9f\x9a\xb9", + "\xee\x84\xb9"=>"\xf0\x9f\x9a\xba", + "\xee\x85\x91"=>"\xf0\x9f\x9a\xbb", + "\xee\x84\xba"=>"\xf0\x9f\x9a\xbc", + "\xee\x85\x80"=>"\xf0\x9f\x9a\xbd", + "\xee\x8c\x89"=>"\xf0\x9f\x9a\xbe", + "\xee\x84\xbf"=>"\xf0\x9f\x9b\x80", + "\xee\x88\x90"=>"#\xe2\x83\xa3", + "\xee\x88\xa5"=>"0\xe2\x83\xa3", + "\xee\x88\x9c"=>"1\xe2\x83\xa3", + "\xee\x88\x9d"=>"2\xe2\x83\xa3", + "\xee\x88\x9e"=>"3\xe2\x83\xa3", + "\xee\x88\x9f"=>"4\xe2\x83\xa3", + "\xee\x88\xa0"=>"5\xe2\x83\xa3", + "\xee\x88\xa1"=>"6\xe2\x83\xa3", + "\xee\x88\xa2"=>"7\xe2\x83\xa3", + "\xee\x88\xa3"=>"8\xe2\x83\xa3", + "\xee\x88\xa4"=>"9\xe2\x83\xa3", + "\xee\x94\x93"=>"\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3", + "\xee\x94\x8e"=>"\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa", + "\xee\x94\x91"=>"\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8", + "\xee\x94\x8d"=>"\xf0\x9f\x87\xab\xf0\x9f\x87\xb7", + "\xee\x94\x90"=>"\xf0\x9f\x87\xac\xf0\x9f\x87\xa7", + "\xee\x94\x8f"=>"\xf0\x9f\x87\xae\xf0\x9f\x87\xb9", + "\xee\x94\x8b"=>"\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5", + "\xee\x94\x94"=>"\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7", + "\xee\x94\x92"=>"\xf0\x9f\x87\xb7\xf0\x9f\x87\xba", + "\xee\x94\x8c"=>"\xf0\x9f\x87\xba\xf0\x9f\x87\xb8", + ), + 'google_to_unified' => array( + "\xf3\xbe\xac\xa9"=>"\xc2\xa9", + "\xf3\xbe\xac\xad"=>"\xc2\xae", + "\xf3\xbe\xac\x86"=>"\xe2\x80\xbc", + "\xf3\xbe\xac\x85"=>"\xe2\x81\x89", + "\xf3\xbe\xac\xaa"=>"\xe2\x84\xa2", + "\xf3\xbe\xad\x87"=>"\xe2\x84\xb9", + "\xf3\xbe\xab\xb6"=>"\xe2\x86\x94", + "\xf3\xbe\xab\xb7"=>"\xe2\x86\x95", + "\xf3\xbe\xab\xb2"=>"\xe2\x86\x96", + "\xf3\xbe\xab\xb0"=>"\xe2\x86\x97", + "\xf3\xbe\xab\xb1"=>"\xe2\x86\x98", + "\xf3\xbe\xab\xb3"=>"\xe2\x86\x99", + "\xf3\xbe\xae\x83"=>"\xe2\x86\xa9", + "\xf3\xbe\xae\x88"=>"\xe2\x86\xaa", + "\xf3\xbe\x80\x9d"=>"\xe2\x8c\x9a", + "\xf3\xbe\x80\x9c"=>"\xe2\x8c\x9b", + "\xf3\xbe\xab\xbe"=>"\xe2\x8f\xa9", + "\xf3\xbe\xab\xbf"=>"\xe2\x8f\xaa", + "\xf3\xbe\xac\x83"=>"\xe2\x8f\xab", + "\xf3\xbe\xac\x82"=>"\xe2\x8f\xac", + "\xf3\xbe\x80\xaa"=>"\xe2\x8f\xb0", + "\xf3\xbe\x80\x9b"=>"\xe2\x8f\xb3", + "\xf3\xbe\x9f\xa1"=>"\xe2\x93\x82", + "\xf3\xbe\xad\xae"=>"\xe2\x96\xaa", + "\xf3\xbe\xad\xad"=>"\xe2\x96\xab", + "\xf3\xbe\xab\xbc"=>"\xe2\x96\xb6", + "\xf3\xbe\xab\xbd"=>"\xe2\x97\x80", + "\xf3\xbe\xad\xb1"=>"\xe2\x97\xbb", + "\xf3\xbe\xad\xb2"=>"\xe2\x97\xbc", + "\xf3\xbe\xad\xaf"=>"\xe2\x97\xbd", + "\xf3\xbe\xad\xb0"=>"\xe2\x97\xbe", + "\xf3\xbe\x80\x80"=>"\xe2\x98\x80", + "\xf3\xbe\x80\x81"=>"\xe2\x98\x81", + "\xf3\xbe\x94\xa3"=>"\xe2\x98\x8e", + "\xf3\xbe\xae\x8b"=>"\xe2\x98\x91", + "\xf3\xbe\x80\x82"=>"\xe2\x98\x94", + "\xf3\xbe\xa6\x81"=>"\xe2\x98\x95", + "\xf3\xbe\xae\x98"=>"\xe2\x98\x9d", + "\xf3\xbe\x8c\xb6"=>"\xe2\x98\xba", + "\xf3\xbe\x80\xab"=>"\xe2\x99\x88", + "\xf3\xbe\x80\xac"=>"\xe2\x99\x89", + "\xf3\xbe\x80\xad"=>"\xe2\x99\x8a", + "\xf3\xbe\x80\xae"=>"\xe2\x99\x8b", + "\xf3\xbe\x80\xaf"=>"\xe2\x99\x8c", + "\xf3\xbe\x80\xb0"=>"\xe2\x99\x8d", + "\xf3\xbe\x80\xb1"=>"\xe2\x99\x8e", + "\xf3\xbe\x80\xb2"=>"\xe2\x99\x8f", + "\xf3\xbe\x80\xb3"=>"\xe2\x99\x90", + "\xf3\xbe\x80\xb4"=>"\xe2\x99\x91", + "\xf3\xbe\x80\xb5"=>"\xe2\x99\x92", + "\xf3\xbe\x80\xb6"=>"\xe2\x99\x93", + "\xf3\xbe\xac\x9b"=>"\xe2\x99\xa0", + "\xf3\xbe\xac\x9d"=>"\xe2\x99\xa3", + "\xf3\xbe\xac\x9a"=>"\xe2\x99\xa5", + "\xf3\xbe\xac\x9c"=>"\xe2\x99\xa6", + "\xf3\xbe\x9f\xba"=>"\xe2\x99\xa8", + "\xf3\xbe\xac\xac"=>"\xe2\x99\xbb", + "\xf3\xbe\xac\xa0"=>"\xe2\x99\xbf", + "\xf3\xbe\x93\x81"=>"\xe2\x9a\x93", + "\xf3\xbe\xac\xa3"=>"\xe2\x9a\xa0", + "\xf3\xbe\x80\x84"=>"\xe2\x9a\xa1", + "\xf3\xbe\xad\xa5"=>"\xe2\x9a\xaa", + "\xf3\xbe\xad\xa6"=>"\xe2\x9a\xab", + "\xf3\xbe\x9f\x94"=>"\xe2\x9a\xbd", + "\xf3\xbe\x9f\x91"=>"\xe2\x9a\xbe", + "\xf3\xbe\x80\x83"=>"\xe2\x9b\x84", + "\xf3\xbe\x80\x8f"=>"\xe2\x9b\x85", + "\xf3\xbe\x80\xb7"=>"\xe2\x9b\x8e", + "\xf3\xbe\xac\xa6"=>"\xe2\x9b\x94", + "\xf3\xbe\x92\xbb"=>"\xe2\x9b\xaa", + "\xf3\xbe\x92\xbc"=>"\xe2\x9b\xb2", + "\xf3\xbe\x9f\x92"=>"\xe2\x9b\xb3", + "\xf3\xbe\x9f\xaa"=>"\xe2\x9b\xb5", + "\xf3\xbe\x9f\xbb"=>"\xe2\x9b\xba", + "\xf3\xbe\x9f\xb5"=>"\xe2\x9b\xbd", + "\xf3\xbe\x94\xbe"=>"\xe2\x9c\x82", + "\xf3\xbe\xad\x8a"=>"\xe2\x9c\x85", + "\xf3\xbe\x9f\xa9"=>"\xe2\x9c\x88", + "\xf3\xbe\x94\xa9"=>"\xe2\x9c\x89", + "\xf3\xbe\xae\x93"=>"\xe2\x9c\x8a", + "\xf3\xbe\xae\x95"=>"\xe2\x9c\x8b", + "\xf3\xbe\xae\x94"=>"\xe2\x9c\x8c", + "\xf3\xbe\x94\xb9"=>"\xe2\x9c\x8f", + "\xf3\xbe\x94\xb6"=>"\xe2\x9c\x92", + "\xf3\xbe\xad\x89"=>"\xe2\x9c\x94", + "\xf3\xbe\xad\x93"=>"\xe2\x9c\x96", + "\xf3\xbe\xad\xa0"=>"\xe2\x9c\xa8", + "\xf3\xbe\xad\xa2"=>"\xe2\x9c\xb3", + "\xf3\xbe\xad\xa1"=>"\xe2\x9c\xb4", + "\xf3\xbe\x80\x8e"=>"\xe2\x9d\x84", + "\xf3\xbe\xad\xb7"=>"\xe2\x9d\x87", + "\xf3\xbe\xad\x85"=>"\xe2\x9d\x8c", + "\xf3\xbe\xad\x86"=>"\xe2\x9d\x8e", + "\xf3\xbe\xac\x89"=>"\xe2\x9d\x93", + "\xf3\xbe\xac\x8a"=>"\xe2\x9d\x94", + "\xf3\xbe\xac\x8b"=>"\xe2\x9d\x95", + "\xf3\xbe\xac\x84"=>"\xe2\x9d\x97", + "\xf3\xbe\xac\x8c"=>"\xe2\x9d\xa4", + "\xf3\xbe\xad\x91"=>"\xe2\x9e\x95", + "\xf3\xbe\xad\x92"=>"\xe2\x9e\x96", + "\xf3\xbe\xad\x94"=>"\xe2\x9e\x97", + "\xf3\xbe\xab\xba"=>"\xe2\x9e\xa1", + "\xf3\xbe\xac\x88"=>"\xe2\x9e\xb0", + "\xf3\xbe\xa0\xab"=>"\xe2\x9e\xbf", + "\xf3\xbe\xab\xb4"=>"\xe2\xa4\xb4", + "\xf3\xbe\xab\xb5"=>"\xe2\xa4\xb5", + "\xf3\xbe\xab\xbb"=>"\xe2\xac\x85", + "\xf3\xbe\xab\xb8"=>"\xe2\xac\x86", + "\xf3\xbe\xab\xb9"=>"\xe2\xac\x87", + "\xf3\xbe\xad\xac"=>"\xe2\xac\x9b", + "\xf3\xbe\xad\xab"=>"\xe2\xac\x9c", + "\xf3\xbe\xad\xa8"=>"\xe2\xad\x90", + "\xf3\xbe\xad\x84"=>"\xe2\xad\x95", + "\xf3\xbe\xac\x87"=>"\xe3\x80\xb0", + "\xf3\xbe\xa0\x9b"=>"\xe3\x80\xbd", + "\xf3\xbe\xad\x83"=>"\xe3\x8a\x97", + "\xf3\xbe\xac\xab"=>"\xe3\x8a\x99", + "\xf3\xbe\xa0\x8b"=>"\xf0\x9f\x80\x84", + "\xf3\xbe\xa0\x92"=>"\xf0\x9f\x83\x8f", + "\xf3\xbe\x94\x8b"=>"\xf0\x9f\x85\xb0", + "\xf3\xbe\x94\x8c"=>"\xf0\x9f\x85\xb1", + "\xf3\xbe\x94\x8e"=>"\xf0\x9f\x85\xbe", + "\xf3\xbe\x9f\xb6"=>"\xf0\x9f\x85\xbf", + "\xf3\xbe\x94\x8d"=>"\xf0\x9f\x86\x8e", + "\xf3\xbe\xae\x84"=>"\xf0\x9f\x86\x91", + "\xf3\xbe\xac\xb8"=>"\xf0\x9f\x86\x92", + "\xf3\xbe\xac\xa1"=>"\xf0\x9f\x86\x93", + "\xf3\xbe\xae\x81"=>"\xf0\x9f\x86\x94", + "\xf3\xbe\xac\xb6"=>"\xf0\x9f\x86\x95", + "\xf3\xbe\xac\xa8"=>"\xf0\x9f\x86\x96", + "\xf3\xbe\xac\xa7"=>"\xf0\x9f\x86\x97", + "\xf3\xbe\xad\x8f"=>"\xf0\x9f\x86\x98", + "\xf3\xbe\xac\xb7"=>"\xf0\x9f\x86\x99", + "\xf3\xbe\xac\xb2"=>"\xf0\x9f\x86\x9a", + "\xf3\xbe\xac\xa4"=>"\xf0\x9f\x88\x81", + "\xf3\xbe\xac\xbf"=>"\xf0\x9f\x88\x82", + "\xf3\xbe\xac\xba"=>"\xf0\x9f\x88\x9a", + "\xf3\xbe\xad\x80"=>"\xf0\x9f\x88\xaf", + "\xf3\xbe\xac\xae"=>"\xf0\x9f\x88\xb2", + "\xf3\xbe\xac\xaf"=>"\xf0\x9f\x88\xb3", + "\xf3\xbe\xac\xb0"=>"\xf0\x9f\x88\xb4", + "\xf3\xbe\xac\xb1"=>"\xf0\x9f\x88\xb5", + "\xf3\xbe\xac\xb9"=>"\xf0\x9f\x88\xb6", + "\xf3\xbe\xac\xbb"=>"\xf0\x9f\x88\xb7", + "\xf3\xbe\xac\xbc"=>"\xf0\x9f\x88\xb8", + "\xf3\xbe\xac\xbe"=>"\xf0\x9f\x88\xb9", + "\xf3\xbe\xad\x81"=>"\xf0\x9f\x88\xba", + "\xf3\xbe\xac\xbd"=>"\xf0\x9f\x89\x90", + "\xf3\xbe\xad\x90"=>"\xf0\x9f\x89\x91", + "\xf3\xbe\x80\x85"=>"\xf0\x9f\x8c\x80", + "\xf3\xbe\x80\x86"=>"\xf0\x9f\x8c\x81", + "\xf3\xbe\x80\x87"=>"\xf0\x9f\x8c\x82", + "\xf3\xbe\x80\x88"=>"\xf0\x9f\x8c\x83", + "\xf3\xbe\x80\x89"=>"\xf0\x9f\x8c\x84", + "\xf3\xbe\x80\x8a"=>"\xf0\x9f\x8c\x85", + "\xf3\xbe\x80\x8b"=>"\xf0\x9f\x8c\x86", + "\xf3\xbe\x80\x8c"=>"\xf0\x9f\x8c\x87", + "\xf3\xbe\x80\x8d"=>"\xf0\x9f\x8c\x88", + "\xf3\xbe\x80\x90"=>"\xf0\x9f\x8c\x89", + "\xf3\xbe\x80\xb8"=>"\xf0\x9f\x8c\x8a", + "\xf3\xbe\x80\xba"=>"\xf0\x9f\x8c\x8b", + "\xf3\xbe\x80\xbb"=>"\xf0\x9f\x8c\x8c", + "\xf3\xbe\x80\xb9"=>"\xf0\x9f\x8c\x8f", + "\xf3\xbe\x80\x91"=>"\xf0\x9f\x8c\x91", + "\xf3\xbe\x80\x93"=>"\xf0\x9f\x8c\x93", + "\xf3\xbe\x80\x92"=>"\xf0\x9f\x8c\x94", + "\xf3\xbe\x80\x95"=>"\xf0\x9f\x8c\x95", + "\xf3\xbe\x80\x94"=>"\xf0\x9f\x8c\x99", + "\xf3\xbe\x80\x96"=>"\xf0\x9f\x8c\x9b", + "\xf3\xbe\xad\xa9"=>"\xf0\x9f\x8c\x9f", + "\xf3\xbe\xad\xaa"=>"\xf0\x9f\x8c\xa0", + "\xf3\xbe\x81\x8c"=>"\xf0\x9f\x8c\xb0", + "\xf3\xbe\x80\xbe"=>"\xf0\x9f\x8c\xb1", + "\xf3\xbe\x81\x87"=>"\xf0\x9f\x8c\xb4", + "\xf3\xbe\x81\x88"=>"\xf0\x9f\x8c\xb5", + "\xf3\xbe\x80\xbd"=>"\xf0\x9f\x8c\xb7", + "\xf3\xbe\x81\x80"=>"\xf0\x9f\x8c\xb8", + "\xf3\xbe\x81\x81"=>"\xf0\x9f\x8c\xb9", + "\xf3\xbe\x81\x85"=>"\xf0\x9f\x8c\xba", + "\xf3\xbe\x81\x86"=>"\xf0\x9f\x8c\xbb", + "\xf3\xbe\x81\x8d"=>"\xf0\x9f\x8c\xbc", + "\xf3\xbe\x81\x8a"=>"\xf0\x9f\x8c\xbd", + "\xf3\xbe\x81\x89"=>"\xf0\x9f\x8c\xbe", + "\xf3\xbe\x81\x8e"=>"\xf0\x9f\x8c\xbf", + "\xf3\xbe\x80\xbc"=>"\xf0\x9f\x8d\x80", + "\xf3\xbe\x80\xbf"=>"\xf0\x9f\x8d\x81", + "\xf3\xbe\x81\x82"=>"\xf0\x9f\x8d\x82", + "\xf3\xbe\x81\x83"=>"\xf0\x9f\x8d\x83", + "\xf3\xbe\x81\x8b"=>"\xf0\x9f\x8d\x84", + "\xf3\xbe\x81\x95"=>"\xf0\x9f\x8d\x85", + "\xf3\xbe\x81\x96"=>"\xf0\x9f\x8d\x86", + "\xf3\xbe\x81\x99"=>"\xf0\x9f\x8d\x87", + "\xf3\xbe\x81\x97"=>"\xf0\x9f\x8d\x88", + "\xf3\xbe\x81\x94"=>"\xf0\x9f\x8d\x89", + "\xf3\xbe\x81\x92"=>"\xf0\x9f\x8d\x8a", + "\xf3\xbe\x81\x90"=>"\xf0\x9f\x8d\x8c", + "\xf3\xbe\x81\x98"=>"\xf0\x9f\x8d\x8d", + "\xf3\xbe\x81\x91"=>"\xf0\x9f\x8d\x8e", + "\xf3\xbe\x81\x9b"=>"\xf0\x9f\x8d\x8f", + "\xf3\xbe\x81\x9a"=>"\xf0\x9f\x8d\x91", + "\xf3\xbe\x81\x8f"=>"\xf0\x9f\x8d\x92", + "\xf3\xbe\x81\x93"=>"\xf0\x9f\x8d\x93", + "\xf3\xbe\xa5\xa0"=>"\xf0\x9f\x8d\x94", + "\xf3\xbe\xa5\xb5"=>"\xf0\x9f\x8d\x95", + "\xf3\xbe\xa5\xb2"=>"\xf0\x9f\x8d\x96", + "\xf3\xbe\xa5\xb6"=>"\xf0\x9f\x8d\x97", + "\xf3\xbe\xa5\xa9"=>"\xf0\x9f\x8d\x98", + "\xf3\xbe\xa5\xa1"=>"\xf0\x9f\x8d\x99", + "\xf3\xbe\xa5\xaa"=>"\xf0\x9f\x8d\x9a", + "\xf3\xbe\xa5\xac"=>"\xf0\x9f\x8d\x9b", + "\xf3\xbe\xa5\xa3"=>"\xf0\x9f\x8d\x9c", + "\xf3\xbe\xa5\xab"=>"\xf0\x9f\x8d\x9d", + "\xf3\xbe\xa5\xa4"=>"\xf0\x9f\x8d\x9e", + "\xf3\xbe\xa5\xa7"=>"\xf0\x9f\x8d\x9f", + "\xf3\xbe\xa5\xb4"=>"\xf0\x9f\x8d\xa0", + "\xf3\xbe\xa5\xa8"=>"\xf0\x9f\x8d\xa1", + "\xf3\xbe\xa5\xad"=>"\xf0\x9f\x8d\xa2", + "\xf3\xbe\xa5\xae"=>"\xf0\x9f\x8d\xa3", + "\xf3\xbe\xa5\xbf"=>"\xf0\x9f\x8d\xa4", + "\xf3\xbe\xa5\xb3"=>"\xf0\x9f\x8d\xa5", + "\xf3\xbe\xa5\xa6"=>"\xf0\x9f\x8d\xa6", + "\xf3\xbe\xa5\xb1"=>"\xf0\x9f\x8d\xa7", + "\xf3\xbe\xa5\xb7"=>"\xf0\x9f\x8d\xa8", + "\xf3\xbe\xa5\xb8"=>"\xf0\x9f\x8d\xa9", + "\xf3\xbe\xa5\xb9"=>"\xf0\x9f\x8d\xaa", + "\xf3\xbe\xa5\xba"=>"\xf0\x9f\x8d\xab", + "\xf3\xbe\xa5\xbb"=>"\xf0\x9f\x8d\xac", + "\xf3\xbe\xa5\xbc"=>"\xf0\x9f\x8d\xad", + "\xf3\xbe\xa5\xbd"=>"\xf0\x9f\x8d\xae", + "\xf3\xbe\xa5\xbe"=>"\xf0\x9f\x8d\xaf", + "\xf3\xbe\xa5\xa2"=>"\xf0\x9f\x8d\xb0", + "\xf3\xbe\xa5\xaf"=>"\xf0\x9f\x8d\xb1", + "\xf3\xbe\xa5\xb0"=>"\xf0\x9f\x8d\xb2", + "\xf3\xbe\xa5\xa5"=>"\xf0\x9f\x8d\xb3", + "\xf3\xbe\xa6\x80"=>"\xf0\x9f\x8d\xb4", + "\xf3\xbe\xa6\x84"=>"\xf0\x9f\x8d\xb5", + "\xf3\xbe\xa6\x85"=>"\xf0\x9f\x8d\xb6", + "\xf3\xbe\xa6\x86"=>"\xf0\x9f\x8d\xb7", + "\xf3\xbe\xa6\x82"=>"\xf0\x9f\x8d\xb8", + "\xf3\xbe\xa6\x88"=>"\xf0\x9f\x8d\xb9", + "\xf3\xbe\xa6\x83"=>"\xf0\x9f\x8d\xba", + "\xf3\xbe\xa6\x87"=>"\xf0\x9f\x8d\xbb", + "\xf3\xbe\x94\x8f"=>"\xf0\x9f\x8e\x80", + "\xf3\xbe\x94\x90"=>"\xf0\x9f\x8e\x81", + "\xf3\xbe\x94\x91"=>"\xf0\x9f\x8e\x82", + "\xf3\xbe\x94\x9f"=>"\xf0\x9f\x8e\x83", + "\xf3\xbe\x94\x92"=>"\xf0\x9f\x8e\x84", + "\xf3\xbe\x94\x93"=>"\xf0\x9f\x8e\x85", + "\xf3\xbe\x94\x95"=>"\xf0\x9f\x8e\x86", + "\xf3\xbe\x94\x9d"=>"\xf0\x9f\x8e\x87", + "\xf3\xbe\x94\x96"=>"\xf0\x9f\x8e\x88", + "\xf3\xbe\x94\x97"=>"\xf0\x9f\x8e\x89", + "\xf3\xbe\x94\xa0"=>"\xf0\x9f\x8e\x8a", + "\xf3\xbe\x94\xa1"=>"\xf0\x9f\x8e\x8b", + "\xf3\xbe\x94\x94"=>"\xf0\x9f\x8e\x8c", + "\xf3\xbe\x94\x98"=>"\xf0\x9f\x8e\x8d", + "\xf3\xbe\x94\x99"=>"\xf0\x9f\x8e\x8e", + "\xf3\xbe\x94\x9c"=>"\xf0\x9f\x8e\x8f", + "\xf3\xbe\x94\x9e"=>"\xf0\x9f\x8e\x90", + "\xf3\xbe\x80\x97"=>"\xf0\x9f\x8e\x91", + "\xf3\xbe\x94\x9b"=>"\xf0\x9f\x8e\x92", + "\xf3\xbe\x94\x9a"=>"\xf0\x9f\x8e\x93", + "\xf3\xbe\x9f\xbc"=>"\xf0\x9f\x8e\xa0", + "\xf3\xbe\x9f\xbd"=>"\xf0\x9f\x8e\xa1", + "\xf3\xbe\x9f\xbe"=>"\xf0\x9f\x8e\xa2", + "\xf3\xbe\x9f\xbf"=>"\xf0\x9f\x8e\xa3", + "\xf3\xbe\xa0\x80"=>"\xf0\x9f\x8e\xa4", + "\xf3\xbe\xa0\x81"=>"\xf0\x9f\x8e\xa5", + "\xf3\xbe\xa0\x82"=>"\xf0\x9f\x8e\xa6", + "\xf3\xbe\xa0\x83"=>"\xf0\x9f\x8e\xa7", + "\xf3\xbe\xa0\x84"=>"\xf0\x9f\x8e\xa8", + "\xf3\xbe\xa0\x85"=>"\xf0\x9f\x8e\xa9", + "\xf3\xbe\xa0\x86"=>"\xf0\x9f\x8e\xaa", + "\xf3\xbe\xa0\x87"=>"\xf0\x9f\x8e\xab", + "\xf3\xbe\xa0\x88"=>"\xf0\x9f\x8e\xac", + "\xf3\xbe\xa0\x89"=>"\xf0\x9f\x8e\xad", + "\xf3\xbe\xa0\x8a"=>"\xf0\x9f\x8e\xae", + "\xf3\xbe\xa0\x8c"=>"\xf0\x9f\x8e\xaf", + "\xf3\xbe\xa0\x8d"=>"\xf0\x9f\x8e\xb0", + "\xf3\xbe\xa0\x8e"=>"\xf0\x9f\x8e\xb1", + "\xf3\xbe\xa0\x8f"=>"\xf0\x9f\x8e\xb2", + "\xf3\xbe\xa0\x90"=>"\xf0\x9f\x8e\xb3", + "\xf3\xbe\xa0\x91"=>"\xf0\x9f\x8e\xb4", + "\xf3\xbe\xa0\x93"=>"\xf0\x9f\x8e\xb5", + "\xf3\xbe\xa0\x94"=>"\xf0\x9f\x8e\xb6", + "\xf3\xbe\xa0\x95"=>"\xf0\x9f\x8e\xb7", + "\xf3\xbe\xa0\x96"=>"\xf0\x9f\x8e\xb8", + "\xf3\xbe\xa0\x97"=>"\xf0\x9f\x8e\xb9", + "\xf3\xbe\xa0\x98"=>"\xf0\x9f\x8e\xba", + "\xf3\xbe\xa0\x99"=>"\xf0\x9f\x8e\xbb", + "\xf3\xbe\xa0\x9a"=>"\xf0\x9f\x8e\xbc", + "\xf3\xbe\x9f\x90"=>"\xf0\x9f\x8e\xbd", + "\xf3\xbe\x9f\x93"=>"\xf0\x9f\x8e\xbe", + "\xf3\xbe\x9f\x95"=>"\xf0\x9f\x8e\xbf", + "\xf3\xbe\x9f\x96"=>"\xf0\x9f\x8f\x80", + "\xf3\xbe\x9f\x97"=>"\xf0\x9f\x8f\x81", + "\xf3\xbe\x9f\x98"=>"\xf0\x9f\x8f\x82", + "\xf3\xbe\x9f\x99"=>"\xf0\x9f\x8f\x83", + "\xf3\xbe\x9f\x9a"=>"\xf0\x9f\x8f\x84", + "\xf3\xbe\x9f\x9b"=>"\xf0\x9f\x8f\x86", + "\xf3\xbe\x9f\x9d"=>"\xf0\x9f\x8f\x88", + "\xf3\xbe\x9f\x9e"=>"\xf0\x9f\x8f\x8a", + "\xf3\xbe\x92\xb0"=>"\xf0\x9f\x8f\xa0", + "\xf3\xbe\x92\xb1"=>"\xf0\x9f\x8f\xa1", + "\xf3\xbe\x92\xb2"=>"\xf0\x9f\x8f\xa2", + "\xf3\xbe\x92\xb3"=>"\xf0\x9f\x8f\xa3", + "\xf3\xbe\x92\xb4"=>"\xf0\x9f\x8f\xa5", + "\xf3\xbe\x92\xb5"=>"\xf0\x9f\x8f\xa6", + "\xf3\xbe\x92\xb6"=>"\xf0\x9f\x8f\xa7", + "\xf3\xbe\x92\xb7"=>"\xf0\x9f\x8f\xa8", + "\xf3\xbe\x92\xb8"=>"\xf0\x9f\x8f\xa9", + "\xf3\xbe\x92\xb9"=>"\xf0\x9f\x8f\xaa", + "\xf3\xbe\x92\xba"=>"\xf0\x9f\x8f\xab", + "\xf3\xbe\x92\xbd"=>"\xf0\x9f\x8f\xac", + "\xf3\xbe\x93\x80"=>"\xf0\x9f\x8f\xad", + "\xf3\xbe\x93\x82"=>"\xf0\x9f\x8f\xae", + "\xf3\xbe\x92\xbe"=>"\xf0\x9f\x8f\xaf", + "\xf3\xbe\x92\xbf"=>"\xf0\x9f\x8f\xb0", + "\xf3\xbe\x86\xb9"=>"\xf0\x9f\x90\x8c", + "\xf3\xbe\x87\x93"=>"\xf0\x9f\x90\x8d", + "\xf3\xbe\x9f\x9c"=>"\xf0\x9f\x90\x8e", + "\xf3\xbe\x87\x8f"=>"\xf0\x9f\x90\x91", + "\xf3\xbe\x87\x8e"=>"\xf0\x9f\x90\x92", + "\xf3\xbe\x87\x94"=>"\xf0\x9f\x90\x94", + "\xf3\xbe\x87\x95"=>"\xf0\x9f\x90\x97", + "\xf3\xbe\x87\x8c"=>"\xf0\x9f\x90\x98", + "\xf3\xbe\x87\x85"=>"\xf0\x9f\x90\x99", + "\xf3\xbe\x87\x86"=>"\xf0\x9f\x90\x9a", + "\xf3\xbe\x87\x8b"=>"\xf0\x9f\x90\x9b", + "\xf3\xbe\x87\x9a"=>"\xf0\x9f\x90\x9c", + "\xf3\xbe\x87\xa1"=>"\xf0\x9f\x90\x9d", + "\xf3\xbe\x87\xa2"=>"\xf0\x9f\x90\x9e", + "\xf3\xbe\x86\xbd"=>"\xf0\x9f\x90\x9f", + "\xf3\xbe\x87\x89"=>"\xf0\x9f\x90\xa0", + "\xf3\xbe\x87\x99"=>"\xf0\x9f\x90\xa1", + "\xf3\xbe\x87\x9c"=>"\xf0\x9f\x90\xa2", + "\xf3\xbe\x87\x9d"=>"\xf0\x9f\x90\xa3", + "\xf3\xbe\x86\xba"=>"\xf0\x9f\x90\xa4", + "\xf3\xbe\x86\xbb"=>"\xf0\x9f\x90\xa5", + "\xf3\xbe\x87\x88"=>"\xf0\x9f\x90\xa6", + "\xf3\xbe\x86\xbc"=>"\xf0\x9f\x90\xa7", + "\xf3\xbe\x87\x8d"=>"\xf0\x9f\x90\xa8", + "\xf3\xbe\x87\x98"=>"\xf0\x9f\x90\xa9", + "\xf3\xbe\x87\x96"=>"\xf0\x9f\x90\xab", + "\xf3\xbe\x87\x87"=>"\xf0\x9f\x90\xac", + "\xf3\xbe\x87\x82"=>"\xf0\x9f\x90\xad", + "\xf3\xbe\x87\x91"=>"\xf0\x9f\x90\xae", + "\xf3\xbe\x87\x80"=>"\xf0\x9f\x90\xaf", + "\xf3\xbe\x87\x92"=>"\xf0\x9f\x90\xb0", + "\xf3\xbe\x86\xb8"=>"\xf0\x9f\x90\xb1", + "\xf3\xbe\x87\x9e"=>"\xf0\x9f\x90\xb2", + "\xf3\xbe\x87\x83"=>"\xf0\x9f\x90\xb3", + "\xf3\xbe\x86\xbe"=>"\xf0\x9f\x90\xb4", + "\xf3\xbe\x87\x84"=>"\xf0\x9f\x90\xb5", + "\xf3\xbe\x86\xb7"=>"\xf0\x9f\x90\xb6", + "\xf3\xbe\x86\xbf"=>"\xf0\x9f\x90\xb7", + "\xf3\xbe\x87\x97"=>"\xf0\x9f\x90\xb8", + "\xf3\xbe\x87\x8a"=>"\xf0\x9f\x90\xb9", + "\xf3\xbe\x87\x90"=>"\xf0\x9f\x90\xba", + "\xf3\xbe\x87\x81"=>"\xf0\x9f\x90\xbb", + "\xf3\xbe\x87\x9f"=>"\xf0\x9f\x90\xbc", + "\xf3\xbe\x87\xa0"=>"\xf0\x9f\x90\xbd", + "\xf3\xbe\x87\x9b"=>"\xf0\x9f\x90\xbe", + "\xf3\xbe\x86\x90"=>"\xf0\x9f\x91\x80", + "\xf3\xbe\x86\x91"=>"\xf0\x9f\x91\x82", + "\xf3\xbe\x86\x92"=>"\xf0\x9f\x91\x83", + "\xf3\xbe\x86\x93"=>"\xf0\x9f\x91\x84", + "\xf3\xbe\x86\x94"=>"\xf0\x9f\x91\x85", + "\xf3\xbe\xae\x99"=>"\xf0\x9f\x91\x86", + "\xf3\xbe\xae\x9a"=>"\xf0\x9f\x91\x87", + "\xf3\xbe\xae\x9b"=>"\xf0\x9f\x91\x88", + "\xf3\xbe\xae\x9c"=>"\xf0\x9f\x91\x89", + "\xf3\xbe\xae\x96"=>"\xf0\x9f\x91\x8a", + "\xf3\xbe\xae\x9d"=>"\xf0\x9f\x91\x8b", + "\xf3\xbe\xae\x9f"=>"\xf0\x9f\x91\x8c", + "\xf3\xbe\xae\x97"=>"\xf0\x9f\x91\x8d", + "\xf3\xbe\xae\xa0"=>"\xf0\x9f\x91\x8e", + "\xf3\xbe\xae\x9e"=>"\xf0\x9f\x91\x8f", + "\xf3\xbe\xae\xa1"=>"\xf0\x9f\x91\x90", + "\xf3\xbe\x93\x91"=>"\xf0\x9f\x91\x91", + "\xf3\xbe\x93\x94"=>"\xf0\x9f\x91\x92", + "\xf3\xbe\x93\x8e"=>"\xf0\x9f\x91\x93", + "\xf3\xbe\x93\x93"=>"\xf0\x9f\x91\x94", + "\xf3\xbe\x93\x8f"=>"\xf0\x9f\x91\x95", + "\xf3\xbe\x93\x90"=>"\xf0\x9f\x91\x96", + "\xf3\xbe\x93\x95"=>"\xf0\x9f\x91\x97", + "\xf3\xbe\x93\x99"=>"\xf0\x9f\x91\x98", + "\xf3\xbe\x93\x9a"=>"\xf0\x9f\x91\x99", + "\xf3\xbe\x93\x9b"=>"\xf0\x9f\x91\x9a", + "\xf3\xbe\x93\x9c"=>"\xf0\x9f\x91\x9b", + "\xf3\xbe\x93\xb0"=>"\xf0\x9f\x91\x9c", + "\xf3\xbe\x93\xb1"=>"\xf0\x9f\x91\x9d", + "\xf3\xbe\x93\x8c"=>"\xf0\x9f\x91\x9e", + "\xf3\xbe\x93\x8d"=>"\xf0\x9f\x91\x9f", + "\xf3\xbe\x93\x96"=>"\xf0\x9f\x91\xa0", + "\xf3\xbe\x93\x97"=>"\xf0\x9f\x91\xa1", + "\xf3\xbe\x93\x98"=>"\xf0\x9f\x91\xa2", + "\xf3\xbe\x95\x93"=>"\xf0\x9f\x91\xa3", + "\xf3\xbe\x86\x9a"=>"\xf0\x9f\x91\xa4", + "\xf3\xbe\x86\x9b"=>"\xf0\x9f\x91\xa6", + "\xf3\xbe\x86\x9c"=>"\xf0\x9f\x91\xa7", + "\xf3\xbe\x86\x9d"=>"\xf0\x9f\x91\xa8", + "\xf3\xbe\x86\x9e"=>"\xf0\x9f\x91\xa9", + "\xf3\xbe\x86\x9f"=>"\xf0\x9f\x91\xaa", + "\xf3\xbe\x86\xa0"=>"\xf0\x9f\x91\xab", + "\xf3\xbe\x86\xa1"=>"\xf0\x9f\x91\xae", + "\xf3\xbe\x86\xa2"=>"\xf0\x9f\x91\xaf", + "\xf3\xbe\x86\xa3"=>"\xf0\x9f\x91\xb0", + "\xf3\xbe\x86\xa4"=>"\xf0\x9f\x91\xb1", + "\xf3\xbe\x86\xa5"=>"\xf0\x9f\x91\xb2", + "\xf3\xbe\x86\xa6"=>"\xf0\x9f\x91\xb3", + "\xf3\xbe\x86\xa7"=>"\xf0\x9f\x91\xb4", + "\xf3\xbe\x86\xa8"=>"\xf0\x9f\x91\xb5", + "\xf3\xbe\x86\xa9"=>"\xf0\x9f\x91\xb6", + "\xf3\xbe\x86\xaa"=>"\xf0\x9f\x91\xb7", + "\xf3\xbe\x86\xab"=>"\xf0\x9f\x91\xb8", + "\xf3\xbe\x86\xac"=>"\xf0\x9f\x91\xb9", + "\xf3\xbe\x86\xad"=>"\xf0\x9f\x91\xba", + "\xf3\xbe\x86\xae"=>"\xf0\x9f\x91\xbb", + "\xf3\xbe\x86\xaf"=>"\xf0\x9f\x91\xbc", + "\xf3\xbe\x86\xb0"=>"\xf0\x9f\x91\xbd", + "\xf3\xbe\x86\xb1"=>"\xf0\x9f\x91\xbe", + "\xf3\xbe\x86\xb2"=>"\xf0\x9f\x91\xbf", + "\xf3\xbe\x86\xb3"=>"\xf0\x9f\x92\x80", + "\xf3\xbe\x86\xb4"=>"\xf0\x9f\x92\x81", + "\xf3\xbe\x86\xb5"=>"\xf0\x9f\x92\x82", + "\xf3\xbe\x86\xb6"=>"\xf0\x9f\x92\x83", + "\xf3\xbe\x86\x95"=>"\xf0\x9f\x92\x84", + "\xf3\xbe\x86\x96"=>"\xf0\x9f\x92\x85", + "\xf3\xbe\x86\x97"=>"\xf0\x9f\x92\x86", + "\xf3\xbe\x86\x98"=>"\xf0\x9f\x92\x87", + "\xf3\xbe\x86\x99"=>"\xf0\x9f\x92\x88", + "\xf3\xbe\x94\x89"=>"\xf0\x9f\x92\x89", + "\xf3\xbe\x94\x8a"=>"\xf0\x9f\x92\x8a", + "\xf3\xbe\xa0\xa3"=>"\xf0\x9f\x92\x8b", + "\xf3\xbe\xa0\xa4"=>"\xf0\x9f\x92\x8c", + "\xf3\xbe\xa0\xa5"=>"\xf0\x9f\x92\x8d", + "\xf3\xbe\xa0\xa6"=>"\xf0\x9f\x92\x8e", + "\xf3\xbe\xa0\xa7"=>"\xf0\x9f\x92\x8f", + "\xf3\xbe\xa0\xa8"=>"\xf0\x9f\x92\x90", + "\xf3\xbe\xa0\xa9"=>"\xf0\x9f\x92\x91", + "\xf3\xbe\xa0\xaa"=>"\xf0\x9f\x92\x92", + "\xf3\xbe\xac\x8d"=>"\xf0\x9f\x92\x93", + "\xf3\xbe\xac\x8e"=>"\xf0\x9f\x92\x94", + "\xf3\xbe\xac\x8f"=>"\xf0\x9f\x92\x95", + "\xf3\xbe\xac\x90"=>"\xf0\x9f\x92\x96", + "\xf3\xbe\xac\x91"=>"\xf0\x9f\x92\x97", + "\xf3\xbe\xac\x92"=>"\xf0\x9f\x92\x98", + "\xf3\xbe\xac\x93"=>"\xf0\x9f\x92\x99", + "\xf3\xbe\xac\x94"=>"\xf0\x9f\x92\x9a", + "\xf3\xbe\xac\x95"=>"\xf0\x9f\x92\x9b", + "\xf3\xbe\xac\x96"=>"\xf0\x9f\x92\x9c", + "\xf3\xbe\xac\x97"=>"\xf0\x9f\x92\x9d", + "\xf3\xbe\xac\x98"=>"\xf0\x9f\x92\x9e", + "\xf3\xbe\xac\x99"=>"\xf0\x9f\x92\x9f", + "\xf3\xbe\xad\x95"=>"\xf0\x9f\x92\xa0", + "\xf3\xbe\xad\x96"=>"\xf0\x9f\x92\xa1", + "\xf3\xbe\xad\x97"=>"\xf0\x9f\x92\xa2", + "\xf3\xbe\xad\x98"=>"\xf0\x9f\x92\xa3", + "\xf3\xbe\xad\x99"=>"\xf0\x9f\x92\xa4", + "\xf3\xbe\xad\x9a"=>"\xf0\x9f\x92\xa5", + "\xf3\xbe\xad\x9b"=>"\xf0\x9f\x92\xa6", + "\xf3\xbe\xad\x9c"=>"\xf0\x9f\x92\xa7", + "\xf3\xbe\xad\x9d"=>"\xf0\x9f\x92\xa8", + "\xf3\xbe\x93\xb4"=>"\xf0\x9f\x92\xa9", + "\xf3\xbe\xad\x9e"=>"\xf0\x9f\x92\xaa", + "\xf3\xbe\xad\x9f"=>"\xf0\x9f\x92\xab", + "\xf3\xbe\x94\xb2"=>"\xf0\x9f\x92\xac", + "\xf3\xbe\xad\xba"=>"\xf0\x9f\x92\xae", + "\xf3\xbe\xad\xbb"=>"\xf0\x9f\x92\xaf", + "\xf3\xbe\x93\x9d"=>"\xf0\x9f\x92\xb0", + "\xf3\xbe\x93\x9e"=>"\xf0\x9f\x92\xb1", + "\xf3\xbe\x93\xa0"=>"\xf0\x9f\x92\xb2", + "\xf3\xbe\x93\xa1"=>"\xf0\x9f\x92\xb3", + "\xf3\xbe\x93\xa2"=>"\xf0\x9f\x92\xb4", + "\xf3\xbe\x93\xa3"=>"\xf0\x9f\x92\xb5", + "\xf3\xbe\x93\xa4"=>"\xf0\x9f\x92\xb8", + "\xf3\xbe\x93\x9f"=>"\xf0\x9f\x92\xb9", + "\xf3\xbe\x94\xb7"=>"\xf0\x9f\x92\xba", + "\xf3\xbe\x94\xb8"=>"\xf0\x9f\x92\xbb", + "\xf3\xbe\x94\xbb"=>"\xf0\x9f\x92\xbc", + "\xf3\xbe\x94\xbc"=>"\xf0\x9f\x92\xbd", + "\xf3\xbe\x94\xbd"=>"\xf0\x9f\x92\xbe", + "\xf3\xbe\xa0\x9d"=>"\xf0\x9f\x92\xbf", + "\xf3\xbe\xa0\x9e"=>"\xf0\x9f\x93\x80", + "\xf3\xbe\x95\x83"=>"\xf0\x9f\x93\x81", + "\xf3\xbe\x95\x84"=>"\xf0\x9f\x93\x82", + "\xf3\xbe\x95\x80"=>"\xf0\x9f\x93\x83", + "\xf3\xbe\x95\x81"=>"\xf0\x9f\x93\x84", + "\xf3\xbe\x95\x82"=>"\xf0\x9f\x93\x85", + "\xf3\xbe\x95\x89"=>"\xf0\x9f\x93\x86", + "\xf3\xbe\x95\x8d"=>"\xf0\x9f\x93\x87", + "\xf3\xbe\x95\x8b"=>"\xf0\x9f\x93\x88", + "\xf3\xbe\x95\x8c"=>"\xf0\x9f\x93\x89", + "\xf3\xbe\x95\x8a"=>"\xf0\x9f\x93\x8a", + "\xf3\xbe\x95\x88"=>"\xf0\x9f\x93\x8b", + "\xf3\xbe\x95\x8e"=>"\xf0\x9f\x93\x8c", + "\xf3\xbe\x94\xbf"=>"\xf0\x9f\x93\x8d", + "\xf3\xbe\x94\xba"=>"\xf0\x9f\x93\x8e", + "\xf3\xbe\x95\x90"=>"\xf0\x9f\x93\x8f", + "\xf3\xbe\x95\x91"=>"\xf0\x9f\x93\x90", + "\xf3\xbe\x95\x92"=>"\xf0\x9f\x93\x91", + "\xf3\xbe\x95\x8f"=>"\xf0\x9f\x93\x92", + "\xf3\xbe\x95\x85"=>"\xf0\x9f\x93\x93", + "\xf3\xbe\x95\x87"=>"\xf0\x9f\x93\x94", + "\xf3\xbe\x94\x82"=>"\xf0\x9f\x93\x95", + "\xf3\xbe\x95\x86"=>"\xf0\x9f\x93\x96", + "\xf3\xbe\x93\xbf"=>"\xf0\x9f\x93\x97", + "\xf3\xbe\x94\x80"=>"\xf0\x9f\x93\x98", + "\xf3\xbe\x94\x81"=>"\xf0\x9f\x93\x99", + "\xf3\xbe\x94\x83"=>"\xf0\x9f\x93\x9a", + "\xf3\xbe\x94\x84"=>"\xf0\x9f\x93\x9b", + "\xf3\xbe\x93\xbd"=>"\xf0\x9f\x93\x9c", + "\xf3\xbe\x94\xa7"=>"\xf0\x9f\x93\x9d", + "\xf3\xbe\x94\xa4"=>"\xf0\x9f\x93\x9e", + "\xf3\xbe\x94\xa2"=>"\xf0\x9f\x93\x9f", + "\xf3\xbe\x94\xa8"=>"\xf0\x9f\x93\xa0", + "\xf3\xbe\x94\xb1"=>"\xf0\x9f\x93\xa1", + "\xf3\xbe\x94\xaf"=>"\xf0\x9f\x93\xa2", + "\xf3\xbe\x94\xb0"=>"\xf0\x9f\x93\xa3", + "\xf3\xbe\x94\xb3"=>"\xf0\x9f\x93\xa4", + "\xf3\xbe\x94\xb4"=>"\xf0\x9f\x93\xa5", + "\xf3\xbe\x94\xb5"=>"\xf0\x9f\x93\xa6", + "\xf3\xbe\xae\x92"=>"\xf0\x9f\x93\xa7", + "\xf3\xbe\x94\xaa"=>"\xf0\x9f\x93\xa8", + "\xf3\xbe\x94\xab"=>"\xf0\x9f\x93\xa9", + "\xf3\xbe\x94\xac"=>"\xf0\x9f\x93\xaa", + "\xf3\xbe\x94\xad"=>"\xf0\x9f\x93\xab", + "\xf3\xbe\x94\xae"=>"\xf0\x9f\x93\xae", + "\xf3\xbe\xa0\xa2"=>"\xf0\x9f\x93\xb0", + "\xf3\xbe\x94\xa5"=>"\xf0\x9f\x93\xb1", + "\xf3\xbe\x94\xa6"=>"\xf0\x9f\x93\xb2", + "\xf3\xbe\xa0\xb9"=>"\xf0\x9f\x93\xb3", + "\xf3\xbe\xa0\xba"=>"\xf0\x9f\x93\xb4", + "\xf3\xbe\xa0\xb8"=>"\xf0\x9f\x93\xb6", + "\xf3\xbe\x93\xaf"=>"\xf0\x9f\x93\xb7", + "\xf3\xbe\x93\xb9"=>"\xf0\x9f\x93\xb9", + "\xf3\xbe\xa0\x9c"=>"\xf0\x9f\x93\xba", + "\xf3\xbe\xa0\x9f"=>"\xf0\x9f\x93\xbb", + "\xf3\xbe\xa0\xa0"=>"\xf0\x9f\x93\xbc", + "\xf3\xbe\xae\x91"=>"\xf0\x9f\x94\x83", + "\xf3\xbe\xa0\xa1"=>"\xf0\x9f\x94\x8a", + "\xf3\xbe\x93\xbc"=>"\xf0\x9f\x94\x8b", + "\xf3\xbe\x93\xbe"=>"\xf0\x9f\x94\x8c", + "\xf3\xbe\xae\x85"=>"\xf0\x9f\x94\x8d", + "\xf3\xbe\xae\x8d"=>"\xf0\x9f\x94\x8e", + "\xf3\xbe\xae\x90"=>"\xf0\x9f\x94\x8f", + "\xf3\xbe\xae\x8a"=>"\xf0\x9f\x94\x90", + "\xf3\xbe\xae\x82"=>"\xf0\x9f\x94\x91", + "\xf3\xbe\xae\x86"=>"\xf0\x9f\x94\x92", + "\xf3\xbe\xae\x87"=>"\xf0\x9f\x94\x93", + "\xf3\xbe\x93\xb2"=>"\xf0\x9f\x94\x94", + "\xf3\xbe\xae\x8f"=>"\xf0\x9f\x94\x96", + "\xf3\xbe\xad\x8b"=>"\xf0\x9f\x94\x97", + "\xf3\xbe\xae\x8c"=>"\xf0\x9f\x94\x98", + "\xf3\xbe\xae\x8e"=>"\xf0\x9f\x94\x99", + "\xf3\xbe\x80\x9a"=>"\xf0\x9f\x94\x9a", + "\xf3\xbe\x80\x99"=>"\xf0\x9f\x94\x9b", + "\xf3\xbe\x80\x98"=>"\xf0\x9f\x94\x9c", + "\xf3\xbe\xad\x82"=>"\xf0\x9f\x94\x9d", + "\xf3\xbe\xac\xa5"=>"\xf0\x9f\x94\x9e", + "\xf3\xbe\xa0\xbb"=>"\xf0\x9f\x94\x9f", + "\xf3\xbe\xad\xbc"=>"\xf0\x9f\x94\xa0", + "\xf3\xbe\xad\xbd"=>"\xf0\x9f\x94\xa1", + "\xf3\xbe\xad\xbe"=>"\xf0\x9f\x94\xa2", + "\xf3\xbe\xad\xbf"=>"\xf0\x9f\x94\xa3", + "\xf3\xbe\xae\x80"=>"\xf0\x9f\x94\xa4", + "\xf3\xbe\x93\xb6"=>"\xf0\x9f\x94\xa5", + "\xf3\xbe\x93\xbb"=>"\xf0\x9f\x94\xa6", + "\xf3\xbe\x93\x89"=>"\xf0\x9f\x94\xa7", + "\xf3\xbe\x93\x8a"=>"\xf0\x9f\x94\xa8", + "\xf3\xbe\x93\x8b"=>"\xf0\x9f\x94\xa9", + "\xf3\xbe\x93\xba"=>"\xf0\x9f\x94\xaa", + "\xf3\xbe\x93\xb5"=>"\xf0\x9f\x94\xab", + "\xf3\xbe\x93\xb7"=>"\xf0\x9f\x94\xae", + "\xf3\xbe\x93\xb8"=>"\xf0\x9f\x94\xaf", + "\xf3\xbe\x81\x84"=>"\xf0\x9f\x94\xb0", + "\xf3\xbe\x93\x92"=>"\xf0\x9f\x94\xb1", + "\xf3\xbe\xad\xa4"=>"\xf0\x9f\x94\xb5", + "\xf3\xbe\xad\xa7"=>"\xf0\x9f\x94\xb3", + "\xf3\xbe\xad\xa3"=>"\xf0\x9f\x94\xb4", + "\xf3\xbe\xad\xb3"=>"\xf0\x9f\x94\xb6", + "\xf3\xbe\xad\xb4"=>"\xf0\x9f\x94\xb7", + "\xf3\xbe\xad\xb5"=>"\xf0\x9f\x94\xb8", + "\xf3\xbe\xad\xb6"=>"\xf0\x9f\x94\xb9", + "\xf3\xbe\xad\xb8"=>"\xf0\x9f\x94\xba", + "\xf3\xbe\xad\xb9"=>"\xf0\x9f\x94\xbb", + "\xf3\xbe\xac\x81"=>"\xf0\x9f\x94\xbc", + "\xf3\xbe\xac\x80"=>"\xf0\x9f\x94\xbd", + "\xf3\xbe\x80\x9e"=>"\xf0\x9f\x95\x90", + "\xf3\xbe\x80\x9f"=>"\xf0\x9f\x95\x91", + "\xf3\xbe\x80\xa0"=>"\xf0\x9f\x95\x92", + "\xf3\xbe\x80\xa1"=>"\xf0\x9f\x95\x93", + "\xf3\xbe\x80\xa2"=>"\xf0\x9f\x95\x94", + "\xf3\xbe\x80\xa3"=>"\xf0\x9f\x95\x95", + "\xf3\xbe\x80\xa4"=>"\xf0\x9f\x95\x96", + "\xf3\xbe\x80\xa5"=>"\xf0\x9f\x95\x97", + "\xf3\xbe\x80\xa6"=>"\xf0\x9f\x95\x98", + "\xf3\xbe\x80\xa7"=>"\xf0\x9f\x95\x99", + "\xf3\xbe\x80\xa8"=>"\xf0\x9f\x95\x9a", + "\xf3\xbe\x80\xa9"=>"\xf0\x9f\x95\x9b", + "\xf3\xbe\x93\x83"=>"\xf0\x9f\x97\xbb", + "\xf3\xbe\x93\x84"=>"\xf0\x9f\x97\xbc", + "\xf3\xbe\x93\x86"=>"\xf0\x9f\x97\xbd", + "\xf3\xbe\x93\x87"=>"\xf0\x9f\x97\xbe", + "\xf3\xbe\x93\x88"=>"\xf0\x9f\x97\xbf", + "\xf3\xbe\x8c\xb3"=>"\xf0\x9f\x98\x81", + "\xf3\xbe\x8c\xb4"=>"\xf0\x9f\x98\x82", + "\xf3\xbe\x8c\xb0"=>"\xf0\x9f\x98\x83", + "\xf3\xbe\x8c\xb8"=>"\xf0\x9f\x98\x84", + "\xf3\xbe\x8c\xb1"=>"\xf0\x9f\x98\x85", + "\xf3\xbe\x8c\xb2"=>"\xf0\x9f\x98\x86", + "\xf3\xbe\x8d\x87"=>"\xf0\x9f\x98\x89", + "\xf3\xbe\x8c\xb5"=>"\xf0\x9f\x98\x8a", + "\xf3\xbe\x8c\xab"=>"\xf0\x9f\x98\x8b", + "\xf3\xbe\x8c\xbe"=>"\xf0\x9f\x98\x8c", + "\xf3\xbe\x8c\xa7"=>"\xf0\x9f\x98\x8d", + "\xf3\xbe\x8d\x83"=>"\xf0\x9f\x98\x8f", + "\xf3\xbe\x8c\xa6"=>"\xf0\x9f\x98\x92", + "\xf3\xbe\x8d\x84"=>"\xf0\x9f\x98\x93", + "\xf3\xbe\x8d\x80"=>"\xf0\x9f\x98\x94", + "\xf3\xbe\x8c\xbf"=>"\xf0\x9f\x98\x96", + "\xf3\xbe\x8c\xac"=>"\xf0\x9f\x98\x98", + "\xf3\xbe\x8c\xad"=>"\xf0\x9f\x98\x9a", + "\xf3\xbe\x8c\xa9"=>"\xf0\x9f\x98\x9c", + "\xf3\xbe\x8c\xaa"=>"\xf0\x9f\x98\x9d", + "\xf3\xbe\x8c\xa3"=>"\xf0\x9f\x98\x9e", + "\xf3\xbe\x8c\xa0"=>"\xf0\x9f\x98\xa0", + "\xf3\xbe\x8c\xbd"=>"\xf0\x9f\x98\xa1", + "\xf3\xbe\x8c\xb9"=>"\xf0\x9f\x98\xa2", + "\xf3\xbe\x8c\xbc"=>"\xf0\x9f\x98\xa3", + "\xf3\xbe\x8c\xa8"=>"\xf0\x9f\x98\xa4", + "\xf3\xbe\x8d\x85"=>"\xf0\x9f\x98\xa5", + "\xf3\xbe\x8c\xbb"=>"\xf0\x9f\x98\xa8", + "\xf3\xbe\x8c\xa1"=>"\xf0\x9f\x98\xa9", + "\xf3\xbe\x8d\x82"=>"\xf0\x9f\x98\xaa", + "\xf3\xbe\x8d\x86"=>"\xf0\x9f\x98\xab", + "\xf3\xbe\x8c\xba"=>"\xf0\x9f\x98\xad", + "\xf3\xbe\x8c\xa5"=>"\xf0\x9f\x98\xb0", + "\xf3\xbe\x8d\x81"=>"\xf0\x9f\x98\xb1", + "\xf3\xbe\x8c\xa2"=>"\xf0\x9f\x98\xb2", + "\xf3\xbe\x8c\xaf"=>"\xf0\x9f\x98\xb3", + "\xf3\xbe\x8c\xa4"=>"\xf0\x9f\x98\xb5", + "\xf3\xbe\x8c\xae"=>"\xf0\x9f\x98\xb7", + "\xf3\xbe\x8d\x89"=>"\xf0\x9f\x98\xb8", + "\xf3\xbe\x8d\x8a"=>"\xf0\x9f\x98\xb9", + "\xf3\xbe\x8d\x88"=>"\xf0\x9f\x98\xba", + "\xf3\xbe\x8d\x8c"=>"\xf0\x9f\x98\xbb", + "\xf3\xbe\x8d\x8f"=>"\xf0\x9f\x98\xbc", + "\xf3\xbe\x8d\x8b"=>"\xf0\x9f\x98\xbd", + "\xf3\xbe\x8d\x8e"=>"\xf0\x9f\x98\xbe", + "\xf3\xbe\x8d\x8d"=>"\xf0\x9f\x98\xbf", + "\xf3\xbe\x8d\x90"=>"\xf0\x9f\x99\x80", + "\xf3\xbe\x8d\x91"=>"\xf0\x9f\x99\x85", + "\xf3\xbe\x8d\x92"=>"\xf0\x9f\x99\x86", + "\xf3\xbe\x8d\x93"=>"\xf0\x9f\x99\x87", + "\xf3\xbe\x8d\x94"=>"\xf0\x9f\x99\x88", + "\xf3\xbe\x8d\x96"=>"\xf0\x9f\x99\x89", + "\xf3\xbe\x8d\x95"=>"\xf0\x9f\x99\x8a", + "\xf3\xbe\x8d\x97"=>"\xf0\x9f\x99\x8b", + "\xf3\xbe\x8d\x98"=>"\xf0\x9f\x99\x8c", + "\xf3\xbe\x8d\x99"=>"\xf0\x9f\x99\x8d", + "\xf3\xbe\x8d\x9a"=>"\xf0\x9f\x99\x8e", + "\xf3\xbe\x8d\x9b"=>"\xf0\x9f\x99\x8f", + "\xf3\xbe\x9f\xad"=>"\xf0\x9f\x9a\x80", + "\xf3\xbe\x9f\x9f"=>"\xf0\x9f\x9a\x83", + "\xf3\xbe\x9f\xa2"=>"\xf0\x9f\x9a\x84", + "\xf3\xbe\x9f\xa3"=>"\xf0\x9f\x9a\x85", + "\xf3\xbe\x9f\xa0"=>"\xf0\x9f\x9a\x87", + "\xf3\xbe\x9f\xac"=>"\xf0\x9f\x9a\x89", + "\xf3\xbe\x9f\xa6"=>"\xf0\x9f\x9a\x8c", + "\xf3\xbe\x9f\xa7"=>"\xf0\x9f\x9a\x8f", + "\xf3\xbe\x9f\xb3"=>"\xf0\x9f\x9a\x91", + "\xf3\xbe\x9f\xb2"=>"\xf0\x9f\x9a\x92", + "\xf3\xbe\x9f\xb4"=>"\xf0\x9f\x9a\x93", + "\xf3\xbe\x9f\xaf"=>"\xf0\x9f\x9a\x95", + "\xf3\xbe\x9f\xa4"=>"\xf0\x9f\x9a\x97", + "\xf3\xbe\x9f\xa5"=>"\xf0\x9f\x9a\x99", + "\xf3\xbe\x9f\xb1"=>"\xf0\x9f\x9a\x9a", + "\xf3\xbe\x9f\xa8"=>"\xf0\x9f\x9a\xa2", + "\xf3\xbe\x9f\xae"=>"\xf0\x9f\x9a\xa4", + "\xf3\xbe\x9f\xb7"=>"\xf0\x9f\x9a\xa5", + "\xf3\xbe\x9f\xb8"=>"\xf0\x9f\x9a\xa7", + "\xf3\xbe\x9f\xb9"=>"\xf0\x9f\x9a\xa8", + "\xf3\xbe\xac\xa2"=>"\xf0\x9f\x9a\xa9", + "\xf3\xbe\x93\xb3"=>"\xf0\x9f\x9a\xaa", + "\xf3\xbe\xad\x88"=>"\xf0\x9f\x9a\xab", + "\xf3\xbe\xac\x9e"=>"\xf0\x9f\x9a\xac", + "\xf3\xbe\xac\x9f"=>"\xf0\x9f\x9a\xad", + "\xf3\xbe\x9f\xab"=>"\xf0\x9f\x9a\xb2", + "\xf3\xbe\x9f\xb0"=>"\xf0\x9f\x9a\xb6", + "\xf3\xbe\xac\xb3"=>"\xf0\x9f\x9a\xb9", + "\xf3\xbe\xac\xb4"=>"\xf0\x9f\x9a\xba", + "\xf3\xbe\x94\x86"=>"\xf0\x9f\x9a\xbb", + "\xf3\xbe\xac\xb5"=>"\xf0\x9f\x9a\xbc", + "\xf3\xbe\x94\x87"=>"\xf0\x9f\x9a\xbd", + "\xf3\xbe\x94\x88"=>"\xf0\x9f\x9a\xbe", + "\xf3\xbe\x94\x85"=>"\xf0\x9f\x9b\x80", + "\xf3\xbe\xa0\xac"=>"#\xe2\x83\xa3", + "\xf3\xbe\xa0\xb7"=>"0\xe2\x83\xa3", + "\xf3\xbe\xa0\xae"=>"1\xe2\x83\xa3", + "\xf3\xbe\xa0\xaf"=>"2\xe2\x83\xa3", + "\xf3\xbe\xa0\xb0"=>"3\xe2\x83\xa3", + "\xf3\xbe\xa0\xb1"=>"4\xe2\x83\xa3", + "\xf3\xbe\xa0\xb2"=>"5\xe2\x83\xa3", + "\xf3\xbe\xa0\xb3"=>"6\xe2\x83\xa3", + "\xf3\xbe\xa0\xb4"=>"7\xe2\x83\xa3", + "\xf3\xbe\xa0\xb5"=>"8\xe2\x83\xa3", + "\xf3\xbe\xa0\xb6"=>"9\xe2\x83\xa3", + "\xf3\xbe\x93\xad"=>"\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3", + "\xf3\xbe\x93\xa8"=>"\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa", + "\xf3\xbe\x93\xab"=>"\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8", + "\xf3\xbe\x93\xa7"=>"\xf0\x9f\x87\xab\xf0\x9f\x87\xb7", + "\xf3\xbe\x93\xaa"=>"\xf0\x9f\x87\xac\xf0\x9f\x87\xa7", + "\xf3\xbe\x93\xa9"=>"\xf0\x9f\x87\xae\xf0\x9f\x87\xb9", + "\xf3\xbe\x93\xa5"=>"\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5", + "\xf3\xbe\x93\xae"=>"\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7", + "\xf3\xbe\x93\xac"=>"\xf0\x9f\x87\xb7\xf0\x9f\x87\xba", + "\xf3\xbe\x93\xa6"=>"\xf0\x9f\x87\xba\xf0\x9f\x87\xb8", + ), + 'unified_to_html' => array( + "\xc2\xa9"=>"", + "\xc2\xae"=>"", + "\xe2\x80\xbc"=>"", + "\xe2\x81\x89"=>"", + "\xe2\x84\xa2"=>"", + "\xe2\x84\xb9"=>"", + "\xe2\x86\x94"=>"", + "\xe2\x86\x95"=>"", + "\xe2\x86\x96"=>"", + "\xe2\x86\x97"=>"", + "\xe2\x86\x98"=>"", + "\xe2\x86\x99"=>"", + "\xe2\x86\xa9"=>"", + "\xe2\x86\xaa"=>"", + "\xe2\x8c\x9a"=>"", + "\xe2\x8c\x9b"=>"", + "\xe2\x8c\xa8"=>"", + "\xe2\x8f\xa9"=>"", + "\xe2\x8f\xaa"=>"", + "\xe2\x8f\xab"=>"", + "\xe2\x8f\xac"=>"", + "\xe2\x8f\xad"=>"", + "\xe2\x8f\xae"=>"", + "\xe2\x8f\xaf"=>"", + "\xe2\x8f\xb0"=>"", + "\xe2\x8f\xb1"=>"", + "\xe2\x8f\xb2"=>"", + "\xe2\x8f\xb3"=>"", + "\xe2\x8f\xb8"=>"", + "\xe2\x8f\xb9"=>"", + "\xe2\x8f\xba"=>"", + "\xe2\x93\x82"=>"", + "\xe2\x96\xaa"=>"", + "\xe2\x96\xab"=>"", + "\xe2\x96\xb6"=>"", + "\xe2\x97\x80"=>"", + "\xe2\x97\xbb"=>"", + "\xe2\x97\xbc"=>"", + "\xe2\x97\xbd"=>"", + "\xe2\x97\xbe"=>"", + "\xe2\x98\x80"=>"", + "\xe2\x98\x81"=>"", + "\xe2\x98\x82"=>"", + "\xe2\x98\x83"=>"", + "\xe2\x98\x84"=>"", + "\xe2\x98\x8e"=>"", + "\xe2\x98\x91"=>"", + "\xe2\x98\x94"=>"", + "\xe2\x98\x95"=>"", + "\xe2\x98\x98"=>"", + "\xe2\x98\x9d"=>"", + "\xe2\x98\xa0"=>"", + "\xe2\x98\xa2"=>"", + "\xe2\x98\xa3"=>"", + "\xe2\x98\xa6"=>"", + "\xe2\x98\xaa"=>"", + "\xe2\x98\xae"=>"", + "\xe2\x98\xaf"=>"", + "\xe2\x98\xb8"=>"", + "\xe2\x98\xb9"=>"", + "\xe2\x98\xba"=>"", + "\xe2\x99\x88"=>"", + "\xe2\x99\x89"=>"", + "\xe2\x99\x8a"=>"", + "\xe2\x99\x8b"=>"", + "\xe2\x99\x8c"=>"", + "\xe2\x99\x8d"=>"", + "\xe2\x99\x8e"=>"", + "\xe2\x99\x8f"=>"", + "\xe2\x99\x90"=>"", + "\xe2\x99\x91"=>"", + "\xe2\x99\x92"=>"", + "\xe2\x99\x93"=>"", + "\xe2\x99\xa0"=>"", + "\xe2\x99\xa3"=>"", + "\xe2\x99\xa5"=>"", + "\xe2\x99\xa6"=>"", + "\xe2\x99\xa8"=>"", + "\xe2\x99\xbb"=>"", + "\xe2\x99\xbf"=>"", + "\xe2\x9a\x92"=>"", + "\xe2\x9a\x93"=>"", + "\xe2\x9a\x94"=>"", + "\xe2\x9a\x96"=>"", + "\xe2\x9a\x97"=>"", + "\xe2\x9a\x99"=>"", + "\xe2\x9a\x9b"=>"", + "\xe2\x9a\x9c"=>"", + "\xe2\x9a\xa0"=>"", + "\xe2\x9a\xa1"=>"", + "\xe2\x9a\xaa"=>"", + "\xe2\x9a\xab"=>"", + "\xe2\x9a\xb0"=>"", + "\xe2\x9a\xb1"=>"", + "\xe2\x9a\xbd"=>"", + "\xe2\x9a\xbe"=>"", + "\xe2\x9b\x84"=>"", + "\xe2\x9b\x85"=>"", + "\xe2\x9b\x88"=>"", + "\xe2\x9b\x8e"=>"", + "\xe2\x9b\x8f"=>"", + "\xe2\x9b\x91"=>"", + "\xe2\x9b\x93"=>"", + "\xe2\x9b\x94"=>"", + "\xe2\x9b\xa9"=>"", + "\xe2\x9b\xaa"=>"", + "\xe2\x9b\xb0"=>"", + "\xe2\x9b\xb1"=>"", + "\xe2\x9b\xb2"=>"", + "\xe2\x9b\xb3"=>"", + "\xe2\x9b\xb4"=>"", + "\xe2\x9b\xb5"=>"", + "\xe2\x9b\xb7"=>"", + "\xe2\x9b\xb8"=>"", + "\xe2\x9b\xb9"=>"", + "\xe2\x9b\xba"=>"", + "\xe2\x9b\xbd"=>"", + "\xe2\x9c\x82"=>"", + "\xe2\x9c\x85"=>"", + "\xe2\x9c\x88"=>"", + "\xe2\x9c\x89"=>"", + "\xe2\x9c\x8a"=>"", + "\xe2\x9c\x8b"=>"", + "\xe2\x9c\x8c"=>"", + "\xe2\x9c\x8d"=>"", + "\xe2\x9c\x8f"=>"", + "\xe2\x9c\x92"=>"", + "\xe2\x9c\x94"=>"", + "\xe2\x9c\x96"=>"", + "\xe2\x9c\x9d"=>"", + "\xe2\x9c\xa1"=>"", + "\xe2\x9c\xa8"=>"", + "\xe2\x9c\xb3"=>"", + "\xe2\x9c\xb4"=>"", + "\xe2\x9d\x84"=>"", + "\xe2\x9d\x87"=>"", + "\xe2\x9d\x8c"=>"", + "\xe2\x9d\x8e"=>"", + "\xe2\x9d\x93"=>"", + "\xe2\x9d\x94"=>"", + "\xe2\x9d\x95"=>"", + "\xe2\x9d\x97"=>"", + "\xe2\x9d\xa3"=>"", + "\xe2\x9d\xa4"=>"", + "\xe2\x9e\x95"=>"", + "\xe2\x9e\x96"=>"", + "\xe2\x9e\x97"=>"", + "\xe2\x9e\xa1"=>"", + "\xe2\x9e\xb0"=>"", + "\xe2\x9e\xbf"=>"", + "\xe2\xa4\xb4"=>"", + "\xe2\xa4\xb5"=>"", + "\xe2\xac\x85"=>"", + "\xe2\xac\x86"=>"", + "\xe2\xac\x87"=>"", + "\xe2\xac\x9b"=>"", + "\xe2\xac\x9c"=>"", + "\xe2\xad\x90"=>"", + "\xe2\xad\x95"=>"", + "\xe3\x80\xb0"=>"", + "\xe3\x80\xbd"=>"", + "\xe3\x8a\x97"=>"", + "\xe3\x8a\x99"=>"", + "\xf0\x9f\x80\x84"=>"", + "\xf0\x9f\x83\x8f"=>"", + "\xf0\x9f\x85\xb0"=>"", + "\xf0\x9f\x85\xb1"=>"", + "\xf0\x9f\x85\xbe"=>"", + "\xf0\x9f\x85\xbf"=>"", + "\xf0\x9f\x86\x8e"=>"", + "\xf0\x9f\x86\x91"=>"", + "\xf0\x9f\x86\x92"=>"", + "\xf0\x9f\x86\x93"=>"", + "\xf0\x9f\x86\x94"=>"", + "\xf0\x9f\x86\x95"=>"", + "\xf0\x9f\x86\x96"=>"", + "\xf0\x9f\x86\x97"=>"", + "\xf0\x9f\x86\x98"=>"", + "\xf0\x9f\x86\x99"=>"", + "\xf0\x9f\x86\x9a"=>"", + "\xf0\x9f\x88\x81"=>"", + "\xf0\x9f\x88\x82"=>"", + "\xf0\x9f\x88\x9a"=>"", + "\xf0\x9f\x88\xaf"=>"", + "\xf0\x9f\x88\xb2"=>"", + "\xf0\x9f\x88\xb3"=>"", + "\xf0\x9f\x88\xb4"=>"", + "\xf0\x9f\x88\xb5"=>"", + "\xf0\x9f\x88\xb6"=>"", + "\xf0\x9f\x88\xb7"=>"", + "\xf0\x9f\x88\xb8"=>"", + "\xf0\x9f\x88\xb9"=>"", + "\xf0\x9f\x88\xba"=>"", + "\xf0\x9f\x89\x90"=>"", + "\xf0\x9f\x89\x91"=>"", + "\xf0\x9f\x8c\x80"=>"", + "\xf0\x9f\x8c\x81"=>"", + "\xf0\x9f\x8c\x82"=>"", + "\xf0\x9f\x8c\x83"=>"", + "\xf0\x9f\x8c\x84"=>"", + "\xf0\x9f\x8c\x85"=>"", + "\xf0\x9f\x8c\x86"=>"", + "\xf0\x9f\x8c\x87"=>"", + "\xf0\x9f\x8c\x88"=>"", + "\xf0\x9f\x8c\x89"=>"", + "\xf0\x9f\x8c\x8a"=>"", + "\xf0\x9f\x8c\x8b"=>"", + "\xf0\x9f\x8c\x8c"=>"", + "\xf0\x9f\x8c\x8d"=>"", + "\xf0\x9f\x8c\x8e"=>"", + "\xf0\x9f\x8c\x8f"=>"", + "\xf0\x9f\x8c\x90"=>"", + "\xf0\x9f\x8c\x91"=>"", + "\xf0\x9f\x8c\x92"=>"", + "\xf0\x9f\x8c\x93"=>"", + "\xf0\x9f\x8c\x94"=>"", + "\xf0\x9f\x8c\x95"=>"", + "\xf0\x9f\x8c\x96"=>"", + "\xf0\x9f\x8c\x97"=>"", + "\xf0\x9f\x8c\x98"=>"", + "\xf0\x9f\x8c\x99"=>"", + "\xf0\x9f\x8c\x9a"=>"", + "\xf0\x9f\x8c\x9b"=>"", + "\xf0\x9f\x8c\x9c"=>"", + "\xf0\x9f\x8c\x9d"=>"", + "\xf0\x9f\x8c\x9e"=>"", + "\xf0\x9f\x8c\x9f"=>"", + "\xf0\x9f\x8c\xa0"=>"", + "\xf0\x9f\x8c\xa1"=>"", + "\xf0\x9f\x8c\xa4"=>"", + "\xf0\x9f\x8c\xa5"=>"", + "\xf0\x9f\x8c\xa6"=>"", + "\xf0\x9f\x8c\xa7"=>"", + "\xf0\x9f\x8c\xa8"=>"", + "\xf0\x9f\x8c\xa9"=>"", + "\xf0\x9f\x8c\xaa"=>"", + "\xf0\x9f\x8c\xab"=>"", + "\xf0\x9f\x8c\xac"=>"", + "\xf0\x9f\x8c\xad"=>"", + "\xf0\x9f\x8c\xae"=>"", + "\xf0\x9f\x8c\xaf"=>"", + "\xf0\x9f\x8c\xb0"=>"", + "\xf0\x9f\x8c\xb1"=>"", + "\xf0\x9f\x8c\xb2"=>"", + "\xf0\x9f\x8c\xb3"=>"", + "\xf0\x9f\x8c\xb4"=>"", + "\xf0\x9f\x8c\xb5"=>"", + "\xf0\x9f\x8c\xb6"=>"", + "\xf0\x9f\x8c\xb7"=>"", + "\xf0\x9f\x8c\xb8"=>"", + "\xf0\x9f\x8c\xb9"=>"", + "\xf0\x9f\x8c\xba"=>"", + "\xf0\x9f\x8c\xbb"=>"", + "\xf0\x9f\x8c\xbc"=>"", + "\xf0\x9f\x8c\xbd"=>"", + "\xf0\x9f\x8c\xbe"=>"", + "\xf0\x9f\x8c\xbf"=>"", + "\xf0\x9f\x8d\x80"=>"", + "\xf0\x9f\x8d\x81"=>"", + "\xf0\x9f\x8d\x82"=>"", + "\xf0\x9f\x8d\x83"=>"", + "\xf0\x9f\x8d\x84"=>"", + "\xf0\x9f\x8d\x85"=>"", + "\xf0\x9f\x8d\x86"=>"", + "\xf0\x9f\x8d\x87"=>"", + "\xf0\x9f\x8d\x88"=>"", + "\xf0\x9f\x8d\x89"=>"", + "\xf0\x9f\x8d\x8a"=>"", + "\xf0\x9f\x8d\x8b"=>"", + "\xf0\x9f\x8d\x8c"=>"", + "\xf0\x9f\x8d\x8d"=>"", + "\xf0\x9f\x8d\x8e"=>"", + "\xf0\x9f\x8d\x8f"=>"", + "\xf0\x9f\x8d\x90"=>"", + "\xf0\x9f\x8d\x91"=>"", + "\xf0\x9f\x8d\x92"=>"", + "\xf0\x9f\x8d\x93"=>"", + "\xf0\x9f\x8d\x94"=>"", + "\xf0\x9f\x8d\x95"=>"", + "\xf0\x9f\x8d\x96"=>"", + "\xf0\x9f\x8d\x97"=>"", + "\xf0\x9f\x8d\x98"=>"", + "\xf0\x9f\x8d\x99"=>"", + "\xf0\x9f\x8d\x9a"=>"", + "\xf0\x9f\x8d\x9b"=>"", + "\xf0\x9f\x8d\x9c"=>"", + "\xf0\x9f\x8d\x9d"=>"", + "\xf0\x9f\x8d\x9e"=>"", + "\xf0\x9f\x8d\x9f"=>"", + "\xf0\x9f\x8d\xa0"=>"", + "\xf0\x9f\x8d\xa1"=>"", + "\xf0\x9f\x8d\xa2"=>"", + "\xf0\x9f\x8d\xa3"=>"", + "\xf0\x9f\x8d\xa4"=>"", + "\xf0\x9f\x8d\xa5"=>"", + "\xf0\x9f\x8d\xa6"=>"", + "\xf0\x9f\x8d\xa7"=>"", + "\xf0\x9f\x8d\xa8"=>"", + "\xf0\x9f\x8d\xa9"=>"", + "\xf0\x9f\x8d\xaa"=>"", + "\xf0\x9f\x8d\xab"=>"", + "\xf0\x9f\x8d\xac"=>"", + "\xf0\x9f\x8d\xad"=>"", + "\xf0\x9f\x8d\xae"=>"", + "\xf0\x9f\x8d\xaf"=>"", + "\xf0\x9f\x8d\xb0"=>"", + "\xf0\x9f\x8d\xb1"=>"", + "\xf0\x9f\x8d\xb2"=>"", + "\xf0\x9f\x8d\xb3"=>"", + "\xf0\x9f\x8d\xb4"=>"", + "\xf0\x9f\x8d\xb5"=>"", + "\xf0\x9f\x8d\xb6"=>"", + "\xf0\x9f\x8d\xb7"=>"", + "\xf0\x9f\x8d\xb8"=>"", + "\xf0\x9f\x8d\xb9"=>"", + "\xf0\x9f\x8d\xba"=>"", + "\xf0\x9f\x8d\xbb"=>"", + "\xf0\x9f\x8d\xbc"=>"", + "\xf0\x9f\x8d\xbd"=>"", + "\xf0\x9f\x8d\xbe"=>"", + "\xf0\x9f\x8d\xbf"=>"", + "\xf0\x9f\x8e\x80"=>"", + "\xf0\x9f\x8e\x81"=>"", + "\xf0\x9f\x8e\x82"=>"", + "\xf0\x9f\x8e\x83"=>"", + "\xf0\x9f\x8e\x84"=>"", + "\xf0\x9f\x8e\x85"=>"", + "\xf0\x9f\x8e\x86"=>"", + "\xf0\x9f\x8e\x87"=>"", + "\xf0\x9f\x8e\x88"=>"", + "\xf0\x9f\x8e\x89"=>"", + "\xf0\x9f\x8e\x8a"=>"", + "\xf0\x9f\x8e\x8b"=>"", + "\xf0\x9f\x8e\x8c"=>"", + "\xf0\x9f\x8e\x8d"=>"", + "\xf0\x9f\x8e\x8e"=>"", + "\xf0\x9f\x8e\x8f"=>"", + "\xf0\x9f\x8e\x90"=>"", + "\xf0\x9f\x8e\x91"=>"", + "\xf0\x9f\x8e\x92"=>"", + "\xf0\x9f\x8e\x93"=>"", + "\xf0\x9f\x8e\x96"=>"", + "\xf0\x9f\x8e\x97"=>"", + "\xf0\x9f\x8e\x99"=>"", + "\xf0\x9f\x8e\x9a"=>"", + "\xf0\x9f\x8e\x9b"=>"", + "\xf0\x9f\x8e\x9e"=>"", + "\xf0\x9f\x8e\x9f"=>"", + "\xf0\x9f\x8e\xa0"=>"", + "\xf0\x9f\x8e\xa1"=>"", + "\xf0\x9f\x8e\xa2"=>"", + "\xf0\x9f\x8e\xa3"=>"", + "\xf0\x9f\x8e\xa4"=>"", + "\xf0\x9f\x8e\xa5"=>"", + "\xf0\x9f\x8e\xa6"=>"", + "\xf0\x9f\x8e\xa7"=>"", + "\xf0\x9f\x8e\xa8"=>"", + "\xf0\x9f\x8e\xa9"=>"", + "\xf0\x9f\x8e\xaa"=>"", + "\xf0\x9f\x8e\xab"=>"", + "\xf0\x9f\x8e\xac"=>"", + "\xf0\x9f\x8e\xad"=>"", + "\xf0\x9f\x8e\xae"=>"", + "\xf0\x9f\x8e\xaf"=>"", + "\xf0\x9f\x8e\xb0"=>"", + "\xf0\x9f\x8e\xb1"=>"", + "\xf0\x9f\x8e\xb2"=>"", + "\xf0\x9f\x8e\xb3"=>"", + "\xf0\x9f\x8e\xb4"=>"", + "\xf0\x9f\x8e\xb5"=>"", + "\xf0\x9f\x8e\xb6"=>"", + "\xf0\x9f\x8e\xb7"=>"", + "\xf0\x9f\x8e\xb8"=>"", + "\xf0\x9f\x8e\xb9"=>"", + "\xf0\x9f\x8e\xba"=>"", + "\xf0\x9f\x8e\xbb"=>"", + "\xf0\x9f\x8e\xbc"=>"", + "\xf0\x9f\x8e\xbd"=>"", + "\xf0\x9f\x8e\xbe"=>"", + "\xf0\x9f\x8e\xbf"=>"", + "\xf0\x9f\x8f\x80"=>"", + "\xf0\x9f\x8f\x81"=>"", + "\xf0\x9f\x8f\x82"=>"", + "\xf0\x9f\x8f\x83"=>"", + "\xf0\x9f\x8f\x84"=>"", + "\xf0\x9f\x8f\x85"=>"", + "\xf0\x9f\x8f\x86"=>"", + "\xf0\x9f\x8f\x87"=>"", + "\xf0\x9f\x8f\x88"=>"", + "\xf0\x9f\x8f\x89"=>"", + "\xf0\x9f\x8f\x8a"=>"", + "\xf0\x9f\x8f\x8b"=>"", + "\xf0\x9f\x8f\x8c"=>"", + "\xf0\x9f\x8f\x8d"=>"", + "\xf0\x9f\x8f\x8e"=>"", + "\xf0\x9f\x8f\x8f"=>"", + "\xf0\x9f\x8f\x90"=>"", + "\xf0\x9f\x8f\x91"=>"", + "\xf0\x9f\x8f\x92"=>"", + "\xf0\x9f\x8f\x93"=>"", + "\xf0\x9f\x8f\x94"=>"", + "\xf0\x9f\x8f\x95"=>"", + "\xf0\x9f\x8f\x96"=>"", + "\xf0\x9f\x8f\x97"=>"", + "\xf0\x9f\x8f\x98"=>"", + "\xf0\x9f\x8f\x99"=>"", + "\xf0\x9f\x8f\x9a"=>"", + "\xf0\x9f\x8f\x9b"=>"", + "\xf0\x9f\x8f\x9c"=>"", + "\xf0\x9f\x8f\x9d"=>"", + "\xf0\x9f\x8f\x9e"=>"", + "\xf0\x9f\x8f\x9f"=>"", + "\xf0\x9f\x8f\xa0"=>"", + "\xf0\x9f\x8f\xa1"=>"", + "\xf0\x9f\x8f\xa2"=>"", + "\xf0\x9f\x8f\xa3"=>"", + "\xf0\x9f\x8f\xa4"=>"", + "\xf0\x9f\x8f\xa5"=>"", + "\xf0\x9f\x8f\xa6"=>"", + "\xf0\x9f\x8f\xa7"=>"", + "\xf0\x9f\x8f\xa8"=>"", + "\xf0\x9f\x8f\xa9"=>"", + "\xf0\x9f\x8f\xaa"=>"", + "\xf0\x9f\x8f\xab"=>"", + "\xf0\x9f\x8f\xac"=>"", + "\xf0\x9f\x8f\xad"=>"", + "\xf0\x9f\x8f\xae"=>"", + "\xf0\x9f\x8f\xaf"=>"", + "\xf0\x9f\x8f\xb0"=>"", + "\xf0\x9f\x8f\xb3"=>"", + "\xf0\x9f\x8f\xb4"=>"", + "\xf0\x9f\x8f\xb5"=>"", + "\xf0\x9f\x8f\xb7"=>"", + "\xf0\x9f\x8f\xb8"=>"", + "\xf0\x9f\x8f\xb9"=>"", + "\xf0\x9f\x8f\xba"=>"", + "\xf0\x9f\x8f\xbb"=>"", + "\xf0\x9f\x8f\xbc"=>"", + "\xf0\x9f\x8f\xbd"=>"", + "\xf0\x9f\x8f\xbe"=>"", + "\xf0\x9f\x8f\xbf"=>"", + "\xf0\x9f\x90\x80"=>"", + "\xf0\x9f\x90\x81"=>"", + "\xf0\x9f\x90\x82"=>"", + "\xf0\x9f\x90\x83"=>"", + "\xf0\x9f\x90\x84"=>"", + "\xf0\x9f\x90\x85"=>"", + "\xf0\x9f\x90\x86"=>"", + "\xf0\x9f\x90\x87"=>"", + "\xf0\x9f\x90\x88"=>"", + "\xf0\x9f\x90\x89"=>"", + "\xf0\x9f\x90\x8a"=>"", + "\xf0\x9f\x90\x8b"=>"", + "\xf0\x9f\x90\x8c"=>"", + "\xf0\x9f\x90\x8d"=>"", + "\xf0\x9f\x90\x8e"=>"", + "\xf0\x9f\x90\x8f"=>"", + "\xf0\x9f\x90\x90"=>"", + "\xf0\x9f\x90\x91"=>"", + "\xf0\x9f\x90\x92"=>"", + "\xf0\x9f\x90\x93"=>"", + "\xf0\x9f\x90\x94"=>"", + "\xf0\x9f\x90\x95"=>"", + "\xf0\x9f\x90\x96"=>"", + "\xf0\x9f\x90\x97"=>"", + "\xf0\x9f\x90\x98"=>"", + "\xf0\x9f\x90\x99"=>"", + "\xf0\x9f\x90\x9a"=>"", + "\xf0\x9f\x90\x9b"=>"", + "\xf0\x9f\x90\x9c"=>"", + "\xf0\x9f\x90\x9d"=>"", + "\xf0\x9f\x90\x9e"=>"", + "\xf0\x9f\x90\x9f"=>"", + "\xf0\x9f\x90\xa0"=>"", + "\xf0\x9f\x90\xa1"=>"", + "\xf0\x9f\x90\xa2"=>"", + "\xf0\x9f\x90\xa3"=>"", + "\xf0\x9f\x90\xa4"=>"", + "\xf0\x9f\x90\xa5"=>"", + "\xf0\x9f\x90\xa6"=>"", + "\xf0\x9f\x90\xa7"=>"", + "\xf0\x9f\x90\xa8"=>"", + "\xf0\x9f\x90\xa9"=>"", + "\xf0\x9f\x90\xaa"=>"", + "\xf0\x9f\x90\xab"=>"", + "\xf0\x9f\x90\xac"=>"", + "\xf0\x9f\x90\xad"=>"", + "\xf0\x9f\x90\xae"=>"", + "\xf0\x9f\x90\xaf"=>"", + "\xf0\x9f\x90\xb0"=>"", + "\xf0\x9f\x90\xb1"=>"", + "\xf0\x9f\x90\xb2"=>"", + "\xf0\x9f\x90\xb3"=>"", + "\xf0\x9f\x90\xb4"=>"", + "\xf0\x9f\x90\xb5"=>"", + "\xf0\x9f\x90\xb6"=>"", + "\xf0\x9f\x90\xb7"=>"", + "\xf0\x9f\x90\xb8"=>"", + "\xf0\x9f\x90\xb9"=>"", + "\xf0\x9f\x90\xba"=>"", + "\xf0\x9f\x90\xbb"=>"", + "\xf0\x9f\x90\xbc"=>"", + "\xf0\x9f\x90\xbd"=>"", + "\xf0\x9f\x90\xbe"=>"", + "\xf0\x9f\x90\xbf"=>"", + "\xf0\x9f\x91\x80"=>"", + "\xf0\x9f\x91\x81"=>"", + "\xf0\x9f\x91\x82"=>"", + "\xf0\x9f\x91\x83"=>"", + "\xf0\x9f\x91\x84"=>"", + "\xf0\x9f\x91\x85"=>"", + "\xf0\x9f\x91\x86"=>"", + "\xf0\x9f\x91\x87"=>"", + "\xf0\x9f\x91\x88"=>"", + "\xf0\x9f\x91\x89"=>"", + "\xf0\x9f\x91\x8a"=>"", + "\xf0\x9f\x91\x8b"=>"", + "\xf0\x9f\x91\x8c"=>"", + "\xf0\x9f\x91\x8d"=>"", + "\xf0\x9f\x91\x8e"=>"", + "\xf0\x9f\x91\x8f"=>"", + "\xf0\x9f\x91\x90"=>"", + "\xf0\x9f\x91\x91"=>"", + "\xf0\x9f\x91\x92"=>"", + "\xf0\x9f\x91\x93"=>"", + "\xf0\x9f\x91\x94"=>"", + "\xf0\x9f\x91\x95"=>"", + "\xf0\x9f\x91\x96"=>"", + "\xf0\x9f\x91\x97"=>"", + "\xf0\x9f\x91\x98"=>"", + "\xf0\x9f\x91\x99"=>"", + "\xf0\x9f\x91\x9a"=>"", + "\xf0\x9f\x91\x9b"=>"", + "\xf0\x9f\x91\x9c"=>"", + "\xf0\x9f\x91\x9d"=>"", + "\xf0\x9f\x91\x9e"=>"", + "\xf0\x9f\x91\x9f"=>"", + "\xf0\x9f\x91\xa0"=>"", + "\xf0\x9f\x91\xa1"=>"", + "\xf0\x9f\x91\xa2"=>"", + "\xf0\x9f\x91\xa3"=>"", + "\xf0\x9f\x91\xa4"=>"", + "\xf0\x9f\x91\xa5"=>"", + "\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa9"=>"", + "\xf0\x9f\x91\xaa"=>"", + "\xf0\x9f\x91\xab"=>"", + "\xf0\x9f\x91\xac"=>"", + "\xf0\x9f\x91\xad"=>"", + "\xf0\x9f\x91\xae"=>"", + "\xf0\x9f\x91\xaf"=>"", + "\xf0\x9f\x91\xb0"=>"", + "\xf0\x9f\x91\xb1"=>"", + "\xf0\x9f\x91\xb2"=>"", + "\xf0\x9f\x91\xb3"=>"", + "\xf0\x9f\x91\xb4"=>"", + "\xf0\x9f\x91\xb5"=>"", + "\xf0\x9f\x91\xb6"=>"", + "\xf0\x9f\x91\xb7"=>"", + "\xf0\x9f\x91\xb8"=>"", + "\xf0\x9f\x91\xb9"=>"", + "\xf0\x9f\x91\xba"=>"", + "\xf0\x9f\x91\xbb"=>"", + "\xf0\x9f\x91\xbc"=>"", + "\xf0\x9f\x91\xbd"=>"", + "\xf0\x9f\x91\xbe"=>"", + "\xf0\x9f\x91\xbf"=>"", + "\xf0\x9f\x92\x80"=>"", + "\xf0\x9f\x92\x81"=>"", + "\xf0\x9f\x92\x82"=>"", + "\xf0\x9f\x92\x83"=>"", + "\xf0\x9f\x92\x84"=>"", + "\xf0\x9f\x92\x85"=>"", + "\xf0\x9f\x92\x86"=>"", + "\xf0\x9f\x92\x87"=>"", + "\xf0\x9f\x92\x88"=>"", + "\xf0\x9f\x92\x89"=>"", + "\xf0\x9f\x92\x8a"=>"", + "\xf0\x9f\x92\x8b"=>"", + "\xf0\x9f\x92\x8c"=>"", + "\xf0\x9f\x92\x8d"=>"", + "\xf0\x9f\x92\x8e"=>"", + "\xf0\x9f\x92\x8f"=>"", + "\xf0\x9f\x92\x90"=>"", + "\xf0\x9f\x92\x91"=>"", + "\xf0\x9f\x92\x92"=>"", + "\xf0\x9f\x92\x93"=>"", + "\xf0\x9f\x92\x94"=>"", + "\xf0\x9f\x92\x95"=>"", + "\xf0\x9f\x92\x96"=>"", + "\xf0\x9f\x92\x97"=>"", + "\xf0\x9f\x92\x98"=>"", + "\xf0\x9f\x92\x99"=>"", + "\xf0\x9f\x92\x9a"=>"", + "\xf0\x9f\x92\x9b"=>"", + "\xf0\x9f\x92\x9c"=>"", + "\xf0\x9f\x92\x9d"=>"", + "\xf0\x9f\x92\x9e"=>"", + "\xf0\x9f\x92\x9f"=>"", + "\xf0\x9f\x92\xa0"=>"", + "\xf0\x9f\x92\xa1"=>"", + "\xf0\x9f\x92\xa2"=>"", + "\xf0\x9f\x92\xa3"=>"", + "\xf0\x9f\x92\xa4"=>"", + "\xf0\x9f\x92\xa5"=>"", + "\xf0\x9f\x92\xa6"=>"", + "\xf0\x9f\x92\xa7"=>"", + "\xf0\x9f\x92\xa8"=>"", + "\xf0\x9f\x92\xa9"=>"", + "\xf0\x9f\x92\xaa"=>"", + "\xf0\x9f\x92\xab"=>"", + "\xf0\x9f\x92\xac"=>"", + "\xf0\x9f\x92\xad"=>"", + "\xf0\x9f\x92\xae"=>"", + "\xf0\x9f\x92\xaf"=>"", + "\xf0\x9f\x92\xb0"=>"", + "\xf0\x9f\x92\xb1"=>"", + "\xf0\x9f\x92\xb2"=>"", + "\xf0\x9f\x92\xb3"=>"", + "\xf0\x9f\x92\xb4"=>"", + "\xf0\x9f\x92\xb5"=>"", + "\xf0\x9f\x92\xb6"=>"", + "\xf0\x9f\x92\xb7"=>"", + "\xf0\x9f\x92\xb8"=>"", + "\xf0\x9f\x92\xb9"=>"", + "\xf0\x9f\x92\xba"=>"", + "\xf0\x9f\x92\xbb"=>"", + "\xf0\x9f\x92\xbc"=>"", + "\xf0\x9f\x92\xbd"=>"", + "\xf0\x9f\x92\xbe"=>"", + "\xf0\x9f\x92\xbf"=>"", + "\xf0\x9f\x93\x80"=>"", + "\xf0\x9f\x93\x81"=>"", + "\xf0\x9f\x93\x82"=>"", + "\xf0\x9f\x93\x83"=>"", + "\xf0\x9f\x93\x84"=>"", + "\xf0\x9f\x93\x85"=>"", + "\xf0\x9f\x93\x86"=>"", + "\xf0\x9f\x93\x87"=>"", + "\xf0\x9f\x93\x88"=>"", + "\xf0\x9f\x93\x89"=>"", + "\xf0\x9f\x93\x8a"=>"", + "\xf0\x9f\x93\x8b"=>"", + "\xf0\x9f\x93\x8c"=>"", + "\xf0\x9f\x93\x8d"=>"", + "\xf0\x9f\x93\x8e"=>"", + "\xf0\x9f\x93\x8f"=>"", + "\xf0\x9f\x93\x90"=>"", + "\xf0\x9f\x93\x91"=>"", + "\xf0\x9f\x93\x92"=>"", + "\xf0\x9f\x93\x93"=>"", + "\xf0\x9f\x93\x94"=>"", + "\xf0\x9f\x93\x95"=>"", + "\xf0\x9f\x93\x96"=>"", + "\xf0\x9f\x93\x97"=>"", + "\xf0\x9f\x93\x98"=>"", + "\xf0\x9f\x93\x99"=>"", + "\xf0\x9f\x93\x9a"=>"", + "\xf0\x9f\x93\x9b"=>"", + "\xf0\x9f\x93\x9c"=>"", + "\xf0\x9f\x93\x9d"=>"", + "\xf0\x9f\x93\x9e"=>"", + "\xf0\x9f\x93\x9f"=>"", + "\xf0\x9f\x93\xa0"=>"", + "\xf0\x9f\x93\xa1"=>"", + "\xf0\x9f\x93\xa2"=>"", + "\xf0\x9f\x93\xa3"=>"", + "\xf0\x9f\x93\xa4"=>"", + "\xf0\x9f\x93\xa5"=>"", + "\xf0\x9f\x93\xa6"=>"", + "\xf0\x9f\x93\xa7"=>"", + "\xf0\x9f\x93\xa8"=>"", + "\xf0\x9f\x93\xa9"=>"", + "\xf0\x9f\x93\xaa"=>"", + "\xf0\x9f\x93\xab"=>"", + "\xf0\x9f\x93\xac"=>"", + "\xf0\x9f\x93\xad"=>"", + "\xf0\x9f\x93\xae"=>"", + "\xf0\x9f\x93\xaf"=>"", + "\xf0\x9f\x93\xb0"=>"", + "\xf0\x9f\x93\xb1"=>"", + "\xf0\x9f\x93\xb2"=>"", + "\xf0\x9f\x93\xb3"=>"", + "\xf0\x9f\x93\xb4"=>"", + "\xf0\x9f\x93\xb5"=>"", + "\xf0\x9f\x93\xb6"=>"", + "\xf0\x9f\x93\xb7"=>"", + "\xf0\x9f\x93\xb8"=>"", + "\xf0\x9f\x93\xb9"=>"", + "\xf0\x9f\x93\xba"=>"", + "\xf0\x9f\x93\xbb"=>"", + "\xf0\x9f\x93\xbc"=>"", + "\xf0\x9f\x93\xbd"=>"", + "\xf0\x9f\x93\xbf"=>"", + "\xf0\x9f\x94\x80"=>"", + "\xf0\x9f\x94\x81"=>"", + "\xf0\x9f\x94\x82"=>"", + "\xf0\x9f\x94\x83"=>"", + "\xf0\x9f\x94\x84"=>"", + "\xf0\x9f\x94\x85"=>"", + "\xf0\x9f\x94\x86"=>"", + "\xf0\x9f\x94\x87"=>"", + "\xf0\x9f\x94\x88"=>"", + "\xf0\x9f\x94\x89"=>"", + "\xf0\x9f\x94\x8a"=>"", + "\xf0\x9f\x94\x8b"=>"", + "\xf0\x9f\x94\x8c"=>"", + "\xf0\x9f\x94\x8d"=>"", + "\xf0\x9f\x94\x8e"=>"", + "\xf0\x9f\x94\x8f"=>"", + "\xf0\x9f\x94\x90"=>"", + "\xf0\x9f\x94\x91"=>"", + "\xf0\x9f\x94\x92"=>"", + "\xf0\x9f\x94\x93"=>"", + "\xf0\x9f\x94\x94"=>"", + "\xf0\x9f\x94\x95"=>"", + "\xf0\x9f\x94\x96"=>"", + "\xf0\x9f\x94\x97"=>"", + "\xf0\x9f\x94\x98"=>"", + "\xf0\x9f\x94\x99"=>"", + "\xf0\x9f\x94\x9a"=>"", + "\xf0\x9f\x94\x9b"=>"", + "\xf0\x9f\x94\x9c"=>"", + "\xf0\x9f\x94\x9d"=>"", + "\xf0\x9f\x94\x9e"=>"", + "\xf0\x9f\x94\x9f"=>"", + "\xf0\x9f\x94\xa0"=>"", + "\xf0\x9f\x94\xa1"=>"", + "\xf0\x9f\x94\xa2"=>"", + "\xf0\x9f\x94\xa3"=>"", + "\xf0\x9f\x94\xa4"=>"", + "\xf0\x9f\x94\xa5"=>"", + "\xf0\x9f\x94\xa6"=>"", + "\xf0\x9f\x94\xa7"=>"", + "\xf0\x9f\x94\xa8"=>"", + "\xf0\x9f\x94\xa9"=>"", + "\xf0\x9f\x94\xaa"=>"", + "\xf0\x9f\x94\xab"=>"", + "\xf0\x9f\x94\xac"=>"", + "\xf0\x9f\x94\xad"=>"", + "\xf0\x9f\x94\xae"=>"", + "\xf0\x9f\x94\xaf"=>"", + "\xf0\x9f\x94\xb0"=>"", + "\xf0\x9f\x94\xb1"=>"", + "\xf0\x9f\x94\xb2"=>"", + "\xf0\x9f\x94\xb3"=>"", + "\xf0\x9f\x94\xb4"=>"", + "\xf0\x9f\x94\xb5"=>"", + "\xf0\x9f\x94\xb6"=>"", + "\xf0\x9f\x94\xb7"=>"", + "\xf0\x9f\x94\xb8"=>"", + "\xf0\x9f\x94\xb9"=>"", + "\xf0\x9f\x94\xba"=>"", + "\xf0\x9f\x94\xbb"=>"", + "\xf0\x9f\x94\xbc"=>"", + "\xf0\x9f\x94\xbd"=>"", + "\xf0\x9f\x95\x89"=>"", + "\xf0\x9f\x95\x8a"=>"", + "\xf0\x9f\x95\x8b"=>"", + "\xf0\x9f\x95\x8c"=>"", + "\xf0\x9f\x95\x8d"=>"", + "\xf0\x9f\x95\x8e"=>"", + "\xf0\x9f\x95\x90"=>"", + "\xf0\x9f\x95\x91"=>"", + "\xf0\x9f\x95\x92"=>"", + "\xf0\x9f\x95\x93"=>"", + "\xf0\x9f\x95\x94"=>"", + "\xf0\x9f\x95\x95"=>"", + "\xf0\x9f\x95\x96"=>"", + "\xf0\x9f\x95\x97"=>"", + "\xf0\x9f\x95\x98"=>"", + "\xf0\x9f\x95\x99"=>"", + "\xf0\x9f\x95\x9a"=>"", + "\xf0\x9f\x95\x9b"=>"", + "\xf0\x9f\x95\x9c"=>"", + "\xf0\x9f\x95\x9d"=>"", + "\xf0\x9f\x95\x9e"=>"", + "\xf0\x9f\x95\x9f"=>"", + "\xf0\x9f\x95\xa0"=>"", + "\xf0\x9f\x95\xa1"=>"", + "\xf0\x9f\x95\xa2"=>"", + "\xf0\x9f\x95\xa3"=>"", + "\xf0\x9f\x95\xa4"=>"", + "\xf0\x9f\x95\xa5"=>"", + "\xf0\x9f\x95\xa6"=>"", + "\xf0\x9f\x95\xa7"=>"", + "\xf0\x9f\x95\xaf"=>"", + "\xf0\x9f\x95\xb0"=>"", + "\xf0\x9f\x95\xb3"=>"", + "\xf0\x9f\x95\xb4"=>"", + "\xf0\x9f\x95\xb5"=>"", + "\xf0\x9f\x95\xb6"=>"", + "\xf0\x9f\x95\xb7"=>"", + "\xf0\x9f\x95\xb8"=>"", + "\xf0\x9f\x95\xb9"=>"", + "\xf0\x9f\x96\x87"=>"", + "\xf0\x9f\x96\x8a"=>"", + "\xf0\x9f\x96\x8b"=>"", + "\xf0\x9f\x96\x8c"=>"", + "\xf0\x9f\x96\x8d"=>"", + "\xf0\x9f\x96\x90"=>"", + "\xf0\x9f\x96\x95"=>"", + "\xf0\x9f\x96\x96"=>"", + "\xf0\x9f\x96\xa5"=>"", + "\xf0\x9f\x96\xa8"=>"", + "\xf0\x9f\x96\xb1"=>"", + "\xf0\x9f\x96\xb2"=>"", + "\xf0\x9f\x96\xbc"=>"", + "\xf0\x9f\x97\x82"=>"", + "\xf0\x9f\x97\x83"=>"", + "\xf0\x9f\x97\x84"=>"", + "\xf0\x9f\x97\x91"=>"", + "\xf0\x9f\x97\x92"=>"", + "\xf0\x9f\x97\x93"=>"", + "\xf0\x9f\x97\x9c"=>"", + "\xf0\x9f\x97\x9d"=>"", + "\xf0\x9f\x97\x9e"=>"", + "\xf0\x9f\x97\xa1"=>"", + "\xf0\x9f\x97\xa3"=>"", + "\xf0\x9f\x97\xa8"=>"", + "\xf0\x9f\x97\xaf"=>"", + "\xf0\x9f\x97\xb3"=>"", + "\xf0\x9f\x97\xba"=>"", + "\xf0\x9f\x97\xbb"=>"", + "\xf0\x9f\x97\xbc"=>"", + "\xf0\x9f\x97\xbd"=>"", + "\xf0\x9f\x97\xbe"=>"", + "\xf0\x9f\x97\xbf"=>"", + "\xf0\x9f\x98\x80"=>"", + "\xf0\x9f\x98\x81"=>"", + "\xf0\x9f\x98\x82"=>"", + "\xf0\x9f\x98\x83"=>"", + "\xf0\x9f\x98\x84"=>"", + "\xf0\x9f\x98\x85"=>"", + "\xf0\x9f\x98\x86"=>"", + "\xf0\x9f\x98\x87"=>"", + "\xf0\x9f\x98\x88"=>"", + "\xf0\x9f\x98\x89"=>"", + "\xf0\x9f\x98\x8a"=>"", + "\xf0\x9f\x98\x8b"=>"", + "\xf0\x9f\x98\x8c"=>"", + "\xf0\x9f\x98\x8d"=>"", + "\xf0\x9f\x98\x8e"=>"", + "\xf0\x9f\x98\x8f"=>"", + "\xf0\x9f\x98\x90"=>"", + "\xf0\x9f\x98\x91"=>"", + "\xf0\x9f\x98\x92"=>"", + "\xf0\x9f\x98\x93"=>"", + "\xf0\x9f\x98\x94"=>"", + "\xf0\x9f\x98\x95"=>"", + "\xf0\x9f\x98\x96"=>"", + "\xf0\x9f\x98\x97"=>"", + "\xf0\x9f\x98\x98"=>"", + "\xf0\x9f\x98\x99"=>"", + "\xf0\x9f\x98\x9a"=>"", + "\xf0\x9f\x98\x9b"=>"", + "\xf0\x9f\x98\x9c"=>"", + "\xf0\x9f\x98\x9d"=>"", + "\xf0\x9f\x98\x9e"=>"", + "\xf0\x9f\x98\x9f"=>"", + "\xf0\x9f\x98\xa0"=>"", + "\xf0\x9f\x98\xa1"=>"", + "\xf0\x9f\x98\xa2"=>"", + "\xf0\x9f\x98\xa3"=>"", + "\xf0\x9f\x98\xa4"=>"", + "\xf0\x9f\x98\xa5"=>"", + "\xf0\x9f\x98\xa6"=>"", + "\xf0\x9f\x98\xa7"=>"", + "\xf0\x9f\x98\xa8"=>"", + "\xf0\x9f\x98\xa9"=>"", + "\xf0\x9f\x98\xaa"=>"", + "\xf0\x9f\x98\xab"=>"", + "\xf0\x9f\x98\xac"=>"", + "\xf0\x9f\x98\xad"=>"", + "\xf0\x9f\x98\xae"=>"", + "\xf0\x9f\x98\xaf"=>"", + "\xf0\x9f\x98\xb0"=>"", + "\xf0\x9f\x98\xb1"=>"", + "\xf0\x9f\x98\xb2"=>"", + "\xf0\x9f\x98\xb3"=>"", + "\xf0\x9f\x98\xb4"=>"", + "\xf0\x9f\x98\xb5"=>"", + "\xf0\x9f\x98\xb6"=>"", + "\xf0\x9f\x98\xb7"=>"", + "\xf0\x9f\x98\xb8"=>"", + "\xf0\x9f\x98\xb9"=>"", + "\xf0\x9f\x98\xba"=>"", + "\xf0\x9f\x98\xbb"=>"", + "\xf0\x9f\x98\xbc"=>"", + "\xf0\x9f\x98\xbd"=>"", + "\xf0\x9f\x98\xbe"=>"", + "\xf0\x9f\x98\xbf"=>"", + "\xf0\x9f\x99\x80"=>"", + "\xf0\x9f\x99\x81"=>"", + "\xf0\x9f\x99\x82"=>"", + "\xf0\x9f\x99\x83"=>"", + "\xf0\x9f\x99\x84"=>"", + "\xf0\x9f\x99\x85"=>"", + "\xf0\x9f\x99\x86"=>"", + "\xf0\x9f\x99\x87"=>"", + "\xf0\x9f\x99\x88"=>"", + "\xf0\x9f\x99\x89"=>"", + "\xf0\x9f\x99\x8a"=>"", + "\xf0\x9f\x99\x8b"=>"", + "\xf0\x9f\x99\x8c"=>"", + "\xf0\x9f\x99\x8d"=>"", + "\xf0\x9f\x99\x8e"=>"", + "\xf0\x9f\x99\x8f"=>"", + "\xf0\x9f\x9a\x80"=>"", + "\xf0\x9f\x9a\x81"=>"", + "\xf0\x9f\x9a\x82"=>"", + "\xf0\x9f\x9a\x83"=>"", + "\xf0\x9f\x9a\x84"=>"", + "\xf0\x9f\x9a\x85"=>"", + "\xf0\x9f\x9a\x86"=>"", + "\xf0\x9f\x9a\x87"=>"", + "\xf0\x9f\x9a\x88"=>"", + "\xf0\x9f\x9a\x89"=>"", + "\xf0\x9f\x9a\x8a"=>"", + "\xf0\x9f\x9a\x8b"=>"", + "\xf0\x9f\x9a\x8c"=>"", + "\xf0\x9f\x9a\x8d"=>"", + "\xf0\x9f\x9a\x8e"=>"", + "\xf0\x9f\x9a\x8f"=>"", + "\xf0\x9f\x9a\x90"=>"", + "\xf0\x9f\x9a\x91"=>"", + "\xf0\x9f\x9a\x92"=>"", + "\xf0\x9f\x9a\x93"=>"", + "\xf0\x9f\x9a\x94"=>"", + "\xf0\x9f\x9a\x95"=>"", + "\xf0\x9f\x9a\x96"=>"", + "\xf0\x9f\x9a\x97"=>"", + "\xf0\x9f\x9a\x98"=>"", + "\xf0\x9f\x9a\x99"=>"", + "\xf0\x9f\x9a\x9a"=>"", + "\xf0\x9f\x9a\x9b"=>"", + "\xf0\x9f\x9a\x9c"=>"", + "\xf0\x9f\x9a\x9d"=>"", + "\xf0\x9f\x9a\x9e"=>"", + "\xf0\x9f\x9a\x9f"=>"", + "\xf0\x9f\x9a\xa0"=>"", + "\xf0\x9f\x9a\xa1"=>"", + "\xf0\x9f\x9a\xa2"=>"", + "\xf0\x9f\x9a\xa3"=>"", + "\xf0\x9f\x9a\xa4"=>"", + "\xf0\x9f\x9a\xa5"=>"", + "\xf0\x9f\x9a\xa6"=>"", + "\xf0\x9f\x9a\xa7"=>"", + "\xf0\x9f\x9a\xa8"=>"", + "\xf0\x9f\x9a\xa9"=>"", + "\xf0\x9f\x9a\xaa"=>"", + "\xf0\x9f\x9a\xab"=>"", + "\xf0\x9f\x9a\xac"=>"", + "\xf0\x9f\x9a\xad"=>"", + "\xf0\x9f\x9a\xae"=>"", + "\xf0\x9f\x9a\xaf"=>"", + "\xf0\x9f\x9a\xb0"=>"", + "\xf0\x9f\x9a\xb1"=>"", + "\xf0\x9f\x9a\xb2"=>"", + "\xf0\x9f\x9a\xb3"=>"", + "\xf0\x9f\x9a\xb4"=>"", + "\xf0\x9f\x9a\xb5"=>"", + "\xf0\x9f\x9a\xb6"=>"", + "\xf0\x9f\x9a\xb7"=>"", + "\xf0\x9f\x9a\xb8"=>"", + "\xf0\x9f\x9a\xb9"=>"", + "\xf0\x9f\x9a\xba"=>"", + "\xf0\x9f\x9a\xbb"=>"", + "\xf0\x9f\x9a\xbc"=>"", + "\xf0\x9f\x9a\xbd"=>"", + "\xf0\x9f\x9a\xbe"=>"", + "\xf0\x9f\x9a\xbf"=>"", + "\xf0\x9f\x9b\x80"=>"", + "\xf0\x9f\x9b\x81"=>"", + "\xf0\x9f\x9b\x82"=>"", + "\xf0\x9f\x9b\x83"=>"", + "\xf0\x9f\x9b\x84"=>"", + "\xf0\x9f\x9b\x85"=>"", + "\xf0\x9f\x9b\x8b"=>"", + "\xf0\x9f\x9b\x8c"=>"", + "\xf0\x9f\x9b\x8d"=>"", + "\xf0\x9f\x9b\x8e"=>"", + "\xf0\x9f\x9b\x8f"=>"", + "\xf0\x9f\x9b\x90"=>"", + "\xf0\x9f\x9b\xa0"=>"", + "\xf0\x9f\x9b\xa1"=>"", + "\xf0\x9f\x9b\xa2"=>"", + "\xf0\x9f\x9b\xa3"=>"", + "\xf0\x9f\x9b\xa4"=>"", + "\xf0\x9f\x9b\xa5"=>"", + "\xf0\x9f\x9b\xa9"=>"", + "\xf0\x9f\x9b\xab"=>"", + "\xf0\x9f\x9b\xac"=>"", + "\xf0\x9f\x9b\xb0"=>"", + "\xf0\x9f\x9b\xb3"=>"", + "\xf0\x9f\xa4\x90"=>"", + "\xf0\x9f\xa4\x91"=>"", + "\xf0\x9f\xa4\x92"=>"", + "\xf0\x9f\xa4\x93"=>"", + "\xf0\x9f\xa4\x94"=>"", + "\xf0\x9f\xa4\x95"=>"", + "\xf0\x9f\xa4\x96"=>"", + "\xf0\x9f\xa4\x97"=>"", + "\xf0\x9f\xa4\x98"=>"", + "\xf0\x9f\xa6\x80"=>"", + "\xf0\x9f\xa6\x81"=>"", + "\xf0\x9f\xa6\x82"=>"", + "\xf0\x9f\xa6\x83"=>"", + "\xf0\x9f\xa6\x84"=>"", + "\xf0\x9f\xa7\x80"=>"", + "#\xe2\x83\xa3"=>"", + "*\xe2\x83\xa3"=>"", + "0\xe2\x83\xa3"=>"", + "1\xe2\x83\xa3"=>"", + "2\xe2\x83\xa3"=>"", + "3\xe2\x83\xa3"=>"", + "4\xe2\x83\xa3"=>"", + "5\xe2\x83\xa3"=>"", + "6\xe2\x83\xa3"=>"", + "7\xe2\x83\xa3"=>"", + "8\xe2\x83\xa3"=>"", + "9\xe2\x83\xa3"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa7\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xa8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xa9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xaa\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xab\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xac\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xad\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xae\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xaf\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb0\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb1\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb6"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb2\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb5"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb3\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb4\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb5\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb6\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xb7\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbd"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xb8\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xa9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xad"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xaf"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb1"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb4"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb7"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbb"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x87\xb9\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbe"=>"", + "\xf0\x9f\x87\xba\xf0\x9f\x87\xbf"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xa8"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xac"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xae"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xb3"=>"", + "\xf0\x9f\x87\xbb\xf0\x9f\x87\xba"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xab"=>"", + "\xf0\x9f\x87\xbc\xf0\x9f\x87\xb8"=>"", + "\xf0\x9f\x87\xbd\xf0\x9f\x87\xb0"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xaa"=>"", + "\xf0\x9f\x87\xbe\xf0\x9f\x87\xb9"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xa6"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xb2"=>"", + "\xf0\x9f\x87\xbf\xf0\x9f\x87\xbc"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa8\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa8"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa6\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa6"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa9\xe2\x80\x8d\xf0\x9f\x91\xa7\xe2\x80\x8d\xf0\x9f\x91\xa7"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + "\xf0\x9f\x91\xa9\xe2\x80\x8d\xe2\x9d\xa4\xef\xb8\x8f\xe2\x80\x8d\xf0\x9f\x92\x8b\xe2\x80\x8d\xf0\x9f\x91\xa9"=>"", + ), + ); + + $GLOBALS['emoji_maps']['html_to_unified'] = array_flip($GLOBALS['emoji_maps']['unified_to_html']); + + + # + # functions to convert incoming data into the unified format + # + + function emoji_docomo_to_unified( $text){ return emoji_convert($text, 'docomo_to_unified'); } + function emoji_kddi_to_unified( $text){ return emoji_convert($text, 'kddi_to_unified'); } + function emoji_softbank_to_unified( $text){ return emoji_convert($text, 'softbank_to_unified'); } + function emoji_google_to_unified( $text){ return emoji_convert($text, 'google_to_unified'); } + + + # + # functions to convert unified data into an outgoing format + # + + function emoji_unified_to_docomo( $text){ return emoji_convert($text, 'unified_to_docomo'); } + function emoji_unified_to_kddi( $text){ return emoji_convert($text, 'unified_to_kddi'); } + function emoji_unified_to_softbank( $text){ return emoji_convert($text, 'unified_to_softbank'); } + function emoji_unified_to_google( $text){ return emoji_convert($text, 'unified_to_google'); } + function emoji_unified_to_html( $text){ return emoji_convert($text, 'unified_to_html'); } + function emoji_html_to_unified( $text){ return emoji_convert($text, 'html_to_unified'); } + + + + function emoji_convert($text, $map){ + + return str_replace(array_keys($GLOBALS['emoji_maps'][$map]), $GLOBALS['emoji_maps'][$map], $text); + } + + function emoji_get_name($unified_cp){ + + return $GLOBALS['emoji_maps']['names'][$unified_cp] ? $GLOBALS['emoji_maps']['names'][$unified_cp] : '?'; + } diff --git a/codes/agent/game-docker/api/lib/phprs/AutoLoad.php b/codes/agent/game-docker/api/lib/phprs/AutoLoad.php new file mode 100644 index 0000000..99c3d2d --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/AutoLoad.php @@ -0,0 +1,13 @@ +class_name = $class_name; + $this->method_name = $method_name; + } + /** + * 设置绑定 + * @param int $id 参数声明的序号 + * @param $params 绑定相关参数:[目标变量 , 源变量] + * @param $method_info 方法变量信息 [ [变量名, 是否引用, 是否有默认值, 默认值], ... + */ + public function set($id, $params, $method_info){ + Verify::isTrue(is_array($params) && count($params) ==2, "{$this->class_name}::{$this->method_name} invalid @param"); + list($to, $from) = $params; + $pos = -1; + $step = 0; + foreach ($method_info as $item){ + list($param_name, ) = $item; + if($to === $param_name){ + $pos = $step; + break; + } + $step++; + } + Verify::isTrue($pos !== -1, "{$this->class_name}::{$this->method_name} param: $to not found"); + Verify::isTrue(!isset($this->params[$pos]),"{$this->class_name}::{$this->method_name} param: $to repeated bound" ); + $this->params[$pos] = array(substr($from, 0, 1) !='$', $from, $item,$id,);//[是否常量, 值 , 参数信息] + } + /** + * 绑定到函数调用的参数上去 + * @param $req + * @param $res + * @param array $args + */ + public function bind($req, &$res, &$args){ + foreach ($this->params as $pos=>$param){ + list($is_const, $value, $info) = $param; + if($is_const){// 常量 + $args[$pos] = $value; + }else{ //变量 + list(, $is_ref, $is_optional, $default) = $info; + $found = $req->find($value, $is_ref, $default); + if(!$found[1]){ + Verify::isTrue($is_optional, new BadRequest("{$this->class_name}::{$this->method_name} $value not found in request")); + $args[$pos] = $default; + }else{ + if($is_ref){ + $args[$pos] = &$found[0]; + }else{ + $args[$pos] = $found[0]; + } + + } + } + } + } + /** + * 获取被绑定的参数列表 + * 返回的是参数位置 + * @return array + */ + public function getBindParamPos(){ + $params=array(); + foreach ($this->params as $pos=>$param){ + $params[] = $pos; + } + return $params; + } + /** + * @return boolean + */ + public function isEmpty(){ + return count($this->params) ===0; + } + /** + * 获取绑定参数信息 + * @return array + * [ [输入参数位置=>[是否常量, 值, 参数信息]], ...] + * 其中参数信息形式 + * [变量名, 是否引用, 是否有默认值, 默认值] + */ + public function getParams(){ + return $this->params; + } + private $params= array(); + private $class_name; + private $method_name; +} diff --git a/codes/agent/game-docker/api/lib/phprs/BindReturns.php b/codes/agent/game-docker/api/lib/phprs/BindReturns.php new file mode 100644 index 0000000..929e547 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/BindReturns.php @@ -0,0 +1,175 @@ +class_name = $class_name; + $this->method_name = $method_name; + $this->auto_bind_return = $auto_bind_return; + //默认return输出到body + if($auto_bind_return){ + $this->params['body'][-1] = array(0=>array(false, null, -1, null)); + } + } + + /** + * 设置绑定 + * @param $params 绑定相关参数:[目标变量 , 源变量] + * @param $method_info 方法变量信息 [变量名=>[是否引用, 是否有默认值, 默认值]] + */ + public function set($id, $params, $method_info){ + + Verify::isTrue(is_array($params)||is_string($params), "{$this->class_name}::{$this->method_name} invalid @return"); + if (is_string($params)){ + $to = $params; + $from = array(); + }else{ + $to = $params[0]; + $from = array_slice($params, 1); + } + + $to_func = &$this->params[$to][$id]; + if($this->auto_bind_return && ($to == 'body'||$to == 'res') && isset($this->params['body'][-1])){ + unset($this->params['body'][-1]);// 指定了body输出, 去掉默认的body输出 + } + if(0 === count($from)){ + $to_func[0]=array(false, null, -1, null,); + } + foreach ($from as $index=>$name){ // 输入方法 $index变量序号 $name变量名 + $is_const = (substr($name, 0, 1) !='$'); + if ($is_const){ // 输出常量, 不需要绑定变量 + $to_func[$index] = array(true, $name, 0, null,);//[是否常量, 值 , 参数来源位置, 参数信息] + continue; + } + $name = substr($name, 1); + //变量输出, 需要绑定 + $pos = -1; + $step = 0; + + //是(输出)方法的第几个参数 + foreach ($method_info as $item){ + list($param_name, ) = $item; + if($name === $param_name){ + $pos = $step; + break; + } + $step++; + } + Verify::isTrue($pos !== -1, "{$this->class_name}::{$this->method_name} param: $name not found"); + //只能是引用 + list(, $is_ref, ) = $item; + Verify::isTrue($is_ref, "{$this->class_name}::{$this->method_name} param: $name @return must be a reference"); + $to_func[$index] = array(false, $name, $pos, $item,);//[是否常量, 值 , 参数位置, 参数信息] + } + } + /** + * 绑定到函数调用的参数上去 + * @param $req + * @param $res + * @param array $args + */ + public function bind($req, &$res, &$args) + { + //params保存的数据 + // [ + // 'body'=>[// 输出方法 + // [arg1, arg2, arg3], //调用列表 + // [arg1, arg2, arg3] + // ], + // ] + // ] + //没有指定body输出, 默认使用返回值作为输出 + + foreach ($this->params as $fun_name => $calls) {// + foreach ($calls as $id => $call) { + foreach ($call as $num => $arg) { // 方法 + list ($is_const, $value, $pos, $info) = $arg; + if ($is_const) { // 常量,直接输出 + $res[$fun_name][$id][$num] = $value; + } else if($pos === -1){ // 返回值作为变量输出 + $res[$fun_name][$id][$num] = &$this->return_val; + }else{ + if (! array_key_exists($pos, $args)) { // 没有输入,只有输出 + list (, $is_ref, $is_optional, $default) = $info; + if ($is_optional) { + $args[$pos] = $default; + } else { + $args[$pos] = null; + } + } + $res[$fun_name][$id][$num] = &$args[$pos]; + } + } + } + } + + } + /** + * 设置返回值 + * @param unknown $var + */ + public function setReturn($var){ + $this->return_val = $var; + } + + /** + * 获取被绑定的参数列表 + * 返回的是参数位置 + * @return array + */ + public function getBindParamPos(){ + $params=array(); + foreach ($this->params as $fun_name => $calls) { + foreach ($calls as $id => $call) { + foreach ($call as $num => $arg) { + list ($is_const, $value, $pos, $info) = $arg; + if($pos !== -1){ + $params[] = $pos; + } + } + } + } + return $params; + + } + /** + * @return boolean + */ + public function isEmpty(){ + return count($this->params) ===0; + } + /** + * 返回绑定的参数信息 + * @return array + * [[输出方法=>[[是否常量, 值 , 输出参数位置, 参数信息],..]] + * + */ + public function getParams(){ + return $this->params; + } + private $params= array();// [目标=>[[是否常量, 值 , 参数位置, 参数信息],..]] + private $class_name; + private $method_name; + private $return_val; + private $auto_bind_return; +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/BindThrows.php b/codes/agent/game-docker/api/lib/phprs/BindThrows.php new file mode 100644 index 0000000..fc1b29e --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/BindThrows.php @@ -0,0 +1,109 @@ +class_name = $class_name; + $this->method_name = $method_name; + } + + /** + * 设置绑定 + * @param $params 绑定相关参数:[目标变量 , 源变量] + * @param $method_info 方法变量信息 [变量名=>[是否引用, 是否有默认值, 默认值]] + */ + public function set($id, $params, $method_info){ + + Verify::isTrue(is_array($params) && count($params) >=2, "{$this->class_name}::{$this->method_name} invalid @throws"); + $exception = $params[0]; + $to = $params[1]; + $from = array_slice($params, 2); + $to_func = &$this->params[$exception][$to][$id]; + foreach ($from as $index=>$name){ // 输入方法 $index变量序号 $name变量名 + if(is_array($name)){ + $is_const = true; + }else{ + $is_const = (substr($name, 0, 1) !='$'); + } + Verify::isTrue($is_const, "{$this->class_name}::{$this->method_name} dynamic variable not supported by @throws"); + $to_func[$index] = $name; + } + } + /** + * 绑定到函数调用的参数上去 + * @param $req + * @param $res + * @param $e 异常值 + */ + public function bind($req, &$res, $e) + { + + if(!isset($this->params['body']) && !isset($this->params['res'])){ + $res['body'][0][0] = $e; + } + //先处理完全匹配的 + $matched = false; + $funcs = array(); //输出方法 + foreach ($this->params as $exce_name => $calls){ + if(get_class($e) == $exce_name){ + $funcs[] = $calls; + } + } + //没有完全匹配的异常, 尝试匹配父类 + if(count($funcs)===0){ + foreach ($this->params as $exce_name => $calls){ + if(is_a($e, $exce_name) ){ + $funcs[] = $calls; + } + } + } + // [ + // 'body'=>[ + // [0=>[arg1, arg2, arg3]], + // ] + // ] + foreach ($funcs as $id=>$calls) { + foreach ($calls as $fun_name => $call) { + foreach ($call as $arg) { + $res[$fun_name][$id] = $arg; + } + } + } + if(count($funcs) ===0 ){ + throw $e; + } + + } + /** + * @return boolean + */ + public function isEmpty(){ + return count($this->params) ===0; + } + /** + * 返回绑定的变量信息 + * @return array + * [异常名=>[输出方法]=>[输出参数位置=>[值 , 参数信息],..]] + */ + public function getParams(){ + return $this->params; + } + private $params= array();// [异常=>[目标]=>[位置=>[值 , 参数信息],..]] + private $class_name; + private $method_name; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/Bootstrap.php b/codes/agent/game-docker/api/lib/phprs/Bootstrap.php new file mode 100644 index 0000000..981ac40 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/Bootstrap.php @@ -0,0 +1,54 @@ +create('phprs\\RouterWithCache'); + //var_dump($router); + $router(); + } + catch (NotFound $e) + { + header($protocol . ' 404 Not Found'); + $err = $e; + } + catch (BadRequest $e) + { + header($protocol . ' 400 Bad Request'); + $err = $e; + } + catch (Forbidden $e) + { + header($protocol . ' 403 Forbidden'); + $err = $e; + } + catch (\Exception $e) + { + header($protocol . ' 500 Internal Server Error'); + $err = $e; + } + if ($err) + { + header("Content-Type: application/json; charset=UTF-8"); + $estr = array( + 'error' => get_class($err), + 'message' => $err->getMessage(), + ); + echo json_encode($estr, JSON_UNESCAPED_UNICODE); + } + } +} diff --git a/codes/agent/game-docker/api/lib/phprs/Container.php b/codes/agent/game-docker/api/lib/phprs/Container.php new file mode 100644 index 0000000..62c513a --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/Container.php @@ -0,0 +1,153 @@ +load($class, $method); + } + /** + * + * @param string $class 类名 + * @param string $method ==null时load所有方法, !==null时load指定方法 + */ + public function load($class, $method){ + $this->class = $class; + //获取方法 + $reflection = new \ReflectionClass($class); + $reader= new AnnotationReader($reflection); + $class_ann = $reader->getClassAnnotations($reflection); + Verify::isTrue(isset($class_ann['path']), $class.' @path not found'); + Verify::isTrue(count($class_ann['path'])===1, $class.' @path ambiguity'); + $path = $class_ann['path'][0]['value']; + $this->path = $path; + $specified = $method; + foreach ($reflection->getMethods() as $method){ + if($specified !== null && $specified !== $method->getName()){ + Logger::DEBUG("specified method: $specified, ignore $class::{$method->getName()}"); + continue; + } + $anns = $reader->getMethodAnnotations($method, false); + if(!isset($anns['route'])){ + Logger::DEBUG("no @route, ignore $class::{$method->getName()}"); + continue; + } + //Verify::isTrue(count($anns['route']) == 1, "$class::{$method->getName()} @route repeated set"); + $invoker = $this->factory->create('phprs\Invoker', array($this, $method) ); + foreach ($anns['route'] as $ann){ + $route = $ann['value']; + Verify::isTrue(is_array($route) && (count($route)==2 || count($route)==3), + "$class::{$method->getName()} syntax error @route, example: @route({\"GET\" ,\"/api?a=2\"}) or @route({\"GET\" ,\"/api?a=2\",true})" + ); + list($http_method, $uri,$strict) = $route+[null,null,null]; + $this->routes[$http_method][] = [$path.'/'.$uri, $invoker,$strict]; + } + + foreach ($anns as $type =>$v){ + if($type == 'route'){ + continue; + } + $id = 0; + foreach ($v as $ann){ + if(!is_array($ann) || !isset($ann['value'])) { + continue; + } + $invoker->bind($id++, $type, $ann['value']); + continue; + } + } + + //检查是否所有必须的参数均已绑定 + $invoker->check(); + } + //属性注入 + /*foreach ($reflection->getProperties() as $property ){ + foreach ( $reader->getPropertyAnnotations($property) as $id => $ann){ + if($id !== 'inject') { continue;} + $name = $property->getName(); + if($name == "ioc_factory"){// ioc_factory由工厂负责注入 + //TODO: 用@ioc_factory替代ioc_factory + continue; + } + Verify::isTrue(count($ann) ===1, "$class::$name ambiguity @inject"); + Verify::isTrue(isset($ann[0]['value']), "$class::$name invalid @inject"); + Verify::isTrue(is_string($ann[0]['value']), "$class::$name invalid @inject"); + $this->injectors[] = new Injector($this, $name, $ann[0]['value']); + } + }*/ + + + } + /** + * 获取API实现类的实例 + * @param Request $request + * @return object + */ + public function getImpl($request){ + Verify::isTrue($request !== null); + if($this->impl === null){ + $injected = &$this->injected; + $injected = array(); + $this->impl = $this->factory->create($this->class, null, null, function($src, &$succeeded)use($request, &$injected){ + list($val, $found) = $request->find($src); + $succeeded = $found; + $injected[$src]=$val; + return $val; + }); + asort($injected); + } + return $this->impl; + } + /** + * 获取实例被注入的方法 + * 只有实例被创建后才能取到值 + * @return array + */ + public function getInjected(){ + return $this->injected; + } + ///** + // * 从http请求中提取属性 + // * @param RestfulApiRequest $request http请求 + // */ + //public function inject($request){ + // foreach ($this->injectors as $inject){ + // $inject($request); + // } + //} + ///** + // * 获取注入的依赖 + // * @return arra: + // */ + //public function getInjectors(){ + // return $this->injectors; + //} + //每次处理请求时属性被重新注入到API实例 + //private $injectors=array(); + public $routes=array(); //['GET'=>[Invoker,Invoker,Invoker...],'POST',....]; + //API 实现类; + public $class; + //API 实例; + private $impl; + private $injected;// 被注入的属性, 记录下来, 可以作为缓存key的一部分 + /** @inject("ioc_factory") */ + public $factory; + + public $path; +} diff --git a/codes/agent/game-docker/api/lib/phprs/Invoker.php b/codes/agent/game-docker/api/lib/phprs/Invoker.php new file mode 100644 index 0000000..b08adcc --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/Invoker.php @@ -0,0 +1,251 @@ +ins = $ins; + if($this->cache === null){ + $this->checkAbleCache = $this->factory->create('phprs\util\Cache'); + }else{ + $this->checkAbleCache = new CheckableCache($this->cache); + } + + $this->method_name = $method->getName(); + foreach ($method->getParameters() as $param) { + $this->method_args[] = array( + $param->getName(), // name + $param->isPassedByReference(), // ref + $param->isOptional(), // isOptional + $param->isOptional() ? $param->getDefaultValue() : null, + ) // default + ; + } + $this->bind = array( + 'param' => new BindParams($this->ins->class, $this->method_name), + 'return' => new BindReturns($this->ins->class, $this->method_name), + 'throws' => new BindThrows($this->ins->class, $this->method_name), + 'cache' => new BindReturns($this->ins->class, $this->method_name, false), + ); + } + + /** + * 绑定参数,返回值,异常 + * @param int $id + * 参数id + * @param string $type 绑定类型 param/return/throws + * @param $param + * param: + * [['arg_name'=>'$._SERVER.REQUEST_URI'],...] + * [[参数名=>jsonpath表达式],...] + * 指定api接口参数从http请求中获取的方式 + * returns: + * 指定哪些参数被作为返回值 + * [ + * ['status','200 OK'], 200 OK 作为常量, 输出到status + * ['cookie','$arg0'], $arg0变量输出到cookie + * ['body'], 未指定变量, 则取返回值输出 + * ] + * throws 指定根据不同的异常设置响应信息 + * [ + * ['MyException','status' , '404 Not Found'], + * ['MyException','body','$msg'], + * ['Exception','status','500 Internal Server Error'], + * ] + */ + public function bind($id, $type, $param) + { + if (! isset($this->bind[$type])) { + return; + } + $this->bind[$type]->set($id, $param, $this->method_args); + } + + /** + * 执行API + * + * @param Request $request 请求 + * @param Response $response 响应 + */ + public function __invoke($request, &$response) + { + $args = array(); + //绑定参数和返回值 + $this->bind['param']->bind($request, $response, $args); + $this->bind['return']->bind($request, $response, $args); + //利用参数绑定的能力,提取@cache注释的信息 + $cache_ttl = 0; + $cache_check = null; + $cache_res = new Response(array( + 'ttl' => function ($param) use(&$cache_ttl) + { + $cache_ttl = $param; + }, + 'check' => function ($param) use(&$cache_check) + { + $cache_check = $param; + }, + 'body'=>function ($_=null){} + )); + $this->bind['cache']->bind($request, $cache_res, $args); + + $use_cache = !$this->bind['cache']->isEmpty(); + + $given = count($args); + if ($given === 0) { + $required_num = 0; + } else { + ksort($args, SORT_NUMERIC); + end($args); + $required_num = key($args) + 1; + } + + Verify::isTrue($given === $required_num, new BadRequest("{$this->ins->class}::{$this->method_name} $required_num params required, $given given")); // 变量没给全 + $cache_key = null; + if ($use_cache) { + //输入参数包括函数参数和类注入数据两部分 + //所以以这些参数的摘要作为缓存的key + $injected = $this->ins->getInjected(); + $cache_res->flush();//取出cache参数 + $cache_key = "invoke_{$this->ins->class}_{$this->method_name}_" . sha1(serialize($args).serialize($injected).$cache_ttl); + $succeeded = false; + $data = $this->checkAbleCache->get($cache_key, $succeeded); + if ($succeeded && is_array($data)) { + $response->setBuffer($data); + $response->flush(); + Logger::info("{$this->ins->class}::{$this->method_name} get response from cache $cache_key"); + return; + } + } + $impl = $this->ins->getImpl($request); + // + if (!$this->bind['throws']->isEmpty()) { + try { + $res = call_user_func_array(array( + $impl, + $this->method_name, + ), $args); + } catch (\Exception $e) { + $response->clear(); // 清除之前绑定的变量, 异常发生时可能已经写入了一些参数 + $this->bind['throws']->bind($request, $response, $e); + $response['break'][][0]=true; + $response->flush(); + return; + } + } else { + $res = call_user_func_array(array( + $impl, + $this->method_name, + ), $args); + } + $this->bind['return']->setReturn($res); + if ($use_cache) { + $this->checkAbleCache->set($cache_key, $response->getBuffer(), $cache_ttl, $cache_check); + Logger::info("{$this->ins->class}::{$this->method_name} set response to cache $cache_key, ttl=$cache_ttl, check=".($cache_check===null?'null':get_class($cache_check))); + } + $response->flush(); + } + + /** + * 获取被绑定的参数列表 + * 返回的是参数位置 + * + * @return array + */ + public function getBindParamPos() + { + return array_merge($this->bind['return']->getBindParamPos(), $this->bind['param']->getBindParamPos(), $this->bind['cache']->getBindParamPos()); + } + + /** + * 检查参数是否均已经绑定 + */ + public function check() + { + $params = $this->getBindParamPos(); + foreach ($this->method_args as $id => $arg) { + list ($name, $is_ref, $is_optional, $default) = $arg; + if (false === array_search($id, $params)) { + Verify::isTrue($is_optional, "{$this->ins->class}::{$this->method_name} param: $name not be bound"); + } + } + } + /** + * @return string + */ + public function getMethodName(){ + return $this->method_name; + } + /** + * 绑定的参数 + */ + public function getParams(){ + return $this->bind['param']; + } + /** + * 绑定的返回值 + */ + public function getReturns(){ + return $this->bind['return']; + } + /** + * 绑定的异常 + */ + public function getThrows(){ + return $this->bind['throws']; + } + + /** + * @return string + */ + public function getClassName(){ + return $this->ins->class; + } + /** + * @return object + */ + public function getContainer(){ + return $this->ins; + } + public $method_name; + + private $method_args = array(); + + private $ins; + // 绑定的变量 + private $bind = array(); + + /** + * @property + * @var phprs\util\KVCatchInterface + */ + private $cache=null; + private $checkAbleCache; + /** @inject("ioc_factory") */ + private $factory; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/Request.php b/codes/agent/game-docker/api/lib/phprs/Request.php new file mode 100644 index 0000000..a4fad5a --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/Request.php @@ -0,0 +1,154 @@ +getAllHeaders(); + } + $this->url_begin = $url_begin; + //支持json请求(Content-Type: application/json) + $contentType = null; + if(isset($data['header']['Content-Type'])){ + $contentType = $data['header']['Content-Type']; + list($contentType, ) = explode(';', $contentType)+array(null,null); + if($contentType == 'application/json'){ + $post = file_get_contents('php://input'); + if($post != ''){ + $post = json_decode($post, true); + Verify::isTrue(is_array($post), new BadRequest('post unjson data with application/json type')); + $data['_POST'] = $post; + if(!isset($data['_REQUEST'])){ + $data['_REQUEST'] = []; + } + $data['_REQUEST'] = array_merge($data['_POST'], $data['_REQUEST'] ); + } + } + elseif($contentType == 'text/plain'){ + $data['_POST'] = file_get_contents('php://input'); + } + } + //TODO: 支持put请求 + if(isset($data['_SERVER']['REQUEST_METHOD']) && 'PUT' == $data['_SERVER']['REQUEST_METHOD']){ + if($contentType == 'application/x-www-form-urlencoded'){ + $queryString = file_get_contents('php://input'); + $query = array(); + parse_str($queryString, $query); + $data['_POST'] = $query; + } + } + + $full_path = $data['_SERVER']['REQUEST_URI']; + Verify::isTrue($full_path, '$._SERVER.REQUEST_URI not found' ); + list($full_path,) = explode('?', $full_path); + + $paths = explode('/', $full_path); + $paths = array_filter($paths,function ($i){return $i !== '';}); + $paths = array_slice($paths, $this->url_begin); + $data['path'] = $paths; + $this->data = new JsonStore($data); + } + /** + * 获取http请求的所有header信息 + * @return array + */ + function getAllHeaders() { + $headers = array(); + foreach ($_SERVER as $name => $value) + { + if (substr($name, 0, 5) == 'HTTP_') + { + $name = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5))))); + $headers[$name] = $value; + } else if ($name == "CONTENT_TYPE") { + $headers["Content-Type"] = $value; + } else if ($name == "CONTENT_LENGTH") { + $headers["Content-Length"] = $value; + } + } + return $headers; + } + /** + * (non-PHPdoc) + * @see ArrayAccess::offsetExists() + */ + public function offsetExists($offset){ + return count($this->data->get($offset)) !==0; + } + /** + * (non-PHPdoc) + * @see ArrayAccess::offsetGet() + */ + public function offsetGet($offset) + { + $res = $this->data->get($offset); + if(!isset($res[0])){ + trigger_error("$offset not exist"); + } + return $res[0]; + } + /** + * @param string $expr jsonpath 表达式 + * @param $create 是否找不到就创建 + * @return [found, is succeed] + */ + public function find($expr, $create=false){ + $res= $this->data->get($expr, false, $create); + if(count($res) ===0 ){ + return array(null,false); + }else if(count($res) ===1){ + return array(&$res[0], true); + }else{ + return array(&$res, true); + } + } + + /** + * (non-PHPdoc) + * @see ArrayAccess::offsetSet() + */ + public function offsetSet($offset, $value) + { + Verify::isTrue($this->data->set($offset, $value)); + } + /** + * (non-PHPdoc) + * @see ArrayAccess::offsetUnset() + */ + public function offsetUnset($offset) + { + Verify::isTrue(false, 'NOT IMPL'); + } + /** + * 取数包含所有请求信息的数组 + * @return multitype: + */ + public function toArray(){ + return $this->data->toArray(); + } + private $data; + private $url_begin; +} diff --git a/codes/agent/game-docker/api/lib/phprs/Response.php b/codes/agent/game-docker/api/lib/phprs/Response.php new file mode 100644 index 0000000..1a37df7 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/Response.php @@ -0,0 +1,188 @@ +sender = $sender; + } + if ($this->sender === null) { + // TODO 严格检查方法的参数数量 + // 输出时按照下面数组中的顺序输出 + $this->sender = array( + 'header' => function ($_=null) + { + call_user_func_array('header', func_get_args()); + }, + 'status' => function ($var, $replace = true) + { + header($_SERVER["SERVER_PROTOCOL"] . ' '.$var, $replace); + }, + 'cookie' =>function ($name, $value, $expire=null, $path='/', $domain=null, $secure=null){ + if(is_string($expire)){ + $expire = strtotime($expire); + } + setcookie($name, $value, $expire, $path, $domain, $secure); + }, + 'body' => function ($var) + { + if (is_array($var) || is_object($var)) { + header("Content-Type: application/json; charset=UTF-8"); + echo json_encode($var); // TODO 自定义适配方法 + } else { + echo $var; + } + }, + 'break'=>function($_=null){ + //do nothing + }, + 'res'=>function ($status, $body){ + header($_SERVER["SERVER_PROTOCOL"] . ' '.$status, true); + if (is_array($body)) { + header("Content-Type: application/json; charset=UTF-8"); + echo json_encode($body); // TODO 自定义适配方法 + } else { + echo $body; + } + } + ); + } + } + + /** + * (non-PHPdoc) + * + * @see ArrayAccess::offsetExists() + */ + public function offsetExists($offset) + { + return isset($this->sender[$offset]); + } + + /** + * 通过[]操作符设置输出数据 + */ + public function &offsetGet($offset) + { + Verify::isTrue($this->offsetExists($offset), 'unsupported response ' . $offset); + if (! isset($this->buffer[$offset])) { + $this->buffer[$offset] = array(); + } + return $this->buffer[$offset]; + } + + /** + * (non-PHPdoc) + * + * @see ArrayAccess::offsetSet() + */ + public function offsetSet($offset, $value) + { + Verify::isTrue(false, 'NOT IMPL'); + } + + /** + * (non-PHPdoc) + * + * @see ArrayAccess::offsetUnset() + */ + public function offsetUnset($offset) + { + Verify::isTrue(false, 'NOT IMPL'); + } + /** + * 清除缓存 + * @return void + */ + public function clear(){ + $this->buffer = array(); + } + /** + * 想缓存写出 + * @param $limit 取指定的项目 + * @param $func 取出后调用的方法 + * @return array: + */ + public function flush($limit=null, $func=null) + { + foreach ($this->sender as $name=>$sender){ + if (!isset($this->buffer[$name])){ + continue; + } + if($limit !==null ){ + if($limit !== $name){ + continue; + } + if($func!==null){ + $sender = $func; + } + } + $funcs = $this->buffer[$name]; + foreach ($funcs as $args) { + // 确保所有参数均已设置 + ksort($args, SORT_NUMERIC); + $i = 0; + foreach ($args as $k => $v) { + Verify::isTrue($k === $i ++, "the no.$i arg from $name not exist"); + } + call_user_func_array($sender, $args); + } + if($limit !==null){ + break; + } + } + } + /** + * 附加更多数据 + * @param array $buffer + */ + public function append($buffer){ + foreach ($buffer as $name => $funcs) { + foreach ($funcs as $func){ + $this->buffer[$name][]=$func; + } + } + } + /** + * + * @return multitype: + */ + public function getBuffer(){ + return $this->buffer; + } + /** + * @param unknown $buffer + */ + public function setBuffer($buffer){ + $this->buffer = $buffer; + } + private $buffer = array(); + + private $sender; +} + diff --git a/codes/agent/game-docker/api/lib/phprs/Router.php b/codes/agent/game-docker/api/lib/phprs/Router.php new file mode 100644 index 0000000..9c1bd44 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/Router.php @@ -0,0 +1,346 @@ + url: /apis/test + * API2 接口 => url: /apis + * 那么当请求"/apis/test/123/" 最严格匹配的接口是API1 + * + * 如果需要让一个请求经过多个API调用, 比如有时候会需要一个统一验证的接口, 让所有请 + * 求先通过验证接口, 再调用其他接口. 此时可以通过Router的hooks属性, 设置一组hook实 + * 现. hook其实和普通的接口一样, 只是在hooks中指定后, 执行行为将有所不同: 请求会按 + * 优先级逐个经过hook, 只要匹配, hook的方法就会被调用, 直到最后调用普通的API + * + * 通过@return({"break", true})停止请求链路 + * + * @author caoym + */ +class Router +{ + private $class_loader; //用于确保反序列化时自动加载类文件 + /** + * + */ + function __construct( ){ + //AutoClassLoader确保序列化后自动加载类文件 + $this->class_loader = new AutoClassLoader(); + ClassLoader::addInclude($this->api_path); + //TODO: 支持名字空间 + //TODO: 支持多路径多类名 + $this->load($this->api_path, $this->apis, $this->api_method); + //允许通过接口访问api信息 + if($this->export_apis){ + $this->loadApi($this->routes, __DIR__.'/apis/ApiExporter.php', 'phprs\apis\ApiExporter'); + } + } + + /** + * 获取api文件列表 + * @return array + */ + public function getApiFiles(){ + return $this->class_loader->getClasses(); + } + /** + * 调用路由规则匹配的api + * @param Request $request + * @param Response $respond + * @return void + */ + public function __invoke($request=null, &$respond=null){ + if($request === null){ + $request = new Request(null,$this->url_begin); + } + if($respond==null){ + $respond = new Response(); + } + $request['$.router'] = $this; + //先按配置的顺序调用hook + foreach ($this->hook_routes as $hook){ + $res = new BufferedRespond(); + if(!$this->invokeRoute($hook, $request, $res)){ + continue; + } + $respond->append($res->getBuffer()); + $break = false; + $respond->flush('break', function($var)use(&$break){$break = $var;}); + if($break){ + Logger::info("invoke break"); + $respond->flush(); + return; + } + } + $res = new BufferedRespond(); + + Verify::isTrue($this->invokeRoute($this->routes, $request, $res), new NotFound()); + $respond->append($res->getBuffer()); + $respond->flush(); + } + /** + * + * @param string|array $api_path + * @param string $apis + * @param string $api_method + */ + public function load($api_path, $apis=null , $api_method=null){ + if(is_string($api_path)){ + $api_paths = array($api_path); + }else{ + $api_paths = $api_path; + } + Verify::isTrue(is_array($api_paths), 'invalid param'); + + foreach ($api_paths as $api_path){ + $this->loadRoutes($this->routes, $api_path, $apis, $api_method); + foreach ($this->hooks as $hook) { + $hook_route=array(); + $this->loadRoutes($hook_route, $api_path.'/hooks', $hook, null); + $this->hook_routes[] = $hook_route; + } + } + } + /** + * @return array + */ + public function getRoutes(){ + return $this->routes; + } + /** + * @return array + */ + public function getHooks(){ + return $this->hook_routes; + } + + /** + * 调用路由规则匹配的api + * @param array $routes 路由规则 + * @param unknown $request + * @param unknown $respond + * @return boolean 是否有匹配的接口被调用 + */ + private function invokeRoute($routes, $request, &$respond){ + $method = $request['$._SERVER.REQUEST_METHOD']; + $path = $request['$.path']; + $uri = $request['$._SERVER.REQUEST_URI']; + list(,$params) = explode('?', $uri)+array( null,null ); + $params = is_null($params)?null:explode('&', $params); + + Logger::debug("try to find route $method ".$uri); + $match_path = array(); + if(isset($routes[$method])){ + if(($api = $routes[$method]->findByArray($path,$params,$match_path)) !== null){ + Logger::debug("invoke $uri => {$api->getClassName()}::{$api->getMethodName()}"); + $api($request, $respond); + return true; + } + } + + if(!isset($routes['*'])){ + return false; + } + if(($api = $routes['*']->find($uri, $match_path)) === null){ + return false; + } + Logger::debug("invoke $uri => {$api->getClassName()}::{$api->getMethodName()}"); + $api($request, $respond); + + return true; + } + /** + * @param string $apis_dir + * @param string $class + * @param string $method + * @return void + */ + public function addRoutes($apis_dir, $class=null, $method=null){ + $this->loadRoutes($this->routes, $apis_dir, $class, $method); + } + /** + * 遍历API目录生成路由规则 + * @param object $factory + * @param string $apis_dir + * @param string $class + * @param string $method + * @param array $skipclass 需要跳过的类名 + * @return Router + */ + private function loadRoutes(&$routes, $apis_dir, $class, $method){ + Logger::info("attempt to load router $apis_dir"); + $dir = null; + + if(is_dir($apis_dir) && $class === null){ + $apis_dir=$apis_dir.'/'; + Verify::isTrue(is_dir($apis_dir), "$apis_dir not a dir"); + $dir = @dir($apis_dir); + Verify::isTrue($dir !== null, "open dir $apis_dir failed"); + $geteach = function ()use($dir){ + $name = $dir->read(); + if(!$name){ + return $name; + } + return $name; + }; + }else{ + if(is_file($apis_dir)){ + $files = array($apis_dir); + $apis_dir = ''; + }else{ + $apis_dir=$apis_dir.'/'; + if(is_array($class)){ + foreach ($class as &$v){ + $v .= '.php'; + } + $files = $class; + }else{ + $files = array($class.'.php'); + } + } + $geteach = function ()use(&$files){ + // 🚨 PHP8兼容性:each()函数替换,严格保持原有行为 + // ⚠️ 重要:必须保持数组指针移动行为与each()完全一致 + // ⚠️ 重要:必须保持文件加载顺序绝对不变 + $key = key($files); + if($key === null) { + return false; // ⚠️ 保持与each()相同的结束判断逻辑 + } + $value = current($files); + next($files); // ⚠️ 关键:保持指针移动与each()完全一致 + return $value; // ⚠️ 保持返回值格式与each()[1]完全一致 + }; + } + while( !!($entry = $geteach()) ){ + $path = $apis_dir. str_replace('\\', '/', $entry); + if(is_file($path) && substr_compare ($entry, '.php', strlen($entry)-4,4,true) ==0){ + $class_name = substr($entry, 0, strlen($entry)-4); + $this->loadApi($routes, $path, $class_name, $method); + }else{ + Logger::debug($path.' ignored'); + } + } + if($dir !== null){ + $dir->close(); + } + Logger::info("load router $apis_dir ok"); + return $routes; + } + /** + * 加载api类 + * @param array $routes + * @param string $class_file + * @param string $class_name + * @param string $method + * @return void + */ + private function loadApi(&$routes, $class_file, $class_name, $method=null){ + Verify::isTrue(is_file($class_file), $class_file.' is not an exist file'); + Logger::debug("attempt to load api: $class_name, $class_file"); + + $this->class_loader->addClass($class_name, $class_file); + $api = null; + if ($this->ignore_load_error){ + try { + $api = $this->factory->create('phprs\\Container', array($class_name, $method), null, null); + } catch (\Exception $e) { + Logger::warning("load api: $class_name, $class_file failed with ".$e->getMessage()); + return ; + } + }else{ + $api = $this->factory->create('phprs\\Container', array($class_name, $method), null, null); + } + + foreach ($api->routes as $http_method=>$route){ + if(!isset($routes[$http_method])){ + $routes[$http_method] = new HttpRouterEntries(); + } + $cur = $routes[$http_method]; + foreach ($route as $entry){ + list($uri,$invoke,$strict) = $entry; + $realpath = preg_replace('/\/+/', '/', '/'.$uri); + $strict = ($strict===null)?$this->default_strict_matching:$strict; + Verify::isTrue($cur->insert($realpath, $invoke, $strict), "repeated path $realpath"); + Logger::debug("api: $http_method $realpath => $class_name::{$entry[1]->method_name} ok, strict:$strict"); + } + } + Logger::debug("load api: $class_name, $class_file ok"); + } + private $routes=array(); + private $hook_routes=array(); + + + /** @inject("ioc_factory") */ + public $factory; + /** @property */ + private $api_path='apis'; + /** @property */ + private $apis=null; + /** @property */ + private $api_method=null; + + private $api_root=null; + /** @property + * 指定hook的类名, 从优先级高到低 + * 如果一条规则匹配多个hook, 则优先级高的先执行, 再执行优先级低的 + */ + private $hooks=array(); + /** + * @property + * 是否允许通过接口获取api信息 + */ + private $export_apis=true; + /** + * 用于匹配路由的url偏移 + * @property + */ + public $url_begin=0; + + /** + * 指定路由规则默认情况下是否严格匹配path,如果@route中已经指定严格模式,则忽略此默认设置 + * 严格模式将只允许同级目录匹配,否则父目录和子目录也匹配。 + * 非严格匹配时 + * 路由"GET /a" 和请求"GET /a"、"GET /a/b"、"GET /a/b/c"等匹配 + * 严格匹配时 + * 路由"GET /a" 和请求"GET /a"匹配、和"GET /a/b"、"GET /a/b/c"等不匹配 + * @property + */ + public $default_strict_matching=false; + /** + * @property 忽略类加载时的错误,只是跳过出错的接口。否则抛出异常。 + */ + public $ignore_load_error=true; + +} diff --git a/codes/agent/game-docker/api/lib/phprs/RouterWithCache.php b/codes/agent/game-docker/api/lib/phprs/RouterWithCache.php new file mode 100644 index 0000000..c6fa38d --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/RouterWithCache.php @@ -0,0 +1,70 @@ +factory->getConfFile() ===null){ + $key = 'phprs_route3_'.sha1(serialize($this->factory->getConf())); + }else{ + $key = 'phprs_route3_'.sha1($this->factory->getConfFile()); + } + $this->impl = $this->cache->get($key, $ok); + if($ok && is_object($this->impl)){ + Logger::info("router loaded from cache"); + return ; + } + $this->impl = $this->factory->create('phprs\\Router'); + //缓存过期判断依据 + //检查接口文件是否有修改\新增 + $check_files = array_values($this->impl->getApiFiles()); + $check_dirs=array(); + foreach($check_files as $file){ + if(is_file($file)){ + $check_dirs[] = dirname($file); + } + } + $check_files = array_merge($check_files, $check_dirs); + $check_files[]=$this->factory->getConfFile(); + + $this->cache->set($key, $this->impl, 0, new FileExpiredChecker($check_files)); //接口文件或者配置文件修改 + } + /** + * 调用路由规则匹配的api + * @param Request $request + * @param Response $respond + * @return mixed + */ + function __invoke($request=null, &$respond=null){ + return $this->impl->__invoke($request, $respond); + } + + /** @property({"default":"@phprs\util\Cache"}) */ + private $cache; + /** @inject("ioc_factory") */ + private $factory; + + private $impl; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/apis/ApiExporter.php b/codes/agent/game-docker/api/lib/phprs/apis/ApiExporter.php new file mode 100644 index 0000000..5e068a0 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/apis/ApiExporter.php @@ -0,0 +1,799 @@ +router->getHooks() as $hooks) { + foreach ($hooks as $method => $hook) { + $entries = $hook->export(); + foreach ($entries as $entry) { + list ($uri, $invoker) = $entry; + $info['type'] = 'hook'; + $info['uri'] = array( + $method, + $uri + ); + $info = array_merge($info, $this->getInvokerInfo($method,$uri, $invoker)); + $apis[$invoker->getClassName()]['apis'][] = $info; + } + } + } + // 导出api信息 + foreach ($this->router->getRoutes() as $method => $route) { + $entries = $route->export(); + foreach ($entries as $entry) { + list ($uri, $invoker) = $entry; + $info['type'] = 'api'; + $info['uri'] = array( + $method, + $uri, + ); + $info = array_merge($info, $this->getInvokerInfo($method,$uri,$invoker)); + $apis[$invoker->getClassName()]['apis'][] = $info; + } + } + + foreach ($apis as $class_name => &$info) { + $ann = new \ReflectionClass($class_name); + $apis[$class_name]['doc'] = $this->getDocText($ann->getDocComment()); + //排序, 便于阅读 + usort($info['apis'], function($lh, $rh){ + return strcmp($rh['uri'][1].$rh['uri'][0], $lh['uri'][1].$lh['uri'][0] ); + }); + } + return $apis; + } + + private static $css = << +pre {border: 1px solid #bbb; padding: 10px;} + +EOT; + + /** + * 导出API信息 + * 简陋的html形式 + * + * @param Router $router + * @route({"GET","/apis/",true}) + * @return ({"header", "Content-Type: text/html; charset=UTF-8"}) + */ + public function exportMainHtml() + { + $info = $this->exportJson(); + + $body = ''; + $body .= ''; + $body = '
      '; + foreach ($info as $class_name => $apis) { + $body .= "
    1. $class_name
    2. "; + $body .= '

      '; + $body .= nl2br(htmlentities($apis['doc'])); + $body .= '

      '; + } + $body .= '
    '; + $body .= ''; + $body .= ''; + return $body; + } + + /** + * 导出API信息 + * 简陋的html形式 + * + * @route({"GET", "/apis/*"}) + * + * @param({"class_name", "$.path[1:]"}) + * @return ({"header", "Content-Type: text/html; charset=UTF-8"}) + */ + public function exportApiHtml($class_name) + { + if (is_array($class_name)) { + $class_name = implode('\\', $class_name); + } + // TODO: html+js重写吧 + $body = self::$css; + $body .= ''; + $body .= ''; + $info = $this->exportJson(); + $apis = $info[$class_name]; + // 类名 + $body .= '

    '; + $body .= htmlentities($class_name); + $body .= '

    '; + + $body .= '

    '; + $body .= nl2br(htmlentities($apis['doc'])); + $body .= '

    '; + + $body .= '
      '; + // 接口 + foreach ($apis['apis'] as $api) { + $body .= '

      '; + $body .= '
    1. '; + $body .= htmlentities($api['uri'][0] . ' ' . $api['uri'][1]); + $body .= '
    2. '; + $body .= '

      '; + // 说明 + $body .= '

      '; + $body .= nl2br(htmlentities($api['doc'])); + $body .= '

      '; + + // 请求 + list ($sample, $doc) = $this->createRequestDoc($api); + $body .= '

      >>Request

      '; + $body .= '
      ';
      +            $body .= $sample;
      +            $body .= '
      '; + + $body .= '

      '; + $body .= nl2br(htmlentities($doc)); + $body .= '

      '; + + // 响应 + + list ($sample, $doc) = $this->createResponseDoc($api, $api['type'] ==='api'); + $body .= '

      >>Response(OK)

      '; + $body .= '
      ';
      +            $body .= $sample;
      +            $body .= '
      '; + + $body .= '

      '; + $body .= nl2br(htmlentities($doc)); + $body .= '

      '; + + // 异常 + $fails = $this->createExceptionDoc($api); + + foreach ($fails as $name => $info) { + $body .= '

      >>Response (Fail: ' . $name . ')

      '; + $body .= '
      ';
      +                $body .= $info[0];
      +                $body .= '
      '; + + $body .= '

      '; + $body .= nl2br(htmlentities($info[1])); + $body .= '

      '; + } + + $body .= '

      >>Response (Fail: unknown)

      '; + $body .= '
      ';
      +            $body .= "HTTP/1.1 500 Internal Server Error\r\n\r\n";
      +            $body .= '
      '; + + } + $body .= '
    '; + + $body .= ''; + $body .= ''; + return $body; + } + + /** + * 生成请求的示例和说明 + * + * @param array $api + * @return array [sample, doc] + */ + private function createRequestDoc($api) + { + //TODO: 需要处理特殊情况: 输入被绑定在多个参数, 或者输入的不同重叠区域被绑定到不同参数时 + $docs = ''; + // 提取参数 + $params = new JsonStore(array()); + foreach ($api['params'] as $name => $param) { + $ori = $params->get($param['value']); + if (count($ori) !== 0) { // 现在不支持同一个变量多个地方引用 + continue; + } + $info = new \ArrayObject(array( + $name, + $param, + )); + $params->set($param['value'], $info); + } + $params = $params->toArray(); + // 路由中指定的路径 + $route_path = HttpRouterEntries::stringToPath($api['uri'][1]); // 这是绝对路径 + $path = $api['uri'][0]; + // 路径拼到示例中 + if (isset($params['path'])) { + $req_path = $params['path']; // 请求中使用的路径, 这是相对路径 + $offest = count(HttpRouterEntries::stringToPath($api['root'])); // 相对于绝对路径的偏移 + + if (is_array($req_path)) { // 参数只是路径的一部分 + if(count($req_path)>0){ + $end = max(array_keys($req_path)); + Verify::isTrue($end <128, "too long path with length $end"); + for ($i = 0; $i <= $end; $i ++) { + if (isset($req_path[$i])) { + list ($arg_name, $arg_info) = $req_path[$i]; + if(isset($route_path[$i + $offest]) && $route_path[$i + $offest] !=='*'){ + //忽略固定的路径 + }else{ + $route_path[$i + $offest] = "[$arg_name]"; + $docs = "$docs$arg_name:\r\n {$arg_info['doc']}\r\n\r\n"; + } + } else { + if (! isset($route_path[$i + $offest])) { + $route_path[$i + $offest] = '*'; + } + } + } + } + } else { // 参数整个路径 + list ($arg_name, $arg_info) = $req_path; + $route_path[$offest] = "[$arg_name]"; + $docs = "$docs$arg_name:\r\n {$arg_info['doc']}\r\n\r\n"; + } + + unset($params['path']); + } + $path .= ' /'; + $path .= implode('/', $route_path); + // querystring + if (isset($params['_GET'])) { + $get = $params['_GET']; + if(is_array($get)){ + $first = true; + foreach ($get as $name => $value) { + list ($arg_name, $arg_info) = $value; + if ($first) { + $path = $path . '?'; + $first = false; + } else { + $path = $path . '&'; + } + $path = "$path$name=[$arg_name]"; + $docs = "$docs$arg_name:\r\n {$arg_info['doc']}\r\n\r\n"; + } + }else{ + // 参数整个_GET + list ($arg_name, $arg_info) = $get; + $path = "$path?[$arg_name]"; + $docs = "$docs$arg_name:\r\n {$arg_info['doc']}\r\n\r\n"; + } + unset($params['_GET']); + } + $path .= " HTTP/1.1\r\n"; + + // header + $header = ''; + if (isset($params['header'])) { + $headers = $params['header']; + $first = true; + foreach ($headers as $header_name => $value) { + + //if (substr_compare($name, 'HTTP_X_', 0, 7) !== 0) { + // continue; + //} + //$words = explode('_', substr($name, 7)); + //$header_name = ''; + //foreach ($words as $k => $word) { + // $words[$k] = ucwords(strtolower($word)); + //} + //$header_name = implode('-', $words); + list ($arg_name, $arg_info) = $value; + $header = "$header$header_name: [$arg_name]\r\n"; + $docs = "$docs$arg_name:\r\n {$arg_info['doc']}\r\n\r\n"; + unset($params['_SERVER'][$name]); + } + } + + // cookie + $header = ''; + if (isset($params['_COOKIE'])) { + $cookies = $params['_COOKIE']; + $first = true; + $header = $header."Cookie: "; + foreach ($cookies as $cookie_name => $value) { + list ($arg_name, $arg_info) = $value; + $header = "$header$cookie_name=[$arg_name];"; + $docs = "$docs$arg_name:\r\n {$arg_info['doc']}\r\n\r\n"; + } + $header .= "\r\n"; + } + + // body + $body = ''; + if (isset($params['_POST'])) { + $post = $params['_POST']; + $first = true; + if(is_array($post)){ + foreach ($post as $name => $value) { + list ($arg_name, $arg_info) = $value; + if ($first) { + $first = false; + } else { + $body = $body . '&'; + } + $body = "$body$name=[$arg_name]"; + $docs = "$docs$arg_name:\r\n {$arg_info['doc']}\r\n\r\n"; + } + }else{ + // 参数整个_POST + list ($arg_name, $arg_info) = $post; + $body = "{$body}[$arg_name]"; + $docs = "$docs$arg_name:\r\n {$arg_info['doc']}\r\n\r\n"; + } + unset($params['_POST']); + } + + if (isset($params['_FILES'])) { + $files = $params['_FILES']; + if(is_array($files)){ + foreach ($files as $name => $value) { + //TODO: 这里假设只有一个文件上传 + list ($arg_name, $arg_info) = $this->searchArgInfo($value); + $docs = "$docs$name:\r\n {$arg_info['doc']}\r\n\r\n"; + } + } + unset($params['_POST']); + } + + $sample = $path . $header . "\r\n" . $body; + return array( + $sample, + $docs, + ); + } + private function searchArgInfo($value){ + if(is_object($value)){ + return $value; + } + return $this->searchArgInfo(array_values($value)[0]); + } + /** + * 生成响应的示例和说明 + * + * @param array $api + * @return array [sample, doc] + */ + private function createResponseDoc($api, $default_return=true) + { + // 'name' => $fun_name, + // 'args' => $args, + // 'doc' => $anns['return'][$id]['doc'] + $status = ''; + if($default_return){ + $status = "HTTP/1.1 200 OK\r\n"; + } + + $header = ''; + $doc = ''; + $body = ''; + foreach ($api['returns'] as $return) { + $info = $this->getResponseInfo($return); + if (isset($info['status'])) { + $status = $info['status']; + } + if (isset($info['header'])) { + $header .= $info['header']; + } + if (isset($info['body'])) { + $body .= $info['body']; + } + if (isset($info['doc']) && $info['doc']) { + $doc .= $info['doc']; + } + } + $sample = $status . $header . "\r\n" . $body; + return array( + $sample, + $doc, + ); + } + + /** + * 生成响应的示例和说明 + * + * @param array $api + * @return array [sample, doc] + */ + private function createExceptionDoc($api) + { + // 'name' => $fun_name, + // 'args' => $args, + // 'doc' => $anns['return'][$id]['doc'] + $res = array(); + foreach ($api['throws'] as $name => $throws) { + $status = "HTTP/1.1 500 Internal Server Error\r\n"; + $header = ''; + $doc = ''; + $body = ''; + + foreach ($throws as $throw) { + $info = $this->getResponseInfo($throw); + if (isset($info['status'])) { + $status = $info['status']; + } + if (isset($info['header'])) { + $header .= $info['header']; + } + if (isset($info['body'])) { + if(is_array($info['body'])){ + $body .= json_encode($info['body']); + }else{ + $body .= $info['body']; + } + } + if (isset($info['doc']) && $info['doc']) { + $doc .= $info['doc']; + } + } + $sample = $status . $header . "\r\n" . $body; + $res[$name] = array( + $sample, + $doc, + ); + } + + return $res; + } + + /** + * 获取单个响应的示例和说明 + * + * @param array $api + * @return array [sample, doc] + */ + private function getResponseInfo($return) + { + $res = array(); + if ($return['name'] === 'status') { + $arg = $return['args'][0]; + $value = $arg['value']; + if ($arg['is_const']) { + $res['status'] = "HTTP/1.1 $value\r\n"; + } else { + $res['status'] = "HTTP/1.1 [$value]\r\n"; + } + if ($return['doc']) { + $res['doc'] = "$value:\r\n {$return['doc']}\r\n\r\n"; + } + } elseif($return['name'] === 'res'){ + $arg = $return['args'][0]; + $value = $arg['value']; + if ($arg['is_const']) { + $res['status'] = "HTTP/1.1 $value\r\n"; + } else { + $res['status'] = "HTTP/1.1 [$value]\r\n"; + } + if ($return['doc']) { + $res['doc'] = "$value:\r\n {$return['doc']}\r\n\r\n"; + } + + $arg = $return['args'][1]; + $value = $arg['value']; + if ($arg['is_const']) { + $res['body'] = $value; + } else { + if($value){ + $res['body'] = "[$value]"; + }else{ + $res['body'] = "[return]"; + } + + } + if ($return['doc']) { + if(is_array($value)){ + $value = json_encode($value); + } + $res['doc'] = "return $value:\r\n {$return['doc']}\r\n\r\n"; + } + + }elseif($return['name'] === 'header') { + $arg = $return['args'][0]; + $value = $arg['value']; + if ($arg['is_const']) { + $res['header'] .= "$value \r\n"; + } else { + $res['header'] .= "[$value] \r\n"; + } + if ($return['doc']) { + $res['doc'] = "$value:\r\n {$return['doc']}\r\n\r\n"; + } + } elseif ($return['name'] === 'cookie') { + $args = $return['args']; + foreach ($args as $k => &$arg) { + if (! $arg['is_const']) { + $value = $arg['value']; + $arg['value'] = "[$value]"; + } + } + if ($return['doc']) { + $res['doc'] = "cookie {$args[0]['value']}:\r\n {$return['doc']}\r\n\r\n"; + } + + $res['header'] = 'Set-Cookie: ' . $args[0]['value'] . '=' . $args[1]['value'] + . (empty($args[2]['value']) ? '' : '; expires=' . gmdate('D, d-M-Y H:i:s', strtotime($args[2]['value'])) . ' GMT') + . (empty($args[3]['value']) ? '' : '; path=' . $args[3]['value']) + . (empty($args[4]['value']) ? '' : '; domain=' . $args[4]['value']) + . (empty($args[5]['value']) ? '' : '; secure') + . (empty($args[6]['value']) ? '' : '; HttpOnly'); + $res['header'] .= "\r\n"; + } elseif ($return['name'] === 'body') { + $arg = $return['args'][0]; + $value = $arg['value']; + if ($arg['is_const']) { + $res['body'] = $value; + } else { + if($value){ + $res['body'] = "[$value]"; + }else{ + $res['body'] = "[return]"; + } + + } + if ($return['doc']) { + if(is_array($value)){ + $value = json_encode($value); + } + $res['doc'] = "return $value:\r\n {$return['doc']}\r\n\r\n"; + } + } + return $res; + } + + /** + * 遍历数组, 子数组 + * + * @param unknown $arr + */ + static function walkTree(&$arr, $visitor) + { + foreach ($arr as $k => &$v) { + if (is_array($v)) { + self::walkTree($v, $visitor); + } else { + $visitor($v); + } + } + } + + /** + * 获取invoker信息 + * + * @param Invoker $invoker + * @param $method http方法 + * @param $uri http url + * @return array + */ + public function getInvokerInfo( $method,$uri, $invoker) + { + $res = array(); + $res['impl'] = $invoker->getMethodName(); + $ann = new AnnotationReader(); + $refl = new \ReflectionClass($invoker->getClassName()); + $mrefl = $refl->getMethod($invoker->getMethodName()); + $anns = $ann->getMethodAnnotations($mrefl, true); + // 过滤无效的参数 + if(isset($anns['param'])){ + $anns['param'] = array_values(array_filter($anns['param'], function ($i) + { + return isset($i['value']); + })); + } + if(isset($anns['return'])){ + $anns['return'] = array_values(array_filter($anns['return'], function ($i) + { + return isset($i['value']); + })); + } + if(isset($anns['throws'])){ + $anns['throws'] = array_values(array_filter($anns['throws'], function ($i) + { + return isset($i['value']); + })); + } + + $res['doc'] = $this->getDocText($mrefl->getDocComment()); + //找到匹配的@route注释 + foreach ($anns['route'] as $route_doc){ + //TODO: 同时精确匹配和通配符匹配时, 怎么处理 + if(isset($route_doc['value'])){ + list($m, $u) = $route_doc['value']; + $full_url = $invoker->getContainer()->path.'/'.$u; + $full_url = HttpRouterEntries::stringToPath($full_url); + if($full_url == HttpRouterEntries::stringToPath($uri) && + $m === $method){ + $text = $this->getDocText($route_doc['desc']); + if(!empty($text)){ + $res['doc'] .= "\r\n"; + $res['doc'] .= $text; + } + break; + } + } + } + $anns['route']; + $res['root'] = '/'; + $res['path'] = $invoker->getContainer()->path; + + // 获取参数信息 + $res['params'] = array(); + foreach ($invoker->getParams()->getParams() as $param) { + list ($is_const, $value, $info, $id) = $param; + list ($name, $is_ref, $is_optional, $default) = $info; + if (! $is_const) { + $res['params'][$name] = array( + 'value' => $value, + 'is_ref' => $is_ref, + 'is_optional' => $is_optional, + 'default' => $default, + 'doc' => $this->getDocText($anns['param'][$id]['desc']), + ); + } + } + + // 依赖只是特殊的参数 + $defaults = $refl->getDefaultProperties(); + foreach ($refl->getProperties() as $property) { + foreach ($ann->getPropertyAnnotations($property, true) as $type => $value) { + if ($type !== 'inject') { + continue; + } + $name = $property->getName(); + $value = $value[0]; + if (is_array($value['value'])) { + $src = $value['value']['src']; + if (isset($value['value']['optional']) && $value['value']['optional']) { + $is_optional = true; + } + if (isset($value['value']['default'])) { + $default = $value['value']['default']; + } + } else { + $src = $value['value']; + } + + if (substr($src, 0, 1) !== '$') { + continue; + } + if (array_key_exists($name, $defaults)) { + $is_optional = true; + $default = $defaults[$name]; + } + + $res['params'][$name] = array( + 'value' => $src, + 'is_ref' => false, + 'is_optional' => $is_optional, + 'default' => $default, + 'doc' => $this->getDocText($value['desc']), + ); + } + } + + // 获取返回值信息 + $res['returns'] = array(); + foreach ($invoker->getReturns()->getParams() as $fun_name => $calls) { + foreach ($calls as $id => $call) { + $args = array(); + foreach ($call as $num => $arg) { + list ($is_const, $value, $pos, $info) = $arg; + list ($name, $is_ref, $is_optional, $default) = $info; + + $args[$num] = array( + 'value' => $value, + 'name' => $name, + 'is_const' => $is_const, + ); + } + + $res['returns'][] = array( + 'name' => $fun_name, + 'args' => $args, + 'doc' => $id===-1?null:$this->getDocText($anns['return'][$id]['desc']), + ); + } + } + // 获取异常信息 + $res['throws'] = array(); + foreach ($invoker->getThrows()->getParams() as $exce_name => $throws) { + // $res['throws'][$exce_name] = array(); + foreach ($throws as $fun_name => $calls) { + foreach ($calls as $id => $call) { + $args = array(); + if($call !== null){ + foreach ($call as $num => $arg) { + $args[$num] = array( + 'value' => $arg, + 'name' => null, + 'is_const' => true, + ); + } + } + $res['throws'][$exce_name][] = array( + 'name' => $fun_name, + 'args' => $args, + 'doc' => $this->getDocText($anns['throws'][$id]['desc']), + ); + } + } + } + return $res; + } + + /** + * 去掉文档中的@标记和*号等, 保留可读文本 + * + * @param string $doc + * @return string + */ + private function getDocText($doc) + { + $lines = explode("\n", $doc); + $ignore = array( + '@return', + '@param', + '@throws', + '@route', + '@path', + '@cache', + ); + $text = ''; + $fistline = true; + $is_ignored = false; + foreach ($lines as $num => $ori_line) { + $line = trim($ori_line, "*/\r\n\t "); + if($is_ignored){ + if(substr($line, 0, 1 ) !== '@'){ + continue; + } + } + $is_ignored = false; + foreach ($ignore as $word) { + if (strlen($line)>= strlen($word) && 0 === substr_compare($line, $word, 0, strlen($word))) { + $is_ignored = true; + break; + } + } + if ($is_ignored) { + continue; + } + if ($fistline) { + $fistline = false; + } else { + $text .= "\r\n"; + } + $text .= trim(trim($ori_line, " \t\r\n"), "*/"); + } + $text = trim($text, "\r\n"); + return $text; + } + + /** + * @inject("$.router") + */ + private $router; +} diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/DB.php b/codes/agent/game-docker/api/lib/phprs/ezsql/DB.php new file mode 100644 index 0000000..39584bf --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/DB.php @@ -0,0 +1,22 @@ + "SET NAMES'utf8';"]){ + parent::__construct($dsn, $username, $passwd, $options); + $this->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + } +} diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/Native.php b/codes/agent/game-docker/api/lib/phprs/ezsql/Native.php new file mode 100644 index 0000000..d1d8c28 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/Native.php @@ -0,0 +1,27 @@ +str = $str; + } + public function __toString(){ + return $this->str; + } + public function get(){ + return $this->str; + } + private $str; +} diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/README.md b/codes/agent/game-docker/api/lib/phprs/ezsql/README.md new file mode 100644 index 0000000..d9743ff --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/README.md @@ -0,0 +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 + diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/Sql.php b/codes/agent/game-docker/api/lib/phprs/ezsql/Sql.php new file mode 100644 index 0000000..dce46ae --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/Sql.php @@ -0,0 +1,132 @@ +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); + * + * // 2. update + * $rows = Sql::update('table') + * ->set('a', 1) + * ->where('b=?', 2) + * ->orderBy('c', Sql::$ORDER_BY_ASC) + * ->limit(1) + * ->exec($db) + * ->rows + * + * // 3. insert + * $newId = Sql::insertInto('table') + * ->values(['a'=>1]) + * ->exec($db) + * ->lastInsertId() + * + * //4. delete + * $rows = Sql::deleteFrom('table') + * ->where('b=?', 2) + * ->orderBy('c', Sql::$ORDER_BY_ASC) + * ->limit(1) + * ->exec($db) + * ->rows + * + * @author caoym + */ +class Sql{ + /** + * select('column0,column1') => "SELECT column0,column1" + * + * select('column0', 'column1') => "SELECT column0,column1" + * + * @param $param0 columns + * @return \phprs\ezsql\rules\select\FromRule + */ + static public function select($param0='*', $_=null){ + $obj = new SelectRule(new SqlConetxt()); + $args = func_get_args(); + if(empty($args)){ + $args = ['*']; + } + return $obj->select(implode(',', $args)); + } + /** + * insertInto('table') => "INSERT INTO table" + * + * @param string $table + * @return \phprs\ezsql\rules\insert\ValuesRule + */ + static public function insertInto($table) { + $obj = new InsertRule(new SqlConetxt()); + return $obj->insertInto($table); + } + /** + * update('table') => "UPDATE table" + * @param string $table + * @return \phprs\ezsql\rules\update\UpdateSetRule + */ + static public function update($table) { + $obj = new UpdateRule(new SqlConetxt()); + return $obj->update($table); + } + + /** + * deleteFrom('table') => "DELETE FROM table" + * @param string $table + * @return \phprs\ezsql\rules\basic\WhereRule + */ + static public function deleteFrom($table){ + $obj = new DeleteRule(new SqlConetxt()); + return $obj->deleteFrom($table); + } + /** + * replaceInto('table') => "REPLACE INTO table" + * @param string $table + * @return \phprs\ezsql\rules\replace\ValuesRule + */ + static public function replaceInto($table){ + $obj = new ReplaceIntoRule(new SqlConetxt()); + return $obj->replaceInto($table); + } + /** + * Splice sql use native string(without escaping) + * for example: + * where('time>?', 'now()') => " WHERE time > 'now()' " + * where('time>?', Sql::native('now()')) => " WHERE time > now() " + * @param string $str + * @return Native + */ + static public function native($str){ + return new Native($str); + } + + static public $ORDER_BY_ASC ='ASC'; + static public $ORDER_BY_DESC ='DESC'; +} diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/SqlConetxt.php b/codes/agent/game-docker/api/lib/phprs/ezsql/SqlConetxt.php new file mode 100644 index 0000000..ae9b4a4 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/SqlConetxt.php @@ -0,0 +1,37 @@ +sql == ''){ + $this->sql = $sql; + }else{ + if($addSpace){ + $this->sql = $this->sql.' '.$sql; + }else{ + $this->sql = $this->sql.$sql; + } + } + } + /** + * 增加绑定变量值 + * @param array $params 变量 + */ + public function appendParams($params){ + $this->params = array_merge($this->params, $params); + } + public $sql=''; + public $params=[]; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/impls.php b/codes/agent/game-docker/api/lib/phprs/ezsql/impls.php new file mode 100644 index 0000000..03c6008 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/impls.php @@ -0,0 +1,469 @@ +pdo = $pdo; + $this->st = $st; + $this->success = $success; + $this->rows = $this->st->rowCount(); + } + public function lastInsertId($name=null){ + return $this->pdo->lastInsertId($name); + } + /** + * @var bool + * true on success or false on failure. + */ + public $success; + /** + * @var int + * the number of rows. + */ + public $rows; + /** + * + * @var \PDO + */ + public $pdo; + + /** + * @var \PDOStatement + */ + public $st; +} + +class SelectImpl +{ + static public function select($context, $columns){ + $context->appendSql("SELECT $columns"); + } +} + +class FromImpl +{ + static public function from($context, $tables){ + $context->appendSql("FROM $tables"); + } +} + +class DeleteImpl +{ + static public function deleteFrom($context, $from) + { + $context->appendSql("DELETE FROM $from"); + } +} + +class JoinImpl +{ + static public function join($context, $type, $table) { + if($type){ + $context->appendSql("$type JOIN $table"); + }else{ + $context->appendSql("JOIN $table"); + } + } +} + +class JoinOnImpl +{ + static public function on($context, $condition) { + $context->appendSql("ON $condition"); + } +} + +class ForUpdateImpl +{ + static public function forUpdate($context){ + $context->appendSql("FOR UPDATE"); + } +} + +class ForUpdateOfImpl +{ + static public function of($context, $column){ + $context->appendSql("OF $column"); + } +} + +class InsertImpl +{ + static public function insertInto($context, $table) { + $context->appendSql("INSERT INTO $table"); + } +} +class ReplaceImpl +{ + static public function replaceInto($context, $table) { + $context->appendSql("REPLACE INTO $table"); + } +} +class ValuesImpl +{ + static public function values($context, $values){ + $params = []; + $stubs = []; + foreach ($values as $v){ + if(is_a($v, 'phprs\\ezsql\\Native')){//直接拼接sql,不需要转义 + $stubs[]=$v->get(); + }else{ + $stubs[]='?'; + $params[] = $v; + } + } + $stubs = implode(',', $stubs); + + if(array_keys($values) === range(0, count($values) - 1)){ + //VALUES(val0, val1, val2) + $context->appendSql("VALUES($stubs)"); + + }else{ + //(col0, col1, col2) VALUES(val0, val1, val2) + $columns = implode(',', array_keys($values)); + $context->appendSql("($columns) VALUES($stubs)",false); + } + $context->appendParams($params); + } + private $sql = null; +} + +class UpdateImpl +{ + static public function update($context, $table){ + $context->appendSql("UPDATE $table"); + } +} + +class UpdateSetImpl +{ + public function set($context, $column, $value){ + $prefix = ''; + if($this->first){ + $this->first = false; + $prefix = 'SET '; + }else{ + $prefix = ','; + } + if(is_a($value, 'phprs\\ezsql\\Native')){ + $context->appendSql("$prefix$column=$value",$prefix == 'SET '); + }else{ + $context->appendSql("$prefix$column=?",$prefix == 'SET '); + $context->appendParams([$value]); + } + } + public function setArgs($context, $values){ + $set = []; + $params = []; + foreach ($values as $k=>$v){ + if(is_a($v, 'phprs\\ezsql\\Native')){//直接拼接sql,不需要转义 + $set[]= "$k=".$v->get(); + }else{ + $set[]= "$k=?"; + $params[]=$v; + } + } + if($this->first){ + $this->first = false; + $context->appendSql('SET '.implode(',', $set)); + $context->appendParams($params); + }else{ + $context->appendSql(','.implode(',', $set),false); + $context->appendParams($params); + } + } + private $first=true; +} +class OrderByImpl +{ + public function orderByArgs($context, $orders){ + if(empty($orders)){ + return $this; + } + $params = array(); + foreach ($orders as $k=>$v){ + if(is_integer($k)){ + Verify::isTrue( + preg_match('/^[a-zA-Z0-9_.]+$/', $v), + new \InvalidArgumentException("invalid params for orderBy(".json_encode($orders).")")); + + $params[] = $v; + }else{ + $v = strtoupper($v); + Verify::isTrue( + preg_match('/^[a-zA-Z0-9_.]+$/', $k) && + ($v =='DESC' || $v =='ASC'), new \InvalidArgumentException("invalid params for orderBy(".json_encode($orders).")")); + + $params[] = "$k $v"; + } + } + if($this->first){ + $this->first = false; + $context->appendSql('ORDER BY '.implode(',', $params)); + }else{ + $context->appendSql(','.implode(',', $params),false); + } + return $this; + } + public function orderBy($context, $column, $order=null){ + if($this->first){ + $this->first = false; + $context->appendSql("ORDER BY $column"); + }else{ + $context->appendSql(",$column", false); + } + if($order){ + $context->appendSql($order); + } + return $this; + } + private $first=true; +} + +class LimitImpl +{ + static public function limit($context, $size){ + $intSize = intval($size); + Verify::isTrue(strval($intSize) == $size, + new \InvalidArgumentException("invalid params for limit($size)")); + $context->appendSql("LIMIT $size"); + } + static public function limitWithOffset($context,$start, $size){ + $intStart = intval($start); + $intSize = intval($size); + Verify::isTrue(strval($intStart) == $start && strval($intSize) == $size, + new \InvalidArgumentException("invalid params for limit($start, $size)")); + $context->appendSql("LIMIT $start,$size"); + } +} + +class WhereImpl{ + + static private function findQ($str,$offset = 0,$no=0){ + $found = strpos($str, '?', $offset); + if($no == 0 || $found === false){ + return $found; + } + return self::findQ($str, $found+1, $no-1); + } + static public function having($context, $expr, $args){ + self::condition($context, 'HAVING', $expr, $args); + } + static public function where($context, $expr, $args){ + self::condition($context, 'WHERE', $expr, $args); + } + + static public function havingArgs($context, $args){ + self::conditionArgs($context, 'HAVING', $args); + } + static public function whereArgs($context, $args){ + self::conditionArgs($context, 'WHERE', $args); + } + /** + * find like Mongodb query glossary + * whereArray( + * [ + * 'id'=>['>'=>1], + * 'name'=>'cym', + * ] + * ) + * 支持的操作符有 + * = 'id'=>['=' => 1] + * > 'id'=>['>' => 1] + * < 'id'=>['<' => 1] + * <> 'id'=>['<>' => 1] + * >= 'id'=>['>=' => 1] + * <= 'id'=>['<=' => 1] + * BETWEEN 'id'=>['BETWEEN' => [1 ,2]] + * LIKE 'id'=>['LIKE' => '1%'] + * IN 'id'=>['IN' => [1,2,3]] + * NOT IN 'id'=>['NOT IN' => [1,2,3]] + * + * @param array $args + */ + static public function conditionArgs($context, $prefix, $args=[]){ + if($args ===null){ + return ; + } + $exprs = array(); + $params = array(); + foreach ($args as $k => $v){ + if(is_array($v)){ + $ops = ['=', '>', '<', '<>', '>=', '<=', 'IN', 'NOT IN', 'BETWEEN', 'LIKE']; + $op = array_keys($v)[0]; + $op = strtoupper($op); + + Verify::isTrue( + false !== array_search($op, $ops), + new \InvalidArgumentException("invalid param $op for whereArgs")); + + $var = array_values($v)[0]; + if($op == 'IN' || $op == 'NOT IN'){ + $stubs = []; + foreach ($var as $i){ + if(is_a($i, 'phprs\\ezsql\\Native')){ + $stubs[]=strval($i); + }else{ + $stubs[]='?'; + $params[] = $i; + } + } + $stubs = implode(',', $stubs); + $exprs[] = "$k $op ($stubs)"; + }else if($op == 'BETWEEN'){ + $cond = "$k BETWEEN"; + if(is_a($var[0], 'phprs\\ezsql\\Native')){ + $cond = "$cond ".strval($var[0]); + }else{ + $cond = "$cond ?"; + $params[] = $var[0]; + } + if(is_a($var[1], 'phprs\\ezsql\\Native')){ + $cond = "$cond AND ".strval($var[1]); + }else{ + $cond = "$cond AND ?"; + $params[] = $var[1]; + } + $exprs[] = $cond; + }else{ + if(is_a($var, 'phprs\\ezsql\\Native')){ + $exprs[] = "$k $op ".strval($var); + }else{ + $exprs[] = "$k $op ?"; + $params[] = $var; + } + } + }else{ + if(is_a($v, 'phprs\\ezsql\\Native')){ + $exprs[] = "$k = ".strval($v); + + }else{ + $exprs[] = "$k = ?"; + $params[] = $v; + } + } + } + + return self::condition($context, $prefix, implode(' AND ', $exprs), $params); + } + static public function condition($context, $prefix, $expr, $args){ + if(!empty($expr)){ + if($args){ + //因为PDO不支持绑定数组变量, 这里需要手动展开数组 + //也就是说把 where("id IN(?)", [1,2]) 展开成 where("id IN(?,?)", 1,2) + $cutted = null; + $cut = null; + $toReplace = array(); + + $newArgs=array(); + //找到所有数组对应的?符位置 + foreach ($args as $k =>$arg){ + if(is_array($arg) || is_a($arg, 'phprs\\ezsql\\Native')){ + if(!$cutted){ + $cut = new NestedStringCut($expr); + $cutted = $cut->getText(); + } + //找到第$k个?符 + $pos = self::findQ($cutted, 0, $k); + $pos = $cut->mapPos($pos); + Verify::isTrue($pos !== false, + new \InvalidArgumentException("unmatched params and ? @ $expr")); + + if(is_array($arg)){ + $stubs = []; + foreach ($arg as $i){ + if(is_a($i, 'phprs\\ezsql\\Native')){ + $stubs[] = strval($i); + }else{ + $stubs[] = '?'; + $newArgs[] = $i; + } + } + $stubs = implode(',', $stubs); + }else{ + $stubs = strval($arg); + } + $toReplace[] = [$pos, $stubs]; + + }else{ + $newArgs[]=$arg; + } + } + + if(count($toReplace)){ + $toReplace = array_reverse($toReplace); + foreach ($toReplace as $i){ + list($pos, $v) = $i; + $expr = substr($expr, 0, $pos).$v. substr($expr, $pos+1); + } + $args = $newArgs; + } + } + $context->appendSql($prefix.' '.$expr); + if($args){ + $context->appendParams($args); + } + } + } +} + +class GroupByImpl{ + static public function groupBy($context, $column){ + $context->appendSql("GROUP BY $column"); + } +} + +class ExecImpl +{ + /** + * + * @param $context SqlConetxt + * @param $db \PDO + * @param $exceOnError boolean whether throw exceptions + * @return Response + */ + static public function exec($context, $db, $exceOnError=true) { + if($exceOnError){ + $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + } + $st = $db->prepare($context->sql); + $success = $st->execute($context->params); + return new Response($success, $db,$st); + } + /** + * + * @param SqlConetxt $context + * @param PDO $db + * @param boolean $errExce + * @param string $asDict return as dict or array + * @return false|array + */ + static public function get($context, $db, $dictAs=null ,$errExce=true){ + if($errExce){ + $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + } + + $st = $db->prepare($context->sql); + if($st->execute($context->params)){ + $res = $st->fetchAll(\PDO::FETCH_ASSOC); + if ($dictAs){ + $dict= []; + foreach ($res as $i){ + $dict[$i[$dictAs]]=$i; + } + return $dict; + } + return $res; + }else{ + return false; + } + } +} + diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/rules/basic.php b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/basic.php new file mode 100644 index 0000000..246595f --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/basic.php @@ -0,0 +1,115 @@ +context = $context; + } + protected $context; +} + +class ExecRule extends BasicRule +{ + /** + * Execute sql + * @param \PDO $db + * @param boolean $errExce whether throw exceptios + * @return Response + */ + public function exec($db, $errExce=true) { + return ExecImpl::exec($this->context, $db, $errExce); + } +} + +class LimitRule extends ExecRule +{ + /** + * limit(1) => "LIMIT 1" + * @param int $size + * @return \phprs\ezsql\rules\basic\ExecRule + */ + public function limit($size) { + LimitImpl::limit($this->context, $size); + return new ExecRule($this->context); + } +} + +class OrderByRule extends LimitRule +{ + public function __construct($context){ + parent::__construct($context); + $this->impl = new OrderByImpl(); + } + /** + * orderByArgs(['column0', 'column1'=>Sql::$ORDER_BY_ASC]) => "ORDER BY column0,column1 ASC" + * @param array $orders + * @return \phprs\ezsql\rules\basic\LimitRule + */ + public function orderByArgs($orders) { + $this->impl->orderByArgs($this->context, $orders); + return new LimitRule($this->context); + } + /** + * + * orderBy('column') => "ORDER BY column" + * orderBy('column', Sql::$ORDER_BY_ASC) => "ORDER BY column ASC" + * orderBy('column0')->orderBy('column1') => "ORDER BY column0, column1" + * + * @param string $column + * @param string $order Sql::$ORDER_BY_ASC or Sql::$ORDER_BY_DESC + * + * @return \phprs\ezsql\rules\basic\LimitRule + */ + public function orderBy($column, $order=null) { + $this->impl->orderBy($this->context, $column, $order); + return new LimitRule($this->context); + } + private $impl; +} + +class WhereRule extends OrderByRule +{ + /** + * + * where('a=?', 1) => "WHERE a=1" + * where('a=?', Sql::native('now()')) => "WHERE a=now()" + * where('a IN (?)', [1, 2]) => "WHERE a IN (1,2)" + * + * @param string $expr + * @param mixed $_ + * @return \phprs\ezsql\rules\basic\OrderByRule + */ + public function where($expr, $_= null) { + WhereImpl::where($this->context, $expr, array_slice(func_get_args(), 1)); + return new OrderByRule($this->context); + } + /** + * + * whereArgs([ + * 'a'=>1, + * 'b'=>['IN'=>[1,2]] + * 'c'=>['BETWEEN'=>[1,2]] + * 'd'=>['<>'=>1] + * ]) + * + * => + * "WHERE a=1 AND b IN(1,2) AND c BETWEEN 1 AND 2 AND d<>1" + * @param string $args + * @return \phprs\ezsql\rules\basic\OrderByRule + */ + public function whereArgs($args) { + WhereImpl::whereArgs($this->context, $args); + return new OrderByRule($this->context); + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/rules/delete.php b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/delete.php new file mode 100644 index 0000000..babd6eb --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/delete.php @@ -0,0 +1,25 @@ + "DELETE FROM table" + * @param string $table + * @return \phprs\ezsql\rules\basic\WhereRule + */ + public function deleteFrom($table) { + DeleteImpl::deleteFrom($this->context, $table); + return new WhereRule($this->context); + } +} diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/rules/insert.php b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/insert.php new file mode 100644 index 0000000..63fe3fc --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/insert.php @@ -0,0 +1,42 @@ +values([1,2]) => "INSERT INTO table VALUES(1,2)" + * @param string $table + * @return \phprs\ezsql\rules\insert\ValuesRule + */ + public function insertInto($table) { + InsertImpl::insertInto($this->context, $table); + return new ValuesRule($this->context); + } +} +class ValuesRule extends BasicRule +{ + /** + * + * insertInto('table')->values([1,2]) => "INSERT INTO table VALUES(1,2)" + * insertInto('table')->values(['a'=>1, 'b'=>Sql::native('now()')]) => "INSERT INTO table(a,b) VALUES(1,now())" + * @param unknown $values + * @return \phprs\ezsql\rules\basic\ExecRule + */ + public function values($values) { + ValuesImpl::values($this->context, $values); + return new ExecRule($this->context); + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/rules/replace.php b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/replace.php new file mode 100644 index 0000000..d1f3e0a --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/replace.php @@ -0,0 +1,36 @@ +values([1,2]) => "REPLACE INTO table VALUES(1,2)" + * @param string $table + * @return \phprs\ezsql\rules\replace\ValuesRule + */ + public function replaceInto($table) { + ReplaceImpl::replaceInto($this->context, $table); + return new ValuesRule($this->context); + } +} +class ValuesRule extends BasicRule +{ + /** + * replaceInto('table')->values([1,2]) => "REPLACE INTO table VALUES(1,2)" + * replaceInto('table')->values(['a'=>1, 'b'=>Sql::native('now()')]) => "REPLACE INTO table(a,b) VALUES(1,now())" + * @param unknown $values + * @return \phprs\ezsql\rules\basic\ExecRule + */ + public function values($values) { + ValuesImpl::values($this->context, $values); + return new ExecRule($this->context); + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/rules/select.php b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/select.php new file mode 100644 index 0000000..6c5ca58 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/select.php @@ -0,0 +1,271 @@ + "SELECT column0, column1" + * select('column0', 'column1') => "SELECT column0, column1" + * @param string $columns + * @return \phprs\ezsql\rules\select\FromRule + */ + public function select($columns) { + SelectImpl::select($this->context, $columns); + return new FromRule($this->context); + } +} + +class GetRule extends BasicRule +{ + /** + * Execute sql and get responses + * @param \PDO $db + * @param $errExce whether throw exceptions + * @return array + */ + public function get($db, $asDict=false,$errExce=true) { + return ExecImpl::get($this->context, $db, $asDict,$errExce); + } +} +class FromRule extends GetRule +{ + /** + * from('table') => "FROM table" + * @param string $table + * @return \phprs\ezsql\rules\select\JoinRule + */ + public function from($table){ + FromImpl::from($this->context, $table); + return new JoinRule($this->context); + } +} +class ForUpdateOfRule extends GetRule +{ + /** + * forUpdate()->of('column') => 'FOR UPDATE OF column' + * @param string $column + * @return \phprs\ezsql\rules\select\GetRule + */ + public function of($column){ + ForUpdateOfImpl::of($this->context, $column); + return new GetRule($this->context); + } +} +class ForUpdateRule extends GetRule +{ + /** + * forUpdate() => 'FOR UPDATE' + * @return \phprs\ezsql\rules\select\ForUpdateOfRule + */ + public function forUpdate(){ + ForUpdateImpl::forUpdate($this->context); + return new ForUpdateOfRule($this->context); + } +} + +class LimitRule extends ForUpdateRule +{ + /** + * limit(0,1) => "LIMIT 0,1" + * @param int $start + * @param int $size + * @return \phprs\ezsql\rules\select\ForUpdateRule + */ + public function limit($start, $size) { + LimitImpl::limitWithOffset($this->context, $start, $size); + return new ForUpdateRule($this->context); + } +} + +class OrderByRule extends LimitRule +{ + public function __construct($context){ + parent::__construct($context); + $this->order = new OrderByImpl(); + } + /** + * orderBy('column') => "ORDER BY column" + * orderBy('column', Sql::$ORDER_BY_ASC) => "ORDER BY column ASC" + * orderBy('column0')->orderBy('column1') => "ORDER BY column0, column1" + * + * @param string $column + * @param string $order Sql::$ORDER_BY_ASC or Sql::$ORDER_BY_DESC + * @return \phprs\ezsql\rules\select\OrderByRule + */ + public function orderBy($column, $order=null) { + $this->order->orderBy($this->context, $column, $order); + return $this; + } + /** + * orderByArgs(['column0', 'column1'=>Sql::$ORDER_BY_ASC]) => "ORDER BY column0,column1 ASC" + * @param array $args + * @return \phprs\ezsql\rules\select\OrderByRule + */ + public function orderByArgs($args) { + $this->order->orderByArgs($this->context, $args); + return $this; + } + /** + * @var OrderByImpl + */ + private $order; +} + +class HavingRule extends OrderByRule +{ + /** + * + * having('SUM(a)=?', 1) => "HAVING SUM(a)=1" + * having('a>?', Sql::native('now()')) => "HAVING a>now()" + * having('a IN (?)', [1, 2]) => "HAVING a IN (1,2)" + * + * @param string $expr + * @param string $_ + * @return \phprs\ezsql\rules\select\OrderByRule + */ + public function having($expr, $_=null) { + WhereImpl::having($this->context, $expr, array_slice(func_get_args(), 1)); + return new OrderByRule($this->context); + } + /** + * + * havingArgs([ + * 'a'=>1, + * 'b'=>['IN'=>[1,2]] + * 'c'=>['BETWEEN'=>[1,2]] + * 'd'=>['<>'=>1] + * ]) + * + * => + * "HAVING a=1 AND b IN(1,2) AND c BETWEEN 1 AND 2 AND d<>1" + * + * + * @param array $args + * @return \phprs\ezsql\rules\select\OrderByRule + */ + public function havingArgs($args) { + WhereImpl::havingArgs($this->context, $args); + return new OrderByRule($this->context); + } +} +class GroupByRule extends OrderByRule +{ + /** + * groupBy('column') => "GROUP BY column" + * @param string $column + * @return \phprs\ezsql\rules\select\HavingRule + */ + public function groupBy($column) { + GroupByImpl::groupBy($this->context, $column); + return new HavingRule($this->context); + } +} +class WhereRule extends GroupByRule +{ + /** + * + * where('a=?', 1) => "WHERE a=1" + * where('a=?', Sql::native('now()')) => "WHERE a=now()" + * where('a IN (?)', [1, 2]) => "WHERE a IN (1,2)" + * + * @param string $expr + * @param mixed $_ + * @return \phprs\ezsql\rules\select\GroupByRule + */ + public function where($expr, $_=null) { + WhereImpl::where($this->context, $expr, array_slice(func_get_args(), 1)); + return new GroupByRule($this->context); + } + /** + * whereArgs([ + * 'a'=>1, + * 'b'=>['IN'=>[1,2]] + * 'c'=>['BETWEEN'=>[1,2]] + * 'd'=>['<>'=>1] + * ]) + * + * => + * "WHERE a=1 AND b IN(1,2) AND c BETWEEN 1 AND 2 AND d<>1" + * @param array $args + * @return\phprs\ezsql\rules\select\GroupByRule + */ + public function whereArgs($args) { + WhereImpl::whereArgs($this->context,$args); + return new GroupByRule($this->context); + } +} + +class JoinRule extends WhereRule +{ + /** + * join('table1')->on('table0.id=table1.id') => "JOIN table1 ON table0.id=table1.id" + * @param string $table + * @return \phprs\ezsql\rules\select\JoinOnRule + */ + public function join($table){ + JoinImpl::join($this->context,null, $table); + return new JoinOnRule($this->context); + } + /** + * leftJoin('table1')->on('table0.id=table1.id') => "LEFT JOIN table1 ON table0.id=table1.id" + * @param string $table + * @return \phprs\ezsql\rules\select\JoinOnRule + */ + public function leftJoin($table){ + JoinImpl::join($this->context,'LEFT', $table); + return new JoinOnRule($this->context); + } + /** + * rightJoin('table1')->on('table0.id=table1.id') => "RIGHT JOIN table1 ON table0.id=table1.id" + * @param string $table + * @return \phprs\ezsql\rules\select\JoinOnRule + */ + public function rightJoin($table) { + JoinImpl::join($this->context,'RIGHT', $table); + return new JoinOnRule($this->context); + } + /** + * innerJoin('table1')->on('table0.id=table1.id') => "INNER JOIN table1 ON table0.id=table1.id" + * @param string $table + * @return \phprs\ezsql\rules\select\JoinOnRule + */ + public function innerJoin($table) { + JoinImpl::join($this->context,'INNER', $table); + return new JoinOnRule($this->context); + } +} + +class JoinOnRule extends BasicRule +{ + /** + * join('table1')->on('table0.id=table1.id') => "JOIN table1 ON table0.id=table1.id" + * @param string $condition + * @return \phprs\ezsql\rules\select\WhereRule + */ + public function on($condition){ + JoinOnImpl::on($this->context, $condition); + return new JoinRule($this->context); + } +} + + + diff --git a/codes/agent/game-docker/api/lib/phprs/ezsql/rules/update.php b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/update.php new file mode 100644 index 0000000..5de1662 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/ezsql/rules/update.php @@ -0,0 +1,59 @@ +set('a', 1) => "UPDATE table SET a=1" + * @param string $table + * @return \phprs\ezsql\rules\update\UpdateSetRule + */ + public function update($table) { + UpdateImpl::update($this->context, $table); + return new UpdateSetRule($this->context); + } +} + +class UpdateSetRule extends WhereRule +{ + public function __construct($context){ + parent::__construct($context); + $this->impl = new UpdateSetImpl(); + } + /** + * update('table')->set('a', 1) => "UPDATE table SET a=1" + * update('table')->set('a', 1)->set('b',Sql::native('now()')) => "UPDATE table SET a=1,b=now()" + * @param string $column + * @param mixed $value + * @return \phprs\ezsql\rules\update\UpdateSetRule + */ + public function set($column, $value) { + $this->impl->set($this->context, $column, $value); + return $this; + } + /** + * update('table')->set(['a'=>1, 'b'=>Sql::native('now()')]) => "UPDATE table SET a=1,b=now()" + * @param array $values + * @return \phprs\ezsql\rules\update\UpdateSetRule + */ + public function setArgs($values) { + $this->impl->setArgs($this->context, $values); + return $this; + } + private $impl; +} + + + diff --git a/codes/agent/game-docker/api/lib/phprs/util/AnnotationCleaner.php b/codes/agent/game-docker/api/lib/phprs/util/AnnotationCleaner.php new file mode 100644 index 0000000..c3a2cc6 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/AnnotationCleaner.php @@ -0,0 +1,101 @@ +clean_($text); + } + //去掉注释 + private function clean_($text) { + + $this->dest = ''; + $this->tmp = $text; + $state = 'stateNormal'; + while ($state){ + $state = $this->$state(); + } + return $this->dest; + } + + private function stateNormal(){ + $stateBegin = [ + '//'=>'stateAntSL', //单行注释 + '/*'=>'stateAntML',//多行注释 + '\''=>'stateStrSQ', //单引号 + '"'=>'stateStrDQ',//双引号 + ]; + + $count = strlen($this->tmp); + for($i=0; $i<$count; $i++){ + foreach ($stateBegin as $k=>$v){ + if(substr($this->tmp, $i, strlen($k)) == $k){ + $this->dest .= substr($this->tmp, 0, $i); + $this->tmp = substr($this->tmp, $i); + return $v; + } + } + } + $this->dest .= $this->tmp; + $this->tmp = ''; + return false; + } + /** + * 单行注释 + */ + private function stateAntSL(){ + $pos = strpos($this->tmp, "\n"); + if($pos){ + $this->tmp = substr($this->tmp, $pos); + }else{ + $this->tmp = ''; + } + return 'stateNormal'; + } + /** + * 双行注释 + */ + private function stateAntML(){ + $pos = strpos($this->tmp, "*/"); + if($pos){ + $this->tmp = substr($this->tmp, $pos+2); + }else{ + $this->tmp = ''; + } + return 'stateNormal'; + } + // 单引号 + private function stateStrSQ(){ + return $this->stateStr('\''); + } + // 双引号 + private function stateStrDQ(){ + return $this->stateStr('"'); + } + + private function stateStr($q){ + $count = strlen($this->tmp); + for($i=1; $i<$count; $i++){ + if(substr($this->tmp, $i, 1) == $q){ + $this->dest .= substr($this->tmp, 0, $i+1); + $this->tmp = substr($this->tmp, $i+1); + return 'stateNormal'; + }else if(substr($this->tmp, $i, 1) == '\\'){//文本内转义 + $i++; + continue;//跳过一个 + } + } + $this->dest .= $this->tmp; + $this->tmp = ''; + return 'stateNormal'; + } + private $tmp; + private $dest; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/AnnotationReader.php b/codes/agent/game-docker/api/lib/phprs/util/AnnotationReader.php new file mode 100644 index 0000000..4a161d2 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/AnnotationReader.php @@ -0,0 +1,77 @@ +parser= new DocParser(); + } + public function getClassAnnotations(\ReflectionClass $class, $record_doc=false) + { + $cn = $class->getName(); + if(isset($this->cache[$cn]['class'])){ + return $this->cache[$cn]['class']; + } + $this->cache[$cn]['class'] = array(); + $annots = $this->parser->parse($class->getDocComment(), 'class '.$cn, $record_doc); + foreach ($annots as $annot){ + $key = $annot[0]; + $annot = $annot[1]; + $this->cache[$cn]['class'][$key][]=$annot; + } + return $this->cache[$cn]['class']; + } + + /** + * {@inheritDoc} + */ + public function getMethodAnnotations(\ReflectionMethod $method, $record_doc=false) + { + $cn = $method->getDeclaringClass()->getName(); + + $id = $method->getName(); + if(isset($this->cache[$cn]['method'][$id])){ + return $this->cache[$cn]['method'][$id]; + } + $this->cache[$cn]['method'][$id] = array(); + $annots = $this->parser->parse($method->getDocComment(), 'method '.$cn.'::'.$id.'()', $record_doc); + foreach ($annots as $annot){ + $key = $annot[0]; + $annot = $annot[1]; + + $this->cache[$cn]['method'][$id][$key][]=$annot; + } + return $this->cache[$cn]['method'][$id]; + } + + /** + * {@inheritDoc} + */ + public function getPropertyAnnotations(\ReflectionProperty $property, $record_doc=false) + { + $cn = $property->getDeclaringClass()->getName(); + + $id = $property->getName(); + if(isset($this->cache[$cn]['property'][$id])){ + return $this->cache[$cn]['property'][$id]; + } + $this->cache[$cn]['property'][$id] = array(); + $annots = $this->parser->parse($property->getDocComment(), 'property '.$cn.'::$'.$id, $record_doc); + foreach ($annots as $annot){ + $key= $annot[0]; + $annot= $annot[1]; + + $this->cache[$cn]['property'][$id][$key][]=$annot; + } + return $this->cache[$cn]['property'][$id]; + } + private $cache=array() ; + private $parser ; +} + diff --git a/codes/agent/game-docker/api/lib/phprs/util/ApcCache.php b/codes/agent/game-docker/api/lib/phprs/util/ApcCache.php new file mode 100644 index 0000000..002c8a2 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/ApcCache.php @@ -0,0 +1,45 @@ +map, false); + } + /** + * 添加类文件映射 + * @param unknown $name + * @param unknown $file + */ + public function addClass($name, $file){ + $this->map[$name] = $file; + ClassLoader::addClassMap($this->map, false); + } + /** + * + * @return array: + */ + public function getClasses(){ + return $this->map; + } + private $map=array(); +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/util/Cache.php b/codes/agent/game-docker/api/lib/phprs/util/Cache.php new file mode 100644 index 0000000..3f337d8 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/Cache.php @@ -0,0 +1,27 @@ +tag); + }else{ + parent::__construct(new ApcCache(), $this->tag); + } + } + /** @property */ + private $tag = ""; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/CheckableCache.php b/codes/agent/game-docker/api/lib/phprs/util/CheckableCache.php new file mode 100644 index 0000000..1973dc1 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/CheckableCache.php @@ -0,0 +1,102 @@ +impl = $impl; + $this->tag = $tag; + } + + /** + * 设置cache + * + * @param string $name + * @param mixed $var + * @param int + * @param SerializableFunc $expire_check + * @return boolean + * 缓存过期检查方法, 缓存过期(超过ttl)后, get时调用, 返回true表示缓存继续可用. + * 如checker($got_var, $time) + * + */ + public function set($name, $var, $ttl = 0, $expire_check = null) + { + $name = $this->tag.$name; + $res = $this->impl->set($name, array( + $var, + $ttl, + $expire_check, + time(), + ), is_null($expire_check) ? $ttl : 0); + if (!$res){ + Logger::warning("set cache $name failed"); + }else{ + Logger::debug("set cache $name ok, ttl=$ttl, check=".($expire_check===null?'null':get_class($expire_check))); + } + return $res; + } + + /** + * 获取cache + * @param string $name + * @param boolean $succeeded + * @return mixed + */ + public function get($name, &$succeeded=null) + { + $name = $this->tag.$name; + $res = $this->impl->get($name, $succeeded); + if ($succeeded) { + $succeeded = false; + list ($data, $ttl, $checker, $create_time) = $res; + // 如果指定了checker, ttl代表每次检查的间隔时间, 0表示每次get都需要经过checker检查 + // 如果没有指定checker, ttl表示缓存过期时间, 为0表示永不过期 + if ($checker !== null) { + if ($ttl == 0 || ($create_time + $ttl < time())) { + $valid = false; + try{ + if(is_callable($checker)){ + $valid = $checker($data, $create_time); + } + } + catch (\Exception $e){ + Logger::warning('call checker failed with '.$e->getTraceAsString()); + $valid = false; + } + if(!$valid){ + Logger::debug("cache $name expired by checker"); + $this->impl->del($name); + return null; + } + + } + }else if ($ttl != 0 && ($create_time + $ttl < time())) { + Logger::debug("cache $name expired by ttl"); + $this->impl->del($name); + return null; + } + Logger::debug("get $name from cache, ttl=$ttl, create_time=$create_time, check=".($checker===null?'null':get_class($checker))); + $succeeded = true; + return $data; + } + return null; + } + /** + * 删除 + * @param string $name + */ + public function del($name){ + $name = $this->tag.$name; + return $this->impl->del($name); + } + private $tag; + private $impl; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/ClassLoader.php b/codes/agent/game-docker/api/lib/phprs/util/ClassLoader.php new file mode 100644 index 0000000..d2089c0 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/ClassLoader.php @@ -0,0 +1,63 @@ +errno==0 && intval($this->http_code)>=200 && intval($this->http_code)<300; + } + public function message(){ + return "errno:{$this->errno}, errstr:{$this->errstr}, http_code:{$this->http_code}, content:".print_r($this->content,true); + } + public function handleHeader($ch, $header_line){ + if(count($this->headers) ==0){ + $this->status = trim(explode(' ', $header_line,2)[1]); + } + list($n,$v) = explode(':', $header_line)+array(null,null); + if(strcasecmp(trim($n),'Content-Type')===0){ + $this->content_type = trim($v); + } + $this->headers[]=$header_line; + return strlen($header_line); + } + /** + * 从http返回的数据中分离header和body + * @param string $data + */ + public function parseReturnData($data){ + while(true){ + $lines = explode("\n", $data, 2); + if(!$lines || count($lines) == 0){ + break; + } + if(trim($lines[0]) == ''){//空行,header 结束 + if (stristr($this->content_type, 'application/Json') !== false) { + $this->content = json_decode($lines[1], true); + } else { + $this->content = $lines[1]; + } + break; + } + $this->handleHeader(null, $lines[0]); + if(count($lines) !=2){ + break; + } + $data = $lines[1]; + } + } +} +class Curl +{ + public function __construct(){ + $this->ch = curl_init(); + if(!file_exists('/dev/null')){ + curl_setopt($this->ch, CURLOPT_COOKIEJAR, 'NUL'); + }else{ + curl_setopt($this->ch, CURLOPT_COOKIEJAR, '/dev/null'); + } + + } + public function reset(){ + curl_close($this->ch); + $this->ch = curl_init(); + if(!file_exists('/dev/null')){ + curl_setopt($this->ch, CURLOPT_COOKIEJAR, 'NUL'); + }else{ + curl_setopt($this->ch, CURLOPT_COOKIEJAR, '/dev/null'); + } + } + public function __destruct(){ + curl_close($this->ch); + } + public function GET($url, $headers=null,$followLoc=true){ + return $this->execCurl($url, __FUNCTION__, null, $headers,$followLoc); + } + public function POST($url, $content, $headers=null,$followLoc=true){ + return $this->execCurl($url, __FUNCTION__, $content, $headers,$followLoc); + } + public function PUT($url, $content, $headers=null,$followLoc=true){ + return $this->execCurl($url, __FUNCTION__, $content, $headers,$followLoc); + } + private function execCurl($url, $method='GET', $content=null, $headers=null,$followLoc=true){ + $res = new CurlResponse(); + + if(isset($method)){ + curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, $method); + } + curl_setopt($this->ch, CURLOPT_URL,$url); + curl_setopt($this->ch, CURLOPT_TIMEOUT, 60); + if(!empty($headers)){ + curl_setopt($this->ch, CURLOPT_HTTPHEADER, $headers); + } + + curl_setopt($this->ch, CURLOPT_RETURNTRANSFER,1); + curl_setopt($this->ch,CURLOPT_FOLLOWLOCATION, $followLoc?1:0);//支持跳转 + + //curl_setopt($this->ch, CURLOPT_HEADERFUNCTION, array($res,'handleHeader')); // handle received headers + curl_setopt($this->ch, CURLOPT_HEADER, true); + if(!empty($content)){ + $content_type = ''; + // 取content-type + foreach ($headers as $h){ + list($n,$v) = explode(':',$h)+array(null,null); + if(strcasecmp(trim($n),'Content-Type')===0){ + $content_type = trim($v); + break; + } + } + + if(is_array($content) && $content_type == 'application/json'){ + curl_setopt($this->ch, CURLOPT_POSTFIELDS, json_encode($content)); + }else if($content_type == 'multipart/form-data'){ + curl_setopt($this->ch, CURLOPT_POSTFIELDS, $content); + }else{ + if(is_array($content) ){ + curl_setopt($this->ch, CURLOPT_POSTFIELDS, http_build_query($content)); + }else{ + curl_setopt($this->ch, CURLOPT_POSTFIELDS, $content); + } + + } + } + $response = curl_exec($this->ch); + + $res->http_code = curl_getinfo($this->ch,CURLINFO_HTTP_CODE); + $res->errno = curl_errno($this->ch); + $res->errstr = curl_error($this->ch); + $res->parseReturnData($response); + + return $res; + } + /** curl handle */ + private $ch; + +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/util/DocParser.php b/codes/agent/game-docker/api/lib/phprs/util/DocParser.php new file mode 100644 index 0000000..0f90206 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/DocParser.php @@ -0,0 +1,605 @@ +. + */ + +namespace phprs\util; + +use ReflectionClass; +use Doctrine\Common\Annotations\DocLexer; +use Doctrine\Common\Annotations\AnnotationException; +/** + * A parser for docblock annotations. + * + * It is strongly discouraged to change the default annotation parsing process. + * + * @author Benjamin Eberlei + * @author Guilherme Blanco + * @author Jonathan Wage + * @author Roman Borschel + * @author Johannes M. Schmitt + * @author Fabio B. Silva + */ +final class DocParser +{ + /** + * An array of all valid tokens for a class name. + * + * @var array + */ + private static $classIdentifiers = array( + DocLexer::T_IDENTIFIER, + DocLexer::T_TRUE, + DocLexer::T_FALSE, + DocLexer::T_NULL + ); + + /** + * The lexer. + * + * @var \Doctrine\Common\Annotations\DocLexer + */ + private $lexer; + + /** + * A list with annotations that are not causing exceptions when not resolved to an annotation class. + * + * The names must be the raw names as used in the class, not the fully qualified + * class names. + * + * @var array + */ + private $ignoredAnnotationNames = array(); + + /** + * @var string + */ + private $context = ''; + + /** + * Hash-map for handle types declaration. + * + * @var array + */ + private static $typeMap = array( + 'float' => 'double', + 'bool' => 'boolean', + // allow uppercase Boolean in honor of George Boole + 'Boolean' => 'boolean', + 'int' => 'integer', + ); + + /** + * Constructs a new DocParser. + */ + public function __construct() + { + $this->lexer = new DocLexer; + } + + /** + * Sets the annotation names that are ignored during the parsing process. + * + * The names are supposed to be the raw names as used in the class, not the + * fully qualified class names. + * + * @param array $names + * + * @return void + */ + public function setIgnoredAnnotationNames(array $names) + { + $this->ignoredAnnotationNames = $names; + } + + /** + * Parses the given docblock string for annotations. + * + * @param string $input The docblock string to parse. + * @param string $context The parsing context. + * + * @return array Array of annotations. If no annotations are found, an empty array is returned. + */ + public function parse($input, $context = '', $record_doc) + { + $pos = $this->findInitialTokenPosition($input); + if ($pos === null) { + return array(); + } + + $this->context = $context; + + $this->lexer->setInput(trim(substr($input, $pos), '* /')); + $this->lexer->moveNext(); + + return $this->Annotations($record_doc); + } + + /** + * Finds the first valid annotation + * + * @param string $input The docblock string to parse + * + * @return int|null + */ + private function findInitialTokenPosition($input) + { + $pos = 0; + + // search for first valid annotation + while (($pos = strpos($input, '@', $pos)) !== false) { + // if the @ is preceded by a space or * it is valid + if ($pos === 0 || $input[$pos - 1] === ' ' || $input[$pos - 1] === '*') { + return $pos; + } + + $pos++; + } + + return null; + } + + /** + * Attempts to match the given token with the current lookahead token. + * If they match, updates the lookahead token; otherwise raises a syntax error. + * + * @param integer $token Type of token. + * + * @return boolean True if tokens match; false otherwise. + */ + private function match($token) + { + if ( ! $this->lexer->isNextToken($token) ) { + $this->syntaxError($this->lexer->getLiteral($token)); + } + + return $this->lexer->moveNext(); + } + + /** + * Attempts to match the current lookahead token with any of the given tokens. + * + * If any of them matches, this method updates the lookahead token; otherwise + * a syntax error is raised. + * + * @param array $tokens + * + * @return boolean + */ + private function matchAny(array $tokens) + { + if ( ! $this->lexer->isNextTokenAny($tokens)) { + $this->syntaxError(implode(' or ', array_map(array($this->lexer, 'getLiteral'), $tokens))); + } + + return $this->lexer->moveNext(); + } + + /** + * Generates a new syntax error. + * + * @param string $expected Expected string. + * @param array|null $token Optional token. + * + * @return void + * + * @throws AnnotationException + */ + private function syntaxError($expected, $token = null) + { + if ($token === null) { + $token = $this->lexer->lookahead; + } + + $message = sprintf('Expected %s, got ', $expected); + $message .= ($this->lexer->lookahead === null) + ? 'end of string' + : sprintf("'%s' at position %s", $token['value'], $token['position']); + + if (strlen($this->context)) { + $message .= ' in ' . $this->context; + } + + $message .= '.'; + + throw AnnotationException::syntaxError($message); + } + + /** + * Annotations ::= Annotation {[ "*" ]* [Annotation]}* + * @param $record_doc 记录文档 + * @return array + */ + private function Annotations($record_doc = false) + { + $annotations = array(); + $doc_begin = 0; + while (null !== $this->lexer->lookahead) { + if (DocLexer::T_AT !== $this->lexer->lookahead['type']) { + $this->lexer->moveNext(); + continue; + } + + // make sure the @ is preceded by non-catchable pattern + if (null !== $this->lexer->token && $this->lexer->lookahead['position'] === $this->lexer->token['position'] + strlen($this->lexer->token['value'])) { + $this->lexer->moveNext(); + continue; + } + + // make sure the @ is followed by either a namespace separator, or + // an identifier token + if ((null === $peek = $this->lexer->glimpse()) + || (DocLexer::T_NAMESPACE_SEPARATOR !== $peek['type'] && !in_array($peek['type'], self::$classIdentifiers, true)) + || $peek['position'] !== $this->lexer->lookahead['position'] + 1) { + $this->lexer->moveNext(); + continue; + } + + $doc_end = $this->lexer->lookahead['position']; + $this->match(DocLexer::T_AT); + $name = $this->Identifier(); + $value = $this->MethodCall(); + + if($record_doc){ + if(($count= count($annotations)) !==0){ + $doc= $this->lexer->getInputUntilPosition($doc_end); + $text = substr($doc, $doc_begin); + $annotations[$count-1][1]['doc'] = $text; + $text = strstr($text, ')'); + $annotations[$count-1][1]['desc'] = substr($text, 1); + } + $doc_begin = $doc_end; + } + $annotations[] = array( + $name, + $value + ); + } + if ($record_doc) { + if (($count = count($annotations)) !== 0) { + $doc = $this->lexer->getInputUntilPosition(0xFFFF); + $text = substr($doc, $doc_begin); + $annotations[$count-1][1]['doc'] = $text; + $text = strstr($text, ')'); + $annotations[$count-1][1]['desc'] = substr($text, 1); + } + } + return $annotations; + } + + /** + * MethodCall ::= ["(" [Values] ")"] + * + * @return array + */ + private function MethodCall() + { + $values = array(); + + if ( ! $this->lexer->isNextToken(DocLexer::T_OPEN_PARENTHESIS)) { + return $values; + } + + $this->match(DocLexer::T_OPEN_PARENTHESIS); + + if ( ! $this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) { + $values = $this->Values(); + } + + $this->match(DocLexer::T_CLOSE_PARENTHESIS); + + return $values; + } + + /** + * Values ::= Array | Value {"," Value}* [","] + * + * @return array + */ + private function Values() + { + $values = array($this->Value()); + + while ($this->lexer->isNextToken(DocLexer::T_COMMA)) { + $this->match(DocLexer::T_COMMA); + + if ($this->lexer->isNextToken(DocLexer::T_CLOSE_PARENTHESIS)) { + break; + } + + $token = $this->lexer->lookahead; + $value = $this->Value(); + + if ( ! is_object($value) && ! is_array($value)) { + $this->syntaxError('Value', $token); + } + + $values[] = $value; + } + + foreach ($values as $k => $value) { + if (is_object($value) && $value instanceof \stdClass) { + $values[$value->name] = $value->value; + } else if ( ! isset($values['value'])){ + $values['value'] = $value; + } else { + if ( ! is_array($values['value'])) { + $values['value'] = array($values['value']); + } + + $values['value'][] = $value; + } + + unset($values[$k]); + } + + return $values; + } + + /** + * Constant ::= integer | string | float | boolean + * + * @return mixed + * + * @throws AnnotationException + */ + private function Constant() + { + $identifier = $this->Identifier(); + + if ( ! defined($identifier) && false !== strpos($identifier, '::') && '\\' !== $identifier[0]) { + list($className, $const) = explode('::', $identifier); + + $alias = (false === $pos = strpos($className, '\\')) ? $className : substr($className, 0, $pos); + $found = false; + + switch (true) { + case !empty ($this->namespaces): + foreach ($this->namespaces as $ns) { + if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) { + $className = $ns.'\\'.$className; + $found = true; + break; + } + } + break; + + case isset($this->imports[$loweredAlias = strtolower($alias)]): + $found = true; + $className = (false !== $pos) + ? $this->imports[$loweredAlias] . substr($className, $pos) + : $this->imports[$loweredAlias]; + break; + + default: + if(isset($this->imports['__NAMESPACE__'])) { + $ns = $this->imports['__NAMESPACE__']; + + if (class_exists($ns.'\\'.$className) || interface_exists($ns.'\\'.$className)) { + $className = $ns.'\\'.$className; + $found = true; + } + } + break; + } + + if ($found) { + $identifier = $className . '::' . $const; + } + } + + // checks if identifier ends with ::class, \strlen('::class') === 7 + $classPos = stripos($identifier, '::class'); + if ($classPos === strlen($identifier) - 7) { + return substr($identifier, 0, $classPos); + } + + if (!defined($identifier)) { + throw AnnotationException::semanticalErrorConstants($identifier, $this->context); + } + + return constant($identifier); + } + + /** + * Identifier ::= string + * + * @return string + */ + private function Identifier() + { + // check if we have an annotation + if ( ! $this->lexer->isNextTokenAny(self::$classIdentifiers)) { + $this->syntaxError('namespace separator or identifier'); + } + + $this->lexer->moveNext(); + + $className = $this->lexer->token['value']; + + while ($this->lexer->lookahead['position'] === ($this->lexer->token['position'] + strlen($this->lexer->token['value'])) + && $this->lexer->isNextToken(DocLexer::T_NAMESPACE_SEPARATOR)) { + + $this->match(DocLexer::T_NAMESPACE_SEPARATOR); + $this->matchAny(self::$classIdentifiers); + + $className .= '\\' . $this->lexer->token['value']; + } + + return $className; + } + + /** + * Value ::= PlainValue | FieldAssignment + * + * @return mixed + */ + private function Value() + { + $peek = $this->lexer->glimpse(); + + if (DocLexer::T_EQUALS === $peek['type']) { + return $this->FieldAssignment(); + } + + return $this->PlainValue(); + } + + /** + * PlainValue ::= integer | string | float | boolean | Array | Annotation + * + * @return mixed + */ + private function PlainValue() + { + if ($this->lexer->isNextToken(DocLexer::T_OPEN_CURLY_BRACES)) { + return $this->Arrayx(); + } + + if ($this->lexer->isNextToken(DocLexer::T_AT)) { + return $this->Annotation(); + } + + if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) { + return $this->Constant(); + } + + switch ($this->lexer->lookahead['type']) { + case DocLexer::T_STRING: + $this->match(DocLexer::T_STRING); + return $this->lexer->token['value']; + + case DocLexer::T_INTEGER: + $this->match(DocLexer::T_INTEGER); + return (int)$this->lexer->token['value']; + + case DocLexer::T_FLOAT: + $this->match(DocLexer::T_FLOAT); + return (float)$this->lexer->token['value']; + + case DocLexer::T_TRUE: + $this->match(DocLexer::T_TRUE); + return true; + + case DocLexer::T_FALSE: + $this->match(DocLexer::T_FALSE); + return false; + + case DocLexer::T_NULL: + $this->match(DocLexer::T_NULL); + return null; + + default: + $this->syntaxError('PlainValue'); + } + } + + /** + * FieldAssignment ::= FieldName "=" PlainValue + * FieldName ::= identifier + * + * @return array + */ + private function FieldAssignment() + { + $this->match(DocLexer::T_IDENTIFIER); + $fieldName = $this->lexer->token['value']; + + $this->match(DocLexer::T_EQUALS); + + $item = new \stdClass(); + $item->name = $fieldName; + $item->value = $this->PlainValue(); + + return $item; + } + + /** + * Array ::= "{" ArrayEntry {"," ArrayEntry}* [","] "}" + * + * @return array + */ + private function Arrayx() + { + $array = $values = array(); + + $this->match(DocLexer::T_OPEN_CURLY_BRACES); + + // If the array is empty, stop parsing and return. + if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) { + $this->match(DocLexer::T_CLOSE_CURLY_BRACES); + + return $array; + } + + $values[] = $this->ArrayEntry(); + + while ($this->lexer->isNextToken(DocLexer::T_COMMA)) { + $this->match(DocLexer::T_COMMA); + + // optional trailing comma + if ($this->lexer->isNextToken(DocLexer::T_CLOSE_CURLY_BRACES)) { + break; + } + + $values[] = $this->ArrayEntry(); + } + + $this->match(DocLexer::T_CLOSE_CURLY_BRACES); + + foreach ($values as $value) { + list ($key, $val) = $value; + + if ($key !== null) { + $array[$key] = $val; + } else { + $array[] = $val; + } + } + + return $array; + } + + /** + * ArrayEntry ::= Value | KeyValuePair + * KeyValuePair ::= Key ("=" | ":") PlainValue | Constant + * Key ::= string | integer | Constant + * + * @return array + */ + private function ArrayEntry() + { + $peek = $this->lexer->glimpse(); + + if (DocLexer::T_EQUALS === $peek['type'] + || DocLexer::T_COLON === $peek['type']) { + + if ($this->lexer->isNextToken(DocLexer::T_IDENTIFIER)) { + $key = $this->Constant(); + } else { + $this->matchAny(array(DocLexer::T_INTEGER, DocLexer::T_STRING)); + $key = $this->lexer->token['value']; + } + + $this->matchAny(array(DocLexer::T_EQUALS, DocLexer::T_COLON)); + + return array($key, $this->PlainValue()); + } + + return array(null, $this->Value()); + } +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/FileCache.php b/codes/agent/game-docker/api/lib/phprs/util/FileCache.php new file mode 100644 index 0000000..93adf4c --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/FileCache.php @@ -0,0 +1,67 @@ +cache_dir = sys_get_temp_dir().'/caoym_temp'; + }else{ + $this->cache_dir = $cache_dir; + } + } + /** + * 设置key + * @param string $key + * @param mixed $var + * @param int $ttl TODO: 暂不支持 + * @return void + */ + public function set($key, $var, $ttl=0){ + Verify::isTrue(is_dir($this->cache_dir) || @mkdir($this->cache_dir, 0777, true)); + $path = $this->cache_dir.'/'.sha1($key); + return SaftyFileWriter::write($path, serialize($var)); + } + /** + * 删除key + * @param string $key + * @return boolean Returns true on success or false on failure. + */ + public function del($key){ + $path = $this->cache_dir.'/'.sha1($key); + return @unlink($path); + } + /** + * 模拟apc, 只在没有apc的开发环境使用 + * @param string $key + * @param boolean $succeeded + * @return mixed object on success or false on failure + */ + public function get($key, &$succeeded=null){ + $succeeded = false; + $path = $this->cache_dir.'/'.sha1($key); + if(!file_exists($path)){ + return false; + } + $res = file_get_contents($path); + if($res === false){ + return false; + } + $succeeded = true; + return unserialize($res); + } + + private $cache_dir; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/FileExpiredChecker.php b/codes/agent/game-docker/api/lib/phprs/util/FileExpiredChecker.php new file mode 100644 index 0000000..b1c6b41 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/FileExpiredChecker.php @@ -0,0 +1,56 @@ +file_name[$file_name] = @filemtime($file_name); + }else { + $this->file_name[$file_name] = @filemtime($file_name); + if(!is_dir($file_name)){ + continue; + } + $files = @dir($file_name); + Verify::isTrue($files!== null, "open dir $file_name failed"); + while (!!($file = $files->read())){ + if($file == '.' || $file == '..') {continue;} + $this->file_name[$file_name.'/'.$file] = @filemtime($file_name.'/'.$file); + } + $files->close(); + } + } + } + /** + * 判断是否过期 + * @param mixed $data 从缓存中得到的数据 + * @return boolean + */ + public function __invoke($data, $create_time){ + $res = false; + foreach ($this->file_name as $name => $time){ + if(@filemtime($name) !== $time){ + Logger::info("cache expired by file $name modified"); + return false; + } + $res = true; + } + return $res; + } + private $file_name=array(); //文件全路径 +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/FileOp.php b/codes/agent/game-docker/api/lib/phprs/util/FileOp.php new file mode 100644 index 0000000..0b8b5dd --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/FileOp.php @@ -0,0 +1,76 @@ +read()) ) { + if (( $file != '.' ) && ( $file != '..' )) { + $src_path = $src . '/' . $file; + $dst_path = $dst . '/' . $file; + if(!self::copys($src_path, $dst_path)){ + $dir->close(); + return false; + } + Logger::debug("file copy from $src_path to $dst_path"); + } + } + $dir->close(); + return true; + } + /** + * mkdir -p + * @param string $path + * @param number $mode + * @return boolean + */ + static public function mkdirs($path, $mode = 0777) { + $dirs = explode('/', $path); + $count = count($dirs); + $path = ''; + for ($i = 0; $i < $count; ++ $i) { + if ($i !== 0) { + $path .= DIRECTORY_SEPARATOR; + } + if ($dirs[$i] === '') { + continue; + } + $path .= $dirs[$i]; + if (! is_dir($path) && ! mkdir($path, $mode)) { + return false; + } + } + return true; + } + /** + * 临时目录 + * @param string $dir + * @param string $prefix + * @return string + */ + function tempdir($dir, $prefix) { + $tempfile=tempnam($dir, $prefix); + if (file_exists($tempfile)) { + unlink($tempfile); + } + mkdir($tempfile); + return $tempfile; + } +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/HttpRouterEntries.php b/codes/agent/game-docker/api/lib/phprs/util/HttpRouterEntries.php new file mode 100644 index 0000000..b436861 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/HttpRouterEntries.php @@ -0,0 +1,256 @@ + service1, + * "/api?arg1=x" => service2, + * 查询"/api?arg1=x&arg2=y" 找到service2 + */ +class HttpRouterEntries{ + function __construct(){ + $this->routes = new Tree(); + } + /** + * + * @param string $q + * @param string& $matched_path + * @return found object + */ + function find($q,&$matched_path=null){ + list($path,$param) = explode('?', $q)+array( null,null ); + $paths = self::stringToPath($path); + $params = is_null($param)?null:explode('&', $param); + return $this->findByArray($paths, $params, $matched_path); + } + /** + * 查找url对应的实体 + * @param string $paths + * @param string $params + * @param array $matched_path 已匹配的路径 + * @return mixed|null + */ + function findByArray($paths,$params, &$matched_path =null){ + $paths = array_filter($paths,function ($i){return $i!== '/' &&!empty($i);}); + array_unshift($paths, '/'); + $paths[] = Tree::$end; //最后总是插入Tree::$end表示路径结束 + + $route=null; + $valid_path=null;//最深一个不为空的路径 + $visited = 0; + $geted=0; + $walked_path=array(); + //找到匹配的最深路径,/a/b/c匹配的路径可以是/,/a,/a/c,/a/b/c,但最深的是/a/b/c + $this->routes->visit($paths,function ($node,$value)use(&$valid_path,&$route,&$visited,&$geted,&$walked_path){ + if(!is_null($value)) { + $route=$value; + if(!($route instanceof \phprs\util\Tree)) { + $valid_path=$value; + } + $geted = $visited; + + } + $walked_path[]=$node; + $visited ++; + return true; + }); + if(is_null($route)){ + return null; + } + if($matched_path !==null){ + $matched_path = $walked_path; + } + //如果匹配完整的路径, 则还需要匹配querystring参数 + if(count($paths) == $geted+1){ + if($route instanceof \phprs\util\Tree){ + //条件要求有querystring,所以请求也需要有querystring + if(empty($params)){ + return $valid_path; + } + $found = $this->findParams($route, $params); + return is_null($found)?$valid_path:$found ; + }else{ + return $route; + } + }else{//如果不匹配全路径,则只能处理没有querystring的条件 + if($route instanceof \phprs\util\Tree) { + return $valid_path; + } + return $route; + } + return null; + } + /** + * 查找querystring对应的实体 + * querystring 参数匹配条件在tree中的存储方式如下 + * + * 1.c=xxx&f=xxx&g=xxx + * 2.c=xxx&e=xxx&f-xxx + * 3.b=xxx&c=xxx + * (经过排序的数据结构) + * c=xxx -> f=xxx -> g=xxx + * \->e=xxx->f=xxx + * b=xxx ->d=xxx + * 当收到请求 b=xxx&d=xxx&a=xxx&c=xxx时 + * 先拆成数组再排序=> a=xxx,b=xxx,c=xxx,d=xxx + * 先找 a=xxx(根据当前的数据结构,只可能是有一个或者没有,不可能存在多个),没找到则跳过 + * 找b=xxx,有,则在b=xxx节点下找c=xxx,没找到则跳过 + * 在b=xxx节点下找d=xxx,找到,且 b=xxx ->d=xxx是完整的规则、请求的params也已处理完,则命中此规则 + * @param Tree $root 根节点 + * @param $params 需要查找的节点名 + * @return mixed|null + */ + private function findParams($root,$params){ + + //排序,使参数与顺序无关 + sort($params,SORT_STRING); + $params = array_filter($params,function ($i){return !empty($i);}); + + $find_step = array(); + $matching = null; + foreach ($params as $param){ + $find_step[]=$param; + $node = $root->findNode($find_step); + if($node === null) { + array_pop($find_step);//换一个接着找 + }else{ + if(array_key_exists('value', $node)){ + $matching = $node['value']; + } + } + } + return $matching; + } + /** + * 增加一条规则 + * @param $query string 请求的url形式 + * @param $e mixed + * @param $strict boolean 是否严格匹配 + * @returnboolean 是否插入成功 + */ + public function insert($query,$e,$strict=false){ + list($path, $param) = explode('?', $query)+array( null, null ); + $path = str_replace('\\', '/', $path); + $paths = explode('/', $path); + $route=null; + $params = null; + if($param !==null && $param !== ""){ + $params = explode('&', $param); + } + if($strict || !empty($params)){ + $paths[]=Tree::$end; //对于严格匹配的路由规则(有querystring的路由,path部分也需要严格匹配),在路径末尾加入end,偏于匹配 + } + return $this->insertByArray($paths,$params,$e); + } + /** + * 增加一条路由规则 + * @param array $paths + * @param array $params + * @param mixed $e + * @return boolean + */ + public function insertByArray($paths,$params,$e){ + //生成树形的路由表,便于快速查找, + // 如 规则 + // "/b/a?z=1&y=2" => service1 + // "/b/a?z=1&x=2" => service2 + // 对应的 规则结构是 + // path -> a+ + // |-b+ + // param -> |-x+ + // |-z => service2 + // |-y+ + // |-z => service1 + // + // + // + $paths = array_filter($paths, function ($i){return !empty($i);}); + array_unshift($paths, '/'); + if(empty($paths)){ + $paths = array(''); + } + if( $params !== null){ + //排序,使参数与顺序无关 + sort($params, SORT_STRING); + $params = array_filter($params,function ($i){return !empty($i);}); + $node = $this->routes->findNode($paths, true, true); + if($node && $node['value'] instanceof \phprs\util\Tree){ + $route = $node['value']; + return $route->insert($params, $e,false); + }else{ + $route = new Tree(); + $route->insert($params, $e,false); + return $this->routes->insert($paths, $route,false); + } + }else{ + return $this->routes->insert($paths, $e ,false); + } + } + /** + * 树打平输出成数组 + * @return array + */ + public function export(){ + $ori = $this->routes->export(); + $res = array(); + foreach ($ori as $v){ + list($path, $value) = $v; + if($value instanceof \phprs\util\Tree){ + $querys = $value->export(); //提取querystring + $path_str = self::pathToString($path); + foreach ($querys as $query){ + list($param, $value) = $query; + $res[]=array($path_str.'?'.implode('&',$param), $value); + } + }else{ + $res[]=array(self::pathToString($path), $value); + } + } + return $res; + } + /** + * 字符串路转径数组路 + * @param string $path + * @return array + */ + static public function stringToPath($path){ + $path = str_replace('\\', '/', $path); + $paths = explode('/', $path); + $paths = array_filter($paths,function ($i){return !empty($i);}); + return array_values($paths); + } + /** + * 数组路径转字符串路径 + * @param array $path + * @return string 用/连接的字符串 + */ + static public function pathToString($path){ + $append=function (&$str, $v){ + //连续的/忽略 + if(strlen($str) !==0 && substr_compare($str, '/', strlen($str)-1) ===0 && $v==='/'){ + return; + } + //两个项目间加/ + if(strlen($str) !==0 && substr_compare($str, '/', strlen($str)-1) !==0 && $v!=='/'){ + $str =$str.'/'.$v; + }else{ + $str.=$v; + } + }; + $str = ''; + foreach ($path as $i){ + $append($str, $i); + } + return $str; + } + private $routes; +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/util/IoCFactory.php b/codes/agent/game-docker/api/lib/phprs/util/IoCFactory.php new file mode 100644 index 0000000..8a0c07c --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/IoCFactory.php @@ -0,0 +1,447 @@ +[ + * "class"=>类名, + * "singleton"=>false, 是否是单例, 如果是, 则只会创建一份(同一个工厂内) + * "pass_by_construct"=false, 属性是否通过构造函数传递, 如果不是, 则通过访问属性的方式传递 + * "properties"=>{ + * 属性名=>属性值 + * } + * @param array $dict 设置字典 + * 配置文件中, 属性值可以使用{key}的方式指定模板变量, 注入属性到实例是这些模板变 + * 量会被替换成setDict方法设置的值 + * @param array $metas 类元信息, 如果不指定, 则自动从类文件中导出 + * ] + */ + public function __construct($conf=null, $dict=null, $metas=null) + { + if($conf === null){ + $this->conf = array(); + }elseif(is_array($conf)){ + $this->conf = $conf; + }else{ + Verify::isTrue(is_file($conf), "$conf is not a valid file"); + if(strtolower(pathinfo($conf, PATHINFO_EXTENSION)) == 'php'){ + $this->conf = include($conf); + }else{ + Verify::isTrue(false !== ($data = file_get_contents($conf)), "$conf open failed"); + $data = self::clearAnnotation($data); + Verify::isTrue(is_array($this->conf = json_decode($data,true)), "$conf json_decode failed with ".json_last_error()); + } + $this->conf_file = $conf; + } + if($dict !== null){ + $this->conf = $this->replaceByDict($this->conf, $dict); + } + $this->metas = $metas; + } + /** + * 去掉注解 + * @param unknown $text + */ + static public function clearAnnotation($text){ + return AnnotationCleaner::clean($text); + } + /** + * 获取配置的属性 + * @param string $id + * @return array|null + */ + public function getConf($id=null){ + if($id === null){ + return $this->conf; + }else{ + if(isset($this->conf[$id]) && isset($this->conf[$id]['properties'])){ + return $this->conf[$id]['properties']; + } + return null; + } + } + /** + * + * @param string $id + */ + public function getClassName($id=null){ + if(isset($this->conf[$id])){ + $class = $this->conf[$id]; + if(isset($class['class'])){ + return $class['class']; + }else{ + return $id; + } + }else{ + return $id; + } + } + /** + * 根据id得到对象实例 + * //TODO 单实例间互相引用会是问题 + * @param string $id + * @param array $properties 类属性, 覆盖配置文件中的属性 + * @param callable $injector fun($src), 获取注入值的方法 + * @param callable $init fun($inst, &$got) 初始化实例, 在创建后, 调用构造函数前 + * @param array $construct_args 构造函数的参数 + * @return object + */ + public function create($id, $construct_args=null, $properties=null, $injector=null, $init=null ) + { + if($properties === null){ + $properties = array(); + } + if($construct_args===null){ + $construct_args = array(); + } + $ins = null; + $is_singleton = false; + $class_name = $this->getClassName($id); + if(isset($this->conf[$id])){ + $class = $this->conf[$id]; + $class_refl = new \ReflectionClass($class_name); + // 如果是单例 + // 带构造参数的类不支持单例 + if (count($properties) ===0 && count($construct_args) === 0 && isset($class['singleton']) && $class['singleton']) { + $is_singleton = true; + if (isset($this->singletons[$id])) { + $ins = $this->singletons[$id]; + Logger::info("get {$id}[$class_name] as singleton"); + return $ins; + } + } + if(isset($class['properties'])){ + $properties = array_merge($class['properties'], $properties); + } + + if (isset($class['pass_by_construct']) && $class['pass_by_construct']){ //属性在构造时传入 + Verify::isTrue(count($construct_args) ===0, "$class_name pass_by_construct"); //构造时传输属性, 所以不能再传入其他构造参数 + //组合构造参数 + $construct_args = $this->buildConstructArgs($class_refl, $properties); + $properties=array(); + } + }else{ + $class_refl = new \ReflectionClass($class_name); + } + if(!$is_singleton){ + if (array_search($id, $this->create_stack) !== false){ + $tmp = $this->create_stack; + Verify::e("create $id failed, cyclic dependencies can only used with singleton. cyclic:".print_r($tmp,true)); + } + $this->create_stack[] = $id; + } + + try { + if (isset($class['pass_by_construct']) && $class['pass_by_construct']){ + $ins = $class_refl->newInstanceArgs($construct_args); + $meta = $this->getMetaInfo($class_refl); + if ($is_singleton){ + $this->singletons[$id] = $ins; + } + $this->injectDependent($class_refl, $ins, $meta, $properties, $injector); + }else{ + $nti = new NewThenInit($class_refl); + $ins = $nti->getObject(); + $meta = $this->getMetaInfo($class_refl); + if ($is_singleton){ + $this->singletons[$id] = $ins; + } + $this->injectDependent($class_refl, $ins, $meta, $properties, $injector); + if($init !==null){ + $init($ins); + } + $nti->initArgs($construct_args); + } + } catch (\Exception $e) { + array_pop($this->create_stack); + throw $e; + } + array_pop($this->create_stack); + + Logger::info("create {$id}[$class_name] ok"); + return $ins; + } + /** + * 取配置文件路径, 如果是通过数组创建的, 则返回null + * @return string|NULL + */ + public function getConfFile(){ + return $this->conf_file; + } + /** + * 配置中是否有指定id的类 + * @param string $id + * @return boolean + */ + public function hasClass($id){ + return isset($this->conf[$id]); + } + /** + * 设置属性值, 允许设置private/protected属性 + * @param $refl + * @param object $class + * 类名或实例 + * @param string $name + * 属性名 + * @param mixed $value + * 属性值 + */ + static function setPropertyValue($refl, $ins, $name, $value) + { + Verify::isTrue($m = $refl->getProperty($name)); + $m->setAccessible(true); + $m->setValue($ins, $value); + } + /** + * 取属性值 + * @param $refl + * @param object $ins + * @param string $name + * @return mixed + */ + static function getPropertyValue($refl, $ins, $name) + { + Verify::isTrue($m = $refl->getProperty($name)); + $m->setAccessible(true); + return $m->getValue($ins); + } + /** + * 获取元信息 + * 会缓存 + * @param string $class + * @return array + */ + public function getMetaInfo($class){ + if(is_string($class)){ + $refl = new \ReflectionClass($class); + }else{ + $refl = $class; + } + $name = $refl->getName(); + if($this->metas !==null && isset($this->metas[$name])){ + return $this->metas[$name]; + } + static $cache = null; + if($cache === null){ + $cache = new Cache(); + } + $succeeded = false; + $cache_key = 'meta_'.sha1($refl->getFileName().'/'.$name); + $data = $cache->get($cache_key, $succeeded); + if($succeeded){ + return $data; + } + MetaInfo::testAnnotation(); + $data = MetaInfo::get($name); + $files = [$refl->getFileName()]; + $parent = $refl->getParentClass(); + if($parent){ + $files[] = $parent->getFileName(); + } + foreach ($refl->getInterfaces() as $i){ + $files[] = $i->getFileName(); + } + $cache->set($cache_key, $data, 60, new FileExpiredChecker($files)); + return $data; + } + + /** + * 根据属性组合构造参数 + * @param ReflectionClass $class + * @param array $properties + * @return array + */ + private function buildConstructArgs($class, $properties){ + if($properties===null) { + return array(); + } + if(count($properties)==0){ + return array(); + } + $refMethod = $class->getConstructor(); + $params = $refMethod->getParameters(); + $args = array(); + foreach ($params as $key => $param) { + $param_name = $param->getName(); + if(isset($properties[$param_name])){ + $args[$key] = $this->getProperty($properties[$param_name]); + }else{ + Verify::isTrue($param->isOptional(), "{$class->getName()}::__construct miss required param: $param_name");//参数没有指定, 除非是可选参数 + break; + } + } + return $args; + } + /** + * 获取属性 + * 替换属性中的{}和@标记 + * @param string $value + * @return object|string + */ + private function getProperty($value){ + if (is_string($value) && substr($value, 0, 1) == '@') { + return $this->create(substr($value, 1)); + } else { + return $value; + } + } + + /** + * 注入依赖 + * @param ReflectionClass $refl; + * @param unknown $ins + * @param unknown $meta + * @param unknown $properties + * @return void + */ + public function injectDependent($refl, $ins, $meta, $properties, $injector=null) + { + $defaults=array(); + $class_name = $refl->getName(); + $class_defaults = $refl->getDefaultProperties(); + if(isset($meta['property']) ){ + foreach ($meta['property'] as $property => $value) { + //参数是否可选 + if(isset($value['value']) && isset($value['value']['optional']) && $value['value']['optional']){ + continue; + } + //设置了默认值 + if(isset($value['value']) && isset($value['value']['default'])){ + $defaults[$property] = $value['value']['default']; + continue; + } + // 是否设置了默认值 + if (array_key_exists($property, $class_defaults)) { + continue; + } + Verify::isTrue(array_key_exists($property, $properties), "$class_name::$property is required"); + } + } + // 设置属性 + if ($properties !== null) { + foreach ($properties as $name => $value) { + unset($defaults[$name]); + $v = $this->getProperty($value); + self::setPropertyValue($refl, $ins, $name, $v); + } + } + // 注入依赖 + if(isset($meta['inject'])){ + foreach ($meta['inject'] as $property => $value) { + //先设置必须的属性 + if(is_array($value['value'])){ + $src = $value['value']['src']; + //参数是否可选 + if(isset($value['value']) && isset($value['value']['optional']) && $value['value']['optional']){ + continue; + } + //设置了默认值 + if(isset($value['value']) && isset($value['value']['default'])){ + $defaults[$property] = $value['value']['default']; + continue; + } + }else{ + $src = $value['value']; + } + //是否设置了默认值 + if(array_key_exists($property, $class_defaults)){ + continue; + } + if ($src === "ioc_factory" || $src == "factory"){ + continue; + }else{ + $got = false; + Verify::isTrue($injector !==null , "$class_name::$property is required"); + $val = $injector($src, $got); + Verify::isTrue($got , "$class_name::$property is required"); + self::setPropertyValue($refl, $ins, $property, $val); + unset($meta['inject'][$property]); + } + } + //在设置可选的 + foreach ($meta['inject'] as $property => $value) { + if(is_array($value['value'])){ + $src = $value['value']['src']; + }else{ + $src = $value['value']; + } + if ( $src == "ioc_factory" || $src == "factory") { + self::setPropertyValue($refl, $ins, $property, $this); + unset($defaults[$property]); + }else if($injector){ + $val = $injector($src, $got); + if($got){ + self::setPropertyValue($refl, $ins, $property, $val); + unset($defaults[$property]); + } + } + } + } + // 设置默认属性 + foreach ($defaults as $name => $value ){ + unset($defaults[$name]); + $v = $this->getProperty($value); + self::setPropertyValue($refl, $ins, $name, $v); + } + } + + /** + * 替换字典 + * @see setDict + * @param string|array $value + * @return void + */ + private function replaceByDict($value, $dict){ + if(is_string($value)){ + $keys = $this->getDictKeys($value); + foreach ($keys as $key){ + Verify::isTrue(isset($dict[$key]), "{$key} not specified"); + } + foreach ($dict as $key=>$replace){ + $value = str_replace('{'.$key.'}', $replace, $value); + } + return $value; + }else if(is_array($value)){ + foreach ($value as $k=>$v){ + $value[$k] = $this->replaceByDict($v, $dict); + } + return $value; + }else{ + return $value; + } + } + /** + * 从字符串中获取模板变量 + * @param string $value + * @return array + */ + static function getDictKeys($value){ + preg_match_all('/\{([0-9a-zA-Z\-\_]*?)\}/', $value, $params); + $params += array(null, array()); + return $params[1]; + } + protected $metas; + protected $singletons = array(); + protected $conf = null; + protected $dict = array(); + protected $conf_file; + private $create_stack=array(); // 正在创建的类,用于检测循环依赖 +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/IoCFactoryEx.php b/codes/agent/game-docker/api/lib/phprs/util/IoCFactoryEx.php new file mode 100644 index 0000000..f69be09 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/IoCFactoryEx.php @@ -0,0 +1,172 @@ +getMetaInfo($this->getClassName($id)); + if(isset($meta['cache'])){ + return new IoCObjectWrap($this, $id, $construct_args, $properties, $injector, $init); + } + return $this->createRawObject($id, $construct_args, $properties, $injector, $init); + + } + /** + * 根据id创建对象(的容器)实例, 不使用容器 + * @param string $id + * @param array $properties 类属性, 覆盖配置文件中的属性 + * @param callable $injector fun($src), 获取注入值的方法 + * @param callable $init fun($inst, &$got) 初始化实例, 在创建后, 调用构造函数前 + * @param array $construct_args 构造函数的参数 + * @return object + */ + public function createRawObject($id, $construct_args=null, $properties=null, $injector=null, $init=null ){ + return parent::create($id, $construct_args, $properties, $injector, $init); + } +} +/** + * 容器 + * @author caoym + * + */ +class IoCObjectWrap{ + public function __construct($factory, $id, $construct_args, $properties, $injector, $init){ + $this->__impl__ = $factory->createRawObject('phprs\\util\\IoCContainer', [ + 'id' => $id, + 'construct_args' => $construct_args, + 'properties' => $properties, + 'injector' => $injector, + 'init' => $init + ]); + } + public function __get($name){ + return $this->__impl__->getObj()->$name; + } + public function __set($name , $value ){ + $this->__impl__->getObj()->$name = $value; + } + public function __isset ($name){ + return isset($this->__impl__->getObj()->$name); + } + public function __unset ($name){ + unset($this->__impl__->getObj()->$name); + } + + public function __call($name, $arguments) { + $arguments[0]=111; + return; + return $this->__impl__->callThroughCache($name, $arguments); + } + + /** + * @var IoCContainerImpl + */ + private $__impl__; +} +/** + * + * @author caoym + */ +class IoCContainer{ + + public function __construct($id, $construct_args, $properties, $injector, $init){ + $this->id = $id; + $this->construct_args = $construct_args; + $this->properties = $properties; + $this->injector = $injector; + $this->init = $init; + } + public function getObj(){ + if($this->obj==null){ + $this->obj = $this->factory->createRawObject( + $this->id , + $this->construct_args, + $this->properties, + $this->injector, + $this->init + ); + } + return $this->obj; + } + /** + * + */ + public function callThroughCache($method, $arguments){ + $op = $this->getCacheOptions($method); + if($op){ + $got = false; + $key = $this->genKey($method, $arguments); + $res = $this->cache->get($key, $got); + if($got){ + return $res; + }else{ + /*static $methods = []; + $name = $this->factory->getClassName($this->id).'::'.$method; + if(!array_key_exists($name, $methods)){ + $refl = new \ReflectionClass($this->factory->getClassName($this->id)); + $methods[$name] = $refl->getMethod($method); + } + $res = $methods[$name]->invokeArgs($this->getObj(), $arguments); + */ + $res = call_user_func_array([$this->getObj(),$method], $arguments); + $this->cache->set($key, $res, $op['ttl'], isset($op['checker'])?$op['checker']:null); + return $res; + } + }else{ + return call_user_func_array([$this->getObj(), $method], $arguments); + } + } + + public function getCacheOptions($method){ + if(!array_key_exists($method, $this->cachedMethods)){ + $meta = $this->factory->getMetaInfo($this->factory->getClassName($this->id)); + if(isset($meta['cache'][$method]['value'])){ + $val = $meta['cache'][$method]['value']; + list($k, $v) = $val; + Verify::isTrue($k == 'ttl', "no TTL with @cache in $method"); + $this->cachedMethods[$method][$k] = $v; + } + } + return $this->cachedMethods[$method]; + } + private function genKey($method, $arguments){ + return '_ioc_'.$this->id.$method.sha1(serialize($arguments)); + } + private $obj; + private $id; + private $construct_args; + private $properties; + private $injector; + private $init; + private $cachedMethods=[]; + /** + * @inject("factory") + * @var IoCFactoryEx + */ + private $factory; + /** + * @property + * @var CheckableCache + */ + private $cache; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/KVCatchInterface.php b/codes/agent/game-docker/api/lib/phprs/util/KVCatchInterface.php new file mode 100644 index 0000000..53a4313 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/KVCatchInterface.php @@ -0,0 +1,34 @@ + '==DEBUG==', + Logger::INFO => '==INFO==', + Logger::WARNING => '==WARNING==', + Logger::ERROR => '==ERROR==', + ); + echo $titles[$level].' '.$message."
    \n"; + }; + + Logger::$to_php_log = function ($level, $message) + { + $titles = array( + Logger::DEBUG => E_USER_NOTICE, + Logger::INFO => E_USER_NOTICE, + Logger::WARNING => E_USER_WARNING, + Logger::ERROR => E_USER_ERROR, + ); + $caller = debug_backtrace()[2]; + trigger_error($message.' in '.$caller['file'].' on line '.$caller['line'].''."\n
    ", $titles[$level]); + }; + + Logger::$to_void = function ($level, $message){ + }; + if(Logger::$writer === null){ + Logger::$writer = Logger::$to_php_log; + } + + } +} + +Logger::init(); + diff --git a/codes/agent/game-docker/api/lib/phprs/util/MessagePump.php b/codes/agent/game-docker/api/lib/phprs/util/MessagePump.php new file mode 100644 index 0000000..2fb8f25 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/MessagePump.php @@ -0,0 +1,219 @@ +queues[$this->start_queue_id])); + $this->action_queues[$this->start_queue_id] = array(); + $this->idle_queues[$this->start_queue_id] = array(); + $this->end_handles[$this->start_queue_id] = $onEnd; + Logger::debug("[MQ {$this->start_queue_id}] created"); + return $this->start_queue_id++; + } + + /** + * 关闭一个消息队列,队列中未执行的操作将不会再执行 + * + * @param int $queue_id + * @return void + */ + public function closeQueue($queue_id) + { + if (! isset($this->idle_queues[$queue_id])){ + return; + } + Logger::debug("[MQ $queue_id] attempt to close"); + // 队列末尾加入null,消息循环处理到null后任务队列结束 + array_unshift($this->action_queues[$queue_id], null); + $this->next_action[]=$queue_id; + // $this->idle_queues[$queue_id][]=null; + } + + /** + * 加入常规执行消息 + * + * @param int $queue_id队列id + * @param callable $action 调用方法 + * @param array $args 调用参数 + * @param callable $exception_handle异常处理 + * @param string $desc 描述信息 + * @param boolean immediately 是否立即执行 + * @return void + */ + public function pushAction($queue_id, $action, $args, $exception_handle, $desc, $immediately=false) + { + if (! isset($this->action_queues[$queue_id])) { + Logger::warning("unknown message queue $queue_id"); + return; + } + $count=count($this->action_queues[$queue_id]); + if($count && $this->action_queues[$queue_id][0] ===null){ + Logger::warning("[MQ $queue_id] try to add action to closed queue"); + return; + } + $action = array( + $action, + $args, + $exception_handle, + $desc, + ); + if($immediately){ + Logger::debug("[MQ $queue_id] new action [$desc'] immediately"); + $this->callAction($queue_id, $action); + }else{ + Logger::debug("[MQ $queue_id] new action [$desc']"); + $this->action_queues[$queue_id][] =$action; + $this->next_action[] = $queue_id; + } + } + + /** + * 加入空闲执行消息 + * + * @param callable $action + * @param callable $exception_handle + * @param string $desc + * 描述信息 + * @return void + */ + public function pushIdle($queue_id, $action, $args, $exception_handle, $desc) + { + if (! isset($this->idle_queues[$queue_id])) { + Logger::warning("unknown message queue $queue_id"); + return; + } + $this->idle_queues[$queue_id][] = array( + $action, + $args, + $exception_handle, + $desc, + ); + $this->next_idle[] = $queue_id; + } + + /** + * 运行消息循环 + * @return void + */ + public function run() + { + if ($this->is_running) { + return; + } + Logger::debug("[MQ Pump] begin"); + $this->is_running = true; + while (count($this->next_action) || count($this->next_idle)) { + //没有活动事件,执行idle事件 + if(count($this->next_action) === 0){ + $queue_id = array_pop($this->next_idle); + if (!isset($this->idle_queues[$queue_id])) { // 队列可能被关闭 + continue; + } + $idle = array_pop($this->idle_queues[$queue_id]); + Verify::isTrue($idle !== null, 'never been here!!'); + if ($idle[2] !== null) { + try { + call_user_func_array($idle[0], $idle[1]); + } catch (\Exception $e) { + $idle[2]($e); + } + } else { + call_user_func_array($idle[0],$idle[1]); + } + continue; + } + $queue_id = array_pop($this->next_action); + if (!isset($this->action_queues[$queue_id])) { // 队列可能被关闭 + continue; + } + $actions = &$this->action_queues[$queue_id]; + $left = count($actions); + $action = array_pop($actions); + if ($action !== null) { + $this->callAction($queue_id, $action); + } elseif ($left !== 0) { + //null插入队列,表示执行队列结束, 可以安全关闭队列了 + $onend = $this->end_handles[$queue_id]; + unset($this->action_queues[$queue_id]); + unset($this->idle_queues[$queue_id]); + unset($this->end_handles[$queue_id]); + Logger::debug("[MQ $queue_id] closed"); + if ($onend !== null) { + $onend(); + } + } + + } + //不是在单个队列为空时将其关闭,因为对于存在子流程的时候,其消息队列可能为空,但 + //其他流程执行可能导致子流程产生活动消息,所以不能在队列为空时就关闭队列 + foreach ($this->end_handles as $onend){ + if($onend !== null){ + $onend(); + } + } + $this->next_action = array(); + $this->next_idle = array(); + $this->action_queues = array(); + $this->idle_queues = array(); + $this->end_handles= array(); + + $this->is_running = false; + Logger::debug("[MQ Pump] end"); + } + /** + * + * @param unknown $queue_id + * @param unknown $action + */ + private function callAction($queue_id, $action){ + if ($action[3] !== null) { + Logger::debug("[MQ $queue_id]".$action[3]); + } + if ($action[2] !== null) { + try { + call_user_func_array($action[0],$action[1]); + } catch (\Exception $e) { + Logger::warning("[MQ $queue_id] exception: $e"); + $action[2]($e); + } + } else { + call_user_func_array($action[0],$action[1]); + } + } + private $is_running = false; + private $start_queue_id = 0; + + private $next_action = array(); // 保存下一个操作所在的队列 + private $next_idle = array(); // 保存空闲时下一次执行操作所在的队列 + + private $action_queues = array(); // 执行队列 + private $idle_queues = array(); // 空闲队列 + + private $end_handles = array(); +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/util/MetaInfo.php b/codes/agent/game-docker/api/lib/phprs/util/MetaInfo.php new file mode 100644 index 0000000..d1bebc4 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/MetaInfo.php @@ -0,0 +1,83 @@ +getDocComment())){ + $info['doc'] = $doc; + } + } + if($select !== null){ + $select = array_flip($select); + } + foreach ($reader->getClassAnnotations($reflection, $record_doc) as $id =>$ann ){ + if($select !==null && !array_key_exists($id, $select)){ + continue; + } + $ann=$ann[0];//可能有多个重名的, 只取第一个 + $info[$id] = $ann; + } + foreach ($reflection->getMethods() as $method ){ + foreach ( $reader->getMethodAnnotations($method, $record_doc) as $id => $ann){ + if($select !==null && !array_key_exists($id, $select)){ + continue; + } + $ann=$ann[0];//可能有多个重名的, 只取第一个 + $info += array($id=>array()); + $info[$id][$method->getName()] = $ann; + } + } + foreach ($reflection->getProperties() as $property ){ + foreach ( $reader->getPropertyAnnotations($property, $record_doc) as $id => $ann){ + if($select !==null && !array_key_exists($id, $select)){ + continue; + } + $ann = $ann[0];//可能有多个重名的, 只取第一个 + $info += array($id=>array()); + $info[$id][$property->getName()] = $ann; + } + } + + return $info; + } + + static function testAnnotation(){ + Verify::isTrue(count(self::get(new AnnotationTest(),true)), 'Annotation dose not work! If opcache is enable, please set opcache.save_comments=1 and opcache.load_comments=1'); + } + /** + * 有效的元信息 + * @var unknown + */ + private static $valid=array(); + +} + +?> diff --git a/codes/agent/game-docker/api/lib/phprs/util/NestedStringCut.php b/codes/agent/game-docker/api/lib/phprs/util/NestedStringCut.php new file mode 100644 index 0000000..9afff84 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/NestedStringCut.php @@ -0,0 +1,108 @@ +$state($str, $pos, $state); + if($pos === false){ + break; + } + }; + return false; + } + + public function getSnippets(){ + return $this->snippets; + } + + public function getText(){ + return implode('', $this->snippets); + } + /** + * 将剪切后的字符串位置转换成原始字符串位置 + * @param int $pos + * @param int + */ + public function mapPos($pos){ + + foreach ($this->snippets as $k => $v){ + $pos += $k; + if($pos < $k + strlen($v)){ + break; + } + $pos -= ($k + strlen($v)); + + } + return $pos; + } + /** + * 普通状态 + */ + private function stateNormal($str, $pos, &$next){ + $ori = $pos; + $posSQ = strpos($str, '\'', $pos); + $posDQ = strpos($str, '"', $pos); + $pos = $posSQ; + $this->subStateQ = '\''; + $next = 'stateQ'; + if($posDQ !== false && (($posDQ < $pos) || ($pos === false)) ){ + $pos = $posDQ; + $this->subStateQ = '"'; + } + if($pos !== false){ + $this->snippets[$ori] = substr($str, $ori, $pos-$ori); + $pos ++; + }else{ + $this->snippets[$ori] = substr($str, $ori); + } + return $pos; + } + + /** + * 进入引号状态 + */ + private function stateQ($str, $pos, &$next){ + $posESC = strpos($str, '\\', $pos); + $posQ = strpos($str, $this->subStateQ, $pos); + $pos = $posESC; + $next = 'stateESC'; + + if($posQ !== false && (($posQ<$posESC) || ($posESC === false))){ + $pos = $posQ; + $next = 'stateNormal'; + } + if($pos !== false){ + $pos ++; + } + return $pos; + } + /** + * 进入转义状态 + */ + private function stateESC($str, $pos, &$next){ + $pos++; + if($pos >= strlen($str)){ + return false; + } + $next = 'stateQ'; + return $pos; + } + /** + * 去掉嵌套字符串后的内容 + * @var array + */ + private $snippets=array(); + + private $subStateQ; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/NewThenInit.php b/codes/agent/game-docker/api/lib/phprs/util/NewThenInit.php new file mode 100644 index 0000000..378c28c --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/NewThenInit.php @@ -0,0 +1,57 @@ +refl = new \ReflectionClass($class); + }else{ + $this->refl = $class; + } + $this->obj = $this->refl->newInstanceWithoutConstructor(); + } + /** + * 返回创建的实例 + * @return object + */ + public function getObject(){ + return $this->obj; + } + /** + * 初始化 + * @param 可变数量参数 + */ + public function init($arg0 = null, $_ = null){ + $this->initArgs(func_get_args()); + } + /** + * 初始化 + * @param array $args 参数列表 + */ + public function initArgs($args){ + $cnst = $this->refl->getConstructor(); + if($cnst !== null) { + $cnst->invokeArgs( $this->obj, $args); + }else{ + Verify::isTrue(count($args) ===0, $this->refl->getName().' no constructor found with '.func_num_args().' params'); + } + } + private $refl; + private $obj; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/RedisCache.php b/codes/agent/game-docker/api/lib/phprs/util/RedisCache.php new file mode 100644 index 0000000..5bc27d9 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/RedisCache.php @@ -0,0 +1,93 @@ +serialize){ + $var = serialize($var); + } + if($ttl === null){ + $this->getImpl()->set($key, $var); + }else{ + return $this->getImpl()->setex($key, $ttl, $var); + } + } + /** + * 删除key + * @param string $key + * @return boolean + */ + public function del($key){ + return $this->getImpl()->delete($key) == 1; + } + /** + * get key + * @param string $key + * @param boolean $succeeded + * @return mixed + */ + public function get($key, &$succeeded=null){ + $res = $this->getImpl()->get($key); + $succeeded = ($res !== false); + if($this->serialize){ + $res = unserialize($res); + } + return $res; + } + private function getImpl(){ + if($this->redis === null){ + $this->redis = new \Redis(); + } + if(!$this->redis->isConnected()){ + $this->redis->connect($this->host, $this->port); + } + if(!empty($this->user) && !empty($this->pwd)){ + Verify::isTrue($this->redis->auth($this->user . ":" . $this->pwd), $this->redis->getLastError()); + } + return $this->redis; + } + /** + * @property + * 服务器地址 + */ + private $host; + /** + * @property + * 服务器端口 + */ + private $port; + + /** + * @property + * 服务器实例Id + */ + private $user; + /** + * @property + * 服务器实例密码 + */ + private $pwd; + /** + * @var \Redis + */ + private $redis; + /** @property */ + private $serialize = true; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/SaftyFileWriter.php b/codes/agent/game-docker/api/lib/phprs/util/SaftyFileWriter.php new file mode 100644 index 0000000..872f7df --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/SaftyFileWriter.php @@ -0,0 +1,49 @@ +0); + Verify::isTrue(is_callable($args[0])); + $this->func = $args[0]; + $this->bind = array_slice($args,1); + } + + /** + * + * 调用时,将bind参数加在方法的最前面 + * @return mixed + */ + public function __invoke(){ + $args = func_get_args(); + $params = $this->bind; + foreach ($args as $arg){ + array_push($params, $arg); + } + $res = call_user_func_array($this->func, $params); + foreach ($this->next as $next){ + call_user_func_array($next,$args); + } + return $res; + } + /** + * 串行调用 + * @var unknown + */ + public $next=array(); + private $bind; + private $func; +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/lib/phprs/util/Tree.php b/codes/agent/game-docker/api/lib/phprs/util/Tree.php new file mode 100644 index 0000000..6cc7bb9 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/Tree.php @@ -0,0 +1,201 @@ +arr)){ + $this->arr[$cur] = array(); + } + $insert= false; + $this->visitNode($path,function ($name,&$node)use(&$insert,&$left,$value,$replace_exits, &$replaced){ + $cur = array_shift($left); + if($cur === null){ + if(array_key_exists('value',$node)){//是否已存在 + if(!$replace_exits){ + return false; + } + $replaced = $node['value']; + } + $node['value'] = $value; + $insert = true; + return false;//停止遍历 + }else{ + if(!array_key_exists('next',$node)){ + $node['next'] = array(); + } + if(!array_key_exists($cur,$node['next'])){ + $node['next'][$cur]= array(); + } + } + return true; + }, true); + return $insert; + } + /** + * 删除一个路径下的所有节点 + * @param array $path + * @return boolean + */ + public function erase(array $path){ + if(count($path)==0){ + return false; + } + $size = count($path); + $key = $path[$size-1]; + if($size ==1){ + if(array_key_exists($key, $this->arr)){ + unset($this->arr[$key]); + return true; + } + return false; + } + $i = 0; + $res = false; + $full = $this->visitNode($path,function ($name,&$node)use(&$i,$size,$key,&$res){ + if(++$i == $size-1){ + if(isset($node['next']) && isset($node['next'][$key])){ + unset($node['next'][$key]); + $res = true; + } + return false; + } + return true; + }, true); + return $res; + } + /** + * 遍历路径 + * @param array $path + * @return boolean 全部遍历完返回true,否则返回false + */ + public function visit( $path ,$vistor, $exact_match=false){ + return $this->visitNode($path,function ($name,$node)use($vistor){ + return $vistor($name,array_key_exists('value',$node)?$node['value']:null); + }, $exact_match); + } + /** + * 查找指定路径的节点 + * @param array $path + * @param boolean $exact_match 是否精确匹配,如果是,则通配符被认为与其他值不同 + * @return 返回节点的值, 或者null + */ + public function find(array $path, $exact_match=false){ + $found = null; + $full = $this->visitNode($path,function ($name,$node)use(&$found){ + $found = array_key_exists('value',$node)?$node['value']:null; + return true; + }, $exact_match); + return $full?$found:null; + } + /** + * 查找指定路径的节点 + * @param array $path + * @param boolean $exact_match 是否精确匹配,如果是,则通配符被认为与其他值不同 + * @param boolean $all_req_paths 是否要求查询路径的所有元素都必须遍历到 + * @param boolean $all_paths 是否 + * @return 返回节点的, 或者null + */ + public function findNode(array $path, $exact_match=false, $all_req_paths=false){ + $found = null; + $full = $this->visitNode($path,function ($name,$node)use(&$found){ + $found = $node; + return true; + }, $exact_match, $all_req_paths); + return $full?$found:null; + } + /** + * 遍历路径 + * @param array $path + * @param boolean $exact_match 是否精确匹配,如果是,则通配符被认为与其他值不同 + * @param boolean $all_req_paths 是否要求查询路径的所有元素都必须遍历到 + * @return boolean 变量完成返回true,遍历未完成时终止返回false + */ + private function visitNode( $path, $vistor, $exact_match=false, $all_req_paths=false){ + assert(count($path)); + $pos = &$this->arr; + $next = &$pos; + foreach ($path as $i){ + if(is_null($next)) { + return !$all_req_paths; + } + if(!array_key_exists($i, $next)){ + if($exact_match){ + return false; + } + if($i == self::$end){ + return false; + } + //不要求完全匹配, 尝试匹配通配符 + if(!array_key_exists(self::$wildcard, $next)){ + return false; + } + $pos = &$next[self::$wildcard]; + }else{ + $pos = &$next[$i]; + } + if(!$vistor($i,$pos)){ + return false; + } + if(array_key_exists('next',$pos)){ + $next = &$pos['next']; + }else{ + $nul = null; + $next = &$nul; //$next = null 会导致引用的对象被赋值,而不是next被赋值 + } + } + return true; + } + /** + * 树打平输出成数组 + * @return array + */ + public function export(){ + $res=array(); + self::treeToArray($this->arr, $res); + return $res; + } + /** + * + * @param array $tree + * @param array $res + * @return void + */ + static private function treeToArray($tree, &$res){ + foreach ($tree as $name=>$node){ + if($node === null){ + continue; + } + if( isset($node['value']) ){ + $res[] = array(array($name), $node['value']); + } + if( isset($node['next']) ){ + $tmp = array(); + self::treeToArray($node['next'], $tmp); + foreach ($tmp as $v){ + array_unshift($v[0], $name); + $res[] = array($v[0], $v[1]); + } + } + } + } + private $arr=array(); + static public $end="\n"; + static public $wildcard='*'; +} diff --git a/codes/agent/game-docker/api/lib/phprs/util/Verify.php b/codes/agent/game-docker/api/lib/phprs/util/Verify.php new file mode 100644 index 0000000..7f6af67 --- /dev/null +++ b/codes/agent/game-docker/api/lib/phprs/util/Verify.php @@ -0,0 +1,49 @@ +errorMsg = array( + "20001" => "

    配置文件损坏或无法读取,请重新执行intall

    ", + "30001" => "

    The state does not match. You may be a victim of CSRF.

    ", + "50001" => "

    可能是服务器无法请求https协议

    可能未开启curl支持,请尝试开启curl支持,重启web服务器,如果问题仍未解决,请联系我们" + ); + } + + /** + * showError + * 显示错误信息 + * @param int $code 错误代码 + * @param string $description 描述信息(可选) + */ + public function showError($code, $description = '$'){ + $recorder = new Recorder(); + if(! $recorder->readInc("errorReport")){ + die();//die quietly + } + + + echo ""; + if($description == "$"){ + die($this->errorMsg[$code]); + }else{ + echo "

    error:

    $code"; + echo "

    msg :

    $description"; + exit(); + } + } + public function showTips($code, $description = '$'){ + } +} diff --git a/codes/agent/game-docker/api/loginLib/qq/API/class/Oauth.class.php b/codes/agent/game-docker/api/loginLib/qq/API/class/Oauth.class.php new file mode 100644 index 0000000..c1e0cbf --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/API/class/Oauth.class.php @@ -0,0 +1,123 @@ +recorder = new Recorder(); + $this->urlUtils = new URL(); + $this->error = new ErrorCase(); + } + + public function qq_login(){ + $appid = $this->recorder->readInc("appid"); + $callback = $this->recorder->readInc("callback"); + + $scope = $this->recorder->readInc("scope"); + + //-------生成唯一随机串防CSRF攻击 + $state = md5(uniqid(rand(), TRUE)); + $this->recorder->write('state',$state); + + //-------构造请求参数列表 + $keysArr = array( + "response_type" => "code", + "client_id" => $appid, + "redirect_uri" => $callback, + "state" => $state, + "scope" => $scope + ); + + $login_url = $this->urlUtils->combineURL(self::GET_AUTH_CODE_URL, $keysArr); + + header("Location:$login_url"); + } + + public function qq_callback(){ + $state = $this->recorder->read("state"); + + //--------验证state防止CSRF攻击 + if($_GET['state'] != $state){ + $this->error->showError("30001"); + } + + //-------请求参数列表 + $keysArr = array( + "grant_type" => "authorization_code", + "client_id" => $this->recorder->readInc("appid"), + "redirect_uri" => urlencode($this->recorder->readInc("callback")), + "client_secret" => $this->recorder->readInc("appkey"), + "code" => $_GET['code'] + ); + + //------构造请求access_token的url + $token_url = $this->urlUtils->combineURL(self::GET_ACCESS_TOKEN_URL, $keysArr); + $response = $this->urlUtils->get_contents($token_url); + + if(strpos($response, "callback") !== false){ + + $lpos = strpos($response, "("); + $rpos = strrpos($response, ")"); + $response = substr($response, $lpos + 1, $rpos - $lpos -1); + $msg = json_decode($response); + + if(isset($msg->error)){ + $this->error->showError($msg->error, $msg->error_description); + } + } + + $params = array(); + parse_str($response, $params); + + $this->recorder->write("access_token", $params["access_token"]); + return $params["access_token"]; + + } + + public function get_openid(){ + + //-------请求参数列表 + $keysArr = array( + "access_token" => $this->recorder->read("access_token") + ); + + $graph_url = $this->urlUtils->combineURL(self::GET_OPENID_URL, $keysArr); + $response = $this->urlUtils->get_contents($graph_url); + + //--------检测错误是否发生 + if(strpos($response, "callback") !== false){ + + $lpos = strpos($response, "("); + $rpos = strrpos($response, ")"); + $response = substr($response, $lpos + 1, $rpos - $lpos -1); + } + + $user = json_decode($response); + if(isset($user->error)){ + $this->error->showError($user->error, $user->error_description); + } + + //------记录openid + $this->recorder->write("openid", $user->openid); + return $user->openid; + + } +} diff --git a/codes/agent/game-docker/api/loginLib/qq/API/class/QC.class.php b/codes/agent/game-docker/api/loginLib/qq/API/class/QC.class.php new file mode 100644 index 0000000..5908b83 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/API/class/QC.class.php @@ -0,0 +1,300 @@ +keysArr = array( + "oauth_consumer_key" => (int)$this->recorder->readInc("appid"), + "access_token" => $this->recorder->read("access_token"), + "openid" => $this->recorder->read("openid") + ); + }else{ + $this->keysArr = array( + "oauth_consumer_key" => (int)$this->recorder->readInc("appid"), + "access_token" => $access_token, + "openid" => $openid + ); + } + + //初始化APIMap + /* + * 加#表示非必须,无则不传入url(url中不会出现该参数), "key" => "val" 表示key如果没有定义则使用默认值val + * 规则 array( baseUrl, argListArr, method) + */ + $this->APIMap = array( + + + /* qzone */ + "add_blog" => array( + "https://graph.qq.com/blog/add_one_blog", + array("title", "format" => "json", "content" => null), + "POST" + ), + "add_topic" => array( + "https://graph.qq.com/shuoshuo/add_topic", + array("richtype","richval","con","#lbs_nm","#lbs_x","#lbs_y","format" => "json", "#third_source"), + "POST" + ), + "get_user_info" => array( + "https://graph.qq.com/user/get_user_info", + array("format" => "json"), + "GET" + ), + "add_one_blog" => array( + "https://graph.qq.com/blog/add_one_blog", + array("title", "content", "format" => "json"), + "GET" + ), + "add_album" => array( + "https://graph.qq.com/photo/add_album", + array("albumname", "#albumdesc", "#priv", "format" => "json"), + "POST" + ), + "upload_pic" => array( + "https://graph.qq.com/photo/upload_pic", + array("picture", "#photodesc", "#title", "#albumid", "#mobile", "#x", "#y", "#needfeed", "#successnum", "#picnum", "format" => "json"), + "POST" + ), + "list_album" => array( + "https://graph.qq.com/photo/list_album", + array("format" => "json") + ), + "add_share" => array( + "https://graph.qq.com/share/add_share", + array("title", "url", "#comment","#summary","#images","format" => "json","#type","#playurl","#nswb","site","fromurl"), + "POST" + ), + "check_page_fans" => array( + "https://graph.qq.com/user/check_page_fans", + array("page_id" => "314416946","format" => "json") + ), + /* wblog */ + + "add_t" => array( + "https://graph.qq.com/t/add_t", + array("format" => "json", "content","#clientip","#longitude","#compatibleflag"), + "POST" + ), + "add_pic_t" => array( + "https://graph.qq.com/t/add_pic_t", + array("content", "pic", "format" => "json", "#clientip", "#longitude", "#latitude", "#syncflag", "#compatiblefalg"), + "POST" + ), + "del_t" => array( + "https://graph.qq.com/t/del_t", + array("id", "format" => "json"), + "POST" + ), + "get_repost_list" => array( + "https://graph.qq.com/t/get_repost_list", + array("flag", "rootid", "pageflag", "pagetime", "reqnum", "twitterid", "format" => "json") + ), + "get_info" => array( + "https://graph.qq.com/user/get_info", + array("format" => "json") + ), + "get_other_info" => array( + "https://graph.qq.com/user/get_other_info", + array("format" => "json", "#name", "fopenid") + ), + "get_fanslist" => array( + "https://graph.qq.com/relation/get_fanslist", + array("format" => "json", "reqnum", "startindex", "#mode", "#install", "#sex") + ), + "get_idollist" => array( + "https://graph.qq.com/relation/get_idollist", + array("format" => "json", "reqnum", "startindex", "#mode", "#install") + ), + "add_idol" => array( + "https://graph.qq.com/relation/add_idol", + array("format" => "json", "#name-1", "#fopenids-1"), + "POST" + ), + "del_idol" => array( + "https://graph.qq.com/relation/del_idol", + array("format" => "json", "#name-1", "#fopenid-1"), + "POST" + ), + /* pay */ + + "get_tenpay_addr" => array( + "https://graph.qq.com/cft_info/get_tenpay_addr", + array("ver" => 1,"limit" => 5,"offset" => 0,"format" => "json") + ) + ); + } + + //调用相应api + private function _applyAPI($arr, $argsList, $baseUrl, $method){ + $pre = "#"; + $keysArr = $this->keysArr; + + $optionArgList = array();//一些多项选填参数必选一的情形 + foreach($argsList as $key => $val){ + $tmpKey = $key; + $tmpVal = $val; + + if(!is_string($key)){ + $tmpKey = $val; + + if(strpos($val,$pre) === 0){ + $tmpVal = $pre; + $tmpKey = substr($tmpKey,1); + if(preg_match("/-(\d$)/", $tmpKey, $res)){ + $tmpKey = str_replace($res[0], "", $tmpKey); + $optionArgList[$res[1]][] = $tmpKey; + } + }else{ + $tmpVal = null; + } + } + + //-----如果没有设置相应的参数 + if(!isset($arr[$tmpKey]) || $arr[$tmpKey] === ""){ + + if($tmpVal == $pre){//则使用默认的值 + continue; + }else if($tmpVal){ + $arr[$tmpKey] = $tmpVal; + }else{ + if($v = $_FILES[$tmpKey]){ + + $filename = dirname($v['tmp_name'])."/".$v['name']; + move_uploaded_file($v['tmp_name'], $filename); + $arr[$tmpKey] = "@$filename"; + + }else{ + $this->error->showError("api调用参数错误","未传入参数$tmpKey"); + } + } + } + + $keysArr[$tmpKey] = $arr[$tmpKey]; + } + //检查选填参数必填一的情形 + foreach($optionArgList as $val){ + $n = 0; + foreach($val as $v){ + if(in_array($v, array_keys($keysArr))){ + $n ++; + } + } + + if(! $n){ + $str = implode(",",$val); + $this->error->showError("api调用参数错误",$str."必填一个"); + } + } + + if($method == "POST"){ + if($baseUrl == "https://graph.qq.com/blog/add_one_blog") $response = $this->urlUtils->post($baseUrl, $keysArr, 1); + else $response = $this->urlUtils->post($baseUrl, $keysArr, 0); + }else if($method == "GET"){ + $response = $this->urlUtils->get($baseUrl, $keysArr); + } + + return $response; + + } + + /** + * _call + * 魔术方法,做api调用转发 + * @param string $name 调用的方法名称 + * @param array $arg 参数列表数组 + * @since 5.0 + * @return array 返加调用结果数组 + */ + public function __call($name,$arg){ + //如果APIMap不存在相应的api + if(empty($this->APIMap[$name])){ + $this->error->showError("api调用名称错误","不存在的API: $name"); + } + + //从APIMap获取api相应参数 + $baseUrl = $this->APIMap[$name][0]; + $argsList = $this->APIMap[$name][1]; + $method = isset($this->APIMap[$name][2]) ? $this->APIMap[$name][2] : "GET"; + + if(empty($arg)){ + $arg[0] = null; + } + + //对于get_tenpay_addr,特殊处理,php json_decode对\xA312此类字符支持不好 + if($name != "get_tenpay_addr"){ + $response = json_decode($this->_applyAPI($arg[0], $argsList, $baseUrl, $method)); + $responseArr = $this->objToArr($response); + }else{ + $responseArr = $this->simple_json_parser($this->_applyAPI($arg[0], $argsList, $baseUrl, $method)); + } + + + //检查返回ret判断api是否成功调用 + if($responseArr['ret'] == 0){ + return $responseArr; + }else{ + $this->error->showError($response->ret, $response->msg); + } + + } + + //php 对象到数组转换 + private function objToArr($obj){ + if(!is_object($obj) && !is_array($obj)) { + return $obj; + } + $arr = array(); + foreach($obj as $k => $v){ + $arr[$k] = $this->objToArr($v); + } + return $arr; + } + + + /** + * get_access_token + * 获得access_token + * @param void + * @since 5.0 + * @return string 返加access_token + */ + public function get_access_token(){ + return $this->recorder->read("access_token"); + } + + //简单实现json到php数组转换功能 + private function simple_json_parser($json){ + $json = str_replace("{","",str_replace("}","", $json)); + $jsonValue = explode(",", $json); + $arr = array(); + foreach($jsonValue as $v){ + $jValue = explode(":", $v); + $arr[str_replace('"',"", $jValue[0])] = (str_replace('"', "", $jValue[1])); + } + return $arr; + } +} diff --git a/codes/agent/game-docker/api/loginLib/qq/API/class/Recorder.class.php b/codes/agent/game-docker/api/loginLib/qq/API/class/Recorder.class.php new file mode 100644 index 0000000..72bada9 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/API/class/Recorder.class.php @@ -0,0 +1,59 @@ +error = new ErrorCase(); + + //-------读取配置文件 + $incFileContents = file(IA_ROOT."/loginLib/qq/API/comm/inc.php"); + $incFileContents = $incFileContents[1]; + $this->inc = json_decode($incFileContents); + if(empty($this->inc)){ + $this->error->showError("20001"); + } + + if(empty($_SESSION['QC_userData'])){ + self::$data = array(); + }else{ + self::$data = $_SESSION['QC_userData']; + } + } + + public function write($name,$value){ + self::$data[$name] = $value; + } + + public function read($name){ + if(empty(self::$data[$name])){ + return null; + }else{ + return self::$data[$name]; + } + } + + public function readInc($name){ + if(empty($this->inc->$name)){ + return null; + }else{ + return $this->inc->$name; + } + } + + public function delete($name){ + unset(self::$data[$name]); + } + + function __destruct(){ + $_SESSION['QC_userData'] = self::$data; + } +} diff --git a/codes/agent/game-docker/api/loginLib/qq/API/class/URL.class.php b/codes/agent/game-docker/api/loginLib/qq/API/class/URL.class.php new file mode 100644 index 0000000..6419427 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/API/class/URL.class.php @@ -0,0 +1,100 @@ +error = new ErrorCase(); + } + + /** + * combineURL + * 拼接url + * @param string $baseURL 基于的url + * @param array $keysArr 参数列表数组 + * @return string 返回拼接的url + */ + public function combineURL($baseURL,$keysArr){ + $combined = $baseURL."?"; + $valueArr = array(); + + foreach($keysArr as $key => $val){ + $valueArr[] = "$key=$val"; + } + + $keyStr = implode("&",$valueArr); + $combined .= ($keyStr); + + return $combined; + } + + /** + * get_contents + * 服务器通过get请求获得内容 + * @param string $url 请求的url,拼接后的 + * @return string 请求返回的内容 + */ + public function get_contents($url){ + if (ini_get("allow_url_fopen") == "1") { + $response = file_get_contents($url); + }else{ + $ch = curl_init(); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($ch, CURLOPT_URL, $url); + $response = curl_exec($ch); + curl_close($ch); + } + + //-------请求为空 + if(empty($response)){ + $this->error->showError("50001"); + } + + return $response; + } + + /** + * get + * get方式请求资源 + * @param string $url 基于的baseUrl + * @param array $keysArr 参数列表数组 + * @return string 返回的资源内容 + */ + public function get($url, $keysArr){ + $combined = $this->combineURL($url, $keysArr); + return $this->get_contents($combined); + } + + /** + * post + * post方式请求资源 + * @param string $url 基于的baseUrl + * @param array $keysArr 请求的参数列表 + * @param int $flag 标志位 + * @return string 返回的资源内容 + */ + public function post($url, $keysArr, $flag = 0){ + + $ch = curl_init(); + if(! $flag) curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($ch, CURLOPT_POST, TRUE); + curl_setopt($ch, CURLOPT_POSTFIELDS, $keysArr); + curl_setopt($ch, CURLOPT_URL, $url); + $ret = curl_exec($ch); + + curl_close($ch); + return $ret; + } +} diff --git a/codes/agent/game-docker/api/loginLib/qq/API/comm/config.php b/codes/agent/game-docker/api/loginLib/qq/API/comm/config.php new file mode 100644 index 0000000..0286dbb --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/API/comm/config.php @@ -0,0 +1,8 @@ + +{"appid":"101338674","appkey":"bd3221275e859d30182256576d7f261c","callback":"__QQ_CALLBACK_URL__","scope":",,,,,,,,,,,,,,,,,,,","errorReport":true,"storageType":"file","host":"localhost","user":"root","password":"root","database":"test"} \ No newline at end of file diff --git a/codes/agent/game-docker/api/loginLib/qq/API/comm/utils.php b/codes/agent/game-docker/api/loginLib/qq/API/comm/utils.php new file mode 100644 index 0000000..02a027b --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/API/comm/utils.php @@ -0,0 +1,43 @@ + diff --git a/codes/agent/game-docker/api/loginLib/qq/API/qqConnectAPI.php b/codes/agent/game-docker/api/loginLib/qq/API/qqConnectAPI.php new file mode 100644 index 0000000..3497079 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/API/qqConnectAPI.php @@ -0,0 +1,5 @@ +error = new ErrorCase(); + + //-------读取配置文件 + $incFileContents = file_get_contents(ROOT."comm/inc.php"); + $this->inc = json_decode($incFileContents); + if(empty($this->inc)){ + $this->error->showError("20001"); + } + + if(empty($_SESSION['QC_userData'])){ + self::$data = array(); + }else{ + self::$data = $_SESSION['QC_userData']; + } + } + + public function write($name,$value){ + self::$data[$name] = $value; + } + + public function read($name){ + if(empty(self::$data[$name])){ + return null; + }else{ + return self::$data[$name]; + } + } + + public function readInc($name){ + if(empty($this->inc->$name)){ + return null; + }else{ + return $this->inc->$name; + } + } + + public function delete($name){ + unset(self::$data[$name]); + } + + function __destruct(){ + $_SESSION['QC_userData'] = self::$data; + } +} diff --git a/codes/agent/game-docker/api/loginLib/qq/install/index.php b/codes/agent/game-docker/api/loginLib/qq/install/index.php new file mode 100644 index 0000000..4637713 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/install/index.php @@ -0,0 +1,46 @@ +'; + die("请先删除intall目录下setted.inc文件再进行配置
    如果已配置成功并发布到外网,请只保留API目录下文件,删除intall目录下和其他文件"); +} +if(!function_exists("curl_init")){ + echo "

    请先开启curl支持

    "; + echo " + 开启php curl函数库的步骤(for windows)
    + 1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路径*/
    + 2).把php5/libeay32.dll,ssleay32.dll复制到系统目录windows/下
    + 3).重启apache
    + "; + exit(); +} +if($_POST){ + + foreach($_POST as $k => $val){ + if(empty($val)){ + die("请填写$k"); + } + } + $_POST['storageType'] = "file"; + $_POST['host'] = "localhost"; + $_POST['user'] = "root"; + $_POST['password'] = "root"; + $_POST['database'] = "test"; + $_POST['scope'] = implode(",",$_POST['scope']); + $_POST['errorReport'] = (boolean) $_POST['errorReport']; + $setting = "\n"; + $setting .= json_encode($_POST); + $setting = str_replace("\/", "/",$setting); + $incFile = fopen("../API/comm/inc.php","w+") or die("请设置API\comm\inc.php的权限为777"); + if(fwrite($incFile, $setting)){ + echo ""; + echo "配置成功,查看example
    如果已配置成功并发布到外网,请只保留API目录下文件,删除intall目录下和其他文件"; + + fclose($incFile); + fclose(fopen("setted.inc", "w")); + }else{ + echo "Error"; + } +}else{ + require_once("install.html"); +} diff --git a/codes/agent/game-docker/api/loginLib/qq/install/install.html b/codes/agent/game-docker/api/loginLib/qq/install/install.html new file mode 100644 index 0000000..0c5eba0 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/install/install.html @@ -0,0 +1,91 @@ + + + + + + + + +

    欢迎使用QQ Connect SDK For PHP 2.1

    +请填写以下配置项 +
    +
      +
    • + appid + +
    • +
    • + appkey + +
    • +
    • + callback + example演示请填写到 example/oauth/callback.php +
    • +
    • + 请求授权列表 + + +  + +
      + +
      +
    • +
    • + 是否开户调试 + 是 + 否 +
    • +
    • + + +
    • +
    + +
    intall目录下为方便填写配置项,不可发布到外网,配置成功后请删除intall目录下文件,并且只保留API目录
    + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/install/setted.inc b/codes/agent/game-docker/api/loginLib/qq/install/setted.inc new file mode 100644 index 0000000..e69de29 diff --git a/codes/agent/game-docker/api/loginLib/qq/test/add_idol/add_idol.html b/codes/agent/game-docker/api/loginLib/qq/test/add_idol/add_idol.html new file mode 100644 index 0000000..88e307b --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/add_idol/add_idol.html @@ -0,0 +1,16 @@ + + + + + + + +
    + 任选其一填写
    +名称
    +openid
    +
    + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/add_idol/add_idol.php b/codes/agent/game-docker/api/loginLib/qq/test/add_idol/add_idol.php new file mode 100644 index 0000000..40544dc --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/add_idol/add_idol.php @@ -0,0 +1,22 @@ +add_idol($_POST); + + echo ""; + if($ret['ret'] == 0){ + echo "收听成功,请查看微博"; + }else{ + echo "收听失败,请开启调试查看原因"; + } + +}else{ + //load view + require_once("add_idol.html"); +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/add_pic_t/add_pic_t.html b/codes/agent/game-docker/api/loginLib/qq/test/add_pic_t/add_pic_t.html new file mode 100644 index 0000000..951fde2 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/add_pic_t/add_pic_t.html @@ -0,0 +1,15 @@ + + + + + + + +
    + 内容

    +图片
    +
    + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/add_pic_t/add_pic_t.php b/codes/agent/game-docker/api/loginLib/qq/test/add_pic_t/add_pic_t.php new file mode 100644 index 0000000..c975db5 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/add_pic_t/add_pic_t.php @@ -0,0 +1,22 @@ +add_pic_t($_POST); + + echo ""; + if($ret['ret'] == 0){ + echo "发表成功,请查看微博"; + }else{ + echo "发表失败,请开启调试查看原因"; + } + +}else{ + //load view + require_once("add_pic_t.html"); +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/blog/add_blog.html b/codes/agent/game-docker/api/loginLib/qq/test/blog/add_blog.html new file mode 100644 index 0000000..3ff6ad4 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/blog/add_blog.html @@ -0,0 +1,16 @@ + + + + +TEST ADD BLOG + + + +
    + + title:  
    + content: + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/blog/add_blog.php b/codes/agent/game-docker/api/loginLib/qq/test/blog/add_blog.php new file mode 100644 index 0000000..b4958b9 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/blog/add_blog.php @@ -0,0 +1,21 @@ +add_one_blog($_POST); +?> + + + + + + + + + +
    +认证空间QQ号 + +
    + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/check_fan/check_page_fans.php b/codes/agent/game-docker/api/loginLib/qq/test/check_fan/check_page_fans.php new file mode 100644 index 0000000..8794e9c --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/check_fan/check_page_fans.php @@ -0,0 +1,21 @@ +check_page_fans($_GET); + + echo ""; + if($ret['isfans']){ + echo "是认证空间{$_GET['page_id']}的粉丝"; + }else{ + echo "不是认证空间{$_GET['page_id']}的粉丝"; + } + +}else{ + require_once("check_page_fans.html"); +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/comm/config.php b/codes/agent/game-docker/api/loginLib/qq/test/comm/config.php new file mode 100644 index 0000000..235f82b --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/comm/config.php @@ -0,0 +1,51 @@ + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/comm/config2.php b/codes/agent/game-docker/api/loginLib/qq/test/comm/config2.php new file mode 100644 index 0000000..b6d15db --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/comm/config2.php @@ -0,0 +1,54 @@ + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/comm/session.php b/codes/agent/game-docker/api/loginLib/qq/test/comm/session.php new file mode 100644 index 0000000..04a5f33 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/comm/session.php @@ -0,0 +1,210 @@ +lifeTime = get_cfg_var("session.gc_maxlifetime"); + + // open database-connection + $db_handle = mysql_connect(self::db_host, self::db_user, self::db_pwd); + + $dbSel = mysql_select_db(self::db_name, $db_handle); + + // return success + if(!$db_handle || !$dbSel) + return false; + + $this->db_handle = $db_handle; + return true; + } + + function close() + { + $this->gc(ini_get('session.gc_maxlifetime')); + // close database-connection + return mysql_close($this->db_handle); + } + + function read($sessID) + { + // fetch session-data + $res = mysql_query("SELECT session_data AS d FROM ".self::db_table." + WHERE session_id = '$sessID' + AND session_expires > ".time(), $this->db_handle); + + // return data or an empty string at failure + if($row = mysql_fetch_assoc($res)) + return $row['d']; + + return ""; + } + + function write($sessID, $sessData) + { + // new session-expire-time + $newExp = time() + $this->lifeTime; + + // is a session with this id in the database? + $res = mysql_query("SELECT * FROM ".self::db_table." + WHERE session_id = '$sessID'", $this->db_handle); + + echo mysql_error(); + + // if yes, + if(mysql_num_rows($res)) + { + // ...update session-data + mysql_query("UPDATE ".self::db_table." + SET session_expires = '$newExp', + session_data = '$sessData' + WHERE session_id = '$sessID'", $this->db_handle); + + // if something happened, return true + if(mysql_affected_rows($this->db_handle)) + return true; + } + else // if no session-data was found, + { + // create a new row + mysql_query("INSERT INTO ".self::db_table." ( + session_id, + session_expires, + session_data) + VALUES( + '$sessID', + '$newExp', + '$sessData')", $this->db_handle); + // if row was created, return true + if(mysql_affected_rows($this->db_handle)) + return true; + } + + // an unknown error occured + return false; + } + + function destroy($sessID) + { + // delete session-data + @mysql_query("DELETE FROM ".self::db_table." WHERE session_id = '$sessID'", $this->db_handle); + + // if session was deleted, return true, + if(@mysql_affected_rows($this->db_handle)) + return true; + + // ...else return false + return false; + } + + function gc($sessMaxLifeTime) + { + // delete old sessions + mysql_query("DELETE FROM ".self::db_table." WHERE session_expires < ".time(), $this->db_handle); + + // return affected rows + return mysql_affected_rows($this->db_handle); + } +} + +/** + * @brief 指定session有效的域名 + * + * 修改点3:使用前,请将下面的.domain.com修改为网站的主域名(例如: .qq.com),请注意前面个有一个'.' + */ +define("MAIN_DOMAIN", ".webpluz.org"); + + +/** + * @brief 不同子域名下共享session信息 + * + * 修改点4:使用前,请将下面的false修改为true + * COOKIE_DOMAIN = false 表示:禁止该功能(默认禁止) + * COOKIE_DOMAIN = true 表示:启用该功能(开启前提:需要定义MAIN_DOMAIN常量) + */ +define("COOKIE_DOMAIN", true); +if (defined("COOKIE_DOMAIN") && COOKIE_DOMAIN) +{ + if (defined("MAIN_DOMAIN")) + @ini_set("session.cookie_domain", MAIN_DOMAIN); +} + + + +/** + * @brief 同一个主域名,不同服务器之间共享session信息 + * + * 修改点5:使用前,请将下面的false修改为true + * COOKIE_DOMAIN = false 表示:禁止该功能(默认禁止) + * COOKIE_DOMAIN = true 表示:启用该功能(开启前提:需要建立mysql数据表) + */ +define("USER_SESSION", true); +if (defined("USER_SESSION") && USER_SESSION) +{ + @ini_set("session.save_handler", "user"); + $session = new Session; + @session_module_name("user"); + @session_set_save_handler( + array(&$session, "open"), + array(&$session, "close"), + array(&$session, "read"), + array(&$session, "write"), + array(&$session, "destroy"), + array(&$session, "gc")); +} + +session_start(); +?> diff --git a/codes/agent/game-docker/api/loginLib/qq/test/comm/session2.php b/codes/agent/game-docker/api/loginLib/qq/test/comm/session2.php new file mode 100644 index 0000000..44cbed5 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/comm/session2.php @@ -0,0 +1,196 @@ +lifeTime = get_cfg_var("session.gc_maxlifetime"); + + // open database-connection + $db_handle = @mysql_connect(self::db_host, self::db_user, self::db_pwd); + + $dbSel = @mysql_select_db(self::db_name, $db_handle); + + // return success + if(!$db_handle || !$dbSel) + return false; + + $this->db_handle = $db_handle; + return true; + } + + function close() + { + $this->gc(ini_get('session.gc_maxlifetime')); + // close database-connection + return @mysql_close($this->db_handle); + } + + function read($sessID) + { + // fetch session-data + $res = @mysql_query("SELECT session_data AS d FROM ".self::db_table." + WHERE session_id = '$sessID' + AND session_expires > ".time(), $this->db_handle); + + // return data or an empty string at failure + if($row = @mysql_fetch_assoc($res)) + return $row['d']; + + return ""; + } + + function write($sessID, $sessData) + { + // new session-expire-time + $newExp = time() + $this->lifeTime; + + // is a session with this id in the database? + $res = @mysql_query("SELECT * FROM ".self::db_table." + WHERE session_id = '$sessID'", $this->db_handle); + + // if yes, + if(@mysql_num_rows($res)) + { + // ...update session-data + @mysql_query("UPDATE ".self::db_table." + SET session_expires = '$newExp', + session_data = '$sessData' + WHERE session_id = '$sessID'", $this->db_handle); + + // if something happened, return true + if(@mysql_affected_rows($this->db_handle)) + return true; + } + else // if no session-data was found, + { + // create a new row + @mysql_query("INSERT INTO ".self::db_table." ( + session_id, + session_expires, + session_data) + VALUES( + '$sessID', + '$newExp', + '$sessData')", $this->db_handle); + // if row was created, return true + if(@mysql_affected_rows($this->db_handle)) + return true; + } + + // an unknown error occured + return false; + } + + function destroy($sessID) + { + // delete session-data + @mysql_query("DELETE FROM ".self::db_table." WHERE session_id = '$sessID'", $this->db_handle); + + // if session was deleted, return true, + if(@mysql_affected_rows($this->db_handle)) + return true; + + // ...else return false + return false; + } + + function gc($sessMaxLifeTime) + { + // delete old sessions + @mysql_query("DELETE FROM ".self::db_table." WHERE session_expires < ".time(), $this->db_handle); + + // return affected rows + return @mysql_affected_rows($this->db_handle); + } +} + +/** + * 指定session有效的域名 + * ini_set("session.cookie_domain", ".domain.com"); + * .domain.com是站点的主域名,请注意前面个有一个'.' + */ +define("MAIN_DOMAIN", ".oauth.com"); //设置主域名 + +/** + * 不同子域名下共享session信息 + * COOKIE_DOMAIN = false 禁止该功能 + * COOKIE_DOMAIN = true 启用该功能 + * 默认禁止 + * 开启前提需要定义MAIN_DOMAIN常量 + */ +define("COOKIE_DOMAIN", true); +if (defined("COOKIE_DOMAIN") && COOKIE_DOMAIN) +{ + if (defined("MAIN_DOMAIN")) + @ini_set("session.cookie_domain", MAIN_DOMAIN); +} + +/** + * 同一个主域名,不同服务器之间共享session信息 + * USER_SESSION = false 禁用该功能 + * USER_SESSION = true 启用该功能 + * 默认禁止 + * 开启前提需要建立mysql数据表 + */ +define("USER_SESSION", false); +if (defined("USER_SESSION") && USER_SESSION) +{ + @ini_set("session.save_handler", "user"); + $session = new Session; + @session_module_name("user"); + @session_set_save_handler( + array(&$session, "open"), + array(&$session, "close"), + array(&$session, "read"), + array(&$session, "write"), + array(&$session, "destroy"), + array(&$session, "gc")); +} + +//@session_id("demo"); +session_save_path("/tmp"); +session_start(); +?> diff --git a/codes/agent/game-docker/api/loginLib/qq/test/comm/utils.php b/codes/agent/game-docker/api/loginLib/qq/test/comm/utils.php new file mode 100644 index 0000000..f39824c --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/comm/utils.php @@ -0,0 +1,43 @@ + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/css/common.css b/codes/agent/game-docker/api/loginLib/qq/test/css/common.css new file mode 100644 index 0000000..caa9abe --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/css/common.css @@ -0,0 +1,3 @@ +input{ + margin-left:10px; +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_fanslist/get_fanslist.html b/codes/agent/game-docker/api/loginLib/qq/test/get_fanslist/get_fanslist.html new file mode 100644 index 0000000..e8a2a05 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_fanslist/get_fanslist.html @@ -0,0 +1,31 @@ + + + + + + + +
      + $v){ + if(!is_array($v)){ + $v = array($k => $v); + } + foreach($v as $key => $val){ + if(!is_array($val)){ + $val = array($key => $val); + } + echo "

        "; + foreach($val as $key2 => $val2){ +?> + +
      • :  
      • +"; + } +} +?> + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_fanslist/get_fanslist.php b/codes/agent/game-docker/api/loginLib/qq/test/get_fanslist/get_fanslist.php new file mode 100644 index 0000000..9bfd16b --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_fanslist/get_fanslist.php @@ -0,0 +1,21 @@ + 10,//请求获取的听众个数。取值范围为1-30。 + "startindex" => 0//开始 + ); +$ret = $qc->get_fanslist($setting); + +// show result +if($ret['ret'] == 0){ + echo ""; + require_once("get_fanslist.html"); +}else{ + echo ""; + echo "获取失败,请开启调试查看原因"; +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_idollist/get_idollist.html b/codes/agent/game-docker/api/loginLib/qq/test/get_idollist/get_idollist.html new file mode 100644 index 0000000..e8a2a05 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_idollist/get_idollist.html @@ -0,0 +1,31 @@ + + + + + + + +
          + $v){ + if(!is_array($v)){ + $v = array($k => $v); + } + foreach($v as $key => $val){ + if(!is_array($val)){ + $val = array($key => $val); + } + echo "

            "; + foreach($val as $key2 => $val2){ +?> + +
          • :  
          • +"; + } +} +?> + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_idollist/get_idollist.php b/codes/agent/game-docker/api/loginLib/qq/test/get_idollist/get_idollist.php new file mode 100644 index 0000000..3459d8b --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_idollist/get_idollist.php @@ -0,0 +1,21 @@ + 10,//请求获取的听众个数。取值范围为1-30。 + "startindex" => 0//开始 + ); +$ret = $qc->get_idollist($setting); + +// show result +if($ret['ret'] == 0){ + echo ""; + require_once("get_idollist.html"); +}else{ + echo ""; + echo "获取失败,请开启调试查看原因"; +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_info/get_info.html b/codes/agent/game-docker/api/loginLib/qq/test/get_info/get_info.html new file mode 100644 index 0000000..b3e5446 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_info/get_info.html @@ -0,0 +1,18 @@ + + + + + + + +
              + $v){ +?> +
            • :  
            • + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_info/get_info.php b/codes/agent/game-docker/api/loginLib/qq/test/get_info/get_info.php new file mode 100644 index 0000000..ea04609 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_info/get_info.php @@ -0,0 +1,17 @@ +get_info(); + +// show result +if($ret['ret'] == 0){ + echo ""; + require_once("get_info.html"); +}else{ + echo ""; + echo "获取失败,请开启调试查看原因"; +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_repost_list/get_repost_list .html b/codes/agent/game-docker/api/loginLib/qq/test/get_repost_list/get_repost_list .html new file mode 100644 index 0000000..951fde2 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_repost_list/get_repost_list .html @@ -0,0 +1,15 @@ + + + + + + + +
              + 内容

              +图片
              +
              + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_repost_list/get_repost_list .php b/codes/agent/game-docker/api/loginLib/qq/test/get_repost_list/get_repost_list .php new file mode 100644 index 0000000..170a3e8 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_repost_list/get_repost_list .php @@ -0,0 +1,22 @@ +add_pic_t($_POST); + + echo ""; + if($ret['ret'] == 0){ + echo "发表成功,请查看微博"; + }else{ + echo "发表失败,请开启调试查看原因"; + } + +}else{ + //load view + require_once("get_repost_list.html"); +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_tenpay_addr/get_tenpay_addr.html b/codes/agent/game-docker/api/loginLib/qq/test/get_tenpay_addr/get_tenpay_addr.html new file mode 100644 index 0000000..648a2e5 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_tenpay_addr/get_tenpay_addr.html @@ -0,0 +1,18 @@ + + + + + + + +
                + $v){ +?> +
              • :  
              • + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/get_tenpay_addr/get_tenpay_addr.php b/codes/agent/game-docker/api/loginLib/qq/test/get_tenpay_addr/get_tenpay_addr.php new file mode 100644 index 0000000..09e8ec8 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/get_tenpay_addr/get_tenpay_addr.php @@ -0,0 +1,17 @@ +get_tenpay_addr(); + +// show result +if($ret['ret'] == 0){ + echo ""; + require_once("get_tenpay_addr.html"); +}else{ + echo ""; + echo "获取失败,请开启调试查看原因"; +} diff --git a/codes/agent/game-docker/api/loginLib/qq/test/img/qq_login.png b/codes/agent/game-docker/api/loginLib/qq/test/img/qq_login.png new file mode 100644 index 0000000..cd3e177 Binary files /dev/null and b/codes/agent/game-docker/api/loginLib/qq/test/img/qq_login.png differ diff --git a/codes/agent/game-docker/api/loginLib/qq/test/index.html b/codes/agent/game-docker/api/loginLib/qq/test/index.html new file mode 100644 index 0000000..563ae09 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/index.html @@ -0,0 +1,56 @@ + + + + + Demo for QQ登录oauth2.0 + + + + +

                官方wiki

                + +

                + +

                + 获取用户信息 +

                + 添加分享 +

                + 获取相册列表 +

                + 创建相册 +

                + 上传相片 +

                + 发表日志 +

                + 发表说说 +

                + 发表微博 +

                + 检查是否是认证空间的粉丝 +

                + 发图片消息到微博 +

                + 获取微博用户信息 +

                + 获取用户的听众列表 +

                + 获取用户的收听列表 +

                + 收听腾讯微博上的用户 +

                + 获取财付通用户的收货地址 + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/oauth/callback.php b/codes/agent/game-docker/api/loginLib/qq/test/oauth/callback.php new file mode 100644 index 0000000..093798e --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/oauth/callback.php @@ -0,0 +1,5 @@ +qq_callback(); +echo $qc->get_openid(); diff --git a/codes/agent/game-docker/api/loginLib/qq/test/oauth/index.php b/codes/agent/game-docker/api/loginLib/qq/test/oauth/index.php new file mode 100644 index 0000000..e14c26e --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/oauth/index.php @@ -0,0 +1,5 @@ +qq_login(); diff --git a/codes/agent/game-docker/api/loginLib/qq/test/photo/add_album.html b/codes/agent/game-docker/api/loginLib/qq/test/photo/add_album.html new file mode 100644 index 0000000..a0b6a7c --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/photo/add_album.html @@ -0,0 +1,21 @@ + + + + +TEST ADD ALBUM + + + +
                + 相册:
                + 描述:
                + 权限: +
                + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/photo/add_album.php b/codes/agent/game-docker/api/loginLib/qq/test/photo/add_album.php new file mode 100644 index 0000000..0ac3408 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/photo/add_album.php @@ -0,0 +1,19 @@ +add_album($_POST); + +?> + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/photo/list_album.php b/codes/agent/game-docker/api/loginLib/qq/test/photo/list_album.php new file mode 100644 index 0000000..77d4ff9 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/photo/list_album.php @@ -0,0 +1,33 @@ +list_album(); + +?> + + +
                +
                + +
                +
                  +
                • 名称
                • +
                • albumid
                • +
                • classid
                • +
                • 简介
                • +
                • 创作时间
                • +
                • 图片数量
                • +
                +
                + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/photo/upload_pic.php b/codes/agent/game-docker/api/loginLib/qq/test/photo/upload_pic.php new file mode 100644 index 0000000..944a063 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/photo/upload_pic.php @@ -0,0 +1,37 @@ +list_album(); +?> + + + + + +TEST UPLOAD PIC + + + +
                +
                +经度
                +纬度
                +相册ID: +
                +
                +
                +
                + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/photo/upload_pic_p.php b/codes/agent/game-docker/api/loginLib/qq/test/photo/upload_pic_p.php new file mode 100644 index 0000000..f9f444a --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/photo/upload_pic_p.php @@ -0,0 +1,21 @@ +upload_pic($_POST); + +print_r($arr); + +echo ''; +if($arr['ret'] == 0){ + echo "上传成功"; +}else{ + echo "失败"; +} +?> diff --git a/codes/agent/game-docker/api/loginLib/qq/test/share/add_share.html b/codes/agent/game-docker/api/loginLib/qq/test/share/add_share.html new file mode 100644 index 0000000..726082b --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/share/add_share.html @@ -0,0 +1,21 @@ + + + + + + + + +
                + title
                + url
                + comment
                + summary
                + images

                + site
                + fromurl
                + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/share/add_share.php b/codes/agent/game-docker/api/loginLib/qq/test/share/add_share.php new file mode 100644 index 0000000..650451a --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/share/add_share.php @@ -0,0 +1,20 @@ +add_share($_GET); + +?> + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/topic/add_topic.html b/codes/agent/game-docker/api/loginLib/qq/test/topic/add_topic.html new file mode 100644 index 0000000..94a360b --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/topic/add_topic.html @@ -0,0 +1,20 @@ + + + + + + + +
                + richtype
                + richval
                + con
                + lbs_nm
                + lbs_x
                + lbs_y
                + third_source

                + format

                + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/topic/add_topic.php b/codes/agent/game-docker/api/loginLib/qq/test/topic/add_topic.php new file mode 100644 index 0000000..504b930 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/topic/add_topic.php @@ -0,0 +1,19 @@ +add_topic($_POST); + +?> + + +get_user_info(); + + +echo ''; +echo "

                "; +echo "Gender:".$arr["gender"]; +echo "

                "; +echo "

                "; +echo "NickName:".$arr["nickname"]; +echo "

                "; +echo "

                "; +echo ""; +echo "

                "; +echo "

                "; +echo ""; +echo "

                "; +echo "

                "; +echo ""; +echo "

                "; +echo "vip:".$arr["vip"]; +echo "

                "; +echo "level:".$arr["level"]; +echo "

                "; +echo "is_yellow_year_vip:".$arr["is_yellow_year_vip"]; +echo "

                "; + +?> diff --git a/codes/agent/game-docker/api/loginLib/qq/test/weibo/add_weibo.html b/codes/agent/game-docker/api/loginLib/qq/test/weibo/add_weibo.html new file mode 100644 index 0000000..27e770a --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/weibo/add_weibo.html @@ -0,0 +1,16 @@ + + + + + + + +
                + content
                + type
                + img

                + + + + diff --git a/codes/agent/game-docker/api/loginLib/qq/test/weibo/add_weibo.php b/codes/agent/game-docker/api/loginLib/qq/test/weibo/add_weibo.php new file mode 100644 index 0000000..168e950 --- /dev/null +++ b/codes/agent/game-docker/api/loginLib/qq/test/weibo/add_weibo.php @@ -0,0 +1,21 @@ +add_t($_POST); + +?> + + +option["autoload_dir"] = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'aop'; +$lotus->devMode = AOP_SDK_DEV_MODE; +$lotus->defaultStoreDir = AOP_SDK_WORK_DIR; +$lotus->init(); \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/aop/AlipayMobilePublicMultiMediaClient.php b/codes/agent/game-docker/api/payment/alipay/aop/AlipayMobilePublicMultiMediaClient.php new file mode 100644 index 0000000..f1dcdcb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/AlipayMobilePublicMultiMediaClient.php @@ -0,0 +1,231 @@ + serverUrl = $serverUrl; + $this -> appId = $appId; + $this -> privateKey = $partner_private_key; + $this -> format = $format; + $this -> charset = $charset; + } + + /** + * getContents 获取网址内容 + * @param $request + * @return text | bin + */ + public function getContents(){ + //自己的服务器如果没有 curl,可用:fsockopen() 等 + + + //1: + //2: 私钥格式 + $datas = array( + "app_id" => $this -> appId, + "method" => $this -> METHOD_POST, + "sign_type" => $this -> sign_type, + "version" => $this -> apiVersion, + "timestamp" => date('Y-m-d H:i:s') ,//yyyy-MM-dd HH:mm:ss + "biz_content" => '{"mediaId":"'. $this -> media_id .'"}', + "charset" => $this -> charset + ); + + + + //要提交的数据 + $data_sign = $this -> buildGetUrl( $datas ); + + $post_data = $data_sign; + //初始化 curl + $ch = curl_init(); + //设置目标服务器 + curl_setopt($ch, CURLOPT_URL, $this -> serverUrl ); + curl_setopt($ch, CURLOPT_HEADER, TRUE); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + //超时时间 + curl_setopt($ch, CURLOPT_TIMEOUT, $this-> timeout); + + if( $this-> METHOD_POST == 'POST'){ + // post数据 + curl_setopt($ch, CURLOPT_POST, 1); + // post的变量 + curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); + } + + + + + $output = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + curl_close($ch); + + echo $output; + + //分离头部 + //list($header, $body) = explode("\r\n\r\n", $output, 2); + $datas = explode("\r\n\r\n", $output, 2); + $header = $datas[0]; + + if( $httpCode == '200'){ + $body = $datas[1]; + }else{ + $body = ''; + + } + + + + + return $this -> execute( $header, $body, $httpCode ); + } + + /** + * + * @param $request + * @return text | bin + */ + public function execute( $header = '', $body = '', $httpCode = '' ){ + $exe = new AlipayMobilePublicMultiMediaExecute( $header, $body, $httpCode ); + return $exe; + } + + public function buildGetUrl( $query = array() ){ + + if( ! is_array( $query ) ){ + //exit; + } + + //排序参数, + $data = $this -> buildQuery( $query ); + + + + // 私钥密码 + $passphrase = ''; + $key_width = 64; + + //私钥 + $privateKey = $this -> privateKey; + $p_key = array(); + //如果私钥是 1行 + if( ! stripos( $privateKey, "\n" ) ){ + $i = 0; + while( $key_str = substr( $privateKey , $i * $key_width , $key_width) ){ + $p_key[] = $key_str; + $i ++ ; + } + }else{ + //echo '一行?'; + } + $privateKey = "-----BEGIN RSA PRIVATE KEY-----\n" . implode("\n", $p_key) ; + $privateKey = $privateKey ."\n-----END RSA PRIVATE KEY-----"; + +// echo "\n\n私钥:\n"; +// echo( $privateKey ); +// echo "\n\n\n"; + + //私钥 + $private_id = openssl_pkey_get_private( $privateKey , $passphrase); + + + // 签名 + $signature = ''; + + if("RSA2"==$this->sign_type){ + + openssl_sign($data, $signature, $private_id, OPENSSL_ALGO_SHA256 ); + }else{ + + openssl_sign($data, $signature, $private_id, OPENSSL_ALGO_SHA1 ); + } + + openssl_free_key( $private_id ); + + //加密后的内容通常含有特殊字符,需要编码转换下 + $signature = base64_encode($signature); + + $signature = urlencode( $signature ); + + //$signature = 'XjUN6YM1Mc9HXebKMv7GTLy7gmyhktyOgKk2/Jf+cz4DtP6udkzTdpkjW2j/Z4ZSD7xD6CNYI1Spz4yS93HPT0a5X9LgFWYY8SaADqe+ArXg+FBSiTwUz49SE//Xd9+LEiIRsSFkbpkuiGoO6mqJmB7vXjlD5lx6qCM3nb41wb8='; + + $out = $data .'&'. $this -> SIGN .'='. $signature; + +// echo "\n\n 加密后:\n"; +// echo( $out ); +// echo "\n\n\n"; + + return $out ; + } + + /* + * 查询参数排序 a-z + * */ + public function buildQuery( $query ){ + if ( !$query ) { + return null; + } + +//将要 参数 排序 + ksort( $query ); + + //重新组装参数 + $params = array(); + foreach($query as $key => $value){ + $params[] = $key .'='. $value ; + } + $data = implode('&', $params); + + return $data; + + } + + + + + + + + + + + + + + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/AlipayMobilePublicMultiMediaExecute.php b/codes/agent/game-docker/api/payment/alipay/aop/AlipayMobilePublicMultiMediaExecute.php new file mode 100644 index 0000000..b9092c5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/AlipayMobilePublicMultiMediaExecute.php @@ -0,0 +1,108 @@ + 'jpg', //+ + "text/plain" => 'text' + ); + + /* + * @$header : 头部 + * */ + function __construct( $header, $body, $httpCode ){ + $this -> code = $httpCode; + $this -> msg = ''; + $this -> params = $header ; + $this -> body = $body; + } + + /** + * + * @return text | bin + */ + public function getCode(){ + return $this -> code ; + } + + /** + * + * @return text | bin + */ + public function getMsg(){ + return $this -> msg ; + } + + /** + * + * @return text | bin + */ + public function getType(){ + $subject = $this -> params ; + $pattern = '/Content\-Type:([^;]+)/'; + preg_match($pattern, $subject, $matches); + if( $matches ){ + $type = $matches[1]; + }else{ + $type = 'application/download'; + } + + return str_replace( ' ', '', $type ); + } + + /** + * + * @return text | bin + */ + public function getContentLength(){ + $subject = $this -> params ; + $pattern = '/Content-Length:\s*([^\n]+)/'; + preg_match($pattern, $subject, $matches); + return (int)( isset($matches[1] ) ? $matches[1] : '' ); + } + + + public function getFileSuffix( $fileType ){ + $type = isset( $this -> fileSuffix[ $fileType ] ) ? $this -> fileSuffix[ $fileType ] : 'text/plain' ; + if( !$type ){ + $type = 'json'; + } + return $type; + } + + + + /** + * + * @return text | bin + */ + public function getBody(){ + //header('Content-type: image/jpeg'); + return $this -> body ; + } + + /** + * 获取参数 + * @return text | bin + */ + public function getParams(){ + return $this -> params ; + } + + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/AopClient.php b/codes/agent/game-docker/api/payment/alipay/aop/AopClient.php new file mode 100644 index 0000000..9644d64 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/AopClient.php @@ -0,0 +1,1254 @@ +sign($this->getSignContent($params), $signType); + } + + public function rsaSign($params, $signType = "RSA") + { + return $this->sign($this->getSignContent($params), $signType); + } + + public function getSignContent($params) + { + ksort($params); + + $stringToBeSigned = ""; + $i = 0; + foreach ($params as $k => $v) { + if (false === $this->checkEmpty($v) && "@" != substr($v, 0, 1)) { + + // 转换成目标字符集 + $v = $this->characet($v, $this->postCharset); + + if ($i == 0) { + $stringToBeSigned .= "$k" . "=" . "$v"; + } else { + $stringToBeSigned .= "&" . "$k" . "=" . "$v"; + } + $i++; + } + } + + unset ($k, $v); + return $stringToBeSigned; + } + + + //此方法对value做urlencode + public function getSignContentUrlencode($params) + { + ksort($params); + + $stringToBeSigned = ""; + $i = 0; + foreach ($params as $k => $v) { + if (false === $this->checkEmpty($v) && "@" != substr($v, 0, 1)) { + + // 转换成目标字符集 + $v = $this->characet($v, $this->postCharset); + + if ($i == 0) { + $stringToBeSigned .= "$k" . "=" . urlencode($v); + } else { + $stringToBeSigned .= "&" . "$k" . "=" . urlencode($v); + } + $i++; + } + } + + unset ($k, $v); + return $stringToBeSigned; + } + + protected function sign($data, $signType = "RSA") + { + if ($this->checkEmpty($this->rsaPrivateKeyFilePath)) { + $priKey = $this->rsaPrivateKey; + $res = "-----BEGIN RSA PRIVATE KEY-----\n" . + wordwrap($priKey, 64, "\n", true) . + "\n-----END RSA PRIVATE KEY-----"; + } else { + $priKey = file_get_contents($this->rsaPrivateKeyFilePath); + $res = openssl_get_privatekey($priKey); + } + + ($res) or die('您使用的私钥格式错误,请检查RSA私钥配置'); + + if ("RSA2" == $signType) { + openssl_sign($data, $sign, $res, OPENSSL_ALGO_SHA256); + } else { + openssl_sign($data, $sign, $res); + } + + if (!$this->checkEmpty($this->rsaPrivateKeyFilePath)) { + openssl_free_key($res); + } + $sign = base64_encode($sign); + return $sign; + } + + /** + * RSA单独签名方法,未做字符串处理,字符串处理见getSignContent() + * @param $data 待签名字符串 + * @param $privatekey 商户私钥,根据keyfromfile来判断是读取字符串还是读取文件,false:填写私钥字符串去回车和空格 true:填写私钥文件路径 + * @param $signType 签名方式,RSA:SHA1 RSA2:SHA256 + * @param $keyfromfile 私钥获取方式,读取字符串还是读文件 + * @return string + * @author mengyu.wh + */ + public function alonersaSign($data, $privatekey, $signType = "RSA", $keyfromfile = false) + { + + if (!$keyfromfile) { + $priKey = $privatekey; + $res = "-----BEGIN RSA PRIVATE KEY-----\n" . + wordwrap($priKey, 64, "\n", true) . + "\n-----END RSA PRIVATE KEY-----"; + } else { + $priKey = file_get_contents($privatekey); + $res = openssl_get_privatekey($priKey); + } + + ($res) or die('您使用的私钥格式错误,请检查RSA私钥配置'); + + if ("RSA2" == $signType) { + openssl_sign($data, $sign, $res, OPENSSL_ALGO_SHA256); + } else { + openssl_sign($data, $sign, $res); + } + + if ($keyfromfile) { + openssl_free_key($res); + } + $sign = base64_encode($sign); + return $sign; + } + + + protected function curl($url, $postFields = null) + { + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_FAILONERROR, false); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + + $postBodyString = ""; + $encodeArray = Array(); + $postMultipart = false; + + + if (is_array($postFields) && 0 < count($postFields)) { + + foreach ($postFields as $k => $v) { + if ("@" != substr($v, 0, 1)) //判断是不是文件上传 + { + + $postBodyString .= "$k=" . urlencode($this->characet($v, $this->postCharset)) . "&"; + $encodeArray[$k] = $this->characet($v, $this->postCharset); + } else //文件上传用multipart/form-data,否则用www-form-urlencoded + { + $postMultipart = true; + $encodeArray[$k] = new \CURLFile(substr($v, 1)); + } + + } + unset ($k, $v); + curl_setopt($ch, CURLOPT_POST, true); + if ($postMultipart) { + curl_setopt($ch, CURLOPT_POSTFIELDS, $encodeArray); + } else { + curl_setopt($ch, CURLOPT_POSTFIELDS, substr($postBodyString, 0, -1)); + } + } + + if ($postMultipart) { + + $headers = array('content-type: multipart/form-data;charset=' . $this->postCharset . ';boundary=' . $this->getMillisecond()); + } else { + + $headers = array('content-type: application/x-www-form-urlencoded;charset=' . $this->postCharset); + } + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + + + $reponse = curl_exec($ch); + + if (curl_errno($ch)) { + + throw new Exception(curl_error($ch), 0); + } else { + $httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + if (200 !== $httpStatusCode) { + throw new Exception($reponse, $httpStatusCode); + } + } + + curl_close($ch); + return $reponse; + } + + protected function getMillisecond() + { + list($s1, $s2) = explode(' ', microtime()); + return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000); + } + + + protected function logCommunicationError($apiName, $requestUrl, $errorCode, $responseTxt) + { + $localIp = isset ($_SERVER["SERVER_ADDR"]) ? $_SERVER["SERVER_ADDR"] : "CLI"; + $logger = new LtLogger; + $logger->conf["log_file"] = rtrim(AOP_SDK_WORK_DIR, '\\/') . '/' . "logs/aop_comm_err_" . $this->appId . "_" . date("Y-m-d") . ".log"; + $logger->conf["separator"] = "^_^"; + $logData = array( + date("Y-m-d H:i:s"), + $apiName, + $this->appId, + $localIp, + PHP_OS, + $this->alipaySdkVersion, + $requestUrl, + $errorCode, + str_replace("\n", "", $responseTxt) + ); + $logger->log($logData); + } + + /** + * 生成用于调用收银台SDK的字符串 + * @param $request SDK接口的请求参数对象 + * @return string + * @author guofa.tgf + */ + public function sdkExecute($request) + { + + $this->setupCharsets($request); + + $params['app_id'] = $this->appId; + $params['method'] = $request->getApiMethodName(); + $params['format'] = $this->format; + $params['sign_type'] = $this->signType; + $params['timestamp'] = date("Y-m-d H:i:s"); + $params['alipay_sdk'] = $this->alipaySdkVersion; + $params['charset'] = $this->postCharset; + + $version = $request->getApiVersion(); + $params['version'] = $this->checkEmpty($version) ? $this->apiVersion : $version; + + if ($notify_url = $request->getNotifyUrl()) { + $params['notify_url'] = $notify_url; + } + + $dict = $request->getApiParas(); + $params['biz_content'] = $dict['biz_content']; + + ksort($params); + + $params['sign'] = $this->generateSign($params, $this->signType); + + foreach ($params as &$value) { + $value = $this->characet($value, $params['charset']); + } + + return http_build_query($params); + } + + /* + 页面提交执行方法 + @param:跳转类接口的request; $httpmethod 提交方式。两个值可选:post、get + @return:构建好的、签名后的最终跳转URL(GET)或String形式的form(POST) + auther:笙默 + */ + public function pageExecute($request, $httpmethod = "POST") + { + + $this->setupCharsets($request); + + if (strcasecmp($this->fileCharset, $this->postCharset)) { + + // writeLog("本地文件字符集编码与表单提交编码不一致,请务必设置成一样,属性名分别为postCharset!"); + throw new Exception("文件编码:[" . $this->fileCharset . "] 与表单提交编码:[" . $this->postCharset . "]两者不一致!"); + } + + $iv = null; + + if (!$this->checkEmpty($request->getApiVersion())) { + $iv = $request->getApiVersion(); + } else { + $iv = $this->apiVersion; + } + + //组装系统参数 + $sysParams["app_id"] = $this->appId; + $sysParams["version"] = $iv; + $sysParams["format"] = $this->format; + $sysParams["sign_type"] = $this->signType; + $sysParams["method"] = $request->getApiMethodName(); + $sysParams["timestamp"] = date("Y-m-d H:i:s"); + $sysParams["alipay_sdk"] = $this->alipaySdkVersion; + $sysParams["terminal_type"] = $request->getTerminalType(); + $sysParams["terminal_info"] = $request->getTerminalInfo(); + $sysParams["prod_code"] = $request->getProdCode(); + $sysParams["notify_url"] = $request->getNotifyUrl(); + $sysParams["return_url"] = $request->getReturnUrl(); + $sysParams["charset"] = $this->postCharset; + + //获取业务参数 + $apiParams = $request->getApiParas(); + + if (method_exists($request, "getNeedEncrypt") && $request->getNeedEncrypt()) { + + $sysParams["encrypt_type"] = $this->encryptType; + + if ($this->checkEmpty($apiParams['biz_content'])) { + + throw new Exception(" api request Fail! The reason : encrypt request is not supperted!"); + } + + if ($this->checkEmpty($this->encryptKey) || $this->checkEmpty($this->encryptType)) { + + throw new Exception(" encryptType and encryptKey must not null! "); + } + + if ("AES" != $this->encryptType) { + + throw new Exception("加密类型只支持AES"); + } + + // 执行加密 + $enCryptContent = encrypt($apiParams['biz_content'], $this->encryptKey); + $apiParams['biz_content'] = $enCryptContent; + + } + + //print_r($apiParams); + $totalParams = array_merge($apiParams, $sysParams); + + //待签名字符串 + $preSignStr = $this->getSignContent($totalParams); + + //签名 + $totalParams["sign"] = $this->generateSign($totalParams, $this->signType); + + if ("GET" == strtoupper($httpmethod)) { + + //value做urlencode + $preString = $this->getSignContentUrlencode($totalParams); + //拼接GET请求串 + $requestUrl = $this->gatewayUrl . "?" . $preString; + + return $requestUrl; + } else { + //拼接表单字符串 + return $this->buildRequestForm($totalParams); + } + + + } + + + /** + * 建立请求,以表单HTML形式构造(默认) + * @param $para_temp 请求参数数组 + * @return 提交表单HTML文本 + */ + protected function buildRequestForm($para_temp) + { + + $sHtml = "
                "; + while (list ($key, $val) = each($para_temp)) { + if (false === $this->checkEmpty($val)) { + //$val = $this->characet($val, $this->postCharset); + $val = str_replace("'", "'", $val); + //$val = str_replace("\"",""",$val); + $sHtml .= ""; + } + } + + //submit按钮控件请不要含有name属性 + $sHtml = $sHtml . ""; + + $sHtml = $sHtml . ""; + + return $sHtml; + } + + + public function execute($request, $authToken = null, $appInfoAuthtoken = null) + { + + $this->setupCharsets($request); + + // // 如果两者编码不一致,会出现签名验签或者乱码 + if (strcasecmp($this->fileCharset, $this->postCharset)) { + + // writeLog("本地文件字符集编码与表单提交编码不一致,请务必设置成一样,属性名分别为postCharset!"); + throw new Exception("文件编码:[" . $this->fileCharset . "] 与表单提交编码:[" . $this->postCharset . "]两者不一致!"); + } + + $iv = null; + + if (!$this->checkEmpty($request->getApiVersion())) { + $iv = $request->getApiVersion(); + } else { + $iv = $this->apiVersion; + } + + + //组装系统参数 + $sysParams["app_id"] = $this->appId; + $sysParams["version"] = $iv; + $sysParams["format"] = $this->format; + $sysParams["sign_type"] = $this->signType; + $sysParams["method"] = $request->getApiMethodName(); + $sysParams["timestamp"] = date("Y-m-d H:i:s"); + $sysParams["auth_token"] = $authToken; + $sysParams["alipay_sdk"] = $this->alipaySdkVersion; + $sysParams["terminal_type"] = $request->getTerminalType(); + $sysParams["terminal_info"] = $request->getTerminalInfo(); + $sysParams["prod_code"] = $request->getProdCode(); + $sysParams["notify_url"] = $request->getNotifyUrl(); + $sysParams["charset"] = $this->postCharset; + $sysParams["app_auth_token"] = $appInfoAuthtoken; + + + //获取业务参数 + $apiParams = $request->getApiParas(); + + if (method_exists($request, "getNeedEncrypt") && $request->getNeedEncrypt()) { + + $sysParams["encrypt_type"] = $this->encryptType; + + if ($this->checkEmpty($apiParams['biz_content'])) { + + throw new Exception(" api request Fail! The reason : encrypt request is not supperted!"); + } + + if ($this->checkEmpty($this->encryptKey) || $this->checkEmpty($this->encryptType)) { + + throw new Exception(" encryptType and encryptKey must not null! "); + } + + if ("AES" != $this->encryptType) { + + throw new Exception("加密类型只支持AES"); + } + + // 执行加密 + $enCryptContent = encrypt($apiParams['biz_content'], $this->encryptKey); + $apiParams['biz_content'] = $enCryptContent; + + } + + + //签名 + $sysParams["sign"] = $this->generateSign(array_merge($apiParams, $sysParams), $this->signType); + + + //系统参数放入GET请求串 + $requestUrl = $this->gatewayUrl . "?"; + foreach ($sysParams as $sysParamKey => $sysParamValue) { + $requestUrl .= "$sysParamKey=" . urlencode($this->characet($sysParamValue, $this->postCharset)) . "&"; + } + $requestUrl = substr($requestUrl, 0, -1); + + + //发起HTTP请求 + try { + $resp = $this->curl($requestUrl, $apiParams); + } catch (Exception $e) { + + $this->logCommunicationError($sysParams["method"], $requestUrl, "HTTP_ERROR_" . $e->getCode(), $e->getMessage()); + return false; + } + + //解析AOP返回结果 + $respWellFormed = false; + + + // 将返回结果转换本地文件编码 + $r = iconv($this->postCharset, $this->fileCharset . "//IGNORE", $resp); + + + $signData = null; + + if ("json" == $this->format) { + + $respObject = json_decode($r); + if (null !== $respObject) { + $respWellFormed = true; + $signData = $this->parserJSONSignData($request, $resp, $respObject); + } + } else if ("xml" == $this->format) { + + $respObject = @ simplexml_load_string($resp); + if (false !== $respObject) { + $respWellFormed = true; + + $signData = $this->parserXMLSignData($request, $resp); + } + } + + + //返回的HTTP文本不是标准JSON或者XML,记下错误日志 + if (false === $respWellFormed) { + $this->logCommunicationError($sysParams["method"], $requestUrl, "HTTP_RESPONSE_NOT_WELL_FORMED", $resp); + return false; + } + + // 验签 + $this->checkResponseSign($request, $signData, $resp, $respObject); + + // 解密 + if (method_exists($request, "getNeedEncrypt") && $request->getNeedEncrypt()) { + + if ("json" == $this->format) { + + + $resp = $this->encryptJSONSignSource($request, $resp); + + // 将返回结果转换本地文件编码 + $r = iconv($this->postCharset, $this->fileCharset . "//IGNORE", $resp); + $respObject = json_decode($r); + } else { + + $resp = $this->encryptXMLSignSource($request, $resp); + + $r = iconv($this->postCharset, $this->fileCharset . "//IGNORE", $resp); + $respObject = @ simplexml_load_string($r); + + } + } + + return $respObject; + } + + /** + * 转换字符集编码 + * @param $data + * @param $targetCharset + * @return string + */ + function characet($data, $targetCharset) + { + + if (!empty($data)) { + $fileType = $this->fileCharset; + if (strcasecmp($fileType, $targetCharset) != 0) { + $data = mb_convert_encoding($data, $targetCharset, $fileType); + // $data = iconv($fileType, $targetCharset.'//IGNORE', $data); + } + } + + + return $data; + } + + public function exec($paramsArray) + { + if (!isset ($paramsArray["method"])) { + trigger_error("No api name passed"); + } + $inflector = new LtInflector; + $inflector->conf["separator"] = "."; + $requestClassName = ucfirst($inflector->camelize(substr($paramsArray["method"], 7))) . "Request"; + if (!class_exists($requestClassName)) { + trigger_error("No such api: " . $paramsArray["method"]); + } + + $session = isset ($paramsArray["session"]) ? $paramsArray["session"] : null; + + $req = new $requestClassName; + foreach ($paramsArray as $paraKey => $paraValue) { + $inflector->conf["separator"] = "_"; + $setterMethodName = $inflector->camelize($paraKey); + $inflector->conf["separator"] = "."; + $setterMethodName = "set" . $inflector->camelize($setterMethodName); + if (method_exists($req, $setterMethodName)) { + $req->$setterMethodName ($paraValue); + } + } + return $this->execute($req, $session); + } + + /** + * 校验$value是否非空 + * if not set ,return true; + * if is null , return true; + **/ + protected function checkEmpty($value) + { + if (!isset($value)) + return true; + if ($value === null) + return true; + if (trim($value) === "") + return true; + + return false; + } + + /** rsaCheckV1 & rsaCheckV2 + * 验证签名 + * 在使用本方法前,必须初始化AopClient且传入公钥参数。 + * 公钥是否是读取字符串还是读取文件,是根据初始化传入的值判断的。 + **/ + public function rsaCheckV1($params, $rsaPublicKeyFilePath, $signType = 'RSA') + { + $sign = $params['sign']; + $params['sign_type'] = null; + $params['sign'] = null; + return $this->verify($this->getSignContent($params), $sign, $rsaPublicKeyFilePath, $signType); + } + + public function rsaCheckV2($params, $rsaPublicKeyFilePath, $signType = 'RSA') + { + $sign = $params['sign']; + $params['sign'] = null; + return $this->verify($this->getSignContent($params), $sign, $rsaPublicKeyFilePath, $signType); + } + + function verify($data, $sign, $rsaPublicKeyFilePath, $signType = 'RSA') + { + + if ($this->checkEmpty($this->alipayPublicKey)) { + + $pubKey = $this->alipayrsaPublicKey; + $res = "-----BEGIN PUBLIC KEY-----\n" . + wordwrap($pubKey, 64, "\n", true) . + "\n-----END PUBLIC KEY-----"; + } else { + //读取公钥文件 + $pubKey = file_get_contents($rsaPublicKeyFilePath); + //转换为openssl格式密钥 + $res = openssl_get_publickey($pubKey); + } + + ($res) or die('支付宝RSA公钥错误。请检查公钥文件格式是否正确'); + + //调用openssl内置方法验签,返回bool值 + + if ("RSA2" == $signType) { + $result = (bool)openssl_verify($data, base64_decode($sign), $res, OPENSSL_ALGO_SHA256); + } else { + $result = (bool)openssl_verify($data, base64_decode($sign), $res); + } + + if (!$this->checkEmpty($this->alipayPublicKey)) { + //释放资源 + openssl_free_key($res); + } + + return $result; + } + + /** + * 在使用本方法前,必须初始化AopClient且传入公私钥参数。 + * 公钥是否是读取字符串还是读取文件,是根据初始化传入的值判断的。 + **/ + public function checkSignAndDecrypt($params, $rsaPublicKeyPem, $rsaPrivateKeyPem, $isCheckSign, $isDecrypt, $signType = 'RSA') + { + $charset = $params['charset']; + $bizContent = $params['biz_content']; + if ($isCheckSign) { + if (!$this->rsaCheckV2($params, $rsaPublicKeyPem, $signType)) { + echo "
                checkSign failure
                "; + exit; + } + } + if ($isDecrypt) { + return $this->rsaDecrypt($bizContent, $rsaPrivateKeyPem, $charset); + } + + return $bizContent; + } + + /** + * 在使用本方法前,必须初始化AopClient且传入公私钥参数。 + * 公钥是否是读取字符串还是读取文件,是根据初始化传入的值判断的。 + **/ + public function encryptAndSign($bizContent, $rsaPublicKeyPem, $rsaPrivateKeyPem, $charset, $isEncrypt, $isSign, $signType = 'RSA') + { + // 加密,并签名 + if ($isEncrypt && $isSign) { + $encrypted = $this->rsaEncrypt($bizContent, $rsaPublicKeyPem, $charset); + $sign = $this->sign($encrypted, $signType); + $response = "$encryptedRSA$sign$signType"; + return $response; + } + // 加密,不签名 + if ($isEncrypt && (!$isSign)) { + $encrypted = $this->rsaEncrypt($bizContent, $rsaPublicKeyPem, $charset); + $response = "$encrypted$signType"; + return $response; + } + // 不加密,但签名 + if ((!$isEncrypt) && $isSign) { + $sign = $this->sign($bizContent, $signType); + $response = "$bizContent$sign$signType"; + return $response; + } + // 不加密,不签名 + $response = "$bizContent"; + return $response; + } + + /** + * 在使用本方法前,必须初始化AopClient且传入公私钥参数。 + * 公钥是否是读取字符串还是读取文件,是根据初始化传入的值判断的。 + **/ + public function rsaEncrypt($data, $rsaPublicKeyPem, $charset) + { + if ($this->checkEmpty($this->alipayPublicKey)) { + //读取字符串 + $pubKey = $this->alipayrsaPublicKey; + $res = "-----BEGIN PUBLIC KEY-----\n" . + wordwrap($pubKey, 64, "\n", true) . + "\n-----END PUBLIC KEY-----"; + } else { + //读取公钥文件 + $pubKey = file_get_contents($rsaPublicKeyPem); + //转换为openssl格式密钥 + $res = openssl_get_publickey($pubKey); + } + + ($res) or die('支付宝RSA公钥错误。请检查公钥文件格式是否正确'); + $blocks = $this->splitCN($data, 0, 30, $charset); + $chrtext  = null; + $encodes  = array(); + foreach ($blocks as $n => $block) { + if (!openssl_public_encrypt($block, $chrtext , $res)) { + echo "
                " . openssl_error_string() . "
                "; + } + $encodes[] = $chrtext ; + } + $chrtext = implode(",", $encodes); + + return base64_encode($chrtext); + } + + /** + * 在使用本方法前,必须初始化AopClient且传入公私钥参数。 + * 公钥是否是读取字符串还是读取文件,是根据初始化传入的值判断的。 + **/ + public function rsaDecrypt($data, $rsaPrivateKeyPem, $charset) + { + if ($this->checkEmpty($this->rsaPrivateKeyFilePath)) { + //读字符串 + $priKey = $this->rsaPrivateKey; + $res = "-----BEGIN RSA PRIVATE KEY-----\n" . + wordwrap($priKey, 64, "\n", true) . + "\n-----END RSA PRIVATE KEY-----"; + } else { + $priKey = file_get_contents($this->rsaPrivateKeyFilePath); + $res = openssl_get_privatekey($priKey); + } + ($res) or die('您使用的私钥格式错误,请检查RSA私钥配置'); + //转换为openssl格式密钥 + $decodes = explode(',', $data); + $strnull = ""; + $dcyCont = ""; + foreach ($decodes as $n => $decode) { + if (!openssl_private_decrypt($decode, $dcyCont, $res)) { + echo "
                " . openssl_error_string() . "
                "; + } + $strnull .= $dcyCont; + } + return $strnull; + } + + function splitCN($cont, $n = 0, $subnum, $charset) + { + //$len = strlen($cont) / 3; + $arrr = array(); + for ($i = $n; $i < strlen($cont); $i += $subnum) { + $res = $this->subCNchar($cont, $i, $subnum, $charset); + if (!empty ($res)) { + $arrr[] = $res; + } + } + + return $arrr; + } + + function subCNchar($str, $start = 0, $length, $charset = "gbk") + { + if (strlen($str) <= $length) { + return $str; + } + $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; + $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; + $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; + $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; + preg_match_all($re[$charset], $str, $match); + $slice = join("", array_slice($match[0], $start, $length)); + return $slice; + } + + function parserResponseSubCode($request, $responseContent, $respObject, $format) + { + + if ("json" == $format) { + + $apiName = $request->getApiMethodName(); + $rootNodeName = str_replace(".", "_", $apiName) . $this->RESPONSE_SUFFIX; + $errorNodeName = $this->ERROR_RESPONSE; + + $rootIndex = strpos($responseContent, $rootNodeName); + $errorIndex = strpos($responseContent, $errorNodeName); + + if ($rootIndex > 0) { + // 内部节点对象 + $rInnerObject = $respObject->$rootNodeName; + } elseif ($errorIndex > 0) { + + $rInnerObject = $respObject->$errorNodeName; + } else { + return null; + } + + // 存在属性则返回对应值 + if (isset($rInnerObject->sub_code)) { + + return $rInnerObject->sub_code; + } else { + + return null; + } + + + } elseif ("xml" == $format) { + + // xml格式sub_code在同一层级 + return $respObject->sub_code; + + } + + + } + + function parserJSONSignData($request, $responseContent, $responseJSON) + { + + $signData = new SignData(); + + $signData->sign = $this->parserJSONSign($responseJSON); + $signData->signSourceData = $this->parserJSONSignSource($request, $responseContent); + + + return $signData; + + } + + function parserJSONSignSource($request, $responseContent) + { + + $apiName = $request->getApiMethodName(); + $rootNodeName = str_replace(".", "_", $apiName) . $this->RESPONSE_SUFFIX; + + $rootIndex = strpos($responseContent, $rootNodeName); + $errorIndex = strpos($responseContent, $this->ERROR_RESPONSE); + + + if ($rootIndex > 0) { + + return $this->parserJSONSource($responseContent, $rootNodeName, $rootIndex); + } else if ($errorIndex > 0) { + + return $this->parserJSONSource($responseContent, $this->ERROR_RESPONSE, $errorIndex); + } else { + + return null; + } + + + } + + function parserJSONSource($responseContent, $nodeName, $nodeIndex) + { + $signDataStartIndex = $nodeIndex + strlen($nodeName) + 2; + $signIndex = strpos($responseContent, "\"" . $this->SIGN_NODE_NAME . "\""); + // 签名前-逗号 + $signDataEndIndex = $signIndex - 1; + $indexLen = $signDataEndIndex - $signDataStartIndex; + if ($indexLen < 0) { + + return null; + } + + return substr($responseContent, $signDataStartIndex, $indexLen); + + } + + function parserJSONSign($responseJSon) + { + + return $responseJSon->sign; + } + + function parserXMLSignData($request, $responseContent) + { + + + $signData = new SignData(); + + $signData->sign = $this->parserXMLSign($responseContent); + $signData->signSourceData = $this->parserXMLSignSource($request, $responseContent); + + + return $signData; + + + } + + function parserXMLSignSource($request, $responseContent) + { + + + $apiName = $request->getApiMethodName(); + $rootNodeName = str_replace(".", "_", $apiName) . $this->RESPONSE_SUFFIX; + + + $rootIndex = strpos($responseContent, $rootNodeName); + $errorIndex = strpos($responseContent, $this->ERROR_RESPONSE); + // $this->echoDebug("
                rootNodeName:" . $rootNodeName); + // $this->echoDebug("
                responseContent:" . $responseContent . ""); + + + if ($rootIndex > 0) { + + return $this->parserXMLSource($responseContent, $rootNodeName, $rootIndex); + } else if ($errorIndex > 0) { + + return $this->parserXMLSource($responseContent, $this->ERROR_RESPONSE, $errorIndex); + } else { + + return null; + } + + + } + + function parserXMLSource($responseContent, $nodeName, $nodeIndex) + { + $signDataStartIndex = $nodeIndex + strlen($nodeName) + 1; + $signIndex = strpos($responseContent, "<" . $this->SIGN_NODE_NAME . ">"); + // 签名前-逗号 + $signDataEndIndex = $signIndex - 1; + $indexLen = $signDataEndIndex - $signDataStartIndex + 1; + + if ($indexLen < 0) { + return null; + } + + + return substr($responseContent, $signDataStartIndex, $indexLen); + + + } + + function parserXMLSign($responseContent) + { + $signNodeName = "<" . $this->SIGN_NODE_NAME . ">"; + $signEndNodeName = "SIGN_NODE_NAME . ">"; + + $indexOfSignNode = strpos($responseContent, $signNodeName); + $indexOfSignEndNode = strpos($responseContent, $signEndNodeName); + + + if ($indexOfSignNode < 0 || $indexOfSignEndNode < 0) { + return null; + } + + $nodeIndex = ($indexOfSignNode + strlen($signNodeName)); + + $indexLen = $indexOfSignEndNode - $nodeIndex; + + if ($indexLen < 0) { + return null; + } + + // 签名 + return substr($responseContent, $nodeIndex, $indexLen); + + } + + /** + * 验签 + * @param $request + * @param $signData + * @param $resp + * @param $respObject + * @throws Exception + */ + public function checkResponseSign($request, $signData, $resp, $respObject) + { + + if (!$this->checkEmpty($this->alipayPublicKey) || !$this->checkEmpty($this->alipayrsaPublicKey)) { + + + if ($signData == null || $this->checkEmpty($signData->sign) || $this->checkEmpty($signData->signSourceData)) { + + throw new Exception(" check sign Fail! The reason : signData is Empty"); + } + + + // 获取结果sub_code + $responseSubCode = $this->parserResponseSubCode($request, $resp, $respObject, $this->format); + + + if (!$this->checkEmpty($responseSubCode) || ($this->checkEmpty($responseSubCode) && !$this->checkEmpty($signData->sign))) { + + $checkResult = $this->verify($signData->signSourceData, $signData->sign, $this->alipayPublicKey, $this->signType); + + + if (!$checkResult) { + + if (strpos($signData->signSourceData, "\\/") > 0) { + + $signData->signSourceData = str_replace("\\/", "/", $signData->signSourceData); + + $checkResult = $this->verify($signData->signSourceData, $signData->sign, $this->alipayPublicKey, $this->signType); + + if (!$checkResult) { + throw new Exception("check sign Fail! [sign=" . $signData->sign . ", signSourceData=" . $signData->signSourceData . "]"); + } + + } else { + + throw new Exception("check sign Fail! [sign=" . $signData->sign . ", signSourceData=" . $signData->signSourceData . "]"); + } + + } + } + + + } + } + + private function setupCharsets($request) + { + if ($this->checkEmpty($this->postCharset)) { + $this->postCharset = 'UTF-8'; + } + $str = preg_match('/[\x80-\xff]/', $this->appId) ? $this->appId : print_r($request, true); + $this->fileCharset = mb_detect_encoding($str, "UTF-8, GBK") == 'UTF-8' ? 'UTF-8' : 'GBK'; + } + + // 获取加密内容 + + private function encryptJSONSignSource($request, $responseContent) + { + + $parsetItem = $this->parserEncryptJSONSignSource($request, $responseContent); + + $bodyIndexContent = substr($responseContent, 0, $parsetItem->startIndex); + $bodyEndContent = substr($responseContent, $parsetItem->endIndex, strlen($responseContent) + 1 - $parsetItem->endIndex); + + $bizContent = decrypt($parsetItem->encryptContent, $this->encryptKey); + return $bodyIndexContent . $bizContent . $bodyEndContent; + + } + + + private function parserEncryptJSONSignSource($request, $responseContent) + { + + $apiName = $request->getApiMethodName(); + $rootNodeName = str_replace(".", "_", $apiName) . $this->RESPONSE_SUFFIX; + + $rootIndex = strpos($responseContent, $rootNodeName); + $errorIndex = strpos($responseContent, $this->ERROR_RESPONSE); + + + if ($rootIndex > 0) { + + return $this->parserEncryptJSONItem($responseContent, $rootNodeName, $rootIndex); + } else if ($errorIndex > 0) { + + return $this->parserEncryptJSONItem($responseContent, $this->ERROR_RESPONSE, $errorIndex); + } else { + + return null; + } + + + } + + + private function parserEncryptJSONItem($responseContent, $nodeName, $nodeIndex) + { + $signDataStartIndex = $nodeIndex + strlen($nodeName) + 2; + $signIndex = strpos($responseContent, "\"" . $this->SIGN_NODE_NAME . "\""); + // 签名前-逗号 + $signDataEndIndex = $signIndex - 1; + + if ($signDataEndIndex < 0) { + + $signDataEndIndex = strlen($responseContent) - 1; + } + + $indexLen = $signDataEndIndex - $signDataStartIndex; + + $encContent = substr($responseContent, $signDataStartIndex + 1, $indexLen - 2); + + + $encryptParseItem = new EncryptParseItem(); + + $encryptParseItem->encryptContent = $encContent; + $encryptParseItem->startIndex = $signDataStartIndex; + $encryptParseItem->endIndex = $signDataEndIndex; + + return $encryptParseItem; + + } + + // 获取加密内容 + + private function encryptXMLSignSource($request, $responseContent) + { + + $parsetItem = $this->parserEncryptXMLSignSource($request, $responseContent); + + $bodyIndexContent = substr($responseContent, 0, $parsetItem->startIndex); + $bodyEndContent = substr($responseContent, $parsetItem->endIndex, strlen($responseContent) + 1 - $parsetItem->endIndex); + $bizContent = decrypt($parsetItem->encryptContent, $this->encryptKey); + + return $bodyIndexContent . $bizContent . $bodyEndContent; + + } + + private function parserEncryptXMLSignSource($request, $responseContent) + { + + + $apiName = $request->getApiMethodName(); + $rootNodeName = str_replace(".", "_", $apiName) . $this->RESPONSE_SUFFIX; + + + $rootIndex = strpos($responseContent, $rootNodeName); + $errorIndex = strpos($responseContent, $this->ERROR_RESPONSE); + // $this->echoDebug("
                rootNodeName:" . $rootNodeName); + // $this->echoDebug("
                responseContent:" . $responseContent . ""); + + + if ($rootIndex > 0) { + + return $this->parserEncryptXMLItem($responseContent, $rootNodeName, $rootIndex); + } else if ($errorIndex > 0) { + + return $this->parserEncryptXMLItem($responseContent, $this->ERROR_RESPONSE, $errorIndex); + } else { + + return null; + } + + + } + + private function parserEncryptXMLItem($responseContent, $nodeName, $nodeIndex) + { + + $signDataStartIndex = $nodeIndex + strlen($nodeName) + 1; + + $xmlStartNode = "<" . $this->ENCRYPT_XML_NODE_NAME . ">"; + $xmlEndNode = "ENCRYPT_XML_NODE_NAME . ">"; + + $indexOfXmlNode = strpos($responseContent, $xmlEndNode); + if ($indexOfXmlNode < 0) { + + $item = new EncryptParseItem(); + $item->encryptContent = null; + $item->startIndex = 0; + $item->endIndex = 0; + return $item; + } + + $startIndex = $signDataStartIndex + strlen($xmlStartNode); + $bizContentLen = $indexOfXmlNode - $startIndex; + $bizContent = substr($responseContent, $startIndex, $bizContentLen); + + $encryptParseItem = new EncryptParseItem(); + $encryptParseItem->encryptContent = $bizContent; + $encryptParseItem->startIndex = $signDataStartIndex; + $encryptParseItem->endIndex = $indexOfXmlNode + strlen($xmlEndNode); + + return $encryptParseItem; + + } + + + function echoDebug($content) + { + + if ($this->debugInfo) { + echo "
                " . $content; + } + + } + + +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/aop/AopEncrypt.php b/codes/agent/game-docker/api/payment/alipay/aop/AopEncrypt.php new file mode 100644 index 0000000..0ec4e5b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/AopEncrypt.php @@ -0,0 +1,71 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.account.exrate.advice.accept"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateAllclientrateQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateAllclientrateQueryRequest.php new file mode 100644 index 0000000..5beb701 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateAllclientrateQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.account.exrate.allclientrate.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateRatequeryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateRatequeryRequest.php new file mode 100644 index 0000000..7d1fd39 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateRatequeryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.account.exrate.ratequery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateTraderequestCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateTraderequestCreateRequest.php new file mode 100644 index 0000000..90ec8bc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAccountExrateTraderequestCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.account.exrate.traderequest.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCancelRequest.php new file mode 100644 index 0000000..a92352d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCancelRequest.php @@ -0,0 +1,171 @@ +operatorId = $operatorId; + $this->apiParas["operator_id"] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setOperatorType($operatorType) + { + $this->operatorType = $operatorType; + $this->apiParas["operator_type"] = $operatorType; + } + + public function getOperatorType() + { + return $this->operatorType; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->apiParas["out_trade_no"] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->apiParas["trade_no"] = $tradeNo; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function getApiMethodName() + { + return "alipay.acquire.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCloseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCloseRequest.php new file mode 100644 index 0000000..0af11db --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCloseRequest.php @@ -0,0 +1,152 @@ +operatorId = $operatorId; + $this->apiParas["operator_id"] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->apiParas["out_trade_no"] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->apiParas["trade_no"] = $tradeNo; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function getApiMethodName() + { + return "alipay.acquire.close"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCreateandpayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCreateandpayRequest.php new file mode 100644 index 0000000..2d61ac0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireCreateandpayRequest.php @@ -0,0 +1,550 @@ +alipayCaRequest = $alipayCaRequest; + $this->apiParas["alipay_ca_request"] = $alipayCaRequest; + } + + public function getAlipayCaRequest() + { + return $this->alipayCaRequest; + } + + public function setBody($body) + { + $this->body = $body; + $this->apiParas["body"] = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setBuyerEmail($buyerEmail) + { + $this->buyerEmail = $buyerEmail; + $this->apiParas["buyer_email"] = $buyerEmail; + } + + public function getBuyerEmail() + { + return $this->buyerEmail; + } + + public function setBuyerId($buyerId) + { + $this->buyerId = $buyerId; + $this->apiParas["buyer_id"] = $buyerId; + } + + public function getBuyerId() + { + return $this->buyerId; + } + + public function setChannelParameters($channelParameters) + { + $this->channelParameters = $channelParameters; + $this->apiParas["channel_parameters"] = $channelParameters; + } + + public function getChannelParameters() + { + return $this->channelParameters; + } + + public function setCurrency($currency) + { + $this->currency = $currency; + $this->apiParas["currency"] = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setDynamicId($dynamicId) + { + $this->dynamicId = $dynamicId; + $this->apiParas["dynamic_id"] = $dynamicId; + } + + public function getDynamicId() + { + return $this->dynamicId; + } + + public function setDynamicIdType($dynamicIdType) + { + $this->dynamicIdType = $dynamicIdType; + $this->apiParas["dynamic_id_type"] = $dynamicIdType; + } + + public function getDynamicIdType() + { + return $this->dynamicIdType; + } + + public function setExtendParams($extendParams) + { + $this->extendParams = $extendParams; + $this->apiParas["extend_params"] = $extendParams; + } + + public function getExtendParams() + { + return $this->extendParams; + } + + public function setFormatType($formatType) + { + $this->formatType = $formatType; + $this->apiParas["format_type"] = $formatType; + } + + public function getFormatType() + { + return $this->formatType; + } + + public function setGoodsDetail($goodsDetail) + { + $this->goodsDetail = $goodsDetail; + $this->apiParas["goods_detail"] = $goodsDetail; + } + + public function getGoodsDetail() + { + return $this->goodsDetail; + } + + public function setItBPay($itBPay) + { + $this->itBPay = $itBPay; + $this->apiParas["it_b_pay"] = $itBPay; + } + + public function getItBPay() + { + return $this->itBPay; + } + + public function setMcardParameters($mcardParameters) + { + $this->mcardParameters = $mcardParameters; + $this->apiParas["mcard_parameters"] = $mcardParameters; + } + + public function getMcardParameters() + { + return $this->mcardParameters; + } + + public function setOperatorId($operatorId) + { + $this->operatorId = $operatorId; + $this->apiParas["operator_id"] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setOperatorType($operatorType) + { + $this->operatorType = $operatorType; + $this->apiParas["operator_type"] = $operatorType; + } + + public function getOperatorType() + { + return $this->operatorType; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->apiParas["out_trade_no"] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setPrice($price) + { + $this->price = $price; + $this->apiParas["price"] = $price; + } + + public function getPrice() + { + return $this->price; + } + + public function setQuantity($quantity) + { + $this->quantity = $quantity; + $this->apiParas["quantity"] = $quantity; + } + + public function getQuantity() + { + return $this->quantity; + } + + public function setRefIds($refIds) + { + $this->refIds = $refIds; + $this->apiParas["ref_ids"] = $refIds; + } + + public function getRefIds() + { + return $this->refIds; + } + + public function setRoyaltyParameters($royaltyParameters) + { + $this->royaltyParameters = $royaltyParameters; + $this->apiParas["royalty_parameters"] = $royaltyParameters; + } + + public function getRoyaltyParameters() + { + return $this->royaltyParameters; + } + + public function setRoyaltyType($royaltyType) + { + $this->royaltyType = $royaltyType; + $this->apiParas["royalty_type"] = $royaltyType; + } + + public function getRoyaltyType() + { + return $this->royaltyType; + } + + public function setSellerEmail($sellerEmail) + { + $this->sellerEmail = $sellerEmail; + $this->apiParas["seller_email"] = $sellerEmail; + } + + public function getSellerEmail() + { + return $this->sellerEmail; + } + + public function setSellerId($sellerId) + { + $this->sellerId = $sellerId; + $this->apiParas["seller_id"] = $sellerId; + } + + public function getSellerId() + { + return $this->sellerId; + } + + public function setShowUrl($showUrl) + { + $this->showUrl = $showUrl; + $this->apiParas["show_url"] = $showUrl; + } + + public function getShowUrl() + { + return $this->showUrl; + } + + public function setSubject($subject) + { + $this->subject = $subject; + $this->apiParas["subject"] = $subject; + } + + public function getSubject() + { + return $this->subject; + } + + public function setTotalFee($totalFee) + { + $this->totalFee = $totalFee; + $this->apiParas["total_fee"] = $totalFee; + } + + public function getTotalFee() + { + return $this->totalFee; + } + + public function getApiMethodName() + { + return "alipay.acquire.createandpay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquirePrecreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquirePrecreateRequest.php new file mode 100644 index 0000000..4f8d539 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquirePrecreateRequest.php @@ -0,0 +1,402 @@ +body = $body; + $this->apiParas["body"] = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setChannelParameters($channelParameters) + { + $this->channelParameters = $channelParameters; + $this->apiParas["channel_parameters"] = $channelParameters; + } + + public function getChannelParameters() + { + return $this->channelParameters; + } + + public function setCurrency($currency) + { + $this->currency = $currency; + $this->apiParas["currency"] = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setExtendParams($extendParams) + { + $this->extendParams = $extendParams; + $this->apiParas["extend_params"] = $extendParams; + } + + public function getExtendParams() + { + return $this->extendParams; + } + + public function setGoodsDetail($goodsDetail) + { + $this->goodsDetail = $goodsDetail; + $this->apiParas["goods_detail"] = $goodsDetail; + } + + public function getGoodsDetail() + { + return $this->goodsDetail; + } + + public function setItBPay($itBPay) + { + $this->itBPay = $itBPay; + $this->apiParas["it_b_pay"] = $itBPay; + } + + public function getItBPay() + { + return $this->itBPay; + } + + public function setOperatorCode($operatorCode) + { + $this->operatorCode = $operatorCode; + $this->apiParas["operator_code"] = $operatorCode; + } + + public function getOperatorCode() + { + return $this->operatorCode; + } + + public function setOperatorId($operatorId) + { + $this->operatorId = $operatorId; + $this->apiParas["operator_id"] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->apiParas["out_trade_no"] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setPrice($price) + { + $this->price = $price; + $this->apiParas["price"] = $price; + } + + public function getPrice() + { + return $this->price; + } + + public function setQuantity($quantity) + { + $this->quantity = $quantity; + $this->apiParas["quantity"] = $quantity; + } + + public function getQuantity() + { + return $this->quantity; + } + + public function setRoyaltyParameters($royaltyParameters) + { + $this->royaltyParameters = $royaltyParameters; + $this->apiParas["royalty_parameters"] = $royaltyParameters; + } + + public function getRoyaltyParameters() + { + return $this->royaltyParameters; + } + + public function setRoyaltyType($royaltyType) + { + $this->royaltyType = $royaltyType; + $this->apiParas["royalty_type"] = $royaltyType; + } + + public function getRoyaltyType() + { + return $this->royaltyType; + } + + public function setSellerEmail($sellerEmail) + { + $this->sellerEmail = $sellerEmail; + $this->apiParas["seller_email"] = $sellerEmail; + } + + public function getSellerEmail() + { + return $this->sellerEmail; + } + + public function setSellerId($sellerId) + { + $this->sellerId = $sellerId; + $this->apiParas["seller_id"] = $sellerId; + } + + public function getSellerId() + { + return $this->sellerId; + } + + public function setShowUrl($showUrl) + { + $this->showUrl = $showUrl; + $this->apiParas["show_url"] = $showUrl; + } + + public function getShowUrl() + { + return $this->showUrl; + } + + public function setSubject($subject) + { + $this->subject = $subject; + $this->apiParas["subject"] = $subject; + } + + public function getSubject() + { + return $this->subject; + } + + public function setTotalFee($totalFee) + { + $this->totalFee = $totalFee; + $this->apiParas["total_fee"] = $totalFee; + } + + public function getTotalFee() + { + return $this->totalFee; + } + + public function getApiMethodName() + { + return "alipay.acquire.precreate"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireQueryRequest.php new file mode 100644 index 0000000..7a59727 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireQueryRequest.php @@ -0,0 +1,136 @@ +outTradeNo = $outTradeNo; + $this->apiParas["out_trade_no"] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->apiParas["trade_no"] = $tradeNo; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function getApiMethodName() + { + return "alipay.acquire.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireRefundRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireRefundRequest.php new file mode 100644 index 0000000..1ad2e45 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAcquireRefundRequest.php @@ -0,0 +1,236 @@ +operatorId = $operatorId; + $this->apiParas["operator_id"] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setOperatorType($operatorType) + { + $this->operatorType = $operatorType; + $this->apiParas["operator_type"] = $operatorType; + } + + public function getOperatorType() + { + return $this->operatorType; + } + + public function setOutRequestNo($outRequestNo) + { + $this->outRequestNo = $outRequestNo; + $this->apiParas["out_request_no"] = $outRequestNo; + } + + public function getOutRequestNo() + { + return $this->outRequestNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->apiParas["out_trade_no"] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setRefIds($refIds) + { + $this->refIds = $refIds; + $this->apiParas["ref_ids"] = $refIds; + } + + public function getRefIds() + { + return $this->refIds; + } + + public function setRefundAmount($refundAmount) + { + $this->refundAmount = $refundAmount; + $this->apiParas["refund_amount"] = $refundAmount; + } + + public function getRefundAmount() + { + return $this->refundAmount; + } + + public function setRefundReason($refundReason) + { + $this->refundReason = $refundReason; + $this->apiParas["refund_reason"] = $refundReason; + } + + public function getRefundReason() + { + return $this->refundReason; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->apiParas["trade_no"] = $tradeNo; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function getApiMethodName() + { + return "alipay.acquire.refund"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAppTokenGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAppTokenGetRequest.php new file mode 100644 index 0000000..6f7ba87 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAppTokenGetRequest.php @@ -0,0 +1,118 @@ +secret = $secret; + $this->apiParas["secret"] = $secret; + } + + public function getSecret() + { + return $this->secret; + } + + public function getApiMethodName() + { + return "alipay.app.token.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountBindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountBindRequest.php new file mode 100644 index 0000000..b3e5814 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountBindRequest.php @@ -0,0 +1,170 @@ +bindScene = $bindScene; + $this->apiParas["bind_scene"] = $bindScene; + } + + public function getBindScene() + { + return $this->bindScene; + } + + public function setProviderId($providerId) + { + $this->providerId = $providerId; + $this->apiParas["provider_id"] = $providerId; + } + + public function getProviderId() + { + return $this->providerId; + } + + public function setProviderUserId($providerUserId) + { + $this->providerUserId = $providerUserId; + $this->apiParas["provider_user_id"] = $providerUserId; + } + + public function getProviderUserId() + { + return $this->providerUserId; + } + + public function setProviderUserName($providerUserName) + { + $this->providerUserName = $providerUserName; + $this->apiParas["provider_user_name"] = $providerUserName; + } + + public function getProviderUserName() + { + return $this->providerUserName; + } + + public function getApiMethodName() + { + return "alipay.asset.account.bind"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountGetRequest.php new file mode 100644 index 0000000..d5a1ab2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountGetRequest.php @@ -0,0 +1,135 @@ +providerId = $providerId; + $this->apiParas["provider_id"] = $providerId; + } + + public function getProviderId() + { + return $this->providerId; + } + + public function setProviderUserId($providerUserId) + { + $this->providerUserId = $providerUserId; + $this->apiParas["provider_user_id"] = $providerUserId; + } + + public function getProviderUserId() + { + return $this->providerUserId; + } + + public function getApiMethodName() + { + return "alipay.asset.account.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountUnbindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountUnbindRequest.php new file mode 100644 index 0000000..a857106 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetAccountUnbindRequest.php @@ -0,0 +1,134 @@ +providerId = $providerId; + $this->apiParas["provider_id"] = $providerId; + } + + public function getProviderId() + { + return $this->providerId; + } + + public function setProviderUserId($providerUserId) + { + $this->providerUserId = $providerUserId; + $this->apiParas["provider_user_id"] = $providerUserId; + } + + public function getProviderUserId() + { + return $this->providerUserId; + } + + public function getApiMethodName() + { + return "alipay.asset.account.unbind"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointBalanceQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointBalanceQueryRequest.php new file mode 100644 index 0000000..18c4a63 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointBalanceQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointBudgetQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointBudgetQueryRequest.php new file mode 100644 index 0000000..d07b3cd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointBudgetQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointOrderCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointOrderCreateRequest.php new file mode 100644 index 0000000..783bff3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointOrderCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.asset.point.order.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointOrderQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointOrderQueryRequest.php new file mode 100644 index 0000000..0e44fec --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayAssetPointOrderQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.asset.point.order.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossCsChannelQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossCsChannelQueryRequest.php new file mode 100644 index 0000000..bf161cb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossCsChannelQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.boss.cs.channel.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossFncXwbtestRetModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossFncXwbtestRetModifyRequest.php new file mode 100644 index 0000000..a1355c7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossFncXwbtestRetModifyRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossProdArrangementOfflineQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossProdArrangementOfflineQueryRequest.php new file mode 100644 index 0000000..1095320 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayBossProdArrangementOfflineQueryRequest.php @@ -0,0 +1,118 @@ +productCode = $productCode; + $this->apiParas["product_code"] = $productCode; + } + + public function getProductCode() + { + return $this->productCode; + } + + public function getApiMethodName() + { + return "alipay.boss.prod.arrangement.offline.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceAirXfgDsgModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceAirXfgDsgModifyRequest.php new file mode 100644 index 0000000..93252b2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceAirXfgDsgModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.air.xfg.dsg.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorCityQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorCityQueryRequest.php new file mode 100644 index 0000000..efad1c1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorCityQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositCancelRequest.php new file mode 100644 index 0000000..d26e5ff --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.deposit.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositConfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositConfirmRequest.php new file mode 100644 index 0000000..a191af4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositConfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.deposit.confirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositQueryRequest.php new file mode 100644 index 0000000..3959bdb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorDepositQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.deposit.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorFunctionQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorFunctionQueryRequest.php new file mode 100644 index 0000000..19bf664 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorFunctionQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.function.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorScriptQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorScriptQueryRequest.php new file mode 100644 index 0000000..8f70b8d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorScriptQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.script.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorStationQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorStationQueryRequest.php new file mode 100644 index 0000000..d39f621 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorStationQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.station.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherBatchqueryRequest.php new file mode 100644 index 0000000..e8d6a5f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.voucher.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherCancelRequest.php new file mode 100644 index 0000000..b421257 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.voucher.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherConfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherConfirmRequest.php new file mode 100644 index 0000000..7eeb2b4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherConfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.voucher.confirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherGenerateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherGenerateRequest.php new file mode 100644 index 0000000..1caa7d7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherGenerateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.voucher.generate"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherQueryRequest.php new file mode 100644 index 0000000..08259f0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.voucher.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherRefundRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherRefundRequest.php new file mode 100644 index 0000000..fde7110 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherRefundRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.voucher.refund"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherUploadRequest.php new file mode 100644 index 0000000..5e454b1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceCityfacilitatorVoucherUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.cityfacilitator.voucher.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceDataMonitordataSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceDataMonitordataSyncRequest.php new file mode 100644 index 0000000..37ec36d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceDataMonitordataSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.data.monitordata.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceEducateStudentinfoShareRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceEducateStudentinfoShareRequest.php new file mode 100644 index 0000000..8df3227 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceEducateStudentinfoShareRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceIotDeviceserviceCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceIotDeviceserviceCancelRequest.php new file mode 100644 index 0000000..c0fe198 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceIotDeviceserviceCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.iot.deviceservice.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryPresentSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryPresentSendRequest.php new file mode 100644 index 0000000..24fa263 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryPresentSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.lottery.present.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryPresentlistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryPresentlistQueryRequest.php new file mode 100644 index 0000000..9ff3995 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryPresentlistQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.lottery.presentlist.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryTypelistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryTypelistQueryRequest.php new file mode 100644 index 0000000..958776a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceLotteryTypelistQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalCardQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalCardQueryRequest.php new file mode 100644 index 0000000..b5b7658 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalCardQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.medical.card.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalInstcardBindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalInstcardBindRequest.php new file mode 100644 index 0000000..210190c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalInstcardBindRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.medical.instcard.bind"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalInstcardCreateandpayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalInstcardCreateandpayRequest.php new file mode 100644 index 0000000..04272d2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceMedicalInstcardCreateandpayRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.medical.instcard.createandpay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayKeyQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayKeyQueryRequest.php new file mode 100644 index 0000000..0c1fb0b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayKeyQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayRecordVerifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayRecordVerifyRequest.php new file mode 100644 index 0000000..2289046 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayRecordVerifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.transport.offlinepay.record.verify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayUserblacklistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayUserblacklistQueryRequest.php new file mode 100644 index 0000000..6ff2cc5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayCommerceTransportOfflinepayUserblacklistQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.commerce.transport.offlinepay.userblacklist.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderCancelRequest.php new file mode 100644 index 0000000..2f331a2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.order.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderConfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderConfirmRequest.php new file mode 100644 index 0000000..8cfb4b7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderConfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.order.confirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderModifyRequest.php new file mode 100644 index 0000000..9d552c4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.order.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderQueryRequest.php new file mode 100644 index 0000000..47b2d07 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.order.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderRefundRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderRefundRequest.php new file mode 100644 index 0000000..0eb1173 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderRefundRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.order.refund"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderRefuseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderRefuseRequest.php new file mode 100644 index 0000000..dddc9a5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderRefuseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.order.refuse"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderSpModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderSpModifyRequest.php new file mode 100644 index 0000000..17bba9d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderSpModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.order.sp.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderTransferRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderTransferRequest.php new file mode 100644 index 0000000..33fdf64 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiOrderTransferRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.order.transfer"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiServiceModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiServiceModifyRequest.php new file mode 100644 index 0000000..1fed358 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiServiceModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.service.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiSpModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiSpModifyRequest.php new file mode 100644 index 0000000..9835237 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiSpModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.sp.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiSpScheduleModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiSpScheduleModifyRequest.php new file mode 100644 index 0000000..7885283 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDaoweiSpScheduleModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.daowei.sp.schedule.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataBillDownloadurlGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataBillDownloadurlGetRequest.php new file mode 100644 index 0000000..d5f2023 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataBillDownloadurlGetRequest.php @@ -0,0 +1,134 @@ +billDate = $billDate; + $this->apiParas["bill_date"] = $billDate; + } + + public function getBillDate() + { + return $this->billDate; + } + + public function setBillType($billType) + { + $this->billType = $billType; + $this->apiParas["bill_type"] = $billType; + } + + public function getBillType() + { + return $this->billType; + } + + public function getApiMethodName() + { + return "alipay.data.bill.downloadurl.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataexchangeSfasdfRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataexchangeSfasdfRequest.php new file mode 100644 index 0000000..b25251b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataexchangeSfasdfRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.data.dataexchange.sfasdf"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceBillDownloadurlQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceBillDownloadurlQueryRequest.php new file mode 100644 index 0000000..fe54cbe --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceBillDownloadurlQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.data.dataservice.bill.downloadurl.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceChinaremodelQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceChinaremodelQueryRequest.php new file mode 100644 index 0000000..d16ced1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceChinaremodelQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.data.dataservice.chinaremodel.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceCodeRecoRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceCodeRecoRequest.php new file mode 100644 index 0000000..c08fab9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceCodeRecoRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.data.dataservice.code.reco"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceSdfsdfRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceSdfsdfRequest.php new file mode 100644 index 0000000..fdf6f38 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceSdfsdfRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceShoppingmallrecShopQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceShoppingmallrecShopQueryRequest.php new file mode 100644 index 0000000..bd82093 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceShoppingmallrecShopQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.data.dataservice.shoppingmallrec.shop.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceShoppingmallrecVoucherQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceShoppingmallrecVoucherQueryRequest.php new file mode 100644 index 0000000..56eb0e2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceShoppingmallrecVoucherQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.data.dataservice.shoppingmallrec.voucher.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceUserlevelZrankGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceUserlevelZrankGetRequest.php new file mode 100644 index 0000000..11789dc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayDataDataserviceUserlevelZrankGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.data.dataservice.userlevel.zrank.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillAddRequest.php new file mode 100644 index 0000000..63e9c33 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillAddRequest.php @@ -0,0 +1,326 @@ +bankBillNo = $bankBillNo; + $this->apiParas["bank_bill_no"] = $bankBillNo; + } + + public function getBankBillNo() + { + return $this->bankBillNo; + } + + public function setBillDate($billDate) + { + $this->billDate = $billDate; + $this->apiParas["bill_date"] = $billDate; + } + + public function getBillDate() + { + return $this->billDate; + } + + public function setBillKey($billKey) + { + $this->billKey = $billKey; + $this->apiParas["bill_key"] = $billKey; + } + + public function getBillKey() + { + return $this->billKey; + } + + public function setChargeInst($chargeInst) + { + $this->chargeInst = $chargeInst; + $this->apiParas["charge_inst"] = $chargeInst; + } + + public function getChargeInst() + { + return $this->chargeInst; + } + + public function setExtendField($extendField) + { + $this->extendField = $extendField; + $this->apiParas["extend_field"] = $extendField; + } + + public function getExtendField() + { + return $this->extendField; + } + + public function setMerchantOrderNo($merchantOrderNo) + { + $this->merchantOrderNo = $merchantOrderNo; + $this->apiParas["merchant_order_no"] = $merchantOrderNo; + } + + public function getMerchantOrderNo() + { + return $this->merchantOrderNo; + } + + public function setMobile($mobile) + { + $this->mobile = $mobile; + $this->apiParas["mobile"] = $mobile; + } + + public function getMobile() + { + return $this->mobile; + } + + public function setOrderType($orderType) + { + $this->orderType = $orderType; + $this->apiParas["order_type"] = $orderType; + } + + public function getOrderType() + { + return $this->orderType; + } + + public function setOwnerName($ownerName) + { + $this->ownerName = $ownerName; + $this->apiParas["owner_name"] = $ownerName; + } + + public function getOwnerName() + { + return $this->ownerName; + } + + public function setPayAmount($payAmount) + { + $this->payAmount = $payAmount; + $this->apiParas["pay_amount"] = $payAmount; + } + + public function getPayAmount() + { + return $this->payAmount; + } + + public function setServiceAmount($serviceAmount) + { + $this->serviceAmount = $serviceAmount; + $this->apiParas["service_amount"] = $serviceAmount; + } + + public function getServiceAmount() + { + return $this->serviceAmount; + } + + public function setSubOrderType($subOrderType) + { + $this->subOrderType = $subOrderType; + $this->apiParas["sub_order_type"] = $subOrderType; + } + + public function getSubOrderType() + { + return $this->subOrderType; + } + + public function setTrafficLocation($trafficLocation) + { + $this->trafficLocation = $trafficLocation; + $this->apiParas["traffic_location"] = $trafficLocation; + } + + public function getTrafficLocation() + { + return $this->trafficLocation; + } + + public function setTrafficRegulations($trafficRegulations) + { + $this->trafficRegulations = $trafficRegulations; + $this->apiParas["traffic_regulations"] = $trafficRegulations; + } + + public function getTrafficRegulations() + { + return $this->trafficRegulations; + } + + public function getApiMethodName() + { + return "alipay.ebpp.bill.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillBatchPayurlGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillBatchPayurlGetRequest.php new file mode 100644 index 0000000..83dd86b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillBatchPayurlGetRequest.php @@ -0,0 +1,150 @@ +callbackUrl = $callbackUrl; + $this->apiParas["callback_url"] = $callbackUrl; + } + + public function getCallbackUrl() + { + return $this->callbackUrl; + } + + public function setOrderType($orderType) + { + $this->orderType = $orderType; + $this->apiParas["order_type"] = $orderType; + } + + public function getOrderType() + { + return $this->orderType; + } + + public function setPayBillList($payBillList) + { + $this->payBillList = $payBillList; + $this->apiParas["pay_bill_list"] = $payBillList; + } + + public function getPayBillList() + { + return $this->payBillList; + } + + public function getApiMethodName() + { + return "alipay.ebpp.bill.batch.payurl.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillGetRequest.php new file mode 100644 index 0000000..d07f715 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillGetRequest.php @@ -0,0 +1,134 @@ +merchantOrderNo = $merchantOrderNo; + $this->apiParas["merchant_order_no"] = $merchantOrderNo; + } + + public function getMerchantOrderNo() + { + return $this->merchantOrderNo; + } + + public function setOrderType($orderType) + { + $this->orderType = $orderType; + $this->apiParas["order_type"] = $orderType; + } + + public function getOrderType() + { + return $this->orderType; + } + + public function getApiMethodName() + { + return "alipay.ebpp.bill.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillPayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillPayRequest.php new file mode 100644 index 0000000..9f66168 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillPayRequest.php @@ -0,0 +1,182 @@ +alipayOrderNo = $alipayOrderNo; + $this->apiParas["alipay_order_no"] = $alipayOrderNo; + } + + public function getAlipayOrderNo() + { + return $this->alipayOrderNo; + } + + public function setDispatchClusterTarget($dispatchClusterTarget) + { + $this->dispatchClusterTarget = $dispatchClusterTarget; + $this->apiParas["dispatch_cluster_target"] = $dispatchClusterTarget; + } + + public function getDispatchClusterTarget() + { + return $this->dispatchClusterTarget; + } + + public function setExtend($extend) + { + $this->extend = $extend; + $this->apiParas["extend"] = $extend; + } + + public function getExtend() + { + return $this->extend; + } + + public function setMerchantOrderNo($merchantOrderNo) + { + $this->merchantOrderNo = $merchantOrderNo; + $this->apiParas["merchant_order_no"] = $merchantOrderNo; + } + + public function getMerchantOrderNo() + { + return $this->merchantOrderNo; + } + + public function setOrderType($orderType) + { + $this->orderType = $orderType; + $this->apiParas["order_type"] = $orderType; + } + + public function getOrderType() + { + return $this->orderType; + } + + public function getApiMethodName() + { + return "alipay.ebpp.bill.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillPayurlGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillPayurlGetRequest.php new file mode 100644 index 0000000..b3f0d74 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillPayurlGetRequest.php @@ -0,0 +1,166 @@ +alipayOrderNo = $alipayOrderNo; + $this->apiParas["alipay_order_no"] = $alipayOrderNo; + } + + public function getAlipayOrderNo() + { + return $this->alipayOrderNo; + } + + public function setCallbackUrl($callbackUrl) + { + $this->callbackUrl = $callbackUrl; + $this->apiParas["callback_url"] = $callbackUrl; + } + + public function getCallbackUrl() + { + return $this->callbackUrl; + } + + public function setMerchantOrderNo($merchantOrderNo) + { + $this->merchantOrderNo = $merchantOrderNo; + $this->apiParas["merchant_order_no"] = $merchantOrderNo; + } + + public function getMerchantOrderNo() + { + return $this->merchantOrderNo; + } + + public function setOrderType($orderType) + { + $this->orderType = $orderType; + $this->apiParas["order_type"] = $orderType; + } + + public function getOrderType() + { + return $this->orderType; + } + + public function getApiMethodName() + { + return "alipay.ebpp.bill.payurl.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillSearchRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillSearchRequest.php new file mode 100644 index 0000000..7832a76 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppBillSearchRequest.php @@ -0,0 +1,215 @@ +billKey = $billKey; + $this->apiParas["bill_key"] = $billKey; + } + + public function getBillKey() + { + return $this->billKey; + } + + public function setChargeInst($chargeInst) + { + $this->chargeInst = $chargeInst; + $this->apiParas["charge_inst"] = $chargeInst; + } + + public function getChargeInst() + { + return $this->chargeInst; + } + + public function setChargeoffInst($chargeoffInst) + { + $this->chargeoffInst = $chargeoffInst; + $this->apiParas["chargeoff_inst"] = $chargeoffInst; + } + + public function getChargeoffInst() + { + return $this->chargeoffInst; + } + + public function setCompanyId($companyId) + { + $this->companyId = $companyId; + $this->apiParas["company_id"] = $companyId; + } + + public function getCompanyId() + { + return $this->companyId; + } + + public function setExtend($extend) + { + $this->extend = $extend; + $this->apiParas["extend"] = $extend; + } + + public function getExtend() + { + return $this->extend; + } + + public function setOrderType($orderType) + { + $this->orderType = $orderType; + $this->apiParas["order_type"] = $orderType; + } + + public function getOrderType() + { + return $this->orderType; + } + + public function setSubOrderType($subOrderType) + { + $this->subOrderType = $subOrderType; + $this->apiParas["sub_order_type"] = $subOrderType; + } + + public function getSubOrderType() + { + return $this->subOrderType; + } + + public function getApiMethodName() + { + return "alipay.ebpp.bill.search"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceInfoSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceInfoSendRequest.php new file mode 100644 index 0000000..f9d3aea --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceInfoSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ebpp.invoice.info.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceMerchantlistEnterApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceMerchantlistEnterApplyRequest.php new file mode 100644 index 0000000..7443479 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceMerchantlistEnterApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ebpp.invoice.merchantlist.enter.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceTitleDynamicGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceTitleDynamicGetRequest.php new file mode 100644 index 0000000..f5b8184 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceTitleDynamicGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ebpp.invoice.title.dynamic.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceTitleListGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceTitleListGetRequest.php new file mode 100644 index 0000000..8748968 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppInvoiceTitleListGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ebpp.invoice.title.list.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppMerchantConfigGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppMerchantConfigGetRequest.php new file mode 100644 index 0000000..d30f54c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppMerchantConfigGetRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductBillPayStatusRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductBillPayStatusRequest.php new file mode 100644 index 0000000..072e39c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductBillPayStatusRequest.php @@ -0,0 +1,134 @@ +agreementId = $agreementId; + $this->apiParas["agreement_id"] = $agreementId; + } + + public function getAgreementId() + { + return $this->agreementId; + } + + public function setOutOrderNo($outOrderNo) + { + $this->outOrderNo = $outOrderNo; + $this->apiParas["out_order_no"] = $outOrderNo; + } + + public function getOutOrderNo() + { + return $this->outOrderNo; + } + + public function getApiMethodName() + { + return "alipay.ebpp.pdeduct.bill.pay.status"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductPayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductPayRequest.php new file mode 100644 index 0000000..ad2863a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductPayRequest.php @@ -0,0 +1,297 @@ +agentChannel = $agentChannel; + $this->apiParas["agent_channel"] = $agentChannel; + } + + public function getAgentChannel() + { + return $this->agentChannel; + } + + public function setAgentCode($agentCode) + { + $this->agentCode = $agentCode; + $this->apiParas["agent_code"] = $agentCode; + } + + public function getAgentCode() + { + return $this->agentCode; + } + + public function setAgreementId($agreementId) + { + $this->agreementId = $agreementId; + $this->apiParas["agreement_id"] = $agreementId; + } + + public function getAgreementId() + { + return $this->agreementId; + } + + public function setBillDate($billDate) + { + $this->billDate = $billDate; + $this->apiParas["bill_date"] = $billDate; + } + + public function getBillDate() + { + return $this->billDate; + } + + public function setBillKey($billKey) + { + $this->billKey = $billKey; + $this->apiParas["bill_key"] = $billKey; + } + + public function getBillKey() + { + return $this->billKey; + } + + public function setExtendField($extendField) + { + $this->extendField = $extendField; + $this->apiParas["extend_field"] = $extendField; + } + + public function getExtendField() + { + return $this->extendField; + } + + public function setFineAmount($fineAmount) + { + $this->fineAmount = $fineAmount; + $this->apiParas["fine_amount"] = $fineAmount; + } + + public function getFineAmount() + { + return $this->fineAmount; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setOutOrderNo($outOrderNo) + { + $this->outOrderNo = $outOrderNo; + $this->apiParas["out_order_no"] = $outOrderNo; + } + + public function getOutOrderNo() + { + return $this->outOrderNo; + } + + public function setPayAmount($payAmount) + { + $this->payAmount = $payAmount; + $this->apiParas["pay_amount"] = $payAmount; + } + + public function getPayAmount() + { + return $this->payAmount; + } + + public function setPid($pid) + { + $this->pid = $pid; + $this->apiParas["pid"] = $pid; + } + + public function getPid() + { + return $this->pid; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.ebpp.pdeduct.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignAddRequest.php new file mode 100644 index 0000000..3ee3333 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignAddRequest.php @@ -0,0 +1,372 @@ +agentChannel = $agentChannel; + $this->apiParas["agent_channel"] = $agentChannel; + } + + public function getAgentChannel() + { + return $this->agentChannel; + } + + public function setAgentCode($agentCode) + { + $this->agentCode = $agentCode; + $this->apiParas["agent_code"] = $agentCode; + } + + public function getAgentCode() + { + return $this->agentCode; + } + + public function setBillKey($billKey) + { + $this->billKey = $billKey; + $this->apiParas["bill_key"] = $billKey; + } + + public function getBillKey() + { + return $this->billKey; + } + + public function setBizType($bizType) + { + $this->bizType = $bizType; + $this->apiParas["biz_type"] = $bizType; + } + + public function getBizType() + { + return $this->bizType; + } + + public function setChargeInst($chargeInst) + { + $this->chargeInst = $chargeInst; + $this->apiParas["charge_inst"] = $chargeInst; + } + + public function getChargeInst() + { + return $this->chargeInst; + } + + public function setDeductType($deductType) + { + $this->deductType = $deductType; + $this->apiParas["deduct_type"] = $deductType; + } + + public function getDeductType() + { + return $this->deductType; + } + + public function setExtendField($extendField) + { + $this->extendField = $extendField; + $this->apiParas["extend_field"] = $extendField; + } + + public function getExtendField() + { + return $this->extendField; + } + + public function setNotifyConfig($notifyConfig) + { + $this->notifyConfig = $notifyConfig; + $this->apiParas["notify_config"] = $notifyConfig; + } + + public function getNotifyConfig() + { + return $this->notifyConfig; + } + + public function setOutAgreementId($outAgreementId) + { + $this->outAgreementId = $outAgreementId; + $this->apiParas["out_agreement_id"] = $outAgreementId; + } + + public function getOutAgreementId() + { + return $this->outAgreementId; + } + + public function setOwnerName($ownerName) + { + $this->ownerName = $ownerName; + $this->apiParas["owner_name"] = $ownerName; + } + + public function getOwnerName() + { + return $this->ownerName; + } + + public function setPayConfig($payConfig) + { + $this->payConfig = $payConfig; + $this->apiParas["pay_config"] = $payConfig; + } + + public function getPayConfig() + { + return $this->payConfig; + } + + public function setPayPasswordToken($payPasswordToken) + { + $this->payPasswordToken = $payPasswordToken; + $this->apiParas["pay_password_token"] = $payPasswordToken; + } + + public function getPayPasswordToken() + { + return $this->payPasswordToken; + } + + public function setPid($pid) + { + $this->pid = $pid; + $this->apiParas["pid"] = $pid; + } + + public function getPid() + { + return $this->pid; + } + + public function setSignExpireDate($signExpireDate) + { + $this->signExpireDate = $signExpireDate; + $this->apiParas["sign_expire_date"] = $signExpireDate; + } + + public function getSignExpireDate() + { + return $this->signExpireDate; + } + + public function setSubBizType($subBizType) + { + $this->subBizType = $subBizType; + $this->apiParas["sub_biz_type"] = $subBizType; + } + + public function getSubBizType() + { + return $this->subBizType; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.ebpp.pdeduct.sign.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignCancelRequest.php new file mode 100644 index 0000000..15e8344 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignCancelRequest.php @@ -0,0 +1,182 @@ +agentChannel = $agentChannel; + $this->apiParas["agent_channel"] = $agentChannel; + } + + public function getAgentChannel() + { + return $this->agentChannel; + } + + public function setAgentCode($agentCode) + { + $this->agentCode = $agentCode; + $this->apiParas["agent_code"] = $agentCode; + } + + public function getAgentCode() + { + return $this->agentCode; + } + + public function setAgreementId($agreementId) + { + $this->agreementId = $agreementId; + $this->apiParas["agreement_id"] = $agreementId; + } + + public function getAgreementId() + { + return $this->agreementId; + } + + public function setPayPasswordToken($payPasswordToken) + { + $this->payPasswordToken = $payPasswordToken; + $this->apiParas["pay_password_token"] = $payPasswordToken; + } + + public function getPayPasswordToken() + { + return $this->payPasswordToken; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.ebpp.pdeduct.sign.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignQueryRequest.php new file mode 100644 index 0000000..23f63c7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ebpp.pdeduct.sign.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignValidateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignValidateRequest.php new file mode 100644 index 0000000..ee1354c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEbppPdeductSignValidateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ebpp.pdeduct.sign.validate"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodCreditGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodCreditGetRequest.php new file mode 100644 index 0000000..4942860 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodCreditGetRequest.php @@ -0,0 +1,182 @@ +creditNo = $creditNo; + $this->apiParas["credit_no"] = $creditNo; + } + + public function getCreditNo() + { + return $this->creditNo; + } + + public function setEntityCode($entityCode) + { + $this->entityCode = $entityCode; + $this->apiParas["entity_code"] = $entityCode; + } + + public function getEntityCode() + { + return $this->entityCode; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + $this->apiParas["entity_name"] = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setIsvCode($isvCode) + { + $this->isvCode = $isvCode; + $this->apiParas["isv_code"] = $isvCode; + } + + public function getIsvCode() + { + return $this->isvCode; + } + + public function setOrgCode($orgCode) + { + $this->orgCode = $orgCode; + $this->apiParas["org_code"] = $orgCode; + } + + public function getOrgCode() + { + return $this->orgCode; + } + + public function getApiMethodName() + { + return "alipay.ecapiprod.credit.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDataPutRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDataPutRequest.php new file mode 100644 index 0000000..37bef93 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDataPutRequest.php @@ -0,0 +1,246 @@ +category = $category; + $this->apiParas["category"] = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setCharSet($charSet) + { + $this->charSet = $charSet; + $this->apiParas["char_set"] = $charSet; + } + + public function getCharSet() + { + return $this->charSet; + } + + public function setCollectingTaskId($collectingTaskId) + { + $this->collectingTaskId = $collectingTaskId; + $this->apiParas["collecting_task_id"] = $collectingTaskId; + } + + public function getCollectingTaskId() + { + return $this->collectingTaskId; + } + + public function setEntityCode($entityCode) + { + $this->entityCode = $entityCode; + $this->apiParas["entity_code"] = $entityCode; + } + + public function getEntityCode() + { + return $this->entityCode; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + $this->apiParas["entity_name"] = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setEntityType($entityType) + { + $this->entityType = $entityType; + $this->apiParas["entity_type"] = $entityType; + } + + public function getEntityType() + { + return $this->entityType; + } + + public function setIsvCode($isvCode) + { + $this->isvCode = $isvCode; + $this->apiParas["isv_code"] = $isvCode; + } + + public function getIsvCode() + { + return $this->isvCode; + } + + public function setJsonData($jsonData) + { + $this->jsonData = $jsonData; + $this->apiParas["json_data"] = $jsonData; + } + + public function getJsonData() + { + return $this->jsonData; + } + + public function setOrgCode($orgCode) + { + $this->orgCode = $orgCode; + $this->apiParas["org_code"] = $orgCode; + } + + public function getOrgCode() + { + return $this->orgCode; + } + + public function getApiMethodName() + { + return "alipay.ecapiprod.data.put"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnContractGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnContractGetRequest.php new file mode 100644 index 0000000..c5a65c0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnContractGetRequest.php @@ -0,0 +1,182 @@ +drawndnNo = $drawndnNo; + $this->apiParas["drawndn_no"] = $drawndnNo; + } + + public function getDrawndnNo() + { + return $this->drawndnNo; + } + + public function setEntityCode($entityCode) + { + $this->entityCode = $entityCode; + $this->apiParas["entity_code"] = $entityCode; + } + + public function getEntityCode() + { + return $this->entityCode; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + $this->apiParas["entity_name"] = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setIsvCode($isvCode) + { + $this->isvCode = $isvCode; + $this->apiParas["isv_code"] = $isvCode; + } + + public function getIsvCode() + { + return $this->isvCode; + } + + public function setOrgCode($orgCode) + { + $this->orgCode = $orgCode; + $this->apiParas["org_code"] = $orgCode; + } + + public function getOrgCode() + { + return $this->orgCode; + } + + public function getApiMethodName() + { + return "alipay.ecapiprod.drawndn.contract.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnDrawndnlistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnDrawndnlistQueryRequest.php new file mode 100644 index 0000000..c72202e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnDrawndnlistQueryRequest.php @@ -0,0 +1,182 @@ +creditNo = $creditNo; + $this->apiParas["credit_no"] = $creditNo; + } + + public function getCreditNo() + { + return $this->creditNo; + } + + public function setEntityCode($entityCode) + { + $this->entityCode = $entityCode; + $this->apiParas["entity_code"] = $entityCode; + } + + public function getEntityCode() + { + return $this->entityCode; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + $this->apiParas["entity_name"] = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setIsvCode($isvCode) + { + $this->isvCode = $isvCode; + $this->apiParas["isv_code"] = $isvCode; + } + + public function getIsvCode() + { + return $this->isvCode; + } + + public function setOrgCode($orgCode) + { + $this->orgCode = $orgCode; + $this->apiParas["org_code"] = $orgCode; + } + + public function getOrgCode() + { + return $this->orgCode; + } + + public function getApiMethodName() + { + return "alipay.ecapiprod.drawndn.drawndnlist.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnFeerecordQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnFeerecordQueryRequest.php new file mode 100644 index 0000000..edb0133 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnFeerecordQueryRequest.php @@ -0,0 +1,214 @@ +drawndnNo = $drawndnNo; + $this->apiParas["drawndn_no"] = $drawndnNo; + } + + public function getDrawndnNo() + { + return $this->drawndnNo; + } + + public function setEnd($end) + { + $this->end = $end; + $this->apiParas["end"] = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setEntityCode($entityCode) + { + $this->entityCode = $entityCode; + $this->apiParas["entity_code"] = $entityCode; + } + + public function getEntityCode() + { + return $this->entityCode; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + $this->apiParas["entity_name"] = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setIsvCode($isvCode) + { + $this->isvCode = $isvCode; + $this->apiParas["isv_code"] = $isvCode; + } + + public function getIsvCode() + { + return $this->isvCode; + } + + public function setOrgCode($orgCode) + { + $this->orgCode = $orgCode; + $this->apiParas["org_code"] = $orgCode; + } + + public function getOrgCode() + { + return $this->orgCode; + } + + public function setStart($start) + { + $this->start = $start; + $this->apiParas["start"] = $start; + } + + public function getStart() + { + return $this->start; + } + + public function getApiMethodName() + { + return "alipay.ecapiprod.drawndn.feerecord.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnLendingrecordQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnLendingrecordQueryRequest.php new file mode 100644 index 0000000..86683e5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnLendingrecordQueryRequest.php @@ -0,0 +1,214 @@ +drawndnNo = $drawndnNo; + $this->apiParas["drawndn_no"] = $drawndnNo; + } + + public function getDrawndnNo() + { + return $this->drawndnNo; + } + + public function setEnd($end) + { + $this->end = $end; + $this->apiParas["end"] = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setEntityCode($entityCode) + { + $this->entityCode = $entityCode; + $this->apiParas["entity_code"] = $entityCode; + } + + public function getEntityCode() + { + return $this->entityCode; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + $this->apiParas["entity_name"] = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setIsvCode($isvCode) + { + $this->isvCode = $isvCode; + $this->apiParas["isv_code"] = $isvCode; + } + + public function getIsvCode() + { + return $this->isvCode; + } + + public function setOrgCode($orgCode) + { + $this->orgCode = $orgCode; + $this->apiParas["org_code"] = $orgCode; + } + + public function getOrgCode() + { + return $this->orgCode; + } + + public function setStart($start) + { + $this->start = $start; + $this->apiParas["start"] = $start; + } + + public function getStart() + { + return $this->start; + } + + public function getApiMethodName() + { + return "alipay.ecapiprod.drawndn.lendingrecord.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnPaymentscheduleGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnPaymentscheduleGetRequest.php new file mode 100644 index 0000000..f0d3018 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnPaymentscheduleGetRequest.php @@ -0,0 +1,182 @@ +drawndnNo = $drawndnNo; + $this->apiParas["drawndn_no"] = $drawndnNo; + } + + public function getDrawndnNo() + { + return $this->drawndnNo; + } + + public function setEntityCode($entityCode) + { + $this->entityCode = $entityCode; + $this->apiParas["entity_code"] = $entityCode; + } + + public function getEntityCode() + { + return $this->entityCode; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + $this->apiParas["entity_name"] = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setIsvCode($isvCode) + { + $this->isvCode = $isvCode; + $this->apiParas["isv_code"] = $isvCode; + } + + public function getIsvCode() + { + return $this->isvCode; + } + + public function setOrgCode($orgCode) + { + $this->orgCode = $orgCode; + $this->apiParas["org_code"] = $orgCode; + } + + public function getOrgCode() + { + return $this->orgCode; + } + + public function getApiMethodName() + { + return "alipay.ecapiprod.drawndn.paymentschedule.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnRepaymentrecordQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnRepaymentrecordQueryRequest.php new file mode 100644 index 0000000..711689d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcapiprodDrawndnRepaymentrecordQueryRequest.php @@ -0,0 +1,214 @@ +drawndnNo = $drawndnNo; + $this->apiParas["drawndn_no"] = $drawndnNo; + } + + public function getDrawndnNo() + { + return $this->drawndnNo; + } + + public function setEnd($end) + { + $this->end = $end; + $this->apiParas["end"] = $end; + } + + public function getEnd() + { + return $this->end; + } + + public function setEntityCode($entityCode) + { + $this->entityCode = $entityCode; + $this->apiParas["entity_code"] = $entityCode; + } + + public function getEntityCode() + { + return $this->entityCode; + } + + public function setEntityName($entityName) + { + $this->entityName = $entityName; + $this->apiParas["entity_name"] = $entityName; + } + + public function getEntityName() + { + return $this->entityName; + } + + public function setIsvCode($isvCode) + { + $this->isvCode = $isvCode; + $this->apiParas["isv_code"] = $isvCode; + } + + public function getIsvCode() + { + return $this->isvCode; + } + + public function setOrgCode($orgCode) + { + $this->orgCode = $orgCode; + $this->apiParas["org_code"] = $orgCode; + } + + public function getOrgCode() + { + return $this->orgCode; + } + + public function setStart($start) + { + $this->start = $start; + $this->apiParas["start"] = $start; + } + + public function getStart() + { + return $this->start; + } + + public function getApiMethodName() + { + return "alipay.ecapiprod.drawndn.repaymentrecord.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcardEduPublicBindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcardEduPublicBindRequest.php new file mode 100644 index 0000000..f8c0d0a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcardEduPublicBindRequest.php @@ -0,0 +1,198 @@ +agentCode = $agentCode; + $this->apiParas["agent_code"] = $agentCode; + } + + public function getAgentCode() + { + return $this->agentCode; + } + + public function setAgreementId($agreementId) + { + $this->agreementId = $agreementId; + $this->apiParas["agreement_id"] = $agreementId; + } + + public function getAgreementId() + { + return $this->agreementId; + } + + public function setAlipayUserId($alipayUserId) + { + $this->alipayUserId = $alipayUserId; + $this->apiParas["alipay_user_id"] = $alipayUserId; + } + + public function getAlipayUserId() + { + return $this->alipayUserId; + } + + public function setCardName($cardName) + { + $this->cardName = $cardName; + $this->apiParas["card_name"] = $cardName; + } + + public function getCardName() + { + return $this->cardName; + } + + public function setCardNo($cardNo) + { + $this->cardNo = $cardNo; + $this->apiParas["card_no"] = $cardNo; + } + + public function getCardNo() + { + return $this->cardNo; + } + + public function setPublicId($publicId) + { + $this->publicId = $publicId; + $this->apiParas["public_id"] = $publicId; + } + + public function getPublicId() + { + return $this->publicId; + } + + public function getApiMethodName() + { + return "alipay.ecard.edu.public.bind"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBasicserviceInitializeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBasicserviceInitializeRequest.php new file mode 100644 index 0000000..e0bc87e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBasicserviceInitializeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.basicservice.initialize"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBasicserviceModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBasicserviceModifyRequest.php new file mode 100644 index 0000000..13cae31 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBasicserviceModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.basicservice.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillBatchUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillBatchUploadRequest.php new file mode 100644 index 0000000..ba859ec --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillBatchUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.bill.batch.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillBatchqueryRequest.php new file mode 100644 index 0000000..98c8aaa --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.bill.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillDeleteRequest.php new file mode 100644 index 0000000..0b23535 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.bill.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillModifyRequest.php new file mode 100644 index 0000000..a55b929 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.bill.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillSyncRequest.php new file mode 100644 index 0000000..d59b0c6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeBillSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.bill.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityBatchqueryRequest.php new file mode 100644 index 0000000..edf0f5e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.community.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityCreateRequest.php new file mode 100644 index 0000000..4c3781d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.community.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityDetailsQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityDetailsQueryRequest.php new file mode 100644 index 0000000..bba0d9c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityDetailsQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.community.details.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityModifyRequest.php new file mode 100644 index 0000000..df94d24 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeCommunityModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.community.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeNoticeDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeNoticeDeleteRequest.php new file mode 100644 index 0000000..0f1acb3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeNoticeDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.notice.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeNoticePublishRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeNoticePublishRequest.php new file mode 100644 index 0000000..b0ba9db --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeNoticePublishRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.notice.publish"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifePayResultQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifePayResultQueryRequest.php new file mode 100644 index 0000000..1e1e11a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifePayResultQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.pay.result.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRepairStatusUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRepairStatusUpdateRequest.php new file mode 100644 index 0000000..b3df64f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRepairStatusUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.repair.status.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeResidentinfoDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeResidentinfoDeleteRequest.php new file mode 100644 index 0000000..695832b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeResidentinfoDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.residentinfo.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeResidentinfoUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeResidentinfoUploadRequest.php new file mode 100644 index 0000000..a417963 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeResidentinfoUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.residentinfo.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoDeleteRequest.php new file mode 100644 index 0000000..4071480 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.roominfo.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoQueryRequest.php new file mode 100644 index 0000000..12f110c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.roominfo.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoUploadRequest.php new file mode 100644 index 0000000..2778831 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRoominfoUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.roominfo.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRooominfoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRooominfoQueryRequest.php new file mode 100644 index 0000000..4f13dff --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeRooominfoQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.rooominfo.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeUseridentityStatusUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeUseridentityStatusUpdateRequest.php new file mode 100644 index 0000000..7c4a274 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoCplifeUseridentityStatusUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.cplife.useridentity.status.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingModifyRequest.php new file mode 100644 index 0000000..0cc810f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.edu.kt.billing.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingQueryRequest.php new file mode 100644 index 0000000..00d768a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.edu.kt.billing.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingSendRequest.php new file mode 100644 index 0000000..e1394c9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtBillingSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.edu.kt.billing.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtSchoolinfoModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtSchoolinfoModifyRequest.php new file mode 100644 index 0000000..2cc0848 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtSchoolinfoModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.edu.kt.schoolinfo.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtStudentModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtStudentModifyRequest.php new file mode 100644 index 0000000..65c93b3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtStudentModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.edu.kt.student.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtStudentQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtStudentQueryRequest.php new file mode 100644 index 0000000..d91a73c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoEduKtStudentQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.edu.kt.student.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarCarlibInfoPushRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarCarlibInfoPushRequest.php new file mode 100644 index 0000000..b06cc28 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarCarlibInfoPushRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.carlib.info.push"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarCarmodelModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarCarmodelModifyRequest.php new file mode 100644 index 0000000..1f7d683 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarCarmodelModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.carmodel.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataExternalQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataExternalQueryRequest.php new file mode 100644 index 0000000..ff25b5d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataExternalQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.data.external.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataExternalSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataExternalSendRequest.php new file mode 100644 index 0000000..b8f3808 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataExternalSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.data.external.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataserviceMaintainvehicleShareRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataserviceMaintainvehicleShareRequest.php new file mode 100644 index 0000000..e5e4654 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataserviceMaintainvehicleShareRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.dataservice.maintainvehicle.share"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataserviceViolationinfoShareRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataserviceViolationinfoShareRequest.php new file mode 100644 index 0000000..b855ca4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarDataserviceViolationinfoShareRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.dataservice.violationinfo.share"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainDataUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainDataUpdateRequest.php new file mode 100644 index 0000000..48e6a37 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainDataUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.maintain.data.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainOrderCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainOrderCreateRequest.php new file mode 100644 index 0000000..34bc13c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainOrderCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.maintain.order.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainOrderstatusUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainOrderstatusUpdateRequest.php new file mode 100644 index 0000000..cf3b5d7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarMaintainOrderstatusUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.maintain.orderstatus.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarOrderRefundRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarOrderRefundRequest.php new file mode 100644 index 0000000..4bb97b9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarOrderRefundRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.order.refund"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarOrderStatusQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarOrderStatusQueryRequest.php new file mode 100644 index 0000000..a56dc20 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarOrderStatusQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.order.status.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingCardbarcodeCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingCardbarcodeCreateRequest.php new file mode 100644 index 0000000..cfdfd23 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingCardbarcodeCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.cardbarcode.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingConfigQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingConfigQueryRequest.php new file mode 100644 index 0000000..0481be4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingConfigQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.config.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingConfigSetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingConfigSetRequest.php new file mode 100644 index 0000000..fed8cf3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingConfigSetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.config.set"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingEnterinfoSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingEnterinfoSyncRequest.php new file mode 100644 index 0000000..20fd46d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingEnterinfoSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.enterinfo.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingExitinfoSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingExitinfoSyncRequest.php new file mode 100644 index 0000000..e022262 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingExitinfoSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.exitinfo.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingLotbarcodeCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingLotbarcodeCreateRequest.php new file mode 100644 index 0000000..aa7dd2d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingLotbarcodeCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.lotbarcode.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderSyncRequest.php new file mode 100644 index 0000000..3720d16 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.order.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderUpdateRequest.php new file mode 100644 index 0000000..ff3ed83 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.order.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderstatusQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderstatusQueryRequest.php new file mode 100644 index 0000000..d929d41 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingOrderstatusQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.orderstatus.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingParkinglotinfoCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingParkinglotinfoCreateRequest.php new file mode 100644 index 0000000..90eb861 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingParkinglotinfoCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.parkinglotinfo.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingParkinglotinfoUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingParkinglotinfoUpdateRequest.php new file mode 100644 index 0000000..0b7bfb6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingParkinglotinfoUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.parkinglotinfo.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingVehicleQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingVehicleQueryRequest.php new file mode 100644 index 0000000..e6d2147 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarParkingVehicleQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.parking.vehicle.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoTicketPushRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoTicketPushRequest.php new file mode 100644 index 0000000..01b13f2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoTicketPushRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.promo.ticket.push"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoTicketSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoTicketSyncRequest.php new file mode 100644 index 0000000..3e61618 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoTicketSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.promo.ticket.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoVoucherVerifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoVoucherVerifyRequest.php new file mode 100644 index 0000000..15d1ac0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarPromoVoucherVerifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.promo.voucher.verify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarTradeRefundRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarTradeRefundRequest.php new file mode 100644 index 0000000..c79acc6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarTradeRefundRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.trade.refund"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarViolationCityPushRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarViolationCityPushRequest.php new file mode 100644 index 0000000..cca2a2d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarViolationCityPushRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.violation.city.push"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarViolationInfoPushRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarViolationInfoPushRequest.php new file mode 100644 index 0000000..1a3878c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoMycarViolationInfoPushRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.mycar.violation.info.push"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoWelfareCodeSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoWelfareCodeSyncRequest.php new file mode 100644 index 0000000..05d6098 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayEcoWelfareCodeSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.eco.welfare.code.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserCurrentsignGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserCurrentsignGetRequest.php new file mode 100644 index 0000000..218e173 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserCurrentsignGetRequest.php @@ -0,0 +1,118 @@ +alipayId = $alipayId; + $this->apiParas["alipay_id"] = $alipayId; + } + + public function getAlipayId() + { + return $this->alipayId; + } + + public function getApiMethodName() + { + return "alipay.exsc.user.currentsign.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserFirstfundinpourGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserFirstfundinpourGetRequest.php new file mode 100644 index 0000000..4be980f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserFirstfundinpourGetRequest.php @@ -0,0 +1,118 @@ +alipayId = $alipayId; + $this->apiParas["alipay_id"] = $alipayId; + } + + public function getAlipayId() + { + return $this->alipayId; + } + + public function getApiMethodName() + { + return "alipay.exsc.user.firstfundinpour.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserFirstsignGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserFirstsignGetRequest.php new file mode 100644 index 0000000..380afbf --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayExscUserFirstsignGetRequest.php @@ -0,0 +1,118 @@ +alipayId = $alipayId; + $this->apiParas["alipay_id"] = $alipayId; + } + + public function getAlipayId() + { + return $this->alipayId; + } + + public function getApiMethodName() + { + return "alipay.exsc.user.firstsign.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFlashsalesStockSyncUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFlashsalesStockSyncUpdateRequest.php new file mode 100644 index 0000000..4fcba48 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFlashsalesStockSyncUpdateRequest.php @@ -0,0 +1,150 @@ +outProductId = $outProductId; + $this->apiParas["out_product_id"] = $outProductId; + } + + public function getOutProductId() + { + return $this->outProductId; + } + + public function setPublicId($publicId) + { + $this->publicId = $publicId; + $this->apiParas["public_id"] = $publicId; + } + + public function getPublicId() + { + return $this->publicId; + } + + public function setStock($stock) + { + $this->stock = $stock; + $this->apiParas["stock"] = $stock; + } + + public function getStock() + { + return $this->stock; + } + + public function getApiMethodName() + { + return "alipay.flashsales.stock.sync.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOperationCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOperationCancelRequest.php new file mode 100644 index 0000000..47fd6bd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOperationCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.auth.operation.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOperationDetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOperationDetailQueryRequest.php new file mode 100644 index 0000000..3df24b7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOperationDetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.auth.operation.detail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderFreezeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderFreezeRequest.php new file mode 100644 index 0000000..5692cb5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderFreezeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.auth.order.freeze"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderUnfreezeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderUnfreezeRequest.php new file mode 100644 index 0000000..43beac4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderUnfreezeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.auth.order.unfreeze"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderVoucherCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderVoucherCreateRequest.php new file mode 100644 index 0000000..e6383d2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundAuthOrderVoucherCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.auth.order.voucher.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOperationQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOperationQueryRequest.php new file mode 100644 index 0000000..5e44169 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOperationQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.coupon.operation.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderAgreementPayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderAgreementPayRequest.php new file mode 100644 index 0000000..7628c8a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderAgreementPayRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.coupon.order.agreement.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderAppPayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderAppPayRequest.php new file mode 100644 index 0000000..43354f5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderAppPayRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.coupon.order.app.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderDisburseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderDisburseRequest.php new file mode 100644 index 0000000..95b6ccd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderDisburseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.coupon.order.disburse"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderPagePayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderPagePayRequest.php new file mode 100644 index 0000000..d2151b9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderPagePayRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.coupon.order.page.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderRefundRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderRefundRequest.php new file mode 100644 index 0000000..2f6229a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundCouponOrderRefundRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.coupon.order.refund"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundTransOrderQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundTransOrderQueryRequest.php new file mode 100644 index 0000000..69486f7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundTransOrderQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.trans.order.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundTransToaccountTransferRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundTransToaccountTransferRequest.php new file mode 100644 index 0000000..0174a39 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayFundTransToaccountTransferRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.fund.trans.toaccount.transfer"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodCommonConsultRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodCommonConsultRequest.php new file mode 100644 index 0000000..e8c8276 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodCommonConsultRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.auto.autoinsprod.common.consult"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodEnquriyApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodEnquriyApplyRequest.php new file mode 100644 index 0000000..9c2ad09 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodEnquriyApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.auto.autoinsprod.enquriy.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodPolicyApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodPolicyApplyRequest.php new file mode 100644 index 0000000..4cd061a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodPolicyApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.auto.autoinsprod.policy.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodPolicyCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodPolicyCancelRequest.php new file mode 100644 index 0000000..378199f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodPolicyCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.auto.autoinsprod.policy.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodQuoteApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodQuoteApplyRequest.php new file mode 100644 index 0000000..1e2cc5c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodQuoteApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.auto.autoinsprod.quote.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodQuoteQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodQuoteQueryRequest.php new file mode 100644 index 0000000..7be36f5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodQuoteQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.auto.autoinsprod.quote.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodUserCertifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodUserCertifyRequest.php new file mode 100644 index 0000000..ceb6bee --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoAutoinsprodUserCertifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.auto.autoinsprod.user.certify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoCarSaveRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoCarSaveRequest.php new file mode 100644 index 0000000..6fc254a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsAutoCarSaveRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.auto.car.save"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationProductOfflineBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationProductOfflineBatchqueryRequest.php new file mode 100644 index 0000000..68c9538 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationProductOfflineBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.cooperation.product.offline.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationProductQrcodeApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationProductQrcodeApplyRequest.php new file mode 100644 index 0000000..5549a0f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationProductQrcodeApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.cooperation.product.qrcode.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationRegionQrcodeApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationRegionQrcodeApplyRequest.php new file mode 100644 index 0000000..2a2b0ea --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsCooperationRegionQrcodeApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.cooperation.region.qrcode.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneApplicationIssueConfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneApplicationIssueConfirmRequest.php new file mode 100644 index 0000000..7d1b6ce --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneApplicationIssueConfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.scene.application.issue.confirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneApplicationQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneApplicationQueryRequest.php new file mode 100644 index 0000000..aa8a400 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneApplicationQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.scene.application.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneCouponReceiveRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneCouponReceiveRequest.php new file mode 100644 index 0000000..c2f6e1e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneCouponReceiveRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.scene.coupon.receive"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneCouponSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneCouponSendRequest.php new file mode 100644 index 0000000..01d5995 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayInsSceneCouponSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.ins.scene.coupon.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMappprodAccountBindingSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMappprodAccountBindingSyncRequest.php new file mode 100644 index 0000000..7ffda95 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMappprodAccountBindingSyncRequest.php @@ -0,0 +1,134 @@ +extInfo = $extInfo; + $this->apiParas["ext_info"] = $extInfo; + } + + public function getExtInfo() + { + return $this->extInfo; + } + + public function setUserAccountNo($userAccountNo) + { + $this->userAccountNo = $userAccountNo; + $this->apiParas["user_account_no"] = $userAccountNo; + } + + public function getUserAccountNo() + { + return $this->userAccountNo; + } + + public function getApiMethodName() + { + return "alipay.mappprod.account.binding.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignActivityOfflineCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignActivityOfflineCreateRequest.php new file mode 100644 index 0000000..b27b9e6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignActivityOfflineCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.activity.offline.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignActivityOfflineTriggerRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignActivityOfflineTriggerRequest.php new file mode 100644 index 0000000..0f96426 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignActivityOfflineTriggerRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.activity.offline.trigger"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashCreateRequest.php new file mode 100644 index 0000000..c5b6767 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.cash.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashDetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashDetailQueryRequest.php new file mode 100644 index 0000000..e347bd0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashDetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.cash.detail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashListQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashListQueryRequest.php new file mode 100644 index 0000000..1b39647 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashListQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.cash.list.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashStatusModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashStatusModifyRequest.php new file mode 100644 index 0000000..7134da4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashStatusModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.cash.status.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashTriggerRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashTriggerRequest.php new file mode 100644 index 0000000..37055dd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCashTriggerRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.cash.trigger"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCertCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCertCreateRequest.php new file mode 100644 index 0000000..22d3d2f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignCertCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.cert.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetAppendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetAppendRequest.php new file mode 100644 index 0000000..5b9e9bf --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetAppendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.discount.budget.append"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetCreateRequest.php new file mode 100644 index 0000000..5b65b41 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.discount.budget.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetQueryRequest.php new file mode 100644 index 0000000..2d08e37 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountBudgetQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.discount.budget.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountOperateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountOperateRequest.php new file mode 100644 index 0000000..4090451 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountOperateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.discount.operate"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountQueryRequest.php new file mode 100644 index 0000000..31c179b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.discount.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountStatusUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountStatusUpdateRequest.php new file mode 100644 index 0000000..829ed65 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountStatusUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.discount.status.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountWhitelistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountWhitelistQueryRequest.php new file mode 100644 index 0000000..b7e4012 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountWhitelistQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.discount.whitelist.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountWhitelistUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountWhitelistUpdateRequest.php new file mode 100644 index 0000000..01fb256 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDiscountWhitelistUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.discount.whitelist.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampCreateRequest.php new file mode 100644 index 0000000..9ed048d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.drawcamp.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampQueryRequest.php new file mode 100644 index 0000000..b393cc2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.drawcamp.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampStatusUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampStatusUpdateRequest.php new file mode 100644 index 0000000..35aa45d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampStatusUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.drawcamp.status.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampTriggerRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampTriggerRequest.php new file mode 100644 index 0000000..79b420f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampTriggerRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.drawcamp.trigger"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampUpdateRequest.php new file mode 100644 index 0000000..22bc489 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.drawcamp.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampWhitelistCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampWhitelistCreateRequest.php new file mode 100644 index 0000000..80f3d37 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignDrawcampWhitelistCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.drawcamp.whitelist.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignPrizeAmountQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignPrizeAmountQueryRequest.php new file mode 100644 index 0000000..340af81 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCampaignPrizeAmountQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.campaign.prize.amount.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardActivateformQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardActivateformQueryRequest.php new file mode 100644 index 0000000..d848815 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardActivateformQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.activateform.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardActivateurlApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardActivateurlApplyRequest.php new file mode 100644 index 0000000..ec1d05b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardActivateurlApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.activateurl.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitCreateRequest.php new file mode 100644 index 0000000..40cde79 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.benefit.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitDeleteRequest.php new file mode 100644 index 0000000..7e1c63d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.benefit.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitModifyRequest.php new file mode 100644 index 0000000..b749809 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.benefit.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitQueryRequest.php new file mode 100644 index 0000000..6598d01 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardBenefitQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.benefit.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardConsumeSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardConsumeSyncRequest.php new file mode 100644 index 0000000..29ef9b5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardConsumeSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.consume.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardDeleteRequest.php new file mode 100644 index 0000000..e6bd6f2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardFormtemplateSetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardFormtemplateSetRequest.php new file mode 100644 index 0000000..3bdb3d3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardFormtemplateSetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.formtemplate.set"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardOpenRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardOpenRequest.php new file mode 100644 index 0000000..aa6800a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardOpenRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.open"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardQueryRequest.php new file mode 100644 index 0000000..9a07063 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateBatchqueryRequest.php new file mode 100644 index 0000000..1ee18a1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.template.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateCreateRequest.php new file mode 100644 index 0000000..706c6eb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.template.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateModifyRequest.php new file mode 100644 index 0000000..856ba3a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.template.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateQueryRequest.php new file mode 100644 index 0000000..2e30c86 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardTemplateQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.template.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardUpdateRequest.php new file mode 100644 index 0000000..4d95dfc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCardUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.card.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashlessvoucherTemplateCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashlessvoucherTemplateCreateRequest.php new file mode 100644 index 0000000..40ee02f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashlessvoucherTemplateCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cashlessvoucher.template.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashlessvoucherTemplateModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashlessvoucherTemplateModifyRequest.php new file mode 100644 index 0000000..5f579ac --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashlessvoucherTemplateModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cashlessvoucher.template.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashvoucherTemplateCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashvoucherTemplateCreateRequest.php new file mode 100644 index 0000000..8e0b28b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashvoucherTemplateCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cashvoucher.template.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashvoucherTemplateModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashvoucherTemplateModifyRequest.php new file mode 100644 index 0000000..bb0bb54 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCashvoucherTemplateModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cashvoucher.template.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseCreateRequest.php new file mode 100644 index 0000000..e280b9d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cdp.advertise.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseModifyRequest.php new file mode 100644 index 0000000..8a271d7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cdp.advertise.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseOperateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseOperateRequest.php new file mode 100644 index 0000000..baacde0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseOperateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cdp.advertise.operate"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseQueryRequest.php new file mode 100644 index 0000000..92e7e4f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cdp.advertise.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseReportQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseReportQueryRequest.php new file mode 100644 index 0000000..805b8dd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpAdvertiseReportQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cdp.advertise.report.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpRecommendQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpRecommendQueryRequest.php new file mode 100644 index 0000000..e67706e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingCdpRecommendQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.cdp.recommend.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingExchangevoucherUseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingExchangevoucherUseRequest.php new file mode 100644 index 0000000..d6acde9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingExchangevoucherUseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.exchangevoucher.use"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingFacetofaceDecodeUseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingFacetofaceDecodeUseRequest.php new file mode 100644 index 0000000..0349483 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingFacetofaceDecodeUseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.facetoface.decode.use"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieActivityCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieActivityCreateRequest.php new file mode 100644 index 0000000..e66ffd5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieActivityCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.activity.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieActivityQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieActivityQueryRequest.php new file mode 100644 index 0000000..fe4d96e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieActivityQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.activity.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieEditorQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieEditorQueryRequest.php new file mode 100644 index 0000000..66ddfad --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieEditorQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.editor.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieMemberCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieMemberCreateRequest.php new file mode 100644 index 0000000..3bf599e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieMemberCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.member.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesBatchqueryRequest.php new file mode 100644 index 0000000..8f8b640 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.sites.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesConfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesConfirmRequest.php new file mode 100644 index 0000000..86dcab6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesConfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.sites.confirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesCreateRequest.php new file mode 100644 index 0000000..0ff84be --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.sites.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesDeleteRequest.php new file mode 100644 index 0000000..bd6971a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.sites.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesQueryRequest.php new file mode 100644 index 0000000..53112e8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.sites.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesSyncRequest.php new file mode 100644 index 0000000..0d465e4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSitesSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.sites.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceBatchqueryRequest.php new file mode 100644 index 0000000..3409b8d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.space.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceCreateRequest.php new file mode 100644 index 0000000..f76ad8e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.space.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceQueryRequest.php new file mode 100644 index 0000000..51652e8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieSpaceQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.space.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateBatchqueryRequest.php new file mode 100644 index 0000000..249a391 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.template.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateQueryRequest.php new file mode 100644 index 0000000..0e19908 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.template.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateSendRequest.php new file mode 100644 index 0000000..e335aba --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingToolFengdieTemplateSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.tool.fengdie.template.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingUserulePidQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingUserulePidQueryRequest.php new file mode 100644 index 0000000..1f7e04e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingUserulePidQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.userule.pid.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherAuthSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherAuthSendRequest.php new file mode 100644 index 0000000..4932f0c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherAuthSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.auth.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherConfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherConfirmRequest.php new file mode 100644 index 0000000..c10df0d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherConfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.confirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherListQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherListQueryRequest.php new file mode 100644 index 0000000..e2379b5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherListQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.list.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherQueryRequest.php new file mode 100644 index 0000000..7e43e5d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherSendRequest.php new file mode 100644 index 0000000..19f4bd1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockCreateRequest.php new file mode 100644 index 0000000..3b45e86 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.stock.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockMatchRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockMatchRequest.php new file mode 100644 index 0000000..cc37762 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockMatchRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.stock.match"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockQueryRequest.php new file mode 100644 index 0000000..8437f4c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.stock.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockUseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockUseRequest.php new file mode 100644 index 0000000..5ae985a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherStockUseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.stock.use"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplateDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplateDeleteRequest.php new file mode 100644 index 0000000..235fb76 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplateDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.template.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplatedetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplatedetailQueryRequest.php new file mode 100644 index 0000000..63d1d52 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplatedetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.templatedetail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplatelistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplatelistQueryRequest.php new file mode 100644 index 0000000..265d802 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMarketingVoucherTemplatelistQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.marketing.voucher.templatelist.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMdataTagGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMdataTagGetRequest.php new file mode 100644 index 0000000..93030bb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMdataTagGetRequest.php @@ -0,0 +1,134 @@ +requiredTags = $requiredTags; + $this->apiParas["required_tags"] = $requiredTags; + } + + public function getRequiredTags() + { + return $this->requiredTags; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.mdata.tag.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardDeletecardRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardDeletecardRequest.php new file mode 100644 index 0000000..e1ba605 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardDeletecardRequest.php @@ -0,0 +1,209 @@ +bizSerialNo = $bizSerialNo; + $this->apiParas["biz_serial_no"] = $bizSerialNo; + } + + public function getBizSerialNo() + { + return $this->bizSerialNo; + } + + public function setCardMerchantInfo($cardMerchantInfo) + { + $this->cardMerchantInfo = $cardMerchantInfo; + $this->apiParas["card_merchant_info"] = $cardMerchantInfo; + } + + public function getCardMerchantInfo() + { + return $this->cardMerchantInfo; + } + + public function setExtInfo($extInfo) + { + $this->extInfo = $extInfo; + $this->apiParas["ext_info"] = $extInfo; + } + + public function getExtInfo() + { + return $this->extInfo; + } + + public function setExternalCardNo($externalCardNo) + { + $this->externalCardNo = $externalCardNo; + $this->apiParas["external_card_no"] = $externalCardNo; + } + + public function getExternalCardNo() + { + return $this->externalCardNo; + } + + public function setReasonCode($reasonCode) + { + $this->reasonCode = $reasonCode; + $this->apiParas["reason_code"] = $reasonCode; + } + + public function getReasonCode() + { + return $this->reasonCode; + } + + public function setRequestFrom($requestFrom) + { + $this->requestFrom = $requestFrom; + $this->apiParas["request_from"] = $requestFrom; + } + + public function getRequestFrom() + { + return $this->requestFrom; + } + + public function getApiMethodName() + { + return "alipay.member.card.deletecard"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardOpenRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardOpenRequest.php new file mode 100644 index 0000000..4e00351 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardOpenRequest.php @@ -0,0 +1,217 @@ +bizSerialNo = $bizSerialNo; + $this->apiParas["biz_serial_no"] = $bizSerialNo; + } + + public function getBizSerialNo() + { + return $this->bizSerialNo; + } + + public function setCardMerchantInfo($cardMerchantInfo) + { + $this->cardMerchantInfo = $cardMerchantInfo; + $this->apiParas["card_merchant_info"] = $cardMerchantInfo; + } + + public function getCardMerchantInfo() + { + return $this->cardMerchantInfo; + } + + public function setCardUserInfo($cardUserInfo) + { + $this->cardUserInfo = $cardUserInfo; + $this->apiParas["card_user_info"] = $cardUserInfo; + } + + public function getCardUserInfo() + { + return $this->cardUserInfo; + } + + public function setExtInfo($extInfo) + { + $this->extInfo = $extInfo; + $this->apiParas["ext_info"] = $extInfo; + } + + public function getExtInfo() + { + return $this->extInfo; + } + + public function setExternalCardNo($externalCardNo) + { + $this->externalCardNo = $externalCardNo; + $this->apiParas["external_card_no"] = $externalCardNo; + } + + public function getExternalCardNo() + { + return $this->externalCardNo; + } + + public function setRequestFrom($requestFrom) + { + $this->requestFrom = $requestFrom; + $this->apiParas["request_from"] = $requestFrom; + } + + public function getRequestFrom() + { + return $this->requestFrom; + } + + public function getApiMethodName() + { + return "alipay.member.card.open"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardQueryRequest.php new file mode 100644 index 0000000..c0ecdef --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCardQueryRequest.php @@ -0,0 +1,206 @@ +bizCardNo = $bizCardNo; + $this->apiParas["biz_card_no"] = $bizCardNo; + } + + public function getBizCardNo() + { + return $this->bizCardNo; + } + + public function setCardMerchantInfo($cardMerchantInfo) + { + $this->cardMerchantInfo = $cardMerchantInfo; + $this->apiParas["card_merchant_info"] = $cardMerchantInfo; + } + + public function getCardMerchantInfo() + { + return $this->cardMerchantInfo; + } + + public function setCardUserInfo($cardUserInfo) + { + $this->cardUserInfo = $cardUserInfo; + $this->apiParas["card_user_info"] = $cardUserInfo; + } + + public function getCardUserInfo() + { + return $this->cardUserInfo; + } + + public function setExtInfo($extInfo) + { + $this->extInfo = $extInfo; + $this->apiParas["ext_info"] = $extInfo; + } + + public function getExtInfo() + { + return $this->extInfo; + } + + public function setRequestFrom($requestFrom) + { + $this->requestFrom = $requestFrom; + $this->apiParas["request_from"] = $requestFrom; + } + + public function getRequestFrom() + { + return $this->requestFrom; + } + + public function getApiMethodName() + { + return "alipay.member.card.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberConsumeNotifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberConsumeNotifyRequest.php new file mode 100644 index 0000000..96a0a7e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberConsumeNotifyRequest.php @@ -0,0 +1,354 @@ +actPayAmount = $actPayAmount; + $this->apiParas["act_pay_amount"] = $actPayAmount; + } + + public function getActPayAmount() + { + return $this->actPayAmount; + } + + public function setBizCardNo($bizCardNo) + { + $this->bizCardNo = $bizCardNo; + $this->apiParas["biz_card_no"] = $bizCardNo; + } + + public function getBizCardNo() + { + return $this->bizCardNo; + } + + public function setCardInfo($cardInfo) + { + $this->cardInfo = $cardInfo; + $this->apiParas["card_info"] = $cardInfo; + } + + public function getCardInfo() + { + return $this->cardInfo; + } + + public function setExternalCardNo($externalCardNo) + { + $this->externalCardNo = $externalCardNo; + $this->apiParas["external_card_no"] = $externalCardNo; + } + + public function getExternalCardNo() + { + return $this->externalCardNo; + } + + public function setGainBenefitList($gainBenefitList) + { + $this->gainBenefitList = $gainBenefitList; + $this->apiParas["gain_benefit_list"] = $gainBenefitList; + } + + public function getGainBenefitList() + { + return $this->gainBenefitList; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setShopCode($shopCode) + { + $this->shopCode = $shopCode; + $this->apiParas["shop_code"] = $shopCode; + } + + public function getShopCode() + { + return $this->shopCode; + } + + public function setSwipeCertType($swipeCertType) + { + $this->swipeCertType = $swipeCertType; + $this->apiParas["swipe_cert_type"] = $swipeCertType; + } + + public function getSwipeCertType() + { + return $this->swipeCertType; + } + + public function setTradeAmount($tradeAmount) + { + $this->tradeAmount = $tradeAmount; + $this->apiParas["trade_amount"] = $tradeAmount; + } + + public function getTradeAmount() + { + return $this->tradeAmount; + } + + public function setTradeName($tradeName) + { + $this->tradeName = $tradeName; + $this->apiParas["trade_name"] = $tradeName; + } + + public function getTradeName() + { + return $this->tradeName; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->apiParas["trade_no"] = $tradeNo; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function setTradeTime($tradeTime) + { + $this->tradeTime = $tradeTime; + $this->apiParas["trade_time"] = $tradeTime; + } + + public function getTradeTime() + { + return $this->tradeTime; + } + + public function setTradeType($tradeType) + { + $this->tradeType = $tradeType; + $this->apiParas["trade_type"] = $tradeType; + } + + public function getTradeType() + { + return $this->tradeType; + } + + public function setUseBenefitList($useBenefitList) + { + $this->useBenefitList = $useBenefitList; + $this->apiParas["use_benefit_list"] = $useBenefitList; + } + + public function getUseBenefitList() + { + return $this->useBenefitList; + } + + public function getApiMethodName() + { + return "alipay.member.consume.notify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCouponQuerylistRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCouponQuerylistRequest.php new file mode 100644 index 0000000..c26f9be --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMemberCouponQuerylistRequest.php @@ -0,0 +1,198 @@ +merchantInfo = $merchantInfo; + $this->apiParas["merchant_info"] = $merchantInfo; + } + + public function getMerchantInfo() + { + return $this->merchantInfo; + } + + public function setPageNo($pageNo) + { + $this->pageNo = $pageNo; + $this->apiParas["page_no"] = $pageNo; + } + + public function getPageNo() + { + return $this->pageNo; + } + + public function setPageSize($pageSize) + { + $this->pageSize = $pageSize; + $this->apiParas["page_size"] = $pageSize; + } + + public function getPageSize() + { + return $this->pageSize; + } + + public function setStatus($status) + { + $this->status = $status; + $this->apiParas["status"] = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setUserInfo($userInfo) + { + $this->userInfo = $userInfo; + $this->apiParas["user_info"] = $userInfo; + } + + public function getUserInfo() + { + return $this->userInfo; + } + + public function getApiMethodName() + { + return "alipay.member.coupon.querylist"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderConfirmpayurlGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderConfirmpayurlGetRequest.php new file mode 100644 index 0000000..8048cd7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderConfirmpayurlGetRequest.php @@ -0,0 +1,182 @@ +alipayOrderNo = $alipayOrderNo; + $this->apiParas["alipay_order_no"] = $alipayOrderNo; + } + + public function getAlipayOrderNo() + { + return $this->alipayOrderNo; + } + + public function setAmount($amount) + { + $this->amount = $amount; + $this->apiParas["amount"] = $amount; + } + + public function getAmount() + { + return $this->amount; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setReceiveUserId($receiveUserId) + { + $this->receiveUserId = $receiveUserId; + $this->apiParas["receive_user_id"] = $receiveUserId; + } + + public function getReceiveUserId() + { + return $this->receiveUserId; + } + + public function setTransferOutOrderNo($transferOutOrderNo) + { + $this->transferOutOrderNo = $transferOutOrderNo; + $this->apiParas["transfer_out_order_no"] = $transferOutOrderNo; + } + + public function getTransferOutOrderNo() + { + return $this->transferOutOrderNo; + } + + public function getApiMethodName() + { + return "alipay.micropay.order.confirmpayurl.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderDirectPayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderDirectPayRequest.php new file mode 100644 index 0000000..4024293 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderDirectPayRequest.php @@ -0,0 +1,182 @@ +alipayOrderNo = $alipayOrderNo; + $this->apiParas["alipay_order_no"] = $alipayOrderNo; + } + + public function getAlipayOrderNo() + { + return $this->alipayOrderNo; + } + + public function setAmount($amount) + { + $this->amount = $amount; + $this->apiParas["amount"] = $amount; + } + + public function getAmount() + { + return $this->amount; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setReceiveUserId($receiveUserId) + { + $this->receiveUserId = $receiveUserId; + $this->apiParas["receive_user_id"] = $receiveUserId; + } + + public function getReceiveUserId() + { + return $this->receiveUserId; + } + + public function setTransferOutOrderNo($transferOutOrderNo) + { + $this->transferOutOrderNo = $transferOutOrderNo; + $this->apiParas["transfer_out_order_no"] = $transferOutOrderNo; + } + + public function getTransferOutOrderNo() + { + return $this->transferOutOrderNo; + } + + public function getApiMethodName() + { + return "alipay.micropay.order.direct.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderFreezeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderFreezeRequest.php new file mode 100644 index 0000000..5aaa785 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderFreezeRequest.php @@ -0,0 +1,182 @@ +amount = $amount; + $this->apiParas["amount"] = $amount; + } + + public function getAmount() + { + return $this->amount; + } + + public function setExpireTime($expireTime) + { + $this->expireTime = $expireTime; + $this->apiParas["expire_time"] = $expireTime; + } + + public function getExpireTime() + { + return $this->expireTime; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setMerchantOrderNo($merchantOrderNo) + { + $this->merchantOrderNo = $merchantOrderNo; + $this->apiParas["merchant_order_no"] = $merchantOrderNo; + } + + public function getMerchantOrderNo() + { + return $this->merchantOrderNo; + } + + public function setPayConfirm($payConfirm) + { + $this->payConfirm = $payConfirm; + $this->apiParas["pay_confirm"] = $payConfirm; + } + + public function getPayConfirm() + { + return $this->payConfirm; + } + + public function getApiMethodName() + { + return "alipay.micropay.order.freeze"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderFreezepayurlGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderFreezepayurlGetRequest.php new file mode 100644 index 0000000..38947e0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderFreezepayurlGetRequest.php @@ -0,0 +1,118 @@ +alipayOrderNo = $alipayOrderNo; + $this->apiParas["alipay_order_no"] = $alipayOrderNo; + } + + public function getAlipayOrderNo() + { + return $this->alipayOrderNo; + } + + public function getApiMethodName() + { + return "alipay.micropay.order.freezepayurl.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderGetRequest.php new file mode 100644 index 0000000..912bd09 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderGetRequest.php @@ -0,0 +1,118 @@ +alipayOrderNo = $alipayOrderNo; + $this->apiParas["alipay_order_no"] = $alipayOrderNo; + } + + public function getAlipayOrderNo() + { + return $this->alipayOrderNo; + } + + public function getApiMethodName() + { + return "alipay.micropay.order.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderUnfreezeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderUnfreezeRequest.php new file mode 100644 index 0000000..c4b35ad --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMicropayOrderUnfreezeRequest.php @@ -0,0 +1,134 @@ +alipayOrderNo = $alipayOrderNo; + $this->apiParas["alipay_order_no"] = $alipayOrderNo; + } + + public function getAlipayOrderNo() + { + return $this->alipayOrderNo; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function getApiMethodName() + { + return "alipay.micropay.order.unfreeze"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceAddRequest.php new file mode 100644 index 0000000..5740698 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceAddRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.beacon.device.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceDeleteRequest.php new file mode 100644 index 0000000..d55cdd1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.beacon.device.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceModifyRequest.php new file mode 100644 index 0000000..3514cd5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.beacon.device.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceQueryRequest.php new file mode 100644 index 0000000..47e7e4d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconDeviceQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.beacon.device.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconMessageSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconMessageSendRequest.php new file mode 100644 index 0000000..c43c8e3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBeaconMessageSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.beacon.message.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBksigntokenVerifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBksigntokenVerifyRequest.php new file mode 100644 index 0000000..60cf707 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileBksigntokenVerifyRequest.php @@ -0,0 +1,150 @@ +deviceid = $deviceid; + $this->apiParas["deviceid"] = $deviceid; + } + + public function getDeviceid() + { + return $this->deviceid; + } + + public function setSource($source) + { + $this->source = $source; + $this->apiParas["source"] = $source; + } + + public function getSource() + { + return $this->source; + } + + public function setToken($token) + { + $this->token = $token; + $this->apiParas["token"] = $token; + } + + public function getToken() + { + return $this->token; + } + + public function getApiMethodName() + { + return "alipay.mobile.bksigntoken.verify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileCodeCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileCodeCreateRequest.php new file mode 100644 index 0000000..de045c6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileCodeCreateRequest.php @@ -0,0 +1,247 @@ +bizLinkedId = $bizLinkedId; + $this->apiParas["biz_linked_id"] = $bizLinkedId; + } + + public function getBizLinkedId() + { + return $this->bizLinkedId; + } + + public function setBizType($bizType) + { + $this->bizType = $bizType; + $this->apiParas["biz_type"] = $bizType; + } + + public function getBizType() + { + return $this->bizType; + } + + public function setContextStr($contextStr) + { + $this->contextStr = $contextStr; + $this->apiParas["context_str"] = $contextStr; + } + + public function getContextStr() + { + return $this->contextStr; + } + + public function setIsDirect($isDirect) + { + $this->isDirect = $isDirect; + $this->apiParas["is_direct"] = $isDirect; + } + + public function getIsDirect() + { + return $this->isDirect; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setSourceId($sourceId) + { + $this->sourceId = $sourceId; + $this->apiParas["source_id"] = $sourceId; + } + + public function getSourceId() + { + return $this->sourceId; + } + + public function setStartDate($startDate) + { + $this->startDate = $startDate; + $this->apiParas["start_date"] = $startDate; + } + + public function getStartDate() + { + return $this->startDate; + } + + public function setTimeout($timeout) + { + $this->timeout = $timeout; + $this->apiParas["timeout"] = $timeout; + } + + public function getTimeout() + { + return $this->timeout; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.mobile.code.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileCodeQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileCodeQueryRequest.php new file mode 100644 index 0000000..dce8d12 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileCodeQueryRequest.php @@ -0,0 +1,118 @@ +qrToken = $qrToken; + $this->apiParas["qr_token"] = $qrToken; + } + + public function getQrToken() + { + return $this->qrToken; + } + + public function getApiMethodName() + { + return "alipay.mobile.code.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileDeviceinfoDynamicinfoAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileDeviceinfoDynamicinfoAddRequest.php new file mode 100644 index 0000000..ec85479 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileDeviceinfoDynamicinfoAddRequest.php @@ -0,0 +1,134 @@ +apdid = $apdid; + $this->apiParas["apdid"] = $apdid; + } + + public function getApdid() + { + return $this->apdid; + } + + public function setDynamicinfo($dynamicinfo) + { + $this->dynamicinfo = $dynamicinfo; + $this->apiParas["dynamicinfo"] = $dynamicinfo; + } + + public function getDynamicinfo() + { + return $this->dynamicinfo; + } + + public function getApiMethodName() + { + return "alipay.mobile.deviceinfo.dynamicinfo.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountAddRequest.php new file mode 100644 index 0000000..87fe8c5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountAddRequest.php @@ -0,0 +1,198 @@ +agreementId = $agreementId; + $this->apiParas["agreement_id"] = $agreementId; + } + + public function getAgreementId() + { + return $this->agreementId; + } + + public function setBindAccountNo($bindAccountNo) + { + $this->bindAccountNo = $bindAccountNo; + $this->apiParas["bind_account_no"] = $bindAccountNo; + } + + public function getBindAccountNo() + { + return $this->bindAccountNo; + } + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + $this->apiParas["display_name"] = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setFromUserId($fromUserId) + { + $this->fromUserId = $fromUserId; + $this->apiParas["from_user_id"] = $fromUserId; + } + + public function getFromUserId() + { + return $this->fromUserId; + } + + public function setRealName($realName) + { + $this->realName = $realName; + $this->apiParas["real_name"] = $realName; + } + + public function getRealName() + { + return $this->realName; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.account.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountDeleteRequest.php new file mode 100644 index 0000000..f5f0227 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.account.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountQueryRequest.php new file mode 100644 index 0000000..6deffcb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.account.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountResetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountResetRequest.php new file mode 100644 index 0000000..4dcc9db --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAccountResetRequest.php @@ -0,0 +1,198 @@ +agreementId = $agreementId; + $this->apiParas["agreement_id"] = $agreementId; + } + + public function getAgreementId() + { + return $this->agreementId; + } + + public function setBindAccountNo($bindAccountNo) + { + $this->bindAccountNo = $bindAccountNo; + $this->apiParas["bind_account_no"] = $bindAccountNo; + } + + public function getBindAccountNo() + { + return $this->bindAccountNo; + } + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function setDisplayName($displayName) + { + $this->displayName = $displayName; + $this->apiParas["display_name"] = $displayName; + } + + public function getDisplayName() + { + return $this->displayName; + } + + public function setFromUserId($fromUserId) + { + $this->fromUserId = $fromUserId; + $this->apiParas["from_user_id"] = $fromUserId; + } + + public function getFromUserId() + { + return $this->fromUserId; + } + + public function setRealName($realName) + { + $this->realName = $realName; + $this->apiParas["real_name"] = $realName; + } + + public function getRealName() + { + return $this->realName; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.account.reset"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAppinfoUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAppinfoUpdateRequest.php new file mode 100644 index 0000000..3e4a2e3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicAppinfoUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.appinfo.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicContactFollowListRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicContactFollowListRequest.php new file mode 100644 index 0000000..57d51a6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicContactFollowListRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicFollowListRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicFollowListRequest.php new file mode 100644 index 0000000..ed288eb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicFollowListRequest.php @@ -0,0 +1,119 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.follow.list"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicGisGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicGisGetRequest.php new file mode 100644 index 0000000..940daee --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicGisGetRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.gis.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicInfoModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicInfoModifyRequest.php new file mode 100644 index 0000000..aa84ce7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicInfoModifyRequest.php @@ -0,0 +1,230 @@ +appName = $appName; + $this->apiParas["app_name"] = $appName; + } + + public function getAppName() + { + return $this->appName; + } + + public function setAuthPic($authPic) + { + $this->authPic = $authPic; + $this->apiParas["auth_pic"] = $authPic; + } + + public function getAuthPic() + { + return $this->authPic; + } + + public function setLicenseUrl($licenseUrl) + { + $this->licenseUrl = $licenseUrl; + $this->apiParas["license_url"] = $licenseUrl; + } + + public function getLicenseUrl() + { + return $this->licenseUrl; + } + + public function setLogoUrl($logoUrl) + { + $this->logoUrl = $logoUrl; + $this->apiParas["logo_url"] = $logoUrl; + } + + public function getLogoUrl() + { + return $this->logoUrl; + } + + public function setPublicGreeting($publicGreeting) + { + $this->publicGreeting = $publicGreeting; + $this->apiParas["public_greeting"] = $publicGreeting; + } + + public function getPublicGreeting() + { + return $this->publicGreeting; + } + + public function setShopPic1($shopPic1) + { + $this->shopPic1 = $shopPic1; + $this->apiParas["shop_pic1"] = $shopPic1; + } + + public function getShopPic1() + { + return $this->shopPic1; + } + + public function setShopPic2($shopPic2) + { + $this->shopPic2 = $shopPic2; + $this->apiParas["shop_pic2"] = $shopPic2; + } + + public function getShopPic2() + { + return $this->shopPic2; + } + + public function setShopPic3($shopPic3) + { + $this->shopPic3 = $shopPic3; + $this->apiParas["shop_pic3"] = $shopPic3; + } + + public function getShopPic3() + { + return $this->shopPic3; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.info.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicInfoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicInfoQueryRequest.php new file mode 100644 index 0000000..0a7e8c0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicInfoQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelAddRequest.php new file mode 100644 index 0000000..70c57a7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelAddRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.label.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelDeleteRequest.php new file mode 100644 index 0000000..b5210f9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelDeleteRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.label.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelQueryRequest.php new file mode 100644 index 0000000..4898999 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelQueryRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.label.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUpdateRequest.php new file mode 100644 index 0000000..b71204e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUpdateRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.label.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserAddRequest.php new file mode 100644 index 0000000..ec1f3b7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserAddRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.label.user.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserDeleteRequest.php new file mode 100644 index 0000000..df99bab --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserDeleteRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.label.user.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserQueryRequest.php new file mode 100644 index 0000000..a34ba00 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicLabelUserQueryRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.label.user.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuAddRequest.php new file mode 100644 index 0000000..0583bc3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuAddRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.menu.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuDeleteRequest.php new file mode 100644 index 0000000..989acbb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.menu.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuGetRequest.php new file mode 100644 index 0000000..70500e7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuGetRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuQueryRequest.php new file mode 100644 index 0000000..8abaded --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUpdateRequest.php new file mode 100644 index 0000000..c920459 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUpdateRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.menu.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUserQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUserQueryRequest.php new file mode 100644 index 0000000..3d42684 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUserQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.menu.user.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUserUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUserUpdateRequest.php new file mode 100644 index 0000000..b300819 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMenuUserUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.menu.user.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageCustomSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageCustomSendRequest.php new file mode 100644 index 0000000..5be5359 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageCustomSendRequest.php @@ -0,0 +1,119 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.message.custom.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageLabelSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageLabelSendRequest.php new file mode 100644 index 0000000..20718b8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageLabelSendRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.message.label.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagePushRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagePushRequest.php new file mode 100644 index 0000000..f87ea5c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagePushRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.message.push"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageSingleSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageSingleSendRequest.php new file mode 100644 index 0000000..5aa8843 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageSingleSendRequest.php @@ -0,0 +1,119 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.message.single.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageTotalSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageTotalSendRequest.php new file mode 100644 index 0000000..6b82002 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessageTotalSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.message.total.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagebatchPushRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagebatchPushRequest.php new file mode 100644 index 0000000..6b5a99a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagebatchPushRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.messagebatch.push"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagespecifyPushRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagespecifyPushRequest.php new file mode 100644 index 0000000..91c483c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMessagespecifyPushRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.messagespecify.push"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMockListsmlistApiRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMockListsmlistApiRequest.php new file mode 100644 index 0000000..4955cda --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicMockListsmlistApiRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.mock.listsmlist.api"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicQrcodeCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicQrcodeCreateRequest.php new file mode 100644 index 0000000..6f0248a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicQrcodeCreateRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.qrcode.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicShortlinkCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicShortlinkCreateRequest.php new file mode 100644 index 0000000..1ae3b7f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicShortlinkCreateRequest.php @@ -0,0 +1,118 @@ +详情请见 + **/ + private $bizContent; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBizContent($bizContent) + { + $this->bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.shortlink.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicStdMockListsmlistApiRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicStdMockListsmlistApiRequest.php new file mode 100644 index 0000000..6612f39 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicStdMockListsmlistApiRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.std.mock.listsmlist.api"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageDeleteRequest.php new file mode 100644 index 0000000..148ecc6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageDeleteRequest.php @@ -0,0 +1,118 @@ +templateId = $templateId; + $this->apiParas["template_id"] = $templateId; + } + + public function getTemplateId() + { + return $this->templateId; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.template.message.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageGetRequest.php new file mode 100644 index 0000000..1fcfa7a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageGetRequest.php @@ -0,0 +1,118 @@ +templateId = $templateId; + $this->apiParas["template_id"] = $templateId; + } + + public function getTemplateId() + { + return $this->templateId; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.template.message.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageModifyRequest.php new file mode 100644 index 0000000..757189a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageModifyRequest.php @@ -0,0 +1,134 @@ +templateId = $templateId; + $this->apiParas["template_id"] = $templateId; + } + + public function getTemplateId() + { + return $this->templateId; + } + + public function setTradeSetting($tradeSetting) + { + $this->tradeSetting = $tradeSetting; + $this->apiParas["trade_setting"] = $tradeSetting; + } + + public function getTradeSetting() + { + return $this->tradeSetting; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.template.message.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageQueryRequest.php new file mode 100644 index 0000000..8e647bb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobilePublicTemplateMessageQueryRequest.php @@ -0,0 +1,134 @@ +template = $template; + $this->apiParas["template"] = $template; + } + + public function getTemplate() + { + return $this->template; + } + + public function setTemplateId($templateId) + { + $this->templateId = $templateId; + $this->apiParas["template_id"] = $templateId; + } + + public function getTemplateId() + { + return $this->templateId; + } + + public function getApiMethodName() + { + return "alipay.mobile.public.template.message.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileRecommendGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileRecommendGetRequest.php new file mode 100644 index 0000000..f969ca1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileRecommendGetRequest.php @@ -0,0 +1,182 @@ +extInfo = $extInfo; + $this->apiParas["ext_info"] = $extInfo; + } + + public function getExtInfo() + { + return $this->extInfo; + } + + public function setLimit($limit) + { + $this->limit = $limit; + $this->apiParas["limit"] = $limit; + } + + public function getLimit() + { + return $this->limit; + } + + public function setSceneId($sceneId) + { + $this->sceneId = $sceneId; + $this->apiParas["scene_id"] = $sceneId; + } + + public function getSceneId() + { + return $this->sceneId; + } + + public function setStartIdx($startIdx) + { + $this->startIdx = $startIdx; + $this->apiParas["start_idx"] = $startIdx; + } + + public function getStartIdx() + { + return $this->startIdx; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.mobile.recommend.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileShakeUserQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileShakeUserQueryRequest.php new file mode 100644 index 0000000..f6cc454 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileShakeUserQueryRequest.php @@ -0,0 +1,137 @@ +dynamicId = $dynamicId; + $this->apiParas["dynamic_id"] = $dynamicId; + } + + public function getDynamicId() + { + return $this->dynamicId; + } + + public function setDynamicIdType($dynamicIdType) + { + $this->dynamicIdType = $dynamicIdType; + $this->apiParas["dynamic_id_type"] = $dynamicIdType; + } + + public function getDynamicIdType() + { + return $this->dynamicIdType; + } + + public function getApiMethodName() + { + return "alipay.mobile.shake.user.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicAccountQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicAccountQueryRequest.php new file mode 100644 index 0000000..cb8aeac --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicAccountQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.std.public.account.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicExpressUserQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicExpressUserQueryRequest.php new file mode 100644 index 0000000..c975c80 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicExpressUserQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.std.public.express.user.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicFollowListRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicFollowListRequest.php new file mode 100644 index 0000000..9a1fecf --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicFollowListRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.std.public.follow.list"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicMenuQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicMenuQueryRequest.php new file mode 100644 index 0000000..7f6ef19 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicMenuQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicMessageCustomSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicMessageCustomSendRequest.php new file mode 100644 index 0000000..8a79e09 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMobileStdPublicMessageCustomSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mobile.std.public.message.custom.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMpointprodBenefitDetailGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMpointprodBenefitDetailGetRequest.php new file mode 100644 index 0000000..3765eda --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMpointprodBenefitDetailGetRequest.php @@ -0,0 +1,122 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.mpointprod.benefit.detail.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMsaasMediarecogVoiceMediaaudioUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMsaasMediarecogVoiceMediaaudioUploadRequest.php new file mode 100644 index 0000000..2e8a1e6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMsaasMediarecogVoiceMediaaudioUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.msaas.mediarecog.voice.mediaaudio.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMsaasPromotionCpainfoCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMsaasPromotionCpainfoCreateRequest.php new file mode 100644 index 0000000..00c7d39 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayMsaasPromotionCpainfoCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.msaas.promotion.cpainfo.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketApplyorderBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketApplyorderBatchqueryRequest.php new file mode 100644 index 0000000..8659128 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketApplyorderBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.applyorder.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemCreateRequest.php new file mode 100644 index 0000000..2693f2d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.item.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemModifyRequest.php new file mode 100644 index 0000000..055e575 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.item.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemStateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemStateRequest.php new file mode 100644 index 0000000..923d5fc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketItemStateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.item.state"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketLeadsBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketLeadsBatchqueryRequest.php new file mode 100644 index 0000000..00634ea --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketLeadsBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.leads.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketLeadsQrcodeQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketLeadsQrcodeQueryRequest.php new file mode 100644 index 0000000..d554038 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketLeadsQrcodeQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.leads.qrcode.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketMcommentQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketMcommentQueryRequest.php new file mode 100644 index 0000000..754cd89 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketMcommentQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.mcomment.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductBatchqueryRequest.php new file mode 100644 index 0000000..0a80c34 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.product.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductQuerydetailRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductQuerydetailRequest.php new file mode 100644 index 0000000..7ad4b67 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductQuerydetailRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.product.querydetail"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductUsedetailRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductUsedetailRequest.php new file mode 100644 index 0000000..9ee1f99 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketProductUsedetailRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketReportGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketReportGetRequest.php new file mode 100644 index 0000000..807d4bd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketReportGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.report.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketReporterrorCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketReporterrorCreateRequest.php new file mode 100644 index 0000000..c05fddf --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketReporterrorCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.reporterror.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumBindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumBindRequest.php new file mode 100644 index 0000000..e4067b3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumBindRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumCreateRequest.php new file mode 100644 index 0000000..1f09ee6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumCreateRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumDeleteRequest.php new file mode 100644 index 0000000..67d55b5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumDeleteRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumModifyRequest.php new file mode 100644 index 0000000..9882d39 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumModifyRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumQueryRequest.php new file mode 100644 index 0000000..7fb6242 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumUnbindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumUnbindRequest.php new file mode 100644 index 0000000..fe4d162 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAlbumUnbindRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopApplyorderCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopApplyorderCancelRequest.php new file mode 100644 index 0000000..7bc3bb0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopApplyorderCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.applyorder.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAssignstaffRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAssignstaffRequest.php new file mode 100644 index 0000000..332490b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopAssignstaffRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.assignstaff"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopBatchqueryRequest.php new file mode 100644 index 0000000..0b67f92 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopCategoryQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopCategoryQueryRequest.php new file mode 100644 index 0000000..6a147a6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopCategoryQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.category.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopCreateRequest.php new file mode 100644 index 0000000..d49024f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopDiscountQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopDiscountQueryRequest.php new file mode 100644 index 0000000..6f5fd20 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopDiscountQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.discount.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopModifyRequest.php new file mode 100644 index 0000000..2bde707 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopPublicBindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopPublicBindRequest.php new file mode 100644 index 0000000..229c85c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopPublicBindRequest.php @@ -0,0 +1,134 @@ +isAll = $isAll; + $this->apiParas["is_all"] = $isAll; + } + + public function getIsAll() + { + return $this->isAll; + } + + public function setShopIds($shopIds) + { + $this->shopIds = $shopIds; + $this->apiParas["shop_ids"] = $shopIds; + } + + public function getShopIds() + { + return $this->shopIds; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.public.bind"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopPublicUnbindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopPublicUnbindRequest.php new file mode 100644 index 0000000..a2babf8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopPublicUnbindRequest.php @@ -0,0 +1,134 @@ +isAll = $isAll; + $this->apiParas["is_all"] = $isAll; + } + + public function getIsAll() + { + return $this->isAll; + } + + public function setShopIds($shopIds) + { + $this->shopIds = $shopIds; + $this->apiParas["shop_ids"] = $shopIds; + } + + public function getShopIds() + { + return $this->shopIds; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.public.unbind"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopQuerydetailRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopQuerydetailRequest.php new file mode 100644 index 0000000..e9987b0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopQuerydetailRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.querydetail"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopSummaryBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopSummaryBatchqueryRequest.php new file mode 100644 index 0000000..ca7d316 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketShopSummaryBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.market.shop.summary.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherCodeUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherCodeUploadRequest.php new file mode 100644 index 0000000..bf423f1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherCodeUploadRequest.php @@ -0,0 +1,150 @@ +extendParams = $extendParams; + $this->apiParas["extend_params"] = $extendParams; + } + + public function getExtendParams() + { + return $this->extendParams; + } + + public function setFileCharset($fileCharset) + { + $this->fileCharset = $fileCharset; + $this->apiParas["file_charset"] = $fileCharset; + } + + public function getFileCharset() + { + return $this->fileCharset; + } + + public function setFileContent($fileContent) + { + $this->fileContent = $fileContent; + $this->apiParas["file_content"] = $fileContent; + } + + public function getFileContent() + { + return $this->fileContent; + } + + public function getApiMethodName() + { + return "alipay.offline.marketing.voucher.code.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherCreateRequest.php new file mode 100644 index 0000000..10f0572 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.marketing.voucher.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherModifyRequest.php new file mode 100644 index 0000000..830d23e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.marketing.voucher.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherOfflineRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherOfflineRequest.php new file mode 100644 index 0000000..07c3e30 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherOfflineRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.marketing.voucher.offline"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherStatusQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherStatusQueryRequest.php new file mode 100644 index 0000000..0399778 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherStatusQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.marketing.voucher.status.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherUseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherUseRequest.php new file mode 100644 index 0000000..8904877 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMarketingVoucherUseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.marketing.voucher.use"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageDownloadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageDownloadRequest.php new file mode 100644 index 0000000..b4d4fe0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageDownloadRequest.php @@ -0,0 +1,118 @@ +imageIds = $imageIds; + $this->apiParas["image_ids"] = $imageIds; + } + + public function getImageIds() + { + return $this->imageIds; + } + + public function getApiMethodName() + { + return "alipay.offline.material.image.download"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageModifyRequest.php new file mode 100644 index 0000000..698b02b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageModifyRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageQueryRequest.php new file mode 100644 index 0000000..5cc5a1f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageUploadRequest.php new file mode 100644 index 0000000..02cd093 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineMaterialImageUploadRequest.php @@ -0,0 +1,166 @@ +imageContent = $imageContent; + $this->apiParas["image_content"] = $imageContent; + } + + public function getImageContent() + { + return $this->imageContent; + } + + public function setImageName($imageName) + { + $this->imageName = $imageName; + $this->apiParas["image_name"] = $imageName; + } + + public function getImageName() + { + return $this->imageName; + } + + public function setImagePid($imagePid) + { + $this->imagePid = $imagePid; + $this->apiParas["image_pid"] = $imagePid; + } + + public function getImagePid() + { + return $this->imagePid; + } + + public function setImageType($imageType) + { + $this->imageType = $imageType; + $this->apiParas["image_type"] = $imageType; + } + + public function getImageType() + { + return $this->imageType; + } + + public function getApiMethodName() + { + return "alipay.offline.material.image.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderDishQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderDishQueryRequest.php new file mode 100644 index 0000000..983762a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderDishQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.provider.dish.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderEquipmentAuthQuerybypageRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderEquipmentAuthQuerybypageRequest.php new file mode 100644 index 0000000..082f37f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderEquipmentAuthQuerybypageRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.provider.equipment.auth.querybypage"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderEquipmentAuthRemoveRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderEquipmentAuthRemoveRequest.php new file mode 100644 index 0000000..312727d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderEquipmentAuthRemoveRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.provider.equipment.auth.remove"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderMonitorLogSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderMonitorLogSyncRequest.php new file mode 100644 index 0000000..9b29147 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderMonitorLogSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.provider.monitor.log.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderQuerystaffRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderQuerystaffRequest.php new file mode 100644 index 0000000..9ed2889 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderQuerystaffRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.provider.querystaff"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderShopactionRecordRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderShopactionRecordRequest.php new file mode 100644 index 0000000..ef5937b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderShopactionRecordRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.provider.shopaction.record"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderStaffUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderStaffUpdateRequest.php new file mode 100644 index 0000000..9fee290 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderStaffUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.provider.staff.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderUseractionRecordRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderUseractionRecordRequest.php new file mode 100644 index 0000000..23f1694 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineProviderUseractionRecordRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.provider.useraction.record"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsClaimstatusRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsClaimstatusRequest.php new file mode 100644 index 0000000..1ebe80d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsClaimstatusRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.saleleads.claimstatus"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsContractconfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsContractconfirmRequest.php new file mode 100644 index 0000000..5db8169 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsContractconfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.saleleads.contractconfirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsInfoAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsInfoAddRequest.php new file mode 100644 index 0000000..57687a3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsInfoAddRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.saleleads.info.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsInfoQuerybypageRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsInfoQuerybypageRequest.php new file mode 100644 index 0000000..dfac425 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsInfoQuerybypageRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.saleleads.info.querybypage"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsMerchantEquipmentQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsMerchantEquipmentQueryRequest.php new file mode 100644 index 0000000..2e642ea --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsMerchantEquipmentQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.saleleads.merchant.equipment.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsModifyRequest.php new file mode 100644 index 0000000..a26b277 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.saleleads.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsQuerybyidsRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsQuerybyidsRequest.php new file mode 100644 index 0000000..d3ca145 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOfflineSaleleadsQuerybyidsRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.offline.saleleads.querybyids"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentCancelRequest.php new file mode 100644 index 0000000..22480d0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.agent.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentConfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentConfirmRequest.php new file mode 100644 index 0000000..8ef9cd6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentConfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.agent.confirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentCreateRequest.php new file mode 100644 index 0000000..d07dd00 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.agent.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentFacetofaceSignRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentFacetofaceSignRequest.php new file mode 100644 index 0000000..2871ffa --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentFacetofaceSignRequest.php @@ -0,0 +1,266 @@ +商家经营类目 中的“经营类目编码” + **/ + private $mccCode; + + /** + * 店铺内景图片,最小50KB,图片格式必须为:png、bmp、gif、jpg、jpeg + **/ + private $shopScenePic; + + /** + * 店铺门头照图片,最小50KB,图片格式必须为:png、bmp、gif、jpg、jpeg + **/ + private $shopSignBoardPic; + + /** + * 企业特殊资质图片,可参考 +商家经营类目 中的“需要的特殊资质证书”,最小50KB,图片格式必须为:png、bmp、gif、jpg、jpeg + **/ + private $specialLicensePic; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setBatchNo($batchNo) + { + $this->batchNo = $batchNo; + $this->apiParas["batch_no"] = $batchNo; + } + + public function getBatchNo() + { + return $this->batchNo; + } + + public function setBusinessLicenseAuthPic($businessLicenseAuthPic) + { + $this->businessLicenseAuthPic = $businessLicenseAuthPic; + $this->apiParas["business_license_auth_pic"] = $businessLicenseAuthPic; + } + + public function getBusinessLicenseAuthPic() + { + return $this->businessLicenseAuthPic; + } + + public function setBusinessLicenseNo($businessLicenseNo) + { + $this->businessLicenseNo = $businessLicenseNo; + $this->apiParas["business_license_no"] = $businessLicenseNo; + } + + public function getBusinessLicenseNo() + { + return $this->businessLicenseNo; + } + + public function setBusinessLicensePic($businessLicensePic) + { + $this->businessLicensePic = $businessLicensePic; + $this->apiParas["business_license_pic"] = $businessLicensePic; + } + + public function getBusinessLicensePic() + { + return $this->businessLicensePic; + } + + public function setDateLimitation($dateLimitation) + { + $this->dateLimitation = $dateLimitation; + $this->apiParas["date_limitation"] = $dateLimitation; + } + + public function getDateLimitation() + { + return $this->dateLimitation; + } + + public function setLongTerm($longTerm) + { + $this->longTerm = $longTerm; + $this->apiParas["long_term"] = $longTerm; + } + + public function getLongTerm() + { + return $this->longTerm; + } + + public function setMccCode($mccCode) + { + $this->mccCode = $mccCode; + $this->apiParas["mcc_code"] = $mccCode; + } + + public function getMccCode() + { + return $this->mccCode; + } + + public function setShopScenePic($shopScenePic) + { + $this->shopScenePic = $shopScenePic; + $this->apiParas["shop_scene_pic"] = $shopScenePic; + } + + public function getShopScenePic() + { + return $this->shopScenePic; + } + + public function setShopSignBoardPic($shopSignBoardPic) + { + $this->shopSignBoardPic = $shopSignBoardPic; + $this->apiParas["shop_sign_board_pic"] = $shopSignBoardPic; + } + + public function getShopSignBoardPic() + { + return $this->shopSignBoardPic; + } + + public function setSpecialLicensePic($specialLicensePic) + { + $this->specialLicensePic = $specialLicensePic; + $this->apiParas["special_license_pic"] = $specialLicensePic; + } + + public function getSpecialLicensePic() + { + return $this->specialLicensePic; + } + + public function getApiMethodName() + { + return "alipay.open.agent.facetoface.sign"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentMiniCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentMiniCreateRequest.php new file mode 100644 index 0000000..46bdcdf --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentMiniCreateRequest.php @@ -0,0 +1,249 @@ +appCategoryIds = $appCategoryIds; + $this->apiParas["app_category_ids"] = $appCategoryIds; + } + + public function getAppCategoryIds() + { + return $this->appCategoryIds; + } + + public function setAppDesc($appDesc) + { + $this->appDesc = $appDesc; + $this->apiParas["app_desc"] = $appDesc; + } + + public function getAppDesc() + { + return $this->appDesc; + } + + public function setAppEnglishName($appEnglishName) + { + $this->appEnglishName = $appEnglishName; + $this->apiParas["app_english_name"] = $appEnglishName; + } + + public function getAppEnglishName() + { + return $this->appEnglishName; + } + + public function setAppLogo($appLogo) + { + $this->appLogo = $appLogo; + $this->apiParas["app_logo"] = $appLogo; + } + + public function getAppLogo() + { + return $this->appLogo; + } + + public function setAppName($appName) + { + $this->appName = $appName; + $this->apiParas["app_name"] = $appName; + } + + public function getAppName() + { + return $this->appName; + } + + public function setAppSlogan($appSlogan) + { + $this->appSlogan = $appSlogan; + $this->apiParas["app_slogan"] = $appSlogan; + } + + public function getAppSlogan() + { + return $this->appSlogan; + } + + public function setBatchNo($batchNo) + { + $this->batchNo = $batchNo; + $this->apiParas["batch_no"] = $batchNo; + } + + public function getBatchNo() + { + return $this->batchNo; + } + + public function setServiceEmail($serviceEmail) + { + $this->serviceEmail = $serviceEmail; + $this->apiParas["service_email"] = $serviceEmail; + } + + public function getServiceEmail() + { + return $this->serviceEmail; + } + + public function setServicePhone($servicePhone) + { + $this->servicePhone = $servicePhone; + $this->apiParas["service_phone"] = $servicePhone; + } + + public function getServicePhone() + { + return $this->servicePhone; + } + + public function getApiMethodName() + { + return "alipay.open.agent.mini.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentMobilepaySignRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentMobilepaySignRequest.php new file mode 100644 index 0000000..19713e9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentMobilepaySignRequest.php @@ -0,0 +1,266 @@ +商家经营类目 中的“经营类目编码” + **/ + private $mccCode; + + /** + * 企业特殊资质图片,可参考 +商家经营类目 中的“需要的特殊资质证书”,最小50KB,图片格式必须为:png、bmp、gif、jpg、jpeg + **/ + private $specialLicensePic; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setAppDemo($appDemo) + { + $this->appDemo = $appDemo; + $this->apiParas["app_demo"] = $appDemo; + } + + public function getAppDemo() + { + return $this->appDemo; + } + + public function setAppName($appName) + { + $this->appName = $appName; + $this->apiParas["app_name"] = $appName; + } + + public function getAppName() + { + return $this->appName; + } + + public function setBatchNo($batchNo) + { + $this->batchNo = $batchNo; + $this->apiParas["batch_no"] = $batchNo; + } + + public function getBatchNo() + { + return $this->batchNo; + } + + public function setBusinessLicenseAuthPic($businessLicenseAuthPic) + { + $this->businessLicenseAuthPic = $businessLicenseAuthPic; + $this->apiParas["business_license_auth_pic"] = $businessLicenseAuthPic; + } + + public function getBusinessLicenseAuthPic() + { + return $this->businessLicenseAuthPic; + } + + public function setBusinessLicenseNo($businessLicenseNo) + { + $this->businessLicenseNo = $businessLicenseNo; + $this->apiParas["business_license_no"] = $businessLicenseNo; + } + + public function getBusinessLicenseNo() + { + return $this->businessLicenseNo; + } + + public function setBusinessLicensePic($businessLicensePic) + { + $this->businessLicensePic = $businessLicensePic; + $this->apiParas["business_license_pic"] = $businessLicensePic; + } + + public function getBusinessLicensePic() + { + return $this->businessLicensePic; + } + + public function setDateLimitation($dateLimitation) + { + $this->dateLimitation = $dateLimitation; + $this->apiParas["date_limitation"] = $dateLimitation; + } + + public function getDateLimitation() + { + return $this->dateLimitation; + } + + public function setLongTerm($longTerm) + { + $this->longTerm = $longTerm; + $this->apiParas["long_term"] = $longTerm; + } + + public function getLongTerm() + { + return $this->longTerm; + } + + public function setMccCode($mccCode) + { + $this->mccCode = $mccCode; + $this->apiParas["mcc_code"] = $mccCode; + } + + public function getMccCode() + { + return $this->mccCode; + } + + public function setSpecialLicensePic($specialLicensePic) + { + $this->specialLicensePic = $specialLicensePic; + $this->apiParas["special_license_pic"] = $specialLicensePic; + } + + public function getSpecialLicensePic() + { + return $this->specialLicensePic; + } + + public function getApiMethodName() + { + return "alipay.open.agent.mobilepay.sign"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentOrderQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentOrderQueryRequest.php new file mode 100644 index 0000000..457698a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentOrderQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.agent.order.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentZhimabriefSignRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentZhimabriefSignRequest.php new file mode 100644 index 0000000..169f230 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAgentZhimabriefSignRequest.php @@ -0,0 +1,426 @@ +商家经营类目 中的“经营类目编码” + **/ + private $mccCode; + + /** + * 异议处理接口人 + **/ + private $ohContact; + + /** + * 用户服务联动机制接口人 + **/ + private $prContact; + + /** + * 企业特殊资质图片,可参考 +商家经营类目 中的“需要的特殊资质证书”,最小50KB,图片格式必须为:png、bmp、gif、jpg、jpeg + **/ + private $specialLicensePic; + + /** + * 使用场景描述,签约芝麻信用产品的用途,可选值:"现金放贷","其他", "消费分期(例如买房、装修等)", "融资租赁", "发放信用卡", "极速返利", "押金减免", "先用后付", "社交场景信用互查", "会员分层信用参考" + **/ + private $usageScene; + + /** + * 接入网址信息(1 app_name、app_demo;2 web_sites;3 alipay_life_name;4 wechat_official_account_name。1、2、3、4至少选择一个填写) + **/ + private $webSites; + + /** + * 微信公众号名称(1 app_name、app_demo;2 web_sites;3 alipay_life_name;4 wechat_official_account_name。1、2、3、4至少选择一个填写) + **/ + private $wechatOfficialAccountName; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setAlipayLifeName($alipayLifeName) + { + $this->alipayLifeName = $alipayLifeName; + $this->apiParas["alipay_life_name"] = $alipayLifeName; + } + + public function getAlipayLifeName() + { + return $this->alipayLifeName; + } + + public function setAppDemo($appDemo) + { + $this->appDemo = $appDemo; + $this->apiParas["app_demo"] = $appDemo; + } + + public function getAppDemo() + { + return $this->appDemo; + } + + public function setAppName($appName) + { + $this->appName = $appName; + $this->apiParas["app_name"] = $appName; + } + + public function getAppName() + { + return $this->appName; + } + + public function setBatchNo($batchNo) + { + $this->batchNo = $batchNo; + $this->apiParas["batch_no"] = $batchNo; + } + + public function getBatchNo() + { + return $this->batchNo; + } + + public function setBusinessLicenseAuthPic($businessLicenseAuthPic) + { + $this->businessLicenseAuthPic = $businessLicenseAuthPic; + $this->apiParas["business_license_auth_pic"] = $businessLicenseAuthPic; + } + + public function getBusinessLicenseAuthPic() + { + return $this->businessLicenseAuthPic; + } + + public function setBusinessLicenseNo($businessLicenseNo) + { + $this->businessLicenseNo = $businessLicenseNo; + $this->apiParas["business_license_no"] = $businessLicenseNo; + } + + public function getBusinessLicenseNo() + { + return $this->businessLicenseNo; + } + + public function setBusinessLicensePic($businessLicensePic) + { + $this->businessLicensePic = $businessLicensePic; + $this->apiParas["business_license_pic"] = $businessLicensePic; + } + + public function getBusinessLicensePic() + { + return $this->businessLicensePic; + } + + public function setCustomUsageScene($customUsageScene) + { + $this->customUsageScene = $customUsageScene; + $this->apiParas["custom_usage_scene"] = $customUsageScene; + } + + public function getCustomUsageScene() + { + return $this->customUsageScene; + } + + public function setDateLimitation($dateLimitation) + { + $this->dateLimitation = $dateLimitation; + $this->apiParas["date_limitation"] = $dateLimitation; + } + + public function getDateLimitation() + { + return $this->dateLimitation; + } + + public function setDrContact($drContact) + { + $this->drContact = $drContact; + $this->apiParas["dr_contact"] = $drContact; + } + + public function getDrContact() + { + return $this->drContact; + } + + public function setEnterpriseAlias($enterpriseAlias) + { + $this->enterpriseAlias = $enterpriseAlias; + $this->apiParas["enterprise_alias"] = $enterpriseAlias; + } + + public function getEnterpriseAlias() + { + return $this->enterpriseAlias; + } + + public function setEnterpriseLogo($enterpriseLogo) + { + $this->enterpriseLogo = $enterpriseLogo; + $this->apiParas["enterprise_logo"] = $enterpriseLogo; + } + + public function getEnterpriseLogo() + { + return $this->enterpriseLogo; + } + + public function setLongTerm($longTerm) + { + $this->longTerm = $longTerm; + $this->apiParas["long_term"] = $longTerm; + } + + public function getLongTerm() + { + return $this->longTerm; + } + + public function setMccCode($mccCode) + { + $this->mccCode = $mccCode; + $this->apiParas["mcc_code"] = $mccCode; + } + + public function getMccCode() + { + return $this->mccCode; + } + + public function setOhContact($ohContact) + { + $this->ohContact = $ohContact; + $this->apiParas["oh_contact"] = $ohContact; + } + + public function getOhContact() + { + return $this->ohContact; + } + + public function setPrContact($prContact) + { + $this->prContact = $prContact; + $this->apiParas["pr_contact"] = $prContact; + } + + public function getPrContact() + { + return $this->prContact; + } + + public function setSpecialLicensePic($specialLicensePic) + { + $this->specialLicensePic = $specialLicensePic; + $this->apiParas["special_license_pic"] = $specialLicensePic; + } + + public function getSpecialLicensePic() + { + return $this->specialLicensePic; + } + + public function setUsageScene($usageScene) + { + $this->usageScene = $usageScene; + $this->apiParas["usage_scene"] = $usageScene; + } + + public function getUsageScene() + { + return $this->usageScene; + } + + public function setWebSites($webSites) + { + $this->webSites = $webSites; + $this->apiParas["web_sites"] = $webSites; + } + + public function getWebSites() + { + return $this->webSites; + } + + public function setWechatOfficialAccountName($wechatOfficialAccountName) + { + $this->wechatOfficialAccountName = $wechatOfficialAccountName; + $this->apiParas["wechat_official_account_name"] = $wechatOfficialAccountName; + } + + public function getWechatOfficialAccountName() + { + return $this->wechatOfficialAccountName; + } + + public function getApiMethodName() + { + return "alipay.open.agent.zhimabrief.sign"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppCodetesttestRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppCodetesttestRequest.php new file mode 100644 index 0000000..6b8440e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppCodetesttestRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.codetesttest"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppLingjiuyisiCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppLingjiuyisiCreateRequest.php new file mode 100644 index 0000000..867c062 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppLingjiuyisiCreateRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppLingjiuyiwuBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppLingjiuyiwuBatchqueryRequest.php new file mode 100644 index 0000000..c9bc8b9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppLingjiuyiwuBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersCreateRequest.php new file mode 100644 index 0000000..58a68eb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.members.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersDeleteRequest.php new file mode 100644 index 0000000..57be584 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.members.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersQueryRequest.php new file mode 100644 index 0000000..bad9e2c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMembersQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.members.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMiniTemplatemessageSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMiniTemplatemessageSendRequest.php new file mode 100644 index 0000000..295b709 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppMiniTemplatemessageSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.mini.templatemessage.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppNotifyVerifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppNotifyVerifyRequest.php new file mode 100644 index 0000000..eae0b11 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppNotifyVerifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.notify.verify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppPackagetestRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppPackagetestRequest.php new file mode 100644 index 0000000..8932140 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppPackagetestRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.packagetest"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppQrcodeCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppQrcodeCreateRequest.php new file mode 100644 index 0000000..d7652fe --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppQrcodeCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.qrcode.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppSmgMsgSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppSmgMsgSendRequest.php new file mode 100644 index 0000000..f20211b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppSmgMsgSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.smg.msg.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppSmsgDataSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppSmsgDataSyncRequest.php new file mode 100644 index 0000000..96db08b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppSmsgDataSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.smsg.data.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppXwbtestabcQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppXwbtestabcQueryRequest.php new file mode 100644 index 0000000..3551862 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppXwbtestabcQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.xwbtestabc.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppYiyiyiwuQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppYiyiyiwuQueryRequest.php new file mode 100644 index 0000000..a98089b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppYiyiyiwuQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.yiyiyiwu.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppYufanlingsanyaowuYufalingsanyaowuQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppYufanlingsanyaowuYufalingsanyaowuQueryRequest.php new file mode 100644 index 0000000..7b6304e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAppYufanlingsanyaowuYufalingsanyaowuQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.app.yufanlingsanyaowu.yufalingsanyaowu.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthIndustryPlatformCreateTokenRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthIndustryPlatformCreateTokenRequest.php new file mode 100644 index 0000000..da47bb5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthIndustryPlatformCreateTokenRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.auth.industry.platform.create.token"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthTokenAppQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthTokenAppQueryRequest.php new file mode 100644 index 0000000..df54193 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthTokenAppQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.auth.token.app.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthTokenAppRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthTokenAppRequest.php new file mode 100644 index 0000000..a1f6d8b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenAuthTokenAppRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.auth.token.app"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenEchoSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenEchoSendRequest.php new file mode 100644 index 0000000..4499682 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenEchoSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.echo.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniBaseinfoModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniBaseinfoModifyRequest.php new file mode 100644 index 0000000..641403c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniBaseinfoModifyRequest.php @@ -0,0 +1,230 @@ +appCategoryIds = $appCategoryIds; + $this->apiParas["app_category_ids"] = $appCategoryIds; + } + + public function getAppCategoryIds() + { + return $this->appCategoryIds; + } + + public function setAppDesc($appDesc) + { + $this->appDesc = $appDesc; + $this->apiParas["app_desc"] = $appDesc; + } + + public function getAppDesc() + { + return $this->appDesc; + } + + public function setAppEnglishName($appEnglishName) + { + $this->appEnglishName = $appEnglishName; + $this->apiParas["app_english_name"] = $appEnglishName; + } + + public function getAppEnglishName() + { + return $this->appEnglishName; + } + + public function setAppLogo($appLogo) + { + $this->appLogo = $appLogo; + $this->apiParas["app_logo"] = $appLogo; + } + + public function getAppLogo() + { + return $this->appLogo; + } + + public function setAppName($appName) + { + $this->appName = $appName; + $this->apiParas["app_name"] = $appName; + } + + public function getAppName() + { + return $this->appName; + } + + public function setAppSlogan($appSlogan) + { + $this->appSlogan = $appSlogan; + $this->apiParas["app_slogan"] = $appSlogan; + } + + public function getAppSlogan() + { + return $this->appSlogan; + } + + public function setServiceEmail($serviceEmail) + { + $this->serviceEmail = $serviceEmail; + $this->apiParas["service_email"] = $serviceEmail; + } + + public function getServiceEmail() + { + return $this->serviceEmail; + } + + public function setServicePhone($servicePhone) + { + $this->servicePhone = $servicePhone; + $this->apiParas["service_phone"] = $servicePhone; + } + + public function getServicePhone() + { + return $this->servicePhone; + } + + public function getApiMethodName() + { + return "alipay.open.mini.baseinfo.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniBaseinfoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniBaseinfoQueryRequest.php new file mode 100644 index 0000000..9653377 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniBaseinfoQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceCancelRequest.php new file mode 100644 index 0000000..1257e31 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.experience.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceCreateRequest.php new file mode 100644 index 0000000..b74e625 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.experience.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceQueryRequest.php new file mode 100644 index 0000000..47fb760 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniExperienceQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.experience.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniSafedomainCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniSafedomainCreateRequest.php new file mode 100644 index 0000000..bcc27cf --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniSafedomainCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.safedomain.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniSafedomainDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniSafedomainDeleteRequest.php new file mode 100644 index 0000000..a1f2314 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniSafedomainDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.safedomain.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniTemplateUsageQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniTemplateUsageQueryRequest.php new file mode 100644 index 0000000..488d870 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniTemplateUsageQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.template.usage.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniTemplatemessageUsertemplateApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniTemplatemessageUsertemplateApplyRequest.php new file mode 100644 index 0000000..83e2cc0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniTemplatemessageUsertemplateApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.templatemessage.usertemplate.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionAuditApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionAuditApplyRequest.php new file mode 100644 index 0000000..2e22905 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionAuditApplyRequest.php @@ -0,0 +1,390 @@ +appCategoryIds = $appCategoryIds; + $this->apiParas["app_category_ids"] = $appCategoryIds; + } + + public function getAppCategoryIds() + { + return $this->appCategoryIds; + } + + public function setAppDesc($appDesc) + { + $this->appDesc = $appDesc; + $this->apiParas["app_desc"] = $appDesc; + } + + public function getAppDesc() + { + return $this->appDesc; + } + + public function setAppEnglishName($appEnglishName) + { + $this->appEnglishName = $appEnglishName; + $this->apiParas["app_english_name"] = $appEnglishName; + } + + public function getAppEnglishName() + { + return $this->appEnglishName; + } + + public function setAppLogo($appLogo) + { + $this->appLogo = $appLogo; + $this->apiParas["app_logo"] = $appLogo; + } + + public function getAppLogo() + { + return $this->appLogo; + } + + public function setAppName($appName) + { + $this->appName = $appName; + $this->apiParas["app_name"] = $appName; + } + + public function getAppName() + { + return $this->appName; + } + + public function setAppSlogan($appSlogan) + { + $this->appSlogan = $appSlogan; + $this->apiParas["app_slogan"] = $appSlogan; + } + + public function getAppSlogan() + { + return $this->appSlogan; + } + + public function setAppVersion($appVersion) + { + $this->appVersion = $appVersion; + $this->apiParas["app_version"] = $appVersion; + } + + public function getAppVersion() + { + return $this->appVersion; + } + + public function setFifthScreenShot($fifthScreenShot) + { + $this->fifthScreenShot = $fifthScreenShot; + $this->apiParas["fifth_screen_shot"] = $fifthScreenShot; + } + + public function getFifthScreenShot() + { + return $this->fifthScreenShot; + } + + public function setFirstScreenShot($firstScreenShot) + { + $this->firstScreenShot = $firstScreenShot; + $this->apiParas["first_screen_shot"] = $firstScreenShot; + } + + public function getFirstScreenShot() + { + return $this->firstScreenShot; + } + + public function setFourthScreenShot($fourthScreenShot) + { + $this->fourthScreenShot = $fourthScreenShot; + $this->apiParas["fourth_screen_shot"] = $fourthScreenShot; + } + + public function getFourthScreenShot() + { + return $this->fourthScreenShot; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setRegionType($regionType) + { + $this->regionType = $regionType; + $this->apiParas["region_type"] = $regionType; + } + + public function getRegionType() + { + return $this->regionType; + } + + public function setSecondScreenShot($secondScreenShot) + { + $this->secondScreenShot = $secondScreenShot; + $this->apiParas["second_screen_shot"] = $secondScreenShot; + } + + public function getSecondScreenShot() + { + return $this->secondScreenShot; + } + + public function setServiceEmail($serviceEmail) + { + $this->serviceEmail = $serviceEmail; + $this->apiParas["service_email"] = $serviceEmail; + } + + public function getServiceEmail() + { + return $this->serviceEmail; + } + + public function setServicePhone($servicePhone) + { + $this->servicePhone = $servicePhone; + $this->apiParas["service_phone"] = $servicePhone; + } + + public function getServicePhone() + { + return $this->servicePhone; + } + + public function setServiceRegionInfo($serviceRegionInfo) + { + $this->serviceRegionInfo = $serviceRegionInfo; + $this->apiParas["service_region_info"] = $serviceRegionInfo; + } + + public function getServiceRegionInfo() + { + return $this->serviceRegionInfo; + } + + public function setThirdScreenShot($thirdScreenShot) + { + $this->thirdScreenShot = $thirdScreenShot; + $this->apiParas["third_screen_shot"] = $thirdScreenShot; + } + + public function getThirdScreenShot() + { + return $this->thirdScreenShot; + } + + public function setVersionDesc($versionDesc) + { + $this->versionDesc = $versionDesc; + $this->apiParas["version_desc"] = $versionDesc; + } + + public function getVersionDesc() + { + return $this->versionDesc; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.audit.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionAuditedCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionAuditedCancelRequest.php new file mode 100644 index 0000000..fce0f4b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionAuditedCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.audited.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionBuildQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionBuildQueryRequest.php new file mode 100644 index 0000000..010f60c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionBuildQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.build.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionDeleteRequest.php new file mode 100644 index 0000000..79cea00 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionDetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionDetailQueryRequest.php new file mode 100644 index 0000000..4e707f9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionDetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.detail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionGrayCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionGrayCancelRequest.php new file mode 100644 index 0000000..ccc6166 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionGrayCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.gray.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionGrayOnlineRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionGrayOnlineRequest.php new file mode 100644 index 0000000..7c2972f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionGrayOnlineRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.gray.online"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionListQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionListQueryRequest.php new file mode 100644 index 0000000..bc9aff9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionListQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionOfflineRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionOfflineRequest.php new file mode 100644 index 0000000..18f07a3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionOfflineRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.offline"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionOnlineRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionOnlineRequest.php new file mode 100644 index 0000000..ca7876b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionOnlineRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.online"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionRollbackRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionRollbackRequest.php new file mode 100644 index 0000000..c67348d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionRollbackRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.rollback"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionUploadRequest.php new file mode 100644 index 0000000..6d9ae4c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenMiniVersionUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.mini.version.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountCreateRequest.php new file mode 100644 index 0000000..034212a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.account.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountDeleteRequest.php new file mode 100644 index 0000000..a86456f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.account.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountQueryRequest.php new file mode 100644 index 0000000..d7bc063 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.account.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountResetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountResetRequest.php new file mode 100644 index 0000000..a383025 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAccountResetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.account.reset"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertBatchqueryRequest.php new file mode 100644 index 0000000..8b30d52 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertCreateRequest.php new file mode 100644 index 0000000..86fae14 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.advert.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertDeleteRequest.php new file mode 100644 index 0000000..4f351c9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.advert.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertModifyRequest.php new file mode 100644 index 0000000..fe25038 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicAdvertModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.advert.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicArticlesummaryDataBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicArticlesummaryDataBatchqueryRequest.php new file mode 100644 index 0000000..6e918d6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicArticlesummaryDataBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.articlesummary.data.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicContactFollowBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicContactFollowBatchqueryRequest.php new file mode 100644 index 0000000..b567c4f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicContactFollowBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicDefaultExtensionCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicDefaultExtensionCreateRequest.php new file mode 100644 index 0000000..aab8440 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicDefaultExtensionCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.default.extension.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicFollowBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicFollowBatchqueryRequest.php new file mode 100644 index 0000000..f245d59 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicFollowBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.follow.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGisQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGisQueryRequest.php new file mode 100644 index 0000000..cb85395 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGisQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.gis.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupBatchqueryRequest.php new file mode 100644 index 0000000..bd1c0a6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupCreateRequest.php new file mode 100644 index 0000000..54497a9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.group.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupCrowdQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupCrowdQueryRequest.php new file mode 100644 index 0000000..adf5e96 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupCrowdQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.group.crowd.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupDeleteRequest.php new file mode 100644 index 0000000..e0c72ea --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.group.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupModifyRequest.php new file mode 100644 index 0000000..ba9de62 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicGroupModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.group.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicInfoModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicInfoModifyRequest.php new file mode 100644 index 0000000..98c7839 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicInfoModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.info.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicInfoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicInfoQueryRequest.php new file mode 100644 index 0000000..509b736 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicInfoQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelCreateRequest.php new file mode 100644 index 0000000..2cf369e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.label.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelDeleteRequest.php new file mode 100644 index 0000000..ade3c47 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.label.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelModifyRequest.php new file mode 100644 index 0000000..89c6844 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.label.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelQueryRequest.php new file mode 100644 index 0000000..15dea91 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserCreateRequest.php new file mode 100644 index 0000000..3292c71 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.label.user.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserDeleteRequest.php new file mode 100644 index 0000000..3bd67f0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.label.user.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserQueryRequest.php new file mode 100644 index 0000000..90187c9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLabelUserQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.label.user.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAboardApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAboardApplyRequest.php new file mode 100644 index 0000000..fe93091 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAboardApplyRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAccountCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAccountCreateRequest.php new file mode 100644 index 0000000..2120fcc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAccountCreateRequest.php @@ -0,0 +1,247 @@ +background = $background; + $this->apiParas["background"] = $background; + } + + public function getBackground() + { + return $this->background; + } + + public function setCatagoryId($catagoryId) + { + $this->catagoryId = $catagoryId; + $this->apiParas["catagory_id"] = $catagoryId; + } + + public function getCatagoryId() + { + return $this->catagoryId; + } + + public function setContactEmail($contactEmail) + { + $this->contactEmail = $contactEmail; + $this->apiParas["contact_email"] = $contactEmail; + } + + public function getContactEmail() + { + return $this->contactEmail; + } + + public function setContactTel($contactTel) + { + $this->contactTel = $contactTel; + $this->apiParas["contact_tel"] = $contactTel; + } + + public function getContactTel() + { + return $this->contactTel; + } + + public function setContent($content) + { + $this->content = $content; + $this->apiParas["content"] = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setCustomerTel($customerTel) + { + $this->customerTel = $customerTel; + $this->apiParas["customer_tel"] = $customerTel; + } + + public function getCustomerTel() + { + return $this->customerTel; + } + + public function setLifeName($lifeName) + { + $this->lifeName = $lifeName; + $this->apiParas["life_name"] = $lifeName; + } + + public function getLifeName() + { + return $this->lifeName; + } + + public function setLogo($logo) + { + $this->logo = $logo; + $this->apiParas["logo"] = $logo; + } + + public function getLogo() + { + return $this->logo; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.account.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAgentCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAgentCreateRequest.php new file mode 100644 index 0000000..6ef5bfc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAgentCreateRequest.php @@ -0,0 +1,375 @@ +商家经营类目 中的“经营类目编码” + **/ + private $mccCode; + + /** + * 外部入驻申请单据号,由开发者生成,并需保证在开发者端不重复。另,如果代创建被驳回,需更换新的申请号,原申请号不能再次使用 + **/ + private $outBizNo; + + /** + * 自有知识产权证书图片 + **/ + private $ownIntellectualPic; + + /** + * 生活号简介 + **/ + private $publicDesc; + + /** + * 生活号名称 + **/ + private $publicName; + + /** + * 店铺内景图片,被代创建商户运营主体为个人账户必填,企业账户选填 + **/ + private $shopScenePic; + + /** + * 店铺门头照图片,被代创建商户运营主体为个人账户必填,企业账户选填 + **/ + private $shopSignBoardPic; + + /** + * 企业特殊资质图片,可参考 商家经营类目 中的 “需要的特殊资质证书” + **/ + private $specialLicensePic; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setAccount($account) + { + $this->account = $account; + $this->apiParas["account"] = $account; + } + + public function getAccount() + { + return $this->account; + } + + public function setBackgroundPic($backgroundPic) + { + $this->backgroundPic = $backgroundPic; + $this->apiParas["background_pic"] = $backgroundPic; + } + + public function getBackgroundPic() + { + return $this->backgroundPic; + } + + public function setBusinessLicenseAuthPic($businessLicenseAuthPic) + { + $this->businessLicenseAuthPic = $businessLicenseAuthPic; + $this->apiParas["business_license_auth_pic"] = $businessLicenseAuthPic; + } + + public function getBusinessLicenseAuthPic() + { + return $this->businessLicenseAuthPic; + } + + public function setBusinessLicenseNo($businessLicenseNo) + { + $this->businessLicenseNo = $businessLicenseNo; + $this->apiParas["business_license_no"] = $businessLicenseNo; + } + + public function getBusinessLicenseNo() + { + return $this->businessLicenseNo; + } + + public function setBusinessLicensePic($businessLicensePic) + { + $this->businessLicensePic = $businessLicensePic; + $this->apiParas["business_license_pic"] = $businessLicensePic; + } + + public function getBusinessLicensePic() + { + return $this->businessLicensePic; + } + + public function setContactEmail($contactEmail) + { + $this->contactEmail = $contactEmail; + $this->apiParas["contact_email"] = $contactEmail; + } + + public function getContactEmail() + { + return $this->contactEmail; + } + + public function setContactMobile($contactMobile) + { + $this->contactMobile = $contactMobile; + $this->apiParas["contact_mobile"] = $contactMobile; + } + + public function getContactMobile() + { + return $this->contactMobile; + } + + public function setContactName($contactName) + { + $this->contactName = $contactName; + $this->apiParas["contact_name"] = $contactName; + } + + public function getContactName() + { + return $this->contactName; + } + + public function setLogoPic($logoPic) + { + $this->logoPic = $logoPic; + $this->apiParas["logo_pic"] = $logoPic; + } + + public function getLogoPic() + { + return $this->logoPic; + } + + public function setMccCode($mccCode) + { + $this->mccCode = $mccCode; + $this->apiParas["mcc_code"] = $mccCode; + } + + public function getMccCode() + { + return $this->mccCode; + } + + public function setOutBizNo($outBizNo) + { + $this->outBizNo = $outBizNo; + $this->apiParas["out_biz_no"] = $outBizNo; + } + + public function getOutBizNo() + { + return $this->outBizNo; + } + + public function setOwnIntellectualPic($ownIntellectualPic) + { + $this->ownIntellectualPic = $ownIntellectualPic; + $this->apiParas["own_intellectual_pic"] = $ownIntellectualPic; + } + + public function getOwnIntellectualPic() + { + return $this->ownIntellectualPic; + } + + public function setPublicDesc($publicDesc) + { + $this->publicDesc = $publicDesc; + $this->apiParas["public_desc"] = $publicDesc; + } + + public function getPublicDesc() + { + return $this->publicDesc; + } + + public function setPublicName($publicName) + { + $this->publicName = $publicName; + $this->apiParas["public_name"] = $publicName; + } + + public function getPublicName() + { + return $this->publicName; + } + + public function setShopScenePic($shopScenePic) + { + $this->shopScenePic = $shopScenePic; + $this->apiParas["shop_scene_pic"] = $shopScenePic; + } + + public function getShopScenePic() + { + return $this->shopScenePic; + } + + public function setShopSignBoardPic($shopSignBoardPic) + { + $this->shopSignBoardPic = $shopSignBoardPic; + $this->apiParas["shop_sign_board_pic"] = $shopSignBoardPic; + } + + public function getShopSignBoardPic() + { + return $this->shopSignBoardPic; + } + + public function setSpecialLicensePic($specialLicensePic) + { + $this->specialLicensePic = $specialLicensePic; + $this->apiParas["special_license_pic"] = $specialLicensePic; + } + + public function getSpecialLicensePic() + { + return $this->specialLicensePic; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.agent.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAgentcreateQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAgentcreateQueryRequest.php new file mode 100644 index 0000000..bccbd44 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeAgentcreateQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.agentcreate.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeCreateRequest.php new file mode 100644 index 0000000..b330e69 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeCreateRequest.php @@ -0,0 +1,310 @@ +background = $background; + $this->apiParas["background"] = $background; + } + + public function getBackground() + { + return $this->background; + } + + public function setContactEmail($contactEmail) + { + $this->contactEmail = $contactEmail; + $this->apiParas["contact_email"] = $contactEmail; + } + + public function getContactEmail() + { + return $this->contactEmail; + } + + public function setContactName($contactName) + { + $this->contactName = $contactName; + $this->apiParas["contact_name"] = $contactName; + } + + public function getContactName() + { + return $this->contactName; + } + + public function setContactTel($contactTel) + { + $this->contactTel = $contactTel; + $this->apiParas["contact_tel"] = $contactTel; + } + + public function getContactTel() + { + return $this->contactTel; + } + + public function setCustomerTel($customerTel) + { + $this->customerTel = $customerTel; + $this->apiParas["customer_tel"] = $customerTel; + } + + public function getCustomerTel() + { + return $this->customerTel; + } + + public function setDescription($description) + { + $this->description = $description; + $this->apiParas["description"] = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setExtendData($extendData) + { + $this->extendData = $extendData; + $this->apiParas["extend_data"] = $extendData; + } + + public function getExtendData() + { + return $this->extendData; + } + + public function setLifeName($lifeName) + { + $this->lifeName = $lifeName; + $this->apiParas["life_name"] = $lifeName; + } + + public function getLifeName() + { + return $this->lifeName; + } + + public function setLogo($logo) + { + $this->logo = $logo; + $this->apiParas["logo"] = $logo; + } + + public function getLogo() + { + return $this->logo; + } + + public function setMccCode($mccCode) + { + $this->mccCode = $mccCode; + $this->apiParas["mcc_code"] = $mccCode; + } + + public function getMccCode() + { + return $this->mccCode; + } + + public function setPublicBizType($publicBizType) + { + $this->publicBizType = $publicBizType; + $this->apiParas["public_biz_type"] = $publicBizType; + } + + public function getPublicBizType() + { + return $this->publicBizType; + } + + public function setShowStyle($showStyle) + { + $this->showStyle = $showStyle; + $this->apiParas["show_style"] = $showStyle; + } + + public function getShowStyle() + { + return $this->showStyle; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeDebarkApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeDebarkApplyRequest.php new file mode 100644 index 0000000..5e62a15 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeDebarkApplyRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelBatchqueryRequest.php new file mode 100644 index 0000000..200d71d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelCreateRequest.php new file mode 100644 index 0000000..85a80ea --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.label.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelDeleteRequest.php new file mode 100644 index 0000000..6667a3a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.label.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelModifyRequest.php new file mode 100644 index 0000000..d228809 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeLabelModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.label.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeModifyRequest.php new file mode 100644 index 0000000..934db2c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeModifyRequest.php @@ -0,0 +1,262 @@ +background = $background; + $this->apiParas["background"] = $background; + } + + public function getBackground() + { + return $this->background; + } + + public function setContactEmail($contactEmail) + { + $this->contactEmail = $contactEmail; + $this->apiParas["contact_email"] = $contactEmail; + } + + public function getContactEmail() + { + return $this->contactEmail; + } + + public function setContactName($contactName) + { + $this->contactName = $contactName; + $this->apiParas["contact_name"] = $contactName; + } + + public function getContactName() + { + return $this->contactName; + } + + public function setContactTel($contactTel) + { + $this->contactTel = $contactTel; + $this->apiParas["contact_tel"] = $contactTel; + } + + public function getContactTel() + { + return $this->contactTel; + } + + public function setCustomerTel($customerTel) + { + $this->customerTel = $customerTel; + $this->apiParas["customer_tel"] = $customerTel; + } + + public function getCustomerTel() + { + return $this->customerTel; + } + + public function setDescription($description) + { + $this->description = $description; + $this->apiParas["description"] = $description; + } + + public function getDescription() + { + return $this->description; + } + + public function setExtendData($extendData) + { + $this->extendData = $extendData; + $this->apiParas["extend_data"] = $extendData; + } + + public function getExtendData() + { + return $this->extendData; + } + + public function setLifeName($lifeName) + { + $this->lifeName = $lifeName; + $this->apiParas["life_name"] = $lifeName; + } + + public function getLifeName() + { + return $this->lifeName; + } + + public function setLogo($logo) + { + $this->logo = $logo; + $this->apiParas["logo"] = $logo; + } + + public function getLogo() + { + return $this->logo; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeMsgRecallRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeMsgRecallRequest.php new file mode 100644 index 0000000..69d4a9c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeMsgRecallRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.msg.recall"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeMsgSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeMsgSendRequest.php new file mode 100644 index 0000000..545cae8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicLifeMsgSendRequest.php @@ -0,0 +1,337 @@ +category = $category; + $this->apiParas["category"] = $category; + } + + public function getCategory() + { + return $this->category; + } + + public function setContent($content) + { + $this->content = $content; + $this->apiParas["content"] = $content; + } + + public function getContent() + { + return $this->content; + } + + public function setCover($cover) + { + $this->cover = $cover; + $this->apiParas["cover"] = $cover; + } + + public function getCover() + { + return $this->cover; + } + + public function setDesc($desc) + { + $this->desc = $desc; + $this->apiParas["desc"] = $desc; + } + + public function getDesc() + { + return $this->desc; + } + + public function setMsgType($msgType) + { + $this->msgType = $msgType; + $this->apiParas["msg_type"] = $msgType; + } + + public function getMsgType() + { + return $this->msgType; + } + + public function setSourceExtInfo($sourceExtInfo) + { + $this->sourceExtInfo = $sourceExtInfo; + $this->apiParas["source_ext_info"] = $sourceExtInfo; + } + + public function getSourceExtInfo() + { + return $this->sourceExtInfo; + } + + public function setTitle($title) + { + $this->title = $title; + $this->apiParas["title"] = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function setUniqueMsgId($uniqueMsgId) + { + $this->uniqueMsgId = $uniqueMsgId; + $this->apiParas["unique_msg_id"] = $uniqueMsgId; + } + + public function getUniqueMsgId() + { + return $this->uniqueMsgId; + } + + public function setVideoLength($videoLength) + { + $this->videoLength = $videoLength; + $this->apiParas["video_length"] = $videoLength; + } + + public function getVideoLength() + { + return $this->videoLength; + } + + public function setVideoSamples($videoSamples) + { + $this->videoSamples = $videoSamples; + $this->apiParas["video_samples"] = $videoSamples; + } + + public function getVideoSamples() + { + return $this->videoSamples; + } + + public function setVideoSize($videoSize) + { + $this->videoSize = $videoSize; + $this->apiParas["video_size"] = $videoSize; + } + + public function getVideoSize() + { + return $this->videoSize; + } + + public function setVideoSource($videoSource) + { + $this->videoSource = $videoSource; + $this->apiParas["video_source"] = $videoSource; + } + + public function getVideoSource() + { + return $this->videoSource; + } + + public function setVideoTemporaryUrl($videoTemporaryUrl) + { + $this->videoTemporaryUrl = $videoTemporaryUrl; + $this->apiParas["video_temporary_url"] = $videoTemporaryUrl; + } + + public function getVideoTemporaryUrl() + { + return $this->videoTemporaryUrl; + } + + public function setVideoUrl($videoUrl) + { + $this->videoUrl = $videoUrl; + $this->apiParas["video_url"] = $videoUrl; + } + + public function getVideoUrl() + { + return $this->videoUrl; + } + + public function getApiMethodName() + { + return "alipay.open.public.life.msg.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMatchuserLabelCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMatchuserLabelCreateRequest.php new file mode 100644 index 0000000..49de9c2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMatchuserLabelCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.matchuser.label.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMatchuserLabelDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMatchuserLabelDeleteRequest.php new file mode 100644 index 0000000..b77da0e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMatchuserLabelDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.matchuser.label.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuBatchqueryRequest.php new file mode 100644 index 0000000..9076aa4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuCreateRequest.php new file mode 100644 index 0000000..cb11c55 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.menu.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuDataBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuDataBatchqueryRequest.php new file mode 100644 index 0000000..3f298c0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuDataBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.menu.data.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuModifyRequest.php new file mode 100644 index 0000000..e855d9f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.menu.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuQueryRequest.php new file mode 100644 index 0000000..ab5c002 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMenuQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageContentCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageContentCreateRequest.php new file mode 100644 index 0000000..6e486ad --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageContentCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.message.content.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageContentModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageContentModifyRequest.php new file mode 100644 index 0000000..69b0d73 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageContentModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.message.content.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageCustomSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageCustomSendRequest.php new file mode 100644 index 0000000..f40c7ad --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageCustomSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.message.custom.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageGroupSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageGroupSendRequest.php new file mode 100644 index 0000000..749f962 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageGroupSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.message.group.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageLabelSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageLabelSendRequest.php new file mode 100644 index 0000000..6e098da --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageLabelSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.message.label.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageQueryRequest.php new file mode 100644 index 0000000..cb03263 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.message.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageSingleSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageSingleSendRequest.php new file mode 100644 index 0000000..13e9e72 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageSingleSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.message.single.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageTotalSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageTotalSendRequest.php new file mode 100644 index 0000000..992cf18 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMessageTotalSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.message.total.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMultimediaDownloadProxyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMultimediaDownloadProxyRequest.php new file mode 100644 index 0000000..bee43d6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicMultimediaDownloadProxyRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerMenuOperateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerMenuOperateRequest.php new file mode 100644 index 0000000..942b69e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerMenuOperateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.partner.menu.operate"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerMenuQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerMenuQueryRequest.php new file mode 100644 index 0000000..58c8d4d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerMenuQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.partner.menu.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerSubscribeSyncRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerSubscribeSyncRequest.php new file mode 100644 index 0000000..85863d9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPartnerSubscribeSyncRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.partner.subscribe.sync"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPayeeBindCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPayeeBindCreateRequest.php new file mode 100644 index 0000000..3fd6639 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPayeeBindCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.payee.bind.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPayeeBindDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPayeeBindDeleteRequest.php new file mode 100644 index 0000000..53138d0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPayeeBindDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.payee.bind.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionBatchqueryRequest.php new file mode 100644 index 0000000..3d5094d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionCreateRequest.php new file mode 100644 index 0000000..ee7c1f3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.personalized.extension.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionDeleteRequest.php new file mode 100644 index 0000000..7eb3321 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.personalized.extension.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionSetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionSetRequest.php new file mode 100644 index 0000000..4815282 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedExtensionSetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.personalized.extension.set"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedMenuCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedMenuCreateRequest.php new file mode 100644 index 0000000..6bd51fe --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedMenuCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.personalized.menu.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedMenuDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedMenuDeleteRequest.php new file mode 100644 index 0000000..061c381 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicPersonalizedMenuDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.personalized.menu.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicQrcodeCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicQrcodeCreateRequest.php new file mode 100644 index 0000000..8abe234 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicQrcodeCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.qrcode.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicSettingCategoryQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicSettingCategoryQueryRequest.php new file mode 100644 index 0000000..71d1f38 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicSettingCategoryQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicShortlinkCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicShortlinkCreateRequest.php new file mode 100644 index 0000000..2051bf2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicShortlinkCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.shortlink.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicSinglearticleDataBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicSinglearticleDataBatchqueryRequest.php new file mode 100644 index 0000000..1a94e23 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicSinglearticleDataBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.singlearticle.data.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTemplateMessageGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTemplateMessageGetRequest.php new file mode 100644 index 0000000..4f1c106 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTemplateMessageGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.template.message.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTemplateMessageIndustryModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTemplateMessageIndustryModifyRequest.php new file mode 100644 index 0000000..752f594 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTemplateMessageIndustryModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.template.message.industry.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicThirdCustomerServiceRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicThirdCustomerServiceRequest.php new file mode 100644 index 0000000..58dae8c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicThirdCustomerServiceRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.third.customer.service"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicBatchqueryRequest.php new file mode 100644 index 0000000..fc2a8d5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicCreateRequest.php new file mode 100644 index 0000000..846e11f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.topic.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicDeleteRequest.php new file mode 100644 index 0000000..e25a73e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.topic.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicModifyRequest.php new file mode 100644 index 0000000..004b460 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicTopicModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.topic.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicUserDataBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicUserDataBatchqueryRequest.php new file mode 100644 index 0000000..383647d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicUserDataBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.user.data.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicUserFollowQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicUserFollowQueryRequest.php new file mode 100644 index 0000000..36b6a8c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicUserFollowQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.user.follow.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicXwbtestabcdBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicXwbtestabcdBatchqueryRequest.php new file mode 100644 index 0000000..2853e11 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenPublicXwbtestabcdBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.public.xwbtestabcd.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketCommodityShopOfflineRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketCommodityShopOfflineRequest.php new file mode 100644 index 0000000..fcc217c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketCommodityShopOfflineRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.servicemarket.commodity.shop.offline"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketCommodityShopOnlineRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketCommodityShopOnlineRequest.php new file mode 100644 index 0000000..77ce194 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketCommodityShopOnlineRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.servicemarket.commodity.shop.online"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderAcceptRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderAcceptRequest.php new file mode 100644 index 0000000..42a654d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderAcceptRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.servicemarket.order.accept"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemCancelRequest.php new file mode 100644 index 0000000..80860a7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.servicemarket.order.item.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemCompleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemCompleteRequest.php new file mode 100644 index 0000000..acddf2e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemCompleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.servicemarket.order.item.complete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemConfirmRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemConfirmRequest.php new file mode 100644 index 0000000..4027977 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderItemConfirmRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.servicemarket.order.item.confirm"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderNotifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderNotifyRequest.php new file mode 100644 index 0000000..abea22b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderNotifyRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderQueryRequest.php new file mode 100644 index 0000000..6d85a1e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.servicemarket.order.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderRejectRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderRejectRequest.php new file mode 100644 index 0000000..a699056 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenServicemarketOrderRejectRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.servicemarket.order.reject"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenSmsgDataSetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenSmsgDataSetRequest.php new file mode 100644 index 0000000..471427d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOpenSmsgDataSetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.open.smsg.data.set"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOperatorMobileBindRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOperatorMobileBindRequest.php new file mode 100644 index 0000000..4819a99 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayOperatorMobileBindRequest.php @@ -0,0 +1,202 @@ +checkSigncard = $checkSigncard; + $this->apiParas["check_signcard"] = $checkSigncard; + } + + public function getCheckSigncard() + { + return $this->checkSigncard; + } + + public function setfReturnUrl($fReturnUrl) + { + $this->fReturnUrl = $fReturnUrl; + $this->apiParas["f_return_url"] = $fReturnUrl; + } + + public function getfReturnUrl() + { + return $this->fReturnUrl; + } + + public function setHasSpi($hasSpi) + { + $this->hasSpi = $hasSpi; + $this->apiParas["has_spi"] = $hasSpi; + } + + public function getHasSpi() + { + return $this->hasSpi; + } + + public function setOperatorName($operatorName) + { + $this->operatorName = $operatorName; + $this->apiParas["operator_name"] = $operatorName; + } + + public function getOperatorName() + { + return $this->operatorName; + } + + public function setProvinceName($provinceName) + { + $this->provinceName = $provinceName; + $this->apiParas["province_name"] = $provinceName; + } + + public function getProvinceName() + { + return $this->provinceName; + } + + public function setsReturnUrl($sReturnUrl) + { + $this->sReturnUrl = $sReturnUrl; + $this->apiParas["s_return_url"] = $sReturnUrl; + } + + public function getsReturnUrl() + { + return $this->sReturnUrl; + } + + public function getApiMethodName() + { + return "alipay.operator.mobile.bind"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassCodeAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassCodeAddRequest.php new file mode 100644 index 0000000..3bf57b5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassCodeAddRequest.php @@ -0,0 +1,170 @@ +fileContent = $fileContent; + $this->apiParas["file_content"] = $fileContent; + } + + public function getFileContent() + { + return $this->fileContent; + } + + public function setRecognitionInfo($recognitionInfo) + { + $this->recognitionInfo = $recognitionInfo; + $this->apiParas["recognition_info"] = $recognitionInfo; + } + + public function getRecognitionInfo() + { + return $this->recognitionInfo; + } + + public function setRecognitionType($recognitionType) + { + $this->recognitionType = $recognitionType; + $this->apiParas["recognition_type"] = $recognitionType; + } + + public function getRecognitionType() + { + return $this->recognitionType; + } + + public function setVerifyType($verifyType) + { + $this->verifyType = $verifyType; + $this->apiParas["verify_type"] = $verifyType; + } + + public function getVerifyType() + { + return $this->verifyType; + } + + public function getApiMethodName() + { + return "alipay.pass.code.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassCodeVerifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassCodeVerifyRequest.php new file mode 100644 index 0000000..56a2038 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassCodeVerifyRequest.php @@ -0,0 +1,170 @@ +extInfo = $extInfo; + $this->apiParas["ext_info"] = $extInfo; + } + + public function getExtInfo() + { + return $this->extInfo; + } + + public function setOperatorId($operatorId) + { + $this->operatorId = $operatorId; + $this->apiParas["operator_id"] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setOperatorType($operatorType) + { + $this->operatorType = $operatorType; + $this->apiParas["operator_type"] = $operatorType; + } + + public function getOperatorType() + { + return $this->operatorType; + } + + public function setVerifyCode($verifyCode) + { + $this->verifyCode = $verifyCode; + $this->apiParas["verify_code"] = $verifyCode; + } + + public function getVerifyCode() + { + return $this->verifyCode; + } + + public function getApiMethodName() + { + return "alipay.pass.code.verify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassFileAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassFileAddRequest.php new file mode 100644 index 0000000..fa50618 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassFileAddRequest.php @@ -0,0 +1,153 @@ +fileContent = $fileContent; + $this->apiParas["file_content"] = $fileContent; + } + + public function getFileContent() + { + return $this->fileContent; + } + + public function setRecognitionInfo($recognitionInfo) + { + $this->recognitionInfo = $recognitionInfo; + $this->apiParas["recognition_info"] = $recognitionInfo; + } + + public function getRecognitionInfo() + { + return $this->recognitionInfo; + } + + public function setRecognitionType($recognitionType) + { + $this->recognitionType = $recognitionType; + $this->apiParas["recognition_type"] = $recognitionType; + } + + public function getRecognitionType() + { + return $this->recognitionType; + } + + public function getApiMethodName() + { + return "alipay.pass.file.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassInstanceAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassInstanceAddRequest.php new file mode 100644 index 0000000..01455f5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassInstanceAddRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.pass.instance.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassInstanceUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassInstanceUpdateRequest.php new file mode 100644 index 0000000..eb679f9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassInstanceUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.pass.instance.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassSyncAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassSyncAddRequest.php new file mode 100644 index 0000000..0621766 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassSyncAddRequest.php @@ -0,0 +1,166 @@ +fileContent = $fileContent; + $this->apiParas["file_content"] = $fileContent; + } + + public function getFileContent() + { + return $this->fileContent; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->apiParas["out_trade_no"] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setPartnerId($partnerId) + { + $this->partnerId = $partnerId; + $this->apiParas["partner_id"] = $partnerId; + } + + public function getPartnerId() + { + return $this->partnerId; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.pass.sync.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassSyncUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassSyncUpdateRequest.php new file mode 100644 index 0000000..0070975 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassSyncUpdateRequest.php @@ -0,0 +1,214 @@ +channelId = $channelId; + $this->apiParas["channel_id"] = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setExtInfo($extInfo) + { + $this->extInfo = $extInfo; + $this->apiParas["ext_info"] = $extInfo; + } + + public function getExtInfo() + { + return $this->extInfo; + } + + public function setPass($pass) + { + $this->pass = $pass; + $this->apiParas["pass"] = $pass; + } + + public function getPass() + { + return $this->pass; + } + + public function setSerialNumber($serialNumber) + { + $this->serialNumber = $serialNumber; + $this->apiParas["serial_number"] = $serialNumber; + } + + public function getSerialNumber() + { + return $this->serialNumber; + } + + public function setStatus($status) + { + $this->status = $status; + $this->apiParas["status"] = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setVerifyCode($verifyCode) + { + $this->verifyCode = $verifyCode; + $this->apiParas["verify_code"] = $verifyCode; + } + + public function getVerifyCode() + { + return $this->verifyCode; + } + + public function setVerifyType($verifyType) + { + $this->verifyType = $verifyType; + $this->apiParas["verify_type"] = $verifyType; + } + + public function getVerifyType() + { + return $this->verifyType; + } + + public function getApiMethodName() + { + return "alipay.pass.sync.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTemplateAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTemplateAddRequest.php new file mode 100644 index 0000000..e0f7a48 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTemplateAddRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.pass.template.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTemplateUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTemplateUpdateRequest.php new file mode 100644 index 0000000..fc89610 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTemplateUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.pass.template.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplAddRequest.php new file mode 100644 index 0000000..efd64c0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplAddRequest.php @@ -0,0 +1,135 @@ +tplContent = $tplContent; + $this->apiParas["tpl_content"] = $tplContent; + } + + public function getTplContent() + { + return $this->tplContent; + } + + public function setUniqueId($uniqueId) + { + $this->uniqueId = $uniqueId; + $this->apiParas["unique_id"] = $uniqueId; + } + + public function getUniqueId() + { + return $this->uniqueId; + } + + public function getApiMethodName() + { + return "alipay.pass.tpl.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplContentAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplContentAddRequest.php new file mode 100644 index 0000000..deb8e58 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplContentAddRequest.php @@ -0,0 +1,169 @@ +recognitionInfo = $recognitionInfo; + $this->apiParas["recognition_info"] = $recognitionInfo; + } + + public function getRecognitionInfo() + { + return $this->recognitionInfo; + } + + public function setRecognitionType($recognitionType) + { + $this->recognitionType = $recognitionType; + $this->apiParas["recognition_type"] = $recognitionType; + } + + public function getRecognitionType() + { + return $this->recognitionType; + } + + public function setTplId($tplId) + { + $this->tplId = $tplId; + $this->apiParas["tpl_id"] = $tplId; + } + + public function getTplId() + { + return $this->tplId; + } + + public function setTplParams($tplParams) + { + $this->tplParams = $tplParams; + $this->apiParas["tpl_params"] = $tplParams; + } + + public function getTplParams() + { + return $this->tplParams; + } + + public function getApiMethodName() + { + return "alipay.pass.tpl.content.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplContentUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplContentUpdateRequest.php new file mode 100644 index 0000000..b795db5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplContentUpdateRequest.php @@ -0,0 +1,198 @@ +channelId = $channelId; + $this->apiParas["channel_id"] = $channelId; + } + + public function getChannelId() + { + return $this->channelId; + } + + public function setSerialNumber($serialNumber) + { + $this->serialNumber = $serialNumber; + $this->apiParas["serial_number"] = $serialNumber; + } + + public function getSerialNumber() + { + return $this->serialNumber; + } + + public function setStatus($status) + { + $this->status = $status; + $this->apiParas["status"] = $status; + } + + public function getStatus() + { + return $this->status; + } + + public function setTplParams($tplParams) + { + $this->tplParams = $tplParams; + $this->apiParas["tpl_params"] = $tplParams; + } + + public function getTplParams() + { + return $this->tplParams; + } + + public function setVerifyCode($verifyCode) + { + $this->verifyCode = $verifyCode; + $this->apiParas["verify_code"] = $verifyCode; + } + + public function getVerifyCode() + { + return $this->verifyCode; + } + + public function setVerifyType($verifyType) + { + $this->verifyType = $verifyType; + $this->apiParas["verify_type"] = $verifyType; + } + + public function getVerifyType() + { + return $this->verifyType; + } + + public function getApiMethodName() + { + return "alipay.pass.tpl.content.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplUpdateRequest.php new file mode 100644 index 0000000..81577f3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassTplUpdateRequest.php @@ -0,0 +1,134 @@ +tplContent = $tplContent; + $this->apiParas["tpl_content"] = $tplContent; + } + + public function getTplContent() + { + return $this->tplContent; + } + + public function setTplId($tplId) + { + $this->tplId = $tplId; + $this->apiParas["tpl_id"] = $tplId; + } + + public function getTplId() + { + return $this->tplId; + } + + public function getApiMethodName() + { + return "alipay.pass.tpl.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassVerifyQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassVerifyQueryRequest.php new file mode 100644 index 0000000..129ef84 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPassVerifyQueryRequest.php @@ -0,0 +1,118 @@ +verifyCode = $verifyCode; + $this->apiParas["verify_code"] = $verifyCode; + } + + public function getVerifyCode() + { + return $this->verifyCode; + } + + public function getApiMethodName() + { + return "alipay.pass.verify.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditHuabeiPromoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditHuabeiPromoQueryRequest.php new file mode 100644 index 0000000..310c255 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditHuabeiPromoQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.pcredit.huabei.promo.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditLoanApplyCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditLoanApplyCreateRequest.php new file mode 100644 index 0000000..80b2b8d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditLoanApplyCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.pcredit.loan.apply.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditLoanRefundCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditLoanRefundCreateRequest.php new file mode 100644 index 0000000..2a6665f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPcreditLoanRefundCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.pcredit.loan.refund.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPlatformOpenidGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPlatformOpenidGetRequest.php new file mode 100644 index 0000000..a37b36e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPlatformOpenidGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.platform.openid.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPlatformUseridGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPlatformUseridGetRequest.php new file mode 100644 index 0000000..79769b9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPlatformUseridGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.platform.userid.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointBalanceGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointBalanceGetRequest.php new file mode 100644 index 0000000..f52ee38 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointBalanceGetRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointBudgetGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointBudgetGetRequest.php new file mode 100644 index 0000000..9020ebf --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointBudgetGetRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointOrderAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointOrderAddRequest.php new file mode 100644 index 0000000..075d366 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointOrderAddRequest.php @@ -0,0 +1,198 @@ +memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setMerchantOrderNo($merchantOrderNo) + { + $this->merchantOrderNo = $merchantOrderNo; + $this->apiParas["merchant_order_no"] = $merchantOrderNo; + } + + public function getMerchantOrderNo() + { + return $this->merchantOrderNo; + } + + public function setOrderTime($orderTime) + { + $this->orderTime = $orderTime; + $this->apiParas["order_time"] = $orderTime; + } + + public function getOrderTime() + { + return $this->orderTime; + } + + public function setPointCount($pointCount) + { + $this->pointCount = $pointCount; + $this->apiParas["point_count"] = $pointCount; + } + + public function getPointCount() + { + return $this->pointCount; + } + + public function setUserSymbol($userSymbol) + { + $this->userSymbol = $userSymbol; + $this->apiParas["user_symbol"] = $userSymbol; + } + + public function getUserSymbol() + { + return $this->userSymbol; + } + + public function setUserSymbolType($userSymbolType) + { + $this->userSymbolType = $userSymbolType; + $this->apiParas["user_symbol_type"] = $userSymbolType; + } + + public function getUserSymbolType() + { + return $this->userSymbolType; + } + + public function getApiMethodName() + { + return "alipay.point.order.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointOrderGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointOrderGetRequest.php new file mode 100644 index 0000000..18f9c87 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPointOrderGetRequest.php @@ -0,0 +1,150 @@ +merchantOrderNo = $merchantOrderNo; + $this->apiParas["merchant_order_no"] = $merchantOrderNo; + } + + public function getMerchantOrderNo() + { + return $this->merchantOrderNo; + } + + public function setUserSymbol($userSymbol) + { + $this->userSymbol = $userSymbol; + $this->apiParas["user_symbol"] = $userSymbol; + } + + public function getUserSymbol() + { + return $this->userSymbol; + } + + public function setUserSymbolType($userSymbolType) + { + $this->userSymbolType = $userSymbolType; + $this->apiParas["user_symbol_type"] = $userSymbolType; + } + + public function getUserSymbolType() + { + return $this->userSymbolType; + } + + public function getApiMethodName() + { + return "alipay.point.order.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPromorulecenterRuleAnalyzeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPromorulecenterRuleAnalyzeRequest.php new file mode 100644 index 0000000..d14b8b7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayPromorulecenterRuleAnalyzeRequest.php @@ -0,0 +1,150 @@ +bizId = $bizId; + $this->apiParas["biz_id"] = $bizId; + } + + public function getBizId() + { + return $this->bizId; + } + + public function setRuleUuid($ruleUuid) + { + $this->ruleUuid = $ruleUuid; + $this->apiParas["rule_uuid"] = $ruleUuid; + } + + public function getRuleUuid() + { + return $this->ruleUuid; + } + + public function setUserId($userId) + { + $this->userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.promorulecenter.rule.analyze"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityInfoAnalysisRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityInfoAnalysisRequest.php new file mode 100644 index 0000000..166f162 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityInfoAnalysisRequest.php @@ -0,0 +1,470 @@ +envClientBaseBand = $envClientBaseBand; + $this->apiParas["env_client_base_band"] = $envClientBaseBand; + } + + public function getEnvClientBaseBand() + { + return $this->envClientBaseBand; + } + + public function setEnvClientBaseStation($envClientBaseStation) + { + $this->envClientBaseStation = $envClientBaseStation; + $this->apiParas["env_client_base_station"] = $envClientBaseStation; + } + + public function getEnvClientBaseStation() + { + return $this->envClientBaseStation; + } + + public function setEnvClientCoordinates($envClientCoordinates) + { + $this->envClientCoordinates = $envClientCoordinates; + $this->apiParas["env_client_coordinates"] = $envClientCoordinates; + } + + public function getEnvClientCoordinates() + { + return $this->envClientCoordinates; + } + + public function setEnvClientImei($envClientImei) + { + $this->envClientImei = $envClientImei; + $this->apiParas["env_client_imei"] = $envClientImei; + } + + public function getEnvClientImei() + { + return $this->envClientImei; + } + + public function setEnvClientImsi($envClientImsi) + { + $this->envClientImsi = $envClientImsi; + $this->apiParas["env_client_imsi"] = $envClientImsi; + } + + public function getEnvClientImsi() + { + return $this->envClientImsi; + } + + public function setEnvClientIosUdid($envClientIosUdid) + { + $this->envClientIosUdid = $envClientIosUdid; + $this->apiParas["env_client_ios_udid"] = $envClientIosUdid; + } + + public function getEnvClientIosUdid() + { + return $this->envClientIosUdid; + } + + public function setEnvClientIp($envClientIp) + { + $this->envClientIp = $envClientIp; + $this->apiParas["env_client_ip"] = $envClientIp; + } + + public function getEnvClientIp() + { + return $this->envClientIp; + } + + public function setEnvClientMac($envClientMac) + { + $this->envClientMac = $envClientMac; + $this->apiParas["env_client_mac"] = $envClientMac; + } + + public function getEnvClientMac() + { + return $this->envClientMac; + } + + public function setEnvClientScreen($envClientScreen) + { + $this->envClientScreen = $envClientScreen; + $this->apiParas["env_client_screen"] = $envClientScreen; + } + + public function getEnvClientScreen() + { + return $this->envClientScreen; + } + + public function setEnvClientUuid($envClientUuid) + { + $this->envClientUuid = $envClientUuid; + $this->apiParas["env_client_uuid"] = $envClientUuid; + } + + public function getEnvClientUuid() + { + return $this->envClientUuid; + } + + public function setJsTokenId($jsTokenId) + { + $this->jsTokenId = $jsTokenId; + $this->apiParas["js_token_id"] = $jsTokenId; + } + + public function getJsTokenId() + { + return $this->jsTokenId; + } + + public function setPartnerId($partnerId) + { + $this->partnerId = $partnerId; + $this->apiParas["partner_id"] = $partnerId; + } + + public function getPartnerId() + { + return $this->partnerId; + } + + public function setSceneCode($sceneCode) + { + $this->sceneCode = $sceneCode; + $this->apiParas["scene_code"] = $sceneCode; + } + + public function getSceneCode() + { + return $this->sceneCode; + } + + public function setUserAccountNo($userAccountNo) + { + $this->userAccountNo = $userAccountNo; + $this->apiParas["user_account_no"] = $userAccountNo; + } + + public function getUserAccountNo() + { + return $this->userAccountNo; + } + + public function setUserBindBankcard($userBindBankcard) + { + $this->userBindBankcard = $userBindBankcard; + $this->apiParas["user_bind_bankcard"] = $userBindBankcard; + } + + public function getUserBindBankcard() + { + return $this->userBindBankcard; + } + + public function setUserBindBankcardType($userBindBankcardType) + { + $this->userBindBankcardType = $userBindBankcardType; + $this->apiParas["user_bind_bankcard_type"] = $userBindBankcardType; + } + + public function getUserBindBankcardType() + { + return $this->userBindBankcardType; + } + + public function setUserBindMobile($userBindMobile) + { + $this->userBindMobile = $userBindMobile; + $this->apiParas["user_bind_mobile"] = $userBindMobile; + } + + public function getUserBindMobile() + { + return $this->userBindMobile; + } + + public function setUserIdentityType($userIdentityType) + { + $this->userIdentityType = $userIdentityType; + $this->apiParas["user_identity_type"] = $userIdentityType; + } + + public function getUserIdentityType() + { + return $this->userIdentityType; + } + + public function setUserRealName($userRealName) + { + $this->userRealName = $userRealName; + $this->apiParas["user_real_name"] = $userRealName; + } + + public function getUserRealName() + { + return $this->userRealName; + } + + public function setUserRegDate($userRegDate) + { + $this->userRegDate = $userRegDate; + $this->apiParas["user_reg_date"] = $userRegDate; + } + + public function getUserRegDate() + { + return $this->userRegDate; + } + + public function setUserRegEmail($userRegEmail) + { + $this->userRegEmail = $userRegEmail; + $this->apiParas["user_reg_email"] = $userRegEmail; + } + + public function getUserRegEmail() + { + return $this->userRegEmail; + } + + public function setUserRegMobile($userRegMobile) + { + $this->userRegMobile = $userRegMobile; + $this->apiParas["user_reg_mobile"] = $userRegMobile; + } + + public function getUserRegMobile() + { + return $this->userRegMobile; + } + + public function setUserrIdentityNo($userrIdentityNo) + { + $this->userrIdentityNo = $userrIdentityNo; + $this->apiParas["userr_identity_no"] = $userrIdentityNo; + } + + public function getUserrIdentityNo() + { + return $this->userrIdentityNo; + } + + public function getApiMethodName() + { + return "alipay.security.info.analysis"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdAlipaySecurityProdTestRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdAlipaySecurityProdTestRequest.php new file mode 100644 index 0000000..f3013e1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdAlipaySecurityProdTestRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.alipay.security.prod.test"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdAmlriskQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdAmlriskQueryRequest.php new file mode 100644 index 0000000..963f65c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdAmlriskQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.amlrisk.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFacerepoAddRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFacerepoAddRequest.php new file mode 100644 index 0000000..b5efe08 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFacerepoAddRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.facerepo.add"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFacerepoSearchRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFacerepoSearchRequest.php new file mode 100644 index 0000000..554bed6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFacerepoSearchRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.facerepo.search"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintApplyInitializeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintApplyInitializeRequest.php new file mode 100644 index 0000000..ea5b2bd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintApplyInitializeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.fingerprint.apply.initialize"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintApplyRequest.php new file mode 100644 index 0000000..41d32bc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.fingerprint.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintDeleteRequest.php new file mode 100644 index 0000000..5af3cd1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.fingerprint.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintRiskcontrolQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintRiskcontrolQueryRequest.php new file mode 100644 index 0000000..80c7fd2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintRiskcontrolQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.fingerprint.riskcontrol.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintVerifyInitializeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintVerifyInitializeRequest.php new file mode 100644 index 0000000..20dd416 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintVerifyInitializeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.fingerprint.verify.initialize"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintVerifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintVerifyRequest.php new file mode 100644 index 0000000..7adf7fa --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdFingerprintVerifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.fingerprint.verify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureFileUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureFileUploadRequest.php new file mode 100644 index 0000000..7e386c4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureFileUploadRequest.php @@ -0,0 +1,134 @@ +bizProduct = $bizProduct; + $this->apiParas["biz_product"] = $bizProduct; + } + + public function getBizProduct() + { + return $this->bizProduct; + } + + public function setFileContent($fileContent) + { + $this->fileContent = $fileContent; + $this->apiParas["file_content"] = $fileContent; + } + + public function getFileContent() + { + return $this->fileContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.signature.file.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskApplyRequest.php new file mode 100644 index 0000000..c50eb8a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.signature.task.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskCancelRequest.php new file mode 100644 index 0000000..517c9c2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.signature.task.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskQueryRequest.php new file mode 100644 index 0000000..0544f68 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdSignatureTaskQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.signature.task.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdXwbtestabcAbcQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdXwbtestabcAbcQueryRequest.php new file mode 100644 index 0000000..3376dff --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdXwbtestabcAbcQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.xwbtestabc.abc.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdXwbtestprodQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdXwbtestprodQueryRequest.php new file mode 100644 index 0000000..6184bbc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityProdXwbtestprodQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.prod.xwbtestprod.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskDetectRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskDetectRequest.php new file mode 100644 index 0000000..136afa8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskDetectRequest.php @@ -0,0 +1,998 @@ +buyerAccountNo = $buyerAccountNo; + $this->apiParas["buyer_account_no"] = $buyerAccountNo; + } + + public function getBuyerAccountNo() + { + return $this->buyerAccountNo; + } + + public function setBuyerBindBankcard($buyerBindBankcard) + { + $this->buyerBindBankcard = $buyerBindBankcard; + $this->apiParas["buyer_bind_bankcard"] = $buyerBindBankcard; + } + + public function getBuyerBindBankcard() + { + return $this->buyerBindBankcard; + } + + public function setBuyerBindBankcardType($buyerBindBankcardType) + { + $this->buyerBindBankcardType = $buyerBindBankcardType; + $this->apiParas["buyer_bind_bankcard_type"] = $buyerBindBankcardType; + } + + public function getBuyerBindBankcardType() + { + return $this->buyerBindBankcardType; + } + + public function setBuyerBindMobile($buyerBindMobile) + { + $this->buyerBindMobile = $buyerBindMobile; + $this->apiParas["buyer_bind_mobile"] = $buyerBindMobile; + } + + public function getBuyerBindMobile() + { + return $this->buyerBindMobile; + } + + public function setBuyerGrade($buyerGrade) + { + $this->buyerGrade = $buyerGrade; + $this->apiParas["buyer_grade"] = $buyerGrade; + } + + public function getBuyerGrade() + { + return $this->buyerGrade; + } + + public function setBuyerIdentityNo($buyerIdentityNo) + { + $this->buyerIdentityNo = $buyerIdentityNo; + $this->apiParas["buyer_identity_no"] = $buyerIdentityNo; + } + + public function getBuyerIdentityNo() + { + return $this->buyerIdentityNo; + } + + public function setBuyerIdentityType($buyerIdentityType) + { + $this->buyerIdentityType = $buyerIdentityType; + $this->apiParas["buyer_identity_type"] = $buyerIdentityType; + } + + public function getBuyerIdentityType() + { + return $this->buyerIdentityType; + } + + public function setBuyerRealName($buyerRealName) + { + $this->buyerRealName = $buyerRealName; + $this->apiParas["buyer_real_name"] = $buyerRealName; + } + + public function getBuyerRealName() + { + return $this->buyerRealName; + } + + public function setBuyerRegDate($buyerRegDate) + { + $this->buyerRegDate = $buyerRegDate; + $this->apiParas["buyer_reg_date"] = $buyerRegDate; + } + + public function getBuyerRegDate() + { + return $this->buyerRegDate; + } + + public function setBuyerRegEmail($buyerRegEmail) + { + $this->buyerRegEmail = $buyerRegEmail; + $this->apiParas["buyer_reg_email"] = $buyerRegEmail; + } + + public function getBuyerRegEmail() + { + return $this->buyerRegEmail; + } + + public function setBuyerRegMobile($buyerRegMobile) + { + $this->buyerRegMobile = $buyerRegMobile; + $this->apiParas["buyer_reg_mobile"] = $buyerRegMobile; + } + + public function getBuyerRegMobile() + { + return $this->buyerRegMobile; + } + + public function setBuyerSceneBankcard($buyerSceneBankcard) + { + $this->buyerSceneBankcard = $buyerSceneBankcard; + $this->apiParas["buyer_scene_bankcard"] = $buyerSceneBankcard; + } + + public function getBuyerSceneBankcard() + { + return $this->buyerSceneBankcard; + } + + public function setBuyerSceneBankcardType($buyerSceneBankcardType) + { + $this->buyerSceneBankcardType = $buyerSceneBankcardType; + $this->apiParas["buyer_scene_bankcard_type"] = $buyerSceneBankcardType; + } + + public function getBuyerSceneBankcardType() + { + return $this->buyerSceneBankcardType; + } + + public function setBuyerSceneEmail($buyerSceneEmail) + { + $this->buyerSceneEmail = $buyerSceneEmail; + $this->apiParas["buyer_scene_email"] = $buyerSceneEmail; + } + + public function getBuyerSceneEmail() + { + return $this->buyerSceneEmail; + } + + public function setBuyerSceneMobile($buyerSceneMobile) + { + $this->buyerSceneMobile = $buyerSceneMobile; + $this->apiParas["buyer_scene_mobile"] = $buyerSceneMobile; + } + + public function getBuyerSceneMobile() + { + return $this->buyerSceneMobile; + } + + public function setCurrency($currency) + { + $this->currency = $currency; + $this->apiParas["currency"] = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setEnvClientBaseBand($envClientBaseBand) + { + $this->envClientBaseBand = $envClientBaseBand; + $this->apiParas["env_client_base_band"] = $envClientBaseBand; + } + + public function getEnvClientBaseBand() + { + return $this->envClientBaseBand; + } + + public function setEnvClientBaseStation($envClientBaseStation) + { + $this->envClientBaseStation = $envClientBaseStation; + $this->apiParas["env_client_base_station"] = $envClientBaseStation; + } + + public function getEnvClientBaseStation() + { + return $this->envClientBaseStation; + } + + public function setEnvClientCoordinates($envClientCoordinates) + { + $this->envClientCoordinates = $envClientCoordinates; + $this->apiParas["env_client_coordinates"] = $envClientCoordinates; + } + + public function getEnvClientCoordinates() + { + return $this->envClientCoordinates; + } + + public function setEnvClientImei($envClientImei) + { + $this->envClientImei = $envClientImei; + $this->apiParas["env_client_imei"] = $envClientImei; + } + + public function getEnvClientImei() + { + return $this->envClientImei; + } + + public function setEnvClientImsi($envClientImsi) + { + $this->envClientImsi = $envClientImsi; + $this->apiParas["env_client_imsi"] = $envClientImsi; + } + + public function getEnvClientImsi() + { + return $this->envClientImsi; + } + + public function setEnvClientIosUdid($envClientIosUdid) + { + $this->envClientIosUdid = $envClientIosUdid; + $this->apiParas["env_client_ios_udid"] = $envClientIosUdid; + } + + public function getEnvClientIosUdid() + { + return $this->envClientIosUdid; + } + + public function setEnvClientIp($envClientIp) + { + $this->envClientIp = $envClientIp; + $this->apiParas["env_client_ip"] = $envClientIp; + } + + public function getEnvClientIp() + { + return $this->envClientIp; + } + + public function setEnvClientMac($envClientMac) + { + $this->envClientMac = $envClientMac; + $this->apiParas["env_client_mac"] = $envClientMac; + } + + public function getEnvClientMac() + { + return $this->envClientMac; + } + + public function setEnvClientScreen($envClientScreen) + { + $this->envClientScreen = $envClientScreen; + $this->apiParas["env_client_screen"] = $envClientScreen; + } + + public function getEnvClientScreen() + { + return $this->envClientScreen; + } + + public function setEnvClientUuid($envClientUuid) + { + $this->envClientUuid = $envClientUuid; + $this->apiParas["env_client_uuid"] = $envClientUuid; + } + + public function getEnvClientUuid() + { + return $this->envClientUuid; + } + + public function setItemQuantity($itemQuantity) + { + $this->itemQuantity = $itemQuantity; + $this->apiParas["item_quantity"] = $itemQuantity; + } + + public function getItemQuantity() + { + return $this->itemQuantity; + } + + public function setItemUnitPrice($itemUnitPrice) + { + $this->itemUnitPrice = $itemUnitPrice; + $this->apiParas["item_unit_price"] = $itemUnitPrice; + } + + public function getItemUnitPrice() + { + return $this->itemUnitPrice; + } + + public function setJsTokenId($jsTokenId) + { + $this->jsTokenId = $jsTokenId; + $this->apiParas["js_token_id"] = $jsTokenId; + } + + public function getJsTokenId() + { + return $this->jsTokenId; + } + + public function setOrderAmount($orderAmount) + { + $this->orderAmount = $orderAmount; + $this->apiParas["order_amount"] = $orderAmount; + } + + public function getOrderAmount() + { + return $this->orderAmount; + } + + public function setOrderCategory($orderCategory) + { + $this->orderCategory = $orderCategory; + $this->apiParas["order_category"] = $orderCategory; + } + + public function getOrderCategory() + { + return $this->orderCategory; + } + + public function setOrderCredateTime($orderCredateTime) + { + $this->orderCredateTime = $orderCredateTime; + $this->apiParas["order_credate_time"] = $orderCredateTime; + } + + public function getOrderCredateTime() + { + return $this->orderCredateTime; + } + + public function setOrderItemCity($orderItemCity) + { + $this->orderItemCity = $orderItemCity; + $this->apiParas["order_item_city"] = $orderItemCity; + } + + public function getOrderItemCity() + { + return $this->orderItemCity; + } + + public function setOrderItemName($orderItemName) + { + $this->orderItemName = $orderItemName; + $this->apiParas["order_item_name"] = $orderItemName; + } + + public function getOrderItemName() + { + return $this->orderItemName; + } + + public function setOrderNo($orderNo) + { + $this->orderNo = $orderNo; + $this->apiParas["order_no"] = $orderNo; + } + + public function getOrderNo() + { + return $this->orderNo; + } + + public function setPartnerId($partnerId) + { + $this->partnerId = $partnerId; + $this->apiParas["partner_id"] = $partnerId; + } + + public function getPartnerId() + { + return $this->partnerId; + } + + public function setReceiverAddress($receiverAddress) + { + $this->receiverAddress = $receiverAddress; + $this->apiParas["receiver_address"] = $receiverAddress; + } + + public function getReceiverAddress() + { + return $this->receiverAddress; + } + + public function setReceiverCity($receiverCity) + { + $this->receiverCity = $receiverCity; + $this->apiParas["receiver_city"] = $receiverCity; + } + + public function getReceiverCity() + { + return $this->receiverCity; + } + + public function setReceiverDistrict($receiverDistrict) + { + $this->receiverDistrict = $receiverDistrict; + $this->apiParas["receiver_district"] = $receiverDistrict; + } + + public function getReceiverDistrict() + { + return $this->receiverDistrict; + } + + public function setReceiverEmail($receiverEmail) + { + $this->receiverEmail = $receiverEmail; + $this->apiParas["receiver_email"] = $receiverEmail; + } + + public function getReceiverEmail() + { + return $this->receiverEmail; + } + + public function setReceiverMobile($receiverMobile) + { + $this->receiverMobile = $receiverMobile; + $this->apiParas["receiver_mobile"] = $receiverMobile; + } + + public function getReceiverMobile() + { + return $this->receiverMobile; + } + + public function setReceiverName($receiverName) + { + $this->receiverName = $receiverName; + $this->apiParas["receiver_name"] = $receiverName; + } + + public function getReceiverName() + { + return $this->receiverName; + } + + public function setReceiverState($receiverState) + { + $this->receiverState = $receiverState; + $this->apiParas["receiver_state"] = $receiverState; + } + + public function getReceiverState() + { + return $this->receiverState; + } + + public function setReceiverZip($receiverZip) + { + $this->receiverZip = $receiverZip; + $this->apiParas["receiver_zip"] = $receiverZip; + } + + public function getReceiverZip() + { + return $this->receiverZip; + } + + public function setSceneCode($sceneCode) + { + $this->sceneCode = $sceneCode; + $this->apiParas["scene_code"] = $sceneCode; + } + + public function getSceneCode() + { + return $this->sceneCode; + } + + public function setSellerAccountNo($sellerAccountNo) + { + $this->sellerAccountNo = $sellerAccountNo; + $this->apiParas["seller_account_no"] = $sellerAccountNo; + } + + public function getSellerAccountNo() + { + return $this->sellerAccountNo; + } + + public function setSellerBindBankcard($sellerBindBankcard) + { + $this->sellerBindBankcard = $sellerBindBankcard; + $this->apiParas["seller_bind_bankcard"] = $sellerBindBankcard; + } + + public function getSellerBindBankcard() + { + return $this->sellerBindBankcard; + } + + public function setSellerBindBankcardType($sellerBindBankcardType) + { + $this->sellerBindBankcardType = $sellerBindBankcardType; + $this->apiParas["seller_bind_bankcard_type"] = $sellerBindBankcardType; + } + + public function getSellerBindBankcardType() + { + return $this->sellerBindBankcardType; + } + + public function setSellerBindMobile($sellerBindMobile) + { + $this->sellerBindMobile = $sellerBindMobile; + $this->apiParas["seller_bind_mobile"] = $sellerBindMobile; + } + + public function getSellerBindMobile() + { + return $this->sellerBindMobile; + } + + public function setSellerIdentityNo($sellerIdentityNo) + { + $this->sellerIdentityNo = $sellerIdentityNo; + $this->apiParas["seller_identity_no"] = $sellerIdentityNo; + } + + public function getSellerIdentityNo() + { + return $this->sellerIdentityNo; + } + + public function setSellerIdentityType($sellerIdentityType) + { + $this->sellerIdentityType = $sellerIdentityType; + $this->apiParas["seller_identity_type"] = $sellerIdentityType; + } + + public function getSellerIdentityType() + { + return $this->sellerIdentityType; + } + + public function setSellerRealName($sellerRealName) + { + $this->sellerRealName = $sellerRealName; + $this->apiParas["seller_real_name"] = $sellerRealName; + } + + public function getSellerRealName() + { + return $this->sellerRealName; + } + + public function setSellerRegDate($sellerRegDate) + { + $this->sellerRegDate = $sellerRegDate; + $this->apiParas["seller_reg_date"] = $sellerRegDate; + } + + public function getSellerRegDate() + { + return $this->sellerRegDate; + } + + public function setSellerRegEmail($sellerRegEmail) + { + $this->sellerRegEmail = $sellerRegEmail; + $this->apiParas["seller_reg_email"] = $sellerRegEmail; + } + + public function getSellerRegEmail() + { + return $this->sellerRegEmail; + } + + public function setSellerRegMoile($sellerRegMoile) + { + $this->sellerRegMoile = $sellerRegMoile; + $this->apiParas["seller_reg_moile"] = $sellerRegMoile; + } + + public function getSellerRegMoile() + { + return $this->sellerRegMoile; + } + + public function setTransportType($transportType) + { + $this->transportType = $transportType; + $this->apiParas["transport_type"] = $transportType; + } + + public function getTransportType() + { + return $this->transportType; + } + + public function getApiMethodName() + { + return "alipay.security.risk.detect"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskHideDeviceidQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskHideDeviceidQueryRequest.php new file mode 100644 index 0000000..0c40a2d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskHideDeviceidQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.risk.hide.deviceid.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskRainscoreQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskRainscoreQueryRequest.php new file mode 100644 index 0000000..91db572 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySecurityRiskRainscoreQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.security.risk.rainscore.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySystemOauthTokenRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySystemOauthTokenRequest.php new file mode 100644 index 0000000..47c49ef --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipaySystemOauthTokenRequest.php @@ -0,0 +1,150 @@ +code = $code; + $this->apiParas["code"] = $code; + } + + public function getCode() + { + return $this->code; + } + + public function setGrantType($grantType) + { + $this->grantType = $grantType; + $this->apiParas["grant_type"] = $grantType; + } + + public function getGrantType() + { + return $this->grantType; + } + + public function setRefreshToken($refreshToken) + { + $this->refreshToken = $refreshToken; + $this->apiParas["refresh_token"] = $refreshToken; + } + + public function getRefreshToken() + { + return $this->refreshToken; + } + + public function getApiMethodName() + { + return "alipay.system.oauth.token"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeAppPayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeAppPayRequest.php new file mode 100644 index 0000000..0633185 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeAppPayRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.app.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCancelRequest.php new file mode 100644 index 0000000..b81c858 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCloseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCloseRequest.php new file mode 100644 index 0000000..1df13ec --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCloseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.close"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCreateRequest.php new file mode 100644 index 0000000..023fdd4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCustomsDeclareRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCustomsDeclareRequest.php new file mode 100644 index 0000000..e1b441e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCustomsDeclareRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.customs.declare"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCustomsQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCustomsQueryRequest.php new file mode 100644 index 0000000..17e9ce8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeCustomsQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.customs.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeFastpayRefundQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeFastpayRefundQueryRequest.php new file mode 100644 index 0000000..0a15a47 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeFastpayRefundQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.fastpay.refund.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeOrderSettleRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeOrderSettleRequest.php new file mode 100644 index 0000000..0063b7c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeOrderSettleRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.order.settle"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePagePayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePagePayRequest.php new file mode 100644 index 0000000..c39a510 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePagePayRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.page.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePayRequest.php new file mode 100644 index 0000000..c10a61c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePayRequest.php @@ -0,0 +1,119 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePrecreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePrecreateRequest.php new file mode 100644 index 0000000..ffa184e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradePrecreateRequest.php @@ -0,0 +1,119 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.precreate"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeQueryRequest.php new file mode 100644 index 0000000..68524c8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeQueryRequest.php @@ -0,0 +1,119 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeRefundRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeRefundRequest.php new file mode 100644 index 0000000..2c16b9d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeRefundRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.refund"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeVendorpayDevicedataUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeVendorpayDevicedataUploadRequest.php new file mode 100644 index 0000000..15c8600 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeVendorpayDevicedataUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.vendorpay.devicedata.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeWapPayRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeWapPayRequest.php new file mode 100644 index 0000000..11e4df4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTradeWapPayRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trade.wap.pay"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTransferThirdpartyBillCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTransferThirdpartyBillCreateRequest.php new file mode 100644 index 0000000..cab51ac --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTransferThirdpartyBillCreateRequest.php @@ -0,0 +1,301 @@ +amount = $amount; + $this->apiParas["amount"] = $amount; + } + + public function getAmount() + { + return $this->amount; + } + + public function setCurrency($currency) + { + $this->currency = $currency; + $this->apiParas["currency"] = $currency; + } + + public function getCurrency() + { + return $this->currency; + } + + public function setExtParam($extParam) + { + $this->extParam = $extParam; + $this->apiParas["ext_param"] = $extParam; + } + + public function getExtParam() + { + return $this->extParam; + } + + public function setMemo($memo) + { + $this->memo = $memo; + $this->apiParas["memo"] = $memo; + } + + public function getMemo() + { + return $this->memo; + } + + public function setPartnerId($partnerId) + { + $this->partnerId = $partnerId; + $this->apiParas["partner_id"] = $partnerId; + } + + public function getPartnerId() + { + return $this->partnerId; + } + + public function setPayeeAccount($payeeAccount) + { + $this->payeeAccount = $payeeAccount; + $this->apiParas["payee_account"] = $payeeAccount; + } + + public function getPayeeAccount() + { + return $this->payeeAccount; + } + + public function setPayeeType($payeeType) + { + $this->payeeType = $payeeType; + $this->apiParas["payee_type"] = $payeeType; + } + + public function getPayeeType() + { + return $this->payeeType; + } + + public function setPayerAccount($payerAccount) + { + $this->payerAccount = $payerAccount; + $this->apiParas["payer_account"] = $payerAccount; + } + + public function getPayerAccount() + { + return $this->payerAccount; + } + + public function setPayerType($payerType) + { + $this->payerType = $payerType; + $this->apiParas["payer_type"] = $payerType; + } + + public function getPayerType() + { + return $this->payerType; + } + + public function setPaymentId($paymentId) + { + $this->paymentId = $paymentId; + $this->apiParas["payment_id"] = $paymentId; + } + + public function getPaymentId() + { + return $this->paymentId; + } + + public function setPaymentSource($paymentSource) + { + $this->paymentSource = $paymentSource; + $this->apiParas["payment_source"] = $paymentSource; + } + + public function getPaymentSource() + { + return $this->paymentSource; + } + + public function setTitle($title) + { + $this->title = $title; + $this->apiParas["title"] = $title; + } + + public function getTitle() + { + return $this->title; + } + + public function getApiMethodName() + { + return "alipay.transfer.thirdparty.bill.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserAuthSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserAuthSendRequest.php new file mode 100644 index 0000000..b606c25 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserAuthSendRequest.php @@ -0,0 +1,118 @@ +aliTrustUserInfo = $aliTrustUserInfo; + $this->apiParas["ali_trust_user_info"] = $aliTrustUserInfo; + } + + public function getAliTrustUserInfo() + { + return $this->aliTrustUserInfo; + } + + public function getApiMethodName() + { + return "alipay.trust.user.auth.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserReportGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserReportGetRequest.php new file mode 100644 index 0000000..6e9da27 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserReportGetRequest.php @@ -0,0 +1,134 @@ +scene = $scene; + $this->apiParas["scene"] = $scene; + } + + public function getScene() + { + return $this->scene; + } + + public function setType($type) + { + $this->type = $type; + $this->apiParas["type"] = $type; + } + + public function getType() + { + return $this->type; + } + + public function getApiMethodName() + { + return "alipay.trust.user.report.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserRiskSummaryGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserRiskSummaryGetRequest.php new file mode 100644 index 0000000..36d7500 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserRiskSummaryGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.trust.user.risk.summary.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserRiskidentifyGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserRiskidentifyGetRequest.php new file mode 100644 index 0000000..13f088d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserRiskidentifyGetRequest.php @@ -0,0 +1,118 @@ +type = $type; + $this->apiParas["type"] = $type; + } + + public function getType() + { + return $this->type; + } + + public function getApiMethodName() + { + return "alipay.trust.user.riskidentify.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserScoreGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserScoreGetRequest.php new file mode 100644 index 0000000..081fd81 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserScoreGetRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserStandardVerifyGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserStandardVerifyGetRequest.php new file mode 100644 index 0000000..31f0786 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserStandardVerifyGetRequest.php @@ -0,0 +1,118 @@ +aliTrustUserInfo = $aliTrustUserInfo; + $this->apiParas["ali_trust_user_info"] = $aliTrustUserInfo; + } + + public function getAliTrustUserInfo() + { + return $this->aliTrustUserInfo; + } + + public function getApiMethodName() + { + return "alipay.trust.user.standard.verify.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserTokenGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserTokenGetRequest.php new file mode 100644 index 0000000..717b23b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserTokenGetRequest.php @@ -0,0 +1,118 @@ +aliTrustUserInfo = $aliTrustUserInfo; + $this->apiParas["ali_trust_user_info"] = $aliTrustUserInfo; + } + + public function getAliTrustUserInfo() + { + return $this->aliTrustUserInfo; + } + + public function getApiMethodName() + { + return "alipay.trust.user.token.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserZminfoPairGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserZminfoPairGetRequest.php new file mode 100644 index 0000000..7c1000d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayTrustUserZminfoPairGetRequest.php @@ -0,0 +1,150 @@ +applyUserInfo = $applyUserInfo; + $this->apiParas["apply_user_info"] = $applyUserInfo; + } + + public function getApplyUserInfo() + { + return $this->applyUserInfo; + } + + public function setOwnerUserInfo($ownerUserInfo) + { + $this->ownerUserInfo = $ownerUserInfo; + $this->apiParas["owner_user_info"] = $ownerUserInfo; + } + + public function getOwnerUserInfo() + { + return $this->ownerUserInfo; + } + + public function setZmInfoType($zmInfoType) + { + $this->zmInfoType = $zmInfoType; + $this->apiParas["zm_info_type"] = $zmInfoType; + } + + public function getZmInfoType() + { + return $this->zmInfoType; + } + + public function getApiMethodName() + { + return "alipay.trust.user.zminfo.pair.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountFreezeGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountFreezeGetRequest.php new file mode 100644 index 0000000..47e0c1c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountFreezeGetRequest.php @@ -0,0 +1,118 @@ +freezeType = $freezeType; + $this->apiParas["freeze_type"] = $freezeType; + } + + public function getFreezeType() + { + return $this->freezeType; + } + + public function getApiMethodName() + { + return "alipay.user.account.freeze.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountGetRequest.php new file mode 100644 index 0000000..9e74290 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountGetRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountSearchRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountSearchRequest.php new file mode 100644 index 0000000..8600210 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountSearchRequest.php @@ -0,0 +1,198 @@ +endTime = $endTime; + $this->apiParas["end_time"] = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setFields($fields) + { + $this->fields = $fields; + $this->apiParas["fields"] = $fields; + } + + public function getFields() + { + return $this->fields; + } + + public function setPageNo($pageNo) + { + $this->pageNo = $pageNo; + $this->apiParas["page_no"] = $pageNo; + } + + public function getPageNo() + { + return $this->pageNo; + } + + public function setPageSize($pageSize) + { + $this->pageSize = $pageSize; + $this->apiParas["page_size"] = $pageSize; + } + + public function getPageSize() + { + return $this->pageSize; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + $this->apiParas["start_time"] = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function setType($type) + { + $this->type = $type; + $this->apiParas["type"] = $type; + } + + public function getType() + { + return $this->type; + } + + public function getApiMethodName() + { + return "alipay.user.account.search"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountUseridBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountUseridBatchqueryRequest.php new file mode 100644 index 0000000..b68e2c4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAccountUseridBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.user.account.userid.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAddressQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAddressQueryRequest.php new file mode 100644 index 0000000..50858ee --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAddressQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.user.address.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAuthZhimaorgIdentityApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAuthZhimaorgIdentityApplyRequest.php new file mode 100644 index 0000000..c02d51e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserAuthZhimaorgIdentityApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.user.auth.zhimaorg.identity.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserContractGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserContractGetRequest.php new file mode 100644 index 0000000..1101d1a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserContractGetRequest.php @@ -0,0 +1,118 @@ +subscriberUserId = $subscriberUserId; + $this->apiParas["subscriber_user_id"] = $subscriberUserId; + } + + public function getSubscriberUserId() + { + return $this->subscriberUserId; + } + + public function getApiMethodName() + { + return "alipay.user.contract.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserFinanceinfoShareRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserFinanceinfoShareRequest.php new file mode 100644 index 0000000..c14ade6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserFinanceinfoShareRequest.php @@ -0,0 +1,119 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.user.financeinfo.share"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserGetRequest.php new file mode 100644 index 0000000..837bc73 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserGetRequest.php @@ -0,0 +1,118 @@ +fields = $fields; + $this->apiParas["fields"] = $fields; + } + + public function getFields() + { + return $this->fields; + } + + public function getApiMethodName() + { + return "alipay.user.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserInfoAuthRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserInfoAuthRequest.php new file mode 100644 index 0000000..20079fc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserInfoAuthRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.user.info.auth"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserInfoShareRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserInfoShareRequest.php new file mode 100644 index 0000000..b5d7e9d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserInfoShareRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserMemberCardUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserMemberCardUpdateRequest.php new file mode 100644 index 0000000..1ba45f8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserMemberCardUpdateRequest.php @@ -0,0 +1,277 @@ +balance = $balance; + $this->apiParas["balance"] = $balance; + } + + public function getBalance() + { + return $this->balance; + } + + public function setBizCardNo($bizCardNo) + { + $this->bizCardNo = $bizCardNo; + $this->apiParas["biz_card_no"] = $bizCardNo; + } + + public function getBizCardNo() + { + return $this->bizCardNo; + } + + public function setCardMerchantInfo($cardMerchantInfo) + { + $this->cardMerchantInfo = $cardMerchantInfo; + $this->apiParas["card_merchant_info"] = $cardMerchantInfo; + } + + public function getCardMerchantInfo() + { + return $this->cardMerchantInfo; + } + + public function setExtInfo($extInfo) + { + $this->extInfo = $extInfo; + $this->apiParas["ext_info"] = $extInfo; + } + + public function getExtInfo() + { + return $this->extInfo; + } + + public function setExternalCardNo($externalCardNo) + { + $this->externalCardNo = $externalCardNo; + $this->apiParas["external_card_no"] = $externalCardNo; + } + + public function getExternalCardNo() + { + return $this->externalCardNo; + } + + public function setIssuerType($issuerType) + { + $this->issuerType = $issuerType; + $this->apiParas["issuer_type"] = $issuerType; + } + + public function getIssuerType() + { + return $this->issuerType; + } + + public function setLevel($level) + { + $this->level = $level; + $this->apiParas["level"] = $level; + } + + public function getLevel() + { + return $this->level; + } + + public function setOrrurTime($orrurTime) + { + $this->orrurTime = $orrurTime; + $this->apiParas["orrur_time"] = $orrurTime; + } + + public function getOrrurTime() + { + return $this->orrurTime; + } + + public function setPoint($point) + { + $this->point = $point; + $this->apiParas["point"] = $point; + } + + public function getPoint() + { + return $this->point; + } + + public function setRequestFrom($requestFrom) + { + $this->requestFrom = $requestFrom; + $this->apiParas["request_from"] = $requestFrom; + } + + public function getRequestFrom() + { + return $this->requestFrom; + } + + public function getApiMethodName() + { + return "alipay.user.member.card.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserTestRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserTestRequest.php new file mode 100644 index 0000000..224ff4c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserTestRequest.php @@ -0,0 +1,118 @@ +userinfo = $userinfo; + $this->apiParas["userinfo"] = $userinfo; + } + + public function getUserinfo() + { + return $this->userinfo; + } + + public function getApiMethodName() + { + return "alipay.user.test"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserTradeSearchRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserTradeSearchRequest.php new file mode 100644 index 0000000..f14e887 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserTradeSearchRequest.php @@ -0,0 +1,246 @@ +alipayOrderNo = $alipayOrderNo; + $this->apiParas["alipay_order_no"] = $alipayOrderNo; + } + + public function getAlipayOrderNo() + { + return $this->alipayOrderNo; + } + + public function setEndTime($endTime) + { + $this->endTime = $endTime; + $this->apiParas["end_time"] = $endTime; + } + + public function getEndTime() + { + return $this->endTime; + } + + public function setMerchantOrderNo($merchantOrderNo) + { + $this->merchantOrderNo = $merchantOrderNo; + $this->apiParas["merchant_order_no"] = $merchantOrderNo; + } + + public function getMerchantOrderNo() + { + return $this->merchantOrderNo; + } + + public function setOrderFrom($orderFrom) + { + $this->orderFrom = $orderFrom; + $this->apiParas["order_from"] = $orderFrom; + } + + public function getOrderFrom() + { + return $this->orderFrom; + } + + public function setOrderStatus($orderStatus) + { + $this->orderStatus = $orderStatus; + $this->apiParas["order_status"] = $orderStatus; + } + + public function getOrderStatus() + { + return $this->orderStatus; + } + + public function setOrderType($orderType) + { + $this->orderType = $orderType; + $this->apiParas["order_type"] = $orderType; + } + + public function getOrderType() + { + return $this->orderType; + } + + public function setPageNo($pageNo) + { + $this->pageNo = $pageNo; + $this->apiParas["page_no"] = $pageNo; + } + + public function getPageNo() + { + return $this->pageNo; + } + + public function setPageSize($pageSize) + { + $this->pageSize = $pageSize; + $this->apiParas["page_size"] = $pageSize; + } + + public function getPageSize() + { + return $this->pageSize; + } + + public function setStartTime($startTime) + { + $this->startTime = $startTime; + $this->apiParas["start_time"] = $startTime; + } + + public function getStartTime() + { + return $this->startTime; + } + + public function getApiMethodName() + { + return "alipay.user.trade.search"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserUserinfoShareRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserUserinfoShareRequest.php new file mode 100644 index 0000000..ab6da9c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayUserUserinfoShareRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsEasyserviceRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsEasyserviceRequest.php new file mode 100644 index 0000000..f5e2d1f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsEasyserviceRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.zdataassets.easyservice"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsFcdatalabZdatamergetaskRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsFcdatalabZdatamergetaskRequest.php new file mode 100644 index 0000000..b60363b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsFcdatalabZdatamergetaskRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.zdataassets.fcdatalab.zdatamergetask"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsMetadataRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsMetadataRequest.php new file mode 100644 index 0000000..29af00c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataassetsMetadataRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "alipay.zdataassets.metadata"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontCommonQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontCommonQueryRequest.php new file mode 100644 index 0000000..62512d9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontCommonQueryRequest.php @@ -0,0 +1,200 @@ +0,就先判断cache中的数据是否过期,如果没有过期就返回cache中的数据,如果过期再从外部获取数据并刷新cache,然后返回数据。 +单位:秒 + **/ + private $cacheInterval; + + /** + * 通用查询的入参 + **/ + private $queryConditions; + + /** + * 服务名称请与相关开发负责人联系 + **/ + private $serviceName; + + /** + * 访问该服务的业务 + **/ + private $visitBiz; + + /** + * 访问该服务的业务线 + **/ + private $visitBizLine; + + /** + * 访问该服务的部门名称 + **/ + private $visitDomain; + + private $apiParas = array(); + private $terminalType; + private $terminalInfo; + private $prodCode; + private $apiVersion="1.0"; + private $notifyUrl; + private $returnUrl; + private $needEncrypt=false; + + + public function setCacheInterval($cacheInterval) + { + $this->cacheInterval = $cacheInterval; + $this->apiParas["cache_interval"] = $cacheInterval; + } + + public function getCacheInterval() + { + return $this->cacheInterval; + } + + public function setQueryConditions($queryConditions) + { + $this->queryConditions = $queryConditions; + $this->apiParas["query_conditions"] = $queryConditions; + } + + public function getQueryConditions() + { + return $this->queryConditions; + } + + public function setServiceName($serviceName) + { + $this->serviceName = $serviceName; + $this->apiParas["service_name"] = $serviceName; + } + + public function getServiceName() + { + return $this->serviceName; + } + + public function setVisitBiz($visitBiz) + { + $this->visitBiz = $visitBiz; + $this->apiParas["visit_biz"] = $visitBiz; + } + + public function getVisitBiz() + { + return $this->visitBiz; + } + + public function setVisitBizLine($visitBizLine) + { + $this->visitBizLine = $visitBizLine; + $this->apiParas["visit_biz_line"] = $visitBizLine; + } + + public function getVisitBizLine() + { + return $this->visitBizLine; + } + + public function setVisitDomain($visitDomain) + { + $this->visitDomain = $visitDomain; + $this->apiParas["visit_domain"] = $visitDomain; + } + + public function getVisitDomain() + { + return $this->visitDomain; + } + + public function getApiMethodName() + { + return "alipay.zdatafront.common.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontDatatransferedFileuploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontDatatransferedFileuploadRequest.php new file mode 100644 index 0000000..9cbee3d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontDatatransferedFileuploadRequest.php @@ -0,0 +1,230 @@ +columns = $columns; + $this->apiParas["columns"] = $columns; + } + + public function getColumns() + { + return $this->columns; + } + + public function setFile($file) + { + $this->file = $file; + $this->apiParas["file"] = $file; + } + + public function getFile() + { + return $this->file; + } + + public function setFileDescription($fileDescription) + { + $this->fileDescription = $fileDescription; + $this->apiParas["file_description"] = $fileDescription; + } + + public function getFileDescription() + { + return $this->fileDescription; + } + + public function setFileDigest($fileDigest) + { + $this->fileDigest = $fileDigest; + $this->apiParas["file_digest"] = $fileDigest; + } + + public function getFileDigest() + { + return $this->fileDigest; + } + + public function setFileType($fileType) + { + $this->fileType = $fileType; + $this->apiParas["file_type"] = $fileType; + } + + public function getFileType() + { + return $this->fileType; + } + + public function setPrimaryKey($primaryKey) + { + $this->primaryKey = $primaryKey; + $this->apiParas["primary_key"] = $primaryKey; + } + + public function getPrimaryKey() + { + return $this->primaryKey; + } + + public function setRecords($records) + { + $this->records = $records; + $this->apiParas["records"] = $records; + } + + public function getRecords() + { + return $this->records; + } + + public function setTypeId($typeId) + { + $this->typeId = $typeId; + $this->apiParas["type_id"] = $typeId; + } + + public function getTypeId() + { + return $this->typeId; + } + + public function getApiMethodName() + { + return "alipay.zdatafront.datatransfered.fileupload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontDatatransferedSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontDatatransferedSendRequest.php new file mode 100644 index 0000000..80ae5b3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdatafrontDatatransferedSendRequest.php @@ -0,0 +1,150 @@ +data = $data; + $this->apiParas["data"] = $data; + } + + public function getData() + { + return $this->data; + } + + public function setIdentity($identity) + { + $this->identity = $identity; + $this->apiParas["identity"] = $identity; + } + + public function getIdentity() + { + return $this->identity; + } + + public function setTypeId($typeId) + { + $this->typeId = $typeId; + $this->apiParas["type_id"] = $typeId; + } + + public function getTypeId() + { + return $this->typeId; + } + + public function getApiMethodName() + { + return "alipay.zdatafront.datatransfered.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataserviceUnidataQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataserviceUnidataQueryRequest.php new file mode 100644 index 0000000..67c16bb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZdataserviceUnidataQueryRequest.php @@ -0,0 +1,134 @@ +queryCondition = $queryCondition; + $this->apiParas["query_condition"] = $queryCondition; + } + + public function getQueryCondition() + { + return $this->queryCondition; + } + + public function setUniqKey($uniqKey) + { + $this->uniqKey = $uniqKey; + $this->apiParas["uniq_key"] = $uniqKey; + } + + public function getUniqKey() + { + return $this->uniqKey; + } + + public function getApiMethodName() + { + return "alipay.zdataservice.unidata.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZmscoreZrankGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZmscoreZrankGetRequest.php new file mode 100644 index 0000000..5407fa7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AlipayZmscoreZrankGetRequest.php @@ -0,0 +1,118 @@ +userId = $userId; + $this->apiParas["user_id"] = $userId; + } + + public function getUserId() + { + return $this->userId; + } + + public function getApiMethodName() + { + return "alipay.zmscore.zrank.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandContractFacetofaceQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandContractFacetofaceQueryRequest.php new file mode 100644 index 0000000..fce2e78 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandContractFacetofaceQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ant.merchant.expand.contract.facetoface.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandContractFacetofaceSignRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandContractFacetofaceSignRequest.php new file mode 100644 index 0000000..ea1576b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandContractFacetofaceSignRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ant.merchant.expand.contract.facetoface.sign"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandEnterpriseApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandEnterpriseApplyRequest.php new file mode 100644 index 0000000..188c08b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandEnterpriseApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ant.merchant.expand.enterprise.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandImageUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandImageUploadRequest.php new file mode 100644 index 0000000..62e5609 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandImageUploadRequest.php @@ -0,0 +1,134 @@ +imageContent = $imageContent; + $this->apiParas["image_content"] = $imageContent; + } + + public function getImageContent() + { + return $this->imageContent; + } + + public function setImageType($imageType) + { + $this->imageType = $imageType; + $this->apiParas["image_type"] = $imageType; + } + + public function getImageType() + { + return $this->imageType; + } + + public function getApiMethodName() + { + return "ant.merchant.expand.image.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandMapplyorderQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandMapplyorderQueryRequest.php new file mode 100644 index 0000000..1d53be0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandMapplyorderQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ant.merchant.expand.mapplyorder.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandMerchantStorelistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandMerchantStorelistQueryRequest.php new file mode 100644 index 0000000..3ee38c7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandMerchantStorelistQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ant.merchant.expand.merchant.storelist.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandPersonalApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandPersonalApplyRequest.php new file mode 100644 index 0000000..7d22b81 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/AntMerchantExpandPersonalApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ant.merchant.expand.personal.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountAuthwebBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountAuthwebBatchqueryRequest.php new file mode 100644 index 0000000..f337a37 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountAuthwebBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.advert.delivery.discount.authweb.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountGetRequest.php new file mode 100644 index 0000000..ce1ac0f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.advert.delivery.discount.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountQueryRequest.php new file mode 100644 index 0000000..e88d278 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.advert.delivery.discount.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountSendRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountSendRequest.php new file mode 100644 index 0000000..7eaa285 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountSendRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.advert.delivery.discount.send"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountWebBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountWebBatchqueryRequest.php new file mode 100644 index 0000000..29a4438 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryDiscountWebBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.advert.delivery.discount.web.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryItemApplyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryItemApplyRequest.php new file mode 100644 index 0000000..eea99b7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiAdvertDeliveryItemApplyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.advert.delivery.item.apply"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCommodityOrderBuyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCommodityOrderBuyRequest.php new file mode 100644 index 0000000..18a3e84 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCommodityOrderBuyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.catering.commodity.order.buy"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCrowdgroupConditionQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCrowdgroupConditionQueryRequest.php new file mode 100644 index 0000000..130896a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCrowdgroupConditionQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.catering.crowdgroup.condition.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCrowdgroupConditionSetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCrowdgroupConditionSetRequest.php new file mode 100644 index 0000000..86ba9ac --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringCrowdgroupConditionSetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.catering.crowdgroup.condition.set"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringTablecodeQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringTablecodeQueryRequest.php new file mode 100644 index 0000000..cb15935 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringTablecodeQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.catering.tablecode.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringTablelistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringTablelistQueryRequest.php new file mode 100644 index 0000000..08ef1b1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCateringTablelistQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.catering.tablelist.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderBatchqueryRequest.php new file mode 100644 index 0000000..1b21137 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.craftsman.data.provider.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderCreateRequest.php new file mode 100644 index 0000000..8e80a03 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.craftsman.data.provider.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderModifyRequest.php new file mode 100644 index 0000000..eb193e8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataProviderModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.craftsman.data.provider.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkBatchqueryRequest.php new file mode 100644 index 0000000..c5b5ce9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.craftsman.data.work.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkCreateRequest.php new file mode 100644 index 0000000..d7495b4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.craftsman.data.work.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkDeleteRequest.php new file mode 100644 index 0000000..b196e12 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.craftsman.data.work.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkModifyRequest.php new file mode 100644 index 0000000..a42ed26 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiCraftsmanDataWorkModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.craftsman.data.work.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemBatchqueryRequest.php new file mode 100644 index 0000000..81f0714 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemCategoryChildrenBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemCategoryChildrenBatchqueryRequest.php new file mode 100644 index 0000000..ebad7b6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemCategoryChildrenBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.category.children.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemCreateRequest.php new file mode 100644 index 0000000..b9c5891 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemBatchqueryRequest.php new file mode 100644 index 0000000..20c0707 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.extitem.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemBrandQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemBrandQueryRequest.php new file mode 100644 index 0000000..c531917 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemBrandQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemCategoryQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemCategoryQueryRequest.php new file mode 100644 index 0000000..d468a37 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemCategoryQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.extitem.category.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemCreateRequest.php new file mode 100644 index 0000000..9876a81 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.extitem.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemExistedQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemExistedQueryRequest.php new file mode 100644 index 0000000..fdb0d6c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemExistedQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.extitem.existed.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemQueryRequest.php new file mode 100644 index 0000000..c951871 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.extitem.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemUpdateRequest.php new file mode 100644 index 0000000..398112c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemExtitemUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.extitem.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemModifyRequest.php new file mode 100644 index 0000000..0b9d2df --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemStateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemStateRequest.php new file mode 100644 index 0000000..ca99771 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiItemStateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.item.state"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityBatchqueryRequest.php new file mode 100644 index 0000000..89026c3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.activity.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityCreateRequest.php new file mode 100644 index 0000000..f53d703 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.activity.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityModifyRequest.php new file mode 100644 index 0000000..814870f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.activity.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityOfflineRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityOfflineRequest.php new file mode 100644 index 0000000..311a83f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityOfflineRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.activity.offline"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityQueryRequest.php new file mode 100644 index 0000000..c882d41 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignActivityQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.activity.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignAssetDetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignAssetDetailQueryRequest.php new file mode 100644 index 0000000..732cf40 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignAssetDetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.asset.detail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdBatchqueryRequest.php new file mode 100644 index 0000000..8f7844c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.crowd.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdCountRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdCountRequest.php new file mode 100644 index 0000000..7774564 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdCountRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.crowd.count"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdCreateRequest.php new file mode 100644 index 0000000..64ce1f6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.crowd.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdDeleteRequest.php new file mode 100644 index 0000000..d5016de --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.crowd.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdDetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdDetailQueryRequest.php new file mode 100644 index 0000000..a8f4ede --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdDetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.crowd.detail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdModifyRequest.php new file mode 100644 index 0000000..2edb5f3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignCrowdModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.crowd.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignDetailInfoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignDetailInfoQueryRequest.php new file mode 100644 index 0000000..d89ce43 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignDetailInfoQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.detail.info.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoBatchqueryRequest.php new file mode 100644 index 0000000..a8c7496 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.intelligent.promo.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoConsultRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoConsultRequest.php new file mode 100644 index 0000000..c3a229b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoConsultRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.intelligent.promo.consult"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoCreateRequest.php new file mode 100644 index 0000000..284f86e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.intelligent.promo.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoDeleteRequest.php new file mode 100644 index 0000000..95323bd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.intelligent.promo.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoModifyRequest.php new file mode 100644 index 0000000..3935232 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.intelligent.promo.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoQueryRequest.php new file mode 100644 index 0000000..205eb2e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentPromoQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.intelligent.promo.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentShopConsultRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentShopConsultRequest.php new file mode 100644 index 0000000..0a68123 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentShopConsultRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.intelligent.shop.consult"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentTemplateConsultRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentTemplateConsultRequest.php new file mode 100644 index 0000000..2e69b0d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignIntelligentTemplateConsultRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.intelligent.template.consult"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignRecruitApplyQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignRecruitApplyQueryRequest.php new file mode 100644 index 0000000..1ba89c3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignRecruitApplyQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.recruit.apply.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignRecruitShopQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignRecruitShopQueryRequest.php new file mode 100644 index 0000000..061d868 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignRecruitShopQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.recruit.shop.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignTagsQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignTagsQueryRequest.php new file mode 100644 index 0000000..3d6591f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignTagsQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignUserAssetQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignUserAssetQueryRequest.php new file mode 100644 index 0000000..ddfab06 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingCampaignUserAssetQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.campaign.user.asset.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataActivityBillDownloadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataActivityBillDownloadRequest.php new file mode 100644 index 0000000..e073d5e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataActivityBillDownloadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.activity.bill.download"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataActivityReportQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataActivityReportQueryRequest.php new file mode 100644 index 0000000..fd6a328 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataActivityReportQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.activity.report.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataAlisisReportBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataAlisisReportBatchqueryRequest.php new file mode 100644 index 0000000..014750e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataAlisisReportBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.alisis.report.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataAlisisReportQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataAlisisReportQueryRequest.php new file mode 100644 index 0000000..ef3b399 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataAlisisReportQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.alisis.report.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMemberprofileQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMemberprofileQueryRequest.php new file mode 100644 index 0000000..b605c01 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMemberprofileQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.bizadviser.memberprofile.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMyddsreportQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMyddsreportQueryRequest.php new file mode 100644 index 0000000..990303a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMyddsreportQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.bizadviser.myddsreport.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMyreportQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMyreportQueryRequest.php new file mode 100644 index 0000000..5219918 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataBizadviserMyreportQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.bizadviser.myreport.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportBatchqueryRequest.php new file mode 100644 index 0000000..c627248 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.customreport.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportDeleteRequest.php new file mode 100644 index 0000000..5b3834b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.customreport.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportDetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportDetailQueryRequest.php new file mode 100644 index 0000000..8fedb96 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportDetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.customreport.detail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportQueryRequest.php new file mode 100644 index 0000000..5300093 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.customreport.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportSaveRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportSaveRequest.php new file mode 100644 index 0000000..8b56cbe --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomreportSaveRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.customreport.save"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagBatchqueryRequest.php new file mode 100644 index 0000000..aaf8ee6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagDeleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagDeleteRequest.php new file mode 100644 index 0000000..49a95c4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagDeleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.customtag.delete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagDetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagDetailQueryRequest.php new file mode 100644 index 0000000..f868e31 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagDetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.customtag.detail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagSaveRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagSaveRequest.php new file mode 100644 index 0000000..b2bdb5b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataCustomtagSaveRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.customtag.save"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataDishdiagnoseBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataDishdiagnoseBatchqueryRequest.php new file mode 100644 index 0000000..6054922 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataDishdiagnoseBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.dishdiagnose.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataDishdiagnosetypeBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataDishdiagnosetypeBatchqueryRequest.php new file mode 100644 index 0000000..6f4e2ec --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataDishdiagnosetypeBatchqueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataEnterpriseStaffinfoUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataEnterpriseStaffinfoUploadRequest.php new file mode 100644 index 0000000..8f7b39d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataEnterpriseStaffinfoUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.enterprise.staffinfo.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIndicatorQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIndicatorQueryRequest.php new file mode 100644 index 0000000..3b19769 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIndicatorQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.indicator.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIntelligentEffectQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIntelligentEffectQueryRequest.php new file mode 100644 index 0000000..d7021e0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIntelligentEffectQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.intelligent.effect.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIntelligentIndicatorQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIntelligentIndicatorQueryRequest.php new file mode 100644 index 0000000..adef977 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIntelligentIndicatorQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.intelligent.indicator.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIsvShopQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIsvShopQueryRequest.php new file mode 100644 index 0000000..2734484 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataIsvShopQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.isv.shop.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataMemberReportQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataMemberReportQueryRequest.php new file mode 100644 index 0000000..26ebce3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataMemberReportQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.member.report.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataMessageDeliverRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataMessageDeliverRequest.php new file mode 100644 index 0000000..1b26c94 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataMessageDeliverRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.message.deliver"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataRetailDmQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataRetailDmQueryRequest.php new file mode 100644 index 0000000..1c773a0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataRetailDmQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.retail.dm.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartactivityConfigRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartactivityConfigRequest.php new file mode 100644 index 0000000..cdd1179 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartactivityConfigRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.smartactivity.config"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartactivityForecastRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartactivityForecastRequest.php new file mode 100644 index 0000000..63beee1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartactivityForecastRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.smartactivity.forecast"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartmanagementDiagnoseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartmanagementDiagnoseRequest.php new file mode 100644 index 0000000..dc1756e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataSmartmanagementDiagnoseRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataTradeHabbitQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataTradeHabbitQueryRequest.php new file mode 100644 index 0000000..e19ce94 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingDataTradeHabbitQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.data.trade.habbit.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolIsvMerchantQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolIsvMerchantQueryRequest.php new file mode 100644 index 0000000..9a1a54e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolIsvMerchantQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.tool.isv.merchant.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPointsQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPointsQueryRequest.php new file mode 100644 index 0000000..64811be --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPointsQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.tool.points.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPointsUpdateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPointsUpdateRequest.php new file mode 100644 index 0000000..b171095 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPointsUpdateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.tool.points.update"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPrizesendAuthRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPrizesendAuthRequest.php new file mode 100644 index 0000000..59fdb5a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMarketingToolPrizesendAuthRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.marketing.tool.prizesend.auth"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberBrandownerNameQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberBrandownerNameQueryRequest.php new file mode 100644 index 0000000..7dc9629 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberBrandownerNameQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberDataIsvCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberDataIsvCreateRequest.php new file mode 100644 index 0000000..6421361 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberDataIsvCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.member.data.isv.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberDataOauthQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberDataOauthQueryRequest.php new file mode 100644 index 0000000..e8ad4e4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberDataOauthQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.member.data.oauth.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberRetailerQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberRetailerQueryRequest.php new file mode 100644 index 0000000..29f65e1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiMemberRetailerQueryRequest.php @@ -0,0 +1,103 @@ +notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptActivityQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptActivityQueryRequest.php new file mode 100644 index 0000000..0dccfd0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptActivityQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.quality.test.cloudacpt.activity.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptBatchQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptBatchQueryRequest.php new file mode 100644 index 0000000..21752f2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptBatchQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.quality.test.cloudacpt.batch.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptCheckresultSubmitRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptCheckresultSubmitRequest.php new file mode 100644 index 0000000..b5be5ec --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptCheckresultSubmitRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.quality.test.cloudacpt.checkresult.submit"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptItemQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptItemQueryRequest.php new file mode 100644 index 0000000..237ee94 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiQualityTestCloudacptItemQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.quality.test.cloudacpt.item.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemBatchqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemBatchqueryRequest.php new file mode 100644 index 0000000..ee1c427 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemBatchqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.retail.shopitem.batchquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemModifyRequest.php new file mode 100644 index 0000000..b977274 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.retail.shopitem.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemUploadRequest.php new file mode 100644 index 0000000..6de4443 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiRetailShopitemUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.retail.shopitem.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemBuyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemBuyRequest.php new file mode 100644 index 0000000..c41cc8b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemBuyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.trade.item.buy"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderBuyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderBuyRequest.php new file mode 100644 index 0000000..cc2d74d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderBuyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.trade.itemorder.buy"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderQueryRequest.php new file mode 100644 index 0000000..9db0487 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.trade.itemorder.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderRefundRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderRefundRequest.php new file mode 100644 index 0000000..2f3b9c3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeItemorderRefundRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.trade.itemorder.refund"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeOrderConsultRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeOrderConsultRequest.php new file mode 100644 index 0000000..afd5d8d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeOrderConsultRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.trade.order.consult"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeOrderQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeOrderQueryRequest.php new file mode 100644 index 0000000..94b3273 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeOrderQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.trade.order.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeTicketTicketcodeQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeTicketTicketcodeQueryRequest.php new file mode 100644 index 0000000..4c535c6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeTicketTicketcodeQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.trade.ticket.ticketcode.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeTicketTicketcodeUseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeTicketTicketcodeUseRequest.php new file mode 100644 index 0000000..b67dee1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/KoubeiTradeTicketTicketcodeUseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "koubei.trade.ticket.ticketcode.use"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/MonitorHeartbeatSynRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/MonitorHeartbeatSynRequest.php new file mode 100644 index 0000000..326caa0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/MonitorHeartbeatSynRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "monitor.heartbeat.syn"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/MybankCreditLoanapplyDataUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankCreditLoanapplyDataUploadRequest.php new file mode 100644 index 0000000..bd46747 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankCreditLoanapplyDataUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "mybank.credit.loanapply.data.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoAccountQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoAccountQueryRequest.php new file mode 100644 index 0000000..438f7c9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoAccountQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "mybank.finance.yulibao.account.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoCapitalPurchaseRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoCapitalPurchaseRequest.php new file mode 100644 index 0000000..734e007 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoCapitalPurchaseRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "mybank.finance.yulibao.capital.purchase"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoCapitalRansomRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoCapitalRansomRequest.php new file mode 100644 index 0000000..1c704ab --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoCapitalRansomRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "mybank.finance.yulibao.capital.ransom"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoPriceQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoPriceQueryRequest.php new file mode 100644 index 0000000..ef7ddad --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoPriceQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "mybank.finance.yulibao.price.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoTransHistoryQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoTransHistoryQueryRequest.php new file mode 100644 index 0000000..69884e9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/MybankFinanceYulibaoTransHistoryQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "mybank.finance.yulibao.trans.history.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAlixiaohaoQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAlixiaohaoQueryRequest.php new file mode 100644 index 0000000..fdc6048 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAlixiaohaoQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ssdata.dataservice.risk.alixiaohao.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudVerifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudVerifyRequest.php new file mode 100644 index 0000000..d7c5614 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudVerifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ssdata.dataservice.risk.antifraud.verify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudintegrationQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudintegrationQueryRequest.php new file mode 100644 index 0000000..e31f60a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudintegrationQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ssdata.dataservice.risk.antifraudintegration.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudlistQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudlistQueryRequest.php new file mode 100644 index 0000000..2541f07 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudlistQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ssdata.dataservice.risk.antifraudlist.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudscoreQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudscoreQueryRequest.php new file mode 100644 index 0000000..88443f8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskAntifraudscoreQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ssdata.dataservice.risk.antifraudscore.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskRainscoreQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskRainscoreQueryRequest.php new file mode 100644 index 0000000..02a9149 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/SsdataDataserviceRiskRainscoreQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "ssdata.dataservice.risk.rainscore.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaAuthInfoAuthqueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaAuthInfoAuthqueryRequest.php new file mode 100644 index 0000000..1e85ef2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaAuthInfoAuthqueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.auth.info.authquery"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudRiskListRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudRiskListRequest.php new file mode 100644 index 0000000..7407bd8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudRiskListRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.antifraud.risk.list"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudScoreGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudScoreGetRequest.php new file mode 100644 index 0000000..8db1141 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudScoreGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.antifraud.score.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudVerifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudVerifyRequest.php new file mode 100644 index 0000000..2de08ed --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditAntifraudVerifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.antifraud.verify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpInfoGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpInfoGetRequest.php new file mode 100644 index 0000000..44aca7c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpInfoGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.ep.info.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpLawsuitDetailGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpLawsuitDetailGetRequest.php new file mode 100644 index 0000000..6306107 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpLawsuitDetailGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.ep.lawsuit.detail.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpLawsuitRecordGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpLawsuitRecordGetRequest.php new file mode 100644 index 0000000..cce873e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpLawsuitRecordGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.ep.lawsuit.record.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpScoreGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpScoreGetRequest.php new file mode 100644 index 0000000..fe42ae2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditEpScoreGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.ep.score.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditPeLawsuitDetailQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditPeLawsuitDetailQueryRequest.php new file mode 100644 index 0000000..e108393 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditPeLawsuitDetailQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.pe.lawsuit.detail.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditPeLawsuitRecordGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditPeLawsuitRecordGetRequest.php new file mode 100644 index 0000000..ee34031 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditPeLawsuitRecordGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.pe.lawsuit.record.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditScoreBriefGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditScoreBriefGetRequest.php new file mode 100644 index 0000000..6f359c9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditScoreBriefGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.score.brief.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditScoreGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditScoreGetRequest.php new file mode 100644 index 0000000..cf8c78c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditScoreGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.score.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditWatchlistBriefGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditWatchlistBriefGetRequest.php new file mode 100644 index 0000000..eb5d9ce --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditWatchlistBriefGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.watchlist.brief.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditWatchlistiiGetRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditWatchlistiiGetRequest.php new file mode 100644 index 0000000..b64d710 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCreditWatchlistiiGetRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.credit.watchlistii.get"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationCertifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationCertifyRequest.php new file mode 100644 index 0000000..04bb3f1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationCertifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.customer.certification.certify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationInitializeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationInitializeRequest.php new file mode 100644 index 0000000..d6fc705 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationInitializeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.customer.certification.initialize"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationMaterialCertifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationMaterialCertifyRequest.php new file mode 100644 index 0000000..029f4ed --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationMaterialCertifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.customer.certification.material.certify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationQueryRequest.php new file mode 100644 index 0000000..30a722f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerCertificationQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.customer.certification.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerContractInitializeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerContractInitializeRequest.php new file mode 100644 index 0000000..8928dbd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerContractInitializeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.customer.contract.initialize"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationCertifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationCertifyRequest.php new file mode 100644 index 0000000..f48ec88 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationCertifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.customer.ep.certification.certify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationInitializeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationInitializeRequest.php new file mode 100644 index 0000000..fc0686c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationInitializeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.customer.ep.certification.initialize"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationQueryRequest.php new file mode 100644 index 0000000..5e215e9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaCustomerEpCertificationQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.customer.ep.certification.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaDataBatchFeedbackRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaDataBatchFeedbackRequest.php new file mode 100644 index 0000000..1e7973a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaDataBatchFeedbackRequest.php @@ -0,0 +1,230 @@ +bizExtParams = $bizExtParams; + $this->apiParas["biz_ext_params"] = $bizExtParams; + } + + public function getBizExtParams() + { + return $this->bizExtParams; + } + + public function setColumns($columns) + { + $this->columns = $columns; + $this->apiParas["columns"] = $columns; + } + + public function getColumns() + { + return $this->columns; + } + + public function setFile($file) + { + $this->file = $file; + $this->apiParas["file"] = $file; + } + + public function getFile() + { + return $this->file; + } + + public function setFileCharset($fileCharset) + { + $this->fileCharset = $fileCharset; + $this->apiParas["file_charset"] = $fileCharset; + } + + public function getFileCharset() + { + return $this->fileCharset; + } + + public function setFileDescription($fileDescription) + { + $this->fileDescription = $fileDescription; + $this->apiParas["file_description"] = $fileDescription; + } + + public function getFileDescription() + { + return $this->fileDescription; + } + + public function setFileType($fileType) + { + $this->fileType = $fileType; + $this->apiParas["file_type"] = $fileType; + } + + public function getFileType() + { + return $this->fileType; + } + + public function setPrimaryKeyColumns($primaryKeyColumns) + { + $this->primaryKeyColumns = $primaryKeyColumns; + $this->apiParas["primary_key_columns"] = $primaryKeyColumns; + } + + public function getPrimaryKeyColumns() + { + return $this->primaryKeyColumns; + } + + public function setRecords($records) + { + $this->records = $records; + $this->apiParas["records"] = $records; + } + + public function getRecords() + { + return $this->records; + } + + public function getApiMethodName() + { + return "zhima.data.batch.feedback"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaDataFeedbackurlQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaDataFeedbackurlQueryRequest.php new file mode 100644 index 0000000..25354ac --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaDataFeedbackurlQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.data.feedbackurl.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantBorrowEntityUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantBorrowEntityUploadRequest.php new file mode 100644 index 0000000..7f8dae8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantBorrowEntityUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.borrow.entity.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantCloseloopDataUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantCloseloopDataUploadRequest.php new file mode 100644 index 0000000..4743936 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantCloseloopDataUploadRequest.php @@ -0,0 +1,234 @@ +bizExtParams = $bizExtParams; + $this->apiParas["biz_ext_params"] = $bizExtParams; + } + + public function getBizExtParams() + { + return $this->bizExtParams; + } + + public function setColumns($columns) + { + $this->columns = $columns; + $this->apiParas["columns"] = $columns; + } + + public function getColumns() + { + return $this->columns; + } + + public function setFile($file) + { + $this->file = $file; + $this->apiParas["file"] = $file; + } + + public function getFile() + { + return $this->file; + } + + public function setFileCharset($fileCharset) + { + $this->fileCharset = $fileCharset; + $this->apiParas["file_charset"] = $fileCharset; + } + + public function getFileCharset() + { + return $this->fileCharset; + } + + public function setLinkedMerchantId($linkedMerchantId) + { + $this->linkedMerchantId = $linkedMerchantId; + $this->apiParas["linked_merchant_id"] = $linkedMerchantId; + } + + public function getLinkedMerchantId() + { + return $this->linkedMerchantId; + } + + public function setPrimaryKeyColumns($primaryKeyColumns) + { + $this->primaryKeyColumns = $primaryKeyColumns; + $this->apiParas["primary_key_columns"] = $primaryKeyColumns; + } + + public function getPrimaryKeyColumns() + { + return $this->primaryKeyColumns; + } + + public function setRecords($records) + { + $this->records = $records; + $this->apiParas["records"] = $records; + } + + public function getRecords() + { + return $this->records; + } + + public function setSceneCode($sceneCode) + { + $this->sceneCode = $sceneCode; + $this->apiParas["scene_code"] = $sceneCode; + } + + public function getSceneCode() + { + return $this->sceneCode; + } + + public function getApiMethodName() + { + return "zhima.merchant.closeloop.data.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantDataUploadInitializeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantDataUploadInitializeRequest.php new file mode 100644 index 0000000..89f0200 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantDataUploadInitializeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.data.upload.initialize"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCancelRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCancelRequest.php new file mode 100644 index 0000000..661fc2f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCancelRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.order.rent.cancel"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCompleteRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCompleteRequest.php new file mode 100644 index 0000000..4c970b5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCompleteRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.order.rent.complete"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCreateRequest.php new file mode 100644 index 0000000..5bb40c7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.order.rent.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentModifyRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentModifyRequest.php new file mode 100644 index 0000000..0bba7db --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentModifyRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.order.rent.modify"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentQueryRequest.php new file mode 100644 index 0000000..41f1dc9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantOrderRentQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.order.rent.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantSingleDataUploadRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantSingleDataUploadRequest.php new file mode 100644 index 0000000..05cad8a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantSingleDataUploadRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.single.data.upload"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantTestPracticeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantTestPracticeRequest.php new file mode 100644 index 0000000..18cfdca --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaMerchantTestPracticeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.merchant.test.practice"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaOpenAppKeyanLqlCreateRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaOpenAppKeyanLqlCreateRequest.php new file mode 100644 index 0000000..b820082 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZhimaOpenAppKeyanLqlCreateRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zhima.open.app.keyan.lql.create"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZolozIdentificationUserWebInitializeRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZolozIdentificationUserWebInitializeRequest.php new file mode 100644 index 0000000..c8175e1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZolozIdentificationUserWebInitializeRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zoloz.identification.user.web.initialize"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/request/ZolozIdentificationUserWebQueryRequest.php b/codes/agent/game-docker/api/payment/alipay/aop/request/ZolozIdentificationUserWebQueryRequest.php new file mode 100644 index 0000000..34dd8cb --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/request/ZolozIdentificationUserWebQueryRequest.php @@ -0,0 +1,118 @@ +bizContent = $bizContent; + $this->apiParas["biz_content"] = $bizContent; + } + + public function getBizContent() + { + return $this->bizContent; + } + + public function getApiMethodName() + { + return "zoloz.identification.user.web.query"; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl=$notifyUrl; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } + + public function getApiParas() + { + return $this->apiParas; + } + + public function getTerminalType() + { + return $this->terminalType; + } + + public function setTerminalType($terminalType) + { + $this->terminalType = $terminalType; + } + + public function getTerminalInfo() + { + return $this->terminalInfo; + } + + public function setTerminalInfo($terminalInfo) + { + $this->terminalInfo = $terminalInfo; + } + + public function getProdCode() + { + return $this->prodCode; + } + + public function setProdCode($prodCode) + { + $this->prodCode = $prodCode; + } + + public function setApiVersion($apiVersion) + { + $this->apiVersion=$apiVersion; + } + + public function getApiVersion() + { + return $this->apiVersion; + } + + public function setNeedEncrypt($needEncrypt) + { + + $this->needEncrypt=$needEncrypt; + + } + + public function getNeedEncrypt() + { + return $this->needEncrypt; + } + +} diff --git a/codes/agent/game-docker/api/payment/alipay/aop/test/TestImage.php b/codes/agent/game-docker/api/payment/alipay/aop/test/TestImage.php new file mode 100644 index 0000000..feadcd2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/aop/test/TestImage.php @@ -0,0 +1,97 @@ + serverUrl, + $this -> appId, + $this -> partner_private_key, + $this -> format, + $this -> charset + ); + $response = null; + $outputStream = null; + $request = $alipayClient -> getContents() ; + + //200 + //echo( '状态码:'. $request -> getCode() .', '); + //echo '



                '; + + $fileType = $request -> getType(); + //echo( '类型:'. $fileType .', '); + if( $fileType == 'text/plain'){ + //出错,返回 json + echo $request -> getBody(); + + }else{ + + $type = $request -> getFileSuffix( $fileType ); + + //echo $this -> getParams(); + //exit(); + + //返回 文件流 + header("Content-type: ". $fileType ); //类型 + + + header("Accept-Ranges: bytes");//告诉客户端浏览器返回的文件大小是按照字节进行计算的 + header("Accept-Length: ". $request -> getContentLength() );//文件大小 + header("Content-Length: ". $request -> getContentLength() );//文件大小 + header('Content-Disposition: attachment; filename="'. time() .'.'. $type .'"'); //文件名 + echo $request -> getBody() ; + exit ( ) ; + } + + //echo( '内容: , '. $request -> getContentLength() ); + + //echo '



                '; + //echo '参数:
                ';
                +
                +		//echo ($request -> getParams());
                +
                +		//echo '
                ' ; + } +} + + + + + +// 测试 +$test1 = new TestImage(); +$test1 -> load(); diff --git a/codes/agent/game-docker/api/payment/alipay/bak/ap.js b/codes/agent/game-docker/api/payment/alipay/bak/ap.js new file mode 100644 index 0000000..bf90679 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/bak/ap.js @@ -0,0 +1 @@ +(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})(); \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/bak/merchant.php b/codes/agent/game-docker/api/payment/alipay/bak/merchant.php new file mode 100644 index 0000000..d03c0d1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/bak/merchant.php @@ -0,0 +1,4 @@ + $value) { + if($key != 'sign' && $key != 'sign_type') { + $prepares[] = "{$key}={$value}"; + } + } + sort($prepares); + $string = implode($prepares, '&'); + $string .= $alipay['secret']; + $sign = md5($string); + if($sign == $_POST['sign']) { + $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid'; + $params = array(); + $params[':uniontid'] = $out_trade_no; + $log = pdo_fetch($sql, $params); + if(!empty($log) && $log['status'] == '0') { + $log['transaction_id'] = $_POST['trade_no']; + $record = array(); + $record['status'] = '1'; + pdo_update('core_paylog', $record, array('plid' => $log['plid'])); + if($log['is_usecard'] == 1 && $log['card_type'] == 1 && !empty($log['encrypt_code']) && $log['acid']) { + load()->classs('coupon'); + $acc = new coupon($log['acid']); + $codearr['encrypt_code'] = $log['encrypt_code']; + $codearr['module'] = $log['module']; + $codearr['card_id'] = $log['card_id']; + $acc->PayConsumeCode($codearr); + } + if($log['is_usecard'] == 1 && $log['card_type'] == 2) { + $now = time(); + $log['card_id'] = intval($log['card_id']); + pdo_query('UPDATE ' . tablename('activity_coupon_record') . " SET status = 2, usetime = {$now}, usemodule = '{$log['module']}' WHERE uniacid = :aid AND couponid = :cid AND uid = :uid AND status = 1 LIMIT 1", array(':aid' => $_W['uniacid'], ':uid' => $log['openid'], ':cid' => $log['card_id'])); + } + + $site = WeUtility::createModuleSite($log['module']); + if(!is_error($site)) { + $method = 'payResult'; + if (method_exists($site, $method)) { + $ret = array(); + $ret['weid'] = $log['weid']; + $ret['uniacid'] = $log['uniacid']; + $ret['result'] = 'success'; + $ret['type'] = $log['type']; + $ret['from'] = 'notify'; + $ret['tid'] = $log['tid']; + $ret['uniontid'] = $log['uniontid']; + $ret['transaction_id'] = $log['transaction_id']; + $ret['user'] = $log['openid']; + $ret['fee'] = $log['fee']; + $ret['is_usecard'] = $log['is_usecard']; + $ret['card_type'] = $log['card_type']; + $ret['card_fee'] = $log['card_fee']; + $ret['card_id'] = $log['card_id']; + $site->$method($ret); + exit('success'); + } + } + } + } + } + } +} +exit('fail'); diff --git a/codes/agent/game-docker/api/payment/alipay/bak/pay.htm b/codes/agent/game-docker/api/payment/alipay/bak/pay.htm new file mode 100644 index 0000000..ada14e7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/bak/pay.htm @@ -0,0 +1,96 @@ + + + + + 支付提示 + + + + + + + + + + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/bak/return.php b/codes/agent/game-docker/api/payment/alipay/bak/return.php new file mode 100644 index 0000000..9e8c080 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/bak/return.php @@ -0,0 +1,83 @@ +app('common'); +load()->app('template'); +$_W['uniacid'] = $_W['weid'] = $_GET['body']; +$setting = uni_setting($_W['uniacid'], array('payment')); +if (!is_array($setting['payment'])) { + exit('request failed.'); +} +$alipay = $setting['payment']['alipay']; +if (empty($alipay)) { + exit('request failed.'); +} +$prepares = array(); +foreach ($_GET as $key => $value) { + if ($key != 'sign' && $key != 'sign_type') { + $prepares[] = "{$key}={$value}"; + } +} +sort($prepares); +$string = implode($prepares, '&'); +$string .= $alipay['secret']; +$sign = md5($string); +if($sign == $_GET['sign'] && $_GET['is_success'] == 'T' && ($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS')) { + $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid'; + $params = array(); + $params[':uniontid'] = $_GET['out_trade_no']; + $log = pdo_fetch($sql, $params); + if (!empty($log)) { + if (!empty($log['status'])) { + $record = array(); + $record['status'] = $log['status'] = '1'; + pdo_update('core_paylog', $record, array('plid' => $log['plid'])); + if($log['is_usecard'] == 1 && $log['card_type'] == 1 && !empty($log['encrypt_code']) && $log['acid']) { + load()->classs('coupon'); + $acc = new coupon($log['acid']); + $codearr['encrypt_code'] = $log['encrypt_code']; + $codearr['module'] = $log['module']; + $codearr['card_id'] = $log['card_id']; + $acc->PayConsumeCode($codearr); + } + if($log['is_usecard'] == 1 && $log['card_type'] == 2) { + $now = time(); + $log['card_id'] = intval($log['card_id']); + pdo_query('UPDATE ' . tablename('activity_coupon_record') . " SET status = 2, usetime = {$now}, usemodule = '{$log['module']}' WHERE uniacid = :aid AND couponid = :cid AND uid = :uid AND status = 1 {$condition} LIMIT 1", array(':aid' => $_W['uniacid'], ':uid' => $log['openid'], ':cid' => $log['card_id'])); + } + } + $site = WeUtility::createModuleSite($log['module']); + if (!is_error($site)) { + $site->weid = $_W['weid']; + $site->uniacid = $_W['uniacid']; + $site->inMobile = true; + $method = 'payResult'; + if (method_exists($site, $method)) { + $ret = array(); + $ret['weid'] = $log['weid']; + $ret['uniacid'] = $log['uniacid']; + $ret['acid'] = $log['acid']; + $ret['uniontid'] = $log['uniontid']; + $ret['result'] = $log['status'] == '1' ? 'success' : 'failed'; + $ret['type'] = $log['type']; + $ret['from'] = 'notify'; + $ret['tid'] = $log['tid']; + $ret['user'] = $log['openid']; + $ret['fee'] = $log['fee']; + $ret['is_usecard'] = $log['is_usecard']; + $ret['card_type'] = $log['card_type']; + $ret['card_fee'] = $log['card_fee']; + $ret['card_id'] = $log['card_id']; + $site->$method($ret); + $ret['from'] = 'return'; + exit($site->$method($ret)); + } + } + } +} else { + message('支付异常,请返回微信客户端查看订单状态或是联系管理员', '', 'error'); +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/config.php b/codes/agent/game-docker/api/payment/alipay/config.php new file mode 100644 index 0000000..42d4eb6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/config.php @@ -0,0 +1,30 @@ + "", + + //商户私钥,您的原始格式RSA私钥 + 'merchant_private_key' => "", + + 'merchant_private_key_filepath' => '', + + //异步通知地址 + 'notify_url' => "http://工程公网访问地址/alipay.trade.wap.pay-PHP-UTF-8/notify_url.php", + + //同步跳转 + 'return_url' => "http://mitsein.com/alipay.trade.wap.pay-PHP-UTF-8/return_url.php", + + //编码格式 + 'charset' => "UTF-8", + + //签名方式 + 'sign_type'=>"RSA2", + + //支付宝网关 + 'gatewayUrl' => "https://openapi.alipay.com/gateway.do", + + //支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。 + 'alipay_public_key' => "", + + 'alipay_public_key_filepath' => '', +); \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/barpay_test.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/barpay_test.php new file mode 100644 index 0000000..8179b28 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/barpay_test.php @@ -0,0 +1,347 @@ +setSysServiceProviderId($providerId); + $extendParamsArr = $extendParams->getExtendParams(); + + // 支付超时,线下扫码交易定义为5分钟 + $timeExpress = "5m"; + + // 商品明细列表,需填写购买商品详细信息, + $goodsDetailList = array(); + + // 创建一个商品信息,参数含义分别为商品id(使用国标)、名称、单价(单位为分)、数量,如果需要添加商品类别,详见GoodsDetail + $goods1 = new GoodsDetail(); + $goods1->setGoodsId("good_id001"); + $goods1->setGoodsName("XXX商品1"); + $goods1->setPrice(3000); + $goods1->setQuantity(1); + //得到商品1明细数组 + $goods1Arr = $goods1->getGoodsDetail(); + + // 继续创建并添加第一条商品信息,用户购买的产品为“xx牙刷”,单价为5.05元,购买了两件 + $goods2 = new GoodsDetail(); + $goods2->setGoodsId("good_id002"); + $goods2->setGoodsName("XXX商品2"); + $goods2->setPrice(1000); + $goods2->setQuantity(1); + //得到商品1明细数组 + $goods2Arr = $goods2->getGoodsDetail(); + + $goodsDetailList = array($goods1Arr, $goods2Arr); + + //第三方应用授权令牌,商户授权系统商开发模式下使用 + $appAuthToken = "";//根据真实值填写 + + // 创建请求builder,设置请求参数 + $barPayRequestBuilder = new AlipayTradePayContentBuilder(); + $barPayRequestBuilder->setOutTradeNo($outTradeNo); + $barPayRequestBuilder->setTotalAmount($totalAmount); + $barPayRequestBuilder->setAuthCode($authCode); + $barPayRequestBuilder->setTimeExpress($timeExpress); + $barPayRequestBuilder->setSubject($subject); + $barPayRequestBuilder->setBody($body); + $barPayRequestBuilder->setUndiscountableAmount($undiscountableAmount); + $barPayRequestBuilder->setExtendParams($extendParamsArr); + $barPayRequestBuilder->setGoodsDetailList($goodsDetailList); + $barPayRequestBuilder->setStoreId($storeId); + $barPayRequestBuilder->setOperatorId($operatorId); + $barPayRequestBuilder->setAlipayStoreId($alipayStoreId); + + $barPayRequestBuilder->setAppAuthToken($appAuthToken); + + // 调用barPay方法获取当面付应答 + $barPay = new AlipayTradeService($config); + $barPayResult = $barPay->barPay($barPayRequestBuilder); + + switch ($barPayResult->getTradeStatus()) { + case "SUCCESS": + echo "支付宝支付成功:" . "
                --------------------------
                "; + print_r($barPayResult->getResponse()); + break; + case "FAILED": + echo "支付宝支付失败!!!" . "
                --------------------------
                "; + if (!empty($barPayResult->getResponse())) { + print_r($barPayResult->getResponse()); + } + break; + case "UNKNOWN": + echo "系统异常,订单状态未知!!!" . "
                --------------------------
                "; + if (!empty($barPayResult->getResponse())) { + print_r($barPayResult->getResponse()); + } + break; + default: + echo "不支持的交易状态,交易返回异常!!!"; + break; + } + return; +} +?> + + + + 支付宝当面付 条码支付 + + + + +
                + +
                +
                  +
                1. 1、确认信息 →
                2. +
                3. 2、点击确认 →
                4. +
                5. 3、确认完成
                6. +
                +
                +
                +
                +
                +
                商户订单号:
                +
                + * + + 商户网站订单系统中唯一订单号,必填 + +
                +
                订单名称:
                +
                + * + + 必填 + +
                + +
                付款金额:
                +
                + * + + 必填 + +
                + +
                付款条码:
                +
                + * + + 必填 + +
                + + +
                +
                + +
                +
                +
                + + +
                + + + diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/config/config.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/config/config.php new file mode 100644 index 0000000..ab54d68 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/config/config.php @@ -0,0 +1,29 @@ + "RSA2", + + //支付宝公钥 + 'alipay_public_key' => "", + + //商户私钥 + 'merchant_private_key' => "", + + //编码格式 + 'charset' => "UTF-8", + + //支付宝网关 + 'gatewayUrl' => "https://openapi.alipay.com/gateway.do", + + //应用ID + 'app_id' => "", + + //异步通知地址,只有扫码支付预下单可用 + 'notify_url' => "http://www.baidu.com", + + //最大查询重试次数 + 'MaxQueryRetry' => "10", + + //查询间隔 + 'QueryDuration' => "3", +); \ 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 new file mode 100644 index 0000000..d9f9f8a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/log/log.txt @@ -0,0 +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"} diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeCancelContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeCancelContentBuilder.php new file mode 100644 index 0000000..fc1202b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeCancelContentBuilder.php @@ -0,0 +1,55 @@ +bizContentarr)){ + $this->bizContent = json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE); + } + return $this->bizContent; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizContentarr['out_trade_no'] = $outTradeNo; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->bizContentarr['trade_no'] = $tradeNo; + } + + +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradePayContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradePayContentBuilder.php new file mode 100644 index 0000000..7ace4e0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradePayContentBuilder.php @@ -0,0 +1,266 @@ +bizParas['scene'] = "bar_code"; + } + + public function AlipayTradePayContentBuilder() + { + $this->__construct(); + } + + public function getBizContent() + { + /*$this->bizContent = "{"; + foreach ($this->bizParas as $k=>$v){ + $this->bizContent.= "\"".$k."\":\"".$v."\","; + } + $this->bizContent = substr($this->bizContent,0,-1); + $this->bizContent.= "}";*/ + if(!empty($this->bizParas)){ + $this->bizContent = json_encode($this->bizParas,JSON_UNESCAPED_UNICODE); + } + + return $this->bizContent; + } + + public function getAuthCode() + { + return $this->authCode; + } + + public function setAuthCode($authCode) + { + $this->authCode = $authCode; + $this->bizParas['auth_code'] = $authCode; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizParas['out_trade_no'] = $outTradeNo; + } + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setSellerId($sellerId) + { + $this->sellerId = $sellerId; + $this->bizParas['seller_id'] = $sellerId; + } + + public function getSellerId() + { + return $this->sellerId; + } + + public function setTotalAmount($totalAmount) + { + $this->totalAmount = $totalAmount; + $this->bizParas['total_amount'] = $totalAmount; + } + + public function getTotalAmount() + { + return $this->totalAmount; + } + + public function setDiscountableAmount($discountableAmount) + { + $this->discountableAmount = $discountableAmount; + $this->bizParas['discountable_amount'] = $discountableAmount; + } + + public function getDiscountableAmount() + { + return $this->discountableAmount; + } + + public function setUndiscountableAmount($undiscountableAmount) + { + $this->undiscountableAmount = $undiscountableAmount; + $this->bizParas['undiscountable_amount'] = $undiscountableAmount; + } + + public function getUndiscountableAmount() + { + return $this->undiscountableAmount; + } + + public function setSubject($subject) + { + $this->subject = $subject; + $this->bizParas['subject'] = $subject; + } + + public function getSubject() + { + return $this->subject; + } + + public function setBody($body) + { + $this->body = $body; + $this->bizParas['body'] = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setOperatorId($operatorId) + { + $this->operatorId = $operatorId; + $this->bizParas['operator_id'] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setStoreId($storeId) + { + $this->storeId = $storeId; + $this->bizParas['store_id'] = $storeId; + } + + public function getStoreId() + { + return $this->storeId; + } + + public function setTerminalId($terminalId) + { + $this->terminalId = $terminalId; + $this->bizParas['terminal_id'] = $terminalId; + } + + public function getTerminalId() + { + return $this->terminalId; + } + + public function setTimeExpress($timeExpress) + { + $this->timeExpress = $timeExpress; + $this->bizParas['timeout_express'] = $timeExpress; + } + + public function getTimeExpress() + { + return $this->timeExpress; + } + + public function getAlipayStoreId() + { + return $this->alipayStoreId; + } + + + public function setAlipayStoreId($alipayStoreId) + { + $this->alipayStoreId = $alipayStoreId; + $this->bizParas['alipay_store_id'] = $alipayStoreId; + } + + public function getExtendParams() + { + return $this->extendParams; + } + + public function setExtendParams($extendParams) + { + $this->extendParams = $extendParams; + $this->bizParas['extend_params'] = $extendParams; + } + + public function getGoodsDetailList() + { + return $this->goodsDetailList; + } + + public function setGoodsDetailList($goodsDetailList) + { + $this->goodsDetailList = $goodsDetailList; + $this->bizParas['goods_detail'] = $goodsDetailList; + } + +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradePrecreateContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradePrecreateContentBuilder.php new file mode 100644 index 0000000..be5305e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradePrecreateContentBuilder.php @@ -0,0 +1,253 @@ +outTradeNo = $outTradeNo; + $this->bizParas['out_trade_no'] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setSellerId($sellerId) + { + $this->sellerId = $sellerId; + $this->bizParas['seller_id'] = $sellerId; + } + + public function getSellerId() + { + return $this->sellerId; + } + + public function setTotalAmount($totalAmount) + { + $this->totalAmount = $totalAmount; + $this->bizParas['total_amount'] = $totalAmount; + } + + public function getTotalAmount() + { + return $this->totalAmount; + } + + public function setDiscountableAmount($discountableAmount) + { + $this->discountableAmount = $discountableAmount; + $this->bizParas['discountable_amount'] = $discountableAmount; + } + + public function getDiscountableAmount() + { + return $this->discountableAmount; + } + + public function setUndiscountableAmount($undiscountableAmount) + { + $this->undiscountableAmount = $undiscountableAmount; + $this->bizParas['undiscountable_amount'] = $undiscountableAmount; + } + + public function getUndiscountableAmount() + { + return $this->undiscountableAmount; + } + + public function setBuyerLogonId($buyerLogonId) + { + $this->buyerLogonId = $buyerLogonId; + $this->bizParas['buyer_logon_id'] = $buyerLogonId; + } + + public function getBuyerLogonId() + { + return $this->buyerLogonId; + } + + public function setSubject($subject) + { + $this->subject = $subject; + $this->bizParas['subject'] = $subject; + } + + public function getSubject() + { + return $this->subject; + } + + public function setBody($body) + { + $this->body = $body; + $this->bizParas['body'] = $body; + } + + public function getBody() + { + return $this->body; + } + + public function setOperatorId($operatorId) + { + $this->operatorId = $operatorId; + $this->bizParas['operator_id'] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setStoreId($storeId) + { + $this->storeId = $storeId; + $this->bizParas['store_id'] = $storeId; + } + + public function getStoreId() + { + return $this->storeId; + } + + public function setTerminalId($terminalId) + { + $this->terminalId = $terminalId; + $this->bizParas['terminal_id'] = $terminalId; + } + + public function getTerminalId() + { + return $this->terminalId; + } + + public function setTimeExpress($timeExpress) + { + $this->timeExpress = $timeExpress; + $this->bizParas['timeout_express'] = $timeExpress; + } + + public function getTimeExpress() + { + return $this->timeExpress; + } + + public function getAlipayStoreId() + { + return $this->alipayStoreId; + } + + + public function setAlipayStoreId($alipayStoreId) + { + $this->alipayStoreId = $alipayStoreId; + $this->bizParas['alipay_store_id'] = $alipayStoreId; + } + + public function getExtendParams() + { + return $this->extendParams; + } + + public function setExtendParams($extendParams) + { + $this->extendParams = $extendParams; + $this->bizParas['extend_params'] = $extendParams; + } + + public function getGoodsDetailList() + { + return $this->goodsDetailList; + } + + public function setGoodsDetailList($goodsDetailList) + { + $this->goodsDetailList = $goodsDetailList; + $this->bizParas['goods_detail'] = $goodsDetailList; + } + + public function getBizContent() + { + /*$this->bizContent = "{"; + foreach ($this->bizParas as $k=>$v){ + $this->bizContent.= "\"".$k."\":\"".$v."\","; + } + $this->bizContent = substr($this->bizContent,0,-1); + $this->bizContent.= "}";*/ + if (!empty($this->bizParas)) + $this->bizContent = json_encode($this->bizParas, JSON_UNESCAPED_UNICODE); + + return $this->bizContent; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeQueryContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeQueryContentBuilder.php new file mode 100644 index 0000000..e78b486 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeQueryContentBuilder.php @@ -0,0 +1,55 @@ +bizContentarr)){ + $this->bizContent = json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE); + } + return $this->bizContent; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizContentarr['out_trade_no'] = $outTradeNo; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->bizContentarr['trade_no'] = $tradeNo; + } + + +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeRefundContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeRefundContentBuilder.php new file mode 100644 index 0000000..7539318 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/AlipayTradeRefundContentBuilder.php @@ -0,0 +1,149 @@ +response = $response; + } + + public function AlipayTradeRefundContentBuilder() + { + $this->__construct(); + }*/ + + public function getBizContent() + { + if(!empty($this->bizContentarr)){ + $this->bizContent = json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE); + } + + return $this->bizContent; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->bizContentarr['trade_no'] = $tradeNo; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizContentarr['out_trade_no'] = $outTradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setOperatorId($operatorId) + { + $this->operatorId = $operatorId; + $this->bizContentarr['operator_id'] = $operatorId; + } + + public function getOperatorId() + { + return $this->operatorId; + } + + public function setOutRequestNo($outRequestNo) + { + $this->outRequestNo = $outRequestNo; + $this->bizContentarr['out_request_no'] = $outRequestNo; + } + + public function getOutRequestNo() + { + return $this->outRequestNo; + } + + public function setRefundAmount($refundAmount) + { + $this->refundAmount = $refundAmount; + $this->bizContentarr['refund_amount'] = $refundAmount; + } + + public function getRefundAmount() + { + return $this->refundAmount; + } + + public function setRefundReason($refundReason) + { + $this->refundReason = $refundReason; + $this->bizContentarr['refund_reason'] = $refundReason; + } + + public function getRefundReason() + { + return $this->refundReason; + } + + public function setStoreId($storeId) + { + $this->storeId = $storeId; + $this->bizContentarr['store_id'] = $storeId; + } + + public function getStoreId() + { + return $this->storeId; + } + + public function setTerminalId($terminalId) + { + $this->terminalId = $terminalId; + $this->bizContentarr['terminal_id'] =$terminalId; + } + + public function getTerminalId() + { + return $this->terminalId; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/ContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/ContentBuilder.php new file mode 100644 index 0000000..0194c9f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/ContentBuilder.php @@ -0,0 +1,36 @@ +appAuthToken = $appAuthToken; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl = $notifyUrl; + } + + public function getAppAuthToken() + { + return $this->appAuthToken; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/ExtendParams.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/ExtendParams.php new file mode 100644 index 0000000..783e251 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/ExtendParams.php @@ -0,0 +1,61 @@ +extendParamsArr)) { + return $this->extendParamsArr; + } + } + + public function getSysServiceProviderId() + { + return $this->sysServiceProviderId; + } + + public function setSysServiceProviderId($sysServiceProviderId) + { + $this->sysServiceProviderId = $sysServiceProviderId; + $this->extendParamsArr['sys_service_provider_id'] = $sysServiceProviderId; + } + + public function getHbFqNum() + { + return $this->hbFqNum; + } + + public function setHbFqNum($hbFqNum) + { + $this->hbFqNum = $hbFqNum; + $this->extendParamsArr['hb_fq_num'] = $hbFqNum; + } + + public function getHbFqSellerPercent() + { + return $this->hbFqSellerPercent; + } + + public function setHbFqSellerPercent($hbFqSellerPercent) + { + $this->hbFqSellerPercent = $hbFqSellerPercent; + $this->extendParamsArr['hb_fq_seller_percent'] = $hbFqSellerPercent; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/GoodsDetail.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/GoodsDetail.php new file mode 100644 index 0000000..9d62d05 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/GoodsDetail.php @@ -0,0 +1,129 @@ +goodsDetail; + /*$this->goodsDetailStr = "{"; + foreach ($this->goodsDetail as $k => $v){ + $this->goodsDetailStr.= "\"".$k."\":\"".$v."\","; + } + $this->goodsDetailStr = substr($this->goodsDetailStr,0,-1); + $this->goodsDetailStr.= "}"; + return $this->goodsDetailStr;*/ + } + + public function setGoodsId($goodsId) + { + $this->goodsId = $goodsId; + $this->goodsDetail['goods_id'] = $goodsId; + } + + public function getGoodsId() + { + return $this->goodsId; + } + + public function setAlipayGoodsId($alipayGoodsId) + { + $this->alipayGoodsId = $alipayGoodsId; + $this->goodsDetail['alipay_goods_id'] = $alipayGoodsId; + } + + public function getAlipayGoodsId() + { + return $this->alipayGoodsId; + } + + public function setGoodsName($goodsName) + { + $this->goodsName = $goodsName; + $this->goodsDetail['goods_name'] = $goodsName; + } + + public function getGoodsName() + { + return $this->goodsName; + } + + public function setQuantity($quantity) + { + $this->quantity = $quantity; + $this->goodsDetail['quantity'] = $quantity; + } + + public function getQuantity() + { + return $this->quantity; + } + + public function setPrice($price) + { + $this->price = $price; + $this->goodsDetail['price'] = $price; + } + + public function getPrice() + { + return $this->price; + } + + public function setGoodsCategory($goodsCategory) + { + $this->goodsCategory = $goodsCategory; + $this->goodsDetail['goods_category'] = $goodsCategory; + } + + public function getGoodsCategory() + { + return $this->goodsCategory; + } + + public function setBody($body) + { + $this->body = $body; + $this->goodsDetail['body'] = $body; + } + + public function getBody() + { + return $this->body; + } + + +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/RoyaltyDetailInfo.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/RoyaltyDetailInfo.php new file mode 100644 index 0000000..2cc9374 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/builder/RoyaltyDetailInfo.php @@ -0,0 +1,161 @@ +setTransInType("userId"); + $this->setTransOutType("userId"); + } + + public function RoyaltyDetailInfo(){ + $this->__construct(); + } + + public function getRoyaltyDetailInfo() + { + return $this->royaltyDetailInfo; + } + + public function getAmount() + { + return $this->amount; + } + + public function getBatchNo() + { + return $this->batchNo; + } + + public function getDesc() + { + return $this->desc; + } + + public function getOutRelationId() + { + return $this->outRelationId; + } + + public function getSerialNo() + { + return $this->serialNo; + } + + public function getTransIn() + { + return $this->transIn; + } + + public function getTransInType() + { + return $this->transInType; + } + + public function getTransOut() + { + return $this->transOut; + } + + public function getTransOutType() + { + return $this->transOutType; + } + + public function setAmount($amount) + { + $this->amount = $amount; + $this->royaltyDetailInfo['amount'] = $amount; + } + + public function setBatchNo($batchNo) + { + $this->batchNo = $batchNo; + $this->royaltyDetailInfo['batch_no'] = $batchNo; + } + + public function setDesc($desc) + { + $this->desc = $desc; + $this->royaltyDetailInfo['desc'] = $desc; + } + + public function setOutRelationId($outRelationId) + { + $this->outRelationId = $outRelationId; + $this->royaltyDetailInfo['out_relation_id'] = $outRelationId; + } + + public function setSerialNo($serialNo) + { + $this->serialNo = $serialNo; + $this->royaltyDetailInfo['serial_no'] = $serialNo; + } + + public function setTransIn($transIn) + { + $this->transIn = $transIn; + $this->royaltyDetailInfo['trans_in'] = $transIn; + } + + public function setTransInType($transInType) + { + $this->transInType = $transInType; + $this->royaltyDetailInfo['trans_in_type'] = $transInType; + } + + public function setTransOut($transOut) + { + $this->transOut = $transOut; + $this->royaltyDetailInfo['trans_out'] = $transOut; + } + + public function setTransOutType($transOutType) + { + $this->transOutType = $transOutType; + $this->royaltyDetailInfo['trans_out_type'] = $transOutType; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FPayResult.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FPayResult.php new file mode 100644 index 0000000..f4342b4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FPayResult.php @@ -0,0 +1,44 @@ +response = $response; + } + + public function AlipayF2FPayResult($response) + { + $this->__construct($response); + } + + public function setTradeStatus($tradeStatus) + { + $this->tradeStatus = $tradeStatus; + } + + public function getTradeStatus() + { + return $this->tradeStatus; + } + + public function setResponse($response) + { + $this->response = $response; + } + + public function getResponse() + { + return $this->response; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FPrecreateResult.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FPrecreateResult.php new file mode 100644 index 0000000..846b200 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FPrecreateResult.php @@ -0,0 +1,44 @@ +response = $response; + } + + public function AlipayF2FPrecreateResult($response) + { + $this->__construct($response); + } + + public function setTradeStatus($tradeStatus) + { + $this->tradeStatus = $tradeStatus; + } + + public function getTradeStatus() + { + return $this->tradeStatus; + } + + public function setResponse($response) + { + $this->response = $response; + } + + public function getResponse() + { + return $this->response; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FQueryResult.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FQueryResult.php new file mode 100644 index 0000000..53caf44 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FQueryResult.php @@ -0,0 +1,44 @@ +response = $response; + } + + public function AlipayF2FPayResult($response) + { + $this->__construct($response); + } + + public function setTradeStatus($tradeStatus) + { + $this->tradeStatus = $tradeStatus; + } + + public function getTradeStatus() + { + return $this->tradeStatus; + } + + public function setResponse($response) + { + $this->response = $response; + } + + public function getResponse() + { + return $this->response; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FRefundResult.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FRefundResult.php new file mode 100644 index 0000000..5d9805d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/model/result/AlipayF2FRefundResult.php @@ -0,0 +1,44 @@ +response = $response; + } + + public function AlipayF2FPayResult($response) + { + $this->__construct($response); + } + + public function setTradeStatus($tradeStatus) + { + $this->tradeStatus = $tradeStatus; + } + + public function getTradeStatus() + { + return $this->tradeStatus; + } + + public function setResponse($response) + { + $this->response = $response; + } + + public function getResponse() + { + return $this->response; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/qrpay_test.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/qrpay_test.php new file mode 100644 index 0000000..ab078be --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/qrpay_test.php @@ -0,0 +1,336 @@ +setSysServiceProviderId($providerId); + $extendParamsArr = $extendParams->getExtendParams(); + + // 支付超时,线下扫码交易定义为5分钟 + $timeExpress = "5m"; + + // 商品明细列表,需填写购买商品详细信息, + $goodsDetailList = array(); + + // 创建一个商品信息,参数含义分别为商品id(使用国标)、名称、单价(单位为分)、数量,如果需要添加商品类别,详见GoodsDetail + $goods1 = new GoodsDetail(); + $goods1->setGoodsId("apple-01"); + $goods1->setGoodsName("iphone"); + $goods1->setPrice(3000); + $goods1->setQuantity(1); + //得到商品1明细数组 + $goods1Arr = $goods1->getGoodsDetail(); + + // 继续创建并添加第一条商品信息,用户购买的产品为“xx牙刷”,单价为5.05元,购买了两件 + $goods2 = new GoodsDetail(); + $goods2->setGoodsId("apple-02"); + $goods2->setGoodsName("ipad"); + $goods2->setPrice(1000); + $goods2->setQuantity(1); + //得到商品1明细数组 + $goods2Arr = $goods2->getGoodsDetail(); + + $goodsDetailList = array($goods1Arr,$goods2Arr); + + //第三方应用授权令牌,商户授权系统商开发模式下使用 + $appAuthToken = "";//根据真实值填写 + + // 创建请求builder,设置请求参数 + $qrPayRequestBuilder = new AlipayTradePrecreateContentBuilder(); + $qrPayRequestBuilder->setOutTradeNo($outTradeNo); + $qrPayRequestBuilder->setTotalAmount($totalAmount); + $qrPayRequestBuilder->setTimeExpress($timeExpress); + $qrPayRequestBuilder->setSubject($subject); + $qrPayRequestBuilder->setBody($body); + $qrPayRequestBuilder->setUndiscountableAmount($undiscountableAmount); + $qrPayRequestBuilder->setExtendParams($extendParamsArr); + $qrPayRequestBuilder->setGoodsDetailList($goodsDetailList); + $qrPayRequestBuilder->setStoreId($storeId); + $qrPayRequestBuilder->setOperatorId($operatorId); + $qrPayRequestBuilder->setAlipayStoreId($alipayStoreId); + + $qrPayRequestBuilder->setAppAuthToken($appAuthToken); + + + // 调用qrPay方法获取当面付应答 + $qrPay = new AlipayTradeService($config); + $qrPayResult = $qrPay->qrPay($qrPayRequestBuilder); + + // 根据状态值进行业务处理 + switch ($qrPayResult->getTradeStatus()){ + case "SUCCESS": + echo "支付宝创建订单二维码成功:"."
                ---------------------------------------
                "; + $response = $qrPayResult->getResponse(); + $qrcode = $qrPay->create_erweima($response->qr_code); + echo $qrcode; + print_r($response); + + break; + case "FAILED": + echo "支付宝创建订单二维码失败!!!"."
                --------------------------
                "; + if(!empty($qrPayResult->getResponse())){ + print_r($qrPayResult->getResponse()); + } + break; + case "UNKNOWN": + echo "系统异常,状态未知!!!"."
                --------------------------
                "; + if(!empty($qrPayResult->getResponse())){ + print_r($qrPayResult->getResponse()); + } + break; + default: + echo "不支持的返回状态,创建订单二维码返回异常!!!"; + break; + } + return ; +} + +?> + + + + 支付宝当面付 二维码支付 + + + + +
                + +
                +
                  +
                1. 1、确认信息 →
                2. +
                3. 2、点击确认 →
                4. +
                5. 3、确认完成
                6. +
                +
                +
                +
                +
                +
                商户订单号:
                +
                + * + + 商户网站订单系统中唯一订单号,必填 + +
                +
                订单名称:
                +
                + * + + 必填 + +
                + +
                付款金额:
                +
                + * + + 必填 + +
                + + +
                +
                + +
                +
                +
                + + +
                + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/query_test.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/query_test.php new file mode 100644 index 0000000..0dffe68 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/query_test.php @@ -0,0 +1,248 @@ +setOutTradeNo($out_trade_no); + + $queryContentBuilder->setAppAuthToken($appAuthToken); + + + //初始化类对象,调用queryTradeResult方法获取查询应答 + $queryResponse = new AlipayTradeService($config); + $queryResult = $queryResponse->queryTradeResult($queryContentBuilder); + + //根据查询返回结果状态进行业务处理 + switch ($queryResult->getTradeStatus()){ + case "SUCCESS": + echo "支付宝查询交易成功:"."
                --------------------------
                "; + print_r($queryResult->getResponse()); + break; + case "FAILED": + echo "支付宝查询交易失败或者交易已关闭!!!"."
                --------------------------
                "; + if(!empty($queryResult->getResponse())){ + print_r($queryResult->getResponse()); + } + break; + case "UNKNOWN": + echo "系统异常,订单状态未知!!!"."
                --------------------------
                "; + if(!empty($queryResult->getResponse())){ + print_r($queryResult->getResponse()); + } + break; + default: + echo "不支持的查询状态,交易返回异常!!!"; + break; + } + return ; +} + +?> + + + + 支付宝当面付 消费查询 + + + + +
                + +
                +
                  +
                1. 1、确认信息 →
                2. +
                3. 2、点击确认 →
                4. +
                5. 3、确认完成
                6. +
                +
                +
                +
                +
                +
                商户订单号:
                +
                + * + + 商户网站订单系统中唯一订单号,必填 + +
                + + + +
                +
                + +
                +
                +
                + + +
                + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/refund_test.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/refund_test.php new file mode 100644 index 0000000..44314b9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/refund_test.php @@ -0,0 +1,257 @@ +setOutTradeNo($out_trade_no); + $refundRequestBuilder->setRefundAmount($refund_amount); + $refundRequestBuilder->setOutRequestNo($out_request_no); + + $refundRequestBuilder->setAppAuthToken($appAuthToken); + + //初始化类对象,调用refund获取退款应答 + $refundResponse = new AlipayTradeService($config); + $refundResult = $refundResponse->refund($refundRequestBuilder); + + //根据交易状态进行处理 + switch ($refundResult->getTradeStatus()){ + case "SUCCESS": + echo "支付宝退款成功:"."
                --------------------------
                "; + print_r($refundResult->getResponse()); + break; + case "FAILED": + echo "支付宝退款失败!!!"."
                --------------------------
                "; + if(!empty($refundResult->getResponse())){ + print_r($refundResult->getResponse()); + } + break; + case "UNKNOWN": + echo "系统异常,订单状态未知!!!"."
                --------------------------
                "; + if(!empty($refundResult->getResponse())){ + print_r($refundResult->getResponse()); + } + break; + default: + echo "不支持的交易状态,交易返回异常!!!"; + break; + } + return ; +} + +?> + + + + 支付宝当面付 交易退款 + + + + +
                + +
                +
                  +
                1. 1、确认信息 →
                2. +
                3. 2、点击确认 →
                4. +
                5. 3、确认完成
                6. +
                +
                +
                +
                +
                +
                商户订单号:
                +
                + * + + 必填 +
                + +
                退款金额:
                +
                + * + + 必填 , 不能超过订单总金额 +
                + +
                退款批次号:
                +
                + * + + 必填 , 部分退款时,同一订单号不同批次号代表对同一笔订单进行多次退款 +
                + + +
                +
                + +
                +
                +
                + + +
                + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/f2fpay/service/AlipayTradeService.php b/codes/agent/game-docker/api/payment/alipay/f2fpay/service/AlipayTradeService.php new file mode 100644 index 0000000..e377f70 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/f2fpay/service/AlipayTradeService.php @@ -0,0 +1,395 @@ +gateway_url = $alipay_config['gatewayUrl']; + $this->appid = $alipay_config['app_id']; + $this->sign_type = $alipay_config['sign_type']; + //$this->private_key = $alipay_config['merchant_private_key_file']; + $this->private_key_filepath = $alipay_config['merchant_private_key_filepath']; + $this->private_key = $alipay_config['merchant_private_key']; + //$this->alipay_public_key = $alipay_config['alipay_public_key_file']; + $this->alipay_public_key_filepath = $alipay_config['alipay_public_key_filepath']; + $this->alipay_public_key = $alipay_config['alipay_public_key']; + $this->charset = $alipay_config['charset']; + $this->MaxQueryRetry = $alipay_config['MaxQueryRetry']; + $this->QueryDuration = $alipay_config['QueryDuration']; + $this->notify_url = $alipay_config['notify_url']; + + if (empty($this->appid) || trim($this->appid) == "") + throw new Exception("appid should not be NULL!"); + if ((empty($this->private_key) || trim($this->private_key) == "") && (empty($this->private_key_filepath) || trim($this->private_key_filepath) == '')) + throw new Exception("private_key should not be NULL!"); + if ((empty($this->alipay_public_key) || trim($this->alipay_public_key) == "") && (empty($this->alipay_public_key_filepath) || trim($this->alipay_public_key_filepath) == '')) + throw new Exception("alipay_public_key should not be NULL!"); + if (empty($this->charset) || trim($this->charset) == "") + throw new Exception("charset should not be NULL!"); + if (empty($this->QueryDuration) || trim($this->QueryDuration) == "") + throw new Exception("QueryDuration should not be NULL!"); + if (empty($this->gateway_url) || trim($this->gateway_url) == "") + throw new Exception("gateway_url should not be NULL!"); + if (empty($this->MaxQueryRetry) || trim($this->MaxQueryRetry) == "") + throw new Exception("MaxQueryRetry should not be NULL!"); + if (empty($this->sign_type) || trim($this->sign_type) == "") + throw new Exception("sign_type should not be NULL"); + } + + function AlipayWapPayService($alipay_config) + { + $this->__construct($alipay_config); + } + + // 当面付2.0条码支付(带轮询逻辑) + public function barPay($req) + { + $outTradeNo = $req->getOutTradeNo(); + $bizContent = $req->getBizContent(); + + $appAuthToken = $req->getAppAuthToken(); + + $this->writeLog($bizContent); + + //echo $bizContent; + + $request = new AlipayTradePayRequest(); + $request->setBizContent($bizContent); + + $response = $this->aopclientRequestExecute($request, null, $appAuthToken); + + //获取alipay_trade_pay_response对象数据,方便后续处理 + $response = $response->alipay_trade_pay_response; + + $result = new AlipayF2FPayResult($response); + + if (!empty($response) && ("10000" == $response->code)) + { + // 支付交易明确成功 + $result->setTradeStatus("SUCCESS"); + + } + elseif (!empty($response) && ("10003" == $response->code)) + { + // 返回用户处理中,则轮询查询交易是否成功,如果查询超时,则调用撤销 + $queryContentBuilder = new AlipayTradeQueryContentBuilder(); + $queryContentBuilder->setOutTradeNo($outTradeNo); + $queryContentBuilder->setAppAuthToken($appAuthToken); + + $loopQueryResponse = $this->loopQueryResult($queryContentBuilder); + return $this->checkQueryAndCancel($outTradeNo, $appAuthToken, $result, $loopQueryResponse); + + } + elseif ($this->tradeError($response)) + { + // 系统错误或者网络异常未响应,则查询一次交易,如果交易没有支付成功,则调用撤销 + $queryContentBuilder = new AlipayTradeQueryContentBuilder(); + $queryContentBuilder->setOutTradeNo($outTradeNo); + $queryContentBuilder->setAppAuthToken($appAuthToken); + + $queryResponse = $this->query($queryContentBuilder); + + return $this->checkQueryAndCancel($outTradeNo, $appAuthToken, $result, $queryResponse); + + } + else + { + // 其他情况表明该订单支付明确失败 + $result->setTradeStatus("FAILED"); + } + + return $result; + + } + + // 当面付2.0消费查询 + public function queryTradeResult($req) + { + $response = $this->query($req); + $result = new AlipayF2FQueryResult($response); + + if ($this->querySuccess($response)) + // 查询返回该订单交易支付成功 + $result->setTradeStatus("SUCCESS"); + elseif ($this->tradeError($response)) + //查询发生异常或无返回,交易状态未知 + $result->setTradeStatus("UNKNOWN"); + else + //其他情况均表明该订单号交易失败 + $result->setTradeStatus("FAILED"); + + return $result; + + } + + // 当面付2.0消费退款,$req为对象变量 + public function refund($req) + { + $bizContent = $req->getBizContent(); + $this->writeLog($bizContent); + $request = new AlipayTradeRefundRequest(); + $request->setBizContent($bizContent); + $response = $this->aopclientRequestExecute($request, null, $req->getAppAuthToken()); + + $response = $response->alipay_trade_refund_response; + + $result = new AlipayF2FRefundResult($response); + if (!empty($response) && ("10000" == $response->code)) + $result->setTradeStatus("SUCCESS"); + elseif ($this->tradeError($response)) + $result->setTradeStatus("UNKNOWN"); + else + $result->setTradeStatus("FAILED"); + + return $result; + } + + //当面付2.0预下单(生成二维码,带轮询) + public function qrPay($req) + { + $bizContent = $req->getBizContent(); + $this->writeLog($bizContent); + + $request = new AlipayTradePrecreateRequest(); + $request->setBizContent($bizContent); + $request->setNotifyUrl($this->notify_url); + + // 首先调用支付api + $response = $this->aopclientRequestExecute($request, null, $req->getAppAuthToken()); + $response = $response->alipay_trade_precreate_response; + + $result = new AlipayF2FPrecreateResult($response); + if (!empty($response) && ("10000" == $response->code)) + $result->setTradeStatus("SUCCESS"); + elseif ($this->tradeError($response)) + $result->setTradeStatus("UNKNOWN"); + else + $result->setTradeStatus("FAILED"); + + return $result; + + } + + + public function query($queryContentBuilder) + { + $biz_content = $queryContentBuilder->getBizContent(); + $this->writeLog($biz_content); + $request = new AlipayTradeQueryRequest(); + $request->setBizContent($biz_content); + $response = $this->aopclientRequestExecute($request, null, $queryContentBuilder->getAppAuthToken()); + + return $response->alipay_trade_query_response; + } + + // 轮询查询订单支付结果 + protected function loopQueryResult($queryContentBuilder) + { + $queryResult = null; + for ($i = 1; $i < $this->MaxQueryRetry; $i++) + { + try + { + sleep($this->QueryDuration); + } + catch (Exception $e) + { + print $e->getMessage(); + exit(); + } + + $queryResponse = $this->query($queryContentBuilder); + if (!empty($queryResponse)) + { + if ($this->stopQuery($queryResponse)) + return $queryResponse; + + $queryResult = $queryResponse; + } + } + return $queryResult; + } + + // 判断是否停止查询 + protected function stopQuery($response) + { + if ("10000" == $response->code) + { + if ("TRADE_FINISHED" == $response->trade_status || "TRADE_SUCCESS" == $response->trade_status || "TRADE_CLOSED" == $response->trade_status) + return true; + } + return false; + } + + // 根据查询结果queryResponse判断交易是否支付成功,如果支付成功则更新result并返回,如果不成功则调用撤销 + private function checkQueryAndCancel($outTradeNo, $appAuthToken, $result, $queryResponse) + { + if ($this->querySuccess($queryResponse)) + { + // 如果查询返回支付成功,则返回相应结果 + $result->setTradeStatus("SUCCESS"); + $result->setResponse($queryResponse); + return $result; + } + elseif ($this->queryClose($queryResponse)) + { + // 如果查询返回交易关闭,标记交易失败 + $result->setTradeStatus("FAILED"); + return $result; + } + + // 如果查询结果不为成功,则调用撤销 + $cancelContentBuilder = new AlipayTradeCancelContentBuilder(); + $cancelContentBuilder->setAppAuthToken($appAuthToken); + $cancelContentBuilder->setOutTradeNo($outTradeNo); + $cancelResponse = $this->cancel($cancelContentBuilder); + if ($this->tradeError($cancelResponse)) + { + // 如果第一次同步撤销返回异常,则标记支付交易为未知状态 + $result->setTradeStatus("UNKNOWN"); + } + else + { + // 标记支付为失败,如果撤销未能成功,产生的单边帐由人工处理 + $result->setTradeStatus("FAILED"); + } + return $result; + } + + // 查询返回“支付成功” + protected function querySuccess($queryResponse) + { + return !empty($queryResponse) && + $queryResponse->code == "10000" && + ($queryResponse->trade_status == "TRADE_SUCCESS" || + $queryResponse->trade_status == "TRADE_FINISHED"); + } + + // 查询返回“交易关闭” + protected function queryClose($queryResponse) + { + return !empty($queryResponse) && + $queryResponse->code == "10000" && + $queryResponse->trade_status == "TRADE_CLOSED"; + } + + // 交易异常,或发生系统错误 + protected function tradeError($response) + { + return empty($response) || + $response->code == "20000"; + } + + + public function cancel($cancelContentBuilder) + { + $biz_content = $cancelContentBuilder->getBizContent(); + $this->writeLog($biz_content); + $request = new AlipayTradeCancelRequest(); + $request->setBizContent($biz_content); + $response = $this->aopclientRequestExecute($request, null, $cancelContentBuilder->getAppAuthToken()); + return $response->alipay_trade_cancel_response; + } + + /** + * 使用SDK执行提交页面接口请求 + * @param unknown $request + * @param string $token + * @param string $appAuthToken + * @return string $$result + */ + private function aopclientRequestExecute($request, $token = null, $appAuthToken = null) + { + $aop = new AopClient (); + $aop->gatewayUrl = $this->gateway_url; + $aop->appId = $this->appid; + $aop->signType = $this->sign_type; + //$aop->rsaPrivateKeyFilePath = $this->private_key; + $aop->rsaPrivateKeyFilePath = $this->private_key_filepath; + $aop->rsaPrivateKey = $this->private_key; + //$aop->alipayPublicKey = $this->alipay_public_key; + $aop->alipayPublicKey = $this->alipay_public_key_filepath; + $aop->alipayrsaPublicKey = $this->alipay_public_key; + $aop->apiVersion = "1.0"; + $aop->postCharset = $this->charset; + + $aop->format = $this->format; + // 开启页面信息输出 + $aop->debugInfo = true; + $result = $aop->execute($request, $token, $appAuthToken); + + //打开后,将url形式请求报文写入log文件 + //$this->writeLog("response: ".var_export($result,true)); + return $result; + } + + function writeLog($text) + { + // $text=iconv("GBK", "UTF-8//IGNORE", $text); + //$text = characet ( $text ); + file_put_contents("log/log.txt", date("Y-m-d H:i:s") . " " . $text . "\r\n", FILE_APPEND); + } + + /** *利用google api生成二维码图片 + * $content:二维码内容参数 + * $size:生成二维码的尺寸,宽度和高度的值 + * $lev:可选参数,纠错等级 + * $margin:生成的二维码离边框的距离 + */ + function create_erweima($content, $size = '200', $lev = 'L', $margin = '0') + { + $content = urlencode($content); + $image = ''; + return $image; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/index.php b/codes/agent/game-docker/api/payment/alipay/index.php new file mode 100644 index 0000000..050750f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/index.php @@ -0,0 +1,188 @@ + + + + 支付宝手机网站支付接口2.0 + + + + +
                +

                支付宝手机网站支付2.0接口

                +
                +
                +
                +
                +
                +
                + +
                +
                +
                + +
                +
                +
                + +
                +
                +
                + +
                +
                +
                + +
                +
                +
                + +
                + + \ No newline at end of file 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 new file mode 100644 index 0000000..dbf24a8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key.pem @@ -0,0 +1,9 @@ +-----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 new file mode 100644 index 0000000..7757c70 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_online.pem @@ -0,0 +1,9 @@ +-----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 new file mode 100644 index 0000000..62ce29d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/alipay_rsa_public_key_sandbox.pem @@ -0,0 +1,6 @@ +-----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 new file mode 100644 index 0000000..a4be808 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_private_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..5d104ab --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pem @@ -0,0 +1,9 @@ +-----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 new file mode 100644 index 0000000..1cc1f47 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2015102100502734/rsa_public_key.pkcs8 @@ -0,0 +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----- diff --git a/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/alipay_rsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/alipay_rsa_public_key.pem new file mode 100644 index 0000000..7dd7cae --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/alipay_rsa_public_key.pem @@ -0,0 +1 @@ +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkthY0PSydHhr+UT2e7azqqI9RhwcbW77b04Cq4GrcvByfTIvT4p7y6h51Yf2drCbjuQpZvKtIpHDlycpP1EUf+ZAeDwZqEs5rKknWWzr/EL1DyKrUzwZ0Gsw7cLDZn+MmUsJNCLIur7EDQWUDBq6qqjPQCnpH2VYOu6cUjOm2A+hlT/bld/EqCWTgKbC0tiNp1tL5s5JWSmd+vLFHe3/uMj6jN+Db3NObQik4trwVpxpB1nKs9x7HQuUT8gLHxD1ai28nSKKIoxjP83Vtq0de6ioGB+416+Ee/PeySwHEH/HT6nEWYjiOjzmm7hEQ6TtNOgdHwpUHMliQbHukdVpcwIDAQAB \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/rsa_private_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/rsa_private_key.pem new file mode 100644 index 0000000..b4e4aae --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/rsa_private_key.pem @@ -0,0 +1 @@ +MIIEpAIBAAKCAQEA3ClZnhCov98GelLuVxlRWw5qpnkMqaJYc6NaAWDBgyQhnOc10O7S1MtvL2L4mDKcILTsDbrQF65K2v66//vBnbKfxjDRUKIAvJVrFvTpwfdhghIBF/UoSA2vo0BuQ+O6AsMV7dJGDQXm266XhoMT3IbtSf556J2pmhG7lasYYGV0Vf01+fviCUkwUqXkiEI/INKi0D9Vd+lcmdpGjAM5DrXGFQHKBswBQmkaQ+D8Pr7KhAKirA9B27VGBPNmNS7e96Fw0lXyZ16zVRPcR/+Jk1mk0DOuP7qVh4xmISi0sNQlbUlZqQhxVzOxQvyidUnGmBP5RdTFry/+bJVbbRArSQIDAQABAoIBAGStIAcRFSnQgfTUEZuQv0xFVm3T8v9rdslCjLkOls8yaZCHhmuJmq2mbayctJNcqVqngT5yDBCYKjDkxXyjkpFbioal8kHOI0oZhcQUsQR67IL/WrKq8AWrBINBxmqTK49xyIhdXJ098qjIuQ/QxvdUWBQ7I2JFHraOn1o8yEPjp51Vg5lUf5cIO5VXK8LfvqC8EWf8Xpkj8sY3d3yJKWEawfU1/8ZNX31zGP5qdIr2aHenBWcnkLlxnSFWQk2NvmbBSQqMxOizBAvVnwJK888i3COdpCxFody5LbU2nU9k67ezOw071GYY2MXDRdGS+rOAH/arfYbQS3/mODvVFBECgYEA+a3Ozt0PmQfJmEwcKflgg1o2tEag5pQCrviFh0cu8txPCoxQjfh/925oM5sCR7b3/SCIsYi0jmfN6kuUSarcQLtKoJ4Rj+Nb/FacjErIe7Ag6YN4MTyD8o1MNptP3E8HHr3pbXm4ELy5UrcX6TFaNe18jDC9vEg6/E1Y/roIWF0CgYEA4bw8tiNJO6zw6tzNmGf8KJ2tfBbZLDBOWLyfBhVWeXtTFcYK4EsbfrzXOFOs1h+FGdLEmZaHTPa9ujn4beOP8VIvIM802ewqclMqF7j/aOUe7GVg3cmUxSSlJnktIFLz3/moY0rwubLjr82FwWp4oVhZXQQuYXpQq+myKEjBP90CgYEAnQuMF2XIl9LkJJ1K4cPvxu8JlZ8POblDbtb29j3589xLAzF6wbHam8GgXUVUy9L0bQz3reN03lXAmWxsm2GTJEwqBpkmJsE1bKT11vB65gHE0dxVz3Jm9DuYAojyVHqI2fdOSgPTmQN79eEgcxcNzPnR60QFM9ai82ubXK2a7ikCgYEAvZtnQ3YQJVf2ZNBiwQlW/Ka0+e4XLM7GgDKvQGTb5d54w2k96Xgs+B+Wh3GBU7nWCwLGsFuH+lWmt63JxkPGvGTTwTNKqWF9pdnFGXgC0RDjEJ1259RSaeWF8vMFvIjw38jMb9qaqOBh72EqYHQWLzAOn9rLOoWLDVuWkc/KwuECgYBHnbBg+jhb2n8fMi2eIgXFjoT8Ot+4hC2KPlgsnr5afgWtcdDiIJcGrUqIYAaLQgI7H8oyhhHkUkXzh1KhOIP2seuSVNPRiCsFNRKI3nqyK3dpDYuBA08NtpToLcHTlmYaREiJP9LHUUndWHoTEeVIB7Frjp6BhRdIZ+e93X0H1Q== \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/rsa_public_key.pem b/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/rsa_public_key.pem new file mode 100644 index 0000000..3d508b1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2018041102538172/rsa_public_key.pem @@ -0,0 +1 @@ +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3ClZnhCov98GelLuVxlRWw5qpnkMqaJYc6NaAWDBgyQhnOc10O7S1MtvL2L4mDKcILTsDbrQF65K2v66//vBnbKfxjDRUKIAvJVrFvTpwfdhghIBF/UoSA2vo0BuQ+O6AsMV7dJGDQXm266XhoMT3IbtSf556J2pmhG7lasYYGV0Vf01+fviCUkwUqXkiEI/INKi0D9Vd+lcmdpGjAM5DrXGFQHKBswBQmkaQ+D8Pr7KhAKirA9B27VGBPNmNS7e96Fw0lXyZ16zVRPcR/+Jk1mk0DOuP7qVh4xmISi0sNQlbUlZqQhxVzOxQvyidUnGmBP5RdTFry/+bJVbbRArSQIDAQAB \ No newline at end of file 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 new file mode 100644 index 0000000..93edc56 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/alipay_rsa_public_key.pem @@ -0,0 +1,9 @@ +-----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 new file mode 100644 index 0000000..c03251d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..91ff113 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_private_key_pkcs8.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..0c17ea8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2018060660295839/rsa_public_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..5dc9058 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key.pem @@ -0,0 +1,6 @@ +-----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 new file mode 100644 index 0000000..7757c70 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_online.pem @@ -0,0 +1,9 @@ +-----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 new file mode 100644 index 0000000..62ce29d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/alipay_rsa_public_key_sandbox.pem @@ -0,0 +1,6 @@ +-----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 new file mode 100644 index 0000000..beb2912 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_param.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..a7ede0e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..6fbf535 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_private_key_pkcs8.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..01087c0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/dsa_public_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..53ccab7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..acb7c59 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_private_key_pkcs8.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..59b58f4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/key/2088421356638354/rsa_public_key.pem @@ -0,0 +1,9 @@ +-----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/alipay_core.function.php b/codes/agent/game-docker/api/payment/alipay/lib/alipay_core.function.php new file mode 100644 index 0000000..02e4c96 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lib/alipay_core.function.php @@ -0,0 +1,206 @@ + $value) + { + if ($Property = $Reflect->GetProperty($key)) + { + if ($Property->IsPublic()) + $Property->SetValue($this, $value); + elseif ($Property->IsPrivate()) + throw new Exception('can not access private property: ' . $class_name . '::' . $key . ' in ' . __FILE__ . ' on line ' . __LINE__); + elseif ($Property->IsProtected()) + throw new Exception('can not access protected property: ' . $class_name . '::' . $key . ' in ' . __FILE__ . ' on line ' . __LINE__); + else + throw new Exception('can not access unknown property: ' . $class_name . '::' . $key . ' in ' . __FILE__ . ' on line ' . __LINE__); + + $Property = null; + } else + throw new Exception('undefined property: ' . $class_name . '::' . $key . ' in ' . __FILE__ . ' on line ' . __LINE__); + } + } + + function AlipayNotify($config) + { + $this->__construct($config); + } + + /** + * + * @return 验证结果 + */ + function verifyNotify() + { + if (empty($_POST)) /// 判断POST来的数组是否为空 + return false; + + /// 生成签名结果 + $isSign = $this->getSignVeryfy($_POST, $_POST["sign"]); + /// isSign的结果不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关 + return $isSign ? true : false; + } + + /** + * 针对return_url验证消息是否是支付宝发出的合法消息 + * @return 验证结果 + */ + function verifyReturn() + { + if (empty($_GET)) //判断POST来的数组是否为空 + return false; + + //生成签名结果 + $isSign = $this->getSignVeryfy($_GET, $_GET["sign"]); + //获取支付宝远程服务器ATN结果(验证是否是支付宝发来的消息) + $responseTxt = 'false'; + if (!empty($_GET["notify_id"])) + { + $responseTxt = $this->getResponse($_GET["notify_id"]); + } + + //写日志记录 + //if ($isSign) + // $isSignStr = 'true'; + //else + // $isSignStr = 'false'; + //$log_text = "responseTxt=".$responseTxt."\n return_url_log:isSign=".$isSignStr.","; + //$log_text = $log_text.createLinkString($_GET); + //logResult($log_text); + + //验证 + //$responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关 + //isSign的结果不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关 + return (preg_match("/true$/i", $responseTxt) && $isSign) ? true : false; + } + + /** + * 获取返回时的签名验证结果 + * @param array $para_temp 通知返回来的参数数组 + * @param string $sign 返回的签名结果 + * @return 签名验证结果 + */ + function getSignVeryfy($para_temp, $sign) + { + //除去待签名参数数组中的空值和签名参数 + $para_filter = paraFilter($para_temp); + + //对待签名参数数组排序 + $para_sort = argSort($para_filter); + + //把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 + $prestr = createLinkstring($para_sort); + + switch (strtoupper(trim($this->sign_type))) + { + case 'RSA': + $isSgin = rsaVerify($prestr, trim($this->alipay_public_key), $sign); + break; + case 'MD5': + $isSgin = md5Verify($prestr, $sign, $this->md5_key); + break; + default : + $isSgin = false; + } + + return $isSgin; + } + + /** + * 获取远程服务器ATN结果,验证返回URL + * @param string $notify_id 通知校验ID + * @return 服务器ATN结果 + * 验证结果集: + * invalid命令参数不对 出现这个错误,请检测返回处理中partner和key是否为空 + * true 返回正确信息 + * false 请检查防火墙或者是服务器阻止端口问题以及验证时间是否超过一分钟 + */ + function getResponse($notify_id) + { + $transport = strtolower(trim($this->transport)); + $partner = trim($this->partner); + + if ($transport == 'https') + $veryfy_url = $this->https_verify_url; + else + $veryfy_url = $this->http_verify_url; + + $veryfy_url = "{$veryfy_url}partner={$partner}¬ify_id={$notify_id}"; + $responseTxt = getHttpResponseGET($veryfy_url, $this->cacert_file_path); + + return $responseTxt; + } +} + diff --git a/codes/agent/game-docker/api/payment/alipay/lib/alipay_rsa.function.php b/codes/agent/game-docker/api/payment/alipay/lib/alipay_rsa.function.php new file mode 100644 index 0000000..99850e8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lib/alipay_rsa.function.php @@ -0,0 +1,68 @@ + $value) + { + if ($Property = $Reflect->GetProperty($key)) + { + if ($Property->IsPublic()) + $Property->SetValue($this, $value); + elseif ($Property->IsPrivate()) + throw new Exception('can not access private property: ' . $class_name . '::' . $key . ' in ' . __FILE__ . ' on line ' . __LINE__); + elseif ($Property->IsProtected()) + throw new Exception('can not access protected property: ' . $class_name . '::' . $key . ' in ' . __FILE__ . ' on line ' . __LINE__); + else + throw new Exception('can not access unknown property: ' . $class_name . '::' . $key . ' in ' . __FILE__ . ' on line ' . __LINE__); + + $Property = null; + } else + throw new Exception('undefined property: ' . $class_name . '::' . $key . ' in ' . __FILE__ . ' on line ' . __LINE__); + } + } + + function AlipaySubmit($config) + { + $this->__construct($config); + } + + /** + * 生成签名结果 + * @param array $para_sort 已排序要签名的数组 + * @return string 签名结果字符串 + */ + function buildRequestMysign($para_sort) + { + /// 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串 + $prestr = createLinkstring($para_sort); + + switch (strtoupper(trim($this->sign_type))) + { + case 'RSA': + $mysign = rsaSign($prestr, $this->rsa_private_key_path); + break; + case 'MD5': + $mysign = md5Sign($prestr, $this->md5_key); + break; + default : + $mysign = ''; + } + + return $mysign; + } + + /** + * 生成要请求给支付宝的参数数组 + * @param array $para_temp 请求前的参数数组 + * @return array 要请求的参数数组 + */ + function buildRequestPara($para_temp) + { + //除去待签名参数数组中的空值和签名参数 + $para_filter = paraFilter($para_temp); + + //对待签名参数数组排序 + $para_sort = argSort($para_filter); + + //生成签名结果 + $mysign = $this->buildRequestMysign($para_sort); + + //签名结果与签名方式加入请求提交参数组中 + $para_sort['sign'] = $mysign; + $para_sort['sign_type'] = strtoupper(trim($this->sign_type)); + + return $para_sort; + } + + /** + * 生成要请求给支付宝的参数数组 + * @param array $para_temp 请求前的参数数组 + * @return 要请求的参数数组字符串 + */ + function buildRequestParaToString($para_temp) + { + /// 待请求参数数组 + $para = $this->buildRequestPara($para_temp); + /// 把参数组中所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对字符串做urlencode编码 + $request_data = createLinkstringUrlencode($para); + return $request_data; + } + + /** + * 建立请求,以表单HTML形式构造(默认) + * @param array $para_temp 请求参数数组 + * @param string $method 提交方式。两个值可选:post、get + * @param string $button_name 确认按钮显示文字 + * @return string 提交表单HTML文本 + */ + function buildRequestForm($para_temp, $method, $button_name) + { + /// 待请求参数数组 + $para = $this->buildRequestPara($para_temp); + + $sHtml = "
                "; + while (list ($key, $val) = each($para)) + { + $sHtml .= ""; + } + + /// submit按钮控件请不要含有name属性 + $sHtml = $sHtml . ""; + $sHtml = $sHtml . ""; + return $sHtml; + } + + + /** + * 建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果 + * @param array $para_temp 请求参数数组 + * @return string 支付宝处理结果 + */ + function buildRequestHttp($para_temp) + { + /// 待请求参数数组字符串 + $request_data = $this->buildRequestPara($para_temp); + /// 远程获取数据 + $sResult = getHttpResponsePOST($this->alipay_gateway_new, $this->cacert_file_path, $request_data, trim(strtolower($this->input_charset))); + return $sResult; + } + + /** + * 建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果,带文件上传功能 + * @param array $para_temp 请求参数数组 + * @param string $file_para_name 文件类型的参数名 + * @param string $file_name 文件完整绝对路径 + * @return string 支付宝返回处理结果 + */ + function buildRequestHttpInFile($para_temp, $file_para_name, $file_name) + { + /// 待请求参数数组 + $para = $this->buildRequestPara($para_temp); + $para[$file_para_name] = "@".$file_name; + + /// 远程获取数据 + $sResult = getHttpResponsePOST($this->alipay_gateway_new, $this->cacert_file_path, $para, trim(strtolower($this->input_charset))); + + return $sResult; + } + + /** + * 用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数 + * 注意:该功能PHP5环境及以上支持,因此必须服务器、本地电脑中装有支持DOMDocument、SSL的PHP配置环境。建议本地调试时使用PHP开发软件 + * return 时间戳字符串 + */ + function query_timestamp() + { + $url = $this->alipay_gateway_new . "service=query_timestamp&partner=" . trim(strtolower($this->partner)) . "&_input_charset=" . trim(strtolower($this->input_charset)); + + $doc = new DOMDocument(); + $doc->load($url); + $itemEncrypt_key = $doc->getElementsByTagName("encrypt_key"); + $encrypt_key = $itemEncrypt_key->item(0)->nodeValue; + + return $encrypt_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 new file mode 100644 index 0000000..cb8f7fa --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lib/cacert.pem @@ -0,0 +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= +-----END CERTIFICATE----- \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/log.txt b/codes/agent/game-docker/api/payment/alipay/log.txt new file mode 100644 index 0000000..e69de29 diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Autoloader/Autoloader.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Autoloader/Autoloader.php new file mode 100644 index 0000000..a74ef3f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Autoloader/Autoloader.php @@ -0,0 +1,306 @@ + true, + + /** + * 要扫描的文件类型 + * + * 若该属性设置为array("php","inc","php3"), + * 则扩展名为"php","inc","php3"的文件会被扫描, + * 其它扩展名的文件会被忽略 + */ + "allow_file_extension" => array("php", "inc"), + + /** + * 不扫描的目录 + * + * 若该属性设置为array(".svn", ".setting"), + * 则所有名为".setting"的目录也会被忽略 + */ + "skip_dir_names" => array(".svn"), + ); + + public $storeHandle; + public $autoloadPath; + protected $functionFileMapping; + protected $fileStore; + + public function init() + { + if (!is_object($this->storeHandle)) + { + $this->storeHandle = new LtStoreMemory; + $this->fileStore = new LtStoreFile; + $this->fileStore->prefix = 'LtAutoloader-token-cache'; + $this->fileStore->useSerialize = true; + $this->fileStore->init(); + } + // Whether scanning directory + if (0 == $this->storeHandle->get(".class_total") && 0 == $this->storeHandle->get(".function_total")) + { + $this->storeHandle->add(".class_total", 0); + $this->storeHandle->add(".function_total", 0); + $this->storeHandle->add(".functions", array(), 0); + $autoloadPath = $this->preparePath($this->autoloadPath); + foreach($autoloadPath as $key => $path) + { + if (is_file($path)) + { + $this->addFileMap($path); + unset($autoloadPath[$key]); + } + } + $this->scanDirs($autoloadPath); + unset($autoloadPath); + } + // Whether loading function files + if ($this->conf["load_function"]) + { + $this->loadFunction(); + } + spl_autoload_register(array($this, "loadClass")); + } + + public function loadFunction() + { + if ($functionFiles = $this->storeHandle->get(".functions")) + { + foreach ($functionFiles as $functionFile) + { + include($functionFile); + } + } + } + + public function loadClass($className) + { + if ($classFile = $this->storeHandle->get(strtolower($className))) + { + include($classFile); + } + } + + protected function convertPath($path) + { + $path = str_replace("\\", "/", $path); + if (!is_readable($path)) + { + trigger_error("Directory is not exists/readable: {$path}"); + return false; + } + $path = rtrim(realpath($path), '\\/'); + if ("WINNT" != PHP_OS && preg_match("/\s/i", $path)) + { + trigger_error("Directory contains space/tab/newline is not supported: {$path}"); + return false; + } + return $path; + } + + /** + * The string or an Multidimensional array into a one-dimensional array + * + * @param array $ or string $var + * @return array one-dimensional array + */ + protected function preparePath($var) + { + $ret = array(); + if (!is_array($var)) + { + $var = array($var); + } + $i = 0; + while (isset($var[$i])) + { + if (!is_array($var[$i]) && $path = $this->convertPath($var[$i])) + { + $ret[] = $path; + } + else + { + foreach($var[$i] as $v) + { + $var[] = $v; + } + } + unset($var[$i]); + $i ++; + } + return $ret; + } + + /** + * Using iterative algorithm scanning subdirectories + * save autoloader filemap + * + * @param array $dirs one-dimensional + * @return + */ + protected function scanDirs($dirs) + { + $i = 0; + while (isset($dirs[$i])) + { + $dir = $dirs[$i]; + $files = scandir($dir); + foreach ($files as $file) + { + if (in_array($file, array(".", "..")) || in_array($file, $this->conf["skip_dir_names"])) + { + continue; + } + $currentFile = $dir . DIRECTORY_SEPARATOR . $file; + if (is_file($currentFile)) + { + $this->addFileMap($currentFile); + } + else if (is_dir($currentFile)) + { + // if $currentFile is a directory, pass through the next loop. + $dirs[] = $currentFile; + } + else + { + trigger_error("$currentFile is not a file or a directory."); + } + } //end foreach + unset($dirs[$i]); + $i ++; + } //end while + } + + protected function parseLibNames($src) + { + $libNames = array(); + $tokens = token_get_all($src); + $level = 0; + $found = false; + $name = ''; + foreach ($tokens as $token) + { + if (is_string($token)) + { + if ('{' == $token) + { + $level ++; + } + else if ('}' == $token) + { + $level --; + } + } + else + { + list($id, $text) = $token; + if (T_CURLY_OPEN == $id || T_DOLLAR_OPEN_CURLY_BRACES == $id) + { + $level ++; + } + if (0 < $level) + { + continue; + } + switch ($id) + { + case T_STRING: + if ($found) + { + $libNames[strtolower($name)][] = $text; + $found = false; + } + break; + case T_CLASS: + case T_INTERFACE: + case T_FUNCTION: + $found = true; + $name = $text; + break; + } + } + } + return $libNames; + } + + protected function addClass($className, $file) + { + $key = strtolower($className); + if ($existedClassFile = $this->storeHandle->get($key)) + { + trigger_error("duplicate class [$className] found in:\n$existedClassFile\n$file\n"); + return false; + } + else + { + $this->storeHandle->add($key, $file); + $this->storeHandle->update(".class_total", $this->storeHandle->get(".class_total") + 1); + return true; + } + } + + protected function addFunction($functionName, $file) + { + $functionName = strtolower($functionName); + if (isset($this->functionFileMapping[$functionName])) + { + $existedFunctionFile = $this->functionFileMapping[$functionName]; + trigger_error("duplicate function [$functionName] found in:\n$existedFunctionFile\n$file\n"); + return false; + } + else + { + $this->functionFileMapping[$functionName] = $file; + $this->storeHandle->update(".functions", array_unique(array_values($this->functionFileMapping))); + $this->storeHandle->update(".function_total", count($this->functionFileMapping)); + return true; + } + } + + protected function addFileMap($file) + { + if (!in_array(pathinfo($file, PATHINFO_EXTENSION), $this->conf["allow_file_extension"])) + { + return false; + } + $libNames = array(); + if ($this->fileStore instanceof LtStore) + { + $cachedFileLastModified = (int) @filemtime($this->fileStore->getFilePath($file)); + if ($cachedFileLastModified < filemtime($file) || !is_array(($libNames = $this->fileStore->get($file)))) + { + $libNames = $this->parseLibNames(trim(file_get_contents($file))); + if (0 < $cachedFileLastModified) + { + $this->fileStore->update($file, $libNames); + } + else + { + $this->fileStore->add($file, $libNames); + } + } + } + else + { + $libNames = $this->parseLibNames(trim(file_get_contents($file))); + } + + foreach ($libNames as $libType => $libArray) + { + $method = "function" == $libType ? "addFunction" : "addClass"; + foreach ($libArray as $libName) + { + $this->$method($libName, $file); + } + } + return true; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapter.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapter.php new file mode 100644 index 0000000..5009b9b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapter.php @@ -0,0 +1,9 @@ +getRealKey($tableName, $key), $value, $ttl); + } + + public function del($key, $tableName, $connectionResource) + { + return apc_delete($this->getRealKey($tableName, $key)); + } + + public function get($key, $tableName, $connectionResource) + { + return apc_fetch($this->getRealKey($tableName, $key)); + } + + public function update($key, $value, $ttl = 0, $tableName, $connectionResource) + { + if ($this->del($key, $tableName, $connectionResource)) + { + return $this->add($key, $value, $ttl, $tableName, $connectionResource); + } + else + { + return false; + } + } + + protected function getRealKey($tableName, $key) + { + return $tableName . "-" . $key; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterEAccelerator.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterEAccelerator.php new file mode 100644 index 0000000..181de30 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterEAccelerator.php @@ -0,0 +1,49 @@ +getRealKey($tableName, $key), $value, $ttl); + } + + public function del($key, $tableName, $connectionResource) + { + return eaccelerator_rm($this->getRealKey($tableName, $key)); + } + + public function get($key, $tableName, $connectionResource) + { + $value = eaccelerator_get($this->getRealKey($tableName, $key)); + if (!empty($value)) + { + return unserialize($value); + } + else + { + return false; + } + } + + public function update($key, $value, $ttl = 0, $tableName, $connectionResource) + { + if ($this->del($key, $tableName, $connectionResource)) + { + return $this->add($key, $value, $ttl, $tableName, $connectionResource); + } + else + { + return false; + } + } + + protected function getRealKey($tableName, $key) + { + return $tableName . "-" . $key; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterFile.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterFile.php new file mode 100644 index 0000000..c0af63b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterFile.php @@ -0,0 +1,68 @@ +prefix = 'LtCache-file'; + $fileStore->useSerialize = true; + $fileStore->init(); + return $fileStore; + } + + public function add($key, $value, $ttl = 0, $tableName, $connectionResource) + { + if (0 != $ttl) + { + $ttl += time(); + } + if (true == $connectionResource->add($this->getRealKey($tableName, $key), array("ttl" => $ttl, "value" => $value))) + { + return true; + } + else + { + if ($this->get($key,$tableName,$connectionResource)) + { + return false; + } + else + { + $this->del($key,$tableName,$connectionResource); + return $connectionResource->add($this->getRealKey($tableName, $key), array("ttl" => $ttl, "value" => $value)); + } + } + } + + public function del($key, $tableName, $connectionResource) + { + return $connectionResource->del($this->getRealKey($tableName, $key)); + } + + public function get($key, $tableName, $connectionResource) + { + $cachedArray = $connectionResource->get($this->getRealKey($tableName, $key)); + if (is_array($cachedArray) && (0 == $cachedArray["ttl"] || $cachedArray["ttl"] > time())) + { + return $cachedArray["value"]; + } + else + { + return false; + } + } + + public function update($key, $value, $ttl = 0, $tableName, $connectionResource) + { + if (0 != $ttl) + { + $ttl += time(); + } + return $connectionResource->update($this->getRealKey($tableName, $key), array("ttl" => $ttl, "value" => $value)); + } + + protected function getRealKey($tableName, $key) + { + return $tableName . "-" . $key; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterMemcache.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterMemcache.php new file mode 100644 index 0000000..98a7c16 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterMemcache.php @@ -0,0 +1,33 @@ +add($this->getRealKey($tableName, $key), $value, false, $ttl); + } + + public function del($key, $tableName, $connectionResource) + { + return $connectionResource->delete($this->getRealKey($tableName, $key), 0); + } + + public function get($key, $tableName, $connectionResource) + { + return $connectionResource->get($this->getRealKey($tableName, $key)); + } + + public function update($key, $value, $ttl = 0, $tableName, $connectionResource) + { + return $connectionResource->replace($this->getRealKey($tableName, $key), $value, false, $ttl); + } + + protected function getRealKey($tableName, $key) + { + return $tableName . "-" . $key; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterMemcached.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterMemcached.php new file mode 100644 index 0000000..509caff --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterMemcached.php @@ -0,0 +1,35 @@ +addServer($hostConf["host"], $hostConf["port"]); + return $connectionResource; + } + + public function add($key, $value, $ttl=0, $tableName, $connectionResource) + { + return $connectionResource->add($this->getRealKey($tableName, $key), $value, $ttl); + } + + public function del($key, $tableName, $connectionResource) + { + return $connectionResource->delete($this->getRealKey($tableName, $key)); + } + + public function get($key, $tableName, $connectionResource) + { + return $connectionResource->get($this->getRealKey($tableName, $key)); + } + + public function update($key, $value, $ttl = 0, $tableName, $connectionResource) + { + return $connectionResource->replace($this->getRealKey($tableName, $key), $value, $ttl); + } + + protected function getRealKey($tableName, $key) + { + return $tableName . "-" . $key; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterPhps.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterPhps.php new file mode 100644 index 0000000..fb24868 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterPhps.php @@ -0,0 +1,55 @@ +cacheFileRoot = $hostConf['host']; + $fileStore->prefix = 'Ltcache-phps-'; + $fileStore->init(); + return $fileStore; + } + else + { + trigger_error("Must set [host]"); + return false; + } + } + + public function add($key, $value, $ttl = 0, $tableName, $connectionResource) + { + return $connectionResource->add($this->getRealKey($tableName, $key), $this->valueToString($value), $ttl); + } + + public function del($key, $tableName, $connectionResource) + { + return $connectionResource->del($this->getRealKey($tableName, $key)); + } + + public function get($key, $tableName, $connectionResource) + { + return $this->stringToValue($connectionResource->get($this->getRealKey($tableName, $key))); + } + + public function update($key, $value, $ttl = 0, $tableName, $connectionResource) + { + return $connectionResource->update($this->getRealKey($tableName, $key), $this->valueToString($value), $ttl); + } + + protected function getRealKey($tableName, $key) + { + return $tableName . "-" . $key; + } + + protected function valueToString($value) + { + return serialize($value); + } + + protected function stringToValue($str) + { + return unserialize($str); + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterXcache.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterXcache.php new file mode 100644 index 0000000..25d3bc5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Adapter/CacheAdapterXcache.php @@ -0,0 +1,43 @@ +getRealKey($tableName, $key), $value, $ttl); + } + + public function del($key, $tableName, $connectionResource) + { + return xcache_unset($this->getRealKey($tableName, $key)); + } + + public function get($key, $tableName, $connectionResource) + { + $key = $this->getRealKey($tableName, $key); + if (xcache_isset($key)) + { + return xcache_get($key); + } + return false; + } + + public function update($key, $value, $ttl = 0, $tableName, $connectionResource) + { + $key = $this->getRealKey($tableName, $key); + if (xcache_isset($key)) + { + return xcache_set($key, $value, $ttl); + } + return false; + } + + protected function getRealKey($tableName, $key) + { + return $tableName . "-" . $key; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Cache.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Cache.php new file mode 100644 index 0000000..55a84d3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/Cache.php @@ -0,0 +1,76 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + $this->ch = new LtCacheHandle; + $this->ch->configHandle = $this->configHandle; + $this->ch->init(); + $this->ch->group = $this->getGroup(); + $this->ch->node = $this->getNode(); + } + + public function getTDG($tableName) + { + $tdg = new LtCacheTableDataGateway; + $tdg->tableName = $tableName; + $tdg->ch = $this->ch; + return $tdg; + } + + public function changeNode($node) + { + $this->node = $node; + $this->dbh->node = $node; + } + + protected function getGroup() + { + if ($this->group) + { + return $this->group; + } + $servers = $this->configHandle->get("cache.servers"); + if (1 == count($servers)) + { + return key($servers); + } + return false; + } + + protected function getNode() + { + if ($this->node) + { + return $this->node; + } + $servers = $this->configHandle->get("cache.servers"); + if (1 == count($servers[$this->getGroup()])) + { + return key($servers[$this->getGroup()]); + } + return false; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheAdapterFactory.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheAdapterFactory.php new file mode 100644 index 0000000..52b625c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheAdapterFactory.php @@ -0,0 +1,14 @@ + "phps", //apc,xcach,ea; file, phps; memcached + //"prefix" => "" + //"host" => "localhost", //some ip, hostname + //"port" => 3306, + ); + + public function addSingleHost($hostConfig) + { + $this->addHost("group_0", "node_0", "master", $hostConfig); + } + + public function addHost($groupId, $nodeId = "node_0", $role = "master", $hostConfig) + { + if (isset($this->servers[$groupId][$nodeId][$role])) + {//以相同role的第一个host为默认配置 + $ref = $this->servers[$groupId][$nodeId][$role][0]; + } + else if ("slave" == $role && isset($this->servers[$groupId][$nodeId]["master"])) + {//slave host以master的第一个host为默认配置 + $ref = $this->servers[$groupId][$nodeId]["master"][0]; + } + else if (isset($this->servers[$groupId]) && count($this->servers[$groupId])) + {//以本group第一个node的master第一个host为默认配置 + $refNode = key($this->servers[$groupId]); + $ref = $this->servers[$groupId][$refNode]["master"][0]; + } + else + { + if (!isset($hostConfig["adapter"])) + { + trigger_error("No db adapter specified"); + } + $ref = $this->defaultConfig; + } + $conf = array_merge($ref, $hostConfig); + $this->servers[$groupId][$nodeId][$role][] = $conf; + } + + public function getServers() + { + return $this->servers; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheConnectionManager.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheConnectionManager.php new file mode 100644 index 0000000..6c06706 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheConnectionManager.php @@ -0,0 +1,52 @@ +getNewConnection($group, $node, $role)) + { + return array( + "connectionAdapter" => $this->connectionAdapter, + "connectionResource" => $connection + ); + } + else + { + trigger_error("no cache server can be connected"); + return false; + } + } + + protected function getNewConnection($group, $node, $role) + { + $servers = $this->configHandle->get("cache.servers"); + $hostTotal = count($servers[$group][$node][$role]); + $hostIndexArray = array_keys($servers[$group][$node][$role]); + while ($hostTotal) + { + $hashNumber = substr(microtime(),7,1) % $hostTotal; + $hostConfig = $servers[$group][$node][$role][$hostIndexArray[$hashNumber]]; + $cacheFactory = new LtCacheAdapterFactory; + $this->connectionAdapter = $cacheFactory->getConnectionAdapter($hostConfig["adapter"]); + if ($connection = $this->connectionAdapter->connect($hostConfig)) + { + return $connection; + } + else + { + //trigger_error('connection fail', E_USER_WARNING); + //delete the unavailable server + for ($i = $hashNumber; $i < $hostTotal - 1; $i ++) + { + $hostIndexArray[$i] = $hostIndexArray[$i+1]; + } + unset($hostIndexArray[$hostTotal-1]); + $hostTotal --; + }//end else + }//end while + return false; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheHandle.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheHandle.php new file mode 100644 index 0000000..e39faf1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/CacheHandle.php @@ -0,0 +1,52 @@ +connectionManager = new LtCacheConnectionManager; + $this->connectionManager->configHandle =$this->configHandle; + } + + public function add($key, $value, $ttl = 0, $tableName) + { + $this->initConnection(); + return $this->connectionAdapter->add($key, $value, $ttl, $tableName, $this->connectionResource); + } + + public function del($key, $tableName) + { + $this->initConnection(); + return $this->connectionAdapter->del($key, $tableName, $this->connectionResource); + } + + public function get($key, $tableName) + { + $this->initConnection(); + return $this->connectionAdapter->get($key, $tableName, $this->connectionResource); + } + + public function update($key, $value, $ttl = 0, $tableName) + { + $this->initConnection(); + return $this->connectionAdapter->update($key, $value, $ttl, $tableName, $this->connectionResource); + } + + protected function initConnection() + { + $connectionInfo = $this->connectionManager->getConnection($this->group, $this->node, $this->role); + $this->connectionAdapter = $connectionInfo["connectionAdapter"]; + $this->connectionResource = $connectionInfo["connectionResource"]; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/QueryEngine/TableDataGateway/CacheTableDataGateway.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/QueryEngine/TableDataGateway/CacheTableDataGateway.php new file mode 100644 index 0000000..63efdb6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cache/QueryEngine/TableDataGateway/CacheTableDataGateway.php @@ -0,0 +1,27 @@ +ch->add($key, $value, $ttl, $this->tableName); + } + + public function del($key) + { + return $this->ch->del($key, $this->tableName); + } + + public function get($key) + { + return $this->ch->get($key, $this->tableName); + } + + public function update($key, $value, $ttl = 0) + { + return $this->ch->update($key, $value, $ttl, $this->tableName); + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/Captcha.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/Captcha.php new file mode 100644 index 0000000..bc92158 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/Captcha.php @@ -0,0 +1,91 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + if (!is_object($this->storeHandle)) + { + $this->storeHandle = new LtStoreFile; + $this->storeHandle->prefix = 'LtCaptcha-seed-'; + $this->storeHandle->init(); + } + } + + public function getImageResource($seed) + { + if (empty($seed)) + { + trigger_error("empty seed"); + return false; + } + if (!is_object($this->imageEngine)) + { + if ($imageEngine = $this->configHandle->get("captcha.image_engine")) + { + if (class_exists($imageEngine)) + { + $this->imageEngine = new $imageEngine; + $this->imageEngine->conf = $this->configHandle->get("captcha.image_engine_conf"); + } + else + { + trigger_error("captcha.image_engine : $imageEngine not exists"); + } + } + else + { + trigger_error("empty captcha.image_engine"); + return false; + } + } + $word = $this->generateRandCaptchaWord($seed); + $this->storeHandle->add($seed, $word); + return $this->imageEngine->drawImage($word); + } + + public function verify($seed, $userInput) + { + if ($word = $this->storeHandle->get($seed)) + { + $this->storeHandle->del($seed); + return $userInput === $word; + } + else + { + return false; + } + } + + protected function generateRandCaptchaWord() + { + $allowChars = $this->configHandle->get("captcha.allow_chars"); + $length = $this->configHandle->get("captcha.length"); + $allowedSymbolsLength = strlen($allowChars) - 1; + $captchaWord = ""; + for ($i = 0; $i < $length; $i ++) + { + $captchaWord .= $allowChars[mt_rand(0, $allowedSymbolsLength)]; + } + return $captchaWord; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/CaptchaImageEngine.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/CaptchaImageEngine.php new file mode 100644 index 0000000..2990608 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/CaptchaImageEngine.php @@ -0,0 +1,197 @@ + array('spacing' => -3, 'minSize' => 27, 'maxSize' => 30, 'font' => 'AntykwaBold.ttf'), + 'Candice' => array('spacing' => -1.5, 'minSize' => 28, 'maxSize' => 31, 'font' => 'Candice.ttf'), + 'DingDong' => array('spacing' => -2, 'minSize' => 24, 'maxSize' => 30, 'font' => 'Ding-DongDaddyO.ttf'), + 'Duality' => array('spacing' => -2, 'minSize' => 30, 'maxSize' => 38, 'font' => 'Duality.ttf'), + 'Jura' => array('spacing' => -2, 'minSize' => 28, 'maxSize' => 32, 'font' => 'Jura.ttf'), + 'StayPuft' => array('spacing' => -1.5, 'minSize' => 28, 'maxSize' => 32, 'font' => 'StayPuft.ttf'), + 'Times' => array('spacing' => -2, 'minSize' => 28, 'maxSize' => 34, 'font' => 'TimesNewRomanBold.ttf'), + 'VeraSans' => array('spacing' => -1, 'minSize' => 20, 'maxSize' => 28, 'font' => 'VeraSansBold.ttf'), + ); + + /** + * * Wave configuracion in X and Y axes + */ + protected $Yperiod = 12; + protected $Yamplitude = 14; + protected $Xperiod = 11; + protected $Xamplitude = 5; + + /** + * * GD image + */ + protected $im; + + public function drawImage($text) + { + /** + * * Initialization + */ + $this->ImageAllocate(); + + $fontcfg = $this->fonts[array_rand($this->fonts)]; + $this->WriteText($text, $fontcfg); + + /** + * * Transformations + */ + $this->WaveImage(); + if ($this->conf['blur'] && function_exists('imagefilter')) + { + imagefilter($this->im, IMG_FILTER_GAUSSIAN_BLUR); + } + $this->ReduceImage(); + return $this->im; + } + + /** + * Creates the image resources + */ + protected function ImageAllocate() + { + // Cleanup + if (!empty($this->im)) + { + imagedestroy($this->im); + } + + $this->im = imagecreatetruecolor($this->conf['width'] * $this->conf['scale'], $this->conf['height'] * $this->conf['scale']); + // Background color + $this->GdBgColor = imagecolorallocate($this->im, + $this->backgroundColor[0], + $this->backgroundColor[1], + $this->backgroundColor[2] + ); + imagefilledrectangle($this->im, 0, 0, $this->conf['width'] * $this->conf['scale'], $this->conf['height'] * $this->conf['scale'], $this->GdBgColor); + // Foreground color + $color = $this->colors[mt_rand(0, sizeof($this->colors)-1)]; + $this->GdFgColor = imagecolorallocate($this->im, $color[0], $color[1], $color[2]); + // Shadow color + if (!empty($this->shadowColor) && is_array($this->shadowColor) && sizeof($this->shadowColor) >= 3) + { + $this->GdShadowColor = imagecolorallocate($this->im, + $this->shadowColor[0], + $this->shadowColor[1], + $this->shadowColor[2] + ); + } + } + + /** + * Text insertion + */ + protected function WriteText($text, $fontcfg = array()) + { + if (empty($fontcfg)) + { + // Select the font configuration + $fontcfg = $this->fonts[array_rand($this->fonts)]; + } + // Full path of font file + $fontfile = dirname(__FILE__) . '/fonts/' . $fontcfg['font']; + + /** + * * Increase font-size for shortest words: 9% for each glyp missing + */ + $lettersMissing = $this->maxWordLength - strlen($text); + $fontSizefactor = 1 + ($lettersMissing * 0.09); + // Text generation (char by char) + $x = 20 * $this->conf['scale']; + $y = round(($this->conf['height'] * 27 / 40) * $this->conf['scale']); + $length = strlen($text); + for ($i = 0; $i < $length; $i++) + { + $degree = rand($this->conf['max_rotation'] * -1, $this->conf['max_rotation']); + $fontsize = rand($fontcfg['minSize'], $fontcfg['maxSize']) * $this->conf['scale'] * $fontSizefactor; + $letter = substr($text, $i, 1); + + if ($this->shadowColor) + { + $coords = imagettftext($this->im, $fontsize, $degree, + $x + $this->conf['scale'], $y + $this->conf['scale'], + $this->GdShadowColor, $fontfile, $letter); + } + $coords = imagettftext($this->im, $fontsize, $degree, + $x, $y, + $this->GdFgColor, $fontfile, $letter); + $x += ($coords[2] - $x) + ($fontcfg['spacing'] * $this->conf['scale']); + } + } + + /** + * Wave filter + */ + protected function WaveImage() + { + // X-axis wave generation + $xp = $this->conf['scale'] * $this->Xperiod * rand(1, 3); + $k = rand(0, 100); + for ($i = 0; $i < ($this->conf['width'] * $this->conf['scale']); $i++) + { + imagecopy($this->im, $this->im, + $i-1, sin($k + $i / $xp) * ($this->conf['scale'] * $this->Xamplitude), + $i, 0, 1, $this->conf['height'] * $this->conf['scale']); + } + // Y-axis wave generation + $k = rand(0, 100); + $yp = $this->conf['scale'] * $this->Yperiod * rand(1, 2); + for ($i = 0; $i < ($this->conf['height'] * $this->conf['scale']); $i++) + { + imagecopy($this->im, $this->im, + sin($k + $i / $yp) * ($this->conf['scale'] * $this->Yamplitude), $i-1, + 0, $i, $this->conf['width'] * $this->conf['scale'], 1); + } + } + + /** + * Reduce the image to the final size + */ + protected function ReduceImage() + { + $imResampled = imagecreatetruecolor($this->conf['width'], $this->conf['height']); + imagecopyresampled($imResampled, $this->im, + 0, 0, 0, 0, + $this->conf['width'], $this->conf['height'], + $this->conf['width'] * $this->conf['scale'], $this->conf['height'] * $this->conf['scale'] + ); + imagedestroy($this->im); + $this->im = $imResampled; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/AntykwaBold.ttf b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/AntykwaBold.ttf new file mode 100644 index 0000000..cdeeded Binary files /dev/null and b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/AntykwaBold.ttf differ diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Candice.ttf b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Candice.ttf new file mode 100644 index 0000000..84439b8 Binary files /dev/null and b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Candice.ttf differ diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Ding-DongDaddyO.ttf b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Ding-DongDaddyO.ttf new file mode 100644 index 0000000..d1dea71 Binary files /dev/null and b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Ding-DongDaddyO.ttf differ diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Duality.ttf b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Duality.ttf new file mode 100644 index 0000000..581d5ce Binary files /dev/null and b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Duality.ttf differ diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Jura.ttf b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Jura.ttf new file mode 100644 index 0000000..ee0a1c7 Binary files /dev/null and b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/Jura.ttf differ diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/StayPuft.ttf b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/StayPuft.ttf new file mode 100644 index 0000000..09ced57 Binary files /dev/null and b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/StayPuft.ttf differ diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/TimesNewRomanBold.ttf b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/TimesNewRomanBold.ttf new file mode 100644 index 0000000..0fc9d84 Binary files /dev/null and b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/TimesNewRomanBold.ttf differ diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/VeraSansBold.ttf b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/VeraSansBold.ttf new file mode 100644 index 0000000..51d6111 Binary files /dev/null and b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Captcha/fonts/VeraSansBold.ttf differ diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Config.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Config.php new file mode 100644 index 0000000..cce6988 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Config.php @@ -0,0 +1,84 @@ +storeHandle)) + { + $this->storeHandle = new LtStoreMemory; + } + } + + public function init() + { + //don't removeme, I am the placeholder + } + + public function get($key) + { + $storedConfig = $this->storeHandle->get($key); + if ($storedConfig instanceof LtConfigExpression) + { + $str = $storedConfig->__toString(); + if ($storedConfig->autoRetrived) + { + eval("\$value=$str;"); + return $value; + } + else + { + return $str; + } + } + else + { + return $storedConfig; + } + } + + /** + * 警告 + * 这里会包含两个用户定义的配置文件,为了不和配置文件里的变量名发生重名 + * 本方法不定义和使用变量名 + */ + public function loadConfigFile($configFile) + { + if (0 == $this->storeHandle->get(".config_total")) + { + if (null === $configFile || !is_file($configFile)) + { + trigger_error("no config file specified or invalid config file"); + } + $this->conf = include($configFile); + if (!is_array($this->conf)) + { + trigger_error("config file do NOT return array: $configFile"); + } + elseif (!empty($this->conf)) + { + if (0 == $this->storeHandle->get(".config_total")) + { + $this->storeHandle->add(".config_total", 0); + } + $this->addConfig($this->conf); + } + } + } + + public function addConfig($configArray) + { + foreach($configArray as $key => $value) + { + if (!$this->storeHandle->update($key, $value)) + { + if ($this->storeHandle->add($key, $value)) + { + $this->storeHandle->update(".config_total", $this->storeHandle->get(".config_total") + 1, 0); + } + } + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/ConfigExpression.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/ConfigExpression.php new file mode 100644 index 0000000..12384fc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/ConfigExpression.php @@ -0,0 +1,17 @@ +_expression = (string) $string; + $this->autoRetrived = $autoRetrived; + } + + public function __toString() + { + return $this->_expression; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cookie/Cookie.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cookie/Cookie.php new file mode 100644 index 0000000..4859e07 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Cookie/Cookie.php @@ -0,0 +1,136 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + $this->secretKey = $this->configHandle->get("cookie.secret_key"); + if(empty($this->secretKey)) + { + trigger_error("cookie.secret_key empty"); + } + } + + /** + * Decrypt the encrypted cookie + * + * @param string $encryptedText + * @return string + */ + protected function decrypt($encryptedText) + { + $key = $this->secretKey; + $cryptText = base64_decode($encryptedText); + $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); + $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND); + $decryptText = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $cryptText, MCRYPT_MODE_ECB, $iv); + return trim($decryptText); + } + + /** + * Encrypt the cookie + * + * @param string $plainText + * @return string + */ + protected function encrypt($plainText) + { + $key = $this->secretKey; + $ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); + $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND); + $encryptText = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $plainText, MCRYPT_MODE_ECB, $iv); + return trim(base64_encode($encryptText)); + } + + /** + * Set cookie value to deleted with $name + * + * @param array $args + * @return boolean + */ + public function delCookie($name, $path = '/', $domain = null) + { + if (isset($_COOKIE[$name])) + { + if (is_array($_COOKIE[$name])) + { + foreach($_COOKIE[$name] as $k => $v) + { + setcookie($name . '[' . $k . ']', '', time() - 86400, $path, $domain); + } + } + else + { + setcookie($name, '', time() - 86400, $path, $domain); + } + } + } + + /** + * Get cookie value with $name + * + * @param string $name + * @return mixed + */ + public function getCookie($name) + { + $ret = null; + if (isset($_COOKIE[$name])) + { + if (is_array($_COOKIE[$name])) + { + $ret = array(); + foreach($_COOKIE[$name] as $k => $v) + { + $v = $this->decrypt($v); + $ret[$k] = $v; + } + } + else + { + $ret = $this->decrypt($_COOKIE[$name]); + } + } + return $ret; + } + + /** + * Set cookie + * + * @param array $args + * @return boolean + */ + public function setCookie($name, $value = '', $expire = null, $path = '/', $domain = null, $secure = 0) + { + if (is_array($value)) + { + foreach($value as $k => $v) + { + $v = $this->encrypt($v); + setcookie($name . '[' . $k . ']', $v, $expire, $path, $domain, $secure); + } + } + else + { + $value = $this->encrypt($value); + setcookie($name, $value, $expire, $path, $domain, $secure); + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapter.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapter.php new file mode 100644 index 0000000..4787251 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapter.php @@ -0,0 +1,12 @@ +query($sql); + return $connResource->affected_rows; + } + + public function query($sql, $connResource) + { + $rows = array(); + $result = $connResource->query($sql); + while($row = $result->fetch_assoc()) + { + $rows[] = $row; + } + return $rows; + } + + public function lastInsertId($connResource) + { + return $connResource->insert_id; + } + + public function escape($sql, $connResource) + { + return mysqli_real_escape_string($connResource, $sql); + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapterPdo.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapterPdo.php new file mode 100644 index 0000000..78a998f --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapterPdo.php @@ -0,0 +1,65 @@ + true); + if (isset($connConf['pconnect']) && true == $connConf['pconnect']) + { + $option[PDO::ATTR_PERSISTENT] = true; + } + else + { + $option[PDO::ATTR_PERSISTENT] = false; + } + switch ($connConf['adapter']) + { + case "pdo_mysql": + $dsn = "mysql:host={$connConf['host']};dbname={$connConf['dbname']}"; + break; + case "pdo_sqlite": + $connConf["host"] = rtrim($connConf["host"], '\\/') . DIRECTORY_SEPARATOR; + if (!is_dir($connConf["host"])) + { + if (!@mkdir($connConf["host"], 0777, true)) + { + trigger_error("Can not create {$connConf['host']}"); + } + } + $dsn = "{$connConf['sqlite_version']}:{$connConf['host']}{$connConf['dbname']}"; + break; + case "pdo_pgsql": + $dsn = "pgsql:host={$connConf['host']} port={$connConf['port']} dbname={$connConf['dbname']} user={$connConf['username']} password={$connConf['password']}"; + break; + case "odbc": + $dsn = "odbc:" . $connConf["host"]; + break; + } + return new PDO($dsn, $connConf['username'], $connConf['password'], $option); + } + + public function exec($sql, $connResource) + { + return $connResource->exec($sql); + } + + public function query($sql, $connResource) + { + return $connResource->query($sql)->fetchAll(PDO::FETCH_ASSOC); + } + + /** + * + * @todo pgsql support + */ + public function lastInsertId($connResource) + { + return $connResource->lastInsertId(); + } + + public function escape($sql, $connResource) + { + // quote返回值带最前面和最后面的单引号, 这里去掉, DbHandler中加 + return trim($connResource->quote($sql), "'"); + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapterPgsql.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapterPgsql.php new file mode 100644 index 0000000..4f06afd --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/ConnectionAdapter/DbConnectionAdapterPgsql.php @@ -0,0 +1,46 @@ +'; + // print_r(debug_backtrace()); + // debug_print_backtrace(); + // echo ''; + // delete from table 结果为0,原因未知。 + // 使用 delete from table where 1 能返回正确结果 + return sqlite_changes($connResource); + } + + public function query($sql, $connResource) + { + $result = sqlite_query($connResource, $sql, SQLITE_ASSOC); + return sqlite_fetch_all($result, SQLITE_ASSOC); + } + + public function lastInsertId($connResource) + { + return sqlite_last_insert_rowid($connResource); + } + + public function escape($sql, $connResource) + { + return sqlite_escape_string($sql); + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapter.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapter.php new file mode 100644 index 0000000..b596dff --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapter.php @@ -0,0 +1,31 @@ + $value) + { + $fields[$value['Field']]['name'] = $value['Field']; + $fields[$value['Field']]['type'] = $value['Type']; + /* + * not null is NO or empty, null is YES + */ + $fields[$value['Field']]['notnull'] = (bool) ($value['Null'] != 'YES'); + $fields[$value['Field']]['default'] = $value['Default']; + $fields[$value['Field']]['primary'] = (strtolower($value['Key']) == 'pri'); + } + return $fields; + } + public function detectQueryType($sql) + { + if (preg_match("/^\s*SELECT|^\s*EXPLAIN|^\s*SHOW|^\s*DESCRIBE/i", $sql)) + { + $ret = 'SELECT'; + } + else if (preg_match("/^\s*INSERT/i", $sql)) + { + $ret = 'INSERT'; + } + else if (preg_match("/^\s*UPDATE|^\s*DELETE|^\s*REPLACE/i", $sql)) + { + $ret = 'CHANGE_ROWS'; + } + else if (preg_match("/^\s*USE|^\s*SET/i", $sql)) + { + $ret = 'SET_SESSION_VAR'; + } + else + { + $ret = 'OTHER'; + } + return $ret; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapterPgsql.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapterPgsql.php new file mode 100644 index 0000000..5b6b639 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapterPgsql.php @@ -0,0 +1,81 @@ + 0 + AND a.attrelid = c.oid + AND a.atttypid = t.oid + ORDER BY a.attnum"; + } + + public function limit($limit, $offset) + { + return " LIMIT $limit OFFSET $offset"; + } + + public function getSchemas($queryResult) + { + + } + public function getTables($queryResult) + { + + } + public function getFields($queryResult) + { + + } + public function detectQueryType($sql) + { + + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapterSqlite.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapterSqlite.php new file mode 100644 index 0000000..7c560a8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Adapter/SqlAdapter/DbSqlAdapterSqlite.php @@ -0,0 +1,120 @@ + $value) + { + // 字段名 + $fields[$value['name']]['name'] = $value['name']; + // 字段类型 + $fulltype = $value['type']; + $size = null; + $precision = null; + $scale = null; + + if (preg_match('/^([^\(]+)\(\s*(\d+)\s*,\s*(\d+)\s*\)$/',$fulltype, $matches)) + { + $type = $matches[1]; + $precision = $matches[2]; + $scale = $matches[3]; // aka precision + } + elseif (preg_match('/^([^\(]+)\(\s*(\d+)\s*\)$/',$fulltype, $matches)) + { + $type = $matches[1]; + $size = $matches[2]; + } + else + { + $type = $fulltype; + } + + $fields[$value['name']]['type'] = $type; + /** + * not null is 99, null is 0 + */ + $fields[$value['name']]['notnull'] = (bool) ($value['notnull'] != 0); + $fields[$value['name']]['default'] = $value['dflt_value']; + $fields[$value['name']]['primary'] = (bool) ($value['pk'] == 1 && strtoupper($fulltype) == 'INTEGER'); + } + return $fields; + } + public function detectQueryType($sql) + { + if (preg_match("/^\s*SELECT|^\s*PRAGMA/i", $sql)) + { + $ret = 'SELECT'; + } + else if (preg_match("/^\s*INSERT/i", $sql)) + { + $ret = 'INSERT'; + } + else if (preg_match("/^\s*UPDATE|^\s*DELETE|^\s*REPLACE/i", $sql)) + { + $ret = 'CHANGE_ROWS'; + } + else if (preg_match("/^\s*USE|^\s*SET/i", $sql)) + { + $ret = 'SET_SESSION_VAR'; + } + else + { + $ret = 'OTHER'; + } + return $ret; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Db.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Db.php new file mode 100644 index 0000000..10480f3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/Db.php @@ -0,0 +1,91 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + $this->dbh = new LtDbHandle; + $this->dbh->configHandle = $this->configHandle; + $this->dbh->group = $this->getGroup(); + $this->dbh->node = $this->getNode(); + $this->dbh->init(); + } + + public function getDbHandle() + { + return $this->dbh; + } + + public function getTDG($tableName) + { + $tg = new LtDbTableDataGateway; + $tg->configHandle = $this->configHandle; + $tg->tableName = $tableName; + $tg->createdColumn = 'created'; + $tg->modifiedColumn = 'modified'; + $tg->dbh = $this->dbh; + return $tg; + } + + public function getSqlMapClient() + { + $smc = new LtDbSqlMapClient; + $smc->configHandle = $this->configHandle; + $smc->dbh = $this->dbh; + return $smc; + } + + public function changeNode($node) + { + $this->node = $node; + $this->dbh->node = $node; + } + + protected function getGroup() + { + if ($this->group) + { + return $this->group; + } + $servers = $this->configHandle->get("db.servers"); + if (1 == count($servers)) + { + return key($servers); + } + return false; + } + + protected function getNode() + { + if ($this->node) + { + return $this->node; + } + $servers = $this->configHandle->get("db.servers"); + if (1 == count($servers[$this->getGroup()])) + { + return key($servers[$this->getGroup()]); + } + return false; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbAdapterFactory.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbAdapterFactory.php new file mode 100644 index 0000000..f4a9866 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbAdapterFactory.php @@ -0,0 +1,15 @@ + array("connection_adapter" => "", "sql_adapter" => "") + "pgsql" => array("connection_adapter" => "pgsql", "sql_adapter" => "pgsql"), + "pdo_pgsql" => array("connection_adapter" => "pdo", "sql_adapter" => "pgsql"), + "oci" => array("connection_adapter" => "oci", "sql_adapter" => "oracle"), + "pdo_oci" => array("connection_adapter" => "pdo", "sql_adapter" => "oracle"), + "mssql" => array("connection_adapter" => "mssql", "sql_adapter" => "mssql"), + "pdo_dblib" => array("connection_adapter" => "pdo", "sql_adapter" => "mssql"), + "mysql" => array("connection_adapter" => "mysql", "sql_adapter" => "mysql"), + "mysqli" => array("connection_adapter" => "mysqli", "sql_adapter" => "mysql"), + "pdo_mysql" => array("connection_adapter" => "pdo", "sql_adapter" => "mysql"), + "sqlite" => array("connection_adapter" => "sqlite", "sql_adapter" => "sqlite"), + "sqlite3" => array("connection_adapter" => "sqlite3", "sql_adapter" => "sqlite"), + "pdo_sqlite" => array("connection_adapter" => "pdo", "sql_adapter" => "sqlite"), + ); + + protected $defaultConfig = array( + "host" => "localhost", //some ip, hostname + //"port" => 3306, + "username" => "root", + "password" => null, + //"adapter" => "mysql", //mysql,mysqli,pdo_mysql,sqlite,pdo_sqlite + "charset" => "UTF-8", + "pconnect" => true, //true,false + "connection_ttl" => 3600, //any seconds + "dbname" => null, //default dbname + "schema" => null, //default schema + "connection_adapter" => null, + "sql_adapter" => null, + ); + + protected $defaultAdapterConfigs = array( + "pgsql" => array( + "port" => 5432, + ), + "oracle" => array( + "port" => 1521, + ), + "mssql" => array( + "port" => 1433, + ), + "mysql" => array( + "port" => 3306, + "pconnect" => false, + "connection_ttl" => 30, + ), + ); + + public function addSingleHost($hostConfig) + { + $this->addHost("group_0", "node_0", "master", $hostConfig); + } + + public function addHost($groupId, $nodeId = "node_0", $role = "master", $hostConfig) + { + if (isset($this->servers[$groupId][$nodeId][$role])) + {//以相同role的第一个host为默认配置 + $ref = $this->servers[$groupId][$nodeId][$role][0]; + } + else if ("slave" == $role && isset($this->servers[$groupId][$nodeId]["master"])) + {//slave host以master的第一个host为默认配置 + $ref = $this->servers[$groupId][$nodeId]["master"][0]; + } + else if (isset($this->servers[$groupId]) && count($this->servers[$groupId])) + {//以本group第一个node的master第一个host为默认配置 + $refNode = key($this->servers[$groupId]); + $ref = $this->servers[$groupId][$refNode]["master"][0]; + } + else + { + if (!isset($hostConfig["adapter"])) + { + trigger_error("No db adapter specified"); + } + $ref = $this->defaultConfig; + if (isset($this->defaultAdapterConfigs[$this->adapters[$hostConfig["adapter"]]["sql_adapter"]])) + { + $ref = array_merge($ref, $this->defaultAdapterConfigs[$this->adapters[$hostConfig["adapter"]]["sql_adapter"]]); + } + } + $conf = array_merge($ref, $hostConfig); + $conf = array_merge($conf, $this->adapters[$conf["adapter"]]); + $conf = $this->convertDbnameToSchema($conf); + $this->servers[$groupId][$nodeId][$role][] = $conf; + } + + public function getServers() + { + return $this->servers; + } + + public function getTables() + { + return $this->tables; + } + + public function buildTablesConfig() + { + + } + + /** + * Convert dbname to schema for: FrontBase, MySQL, mSQL, MS SQL Server, MaxDB, Sybase + * See: http://www.php.net/manual-lookup.php?pattern=_select_db + */ + protected function convertDbnameToSchema($conf) + { + if (preg_match("/fbsql|mysql|msql|mssql|maxdb|sybase/i", $conf["sql_adapter"]) && isset($conf["dbname"])) + { + $conf["schema"] = $conf["dbname"]; + $conf["dbname"] = null; + } + return $conf; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbConnectionManager.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbConnectionManager.php new file mode 100644 index 0000000..bcdd41a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbConnectionManager.php @@ -0,0 +1,117 @@ + connection resource id, + * "expire_time" => expire time, + * "schema" => default schema name, + * "charset" => char set / encoding + * ) + */ + static public $connectionPool; + public $configHandle; + protected $connectionAdapter; + protected $sqlAdapter; + private $servers; + + public function getConnection($group, $node, $role = "master") + { + if(empty($this->servers)) + { + $this->servers = $this->configHandle->get("db.servers"); + } + if (($connection = $this->getNewConnection($group, $node, $role)) ||($connection = $this->getCachedConnection($group, $node, $role))) + { + return array( + "connectionAdapter" => $this->connectionAdapter, + "connectionResource" => $connection + ); + } + else + { + trigger_error("db server can not be connected: group=$group, node=$node, role=$role", E_USER_ERROR); + return false; + } + } + + protected function getConnectionKey($connConf) + { + return $connConf['adapter'] . $connConf['host'] . $connConf['port'] . $connConf['username'] . $connConf['dbname']; + } + + protected function saveConnection($connConf, $connection, $ttl) + { + $connectionInfo = array( + "connection" => $connection, + "expire_time" => time() + $ttl, + "schema" => $connConf["schema"], + "charset" => $connConf["charset"], + ); + self::$connectionPool[$this->getConnectionKey($connConf)] = $connectionInfo; + } + + protected function getCachedConnection($group, $node, $role) + { + foreach($this->servers[$group][$node][$role] as $hostConfig) + { + $key = $this->getConnectionKey($hostConfig); + if(isset(self::$connectionPool[$key]) && time() < self::$connectionPool[$key]['expire_time']) + {//cached connection resource FOUND + $connectionInfo = self::$connectionPool[$key]; + if ($connectionInfo["schema"] != $hostConfig["schema"] || $connectionInfo["charset"] != $hostConfig["charset"]) + {//检查当前schema和charset与用户要操作的目标不一致 + $hostConfig = $this->servers[$group][$node][$role][$hostIndexArray[$hashNumber]]; + $dbFactory = new LtDbAdapterFactory; + $this->connectionAdapter = $dbFactory->getConnectionAdapter($hostConfig["connection_adapter"]); + $this->sqlAdapter = $dbFactory->getSqlAdapter($hostConfig["sql_adapter"]); + if ($connectionInfo["schema"] != $hostConfig["schema"]) + { + $this->connectionAdapter->exec($this->sqlAdapter->setSchema($hostConfig["schema"]), $connectionInfo["connection"]); + } + if ($connectionInfo["charset"] != $hostConfig["charset"]) + { + $this->connectionAdapter->exec($this->sqlAdapter->setCharset($hostConfig["charset"]), $connectionInfo["connection"]); + } + $this->saveConnection($hostConfig, $connectionInfo["connection"], $hostConfig["connection_ttl"]); + } + return $connectionInfo["connection"]; + } + } + return false; + } + + protected function getNewConnection($group, $node, $role) + { + $hostTotal = count($this->servers[$group][$node][$role]); + $hostIndexArray = array_keys($this->servers[$group][$node][$role]); + while ($hostTotal) + { + $hashNumber = substr(microtime(),7,1) % $hostTotal; + $hostConfig = $this->servers[$group][$node][$role][$hostIndexArray[$hashNumber]]; + $dbFactory = new LtDbAdapterFactory; + $this->connectionAdapter = $dbFactory->getConnectionAdapter($hostConfig["connection_adapter"]); + $this->sqlAdapter = $dbFactory->getSqlAdapter($hostConfig["sql_adapter"]); + if ($connection = $this->connectionAdapter->connect($hostConfig)) + { + $this->connectionAdapter->exec($this->sqlAdapter->setSchema($hostConfig["schema"]), $connection); + $this->connectionAdapter->exec($this->sqlAdapter->setCharset($hostConfig["charset"]), $connection); + $this->saveConnection($hostConfig, $connection, $hostConfig["connection_ttl"]); + return $connection; + } + else + { + //trigger_error('connection fail', E_USER_WARNING); + //delete the unavailable server + for ($i = $hashNumber; $i < $hostTotal - 1; $i ++) + { + $hostIndexArray[$i] = $hostIndexArray[$i+1]; + } + unset($hostIndexArray[$hostTotal-1]); + $hostTotal --; + }//end else + }//end while + return false; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbHandle.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbHandle.php new file mode 100644 index 0000000..54b4277 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbHandle.php @@ -0,0 +1,200 @@ +servers)) + { + $this->servers = $this->configHandle->get("db.servers"); + } + $this->connectionManager = new LtDbConnectionManager; + $this->connectionManager->configHandle = $this->configHandle; + $this->sqlAdapter = $this->getCurrentSqlAdapter(); + $connectionInfo = $this->connectionManager->getConnection($this->group, $this->node, $this->role); + $this->connectionAdapter = $connectionInfo["connectionAdapter"]; + $this->connectionResource = $connectionInfo["connectionResource"]; + } + + /** + * Trancaction methods + */ + public function beginTransaction() + { + return $this->connectionAdapter->exec($this->sqlAdapter->beginTransaction(), $this->connectionResource); + } + + public function commit() + { + return $this->connectionAdapter->exec($this->sqlAdapter->commit(), $this->connectionResource); + } + + public function rollBack() + { + return $this->connectionAdapter->exec($this->sqlAdapter->rollBack(), $this->connectionResource); + } + + /** + * Execute an sql query + * + * @param $sql + * @param $bind + * @param $forceUseMaster + * @return false on query failed + * --sql type-- --return value-- + * SELECT, SHOW, DESECRIBE, EXPLAIN rowset or NULL when no record found + * INSERT the ID generated for an AUTO_INCREMENT column + * UPDATE, DELETE, REPLACE affected count + * USE, DROP, ALTER, CREATE, SET etc true + * @notice 每次只能执行一条SQL + * 不要通过此接口执行USE DATABASE, SET NAMES这样的语句 + */ + public function query($sql, $bind = null, $forceUseMaster = false) + { + $sql = trim($sql); + if (empty($sql)) + { + trigger_error('Empty the SQL statement'); + } + $queryType = $this->sqlAdapter->detectQueryType($sql); + switch ($queryType) + { + case "SELECT": + if (!$forceUseMaster && isset($this->servers[$this->group][$this->node]["slave"])) + { + $this->role = "slave"; + } + $queryMethod = "select"; + break; + case "INSERT": + $this->role = "master"; + $queryMethod = "insert"; + break; + case "CHANGE_ROWS": + $this->role = "master"; + $queryMethod = "changeRows"; + break; + case "SET_SESSION_VAR": + $queryMethod = "setSessionVar"; + break; + case "OTHER": + default: + $this->role = "master"; + $queryMethod = "other"; + break; + } + $connectionInfo = $this->connectionManager->getConnection($this->group, $this->node, $this->role); + $this->connectionAdapter = $connectionInfo["connectionAdapter"]; + $this->connectionResource = $connectionInfo["connectionResource"]; + if (is_array($bind) && 0 < count($bind)) + { + $sql = $this->bindParameter($sql, $bind); + } + return $this->$queryMethod($sql, $this->connectionResource); + } + /** + * function posted by renlu + */ + public function escape($str) + { + return $this->connectionAdapter->escape($str, $this->connectionResource); + } + /** + * function posted by renlu + */ + public function insertid() + { + return $this->connectionAdapter->lastInsertId($this->connectionResource); + } + /** + * Generate complete sql from sql template (with placeholder) and parameter + * + * @param $sql + * @param $parameter + * @return string + * @todo 兼容pgsql等其它数据库,pgsql的某些数据类型不接受单引号引起来的值 + */ + public function bindParameter($sql, $parameter) + { + // 注意替换结果尾部加一个空格 + $sql = preg_replace("/:([a-zA-Z0-9_\-\x7f-\xff][a-zA-Z0-9_\-\x7f-\xff]*)\s*([,\)]?)/", "\x01\x02\x03\\1\x01\x02\x03\\2 ", $sql); + foreach($parameter as $key => $value) + { + $find[] = "\x01\x02\x03$key\x01\x02\x03"; + if ($value instanceof LtDbSqlExpression) + { + $replacement[] = $value->__toString(); + } + else + { + $replacement[] = "'" . $this->connectionAdapter->escape($value, $this->connectionResource) . "'"; + } + } + $sql = str_replace($find, $replacement, $sql); + return $sql; + } + + protected function getCurrentSqlAdapter() + { + $factory = new LtDbAdapterFactory; + $host = key($this->servers[$this->group][$this->node][$this->role]); + return $factory->getSqlAdapter($this->servers[$this->group][$this->node][$this->role][$host]["sql_adapter"]); + } + + protected function select($sql, $connResource) + { + $result = $this->connectionAdapter->query($sql, $connResource); + if (empty($result)) + { + return null; + } + else + { + return $result; + } + } + + protected function insert($sql, $connResource) + { + if ($result = $this->connectionAdapter->exec($sql, $connResource)) + { + return $this->connectionAdapter->lastInsertId($connResource); + } + else + { + return $result; + } + } + + protected function changeRows($sql, $connResource) + { + return $this->connectionAdapter->exec($sql, $connResource); + } + + /** + * + * @todo 更新连接缓存 + */ + protected function setSessionVar($sql, $connResource) + { + return false === $this->connectionAdapter->exec($sql, $connResource) ? false : true; + } + + protected function other($sql, $connResource) + { + return false === $this->connectionAdapter->exec($sql, $connResource) ? false : true; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbSqlExpression.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbSqlExpression.php new file mode 100644 index 0000000..e03119e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/DbSqlExpression.php @@ -0,0 +1,15 @@ +_expression = (string) $string; + } + + public function __toString() + { + return (string) $this->_expression; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/SqlMap/AbstractDbSqlMapFilterObject.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/SqlMap/AbstractDbSqlMapFilterObject.php new file mode 100644 index 0000000..cb30d86 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/SqlMap/AbstractDbSqlMapFilterObject.php @@ -0,0 +1,16 @@ +configHandle->get($this->dbh->group . "." . $mapId); + $forceUseMaster = isset($sqlMap["force_use_master"]) ? $sqlMap["force_use_master"] : false; + return $this->dbh->query($sqlMap["sql"], $bind, $forceUseMaster); + } +} + diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/SqlMap/DbSqlMapResultFactory.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/SqlMap/DbSqlMapResultFactory.php new file mode 100644 index 0000000..9f9053b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/SqlMap/DbSqlMapResultFactory.php @@ -0,0 +1,24 @@ +fields)) + { + return true; + } + $servers = $this->configHandle->get('db.servers'); + $group = $this->dbh->group; + $node = $this->dbh->node; + $role = $this->dbh->role; + $table = $this->tableName; + $host = key($servers[$group][$node][$role]); + $key = md5($group . $node . $role . $table . $host . $table); + if (!$value = $this->configHandle->get($key)) + { + $sql = $this->dbh->sqlAdapter->showFields($this->tableName); + $rs = $this->dbh->query($sql); + $this->fields = $this->dbh->sqlAdapter->getFields($rs); + foreach($this->fields as $field) + { + if ($field['primary'] == 1) + { + $this->primaryKey = $field['name']; + break; + } + } + + $value['fields'] = $this->fields; + $value['primaryKey'] = $this->primaryKey; + $this->configHandle->addConfig(array($key => $value)); + } + else + { + $this->fields = $value['fields']; + $this->primaryKey = $value['primaryKey']; + } + } + + /** + * A shortcut to SELECT COUNT(*) FROM table WHERE condition + * + * @param array $args + * @return integer + * @example count(array('expression' => 'id < :id', 'value' => array('id' => 10))); + */ + public function count($args = null) + { + $selectTemplate = 'SELECT COUNT(*) AS total FROM %s%s'; + $where = isset($args['where']['expression']) ? ' WHERE ' . $args['where']['expression'] : ''; + $bind = isset($args['where']['value']) ? $args['where']['value'] : array(); + $join = isset($args['join']) ? ' ' . $args['join'] : ''; + $sql = sprintf($selectTemplate, $this->tableName, $join . $where); + $queryResult = $this->dbh->query($sql, $bind); + return $queryResult[0]['total']; + } + + /** + * Delete a row by primary key + * + * @param string $primaryKeyId + * @return string + * @example delete(10); + */ + public function delete($primaryKeyId) + { + $this->buildFieldList(); + $where['expression'] = $this->primaryKey . '=:' . $this->primaryKey; + $where['value'][$this->primaryKey] = $primaryKeyId; + return $this->deleteRows($where); + } + + /** + * Delete many rows from table + * Please use this method carefully! + * + * @param array $args + * @return integer + * @example deleteRows(array('expression' => "id > :id", 'value' => array('id' => 2))); + */ + public function deleteRows($args = null) + { + $deleteTemplate = 'DELETE FROM %s%s'; + $where = isset($args['expression']) ? ' WHERE ' . $args['expression'] : ''; + $bind = isset($args['value']) ? $args['value'] : array(); + $sql = sprintf($deleteTemplate, $this->tableName, $where); + return $this->dbh->query($sql, $bind); + } + + /** + * Fetch one row from table by primary key + * + * @param string $primaryKeyId + * @param array $args + * @param boolean $useSlave + * @return array + * @example fetch(10) + */ + public function fetch($primaryKeyId, $args = null, $useSlave = true) + { + $this->buildFieldList(); + $fetchRowsArgs['where']['expression'] = $this->tableName . '.' . $this->primaryKey . '=:' . $this->primaryKey; + $fetchRowsArgs['where']['value'][$this->primaryKey] = $primaryKeyId; + $fetchRowsArgs['fields'] = isset($args['fields']) ? $args['fields'] : null; + $fetchRowsArgs['join'] = isset($args['join']) ? $args['join'] : null; + $fetchResult = $this->fetchRows($fetchRowsArgs, $useSlave); + return $fetchResult ? $fetchResult[0] : $fetchResult; + } + + /** + * Fetch many rows from table + * + * @param array $args + * @param boolean $useSlave + * @return array + * @example fetchRows(array('where' => array('expression' => "id > :id", 'value' => array('id' => 2)))); + */ + public function fetchRows($args = null, $useSlave = true) + { + $this->buildFieldList(); + $selectTemplate = 'SELECT %s FROM %s%s'; + $fields = isset($args['fields']) ? $args['fields'] : '*'; + $where = isset($args['where']['expression']) ? ' WHERE ' . $args['where']['expression'] : ''; + $bind = isset($args['where']['value']) ? $args['where']['value'] : array(); + $join = isset($args['join']) ? ' ' . $args['join'] : ''; + $orderby = isset($args['orderby']) ? ' ORDER BY ' . $args['orderby'] : ''; + $groupby = isset($args['groupby']) ? ' GROUP BY ' . $args['groupby'] : ''; + $sql = sprintf($selectTemplate, $fields, $this->tableName, $join . $where . $groupby . $orderby); + if (isset($args['limit'])) + { + $offset = isset($args['offset']) ? $args['offset'] : 0; + $sql = $sql . ' ' . $this->dbh->sqlAdapter->limit($args['limit'], $offset); + } + return $this->dbh->query($sql, $bind); + } + + /** + * Insert one row into table, then return the inserted row's pk + * + * @param array $args + * @return string + * @example insert(array('name' => 'lily', 'age' => '12')); + */ + public function insert($args = null) + { + $this->buildFieldList(); + $insertTemplate = 'INSERT INTO %s (%s) VALUES (%s)'; + $fields = array(); + $placeHolders = array(); + foreach($args as $field => $value) + { + if (isset($this->fields[$field])) + { + $fields[] = $field; + $placeholders[] = ":$field"; + $values[$field] = $value; + } + } + if (isset($this->fields[$this->createdColumn]) && !isset($args[$this->createdColumn])) + { + $fields[] = $this->createdColumn; + $placeholders[] = ':' . $this->createdColumn; + $values[$this->createdColumn] = time(); + } + if (isset($this->fields[$this->modifiedColumn]) && !isset($args[$this->modifiedColumn])) + { + $fields[] = $this->modifiedColumn; + $placeholders[] = ':' . $this->modifiedColumn; + $values[$this->modifiedColumn] = time(); + } + $sql = sprintf($insertTemplate, $this->tableName, implode(",", $fields), implode(",", $placeholders)); + $bind = $values; + $queryResult = $this->dbh->query($sql, $bind); + return isset($args[$this->primaryKey]) ? $args[$this->primaryKey] : $queryResult; + } + + /** + * Update one row by primary key + * + * @param string $primaryKeyId + * @param array $args + * @return integer + * @example update(1, array('name' => 'lily', 'age' => '18')); + */ + public function update($primaryKeyId, $args = null) + { + $this->buildFieldList(); + $where['expression'] = $this->primaryKey . '=:' . $this->primaryKey; + $where['value'][$this->primaryKey] = $primaryKeyId; + return $this->updateRows($where, $args); + } + + /** + * Update manay rows + * Please use this method carefully! + * + * @param array $where + * @param array $args + * @return integer + * @example updateRows(array('expression' => "id > :id", 'value' => array('id' => 2)), array('name' => 'kiwi', 'age' => '1')); + */ + public function updateRows($where, $args = null) + { + $this->buildFieldList(); + $updateTemplate = 'UPDATE %s SET %s%s'; + $fields = array(); + $bindParameters = array(); + $placeholderStyle = isset($where['value']) && array_key_exists(0, $where['value']) ? 'questionMark' : 'named'; + foreach($args as $field => $value) + { + if (isset($this->fields[$field])) + { + if ($args[$field] instanceof DbExpression) + { + $fields[] = "$field=" . $args[$field]->__toString(); + } + else + { + if ('named' == $placeholderStyle) + { + $fields[] = "$field=:$field"; + $bindParameters[$field] = $args[$field]; + } + else + { + $fields[] = "$field=?"; + $bindParameters[] = $args[$field]; + } + } + } + } + if (isset($this->fields[$this->modifiedColumn]) && !isset($args[$this->modifiedColumn])) + { + if ('named' == $placeholderStyle) + { + $fields[] = $this->modifiedColumn . '=:' . $this->modifiedColumn; + $bindParameters[$this->modifiedColumn] = time(); + } + else + { + $fields[] = $this->modifiedColumn . '=?'; + $bindParameters[] = time(); + } + } + $whereCause = isset($where['expression']) ? ' WHERE ' . $where['expression'] : ''; + $bind = isset($where['value']) ? array_merge($bindParameters, $where['value']) : $bindParameters; + $sql = sprintf($updateTemplate, $this->tableName, implode(",", $fields), $whereCause); + return $this->dbh->query($sql, $bind); + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/TableDataGateway/DbTableRelation.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/TableDataGateway/DbTableRelation.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/DB/QueryEngine/TableDataGateway/DbTableRelation.php @@ -0,0 +1 @@ + "_"); + + public function camelize($uncamelized_words) + { + $uncamelized_words = $this->conf["separator"] . str_replace($this->conf["separator"] , " ", strtolower($uncamelized_words)); + return ltrim(str_replace(" ", "", ucwords($uncamelized_words)), $this->conf["separator"] ); + } + + public function uncamelize($camelCaps) + { + return strtolower(preg_replace('/([a-z])([A-Z])/', "$1" . $this->conf["separator"] . "$2", $camelCaps)); + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Logger/Logger.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Logger/Logger.php new file mode 100644 index 0000000..4fc5308 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Logger/Logger.php @@ -0,0 +1,42 @@ + "\t", + "log_file" => "" + ); + + private $fileHandle; + + protected function getFileHandle() + { + if (null === $this->fileHandle) + { + if (empty($this->conf["log_file"])) + { + trigger_error("no log file spcified."); + } + $logDir = dirname($this->conf["log_file"]); + if (!is_dir($logDir)) + { + mkdir($logDir, 0777, true); + } + $this->fileHandle = fopen($this->conf["log_file"], "a"); + } + return $this->fileHandle; + } + + public function log($logData) + { + if ("" == $logData || array() == $logData) + { + return false; + } + if (is_array($logData)) + { + $logData = implode($this->conf["separator"], $logData); + } + $logData = $logData. "\n"; + fwrite($this->getFileHandle(), $logData); + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Lotus.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Lotus.php new file mode 100644 index 0000000..1b3a5fc --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Lotus.php @@ -0,0 +1,157 @@ + + * "app_name" => + * "autoload_dir" => + * ); + */ + public $option; + public $devMode = true; + public $defaultStoreDir; + + protected $proj_dir; + protected $app_dir; + protected $data_dir; + protected $lotusRuntimeDir; + protected $coreCacheHandle; + + public function __construct() + { + $this->lotusRuntimeDir = dirname(__FILE__) . DIRECTORY_SEPARATOR; + } + + public function init() + { + $underMVC = false; + if (isset($this->option["proj_dir"]) && !empty($this->option["proj_dir"])) + { + $this->proj_dir = rtrim($this->option["proj_dir"], '\\/') . '/'; + if (isset($this->option["app_name"]) && !empty($this->option["app_name"])) + { + $this->app_dir = $this->proj_dir . "app/" . $this->option["app_name"] . "/"; + $this->data_dir = $this->proj_dir . "data/" . $this->option["app_name"] . "/"; + $underMVC = true; + } + else + { + trigger_error("Lotus option [app_name] is missing."); + } + } + + /** + * Load core component + */ + require_once $this->lotusRuntimeDir . "Store.php"; + require_once $this->lotusRuntimeDir . "StoreMemory.php"; + require_once $this->lotusRuntimeDir . "StoreFile.php"; + + if ($this->defaultStoreDir) + { + if ($defaultStoreDir = realpath($this->defaultStoreDir)) + { + LtStoreFile::$defaultStoreDir = $defaultStoreDir; + } + else + { + trigger_error("invalid [default store dir]: " . $this->defaultStoreDir); + } + } + if (!$this->devMode) + { + /** + * accelerate LtAutoloader, LtConfig + */ + $this->coreCacheHandle = new LtStoreFile; + $prefix = sprintf("%u", crc32(serialize($this->app_dir))); + $this->coreCacheHandle->prefix = 'Lotus-' . $prefix; + $this->coreCacheHandle->useSerialize = true; + $this->coreCacheHandle->init(); + } + + /** + * Init Autoloader, do this before init all other lotusphp component. + */ + $this->prepareAutoloader(); + + /** + * init Config + */ + $this->prepareConfig(); + + /** + * Run dispatcher when under MVC mode + */ + if ($underMVC) + { + $this->runMVC(); + } + } + + /** + * Autoload all lotus components and user-defined libraries; + */ + protected function prepareAutoloader() + { + require_once $this->lotusRuntimeDir . "Autoloader/Autoloader.php"; + $autoloader = new LtAutoloader; + $autoloader->autoloadPath[] = $this->lotusRuntimeDir; + if (isset($this->option["autoload_dir"])) + { + $autoloader->autoloadPath[] = $this->option["autoload_dir"]; + } + if ($this->proj_dir) + { + is_dir($this->proj_dir . 'lib') && $autoloader->autoloadPath[] = $this->proj_dir . 'lib'; + is_dir($this->app_dir . 'action') && $autoloader->autoloadPath[] = $this->app_dir . 'action'; + is_dir($this->app_dir . 'lib') && $autoloader->autoloadPath[] = $this->app_dir . 'lib'; + } + + if (!$this->devMode) + { + $autoloader->storeHandle = $this->coreCacheHandle; + } + $autoloader->init(); + } + + protected function prepareConfig() + { + $this->configHandle = LtObjectUtil::singleton('LtConfig'); + if (!$this->devMode) + { + $configFile = 'conf/conf.php'; + $this->configHandle->storeHandle = $this->coreCacheHandle; + } + else + { + $configFile = 'conf/conf_dev.php'; + } + $this->configHandle->init(); + if ($this->app_dir && is_file($this->app_dir . $configFile)) + { + $this->configHandle->loadConfigFile($this->app_dir . $configFile); + } + } + + protected function runMVC() + { + $router = LtObjectUtil::singleton('LtRouter'); + $router->init(); + $dispatcher = LtObjectUtil::singleton('LtDispatcher'); + $dispatcher->viewDir = $this->app_dir . 'view/'; + $dispatcher->viewTplDir = $this->data_dir . 'templateView/'; + if (!$this->devMode) + { + $dispatcher->viewTplAutoCompile = false; + } + else + { + $dispatcher->viewTplAutoCompile = true; + } + $dispatcher->dispatchAction($router->module, $router->action); + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Action.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Action.php new file mode 100644 index 0000000..aa9405a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Action.php @@ -0,0 +1,236 @@ +constructed = true; + } + + public function executeChain() + { + if (!$this->constructed) + { + //DebugHelper::debug('SUBCLASS_NOT_CALL_PARENT_CONSTRUCTOR', array('class' => $actionClassName)); + trigger_error('SUBCLASS_NOT_CALL_PARENT_CONSTRUCTOR'); + } + $this->afterConstruct(); + $validateResult = $this->validateInput(); + if (0 == $validateResult["error_total"]) + { + if ($this->checkPrivilege()) + { + $this->beforeExecute(); + $this->execute(); + } + else + { + $this->code = 403; + $this->message = "Access denied"; + } + } + else + { + $this->code = 407; + $this->message = "Invalid input"; + $this->data['error_messages'] = $validateResult["error_messages"]; + } + $this->writeResponse(); + } + + /** + * Do something after subClass::__construct(). + */ + protected function afterConstruct() + { + + } + + /** + * Validate the data from client + * + * @return array + */ + protected function validateInput() + { + $validateResult = array("error_total" => 0, "error_messages" => array()); + if (!empty($this->dtds) && class_exists('LtValidator')) + { + $validator = new LtValidator; + $validator->init(); + foreach ($this->dtds as $variable => $dtd) + { + $from = isset($dtd->from) ? $dtd->from : 'request'; + + foreach ($dtd->rules as $ruleKey => $ruleValue) + { + if ($ruleValue instanceof ConfigExpression) + { + eval('$_ruleValue = ' . $ruleValue->__toString()); + $dtd->rules[$ruleKey] = $_ruleValue; + } + } + $error_messages = $validator->validate($this->context->$from($variable), $dtd); + if (!empty($error_messages)) + { + $validateResult['error_total'] ++; + $validateResult['error_messages'][$variable] = $error_messages; + } + } + } + return $validateResult; + } + + /** + * Check if current user have privilege to do this + * + * @return boolen + */ + protected function checkPrivilege() + { + $allow = true; + if (!empty($this->roles) && class_exists('LtRbac')) + { + $module = $this->context->uri["module"]; + $action = $this->context->uri["action"]; + $roles = array_merge(array("*"), $this->roles); + $rbac = new LtRbac(); + $rbac->init(); + $allow = $rbac->checkAcl($roles, "$module/$action"); + } + return $allow; + } + + /** + * Do something before subClass::execute(). + */ + protected function beforeExecute() + { + } + + protected function execute() + { + } + + protected function writeResponse() + { + switch ($this->responseType) + { + case 'json': + echo json_encode(array("code" => $this->code, + "message" => $this->message, + "data" => $this->data + )); + exit; // + break; + case 'tpl': + if (null === $this->view) + { + $this->view = new LtTemplateView; + } + $this->view->component = false; // 是否组件 + $this->view->context = $this->context; + $this->view->code = $this->code; + $this->view->message = $this->message; + $this->view->data = $this->data; + $this->view->layoutDir = $this->viewDir . "layout/"; + $this->view->layout = $this->layout; + $this->view->templateDir = $this->viewDir; + $this->view->compiledDir = $this->viewTplDir; + $this->view->autoCompile = $this->viewTplAutoCompile; + if (empty($this->template)) + { + $this->template = $this->context->uri["module"] . "-" . $this->context->uri["action"]; + } + $this->view->template = $this->template; + $this->view->render(); + break; + + case 'html': + case 'wml': + default: + if (null === $this->view) + { + $this->view = new LtView; + } + $this->view->context = $this->context; + $this->view->code = $this->code; + $this->view->message = $this->message; + $this->view->data = $this->data; + $this->view->layoutDir = $this->viewDir . "layout/"; + $this->view->layout = $this->layout; + $this->view->templateDir = $this->viewDir; + if (empty($this->template)) + { + $this->template = $this->context->uri["module"] . "-" . $this->context->uri["action"]; + } + $this->view->template = $this->template; + $this->view->render(); + break; + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Component.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Component.php new file mode 100644 index 0000000..a7b7963 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Component.php @@ -0,0 +1,134 @@ +constructed = true; + } + public function executeChain() + { + if (!$this->constructed) + { + //DebugHelper::debug('SUBCLASS_NOT_CALL_PARENT_CONSTRUCTOR', array('class' => $actionClassName)); + } + $this->afterConstruct(); + $this->beforeExecute(); + $this->execute(); + $this->writeResponse(); + } + + protected function afterConstruct() + { + + } + /** + * Do something before subClass::execute(). + */ + protected function beforeExecute() + { + } + + protected function execute() + { + } + + protected function writeResponse() + { + switch ($this->responseType) + { + case 'json': + echo json_encode(array("code" => $this->code, + "message" => $this->message, + "data" => $this->data + )); + exit; + break; + case 'tpl': + if (null === $this->view) + { + $this->view = new LtTemplateView; + } + $this->view->component = true; // 是否组件 + $this->view->context = $this->context; + $this->view->code = $this->code; + $this->view->message = $this->message; + $this->view->data = $this->data; + $this->view->layoutDir = $this->viewDir . "layout/"; + $this->view->layout = $this->layout; + $this->view->templateDir = $this->viewDir . "component/"; + $this->view->compiledDir = $this->viewTplDir . "component/"; + $this->view->autoCompile = $this->viewTplAutoCompile; + if (empty($this->template)) + { + $this->template = $this->context->uri["module"] . "-" . $this->context->uri["action"]; + } + $this->view->template = $this->template; + $this->view->render(); + break; + + case 'html': + case 'wml': + default: + if (null === $this->view) + { + $this->view = new LtView; + } + $this->view->context = $this->context; + $this->view->code = $this->code; + $this->view->message = $this->message; + $this->view->data = $this->data; + $this->view->layoutDir = $this->viewDir . "layout/"; + $this->view->layout = $this->layout; + $this->view->templateDir = $this->viewDir . "component/"; + if (empty($this->template)) + { + $this->template = $this->context->uri["module"] . "-" . $this->context->uri["action"]; + } + $this->view->template = $this->template; + $this->view->render(); + break; + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Context.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Context.php new file mode 100644 index 0000000..179b387 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/Context.php @@ -0,0 +1,98 @@ + $action)); + trigger_error("{$actionClassName} CLASS NOT FOUND! module={$module} action={$action} classType={$classType}"); + } + else + { + if (!($context instanceof LtContext)) + { + $newContext = new LtContext; + } + else + { + $newContext = clone $context; + } + $newContext->uri['module'] = $module; + $newContext->uri[strtolower($classType)] = $action; + $actionInstance = new $actionClassName(); + $actionInstance->context = $newContext; + $actionInstance->viewDir = $this->viewDir; + $actionInstance->viewTplDir = $this->viewTplDir; // 模板编译目录 + $actionInstance->viewTplAutoCompile = $this->viewTplAutoCompile; + $actionInstance->executeChain(); + $this->data = $actionInstance->data; + } + } + + /** + * Disptach the module/action calling. + * + * @param $module string + * @param $action string + * @return void + * @todo allow one action dispatch another action + */ + public function dispatchAction($module, $action, $context = null) + { + $this->_dispatch($module, $action, $context); + } + + /** + * Disptach the module/component calling. + * + * @param $module string + * @param $component string + * @param $data mixed + * @return void + */ + public function dispatchComponent($module, $component, $context = null) + { + $cloneOfContext = clone $context; + $this->_dispatch($module, $component, $cloneOfContext, "Component"); + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/TemplateView.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/TemplateView.php new file mode 100644 index 0000000..cf97cd7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/TemplateView.php @@ -0,0 +1,385 @@ +autoCompile = true; + $this->component = false; + } + + public function render() + { + if (empty($this->compiledDir)) + { + $this->compiledDir = dirname($this->templateDir) . "/viewTpl/"; + } + if (!empty($this->layout)) + { + include $this->template(true); + } + else if ($this->component) + { + return; // 模板内使用{component module action}合并文件 + } + else + { + include $this->template(); + } + } + + /** + * 返回编译后的模板路径, 如果不存在则编译生成并返回路径. + * 如果文件存在且允许自动编译, 则对比模板文件和编译后的文件修改时间 + * 当修改模板后自支重新编译 + * + * @param bool $islayout 是否使用布局 + * @return string 返回编译后的模板路径 + */ + public function template($islayout = false) + { + $this->layoutDir = rtrim($this->layoutDir, '\\/') . '/'; + $this->compiledDir = rtrim($this->compiledDir, '\\/') . '/'; + $this->templateDir = rtrim($this->templateDir, '\\/') . '/'; + + if ($islayout) + { + $tplfile = $this->layoutDir . $this->layout . '.php'; + $objfile = $this->compiledDir . 'layout/' . $this->layout . '@' . $this->template . '.php'; + } + else + { + $tplfile = $this->templateDir . $this->template . '.php'; + $objfile = $this->compiledDir . $this->template . '.php'; + } + if (is_file($objfile)) + { + if ($this->autoCompile) + { + $iscompile = true; + $tpl_include_files = include($objfile); + $last_modified_time = array(); + foreach($tpl_include_files as $f) + { + $last_modified_time[] = filemtime($f); + } + if (filemtime($objfile) == max($last_modified_time)) + { + $iscompile = false; + } + } + else + { + $iscompile = false; + } + } + else + { + // 目标文件不存在,编译模板 + $iscompile = true; + } + if ($iscompile) + { + $this->tpl_include_files[] = $objfile; + $this->tpl_include_files[] = $tplfile; + $dir = pathinfo($objfile, PATHINFO_DIRNAME); + if (!is_dir($dir)) + { + if (!mkdir($dir, 0777, true)) + { + trigger_error("Can not create $dir"); + } + } + $str = file_get_contents($tplfile); + if (!$str) + { + trigger_error('Template file Not found or have no access!', E_USER_ERROR); + } + $str = $this->parse($str); + if ($this->autoCompile) + { + $prefix = "tpl_include_files), true) . ";?>"; + $prefix = preg_replace("/([\r\n])+/", "\r\n", $prefix); + $postfix = "\r\n\r\n"; + } + else + { + $prefix = ''; + $postfix = ''; + } + $str = $prefix . $str . $postfix; + if (!file_put_contents($objfile, $str)) + { + if (file_put_contents($objfile . '.tmp', $str)) + { + copy($objfile . '.tmp', $objfile); // win下不能重命名已经存在的文件 + unlink($objfile . '.tmp'); + } + } + @chmod($objfile,0777); + } + return $objfile; + } + + /** + * 解析{}内字符串,替换php代码 + * + * @param string $str + * @return string + */ + protected function parse($str) + { + $str = $this->removeComments($str); + $str = $this->parseIncludeComponent($str); + // 回车 换行 + $str = str_replace("{CR}", "", $str); + $str = str_replace("{LF}", "", $str); + // if else elseif + $str = preg_replace("/\{if\s+(.+?)\}/", "", $str); + $str = preg_replace("/\{else\}/", "", $str); + $str = preg_replace("/\{elseif\s+(.+?)\}/", "", $str); + $str = preg_replace("/\{\/if\}/", "", $str); + // loop + $str = preg_replace("/\{loop\s+(\S+)\s+(\S+)\}/e", "\$this->addquote('')", $str); + $str = preg_replace("/\{loop\s+(\S+)\s+(\S+)\s+(\S+)\}/e", "\$this->addquote('\\3) { ?>')", $str); + $str = preg_replace("/\{\/loop\}/", "", $str); + // url生成 + $str = preg_replace("/\{url\(([^}]+)\)\}/", "generate(\\1);?>", $str); + + // 函数 + $str = preg_replace("/\{([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff:]*\s*\(([^{}]*)\))\}/", "", $str); + $str = preg_replace("/\{\\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff:]*\(([^{}]*)\))\}/", "", $str); + // 变量 + /** + * 放弃支持$name.name.name + * $str = preg_replace("/\{(\\\$[a-zA-Z0-9_\[\]\'\"\$\x7f-\xff]+)\.([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/", "", $str); + */ + // 其它变量 + $str = preg_replace("/\{(\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/", "", $str); + $str = preg_replace("/\{(\\$[a-zA-Z0-9_\.\[\]\'\"\$\x7f-\xff]+)\}/e", "\$this->addquote('')", $str); + // 类->属性 类->方法 + $str = preg_replace("/\{(\\\$[a-zA-Z0-9_\[\]\'\"\$\x7f-\xff][+\-\>\$\'\"\,\[\]\(\)a-zA-Z0-9_\x7f-\xff]+)\}/es", "\$this->addquote('')", $str); + // 常量 + $str = preg_replace("/\{([A-Z_\x7f-\xff][A-Z0-9_\x7f-\xff]*)\}/", "", $str); + // 静态变量 + $str = preg_replace("/\{([a-zA-Z0-9_]*::?\\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\}/", "", $str); + $str = preg_replace("/\{([a-zA-Z0-9_]*::?\\\$[a-zA-Z0-9_\.\[\]\'\"\$\x7f-\xff]+)\}/e", "\$this->addquote('')", $str); + + // 合并相邻php标记 + $str = preg_replace("/\?\>\s*\<\?php[\r\n\t ]*/", "", $str); + /** + * 删除空行 + * Dos和windows采用回车+换行CR/LF表示下一行, + * 而UNIX/Linux采用换行符LF表示下一行, + * 苹果机(MAC OS系统)则采用回车符CR表示下一行. + * CR用符号 '\r'表示, 十进制ASCII代码是13, 十六进制代码为0x0D; + * LF使用'\n'符号表示, ASCII代码是10, 十六制为0x0A. + * 所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, + * 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示. + * + * 这里统一替换成windows平台回车换行, 第二参数考虑 \\1 保持原有 + */ + $str = preg_replace("/([\r\n])+/", "\r\n", $str); + // 删除第一行 + $str = preg_replace("/^[\r\n]+/", "", $str); + // write + $str = trim($str); + return $str; + } + /** + * 变量加上单引号 + * 如果是数字就不加单引号, 如果已经加上单引号或者双引号保持不变 + */ + protected function addquote($var) + { + preg_match_all("/\[([a-zA-Z0-9_\-\.\x7f-\xff]+)\]/s", $var, $vars); + foreach($vars[1] as $k => $v) + { + if (is_numeric($v)) + { + $var = str_replace($vars[0][$k], "[$v]", $var); + } + else + { + $var = str_replace($vars[0][$k], "['$v']", $var); + } + } + return str_replace("\\\"", "\"", $var); + } + + /** + * 模板中第一行可以写exit函数防止浏览 + * 删除行首尾空白, html javascript css注释 + */ + protected function removeComments($str, $clear = false) + { + $str = str_replace(array('', ''), array('', ''), $str); + // 删除行首尾空白 + $str = preg_replace("/([\r\n]+)[\t ]+/s", "\\1", $str); + $str = preg_replace("/[\t ]+([\r\n]+)/s", "\\1", $str); + // 删除 {} 前后的 html 注释 + $str = preg_replace("/\<\!\-\-\s*\{(.+?)\}\s*\-\-\>/s", "{\\1}", $str); + $str = preg_replace("/\<\!\-\-\s*\-\-\>/s", "", $str); + // 删除 html注释 存在 < { 就不删除 + $str = preg_replace("/\<\!\-\-\s*[^\<\{]*\s*\-\-\>/s", "", $str); + if ($clear) + { + $str = $this->clear($str); + } + return $str; + } + /** + * 清除一部分 style script内的注释 + * 多行注释内部存在 / 字符就不会清除 + */ + protected function clear($str) + { + preg_match_all("|]*>(.*)|Usi", $str, $tvar); + foreach($tvar[0] as $k => $v) + { + // 删除单行注释 + $v = preg_replace("/\/\/\s*[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/", "", $v); + // 删除多行注释 + $v = preg_replace("/\/\*[^\/]*\*\//s", "", $v); + $str = str_replace($tvar[0][$k], $v, $str); + } + preg_match_all("|]*>(.*)|Usi", $str, $tvar); + foreach($tvar[0] as $k => $v) + { + // 删除多行注释 + $v = preg_replace("/\/\*[^\/]*\*\//s", "", $v); + $str = str_replace($tvar[0][$k], $v, $str); + } + return $str; + } + /** + * + * @todo 注意相互引用的模板嵌套会导致死循环 + */ + protected function parseIncludeComponent($str) + { + $count_include_component = preg_match_all("/\{include\s+(.+)\}/", $str, $tvar); + $count_include_component += preg_match_all("/\{component\s+([a-zA-Z0-9\.\-_]+)\s+([a-zA-Z0-9\.\-_]+)\}/", $str, $tvar); + unset($tvar); + while ($count_include_component > 0) + { + $str = $this->parseInclude($str); + $str = $this->parseComponent($str); + $count_include_component = preg_match_all("/\{include\s+(.+)\}/", $str, $tvar); + $count_include_component += preg_match_all("/\{component\s+([a-zA-Z0-9\.\-_]+)\s+([a-zA-Z0-9\.\-_]+)\}/", $str, $tvar); + unset($tvar); + } + $str = $this->removeComments($str); + return $str; + } + /** + * 解析多个{include path/file}合并成一个文件 + * + * @example {include 'debug_info'} + * {include 'debug_info.php'} + * {include "debug_info"} + * {include "debug_info.php"} + * {include $this->templateDir . $this->template} + */ + private function parseInclude($str) + { + $countSubTpl = preg_match_all("/\{include\s+(.+)\}/", $str, $tvar); + while ($countSubTpl > 0) + { + foreach($tvar[1] as $k => $subfile) + { + eval("\$subfile = $subfile;"); + if (is_file($subfile)) + { + $findfile = $subfile; + } + else if (is_file($subfile . '.php')) + { + $findfile = $subfile . '.php'; + } + else if (is_file($this->templateDir . $subfile)) + { + $findfile = $this->templateDir . $subfile; + } + else if (is_file($this->templateDir . $subfile . '.php')) + { + $findfile = $this->templateDir . $subfile . '.php'; + } + else + { + $findfile = ''; + } + + if (!empty($findfile)) + { + $subTpl = file_get_contents($findfile); + $this->tpl_include_files[] = $findfile; + } + else + { + // 找不到文件 + $subTpl = 'SubTemplate not found:' . $subfile; + } + $str = str_replace($tvar[0][$k], $subTpl, $str); + } + $countSubTpl = preg_match_all("/\{include\s+(.+)\}/", $str, $tvar); + } + return $str; + } + + /** + * 解析多个{component module action}合并成一个文件 + */ + private function parseComponent($str) + { + $countCom = preg_match_all("/\{component\s+([a-zA-Z0-9\.\-_]+)\s+([a-zA-Z0-9\.\-_]+)\}/", $str, $tvar); + while ($countCom > 0) + { + $i = 0; + while ($i < $countCom) + { + $comfile = $this->templateDir . "component/" . $tvar[1][$i] . '-' . $tvar[2][$i] . '.php'; + if (is_file($comfile)) + { + $subTpl = file_get_contents($comfile); + $this->tpl_include_files[] = $comfile; + } + else + { + $subTpl = 'SubTemplate not found:' . $comfile; + } +//////////////////////////////////////////////////////////////////////////// +$module = $tvar[1][$i]; +$action = $tvar[2][$i]; +$subTpl = "dispatchComponent('$module', '$action', \$this->context); +\$comdata = \$dispatcher->data; +unset(\$dispatcher); +?> +" . $subTpl; +//////////////////////////////////////////////////////////////////////////// + $str = str_replace($tvar[0][$i], $subTpl, $str); + $i++; + } + $countCom = preg_match_all("/\{component\s+([a-zA-Z0-9\.\-_]+)\s+([a-zA-Z0-9\.\-_]+)\}/", $str, $tvar); + } + return $str; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/View.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/View.php new file mode 100644 index 0000000..84beb4c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/MVC/View.php @@ -0,0 +1,26 @@ +layout)) + { + include($this->layoutDir . $this->layout . '.php'); + } + else + { + include($this->templateDir . $this->template . '.php'); + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/ObjectUtil/ObjectUtil.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/ObjectUtil/ObjectUtil.php new file mode 100644 index 0000000..5f08e8e --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/ObjectUtil/ObjectUtil.php @@ -0,0 +1,33 @@ +init(); + } + self::$instances[$key] = $newInstance; + return $newInstance; + } + else + { + return false; + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Pagination/Pagination.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Pagination/Pagination.php new file mode 100644 index 0000000..3a28cf9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Pagination/Pagination.php @@ -0,0 +1,226 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + $this->conf = $this->configHandle->get("pagination.pager"); + if (empty($this->conf)) + { + $this->conf['per_page'] = 25; //每个页面中希望展示的项目数量 + $this->conf['num_links_show'] = 9; //数字链接显示数量 + $this->conf['num_point_start_end'] = 2; //“点”前边和后边的链接数量 + $this->conf['show_first'] = true; + $this->conf['show_prev'] = true; + $this->conf['show_next'] = true; + $this->conf['show_last'] = true; + $this->conf['show_goto'] = false; + $this->conf['show_info'] = false; + $this->conf['show_point'] = true; + $this->conf['show_empty_button'] = false; + + $this->conf['first_text'] = 'First'; + $this->conf['prev_text'] = 'Prev'; + $this->conf['next_text'] = 'Next'; + $this->conf['last_text'] = 'Last'; + $this->conf['point_text'] = '...'; + + $this->conf['full_tag_open'] = '
                '; + $this->conf['full_tag_close'] = '
                '; + $this->conf['num_tag_open'] = ''; + $this->conf['num_tag_close'] = ''; + $this->conf['link_tag_open'] = ''; + $this->conf['link_tag_close'] = ''; + $this->conf['link_tag_cur_open'] = ''; + $this->conf['link_tag_cur_close'] = ''; + $this->conf['button_tag_open'] = ''; + $this->conf['button_tag_close'] = ''; + $this->conf['button_tag_empty_open'] = ''; + $this->conf['button_tag_empty_close'] = ''; + $this->conf['point_tag_open'] = ''; + $this->conf['point_tag_close'] = ''; + } + } + + /** + * + * @param $page int 当前页 + * @param $count int 这个数值是你查询数据库得到的数据总量 + * @param $url string 字串中使用 :page 表示页参数 不在意位置 如/a/:page/c/e + */ + public function pager($page, $count, $url) + { + $per_page = empty($this->conf['per_page']) ? 25 : $this->conf['per_page']; + $pagecount = ceil($count / $per_page); + $pager = $this->renderPager($page, $pagecount, $url); + if ($this->conf['show_goto']) + { + $pager .= $this->renderButton('goto', $page, $pagecount, $url); + } + if ($this->conf['show_info']) + { + $pager .= $this->renderButton('info', $page, $pagecount, $url); + } + return $this->conf['full_tag_open'] . $pager . $this->conf['full_tag_close']; + } + + /** + * + * @param $pagenumber int 当前页 + * @param $pagecount int 总页数 + * @return string + */ + public function renderPager($pagenumber, $pagecount, $baseurl = '?page=:page') + { + $baseurl = urldecode($baseurl); + $pager = $this->conf['num_tag_open']; + + $pager .= $this->renderButton('first', $pagenumber, $pagecount, $baseurl); + $pager .= $this->renderButton('prev', $pagenumber, $pagecount, $baseurl); + + $startPoint = 1; + $endPoint = $this->conf['num_links_show']; + $num_links = ceil($this->conf['num_links_show'] / 2) - 1; + if ($pagenumber > $num_links) + { + $startPoint = $pagenumber - $num_links; + $endPoint = $pagenumber + $num_links; + } + + if ($endPoint > $pagecount) + { + $startPoint = $pagecount + 1 - $this->conf['num_links_show']; + $endPoint = $pagecount; + } + + if ($startPoint < 1) + { + $startPoint = 1; + } + + $currentButton = ''; + if ($this->conf['show_point']) + { + for($page = 1; $page < $startPoint; $page++) + { + $url = str_replace(':page', $page, $baseurl); + if ($page > $this->conf['num_point_start_end']) + { + $currentButton .= $this->conf['point_tag_open'] . $this->conf['point_text'] . $this->conf['point_tag_close']; + break; + } + $currentButton .= str_replace(':url', $url, $this->conf['link_tag_open']) . $page . $this->conf['link_tag_close']; + } + } + for ($page = $startPoint; $page <= $endPoint; $page++) + { + $url = str_replace(':page', $page, $baseurl); + if ($page == $pagenumber) + { + $currentButton .= $this->conf['link_tag_cur_open'] . $page . $this->conf['link_tag_cur_close']; + } + else + { + $currentButton .= str_replace(':url', $url, $this->conf['link_tag_open']) . $page . $this->conf['link_tag_close']; + } + } + if ($this->conf['show_point']) + { + $page = $pagecount - $this->conf['num_point_start_end']; + if ($page > $endPoint) + { + $currentButton .= $this->conf['point_tag_open'] . $this->conf['point_text'] . $this->conf['point_tag_close']; + } + + for($page += 1; $page >= $endPoint && $page <= $pagecount; $page++) + { + if ($page == $endPoint) continue; + $url = str_replace(':page', $page, $baseurl); + $currentButton .= str_replace(':url', $url, $this->conf['link_tag_open']) . $page . $this->conf['link_tag_close']; + } + } + $pager .= $currentButton; + $pager .= $this->renderButton('next', $pagenumber, $pagecount, $baseurl); + $pager .= $this->renderButton('last', $pagenumber, $pagecount, $baseurl); + $pager .= $this->conf['num_tag_close']; + + return $pager; + } + + /** + * + * @param $buttonLabel string 显示文字 + * @param $pagenumber int 当前页 + * @param $pagecount int 总页数 + * @return string + */ + public function renderButton($buttonLabel, $pagenumber, $pagecount, $baseurl = '?page=:page') + { + $baseurl = urldecode($baseurl); + $destPage = 1; + if ('goto' == $buttonLabel) + { + $button = "goto "; + return $button; + } + if ('info' == $buttonLabel) + { + $button = " $pagenumber/$pagecount "; + return $button; + } + switch ($buttonLabel) + { + case "first": + $destPage = 1; + $bottenText = $this->conf['first_text']; + break; + case "prev": + $destPage = $pagenumber - 1; + $bottenText = $this->conf['prev_text']; + break; + case "next": + $destPage = $pagenumber + 1; + $bottenText = $this->conf['next_text']; + break; + case "last": + $destPage = $pagecount; + $bottenText = $this->conf['last_text']; + break; + } + $url = str_replace(':page', $destPage, $baseurl); + $button = str_replace(':url', $url, $this->conf['button_tag_open']) . $bottenText . $this->conf['button_tag_close']; + + if ($buttonLabel == "first" || $buttonLabel == "prev") + { + if ($pagenumber <= 1) + { + $button = $this->conf['show_empty_button'] ? $this->conf['button_tag_empty_open'] . $bottenText . $this->conf['button_tag_empty_close'] : ''; + } + } + else + { + if ($pagenumber >= $pagecount) + { + $button = $this->conf['show_empty_button'] ? $this->conf['button_tag_empty_open'] . $bottenText . $this->conf['button_tag_empty_close'] : ''; + } + } + return $button; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/RBAC/Rbac.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/RBAC/Rbac.php new file mode 100644 index 0000000..0c09a10 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/RBAC/Rbac.php @@ -0,0 +1,87 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + $this->acl = $this->configHandle->get('rbac.acl'); + } + + public function checkAcl($roles, $resource) + { + $allow = false; + // deny priority + foreach (array("allow", "deny") as $operation) + { + foreach($roles as $role) + { + if (isset($this->acl[$operation][$role])) + { + // everyone * + if (in_array($resource, $this->acl[$operation]['*'])) + { + $allow = "allow" == $operation ? true : false; + break; + } + if (in_array($resource, $this->acl[$operation][$role])) + { + $allow = "allow" == $operation ? true : false; + break; + } + else + { + $res = explode('/', trim($resource, '/')); + for ($i = count($res)-1; $i >= 0; $i--) + { + $res[$i] = '*'; + $tmp = implode('/', $res); + if (in_array($tmp, $this->acl[$operation][$role])) + { + $allow = "allow" == $operation ? true : false; + break; + } + unset($res[$i]); + } + } + } + } + } + return $allow; + } +/* + private function __set($p,$v) + { + $this->$p = $v; + } + + private function __get($p) + { + if(isset($this->$p)) + { + return($this->$p); + } + else + { + return(NULL); + } + } +*/ +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Router/Router.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Router/Router.php new file mode 100644 index 0000000..096d03c --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Router/Router.php @@ -0,0 +1,194 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil")) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + $this->routingTable = $this->configHandle->get("router.routing_table"); + if (empty($this->routingTable)) + { + $this->routingTable = array('pattern' => ":module/:action/*", + 'default' => array('module' => 'default', 'action' => 'index'), + 'reqs' => array('module' => '[a-zA-Z0-9\.\-_]+', + 'action' => '[a-zA-Z0-9\.\-_]+' + ), + 'varprefix' => ':', + 'delimiter' => '/', + 'postfix' => '', + 'protocol' => 'PATH_INFO', // REWRITE STANDARD + ); + } + + $delimiter = $this->routingTable['delimiter']; + $postfix = $this->routingTable['postfix']; + $protocol = strtoupper($this->routingTable['protocol']); + $module = ''; + $action = ''; + $params = array(); + // HTTP HTTPS + if (isset($_SERVER['SERVER_PROTOCOL'])) + { + if (isset($_SERVER['PATH_INFO']) && !empty($_SERVER['PATH_INFO'])) + { + // 忽略后缀 + $url = rtrim($_SERVER['PATH_INFO'], "$postfix"); + $url = explode($delimiter, trim($url, "/")); + } + else if (isset($_SERVER['REQUEST_URI'])) + { + if ('REWRITE' == $protocol) + { + if (0 == strcmp($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'])) + { + $url = array(); + } + else + { + $url = substr($_SERVER['REQUEST_URI'], strlen(pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME))); + $url = rtrim($url, "$postfix"); + $url = explode($delimiter, trim($url, "/")); + } + } + else if ('PATH_INFO' == $protocol) + { + $url = substr($_SERVER['REQUEST_URI'], strlen($_SERVER['SCRIPT_NAME'])); + $url = rtrim($url, "$postfix"); + $url = explode($delimiter, trim($url, "/")); + } + else //STANDARD + { + $url = array(); + foreach($_GET as $v) + { + $url[] = $v; + } + } + } + else + { + $url = array(); + foreach($_GET as $v) + { + $url[] = $v; + } + } + $params = $this->matchingRoutingTable($url); + $module = $params['module']; + $action = $params['action']; + } + else + { + // CLI + $i = 0; + while (isset($_SERVER['argv'][$i]) && isset($_SERVER['argv'][$i + 1])) + { + if (("-m" == $_SERVER['argv'][$i] || "--module" == $_SERVER['argv'][$i])) + { + $module = $_SERVER['argv'][$i + 1]; + } + else if (("-a" == $_SERVER['argv'][$i] || "--action" == $_SERVER['argv'][$i])) + { + $action = $_SERVER['argv'][$i + 1]; + } + else + { + $key = $_SERVER['argv'][$i]; + $params[$key] = $_SERVER['argv'][$i + 1]; + } + $i = $i + 2; + } + } + // 如果$_GET中不存在配置的变量则添加 + foreach($params as $k => $v) + { + !isset($_GET[$k]) && $_GET[$k] = $v; + } + $this->module = $module; + $this->action = $action; + } + + /** + * url 匹配路由表 + * + * @param $ [string|array] $url + * @return + * @todo 修复导致$_GET多出属性的BUG + * @todo 如果是rewrite或者path_info模式,可能需要unset module和action两个$_GET变量 + */ + public function matchingRoutingTable($url) + { + $ret = $this->routingTable['default']; //初始化返回值为路由默认值 + $reqs = $this->routingTable['reqs']; + $delimiter = $this->routingTable['delimiter']; + $varprefix = $this->routingTable['varprefix']; + $postfix = $this->routingTable['postfix']; + $pattern = explode($delimiter, trim($this->routingTable['pattern'], $delimiter)); + + /** + * 预处理url + */ + if (is_string($url)) + { + $url = rtrim($url, $postfix); //忽略后缀 + $url = explode($delimiter, trim($url, $delimiter)); + } + + foreach($pattern as $k => $v) + { + if ($v[0] == $varprefix) + { + // 变量 + $varname = substr($v, 1); + // 匹配变量 + if (isset($url[$k])) + { + if (isset($reqs[$varname])) + { + $regex = "/^{$reqs[$varname]}\$/i"; + if (preg_match($regex, $url[$k])) + { + $ret[$varname] = $url[$k]; + } + } + } + } + else if ($v[0] == '*') + { + // 通配符 + $pos = $k; + while (isset($url[$pos]) && isset($url[$pos + 1])) + { + $ret[$url[$pos ++]] = urldecode($url[$pos]); + $pos++; + } + } + else + { + // 静态 + } + } + return $ret; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Session/Session.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Session/Session.php new file mode 100644 index 0000000..10e9869 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Session/Session.php @@ -0,0 +1,56 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + if(!$sessionSavePath = $this->configHandle->get("session.save_path")) + { + $sessionSavePath = '/tmp/Lotus/session/'; + } + if (!is_object($this->storeHandle)) + { + ini_set('session.save_handler', 'files'); + if (!is_dir($sessionSavePath)) + { + if (!@mkdir($sessionSavePath, 0777, true)) + { + trigger_error("Can not create $sessionSavePath"); + } + } + session_save_path($sessionSavePath); + } + else + { + $this->storeHandle->conf = $this->configHandle->get("session.conf"); + $this->storeHandle->init(); + session_set_save_handler( + array(&$this->storeHandle, 'open'), + array(&$this->storeHandle, 'close'), + array(&$this->storeHandle, 'read'), + array(&$this->storeHandle, 'write'), + array(&$this->storeHandle, 'destroy'), + array(&$this->storeHandle, 'gc') + ); + } + //session_start(); + //header("Cache-control: private"); // to overcome/fix a bug in IE 6.x + } +} 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 new file mode 100644 index 0000000..4c08da2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Session/SessionStore @@ -0,0 +1,10 @@ +conf['gc_maxlifetime'])) + { + $this->lifeTime = $this->conf['gc_maxlifetime']; + } + else + { + $this->lifeTime = get_cfg_var("session.gc_maxlifetime"); + } + if (isset($this->conf['table_name'])) + { + $this->tableName = $this->conf['table_name']; + } + else + { + $this->tableName = 'lotus_session'; + } + if (isset($this->conf['db_name'])) + { + $this->dbName = $this->conf['db_name']; + } + else + { + $this->dbName = '/tmp/Lotus/session/session_sqlite2.db'; + } + + if (!$this->dbHandle = sqlite_open($this->dbName, 0666)) + { + trigger_error('session sqlite db error'); + return false; + } + return true; + } + + public function open($savePath, $sessName) + { + return true; + } + + public function close() + { + $this->gc($this->lifeTime); + return @sqlite_close($this->dbHandle); + } + + public function read($sessID) + { + $res = sqlite_query("SELECT session_data AS d FROM $this->tableName + WHERE session_id = '$sessID' + AND session_expires > " . time(), $this->dbHandle); + if ($row = sqlite_fetch_array($res, SQLITE_ASSOC)) + { + return $row['d']; + } + else + { + return ""; + } + } + + public function write($sessID, $sessData) + { + $newExp = time() + $this->lifeTime; + $res = sqlite_query("SELECT * FROM $this->tableName + WHERE session_id = '$sessID'", $this->dbHandle); + if (sqlite_num_rows($res)) + { + sqlite_exec("UPDATE $this->tableName + SET session_expires = '$newExp', + session_data = '$sessData' + WHERE session_id = '$sessID'", $this->dbHandle); + if (sqlite_changes($this->dbHandle)) + { + return true; + } + } + else + { + sqlite_exec("INSERT INTO $this->tableName ( + session_id, + session_expires, + session_data) + VALUES( + '$sessID', + '$newExp', + '$sessData')", $this->dbHandle); + if (sqlite_changes($this->dbHandle)) + { + return true; + } + } + return false; + } + + public function destroy($sessID) + { + sqlite_exec("DELETE FROM $this->tableName WHERE session_id = '$sessID'", $this->dbHandle); + if (sqlite_changes($this->dbHandle)) + { + return true; + } + return false; + } + + public function gc($sessMaxLifeTime) + { + sqlite_exec("DELETE FROM $this->tableName WHERE session_expires < " . time(), $this->dbHandle); + return sqlite_changes($this->dbHandle); + } + + public function runOnce() + { + $sql = "SELECT name FROM sqlite_master WHERE type='table' UNION ALL SELECT name FROM sqlite_temp_master WHERE type='table' AND name='" . $this->tableName . "'"; + $res = sqlite_query($sql, $this->dbHandle); + $row = sqlite_fetch_array($res, SQLITE_ASSOC); + if (empty($row)) + { + $sql = "CREATE TABLE $this->tableName ( + [session_id] VARCHAR(255) NOT NULL PRIMARY KEY, + [session_expires] INTEGER DEFAULT '0' NOT NULL, + [session_data] TEXT NULL + )"; + return sqlite_exec($sql, $this->dbHandle); + } + return false; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Store.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Store.php new file mode 100644 index 0000000..e24b4c8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Store.php @@ -0,0 +1,8 @@ +storeDir) + { + $this->storeDir = self::$defaultStoreDir; + } + $this->storeDir = str_replace('\\', '/', $this->storeDir); + $this->storeDir = rtrim($this->storeDir, '\\/') . '/'; + } + + /** + * 当key存在时: + * 如果没有过期, 不更新值, 返回 false + * 如果已经过期, 更新值, 返回 true + * + * @return bool + */ + public function add($key, $value) + { + $file = $this->getFilePath($key); + $cachePath = pathinfo($file, PATHINFO_DIRNAME); + if (!is_dir($cachePath)) + { + if (!@mkdir($cachePath, 0777, true)) + { + trigger_error("Can not create $cachePath"); + } + } + if (is_file($file)) + { + return false; + } + if ($this->useSerialize) + { + $value = serialize($value); + } + $length = file_put_contents($file, '' . $value); + return $length > 0 ? true : false; + } + + /** + * 删除不存在的key返回false + * + * @return bool + */ + public function del($key) + { + $file = $this->getFilePath($key); + if (!is_file($file)) + { + return false; + } + else + { + return @unlink($file); + } + } + + /** + * 取不存在的key返回false + * 已经过期返回false + * + * @return 成功返回数据,失败返回false + */ + public function get($key) + { + $file = $this->getFilePath($key); + if (!is_file($file)) + { + return false; + } + $str = file_get_contents($file); + $value = substr($str, 13); + if ($this->useSerialize) + { + $value = unserialize($value); + } + return $value; + } + + /** + * key不存在 返回false + * 不管有没有过期,都更新数据 + * + * @return bool + */ + public function update($key, $value) + { + $file = $this->getFilePath($key); + if (!is_file($file)) + { + return false; + } + else + { + if ($this->useSerialize) + { + $value = serialize($value); + } + $length = file_put_contents($file, '' . $value); + return $length > 0 ? true : false; + } + } + + public function getFilePath($key) + { + $token = md5($key); + return $this->storeDir . + $this->prefix . '/' . + substr($token, 0, 2) .'/' . + substr($token, 2, 2) . '/' . + $token . '.php'; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/StoreMemory.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/StoreMemory.php new file mode 100644 index 0000000..4e8328a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/StoreMemory.php @@ -0,0 +1,54 @@ +stack[$key])) + { + return false; + } + else + { + $this->stack[$key] = $value; + return true; + } + } + + public function del($key) + { + if (isset($this->stack[$key])) + { + unset($this->stack[$key]); + return true; + } + else + { + return false; + } + } + + public function get($key) + { + return isset($this->stack[$key]) ? $this->stack[$key] : false; + } + + /** + * key不存在返回false + * + * @return bool + */ + public function update($key, $value) + { + if (!isset($this->stack[$key])) + { + return false; + } + else + { + $this->stack[$key] = $value; + return true; + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Url/Url.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Url/Url.php new file mode 100644 index 0000000..35eae00 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Url/Url.php @@ -0,0 +1,142 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + public function init() + { + $this->routingTable = $this->configHandle->get("router.routing_table"); + if (empty($this->routingTable)) + { + $this->routingTable = array('pattern' => ":module/:action/*", + 'default' => array('module' => 'default', 'action' => 'index'), + 'reqs' => array('module' => '[a-zA-Z0-9\.\-_]+', + 'action' => '[a-zA-Z0-9\.\-_]+' + ), + 'varprefix' => ':', + 'delimiter' => '/', + 'postfix' => '', + 'protocol' => 'PATH_INFO', // REWRITE STANDARD + ); + } + + $protocol = strtoupper($this->routingTable['protocol']); + if ('REWRITE' == $protocol) + { + $this->baseUrl = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME) . '/'; + } + else if ('STANDARD' == $protocol) + { + $this->baseUrl = $_SERVER['PHP_SELF']; + } + else + { + $this->baseUrl = ''; + } + } + + public function generate($module, $action, $args = array()) + { + $args = array_merge(array('module' => $module, 'action' => $action), $args); + $url = ''; + // $url = $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://'; + // $url .= $_SERVER['HTTP_HOST']; + // $url .= $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT']; + $url .= $this->baseUrl; + $url .= $this->reverseMatchingRoutingTable($args); + return $url; + } + + /** + * 将变量反向匹配路由表, 返回匹配后的url + * + * @param array $params + * @return string + */ + public function reverseMatchingRoutingTable($args) + { + $ret = $this->routingTable['pattern']; + $default = $this->routingTable['default']; + $reqs = $this->routingTable['reqs']; + $delimiter = $this->routingTable['delimiter']; + $varprefix = $this->routingTable['varprefix']; + $postfix = $this->routingTable['postfix']; + $protocol = strtoupper($this->routingTable['protocol']); + if ('STANDARD' == $protocol) + { + return '?' . http_build_query($args, '', '&'); + } + $pattern = explode($delimiter, trim($this->routingTable['pattern'], $delimiter)); + + foreach($pattern as $k => $v) + { + if ($v[0] == $varprefix) + { + // 变量 + $varname = substr($v, 1); + // 匹配变量 + if (isset($args[$varname])) + { + $regex = "/^{$reqs[$varname]}\$/i"; + if (preg_match($regex, $args[$varname])) + { + $ret = str_replace($v, $args[$varname], $ret); + unset($args[$varname]); + } + } + else if (isset($default[$varname])) + { + $ret = str_replace($v, $default[$varname], $ret); + } + } + else if ($v[0] == '*') + { + // 通配符 + $tmp = ''; + foreach($args as $key => $value) + { + if (!isset($default[$key])) + { + $tmp .= $key . $delimiter . rawurlencode($value) . $delimiter; + } + } + $tmp = rtrim($tmp, $delimiter); + $ret = str_replace($v, $tmp, $ret); + $ret = rtrim($ret, $delimiter); + } + else + { + // 静态 + } + } + if ('REWRITE' == $protocol) + { + $ret = $ret . $postfix; + } + else if ('PATH_INFO' == $protocol) + { + $ret = $_SERVER['SCRIPT_NAME'] . $delimiter . $ret . $postfix; + } + else + { + $ret = $ret . $postfix; + } + return $ret; + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Validator/Validator.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Validator/Validator.php new file mode 100644 index 0000000..839afe4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Validator/Validator.php @@ -0,0 +1,174 @@ +configHandle instanceof LtConfig) + { + if (class_exists("LtObjectUtil", false)) + { + $this->configHandle = LtObjectUtil::singleton("LtConfig"); + } + else + { + $this->configHandle = new LtConfig; + } + } + } + + public function init() + { + $this->errorMessages = $this->configHandle->get('validator.error_messages'); + } + + /** + * Validate an element + * + * @param mixed $value + * @param array $dtd + * @return array + */ + public function validate($value, $dtd) + { + $errorMessages = array(); + $label = $dtd->label; + + if (is_array($dtd->rules) && count($dtd->rules)) + { + $messages = isset($dtd->messages) ? $dtd->messages : array(); + foreach ($dtd->rules as $key => $val) + { + // callback_user_function + if ('callback_' == substr($key, 0, 9)) + { + $method = substr($key, 9); + // 定义了过程函数 + if (function_exists($method)) + { + if (!$method($value, $dtd->rules[$key])) + { + if (isset($this->errorMessages[$key])) + { + $messages[$key] = $this->errorMessages[$key]; + } + else + { + $messages[$key] = "validator.error_messages[$key] empty"; + } + $errorMessages[$key] = sprintf($messages[$key], $label, $dtd->rules[$key]); + } + continue; + } + // 定义了类方法 + $rc = new ReflectionClass($val); + if ($rc->hasMethod($method)) + { + $rcMethod = $rc->getMethod($method); + if ($rcMethod->isStatic()) + { + $ret = $rcMethod->invoke(null, $value, $dtd->rules[$key]); + } + else + { + // 非静态方法需要一个实例 有待考虑单例 + $rcInstance = $rc->newInstance(); + $ret = $rcMethod->invoke($rcInstance, $value, $dtd->rules[$key]); + } + if (!$ret) + { + if (isset($this->errorMessages[$key])) + { + $messages[$key] = $this->errorMessages[$key]; + } + else + { + $messages[$key] = "validator.error_messages[$key] empty"; + } + $errorMessages[$key] = sprintf($messages[$key], $label, $dtd->rules[$key]); + } + continue; + } + continue; + } + // end callback_user_function + $validateFunction = '_' . $key; + if ((is_bool($dtd->rules[$key]) || 0 < strlen($dtd->rules[$key])) && !$this->$validateFunction($value, $dtd->rules[$key])) + { + if (empty($messages[$key])) + { + if (isset($this->errorMessages[$key])) + { + $messages[$key] = $this->errorMessages[$key]; + } + else + { + $messages[$key] = "validator.error_messages[$key] empty"; + } + } + $errorMessages[$key] = sprintf($messages[$key], $label, $dtd->rules[$key]); + } + } + } + return $errorMessages; + } + + protected function _ban($value, $ruleValue) + { + return !preg_match($ruleValue, $value); + } + + protected function _mask($value, $ruleValue) + { + return preg_match($ruleValue, $value); + } + + protected function _equal_to($value, $ruleValue) + { + return $value === $ruleValue; + } + + protected function _max_length($value, $ruleValue) + { + return mb_strlen($value) <= $ruleValue; + } + + protected function _min_length($value, $ruleValue) + { + return mb_strlen($value) >= $ruleValue; + } + + protected function _max_value($value, $ruleValue) + { + return $value <= $ruleValue; + } + + protected function _min_value($value, $ruleValue) + { + return $value >= $ruleValue; + } + + protected function _min_selected($value, $ruleValue) + { + return count($value) >= $ruleValue; + } + + protected function _max_selected($value, $ruleValue) + { + return count($value) <= $ruleValue; + } + + protected function _required($value, $ruleValue) + { + if (false == $ruleValue) + { + return true; + } + else + { + return is_array($value) && count($value) || strlen($value); + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Validator/ValidatorDtd.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Validator/ValidatorDtd.php new file mode 100644 index 0000000..1f2f644 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/Validator/ValidatorDtd.php @@ -0,0 +1,23 @@ +label = $label; + foreach($rules as $key => $rule) + { + $this->rules[$key] = $rule; + } + if ($messages) + { + foreach($messages as $key => $message) + { + $this->messages[$key] = $message; + } + } + } +} diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/XML/Xml.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/XML/Xml.php new file mode 100644 index 0000000..ab2a467 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/XML/Xml.php @@ -0,0 +1,304 @@ +mode = $mode; + + $this->encoding = $encoding; + $this->version = $version; + + $this->_getParser($encoding); + } + + public function getArray($xmlString) { + if (READMODE !== $this->mode) { + trigger_error("LtXml is on WRITEMODE, and cannot convert XML string to array."); + return WRONG_MODE; + } + + if (0 === preg_match("/version=[\"|\']([1-9]\d*\.\d*)[\"|\']/", $xmlString, $res)) { + trigger_error("Cannot find the version in this XML document."); + return INTERNAL_ERR; + } + else { + $this->version = $res[1]; + } + + if (0 === preg_match("/encoding=[\"|\'](.*?)[\"|\']/", $xmlString, $res)) { + $this->encoding = "UTF-8"; + } + else { + $this->encoding = strtoupper($res[1]); + } + + $_array = $this->_stringToArray($xmlString); + if (NULL === $_array) { + trigger_error("Fail to get the tag template."); + return INTERNAL_ERR; + } + $currentArray = NULL; + $openingTags = array(); + $array = $this->_getArrayTemplate(); + + foreach ($_array as $tag) { + $tag["tag"] = strtolower($tag["tag"]); + if (isset($tag["type"]) && "close" == $tag["type"] + && isset($tag["tag"]) && ! empty($tag["tag"])) { + if ($openingTags[count($openingTags) - 1]["tag"] == $tag["tag"]) { + unset($openingTags[count($openingTags) - 1]); + } + else { + return -1; + } + } + else if ((isset($tag["type"]) && "complete" == $tag["type"]) + || (isset($tag["type"]) && "open" == $tag["type"]) + && isset($tag["tag"]) && ! empty($tag["tag"])){ + $currentArray = $this->_getArrayTemplate(); + $currentArray["tag"] = $tag["tag"]; + $cdata = $tag["value"]; + $cdata = preg_replace("/^\s*/", "", $cdata); + $cdata = preg_replace("/\s*$/", "", $cdata); + $currentArray["cdata"] = $cdata; + if (isset($tag["attributes"]) && is_array($tag["attributes"])) { + foreach($tag["attributes"] as $k => $v) { + $currentArray["attributes"][strtolower($k)] = $v; + } + } + + if (0 == count($openingTags)) { + $openingTags[] = &$array; + $openingTags[0] = $currentArray; + } + else { + $subCount = count($openingTags[count($openingTags) - 1]["sub"]); + $openingTags[count($openingTags) - 1]["sub"][$subCount] = $currentArray; + $openingTags[count($openingTags)] = &$openingTags[count($openingTags) - 1]["sub"][$subCount]; + } + + if ("complete" == $tag["type"]) { + unset($openingTags[count($openingTags) - 1]); + } + } + else if (isset($tag["type"]) && "cdata" == $tag["type"] + && isset($tag["tag"]) && ! empty($tag["tag"])) { + if ($tag["tag"] == $openingTags[count($openingTags) - 1]["tag"]) { + $cdata = $tag["value"]; + $cdata = preg_replace("/^\s*/", "", $cdata); + $cdata = preg_replace("/\s*$/", "", $cdata); + $openingTags[count($openingTags) - 1]["cdata"] .= $cdata; + } + else { + return -2; + } + } + } + + if (0 < count($openingTags)) { + return -3; + } + + return $array; + } + + public function getString($xmlArray) { + if (WRITEMODE !== $this->mode) { + trigger_error("LtXml is on READMODE, and cannot convert array to string."); + return WRONG_MODE; + } + + $header = "version}\" encoding=\"{$this->encoding}\"". " ?" . ">\n"; + + $xmlString = $header; + + $processingTags = array($xmlArray); + while (! empty($processingTags)) { + if (! isset($processingTags[count($processingTags) -1]["close"])) { + $tagArray = $processingTags[count($processingTags) - 1]; + + if (0 === $this->_isTag($tagArray)) { + trigger_error("The array do not match the format."); + return INTERNAL_ERR; + } + + $processingTags[count($processingTags) -1]["close"] = "YES"; + $tagName = $tagArray["tag"]; + + $tag = "<{$tagName}"; + foreach ($tagArray["attributes"] as $key => $value) { + $tag .= " {$key}=\"{$value}\""; + } + if (! empty($tagArray["sub"]) || ! empty($tagArray["cdata"])) { + $cdata = $this->_convertEntity($tagArray["cdata"]); + $tag .= ">\n{$cdata}\n"; + for ($i=count($tagArray["sub"]) - 1; $i>=0; $i--) { + $subArray = $tagArray["sub"][$i]; + $processingTags[count($processingTags)] = $subArray; + } + } + else { + $processingTags[count($processingTags) - 1]["complete"] = "YES"; + } + } + else { + $tag = (isset($processingTags[count($processingTags) - 1]["complete"])) + ? "/>\n" + : "\n"; + unset($processingTags[count($processingTags) - 1]); + } + + $xmlString .= $tag; + } + $xmlString = preg_replace("/\n\s*/", "\n", $xmlString); + + return $xmlString; + } + + /** + * 生成一个xml节点 + * @param string tag 标签名 + * @param string cdata 数据 + * @param array attr 属性列表 + * @param array sub 子标签列表 + */ + public function createTag($tag, $cdata = "", $attr = array(), $sub = array()) { + $newTag = $this->_getArrayTemplate(); + if (! is_string($tag)) { + trigger_error("Cannot read the tag name."); + return INTERNAL_ERR; + } + + $newTag["tag"] = $tag; + $newTag["cdata"] = $cdata; + $newTag["attributes"] = $attr; + $newTag["sub"] = $sub; + + return $newTag; + } + + /** + * 释放xml_parser + */ + public function free() { + xml_parser_free($this->_handler); + } + + private function _getParser($encoding) { + if (in_array($encoding, $this->_supportedEncoding)) + $this->_handler = xml_parser_create($encoding); + else + $this->_handler = NULL; + } + + private function _stringToArray($xmlString) { + $res = xml_parse_into_struct($this->_handler, $xmlString, $array); + if (1 === $res) + return $array; + else + return NULL; + } + + private function _convertEntity($string) { + $patterns = array("/ "", "attributes" => array(), "sub" => array(), "cdata" => ""); + } + + /** + * 检测传入的参数是否是一个合法的tag数组 + * @return 0 非法 + * @return 1 合法 + */ + private function _isTag($tag) { + if (! is_array($tag)) { + return 0; + } + + if (! isset($tag["tag"]) || ! is_string($tag["tag"]) || empty($tag["tag"])) { + return 0; + } + + if (! isset($tag["attributes"]) || ! is_array($tag["attributes"])) { + return 0; + } + + if (! isset($tag["sub"]) || ! is_array($tag["sub"])) { + return 0; + } + + if (! isset($tag["cdata"]) || ! is_string($tag["cdata"])) { + return 0; + } + + return 1; + } +} + diff --git a/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/shortcut.php b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/shortcut.php new file mode 100644 index 0000000..0c5f0d6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/lotusphp_runtime/shortcut.php @@ -0,0 +1,5 @@ +writeLog(var_export($_POST,true)); +$result = $alipaySevice->check($arr); + +/* 实际验证过程建议商户添加以下校验。 +1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号, +2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额), +3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email) +4、验证app_id是否为该商户本身。 +*/ +if($result) {//验证成功 + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //请在这里加上商户的业务逻辑程序代 + + + //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— + + //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 + + //商户订单号 + + $out_trade_no = $_POST['out_trade_no']; + + //支付宝交易号 + + $trade_no = $_POST['trade_no']; + + //交易状态 + $trade_status = $_POST['trade_status']; + + + if($_POST['trade_status'] == 'TRADE_FINISHED') { + + //判断该笔订单是否在商户网站中已经做过处理 + //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 + //请务必判断请求时的total_amount与通知时获取的total_fee为一致的 + //如果有做过处理,不执行商户的业务程序 + + //注意: + //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 + } + else if ($_POST['trade_status'] == 'TRADE_SUCCESS') { + //判断该笔订单是否在商户网站中已经做过处理 + //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 + //请务必判断请求时的total_amount与通知时获取的total_fee为一致的 + //如果有做过处理,不执行商户的业务程序 + //注意: + //付款完成后,支付宝系统发送该交易状态通知 + } + //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— + + echo "success"; //请不要修改或删除 + +}else { + //验证失败 + echo "fail"; //请不要修改或删除 + +} + +?> + diff --git a/codes/agent/game-docker/api/payment/alipay/readme.txt b/codes/agent/game-docker/api/payment/alipay/readme.txt new file mode 100644 index 0000000..0bc255b --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/readme.txt @@ -0,0 +1,51 @@ +一、免责申明: +此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/alipay/return_url.php b/codes/agent/game-docker/api/payment/alipay/return_url.php new file mode 100644 index 0000000..b41d618 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/return_url.php @@ -0,0 +1,57 @@ +check($arr); + +/* 实际验证过程建议商户添加以下校验。 +1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号, +2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额), +3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email) +4、验证app_id是否为该商户本身。 +*/ +if($result) {//验证成功 + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + //请在这里加上商户的业务逻辑程序代码 + + //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— + //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 + + //商户订单号 + + $out_trade_no = htmlspecialchars($_GET['out_trade_no']); + + //支付宝交易号 + + $trade_no = htmlspecialchars($_GET['trade_no']); + + echo "验证成功
                外部订单号:".$out_trade_no; + + //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +} +else { + //验证失败 + echo "验证失败"; +} +?> +支付宝手机网站支付接口 + + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayDataDataserviceBillDownloadurlQueryContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayDataDataserviceBillDownloadurlQueryContentBuilder.php new file mode 100644 index 0000000..acaddf8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayDataDataserviceBillDownloadurlQueryContentBuilder.php @@ -0,0 +1,55 @@ +bizContentarr)){ + $this->bizContent = json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE); + } + return $this->bizContent; + } + + public function getBillType() + { + return $this->billType; + } + + public function setBillType($billType) + { + $this->billType = $billType; + $this->bizContentarr['bill_type'] = $billType; + } + + public function getBillDate() + { + return $this->billDate; + } + + public function setBillDate($billDate) + { + $this->billDate = $billDate; + $this->bizContentarr['bill_date'] = $billDate; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeCloseContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeCloseContentBuilder.php new file mode 100644 index 0000000..250196a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeCloseContentBuilder.php @@ -0,0 +1,68 @@ +bizContentarr)){ + $this->bizContent = json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE); + } + return $this->bizContent; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->bizContentarr['trade_no'] = $tradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizContentarr['out_trade_no'] = $outTradeNo; + } + public function getOperatorId() + { + return $this->operatorId; + } + + public function setOperatorId($operatorId) + { + $this->operatorId = $operatorId; + $this->bizContentarr['operator_id'] = $operatorId; + } + +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeFastpayRefundQueryContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeFastpayRefundQueryContentBuilder.php new file mode 100644 index 0000000..c93fdd8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeFastpayRefundQueryContentBuilder.php @@ -0,0 +1,65 @@ +bizContentarr)){ + $this->bizContent = json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE); + } + return $this->bizContent; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->bizContentarr['trade_no'] = $tradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizContentarr['out_trade_no'] = $outTradeNo; + } + public function getOutRequestNo() + { + return $this->outRequestNo; + } + public function setOutRequestNo($outRequestNo) + { + $this->outRequestNo = $outRequestNo; + $this->bizContentarr['out_request_no'] = $outRequestNo; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeQueryContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeQueryContentBuilder.php new file mode 100644 index 0000000..7a70c48 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeQueryContentBuilder.php @@ -0,0 +1,55 @@ +bizContentarr)){ + $this->bizContent = json_encode($this->bizContentarr,JSON_UNESCAPED_UNICODE); + } + return $this->bizContent; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->bizContentarr['trade_no'] = $tradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizContentarr['out_trade_no'] = $outTradeNo; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeRefundContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeRefundContentBuilder.php new file mode 100644 index 0000000..07e7693 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeRefundContentBuilder.php @@ -0,0 +1,98 @@ +bizContentarr)) + { + $this->bizContent = json_encode($this->bizContentarr, JSON_UNESCAPED_UNICODE); + } + return $this->bizContent; + } + + public function getTradeNo() + { + return $this->tradeNo; + } + + public function setTradeNo($tradeNo) + { + $this->tradeNo = $tradeNo; + $this->bizContentarr['trade_no'] = $tradeNo; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizContentarr['out_trade_no'] = $outTradeNo; + } + + public function getRefundAmount() + { + return $this->refundAmount; + } + + public function setRefundAmount($refundAmount) + { + $this->refundAmount = $refundAmount; + $this->bizContentarr['refund_amount'] = $refundAmount; + } + + public function getRefundReason() + { + return $this->refundReason; + } + + public function setRefundReason($refundReason) + { + $this->refundReason = $refundReason; + $this->bizContentarr['refund_reason'] = $refundReason; + } + + public function getOutRequestNo() + { + return $this->outRequestNo; + } + + public function setOutRequestNo($outRequestNo) + { + $this->outRequestNo = $outRequestNo; + $this->bizContentarr['out_request_no'] = $outRequestNo; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php new file mode 100644 index 0000000..f6f6a17 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php @@ -0,0 +1,137 @@ +bizContentarr)) + $this->bizContent = json_encode($this->bizContentarr, JSON_UNESCAPED_UNICODE); + + return $this->bizContent; + } + + public function __construct() + { + $this->bizContentarr['productCode'] = 'QUICK_WAP_PAY'; + } + + public function AlipayTradeWapPayContentBuilder() + { + $this->__construct(); + } + + public function getBody() + { + return $this->body; + } + + public function setBody($body) + { + $this->body = $body; + $this->bizContentarr['body'] = $body; + } + + public function setSubject($subject) + { + $this->subject = $subject; + $this->bizContentarr['subject'] = $subject; + } + + public function getSubject() + { + return $this->subject; + } + + public function getOutTradeNo() + { + return $this->outTradeNo; + } + + public function setOutTradeNo($outTradeNo) + { + $this->outTradeNo = $outTradeNo; + $this->bizContentarr['out_trade_no'] = $outTradeNo; + } + + public function setTimeExpress($timeExpress) + { + $this->timeExpress = $timeExpress; + $this->bizContentarr['timeout_express'] = $timeExpress; + } + + public function getTimeExpress() + { + return $this->timeExpress; + } + + public function setTotalAmount($totalAmount) + { + $this->totalAmount = $totalAmount; + $this->bizContentarr['total_amount'] = $totalAmount; + } + + public function getTotalAmount() + { + return $this->totalAmount; + } + + public function setSellerId($sellerId) + { + $this->sellerId = $sellerId; + $this->bizContentarr['seller_id'] = $sellerId; + } + + public function getSellerId() + { + return $this->sellerId; + } + + public function setPassbackParams($passbackParams) + { + $this->passbackParams = $passbackParams; + $this->bizContentarr['passback_params'] = $passbackParams; + } + + public function getPassbackParams() + { + return $this->passbackParams; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/ContentBuilder.php b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/ContentBuilder.php new file mode 100644 index 0000000..76e9477 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/buildermodel/ContentBuilder.php @@ -0,0 +1,50 @@ +appAuthToken = $appAuthToken; + } + + public function setNotifyUrl($notifyUrl) + { + $this->notifyUrl = $notifyUrl; + } + + public function getAppAuthToken() + { + return $this->appAuthToken; + } + + public function getNotifyUrl() + { + return $this->notifyUrl; + } + + public function setReturnUrl($returnUrl) + { + $this->returnUrl=$returnUrl; + } + + public function getReturnUrl() + { + return $this->returnUrl; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/close.php b/codes/agent/game-docker/api/payment/alipay/wappay/close.php new file mode 100644 index 0000000..907deda --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/close.php @@ -0,0 +1,215 @@ +setTradeNo($trade_no); + $RequestBuilder->setOutTradeNo($out_trade_no); + + $Response = new AlipayTradeService($config); + $result=$Response->Close($RequestBuilder); + return ; +} +?> + + + + 支付宝手机网站alipay.trade.close(统一收单交易关闭接口) + + + + +
                +

                支付宝手机网站交易关闭接口(接口名:alipay.trade.close )

                +
                +
                +
                +
                +
                +
                商户订单号 +:
                +
                + +
                +
                +
                支付宝交易号:
                +
                + +
                +
                +
                +
                + 注意:商户订单号和支付宝交易号不能同时为空。 trade_no、 out_trade_no如果同时存在优先取trade_no +
                +
                + + 如果您点击“确认”按钮,即表示您同意该次的执行操作。 +
                +
                +
                + + +
                + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/datadownioad.php b/codes/agent/game-docker/api/payment/alipay/wappay/datadownioad.php new file mode 100644 index 0000000..2ed78e9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/datadownioad.php @@ -0,0 +1,211 @@ +setBillType($bill_type); + $RequestBuilder->setBillDate($bill_date); + $Response = new AlipayTradeService($config); + $result=$Response->downloadurlQuery($RequestBuilder); + return ; +} +?> + + + + alipay.data.dataservice.bill.downloadurl.query(查询对账单下载地址) + + + + +
                +

                支付宝手机网站查询对账单下载地址(接口名:alipay.data.dataservice.bill.downloadurl.query)

                +
                +
                +
                +
                +
                +
                账单类型:
                +
                + +
                +
                +
                账单时间:
                +
                + +
                +
                +
                +
                + 注意:账单类型和账单时间不能为空!账单时间:日账单格式为yyyy-MM-dd,月账单格式为yyyy-MM。 +
                +
                + + 如果您点击“确认”按钮,即表示您同意该次的执行操作。 +
                +
                +
                + + +
                + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/pay.php b/codes/agent/game-docker/api/payment/alipay/wappay/pay.php new file mode 100644 index 0000000..468f033 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/pay.php @@ -0,0 +1,253 @@ +setBody($body); + $payRequestBuilder->setSubject($subject); + $payRequestBuilder->setOutTradeNo($out_trade_no); + $payRequestBuilder->setTotalAmount($total_amount); + $payRequestBuilder->setTimeExpress($timeout_express); + + $payResponse = new AlipayTradeService($config); + $result=$payResponse->wapPay($payRequestBuilder, $config['return_url'], $config['notify_url']); + + return ; +} +?> + + + + 支付宝手机网站支付接口 + + + + +
                +

                支付宝手机网站支付接口快速通道(接口名:alipay.trade.wap.pay)

                +
                +
                +
                +
                +
                +
                商户订单号 +:
                +
                + +
                +
                +
                订单名称 +:
                +
                + +
                +
                +
                付款金额 +:
                +
                + +
                +
                +
                商品描述:
                +
                + +
                +
                +
                +
                + + 如果您点击“确认”按钮,即表示您同意该次的执行操作。 +
                +
                +
                + + +
                + + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/query.php b/codes/agent/game-docker/api/payment/alipay/wappay/query.php new file mode 100644 index 0000000..b35f29a --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/query.php @@ -0,0 +1,215 @@ +setTradeNo($trade_no); + $RequestBuilder->setOutTradeNo($out_trade_no); + + $Response = new AlipayTradeService($config); + $result=$Response->Query($RequestBuilder); + return ; +} +?> + + + + 支付宝手机网站alipay.trade.query (统一收单线下交易查询) + + + + +
                +

                支付宝手机网站alipay.trade.query (统一收单线下交易查询)

                +
                +
                +
                +
                +
                +
                商户订单号 +:
                +
                + +
                +
                +
                支付宝交易号:
                +
                + +
                +
                +
                +
                + 注意:商户订单号和支付宝交易号不能同时为空。 trade_no、 out_trade_no如果同时存在优先取trade_no +
                +
                + + 如果您点击“确认”按钮,即表示您同意该次的执行操作。 +
                +
                +
                + + +
                + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/refund.php b/codes/agent/game-docker/api/payment/alipay/wappay/refund.php new file mode 100644 index 0000000..bec1b9d --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/refund.php @@ -0,0 +1,248 @@ +setTradeNo($trade_no); + $RequestBuilder->setOutTradeNo($out_trade_no); + $RequestBuilder->setRefundAmount($refund_amount); + $RequestBuilder->setRefundReason($refund_reason); + $RequestBuilder->setOutRequestNo($out_request_no); + + $Response = new AlipayTradeService($config); + $result=$Response->Refund($RequestBuilder); + return ; +} +?> + + + + 支付宝手机网站alipay.trade.refund (统一收单交易退款接口) + + + + +
                +

                支付宝手机网站alipay.trade.refund (统一收单交易退款接口)

                +
                +
                +
                +
                +
                +
                商户订单号 +:
                +
                + +
                +
                +
                支付宝交易号:
                +
                + +
                +
                +
                +
                + 注意:商户订单号和支付宝交易号不能同时为空。 trade_no、 out_trade_no如果同时存在优先取trade_no +
                +
                +
                退款金额:
                +
                + +
                +
                +
                退款原因:
                +
                + +
                +
                +
                退款单号:
                +
                + +
                +
                +
                +
                + 注意:如是部分退款,则参数退款单号(out_request_no)必传。 +
                +
                +
                + + 如果您点击“确认”按钮,即表示您同意该次的执行操作。 +
                +
                +
                + + +
                + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/refundquery.php b/codes/agent/game-docker/api/payment/alipay/wappay/refundquery.php new file mode 100644 index 0000000..bb50d64 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/refundquery.php @@ -0,0 +1,220 @@ +setTradeNo($trade_no); + $RequestBuilder->setOutTradeNo($out_trade_no); + $RequestBuilder->setOutRequestNo($out_request_no); + + $Response = new AlipayTradeService($config); + $result=$Response->refundQuery($RequestBuilder); + return ; +} +?> + + + + 支付宝手机网站交易退款查询 (alipay.trade.fastpay.refund.query) + + + + +
                +

                支付宝手机网站交易退款查询 (alipay.trade.fastpay.refund.query)

                +
                +
                +
                +
                +
                +
                退款请求号:
                +
                + +
                +
                商户订单号:
                +
                + +
                +
                +
                支付宝交易号:
                +
                + +
                +
                +
                +
                + 注意:退款请求号值(必传,退款时传的值,如果退款时没传则无法查询)商户订单号和支付宝交易号不能同时为空。 trade_no、 out_trade_no如果同时存在优先取trade_no +
                +
                + + 如果您点击“确认”按钮,即表示您同意该次的执行操作。 +
                +
                +
                + + +
                + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/alipay/wappay/service/AlipayTradeService.php b/codes/agent/game-docker/api/payment/alipay/wappay/service/AlipayTradeService.php new file mode 100644 index 0000000..978ec39 --- /dev/null +++ b/codes/agent/game-docker/api/payment/alipay/wappay/service/AlipayTradeService.php @@ -0,0 +1,260 @@ +gateway_url = $alipay_config['gatewayUrl']; + $this->appid = $alipay_config['app_id']; + $this->private_key = $alipay_config['merchant_private_key']; + $this->private_key_filepath = $alipay_config['merchant_private_key_filepath']; + $this->alipay_public_key = $alipay_config['alipay_public_key']; + $this->alipay_public_key_filepath = $alipay_config['alipay_public_key_filepath']; + $this->charset = $alipay_config['charset']; + $this->signtype = $alipay_config['sign_type']; + + if (empty($this->appid) || trim($this->appid) == "") + throw new Exception("appid should not be NULL!"); + if ((empty($this->private_key) || trim($this->private_key) == "") && (empty($this->private_key_filepath) || trim($this->private_key_filepath) == '')) + throw new Exception("private_key should not be NULL!"); + if ((empty($this->alipay_public_key) || trim($this->alipay_public_key) == "") && (empty($this->alipay_public_key_filepath) || trim($this->alipay_public_key_filepath) == '')) + throw new Exception("alipay_public_key should not be NULL!"); + if (empty($this->charset) || trim($this->charset) == "") + throw new Exception("charset should not be NULL!"); + if (empty($this->gateway_url) || trim($this->gateway_url) == "") + throw new Exception("gateway_url should not be NULL!"); + } + + function AlipayWapPayService($alipay_config) + { + $this->__construct($alipay_config); + } + + /** + * alipay.trade.wap.pay + * @param AlipayTradeWapPayContentBuilder $builder 业务参数,使用buildmodel中的对象生成。 + * @param string $return_url 同步跳转地址,公网可访问 + * @param string $notify_url 异步通知地址,公网可以访问 + * @return string $response 支付宝返回的信息 + */ + function wapPay($builder, $return_url, $notify_url) + { + $biz_content = $builder->getBizContent(); + /// 打印业务参数 + //$this->writeLog($biz_content); + + $request = new AlipayTradeWapPayRequest(); + + $request->setNotifyUrl($notify_url); + $request->setReturnUrl($return_url); + $request->setBizContent($biz_content); + + // 首先调用支付api + $response = $this->aopclientRequestExecute($request, true); + // $response = $response->alipay_trade_wap_pay_response; + return $response; + } + + function aopclientRequestExecute($request, $ispage = false) + { + $aop = new AopClient(); + $aop->gatewayUrl = $this->gateway_url; + $aop->appId = $this->appid; + $aop->rsaPrivateKey = $this->private_key; + $aop->rsaPrivateKeyFilePath = $this->private_key_filepath; + $aop->alipayrsaPublicKey = $this->alipay_public_key; + $aop->alipayPublicKey = $this->alipay_public_key_filepath; + $aop->apiVersion = "1.0"; + $aop->postCharset = $this->charset; + $aop->format = $this->format; + $aop->signType = $this->signtype; + // 开启页面信息输出 + $aop->debugInfo = true; + if ($ispage) + { + $result = $aop->pageExecute($request, "post"); + echo $result; + } + else + $result = $aop->Execute($request); + + /// 打开后,将报文写入log文件 + //$this->writeLog("response: " . var_export($result, true)); + return $result; + } + + /** + * alipay.trade.query (统一收单线下交易查询) + * @param $builder 业务参数,使用buildmodel中的对象生成。 + * @return $response 支付宝返回的信息 + */ + function Query($builder) + { + $biz_content = $builder->getBizContent(); + /// 打印业务参数 + //$this->writeLog($biz_content); + $request = new AlipayTradeQueryRequest(); + $request->setBizContent($biz_content); + + // 首先调用支付api + $response = $this->aopclientRequestExecute($request); + $response = $response->alipay_trade_query_response; + //var_dump($response); + return $response; + } + + /** + * alipay.trade.refund (统一收单交易退款接口) + * @param AlipayTradeRefundContentBuilder_wappay $builder 业务参数,使用buildmodel中的对象生成。 + * @return string $response 支付宝返回的信息 + */ + function Refund($builder) + { + $biz_content = $builder->getBizContent(); + /// 打印业务参数 + //$this->writeLog($biz_content); + $request = new AlipayTradeRefundRequest(); + $request->setBizContent($biz_content); + + /// 首先调用支付api + $response = $this->aopclientRequestExecute($request); + $response = $response->alipay_trade_refund_response; + //var_dump($response); + return $response; + } + + /** + * alipay.trade.close (统一收单交易关闭接口) + * @param $builder 业务参数,使用buildmodel中的对象生成。 + * @return string $response 支付宝返回的信息 + */ + function Close($builder) + { + $biz_content = $builder->getBizContent(); + /// 打印业务参数 + //$this->writeLog($biz_content); + $request = new AlipayTradeCloseRequest(); + $request->setBizContent($biz_content); + + // 首先调用支付api + $response = $this->aopclientRequestExecute($request); + $response = $response->alipay_trade_close_response; + //var_dump($response); + return $response; + } + + /** + * 退款查询 alipay.trade.fastpay.refund.query (统一收单交易退款查询) + * @param $builder 业务参数,使用buildmodel中的对象生成。 + * @return $response 支付宝返回的信息 + */ + function refundQuery($builder) + { + $biz_content = $builder->getBizContent(); + /// 打印业务参数 + //$this->writeLog($biz_content); + $request = new AlipayTradeFastpayRefundQueryRequest(); + $request->setBizContent($biz_content); + + // 首先调用支付api + $response = $this->aopclientRequestExecute($request); + //var_dump($response); + return $response; + } + + /** + * alipay.data.dataservice.bill.downloadurl.query (查询对账单下载地址) + * @param $builder 业务参数,使用buildmodel中的对象生成。 + * @return $response 支付宝返回的信息 + */ + function downloadurlQuery($builder) + { + $biz_content = $builder->getBizContent(); + /// 打印业务参数 + //$this->writeLog($biz_content); + $request = new alipaydatadataservicebilldownloadurlqueryRequest(); + $request->setBizContent($biz_content); + + // 首先调用支付api + $response = $this->aopclientRequestExecute($request); + $response = $response->alipay_data_dataservice_bill_downloadurl_query_response; + //var_dump($response); + return $response; + } + + /** + * 验签方法 + * @param $arr 验签支付宝返回的信息,使用支付宝公钥。 + * @return boolean + */ + function check($arr) + { + $aop = new AopClient(); + $aop->alipayrsaPublicKey = $this->alipay_public_key; + $aop->alipayPublicKey = $this->alipay_public_key_filepath; + $result = $aop->rsaCheckV1($arr, $this->alipay_public_key_filepath, $this->signtype); + return $result; + } + + //请确保项目文件有可写权限,不然打印不了日志。 + function writeLog($text) + { + // $text=iconv("GBK", "UTF-8//IGNORE", $text); + //$text = characet ( $text ); + file_put_contents(dirname(__FILE__) . DIRECTORY_SEPARATOR . "./../../log.txt", date("Y-m-d H:i:s") . " " . $text . "\r\n", FILE_APPEND); + } + + + /** *利用google api生成二维码图片 + * $content:二维码内容参数 + * $size:生成二维码的尺寸,宽度和高度的值 + * $lev:可选参数,纠错等级 + * $margin:生成的二维码离边框的距离 + */ + function create_erweima($content, $size = '200', $lev = 'L', $margin = '0') + { + $content = urlencode($content); + $image = ''; + return $image; + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/baifubao/bfb_pay.cfg.php b/codes/agent/game-docker/api/payment/baifubao/bfb_pay.cfg.php new file mode 100644 index 0000000..7fdb7f1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/baifubao/bfb_pay.cfg.php @@ -0,0 +1,32 @@ +"; + const SIGN_METHOD_MD5 = 1; + const SIGN_METHOD_SHA1 = 2; + const BFB_PAY_INTERFACE_SERVICE_ID = 1; + const BFB_QUERY_INTERFACE_SERVICE_ID = 11; + const BFB_INTERFACE_VERSION = 2; + const BFB_INTERFACE_ENCODING = 1; + const BFB_INTERFACE_OUTPUT_FORMAT = 1; + const BFB_INTERFACE_CURRENTCY = 1; +} + +sp_conf::$LOG_FILE = IA_ROOT . '/data/logs/bfb_' . date('Ymd') . '.log'; +sp_conf::$SP_NO = $payment['mchid']; +sp_conf::$SP_KEY_FILE = $payment['signkey']; \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/baifubao/bfb_sdk.php b/codes/agent/game-docker/api/payment/baifubao/bfb_sdk.php new file mode 100644 index 0000000..486993d --- /dev/null +++ b/codes/agent/game-docker/api/payment/baifubao/bfb_sdk.php @@ -0,0 +1,339 @@ +log(sprintf('invalid params, params:[%s]', print_r($params, true))); + return false; + } + if (!in_array($url, + array ( + sp_conf::BFB_PAY_DIRECT_LOGIN_URL, + sp_conf::BFB_PAY_DIRECT_NO_LOGIN_URL, + sp_conf::BFB_PAY_WAP_DIRECT_URL + ))) { + $this->log( + sprintf('invalid url[%s], bfb just provide three kind of pay url', + $url)); + return false; + } + + $pay_url = $url; + + if (false === ($sign = $this->make_sign($params))) { + return false; + } + $this->order_no = $params ['order_no']; + $params ['sign'] = $sign; + $params_str = http_build_query($params); + $this->log( + sprintf('the params that create baifubao pay order is [%s]', + $params_str)); + + return $pay_url . '?' . $params_str; + } + + + function check_bfb_pay_result_notify() { + if (empty($_GET) || !isset($_GET ['sp_no']) || !isset( + $_GET ['order_no']) || !isset($_GET ['bfb_order_no']) || + !isset($_GET ['bfb_order_create_time']) || + !isset($_GET ['pay_time']) || !isset($_GET ['pay_type']) || + !isset($_GET ['total_amount']) || !isset($_GET ['fee_amount']) || + !isset($_GET ['currency']) || !isset($_GET ['pay_result']) || + !isset($_GET ['input_charset']) || !isset($_GET ['version']) || + !isset($_GET ['sign']) || !isset($_GET ['sign_method'])) { + $this->err_msg = 'return_url页面的请求的必选参数不足'; + $this->log( + sprintf('missing the params of return_url page, params[%s]', + print_r($_GET))); + } + $arr_params = $_GET; + $this->order_no = $arr_params ['order_no']; + if (sp_conf::$SP_NO != $arr_params ['sp_no']) { + $this->err_msg = '百付宝的支付结果通知中商户ID无效,该通知无效'; + $this->log( + 'the id in baifubao notify is wrong, this notify is invaild'); + return false; + } + if (sp_conf::BFB_PAY_RESULT_SUCCESS != $arr_params ['pay_result']) { + $this->err_msg = '百付宝的支付结果通知中商户支付结果异常,该通知无效'; + $this->log( + 'the pay result in baifubao notify is wrong, this notify is invaild'); + return false; + } + + if (false === $this->check_sign($arr_params)) { + $this->err_msg = '百付宝后台通知签名校验失败'; + $this->log('baifubao notify sign failed'); + return false; + } + $this->log('baifubao notify sign success'); + + + $order_no = $arr_params ['order_no']; + $order_state = $this->query_order_state($order_no); + $this->log(sprintf('order state in sp server is [%s]', $order_state)); + if (sp_conf::SP_PAY_RESULT_WAITING == $order_state) { + $this->log('the order state is right, the order is waiting for pay'); + return true; + } elseif (sp_conf::SP_PAY_RESULT_SUCCESS == $order_state) { + $this->log('the order state is wrong, this order has been paid'); + $this->err_msg = '订单[%s]已经处理,此百付宝后台支付通知为重复通知'; + return false; + } else { + $this->log( + sprintf('the order state is wrong, it is [%s]', + $order_state)); + $this->err_msg = '订单[%s]状态异常'; + return false; + } + return false; + } + + + function notify_bfb() { + $rep_str = "" . sp_conf::BFB_NOTIFY_META . + "

                这是一个return_url页面

                "; + echo "$rep_str"; + } + + + private function query_order_state($order_no) { + + return sp_conf::SP_PAY_RESULT_WAITING; + } + + + function query_baifubao_pay_result_by_order_no($order_no) { + $params = array ( + 'service_code' => sp_conf::BFB_QUERY_INTERFACE_SERVICE_ID, 'sp_no' => sp_conf::$SP_NO, + 'order_no' => $order_no, + 'output_type' => sp_conf::BFB_INTERFACE_OUTPUT_FORMAT, 'output_charset' => sp_conf::BFB_INTERFACE_ENCODING, 'version' => sp_conf::BFB_INTERFACE_VERSION, + 'sign_method' => sp_conf::SIGN_METHOD_MD5 + ); + + + if (false === ($sign = $this->make_sign($params))) { + $this->log( + 'make sign for query baifubao pay result interface failed'); + return false; + } + $params ['sign'] = $sign; + $params_str = http_build_query($params); + + $query_url = sp_conf::BFB_QUERY_ORDER_URL . '?' . $params_str; + $this->log( + sprintf('the url of query baifubao pay result is [%s]', + $query_url)); + $content = $this->request($query_url); + $retry = 0; + while (empty($content) && $retry < sp_conf::BFB_QUERY_RETRY_TIME) { + $content = $this->request($query_url); + $retry++; + } + if (empty($content)) { + $this->err_msg = '调用百付宝订单号查询接口失败'; + return false; + } + $this->log( + sprintf('the result from baifubao query pay result is [%s]', + $content)); + $response_arr = json_decode(json_encode(isimplexml_load_string($content)), true); + foreach ($response_arr as &$value) { + if (empty($value) && is_array($value)) { + $value = ''; + } + } + unset($value); + if (empty($response_arr) || !isset($response_arr ['query_status']) || + !isset($response_arr ['sp_no']) || + !isset($response_arr ['order_no']) || + !isset($response_arr ['bfb_order_no']) || + !isset($response_arr ['bfb_order_create_time']) || + !isset($response_arr ['pay_time']) || + !isset($response_arr ['pay_type']) || + !isset($response_arr ['goods_name']) || + !isset($response_arr ['total_amount']) || + !isset($response_arr ['fee_amount']) || + !isset($response_arr ['currency']) || + !isset($response_arr ['pay_result']) || + !isset($response_arr ['sign']) || + !isset($response_arr ['sign_method'])) { + $this->err_msg = sprintf('百付宝的订单查询接口查询失败,返回数据为[%s]', + print_r($response_arr, true)); + return false; + } + if (0 != $response_arr ['query_status']) { + $this->log( + sprintf( + 'query the baifubao pay result interface faild, the query_status is [%s]', + $response_arr ['query_status'])); + $this->err_msg = sprintf('百付宝的订单查询接口查询失败,查询状态为[%s]', + $response_arr ['query_status']); + return false; + } + if (sp_conf::$SP_NO != $response_arr ['sp_no']) { + $this->log( + 'the sp_no returned from baifubao pay result interface is invaild'); + $this->err_msg = '百付宝的订单查询接口的响应数据中商户ID无效,该通知无效'; + return false; + } + if (sp_conf::BFB_PAY_RESULT_SUCCESS != $response_arr ['pay_result']) { + $this->log( + sprintf( + 'the pay result returned from baifubao pay result interface is invalid, is [%s]', + $response_arr ['pay_result'])); + $this->err_msg = '百付宝的订单查询接口的响应数据中商户支付结果异常,该通知无效'; + return false; + } + + $response_arr ['goods_name'] = iconv("UTF-8", "GBK", + $response_arr ['goods_name']); + if (isset($response_arr ['buyer_sp_username'])) { + $response_arr ['buyer_sp_username'] = iconv("UTF-8", "GBK", + $response_arr ['buyer_sp_username']); + } + if (false === $this->check_sign($response_arr)) { + $this->log( + 'sign the result returned from baifubao pay result interface failed'); + $this->err_msg = '百付宝订单查询接口响应数据签名校验失败'; + return false; + } + + return print_r($response_arr, true); + } + + + private function make_sign($params) { + if (is_array($params)) { + if (ksort($params)) { + if(false === ($params ['key'] = $this->get_sp_key())){ + return false; + } + $arr_temp = array (); + foreach ($params as $key => $val) { + $arr_temp [] = $key . '=' . $val; + } + $sign_str = implode('&', $arr_temp); + if ($params ['sign_method'] == sp_conf::SIGN_METHOD_MD5) { + return md5($sign_str); + } else if ($params ['sign_method'] == sp_conf::SIGN_METHOD_SHA1) { + return sha1($sign_str); + } else{ + $this->log('unsupported sign method'); + $this->err_msg = '签名方法不支持'; + return false; + } + } else { + $this->log('ksort failed'); + $this->err_msg = '表单参数数组排序失败'; + return false; + } + } else { + $this->log('the params of making sign should be a array'); + $this->err_msg = '生成签名的参数必须是一个数组'; + return false; + } + } + + + private function check_sign($params) { + $sign = $params ['sign']; + unset($params ['sign']); + foreach ($params as &$value) { + $value = urldecode($value); } + unset($value); + if (false !== ($my_sign = $this->make_sign($params))) { + if (0 !== strcmp($my_sign, $sign)) { + return false; + } + return true; + } else { + return false; + } + } + + + private function get_sp_key() { + return sp_conf::$SP_KEY_FILE; + + } + + + function request($url) { + $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + + $res = curl_exec($curl); $err = curl_error($curl); + + if (false === $res || !empty($err)) { + $info = curl_getinfo($curl); + curl_close($curl); + + $this->log( + sprintf( + 'curl the baifubao pay result interface failed, err_msg [%s]', + $info)); + $this->err_msg = $info; + return false; + } + curl_close($curl); return $res; + } + + + function log($msg) { + if(defined(sp_conf::$LOG_FILE)) { + error_log( + sprintf("[%s] [order_no: %s] : %s\n", date("Y-m-d H:i:s"), + $this->order_no, $msg)); + } + else { + error_log( + sprintf("[%s] [order_no: %s] : %s\n", date("Y-m-d H:i:s"), + $this->order_no, $msg), 3, sp_conf::$LOG_FILE); + } + } +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/baifubao/notify.php b/codes/agent/game-docker/api/payment/baifubao/notify.php new file mode 100644 index 0000000..721a9ff --- /dev/null +++ b/codes/agent/game-docker/api/payment/baifubao/notify.php @@ -0,0 +1,72 @@ +app('common'); +load()->app('template'); + +$setting = uni_setting($_W['uniacid'], array('payment')); +if(!is_array($setting['payment'])) { + exit('没有设定支付参数.'); +} +$payment = $setting['payment']['baifubao']; +require 'bfb_sdk.php'; +$bfb_sdk = new bfb_sdk(); +if (!empty($_GPC['pay_result']) && $_GPC['pay_result'] == '1') { + if (true === $bfb_sdk->check_bfb_pay_result_notify()) { + $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid'; + $params = array(); + $params[':uniontid'] = $_GPC['order_no']; + $log = pdo_fetch($sql, $params); + if(!empty($log) && $log['status'] == '0') { + $log['tag'] = iunserializer($log['tag']); + $log['tag']['bfb_order_no'] = $_POST['bfb_order_no']; + $record = array(); + $record['status'] = 1; + $record['tag'] = iserializer($log['tag']); + pdo_update('core_paylog', $record, array('plid' => $log['plid'])); + + if($log['is_usecard'] == 1 && $log['card_type'] == 1 && !empty($log['encrypt_code']) && $log['acid']) { + load()->classs('coupon'); + $acc = new coupon($log['acid']); + $codearr['encrypt_code'] = $log['encrypt_code']; + $codearr['module'] = $log['module']; + $codearr['card_id'] = $log['card_id']; + $acc->PayConsumeCode($codearr); + } + if($log['is_usecard'] == 1 && $log['card_type'] == 2) { + $now = time(); + $log['card_id'] = intval($log['card_id']); + pdo_query('UPDATE ' . tablename('activity_coupon_record') . " SET status = 2, usetime = {$now}, usemodule = '{$log['module']}' WHERE uniacid = :aid AND couponid = :cid AND uid = :uid AND status = 1 LIMIT 1", array(':aid' => $_W['uniacid'], ':uid' => $log['openid'], ':cid' => $log['card_id'])); + } + + $site = WeUtility::createModuleSite($log['module']); + if(!is_error($site)) { + $method = 'payResult'; + if (method_exists($site, $method)) { + $ret = array(); + $ret['weid'] = $log['uniacid']; + $ret['uniacid'] = $log['uniacid']; + $ret['result'] = 'success'; + $ret['type'] = $log['type']; + $ret['from'] = 'notify'; + $ret['tid'] = $log['tid']; + $ret['uniontid'] = $log['uniontid']; + $ret['user'] = $log['openid']; + $ret['fee'] = $log['fee']; + $ret['tag'] = $log['tag']; + $site->$method($ret); + $bfb_sdk->notify_bfb(); + exit('success'); + } + } + } + } +} +$bfb_sdk->notify_bfb(); +exit('fail'); \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/baifubao/pay.php b/codes/agent/game-docker/api/payment/baifubao/pay.php new file mode 100644 index 0000000..473e5d3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/baifubao/pay.php @@ -0,0 +1,89 @@ +app('common'); +load()->app('template'); + +$sl = $_GPC['ps']; +$params = @json_decode(base64_decode($sl), true); + +$setting = uni_setting($_W['uniacid'], array('payment')); +if(!is_array($setting['payment'])) { + exit('没有设定支付参数.'); +} +$payment = $setting['payment']['baifubao']; +require 'bfb_sdk.php'; + +if (!empty($_GPC['pay_result']) && $_GPC['pay_result'] == '1') { + $bfb_sdk = new bfb_sdk(); + if (true === $bfb_sdk->check_bfb_pay_result_notify()) { + $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid'; + $params = array(); + $params[':uniontid'] = $_GPC['order_no']; + $log = pdo_fetch($sql, $params); + $site = WeUtility::createModuleSite($log['module']); + if(!is_error($site)) { + $method = 'payResult'; + if (method_exists($site, $method)) { + $ret = array(); + $ret['weid'] = $log['uniacid']; + $ret['uniacid'] = $log['uniacid']; + $ret['result'] = 'success'; + $ret['type'] = $log['type']; + $ret['from'] = 'return'; + $ret['tid'] = $log['tid']; + $ret['uniontid'] = $log['uniontid']; + $ret['user'] = $log['openid']; + $ret['fee'] = $log['fee']; + $ret['tag'] = $log['tag']; + $site->$method($ret); + $bfb_sdk->notify_bfb(); + exit('success'); + } + } + } +} + +$sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid'; +$paylog = pdo_fetch($sql, array(':plid' => $params['tid'])); +if(!empty($paylog) && $paylog['status'] != '0') { + exit('这个订单已经支付成功, 不需要重复支付.'); +} +$auth = sha1($sl . $paylog['uniacid'] . $_W['config']['setting']['authkey']); +if($auth != $_GPC['auth']) { + exit('参数传输错误.'); +} +$_W['openid'] = intval($paylog['openid']); +$bfb_sdk = new bfb_sdk(); + +$params = array ( + 'service_code' => sp_conf::BFB_PAY_INTERFACE_SERVICE_ID, + 'sp_no' => sp_conf::$SP_NO, + 'order_create_time' => date("YmdHis"), + 'order_no' => $paylog['uniontid'], + 'goods_name' => iconv('utf-8', 'gbk', $params['title']), + 'total_amount' => $params['fee'] * 100, + 'currency' => sp_conf::BFB_INTERFACE_CURRENTCY, + 'buyer_sp_username' => $_W['openid'], + 'return_url' => $_W['siteroot'] . 'notify.php', + 'page_url' => $_W['siteroot'] . 'pay.php', + 'pay_type' => '2', + 'bank_no' => '201', + 'expire_time' => date('YmdHis', strtotime('+15 day')), + 'input_charset' => sp_conf::BFB_INTERFACE_ENCODING, + 'version' => sp_conf::BFB_INTERFACE_VERSION, + 'sign_method' => sp_conf::SIGN_METHOD_MD5, + 'extra' => $_W['uniacid'], +); + +$order_url = $bfb_sdk->create_baifubao_pay_order_url($params, sp_conf::BFB_PAY_WAP_DIRECT_URL); +if(false !== $order_url) { + echo ""; + exit; +} \ 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 new file mode 100644 index 0000000..cdd8e1e --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/.project @@ -0,0 +1,17 @@ + + + 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 new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/codes/agent/game-docker/api/payment/ipay/CheckLogin.php b/codes/agent/game-docker/api/payment/ipay/CheckLogin.php new file mode 100644 index 0000000..8e5782f --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/CheckLogin.php @@ -0,0 +1,33 @@ + diff --git a/codes/agent/game-docker/api/payment/ipay/ContractAuthentication.php b/codes/agent/game-docker/api/payment/ipay/ContractAuthentication.php new file mode 100644 index 0000000..2ac69db --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/ContractAuthentication.php @@ -0,0 +1,39 @@ + diff --git a/codes/agent/game-docker/api/payment/ipay/ContractCancel.php b/codes/agent/game-docker/api/payment/ipay/ContractCancel.php new file mode 100644 index 0000000..d79e9aa --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/ContractCancel.php @@ -0,0 +1,37 @@ + diff --git a/codes/agent/game-docker/api/payment/ipay/QueryContract.php b/codes/agent/game-docker/api/payment/ipay/QueryContract.php new file mode 100644 index 0000000..2f84a47 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/QueryContract.php @@ -0,0 +1,38 @@ + diff --git a/codes/agent/game-docker/api/payment/ipay/QueryTransdataByAppidAndCporderid.php b/codes/agent/game-docker/api/payment/ipay/QueryTransdataByAppidAndCporderid.php new file mode 100644 index 0000000..376723e --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/QueryTransdataByAppidAndCporderid.php @@ -0,0 +1,40 @@ + diff --git a/codes/agent/game-docker/api/payment/ipay/Test.php b/codes/agent/game-docker/api/payment/ipay/Test.php new file mode 100644 index 0000000..312d577 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/Test.php @@ -0,0 +1,19 @@ + diff --git a/codes/agent/game-docker/api/payment/ipay/TradingResultsNotice.php b/codes/agent/game-docker/api/payment/ipay/TradingResultsNotice.php new file mode 100644 index 0000000..1572e7e --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/TradingResultsNotice.php @@ -0,0 +1,60 @@ +appid; + $appuserid = $arr->appuserid; + $cporderid = $arr->cporderid; + $cpprivate = $arr->cpprivate; + $money = $arr->paytype; + $result = $arr->result; + $transid = $arr->transid; + $transtime = $arr->transtime; + $waresid = $arr->waresid; + echo "$appid\n"; + echo "$appuserid\n"; + echo "$cporderid\n"; + echo "$cpprivate\n"; + echo "$money\n"; + echo "$result\n"; + echo "$transid\n"; + echo "$transtime\n"; + echo "$waresid\n"; + } + } + +} + +testResult(); +?> diff --git a/codes/agent/game-docker/api/payment/ipay/base.php b/codes/agent/game-docker/api/payment/ipay/base.php new file mode 100644 index 0000000..47185f2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/base.php @@ -0,0 +1,200 @@ + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/ipay/config.php b/codes/agent/game-docker/api/payment/ipay/config.php new file mode 100644 index 0000000..de92913 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/config.php @@ -0,0 +1,44 @@ + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/ipay/index.php b/codes/agent/game-docker/api/payment/ipay/index.php new file mode 100644 index 0000000..5519d4a --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/index.php @@ -0,0 +1,11 @@ + + diff --git a/codes/agent/game-docker/api/payment/ipay/key/3019229652/private.txt b/codes/agent/game-docker/api/payment/ipay/key/3019229652/private.txt new file mode 100644 index 0000000..fef58a1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/key/3019229652/private.txt @@ -0,0 +1 @@ +MIICXQIBAAKBgQCi4cy1Xqt8aOPLANjeY2jFPHMNJP0PNns9X662Oye8I4ApOlLC16b30aRBaKpCwIiWlbREBsVsmIEK8n50wc+49CrHXV6P8btA0fKvd/EDmRP8AdHk6F9ze/iwHQM2+Yj0BqsWgUCwOwKdIWtEQqPqavH7/lPdxaJXri3zl6rMXwIDAQABAoGAI+GD++xH8JcWnzCnlY3mlZR0b8/XI1PIIEQEs8YiQbK8V9iuRJfHA06eVX5eC2hobmu6E0Y+lWae/q9epg/P1z7MdFUEwdW2OoDorl7Yf4xtLe2t1LcIZ+9Zvx/49mPNVpVmNEzR73glH5jMQ2tvvGHe3EOn4xkxZFPW/32IuZkCQQDo0kW/s6V7z7JXTqrWCFxo9KbQCKmZNRFKEVTeoUrowrGMrhPWabaMbN5NbvfqVn8fbdt0VcMptOmWPTSlIIbNAkEAsxkKVzK/SsbLOim/4BSNEdu7Nd5lnue6jxMO0qPYFeLa2qaAEbM9YdRTtYqzqHwX8Vx5uRGmMhfIeHN6ywdn2wJBAKXxEWOkcIOBstRFrr/kr7DjB25pbjBTwaHwHnSbs5+Y/SGPBXaiXElUY1H/kNZGlk7ZZzxQ0EyOtJqvvzEesNUCQF6+yneiwwvd6rkUSQtUE+T0py8yPfQ4hrsVy+um/bNmVX0CRBIZDknot3f8rlpde5UV5NcA/TjW2BjQjo9Fla0CQQDUqVtXDDt/10s/8mWDKkZIVwDdsYHBC1E+FEw2CQMB/yOT4ve/cmPzbH26ysbqnZoaZelbetwLVe5avYeL0Nh5 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/ipay/key/3019229652/public.txt b/codes/agent/game-docker/api/payment/ipay/key/3019229652/public.txt new file mode 100644 index 0000000..c06e349 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/key/3019229652/public.txt @@ -0,0 +1 @@ +MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCIouv++6h+CL/kGDxldXMqb92a3/tszmPzGZ4DkwZhNAkOxLuOTWkYaw5+TGktxnNsjU6YJvC88vH3pYsnmHvCheJnEmj3GNamjig5c7QrzeCgBG974SbIrF7iY/tsdE6YQPfw+Q0oVf+sfFk61wPToQPcQgsJw7tYQrFC+jqe9QIDAQAB \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/ipay/testdemo.php b/codes/agent/game-docker/api/payment/ipay/testdemo.php new file mode 100644 index 0000000..c815a91 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/testdemo.php @@ -0,0 +1,16 @@ +"; + print_r($respJson); + // µɹ֮ȡ transid + $transid=$respJson->transid; + } +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/ipay/trade.php b/codes/agent/game-docker/api/payment/ipay/trade.php new file mode 100644 index 0000000..7f975d8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/ipay/trade.php @@ -0,0 +1,86 @@ +"; + print_r($respJson); + // 下单成功之后获取 transid + $transid = $respJson->transid; + } + +} + +//此为H5 和PC 版本调收银台时需要的参数组装函数 特别提醒的是 下面的函数中有 $h5url 和$pcurl 两个url地址。 只需要更换这两个地址就可以 调出 H5 收银台和PC版本收银台。 +function H5orPCpay() +{ + global $h5url, $pcurl, $appkey, $platpkey, $transid, $appid;//得到transid 再次组装数据并签名。 + echo "开始组装号调用支付接口的参数"; + //下单接口 + $orderReq['tid'] = $transid; + + $orderReq['app'] = $appid; // appid + + $orderReq['url_r'] = 'http://www.baidu.com'; //支付成功后支付回调URL地址 + + $orderReq['url_h'] = 'http://www.baidu.com'; //返回商户URL地址 + //组装请求报文 对数据签名 + $reqData = h5composeReq($orderReq, $appkey); + + echo "参数组装完成:请用浏览器访问该链接:$h5url$reqData\n";//这里组装的最终数据 就可以用浏览器访问调出收银台。 + echo ""; +} + +//在使用H5 Iframe版本时 生成签名数据 次函数只适用于H5 Iframe版本支付。 +function H5IframeSign($transid, $redirecturl, $cpurl, $appkey) +{ + $content = trim($transid) . '' . trim($redirecturl) . '' . trim($cpurl);//拼接$transid $redirecturl $cpurl + $appkey = formatPriKey($appkey); + $sign = sign($content, $appkey); + return $sign; +} + + +testOrder(); +H5orPCpay(); + + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/kindeditor-min.js b/codes/agent/game-docker/api/payment/resource/script/kindeditor/kindeditor-min.js new file mode 100644 index 0000000..2279551 --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/kindeditor-min.js @@ -0,0 +1,182 @@ +/* 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=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,""")}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()+ +d.substr(1):d});return a}function ya(a){function b(a){a=parseInt(a,10).toString(16).toUpperCase();return a.length>1?a:"0"+a}return a.replace(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/ig,function(a,d,e,g){return"#"+b(d)+b(e)+b(g)})}function u(a,b){var b=b===i?",":b,c={},d=Z(a)?a:a.split(b),e;m(d,function(a,b){if(e=/^(\d+)\.\.(\d+)$/.exec(b))for(var d=parseInt(e[1],10);d<=parseInt(e[2],10);d++)c[d.toString()]=!0;else c[b]=!0});return c}function Ja(a,b){return Array.prototype.slice.call(a,b||0)} +function l(a,b){return a===i?b:a}function E(a,b,c){c||(c=b,b=null);var d;if(b){var e=function(){};e.prototype=b.prototype;d=new e;m(c,function(a,b){d[a]=b})}else d=c;d.constructor=a;a.prototype=d;a.parent=b?b.prototype:null}function eb(a){var b;if(b=/\{[\s\S]*\}|\[[\s\S]*\]/.exec(a))a=b[0];b=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;b.lastIndex=0;b.test(a)&&(a=a.replace(b,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})); +if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return eval("("+a+")");throw"JSON parse error";}function Rb(a,b,c){a.addEventListener?a.addEventListener(b,c,fb):a.attachEvent&&a.attachEvent("on"+b,c)}function za(a,b,c){a.removeEventListener?a.removeEventListener(b,c,fb):a.detachEvent&&a.detachEvent("on"+b,c)}function gb(a,b){this.init(a,b)}function hb(a){try{delete a[$]}catch(b){a.removeAttribute&& +a.removeAttribute($)}}function aa(a,b,c){if(b.indexOf(",")>=0)m(b.split(","),function(){aa(a,this,c)});else{var d=a[$]||null;d||(a[$]=++ib,d=ib);v[d]===i&&(v[d]={});var e=v[d][b];e&&e.length>0?za(a,b,e[0]):(v[d][b]=[],v[d].el=a);e=v[d][b];e.length===0&&(e[0]=function(b){var c=b?new gb(a,b):i;m(e,function(b,d){b>0&&d&&d.call(a,c)})});J(c,e)<0&&e.push(c);Rb(a,b,e[0])}}function ha(a,b,c){if(b&&b.indexOf(",")>=0)m(b.split(","),function(){ha(a,this,c)});else{var d=a[$]||null;if(d)if(b===i)d in v&&(m(v[d], +function(b,c){b!="el"&&c.length>0&&za(a,b,c[0])}),delete v[d],hb(a));else if(v[d]){var e=v[d][b];if(e&&e.length>0){c===i?(za(a,b,e[0]),delete v[d][b]):(m(e,function(a,b){a>0&&b===c&&e.splice(a,1)}),e.length==1&&(za(a,b,e[0]),delete v[d][b]));var g=0;m(v[d],function(){g++});g<2&&(delete v[d],hb(a))}}}}function jb(a,b){if(b.indexOf(",")>=0)m(b.split(","),function(){jb(a,this)});else{var c=a[$]||null;if(c){var d=v[c][b];if(v[c]&&d&&d.length>0)d[0]()}}}function Ka(a,b,c){b=/^\d{2,}$/.test(b)?b:b.toUpperCase().charCodeAt(0); +aa(a,"keydown",function(d){d.ctrlKey&&d.which==b&&!d.shiftKey&&!d.altKey&&(c.call(a),d.stop())})}function ba(a){for(var b={},c=/\s*([\w\-]+)\s*:([^;]*)(;|$)/g,d;d=c.exec(a);){var e=B(d[1].toLowerCase());d=B(ya(d[2]));b[e]=d}return b}function I(a){for(var b={},c=/\s+(?:([\w\-:]+)|(?:([\w\-:]+)=([^\s"'<>]+))|(?:([\w\-:"]+)="([^"]*)")|(?:([\w\-:"]+)='([^']*)'))(?=(?:\s|\/|>)+)/g,d;d=c.exec(a);){var e=(d[1]||d[2]||d[4]||d[6]).toLowerCase();b[e]=(d[2]?d[3]:d[4]?d[5]:d[7])||""}return b}function Sb(a,b){return a= +/\s+class\s*=/.test(a)?a.replace(/(\s+class=["']?)([^"']*)(["']?[\s>])/,function(a,d,e,g){return(" "+e+" ").indexOf(" "+b+" ")<0?e===""?d+b+g:d+e+" "+b+g:a}):a.substr(0,a.length-1)+' class="'+b+'">'}function Tb(a){var b="";m(ba(a),function(a,d){b+=a+":"+d+";"});return b}function ia(a,b,c,d){function e(a){for(var a=a.split("/"),b=[],c=0,d=a.length;c0&&b.pop():e!==""&&e!="."&&b.push(e)}return"/"+b.join("/")}function g(b,c){if(a.substr(0,b.length)===b){for(var e=[], +h=0;h0&&(h+="/"+e.join("/"));d=="/"&&(h+="/");return h+a.substr(b.length)}else if(f=/^(.*)\//.exec(b))return g(f[1],++c)}b=l(b,"").toLowerCase();a.substr(0,5)!="data:"&&(a=a.replace(/([^:])\/\//g,"$1/"));if(J(b,["absolute","relative","domain"])<0)return a;c=c||location.protocol+"//"+location.host;if(d===i)var h=location.pathname.match(/^(\/.*)\//),d=h?h[1]:"";var f;if(f=/^(\w+:\/\/[^\/]*)/.exec(a)){if(f[1]!==c)return a}else if(/^\w+:/.test(a))return a;/^\//.test(a)? +a=c+e(a.substr(1)):/^\w+:\/\//.test(a)||(a=c+e(d+"/"+a));b==="relative"?a=g(c+d,0).substr(2):b==="absolute"&&a.substr(0,c.length)===c&&(a=a.substr(c.length));return a}function U(a,b,c,d,e){a==null&&(a="");var c=c||"",d=l(d,!1),e=l(e,"\t"),g="xx-small,x-small,small,medium,large,x-large,xx-large".split(","),a=a.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function(a,b,c,d){return b+c.replace(/<(?:br|br\s[^>]*)>/ig,"\n")+d}),a=a.replace(/<(?:br|br\s[^>]*)\s*\/?>\s*<\/p>/ig,"

                "),a=a.replace(/(<(?:p|p\s[^>]*)>)\s*(<\/p>)/ig, +"$1
                $2"),a=a.replace(/\u200B/g,""),a=a.replace(/\u00A9/g,"©"),a=a.replace(/\u00AE/g,"®"),a=a.replace(/<[^>]+/g,function(a){return a.replace(/\s+/g," ")}),h={};b&&(m(b,function(a,b){for(var c=a.split(","),d=0,e=c.length;d]*)>)([\s\S]*?)(<\/script>)/ig,"")),h.style||(a=a.replace(/(<(?:style|style\s[^>]*)>)([\s\S]*?)(<\/style>)/ig,"")));var f=[],a=a.replace(/(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>(\s*)/g, +function(a,n,q,r,K,ja,i){var n=n||"",q=q||"",l=r.toLowerCase(),o=K||"",r=ja?" "+ja:"",i=i||"";if(b&&!h[l])return"";r===""&&kb[l]&&(r=" /");lb[l]&&(n&&(n=" "),i&&(i=" "));La[l]&&(q?i="\n":n="\n");d&&l=="br"&&(i="\n");if(mb[l]&&!La[l])if(d){q&&f.length>0&&f[f.length-1]===l?f.pop():f.push(l);i=n="\n";K=0;for(ja=q?f.length:f.length-1;K=0&&(z[a]=ia(d,c));(b&&a!=="style"&&!h[l]["*"]&&!h[l][a]||l==="body"&&a==="contenteditable"||/^kindeditor_\d+$/.test(a))&&delete z[a];if(a==="style"&&d!==""){var e=ba(d);m(e,function(a){b&&!h[l].style&&!h[l]["."+a]&&delete e[a]}); +var g="";m(e,function(a,b){g+=a+":"+b+";"});z.style=g}});o="";m(z,function(a,b){a==="style"&&b===""||(b=b.replace(/"/g,"""),o+=" "+a+'="'+b+'"')})}l==="font"&&(l="span");return n+"<"+q+l+o+r+">"+i}),a=a.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function(a,b,c,d){return b+c.replace(/\n/g,'\n')+d}),a=a.replace(/\n\s*\n/g,"\n"),a=a.replace(/\n/g,"\n");return B(a)}function nb(a,b){a=a.replace(//ig, +"").replace(//ig,"").replace(/]*>[\s\S]*?<\/style>/ig,"").replace(/]*>[\s\S]*?<\/script>/ig,"").replace(/]+>[\s\S]*?<\/w:[^>]+>/ig,"").replace(/]+>[\s\S]*?<\/o:[^>]+>/ig,"").replace(/[\s\S]*?<\/xml>/ig,"").replace(/<(?:table|td)[^>]*>/ig,function(a){return a.replace(/border-bottom:([#\w\s]+)/ig,"border:$1")});return U(a,b)}function ob(a){if(/\.(rm|rmvb)(\?|$)/i.test(a))return"audio/x-pn-realaudio-plugin";if(/\.(swf|flv)(\?|$)/i.test(a))return"application/x-shockwave-flash"; +return"video/x-ms-asf-plugin"}function pb(a){return I(unescape(a))}function Ma(a){var b="0&&(h+="width:"+c+"px;");/\D/.test(d)?h+="height:"+d+";":d>0&&(h+="height:"+d+"px;");c=/realaudio/i.test(e)?"ke-rm":/flash/i.test(e)?"ke-flash":"ke-media";c='';return c}function Aa(a,b){if(a.nodeType==9&&b.nodeType!=9)return!0;for(;b=b.parentNode;)if(b==a)return!0;return!1}function Ba(a,b){var b=b.toLowerCase(),c=null;if(!Vb&&a.nodeName.toLowerCase()!="script"){var d=a.ownerDocument.createElement("div");d.appendChild(a.cloneNode(!1));d=I(fa(d.innerHTML));b in d&&(c=d[b])}else try{c=a.getAttribute(b,2)}catch(e){c=a.getAttribute(b,1)}b==="style"&&c!==null&&(c=Tb(c));return c}function Ca(a,b){function c(a){if(typeof a!="string")return a;return a.replace(/([^\w\-])/g, +"\\$1")}function d(a,b){return a==="*"||a.toLowerCase()===c(b.toLowerCase())}function e(a,b,c){var e=[];(a=(c.ownerDocument||c).getElementById(a.replace(/\\/g,"")))&&d(b,a.nodeName)&&Aa(c,a)&&e.push(a);return e}function g(a,b,c){var e=c.ownerDocument||c,g=[],h,f,j;if(c.getElementsByClassName){e=c.getElementsByClassName(a.replace(/\\/g,""));h=0;for(f=e.length;h-1&&g.push(j)}return g}function h(a,b,d,e){for(var g=[],d=e.getElementsByTagName(d),h=0,f=d.length;h])+)/.exec(a))?j[1]:"*";if(j=/#((?:[\w\-]|\\.)+)$/.exec(a))c= +e(j[1],k,b);else if(j=/\.((?:[\w\-]|\\.)+)$/.exec(a))c=g(j[1],k,b);else if(j=/\[((?:[\w\-]|\\.)+)\]/.exec(a))c=h(j[1].toLowerCase(),null,k,b);else if(j=/\[((?:[\w\-]|\\.)+)\s*=\s*['"]?((?:\\.|[^'"]+)+)['"]?\]/.exec(a)){c=j[1].toLowerCase();j=j[2];if(c==="id")k=e(j,k,b);else if(c==="class")k=g(j,k,b);else if(c==="name"){c=[];j=(b.ownerDocument||b).getElementsByName(j.replace(/\\/g,""));for(var n,r=0,q=j.length;r1){var n=[];m(k,function(){m(Ca(this,b),function(){J(this,n)<0&&n.push(this)})});return n}for(var b=b||document,k=[],q,r=/((?:\\.|[^\s>])+|[\s>])/g;q=r.exec(a);)q[1]!==" "&&k.push(q[1]);q=[];if(k.length==1)return f(k[0],b);var r=!1,K,l,i,o,p,z,L,F,s,t;z=0;for(lenth=k.length;z")r=!0;else{if(z>0){l=[];L=0;for(s=q.length;L
  5. '; + if (!K.IE) { + html += '
    '; + } + self.insertHtml(html); + self.select().hideDialog().focus(); + self.addBookmark(); + } + } + }), + div = dialog.div, + rowsBox = K('[name="rows"]', div).val(3), + colsBox = K('[name="cols"]', div).val(2), + widthBox = K('[name="width"]', div).val(100), + heightBox = K('[name="height"]', div), + widthTypeBox = K('[name="widthType"]', div), + heightTypeBox = K('[name="heightType"]', div), + paddingBox = K('[name="padding"]', div).val(2), + spacingBox = K('[name="spacing"]', div).val(0), + alignBox = K('[name="align"]', div), + borderBox = K('[name="border"]', div).val(1), + colorBox = K('.ke-input-color', div); + _initColorPicker(div, colorBox.eq(0)); + _initColorPicker(div, colorBox.eq(1)); + _setColor(colorBox.eq(0), '#000000'); + _setColor(colorBox.eq(1), ''); + // foucs and select + rowsBox[0].focus(); + rowsBox[0].select(); + var table; + if (isInsert) { + return; + } + //get selected table node + table = self.plugin.getSelectedTable(); + if (table) { + rowsBox.val(table[0].rows.length); + colsBox.val(table[0].rows.length > 0 ? table[0].rows[0].cells.length : 0); + rowsBox.attr('disabled', true); + colsBox.attr('disabled', true); + var match, + tableWidth = table[0].style.width || table[0].width, + tableHeight = table[0].style.height || table[0].height; + if (tableWidth !== undefined && (match = /^(\d+)((?:px|%)*)$/.exec(tableWidth))) { + widthBox.val(match[1]); + widthTypeBox.val(match[2]); + } else { + widthBox.val(''); + } + if (tableHeight !== undefined && (match = /^(\d+)((?:px|%)*)$/.exec(tableHeight))) { + heightBox.val(match[1]); + heightTypeBox.val(match[2]); + } + paddingBox.val(table[0].cellPadding || ''); + spacingBox.val(table[0].cellSpacing || ''); + alignBox.val(table[0].align || ''); + borderBox.val(table[0].border === undefined ? '' : table[0].border); + _setColor(colorBox.eq(0), K.toHex(table.attr('borderColor') || '')); + _setColor(colorBox.eq(1), K.toHex(table[0].style.backgroundColor || table[0].bgColor || '')); + widthBox[0].focus(); + widthBox[0].select(); + } + }, + //modify cell + cellprop : function() { + var html = [ + '
    ', + //width, height + '
    ', + '', + lang.width + '   ', + '   ', + lang.height + '   ', + '', + '
    ', + //align + '
    ', + '', + lang.textAlign + ' ', + lang.verticalAlign + ' ', + '
    ', + //border + '
    ', + '', + lang.borderWidth + '   ', + lang.borderColor + ' ', + '
    ', + //background color + '
    ', + '', + '', + '
    ', + '
    ' + ].join(''); + var bookmark = self.cmd.range.createBookmark(); + var dialog = self.createDialog({ + name : name, + width : 500, + title : self.lang('tablecell'), + body : html, + beforeRemove : function() { + colorBox.unbind(); + }, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var width = widthBox.val(), + height = heightBox.val(), + widthType = widthTypeBox.val(), + heightType = heightTypeBox.val(), + padding = paddingBox.val(), + spacing = spacingBox.val(), + textAlign = textAlignBox.val(), + verticalAlign = verticalAlignBox.val(), + border = borderBox.val(), + borderColor = K(colorBox[0]).html() || '', + bgColor = K(colorBox[1]).html() || ''; + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + if (!/^\d*$/.test(border)) { + alert(self.lang('invalidBorder')); + borderBox[0].focus(); + return; + } + cell.css({ + width : width !== '' ? (width + widthType) : '', + height : height !== '' ? (height + heightType) : '', + 'background-color' : bgColor, + 'text-align' : textAlign, + 'vertical-align' : verticalAlign, + 'border-width' : border, + 'border-style' : border !== '' ? 'solid' : '', + 'border-color' : borderColor + }); + self.hideDialog().focus(); + self.cmd.range.moveToBookmark(bookmark); + self.cmd.select(); + self.addBookmark(); + } + } + }), + div = dialog.div, + widthBox = K('[name="width"]', div).val(100), + heightBox = K('[name="height"]', div), + widthTypeBox = K('[name="widthType"]', div), + heightTypeBox = K('[name="heightType"]', div), + paddingBox = K('[name="padding"]', div).val(2), + spacingBox = K('[name="spacing"]', div).val(0), + textAlignBox = K('[name="textAlign"]', div), + verticalAlignBox = K('[name="verticalAlign"]', div), + borderBox = K('[name="border"]', div).val(1), + colorBox = K('.ke-input-color', div); + _initColorPicker(div, colorBox.eq(0)); + _initColorPicker(div, colorBox.eq(1)); + _setColor(colorBox.eq(0), '#000000'); + _setColor(colorBox.eq(1), ''); + // foucs and select + widthBox[0].focus(); + widthBox[0].select(); + // get selected cell + var cell = self.plugin.getSelectedCell(); + var match, + cellWidth = cell[0].style.width || cell[0].width || '', + cellHeight = cell[0].style.height || cell[0].height || ''; + if ((match = /^(\d+)((?:px|%)*)$/.exec(cellWidth))) { + widthBox.val(match[1]); + widthTypeBox.val(match[2]); + } else { + widthBox.val(''); + } + if ((match = /^(\d+)((?:px|%)*)$/.exec(cellHeight))) { + heightBox.val(match[1]); + heightTypeBox.val(match[2]); + } + textAlignBox.val(cell[0].style.textAlign || ''); + verticalAlignBox.val(cell[0].style.verticalAlign || ''); + var border = cell[0].style.borderWidth || ''; + if (border) { + border = parseInt(border); + } + borderBox.val(border); + _setColor(colorBox.eq(0), K.toHex(cell[0].style.borderColor || '')); + _setColor(colorBox.eq(1), K.toHex(cell[0].style.backgroundColor || '')); + widthBox[0].focus(); + widthBox[0].select(); + }, + insert : function() { + this.prop(true); + }, + 'delete' : function() { + var table = self.plugin.getSelectedTable(); + self.cmd.range.setStartBefore(table[0]).collapse(true); + self.cmd.select(); + table.remove(); + self.addBookmark(); + }, + colinsert : function(offset) { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + index = cell.cellIndex + offset; + // 取得第一行的index + index += table.rows[0].cells.length - row.cells.length; + + for (var i = 0, len = table.rows.length; i < len; i++) { + var newRow = table.rows[i], + newCell = newRow.insertCell(index); + newCell.innerHTML = K.IE ? '' : '
    '; + // 调整下一行的单元格index + index = _getCellIndex(table, newRow, newCell); + } + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colinsertleft : function() { + this.colinsert(0); + }, + colinsertright : function() { + this.colinsert(1); + }, + rowinsert : function(offset) { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0]; + var rowIndex = row.rowIndex; + if (offset === 1) { + rowIndex = row.rowIndex + (cell.rowSpan - 1) + offset; + } + var newRow = table.insertRow(rowIndex); + + for (var i = 0, len = row.cells.length; i < len; i++) { + // 调整cell个数 + if (row.cells[i].rowSpan > 1) { + len -= row.cells[i].rowSpan - 1; + } + var newCell = newRow.insertCell(i); + // copy colspan + if (offset === 1 && row.cells[i].colSpan > 1) { + newCell.colSpan = row.cells[i].colSpan; + } + newCell.innerHTML = K.IE ? '' : '
    '; + } + // 调整rowspan + for (var j = rowIndex; j >= 0; j--) { + var cells = table.rows[j].cells; + if (cells.length > i) { + for (var k = cell.cellIndex; k >= 0; k--) { + if (cells[k].rowSpan > 1) { + cells[k].rowSpan += 1; + } + } + break; + } + } + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + rowinsertabove : function() { + this.rowinsert(0); + }, + rowinsertbelow : function() { + this.rowinsert(1); + }, + rowmerge : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex, // 当前行的index + nextRowIndex = rowIndex + cell.rowSpan, // 下一行的index + nextRow = table.rows[nextRowIndex]; // 下一行 + // 最后一行不能合并 + if (table.rows.length <= nextRowIndex) { + return; + } + var cellIndex = cell.cellIndex; // 下一行单元格的index + if (nextRow.cells.length <= cellIndex) { + return; + } + var nextCell = nextRow.cells[cellIndex]; // 下一行单元格 + // 上下行的colspan不一致时不能合并 + if (cell.colSpan !== nextCell.colSpan) { + return; + } + cell.rowSpan += nextCell.rowSpan; + nextRow.deleteCell(cellIndex); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colmerge : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex, // 当前行的index + cellIndex = cell.cellIndex, + nextCellIndex = cellIndex + 1; + // 最后一列不能合并 + if (row.cells.length <= nextCellIndex) { + return; + } + var nextCell = row.cells[nextCellIndex]; + // 左右列的rowspan不一致时不能合并 + if (cell.rowSpan !== nextCell.rowSpan) { + return; + } + cell.colSpan += nextCell.colSpan; + row.deleteCell(nextCellIndex); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + rowsplit : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex; + // 不是可分割单元格 + if (cell.rowSpan === 1) { + return; + } + var cellIndex = _getCellIndex(table, row, cell); + for (var i = 1, len = cell.rowSpan; i < len; i++) { + var newRow = table.rows[rowIndex + i], + newCell = newRow.insertCell(cellIndex); + if (cell.colSpan > 1) { + newCell.colSpan = cell.colSpan; + } + newCell.innerHTML = K.IE ? '' : '
    '; + // 调整下一行的单元格index + cellIndex = _getCellIndex(table, newRow, newCell); + } + K(cell).removeAttr('rowSpan'); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colsplit : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + cellIndex = cell.cellIndex; + // 不是可分割单元格 + if (cell.colSpan === 1) { + return; + } + for (var i = 1, len = cell.colSpan; i < len; i++) { + var newCell = row.insertCell(cellIndex + i); + if (cell.rowSpan > 1) { + newCell.rowSpan = cell.rowSpan; + } + newCell.innerHTML = K.IE ? '' : '
    '; + } + K(cell).removeAttr('colSpan'); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + coldelete : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + index = cell.cellIndex; + for (var i = 0, len = table.rows.length; i < len; i++) { + var newRow = table.rows[i], + newCell = newRow.cells[index]; + if (newCell.colSpan > 1) { + newCell.colSpan -= 1; + if (newCell.colSpan === 1) { + K(newCell).removeAttr('colSpan'); + } + } else { + newRow.deleteCell(index); + } + // 跳过不需要删除的行 + if (newCell.rowSpan > 1) { + i += newCell.rowSpan - 1; + } + } + if (row.cells.length === 0) { + self.cmd.range.setStartBefore(table).collapse(true); + self.cmd.select(); + K(table).remove(); + } else { + self.cmd.selection(true); + } + self.addBookmark(); + }, + rowdelete : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex; + // 从下到上删除 + for (var i = cell.rowSpan - 1; i >= 0; i--) { + table.deleteRow(rowIndex + i); + } + if (table.rows.length === 0) { + self.cmd.range.setStartBefore(table).collapse(true); + self.cmd.select(); + K(table).remove(); + } else { + self.cmd.selection(true); + } + self.addBookmark(); + } + }; + self.clickToolbar(name, self.plugin.table.prop); +}); diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/1.html b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/1.html new file mode 100644 index 0000000..034126b --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/1.html @@ -0,0 +1,14 @@ + + + + + + +

    + 在此处输入标题 +

    +

    + 在此处输入内容 +

    + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/2.html b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/2.html new file mode 100644 index 0000000..dc2584a --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/2.html @@ -0,0 +1,42 @@ + + + + + + +

    + 标题 +

    + + + + + + + + + + + + + + + +
    +

    标题1

    +
    +

    标题1

    +
    + 内容1 + + 内容2 +
    + 内容3 + + 内容4 +
    +

    + 表格说明 +

    + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/3.html b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/3.html new file mode 100644 index 0000000..873f0c6 --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/html/3.html @@ -0,0 +1,36 @@ + + + + + + +

    + 在此处输入内容 +

    +
      +
    1. + 描述1 +
    2. +
    3. + 描述2 +
    4. +
    5. + 描述3 +
    6. +
    +

    + 在此处输入内容 +

    +
      +
    • + 描述1 +
    • +
    • + 描述2 +
    • +
    • + 描述3 +
    • +
    + + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/template.js b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/template.js new file mode 100644 index 0000000..4029e87 --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/template/template.js @@ -0,0 +1,58 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('template', function(K) { + var self = this, name = 'template', lang = self.lang(name + '.'), + htmlPath = self.pluginsPath + name + '/html/'; + function getFilePath(fileName) { + return htmlPath + fileName + '?ver=' + encodeURIComponent(K.DEBUG ? K.TIME : K.VERSION); + } + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + arr = ['
    ', + '
    ', + // left start + '
    ', + lang. selectTemplate + '
    ', + // right start + '
    ', + ' ', + '
    ', + '
    ', + '
    ', + '', + '
    '].join(''); + var dialog = self.createDialog({ + name : name, + width : 500, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var doc = K.iframeDoc(iframe); + self[checkbox[0].checked ? 'html' : 'insertHtml'](doc.body.innerHTML).hideDialog().focus(); + } + } + }); + var selectBox = K('select', dialog.div), + checkbox = K('[name="replaceFlag"]', dialog.div), + iframe = K('iframe', dialog.div); + checkbox[0].checked = true; + iframe.attr('src', getFilePath(selectBox.val())); + selectBox.change(function() { + iframe.attr('src', getFilePath(this.value)); + }); + }); +}); diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/wordpaste/wordpaste.js b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/wordpaste/wordpaste.js new file mode 100644 index 0000000..22061e1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/plugins/wordpaste/wordpaste.js @@ -0,0 +1,51 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('wordpaste', function(K) { + var self = this, name = 'wordpaste'; + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + html = '
    ' + + '
    ' + lang.comment + '
    ' + + '' + + '
    ', + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var str = doc.body.innerHTML; + str = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags); + self.insertHtml(str).hideDialog().focus(); + } + } + }), + div = dialog.div, + iframe = K('iframe', div), + doc = K.iframeDoc(iframe); + if (!K.IE) { + doc.designMode = 'on'; + } + doc.open(); + doc.write('WordPaste'); + doc.write(''); + if (!K.IE) { + doc.write('
    '); + } + doc.write(''); + doc.close(); + if (K.IE) { + doc.body.contentEditable = 'true'; + } + iframe[0].contentWindow.focus(); + }); +}); diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/anchor.gif b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/anchor.gif new file mode 100644 index 0000000..61145ea Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/anchor.gif differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/blank.gif b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/blank.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/blank.gif differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/flash.gif b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/flash.gif new file mode 100644 index 0000000..2cb12b2 Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/flash.gif differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/loading.gif b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/loading.gif new file mode 100644 index 0000000..c69e937 Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/loading.gif differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/media.gif b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/media.gif new file mode 100644 index 0000000..e1c0e30 Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/media.gif differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/rm.gif b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/rm.gif new file mode 100644 index 0000000..d013d55 Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/common/rm.gif differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/background.png b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/background.png new file mode 100644 index 0000000..bbfb056 Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/background.png differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/default.css b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/default.css new file mode 100644 index 0000000..428b6c8 --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/default.css @@ -0,0 +1,1149 @@ +/* common */ +.ke-inline-block { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-clearfix { + zoom: 1; +} +.ke-clearfix:after { + content: "."; + display: block; + clear: both; + font-size: 0; + height: 0; + line-height: 0; + visibility: hidden; +} +.ke-shadow { + box-shadow: 1px 1px 3px #A0A0A0; + -moz-box-shadow: 1px 1px 3px #A0A0A0; + -webkit-box-shadow: 1px 1px 3px #A0A0A0; + filter: progid:DXImageTransform.Microsoft.Shadow(color='#A0A0A0', Direction=135, Strength=3); + background-color: #F0F0EE; +} +.ke-menu a, +.ke-menu a:hover, +.ke-dialog a, +.ke-dialog a:hover { + color: #337FE5; + text-decoration: none; +} +/* icons */ +.ke-icon-source { + background-position: 0px 0px; + width: 16px; + height: 16px; +} +.ke-icon-preview { + background-position: 0px -16px; + width: 16px; + height: 16px; +} +.ke-icon-print { + background-position: 0px -32px; + width: 16px; + height: 16px; +} +.ke-icon-undo { + background-position: 0px -48px; + width: 16px; + height: 16px; +} +.ke-icon-redo { + background-position: 0px -64px; + width: 16px; + height: 16px; +} +.ke-icon-cut { + background-position: 0px -80px; + width: 16px; + height: 16px; +} +.ke-icon-copy { + background-position: 0px -96px; + width: 16px; + height: 16px; +} +.ke-icon-paste { + background-position: 0px -112px; + width: 16px; + height: 16px; +} +.ke-icon-selectall { + background-position: 0px -128px; + width: 16px; + height: 16px; +} +.ke-icon-justifyleft { + background-position: 0px -144px; + width: 16px; + height: 16px; +} +.ke-icon-justifycenter { + background-position: 0px -160px; + width: 16px; + height: 16px; +} +.ke-icon-justifyright { + background-position: 0px -176px; + width: 16px; + height: 16px; +} +.ke-icon-justifyfull { + background-position: 0px -192px; + width: 16px; + height: 16px; +} +.ke-icon-insertorderedlist { + background-position: 0px -208px; + width: 16px; + height: 16px; +} +.ke-icon-insertunorderedlist { + background-position: 0px -224px; + width: 16px; + height: 16px; +} +.ke-icon-indent { + background-position: 0px -240px; + width: 16px; + height: 16px; +} +.ke-icon-outdent { + background-position: 0px -256px; + width: 16px; + height: 16px; +} +.ke-icon-subscript { + background-position: 0px -272px; + width: 16px; + height: 16px; +} +.ke-icon-superscript { + background-position: 0px -288px; + width: 16px; + height: 16px; +} +.ke-icon-date { + background-position: 0px -304px; + width: 25px; + height: 16px; +} +.ke-icon-time { + background-position: 0px -320px; + width: 25px; + height: 16px; +} +.ke-icon-formatblock { + background-position: 0px -336px; + width: 25px; + height: 16px; +} +.ke-icon-fontname { + background-position: 0px -352px; + width: 21px; + height: 16px; +} +.ke-icon-fontsize { + background-position: 0px -368px; + width: 23px; + height: 16px; +} +.ke-icon-forecolor { + background-position: 0px -384px; + width: 20px; + height: 16px; +} +.ke-icon-hilitecolor { + background-position: 0px -400px; + width: 23px; + height: 16px; +} +.ke-icon-bold { + background-position: 0px -416px; + width: 16px; + height: 16px; +} +.ke-icon-italic { + background-position: 0px -432px; + width: 16px; + height: 16px; +} +.ke-icon-underline { + background-position: 0px -448px; + width: 16px; + height: 16px; +} +.ke-icon-strikethrough { + background-position: 0px -464px; + width: 16px; + height: 16px; +} +.ke-icon-removeformat { + background-position: 0px -480px; + width: 16px; + height: 16px; +} +.ke-icon-image { + background-position: 0px -496px; + width: 16px; + height: 16px; +} +.ke-icon-flash { + background-position: 0px -512px; + width: 16px; + height: 16px; +} +.ke-icon-media { + background-position: 0px -528px; + width: 16px; + height: 16px; +} +.ke-icon-div { + background-position: 0px -544px; + width: 16px; + height: 16px; +} +.ke-icon-formula { + background-position: 0px -576px; + width: 16px; + height: 16px; +} +.ke-icon-hr { + background-position: 0px -592px; + width: 16px; + height: 16px; +} +.ke-icon-emoticons { + background-position: 0px -608px; + width: 16px; + height: 16px; +} +.ke-icon-link { + background-position: 0px -624px; + width: 16px; + height: 16px; +} +.ke-icon-unlink { + background-position: 0px -640px; + width: 16px; + height: 16px; +} +.ke-icon-fullscreen { + background-position: 0px -656px; + width: 16px; + height: 16px; +} +.ke-icon-about { + background-position: 0px -672px; + width: 16px; + height: 16px; +} +.ke-icon-plainpaste { + background-position: 0px -704px; + width: 16px; + height: 16px; +} +.ke-icon-wordpaste { + background-position: 0px -720px; + width: 16px; + height: 16px; +} +.ke-icon-table { + background-position: 0px -784px; + width: 16px; + height: 16px; +} +.ke-icon-tablemenu { + background-position: 0px -768px; + width: 16px; + height: 16px; +} +.ke-icon-tableinsert { + background-position: 0px -784px; + width: 16px; + height: 16px; +} +.ke-icon-tabledelete { + background-position: 0px -800px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolinsertleft { + background-position: 0px -816px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolinsertright { + background-position: 0px -832px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowinsertabove { + background-position: 0px -848px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowinsertbelow { + background-position: 0px -864px; + width: 16px; + height: 16px; +} +.ke-icon-tablecoldelete { + background-position: 0px -880px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowdelete { + background-position: 0px -896px; + width: 16px; + height: 16px; +} +.ke-icon-tablecellprop { + background-position: 0px -912px; + width: 16px; + height: 16px; +} +.ke-icon-tableprop { + background-position: 0px -928px; + width: 16px; + height: 16px; +} +.ke-icon-checked { + background-position: 0px -944px; + width: 16px; + height: 16px; +} +.ke-icon-code { + background-position: 0px -960px; + width: 16px; + height: 16px; +} +.ke-icon-map { + background-position: 0px -976px; + width: 16px; + height: 16px; +} +.ke-icon-baidumap { + background-position: 0px -976px; + width: 16px; + height: 16px; +} +.ke-icon-lineheight { + background-position: 0px -992px; + width: 16px; + height: 16px; +} +.ke-icon-clearhtml { + background-position: 0px -1008px; + width: 16px; + height: 16px; +} +.ke-icon-pagebreak { + background-position: 0px -1024px; + width: 16px; + height: 16px; +} +.ke-icon-insertfile { + background-position: 0px -1040px; + width: 16px; + height: 16px; +} +.ke-icon-quickformat { + background-position: 0px -1056px; + width: 16px; + height: 16px; +} +.ke-icon-template { + background-position: 0px -1072px; + width: 16px; + height: 16px; +} +.ke-icon-tablecellsplit { + background-position: 0px -1088px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowmerge { + background-position: 0px -1104px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowsplit { + background-position: 0px -1120px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolmerge { + background-position: 0px -1136px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolsplit { + background-position: 0px -1152px; + width: 16px; + height: 16px; +} +.ke-icon-anchor { + background-position: 0px -1168px; + width: 16px; + height: 16px; +} +.ke-icon-search { + background-position: 0px -1184px; + width: 16px; + height: 16px; +} +.ke-icon-new { + background-position: 0px -1200px; + width: 16px; + height: 16px; +} +.ke-icon-specialchar { + background-position: 0px -1216px; + width: 16px; + height: 16px; +} +.ke-icon-multiimage { + background-position: 0px -1232px; + width: 16px; + height: 16px; +} +/* container */ +.ke-container { + display: block; + border: 1px solid #CCCCCC; + background-color: #FFF; + overflow: hidden; + margin: 0; + padding: 0; +} +/* toolbar */ +.ke-toolbar { + border-bottom: 1px solid #CCC; + background-color: #F0F0EE; + padding: 2px 5px; + text-align: left; + overflow: hidden; + zoom: 1; +} +.ke-toolbar-icon { + background-repeat: no-repeat; + font-size: 0; + line-height: 0; + overflow: hidden; + display: block; +} +.ke-toolbar-icon-url { + background-image: url(default.png); +} +.ke-toolbar .ke-outline { + border: 1px solid #F0F0EE; + margin: 1px; + padding: 1px 2px; + font-size: 0; + line-height: 0; + overflow: hidden; + cursor: pointer; + display: block; + float: left; +} +.ke-toolbar .ke-on { + border: 1px solid #5690D2; +} +.ke-toolbar .ke-selected { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-toolbar .ke-disabled { + cursor: default; +} +.ke-toolbar .ke-separator { + height: 16px; + margin: 2px 3px; + border-left: 1px solid #A0A0A0; + border-right: 1px solid #FFFFFF; + border-top:0; + border-bottom:0; + width: 0; + font-size: 0; + line-height: 0; + overflow: hidden; + display: block; + float: left; +} +.ke-toolbar .ke-hr { + overflow: hidden; + height: 1px; + clear: both; +} +/* edit */ +.ke-edit { + padding: 0; +} +.ke-edit-iframe, +.ke-edit-textarea { + border: 0; + margin: 0; + padding: 0; + overflow: auto; +} +.ke-edit-textarea { + font: 12px/1.5 "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; + color: #000; + overflow: auto; + resize: none; +} +.ke-edit-textarea:focus { + outline: none; +} +/* statusbar */ +.ke-statusbar { + position: relative; + background-color: #F0F0EE; + border-top: 1px solid #CCCCCC; + font-size: 0; + line-height: 0; + *height: 12px; + overflow: hidden; + text-align: center; + cursor: s-resize; +} +.ke-statusbar-center-icon { + background-position: -0px -754px; + width: 15px; + height: 11px; + background-image: url(default.png); +} +.ke-statusbar-right-icon { + position: absolute; + right: 0; + bottom: 0; + cursor: se-resize; + background-position: -5px -741px; + width: 11px; + height: 11px; + background-image: url(default.png); +} +/* menu */ +.ke-menu { + border: 1px solid #A0A0A0; + background-color: #F1F1F1; + color: #222222; + padding: 2px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + text-align: left; + overflow: hidden; +} +.ke-menu-item { + border: 1px solid #F1F1F1; + background-color: #F1F1F1; + color: #222222; + height: 24px; + overflow: hidden; + cursor: pointer; +} +.ke-menu-item-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-menu-item-left { + width: 27px; + text-align: center; + overflow: hidden; +} +.ke-menu-item-center { + width: 0; + height: 24px; + border-left: 1px solid #E3E3E3; + border-right: 1px solid #FFFFFF; + border-top: 0; + border-bottom: 0; +} +.ke-menu-item-center-on { + border-left: 1px solid #E9EFF6; + border-right: 1px solid #E9EFF6; +} +.ke-menu-item-right { + border: 0; + padding: 0 0 0 5px; + line-height: 24px; + text-align: left; + overflow: hidden; +} +.ke-menu-separator { + margin: 2px 0; + height: 0; + overflow: hidden; + border-top: 1px solid #CCCCCC; + border-bottom: 1px solid #FFFFFF; + border-left: 0; + border-right: 0; +} +/* colorpicker */ +.ke-colorpicker { + border: 1px solid #A0A0A0; + background-color: #F1F1F1; + color: #222222; + padding: 2px; +} +.ke-colorpicker-table { + border:0; + margin:0; + padding:0; + border-collapse: separate; +} +.ke-colorpicker-cell { + font-size: 0; + line-height: 0; + border: 1px solid #F0F0EE; + cursor: pointer; + margin:3px; + padding:0; +} +.ke-colorpicker-cell-top { + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + line-height: 24px; + border: 1px solid #F0F0EE; + cursor: pointer; + margin:0; + padding:0; + text-align: center; +} +.ke-colorpicker-cell-on { + border: 1px solid #5690D2; +} +.ke-colorpicker-cell-selected { + border: 1px solid #2446AB; +} +.ke-colorpicker-cell-color { + width: 14px; + height: 14px; + margin: 3px; + padding: 0; + border: 0; +} +/* dialog */ +.ke-dialog { + position: absolute; + margin: 0; + padding: 0; +} +.ke-dialog .ke-header { + width: 100%; + margin-bottom: 10px; +} +.ke-dialog .ke-header .ke-left { + float: left; +} +.ke-dialog .ke-header .ke-right { + float: right; +} +.ke-dialog .ke-header label { + margin-right: 0; + cursor: pointer; + font-weight: normal; + display: inline; + vertical-align: top; +} +.ke-dialog-content { + background-color: #FFF; + width: 100%; + height: 100%; + color: #333; + border: 1px solid #A0A0A0; +} +.ke-dialog-shadow { + position: absolute; + z-index: -1; + top: 0; + left: 0; + width: 100%; + height: 100%; + box-shadow: 3px 3px 7px #999; + -moz-box-shadow: 3px 3px 7px #999; + -webkit-box-shadow: 3px 3px 7px #999; + filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='3', MakeShadow='true', ShadowOpacity='0.4'); + background-color: #F0F0EE; +} +.ke-dialog-header { + border:0; + margin:0; + padding: 0 10px; + background: url(background.png) repeat scroll 0 0 #F0F0EE; + border-bottom: 1px solid #CFCFCF; + height: 24px; + font: 12px/24px "sans serif",tahoma,verdana,helvetica; + text-align: left; + color: #222; + cursor: move; +} +.ke-dialog-icon-close { + display: block; + background: url(default.png) no-repeat scroll 0px -688px; + width: 16px; + height: 16px; + position: absolute; + right: 6px; + top: 6px; + cursor: pointer; +} +.ke-dialog-body { + font: 12px/1.5 "sans serif",tahoma,verdana,helvetica; + text-align: left; + overflow: hidden; + width: 100%; +} +.ke-dialog-body textarea { + display: block; + overflow: auto; + padding: 0; + resize: none; +} +.ke-dialog-body textarea:focus, +.ke-dialog-body input:focus, +.ke-dialog-body select:focus { + outline: none; +} +.ke-dialog-body label { + margin-right: 10px; + cursor: pointer; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-dialog-body img { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-dialog-body select { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; + width: auto; +} +.ke-dialog-body .ke-textarea { + display: block; + width: 408px; + height: 260px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; +} +.ke-dialog-body .ke-form { + margin: 0; + padding: 0; +} +.ke-dialog-loading { + position: absolute; + top: 0; + left: 1px; + z-index: 1; + text-align: center; +} +.ke-dialog-loading-content { + background: url("../common/loading.gif") no-repeat; + color: #666; + font-size: 14px; + font-weight: bold; + height: 31px; + line-height: 31px; + padding-left: 36px; +} +.ke-dialog-row { + margin-bottom: 10px; +} +.ke-dialog-footer { + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + text-align: right; + padding:0 0 5px 0; + background-color: #FFF; + width: 100%; +} +.ke-dialog-preview, +.ke-dialog-yes { + margin: 5px; +} +.ke-dialog-no { + margin: 5px 10px 5px 5px; +} +.ke-dialog-mask { + background-color:#FFF; + filter:alpha(opacity=50); + opacity:0.5; +} +.ke-button-common { + background: url(background.png) no-repeat scroll 0 -25px transparent; + cursor: pointer; + height: 23px; + line-height: 23px; + overflow: visible; + display: inline-block; + vertical-align: top; + cursor: pointer; +} +.ke-button-outer { + background-position: 0 -25px; + padding: 0; + position: relative; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-button { + background-position: right -25px; + padding: 0 12px; + margin: 0; + font-family: "sans serif",tahoma,verdana,helvetica; + border: 0 none; + color: #333; + font-size: 12px; + left: 2px; + text-decoration: none; +} +/* inputbox */ +.ke-input-text { + background-color:#FFFFFF; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + line-height: 17px; + height: 17px; + padding: 2px 4px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-input-number { + width: 50px; +} +.ke-input-color { + border: 1px solid #A0A0A0; + background-color: #FFFFFF; + font-size: 12px; + width: 60px; + height: 20px; + line-height: 20px; + padding-left: 5px; + overflow: hidden; + cursor: pointer; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-upload-button { + position: relative; +} +.ke-upload-area { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + *height: 25px; +} +.ke-upload-area .ke-upload-file { + position: absolute; + font-size: 60px; + top: 0; + right: 0; + padding: 0; + margin: 0; + z-index: 811212; + border: 0 none; + opacity: 0; + filter: alpha(opacity=0); +} +/* tabs */ +.ke-tabs { + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + border-bottom:1px solid #A0A0A0; + padding-left:5px; + margin-bottom:20px; +} +.ke-tabs-ul { + list-style-image:none; + list-style-position:outside; + list-style-type:none; + margin:0; + padding:0; +} +.ke-tabs-li { + position: relative; + border: 1px solid #A0A0A0; + background-color: #F0F0EE; + margin: 0 2px -1px 0; + padding: 0 20px; + float: left; + line-height: 25px; + text-align: center; + color: #555555; + cursor: pointer; +} +.ke-tabs-li-selected { + background-color: #FFF; + border-bottom: 1px solid #FFF; + color: #000; + cursor: default; +} +.ke-tabs-li-on { + background-color: #FFF; + color: #000; +} +/* progressbar */ +.ke-progressbar { + position: relative; + margin: 0; + padding: 0; +} +.ke-progressbar-bar { + border: 1px solid #6FA5DB; + width: 80px; + height: 5px; + margin: 10px 10px 0 10px; + padding: 0; +} +.ke-progressbar-bar-inner { + width: 0; + height: 5px; + background-color: #6FA5DB; + overflow: hidden; + margin: 0; + padding: 0; +} +.ke-progressbar-percent { + position: absolute; + top: 0; + left: 40%; + display: none; +} +/* swfupload */ +.ke-swfupload-top { + position: relative; + margin-bottom: 10px; + _width: 608px; +} +.ke-swfupload-button { + height: 23px; + line-height: 23px; +} +.ke-swfupload-desc { + padding: 0 10px; + height: 23px; + line-height: 23px; +} +.ke-swfupload-startupload { + position: absolute; + top: 0; + right: 0; +} +.ke-swfupload-body { + overflow: scroll; + background-color:#FFFFFF; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; + width: auto; + height: 370px; + padding: 5px; +} +.ke-swfupload-body .ke-item { + width: 100px; + margin: 5px; +} +.ke-swfupload-body .ke-photo { + position: relative; + border: 1px solid #DDDDDD; + background-color:#FFFFFF; + padding: 10px; +} +.ke-swfupload-body .ke-delete { + display: block; + background: url(default.png) no-repeat scroll 0px -688px; + width: 16px; + height: 16px; + position: absolute; + right: 0; + top: 0; + cursor: pointer; +} +.ke-swfupload-body .ke-status { + position: absolute; + left: 0; + bottom: 5px; + width: 100px; + height: 17px; +} +.ke-swfupload-body .ke-message { + width: 100px; + text-align: center; + overflow: hidden; + height:17px; +} +.ke-swfupload-body .ke-error { + color: red; +} +.ke-swfupload-body .ke-name { + width: 100px; + text-align: center; + overflow: hidden; + height:16px; +} +.ke-swfupload-body .ke-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} + +/* emoticons */ +.ke-plugin-emoticons { + position: relative; +} +.ke-plugin-emoticons .ke-preview { + position: absolute; + text-align: center; + margin: 2px; + padding: 10px; + top: 0; + border: 1px solid #A0A0A0; + background-color: #FFFFFF; + display: none; +} +.ke-plugin-emoticons .ke-preview-img { + border:0; + margin:0; + padding:0; +} +.ke-plugin-emoticons .ke-table { + border:0; + margin:0; + padding:0; + border-collapse:separate; +} +.ke-plugin-emoticons .ke-cell { + margin:0; + padding:1px; + border:1px solid #F0F0EE; + cursor:pointer; +} +.ke-plugin-emoticons .ke-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-plugin-emoticons .ke-img { + display:block; + background-repeat:no-repeat; + overflow:hidden; + margin:2px; + width:24px; + height:24px; + margin: 0; + padding: 0; + border: 0; +} +.ke-plugin-emoticons .ke-page { + text-align: right; + margin: 5px; + padding: 0; + border: 0; + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + color: #333; + text-decoration: none; +} +.ke-plugin-plainpaste-textarea, +.ke-plugin-wordpaste-iframe { + display: block; + width: 408px; + height: 260px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; +} +/* filemanager */ +.ke-plugin-filemanager-header { + width: 100%; + margin-bottom: 10px; +} +.ke-plugin-filemanager-header .ke-left { + float: left; +} +.ke-plugin-filemanager-header .ke-right { + float: right; +} +.ke-plugin-filemanager-body { + overflow: scroll; + background-color:#FFFFFF; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; + width: auto; + height: 370px; + padding: 5px; +} +.ke-plugin-filemanager-body .ke-item { + width: 100px; + margin: 5px; +} +.ke-plugin-filemanager-body .ke-photo { + border: 1px solid #DDDDDD; + background-color:#FFFFFF; + padding: 10px; +} +.ke-plugin-filemanager-body .ke-name { + width: 100px; + text-align: center; + overflow: hidden; + height:16px; +} +.ke-plugin-filemanager-body .ke-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-plugin-filemanager-body .ke-table { + width: 95%; + border: 0; + margin: 0; + padding: 0; + border-collapse: separate; +} +.ke-plugin-filemanager-body .ke-table .ke-cell { + margin: 0; + padding: 0; + border: 0; +} +.ke-plugin-filemanager-body .ke-table .ke-name { + width: 55%; + text-align: left; +} +.ke-plugin-filemanager-body .ke-table .ke-size { + width: 15%; + text-align: left; +} +.ke-plugin-filemanager-body .ke-table .ke-datetime { + width: 30%; + text-align: center; +} + diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/default.png b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/default.png new file mode 100644 index 0000000..cc9e72d Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/default/default.png differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/qq/editor.gif b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/qq/editor.gif new file mode 100644 index 0000000..b256841 Binary files /dev/null and b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/qq/editor.gif differ diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/qq/qq.css b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/qq/qq.css new file mode 100644 index 0000000..a45e08c --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/qq/qq.css @@ -0,0 +1,143 @@ +/* container */ +.ke-container-qq { + display: block; + border: 1px solid #c3c3c3; + background-color: #FFF; + overflow: hidden; + margin: 0; + padding: 0; +} +/* toolbar */ +.ke-container-qq .ke-toolbar { + border-bottom: 1px solid #c3c3c3; + background-color: #FFFFFF; + padding: 2px 5px; + text-align: left; + overflow: hidden; + zoom: 1; +} +.ke-toolbar-icon-url { + background-image: url(editor.gif); + width:18px; + *xwidth:20px; + height:18px; + *xheight:20px; +} +.ke-icon-checked{ + background-image: url(../default/default.png); + width:16px; + height:16px; +} +.ke-container-qq .ke-icon-bold{ + background-position: 4px 1px; +} +.ke-container-qq .ke-icon-italic{ + background-position: -27px 1px; +} +.ke-container-qq .ke-icon-italic{ + background-position: -28px 1px; +} +.ke-container-qq .ke-icon-underline{ + background-position: -60px 1px; +} +.ke-container-qq .ke-icon-fontname{ + background-position: -95px 1px; +} +.ke-container-qq .ke-icon-fontsize{ + background-position: -128px 1px; +} +.ke-container-qq .ke-icon-forecolor{ + background-position: -159px 1px; +} +.ke-container-qq .ke-icon-hilitecolor{ + background-position: -190px 1px; +} +.ke-container-qq .ke-icon-plug-align{ + background-position: -223px 1px; +} +.plug-align-justifyleft{ + background-position: -350px 1px; +} +.plug-align-justifycenter{ + background-position: -382px 1px; +} +.plug-align-justifyright{ + background-position: -414px 1px; +} +.plug-order-insertorderedlist{ + background-position: -446px 1px; +} +.plug-order-insertunorderedlist{ + background-position: -477px 1px; +} +.plug-indent-indent{ + background-position: -513px 1px; +} +.plug-indent-outdent{ + background-position: -545px 1px; +} +.ke-container-qq .ke-icon-plug-order{ + background-position: -255px 1px; +} +.ke-container-qq .ke-icon-plug-indent{ + background-position: -287px 1px; +} +.ke-container-qq .ke-icon-link{ + background-position: -319px 1px; +} + +.ke-container-qq .ke-toolbar .ke-outline { + cursor: default; + padding:0px; + border:1px solid #fff; +} +.ke-container-qq .ke-toolbar .ke-on { + border-left:1px solid white; + border-top:1px solid white; + border-right:1px solid gray; + border-bottom:1px solid gray; + background-color: #FFFFFF; +} +.ke-container-qq .ke-toolbar .ke-selected { + border-left:1px solid gray; + border-top:1px solid gray; + border-right:1px solid white; + border-bottom:1px solid white; + background-color: #FFFFFF; +} +.ke-container-qq .ke-toolbar .ke-disabled { + cursor: default; +} + +.ke-colorpicker-qq{ + background:#fff; +} +/* statusbar */ +.ke-container-qq .ke-statusbar { + display:none; +} +/* menu */ +.ke-menu-qq { + border:1px solid #a6a6a6; + position:absolute; + background:#fff; + -moz-box-shadow:2px 2px 4px #DDDDDD; + z-index:999; + left:-400px; + top:-386px; + right:218px; + width:130px; +} +.ke-menu-qq .ke-menu-item { + padding:0px; + background:#fff; +} +.ke-menu-qq .ke-menu-item-on { + border:1px solid #000080;background:#FFEEC2;color:#036; +} +.ke-menu-qq .ke-toolbar .ke-selected { + border:1px solid #9a9afb; +} +.ke-menu-qq .ke-menu-item-left{ + width:auto; +} diff --git a/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/simple/simple.css b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/simple/simple.css new file mode 100644 index 0000000..4c76cf9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/resource/script/kindeditor/themes/simple/simple.css @@ -0,0 +1,100 @@ +/* container */ +.ke-container-simple { + display: block; + border: 1px solid #CCC; + background-color: #FFF; + overflow: hidden; +} +/* toolbar */ +.ke-container-simple .ke-toolbar { + border-bottom: 1px solid #CCC; + background-color: #FFF; + padding: 2px 5px; + overflow: hidden; +} +.ke-container-simple .ke-toolbar .ke-outline { + border: 1px solid #FFF; + background-color: transparent; + margin: 1px; + padding: 1px 2px; + font-size: 0; + line-height: 0; + overflow: hidden; + cursor: pointer; +} +.ke-container-simple .ke-toolbar .ke-on { + border: 1px solid #5690D2; +} +.ke-container-simple .ke-toolbar .ke-selected { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-container-simple .ke-toolbar .ke-disabled { + cursor: default; +} +/* statusbar */ +.ke-container-simple .ke-statusbar { + position: relative; + background-color: #FFF; + border-top: 1px solid #CCCCCC; + font-size: 0; + line-height: 0; + *height: 12px; + overflow: hidden; + text-align: center; + cursor: s-resize; +} +/* menu */ +.ke-menu-simple { + border: 1px solid #A0A0A0; + background-color: #FFF; + color: #222222; + padding: 2px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + text-align: left; + overflow: hidden; +} +.ke-menu-simple .ke-menu-item { + border: 1px solid #FFF; + background-color: #FFF; + color: #222222; + height: 24px; + overflow: hidden; + cursor: pointer; +} +.ke-menu-simple .ke-menu-item-on { + border: 1px solid #5690D2; + background-color: #FFF; +} +/* colorpicker */ +.ke-colorpicker-simple { + border: 1px solid #A0A0A0; + background-color: #FEFEFE; + color: #222222; + padding: 2px; +} +.ke-colorpicker-simple .ke-colorpicker-cell { + font-size: 0; + line-height: 0; + border: 1px solid #FEFEFE; + cursor: pointer; + margin:3px; + padding:0; +} +.ke-colorpicker-simple .ke-colorpicker-cell-top { + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + line-height: 24px; + border: 1px solid #FEFEFE; + cursor: pointer; + margin:0; + padding:0; + text-align: center; +} +.ke-colorpicker-simple .ke-colorpicker-cell-on { + border: 1px solid #5690D2; +} +.ke-colorpicker-simple .ke-colorpicker-cell-selected { + border: 1px solid #2446AB; +} diff --git a/codes/agent/game-docker/api/payment/swiftpass/Utils.class.php b/codes/agent/game-docker/api/payment/swiftpass/Utils.class.php new file mode 100644 index 0000000..6d4d44b --- /dev/null +++ b/codes/agent/game-docker/api/payment/swiftpass/Utils.class.php @@ -0,0 +1,72 @@ +'; + forEach($array as $k=>$v){ + $xml.='<'.$k.'>'; + } + $xml.=''; + return $xml; + } + + public static function dataRecodes($title,$data){ + $handler = fopen('result.txt','a+'); + $content = "================".$title."===================\n"; + if(is_string($data) === true){ + $content .= $data."\n"; + } + if(is_array($data) === true){ + forEach($data as $k=>$v){ + $content .= "key: ".$k." value: ".$v."\n"; + } + } + $flag = fwrite($handler,$content); + fclose($handler); + return $flag; + } + + public static function parseXML($xmlSrc){ + if(empty($xmlSrc)){ + return false; + } + $array = array(); + $xml = simplexml_load_string($xmlSrc); + $encode = Utils::getXmlEncode($xmlSrc); + + if($xml && $xml->children()) { + foreach ($xml->children() as $node){ + //有子节点 + if($node->children()) { + $k = $node->getName(); + $nodeXml = $node->asXML(); + $v = substr($nodeXml, strlen($k)+2, strlen($nodeXml)-2*strlen($k)-5); + + } else { + $k = $node->getName(); + $v = (string)$node; + } + + if($encode!="" && $encode != "UTF-8") { + $k = iconv("UTF-8", $encode, $k); + $v = iconv("UTF-8", $encode, $v); + } + $array[$k] = $v; + } + } + return $array; + } + + //获取xml编码 + function getXmlEncode($xml) { + $ret = preg_match ("/]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr); + if($ret) { + return strtoupper ( $arr[1] ); + } else { + return ""; + } + } +} +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/swiftpass/class/ClientResponseHandler.class.php b/codes/agent/game-docker/api/payment/swiftpass/class/ClientResponseHandler.class.php new file mode 100644 index 0000000..13bae80 --- /dev/null +++ b/codes/agent/game-docker/api/payment/swiftpass/class/ClientResponseHandler.class.php @@ -0,0 +1,197 @@ +ClientResponseHandler(); + } + + function ClientResponseHandler() { + $this->key = ""; + $this->parameters = array(); + $this->debugInfo = ""; + $this->content = ""; + } + + /** + *获取密钥 + */ + function getKey() { + return $this->key; + } + + /** + *设置密钥 + */ + function setKey($key) { + $this->key = $key; + } + + //设置原始内容 + function setContent($content) { + $this->content = $content; + + $xml = simplexml_load_string($this->content); + $encode = $this->getXmlEncode($this->content); + + if($xml && $xml->children()) { + foreach ($xml->children() as $node){ + //有子节点 + if($node->children()) { + $k = $node->getName(); + $nodeXml = $node->asXML(); + $v = substr($nodeXml, strlen($k)+2, strlen($nodeXml)-2*strlen($k)-5); + + } else { + $k = $node->getName(); + $v = (string)$node; + } + + if($encode!="" && $encode != "UTF-8") { + $k = iconv("UTF-8", $encode, $k); + $v = iconv("UTF-8", $encode, $v); + } + + $this->setParameter($k, $v); + } + } + } + + //获取原始内容 + function getContent() { + return $this->content; + } + + /** + *获取参数值 + */ + function getParameter($parameter) { + return isset($this->parameters[$parameter])?$this->parameters[$parameter] : ''; + } + + /** + *设置参数值 + */ + function setParameter($parameter, $parameterValue) { + $this->parameters[$parameter] = $parameterValue; + } + + /** + *获取所有请求的参数 + *@return array + */ + function getAllParameters() { + return $this->parameters; + } + + /** + *是否威富通签名,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。 + *true:是 + *false:否 + */ + function isTenpaySign() { + $signPars = ""; + ksort($this->parameters); + foreach($this->parameters as $k => $v) { + if("sign" != $k && "" != $v) { + $signPars .= $k . "=" . $v . "&"; + } + } + $signPars .= "key=" . $this->getKey(); + + $sign = strtolower(md5($signPars)); + + $tenpaySign = strtolower($this->getParameter("sign")); + + //debug信息 + $this->_setDebugInfo($signPars . " => sign:" . $sign . + " tenpaySign:" . $this->getParameter("sign")); + + return $sign == $tenpaySign; + + } + + /** + *获取debug信息 + */ + function getDebugInfo() { + return $this->debugInfo; + } + + //获取xml编码 + function getXmlEncode($xml) { + $ret = preg_match ("/]* encoding=\"(.*)\"[^>]* ?>/i", $xml, $arr); + if($ret) { + return strtoupper ( $arr[1] ); + } else { + return ""; + } + } + + /** + *设置debug信息 + */ + function _setDebugInfo($debugInfo) { + $this->debugInfo = $debugInfo; + } + + /** + * 是否财付通签名 + * @param signParameterArray 签名的参数数组 + * @return boolean + */ + function _isTenpaySign($signParameterArray) { + + $signPars = ""; + foreach($signParameterArray as $k) { + $v = $this->getParameter($k); + if("sign" != $k && "" != $v) { + $signPars .= $k . "=" . $v . "&"; + } + } + $signPars .= "key=" . $this->getKey(); + + $sign = strtolower(md5($signPars)); + + $tenpaySign = strtolower($this->getParameter("sign")); + + //debug信息 + $this->_setDebugInfo($signPars . " => sign:" . $sign . + " tenpaySign:" . $this->getParameter("sign")); + + return $sign == $tenpaySign; + + + } + +} + + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/swiftpass/class/PayHttpClient.class.php b/codes/agent/game-docker/api/payment/swiftpass/class/PayHttpClient.class.php new file mode 100644 index 0000000..c30240f --- /dev/null +++ b/codes/agent/game-docker/api/payment/swiftpass/class/PayHttpClient.class.php @@ -0,0 +1,118 @@ +PayHttpClient(); + } + + + function PayHttpClient() { + $this->reqContent = ""; + $this->resContent = ""; + + $this->errInfo = ""; + + $this->timeOut = 120; + + $this->responseCode = 0; + + } + + //设置请求内容 + function setReqContent($url,$data) { + $this->reqContent['url']=$url; + $this->reqContent['data']=$data; + } + + //获取结果内容 + function getResContent() { + return $this->resContent; + } + + //获取错误信息 + function getErrInfo() { + return $this->errInfo; + } + + //设置超时时间,单位秒 + function setTimeOut($timeOut) { + $this->timeOut = $timeOut; + } + + //执行http调用 + function call() { + //启动一个CURL会话 + $ch = curl_init(); + + // 设置curl允许执行的最长秒数 + curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeOut); + curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); + curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); + // 获取的信息以文件流的形式返回,而不是直接输出。 + curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); + + //发送一个常规的POST请求。 + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_URL, $this->reqContent['url']); + //要传送的所有数据 + curl_setopt($ch, CURLOPT_POSTFIELDS, $this->reqContent['data']); + + // 执行操作 + $res = curl_exec($ch); + $this->responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + + if ($res == NULL) { + $this->errInfo = "call http err :" . curl_errno($ch) . " - " . curl_error($ch) ; + curl_close($ch); + return false; + } else if($this->responseCode != "200") { + $this->errInfo = "call http err httpcode=" . $this->responseCode ; + curl_close($ch); + return false; + } + + curl_close($ch); + $this->resContent = $res; + + + return true; + } + + function getResponseCode() { + return $this->responseCode; + } + +} +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/swiftpass/class/RequestHandler.class.php b/codes/agent/game-docker/api/payment/swiftpass/class/RequestHandler.class.php new file mode 100644 index 0000000..0e48e11 --- /dev/null +++ b/codes/agent/game-docker/api/payment/swiftpass/class/RequestHandler.class.php @@ -0,0 +1,177 @@ +RequestHandler(); + } + + function RequestHandler() { + $this->gateUrl = "https://pay.swiftpass.cn/pay/gateway"; + $this->key = ""; + $this->parameters = array(); + $this->debugInfo = ""; + } + + /** + *初始化函数。 + */ + function init() { + //nothing to do + } + + /** + *获取入口地址,不包含参数值 + */ + function getGateURL() { + return $this->gateUrl; + } + + /** + *设置入口地址,不包含参数值 + */ + function setGateURL($gateUrl) { + $this->gateUrl = $gateUrl; + } + + /** + *获取密钥 + */ + function getKey() { + return $this->key; + } + + /** + *设置密钥 + */ + function setKey($key) { + $this->key = $key; + } + + /** + *获取参数值 + */ + function getParameter($parameter) { + return isset($this->parameters[$parameter])?$this->parameters[$parameter]:''; + } + + /** + *设置参数值 + */ + function setParameter($parameter, $parameterValue) { + $this->parameters[$parameter] = $parameterValue; + } + + /** + * 一次性设置参数 + */ + function setReqParams($post,$filterField=null){ + if($filterField !== null){ + forEach($filterField as $k=>$v){ + unset($post[$v]); + } + } + + //判断是否存在空值,空值不提交 + forEach($post as $k=>$v){ + if(empty($v)){ + unset($post[$k]); + } + } + + $this->parameters = $post; + } + + /** + *获取所有请求的参数 + *@return array + */ + function getAllParameters() { + return $this->parameters; + } + + /** + *获取带参数的请求URL + */ + function getRequestURL() { + + $this->createSign(); + + $reqPar = ""; + ksort($this->parameters); + foreach($this->parameters as $k => $v) { + $reqPar .= $k . "=" . urlencode($v) . "&"; + } + + //去掉最后一个& + $reqPar = substr($reqPar, 0, strlen($reqPar)-1); + + $requestURL = $this->getGateURL() . "?" . $reqPar; + + return $requestURL; + + } + + /** + *获取debug信息 + */ + function getDebugInfo() { + return $this->debugInfo; + } + + /** + *创建md5摘要,规则是:按参数名称a-z排序,遇到空值的参数不参加签名。 + */ + function createSign() { + $signPars = ""; + ksort($this->parameters); + foreach($this->parameters as $k => $v) { + if("" != $v && "sign" != $k) { + $signPars .= $k . "=" . $v . "&"; + } + } + $signPars .= "key=" . $this->getKey(); + $sign = strtoupper(md5($signPars)); + $this->setParameter("sign", $sign); + + //debug信息 + $this->_setDebugInfo($signPars . " => sign:" . $sign); + + } + + /** + *设置debug信息 + */ + function _setDebugInfo($debugInfo) { + $this->debugInfo = $debugInfo; + } + +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/swiftpass/config/config.php b/codes/agent/game-docker/api/payment/swiftpass/config/config.php new file mode 100644 index 0000000..9aebfa5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/swiftpass/config/config.php @@ -0,0 +1,14 @@ +'https://pay.swiftpass.cn/pay/gateway', + 'mchId'=>'7551000001', + 'key'=>'9d101c97133837e13dde2d32a5054abb', + 'version'=>'2.0' + ); + + public function C($cfgName){ + return $this->cfg[$cfgName]; + } +} +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/swiftpass/request.php b/codes/agent/game-docker/api/payment/swiftpass/request.php new file mode 100644 index 0000000..4ecede0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/swiftpass/request.php @@ -0,0 +1,385 @@ +Request(); + } + + public function Request() + { + $this->resHandler = new ClientResponseHandler(); + $this->reqHandler = new RequestHandler(); + $this->pay = new PayHttpClient(); + $this->cfg = new Config(); + + $this->reqHandler->setGateUrl($this->cfg->C('url')); + $this->reqHandler->setKey($this->cfg->C('key')); + } + + public function index() + { + $method = isset($_REQUEST['method']) ? $_REQUEST['method'] : 'submitOrderInfo'; + switch ($method) + { + case 'submitOrderInfo'://提交订单 + $this->submitOrderInfo(); + break; + case 'queryOrder'://查询订单 + $this->queryOrder(); + break; + case 'submitRefund'://提交退款 + $this->submitRefund(); + break; + case 'queryRefund'://查询退款 + $this->queryRefund(); + break; + case 'callback': + $this->callback(); + break; + } + } + + /** + * 提交订单信息 + */ + public function submitOrderInfo() + { + $this->reqHandler->setReqParams($_POST, array('method')); + $this->reqHandler->setParameter('service', 'pay.weixin.jspay'); /// 接口类型 + $this->reqHandler->setParameter('mch_id', $this->cfg->C('mchId')); /// 必填项,商户号,由平台分配 + $this->reqHandler->setParameter('version', $this->cfg->C('version')); + $this->reqHandler->setParameter('limit_credit_pay', '1'); + $this->reqHandler->setParameter('op_user_id', 'yida'); + //$this->reqHandler->setParameter('appid','wx50bb165fb00ef149'); + $this->reqHandler->setParameter('op_shop_id', 'yida1'); + $this->reqHandler->setParameter('op_device_id', 'yida2'); + $this->reqHandler->setParameter('device_info', 'yida3'); + //$this->reqHandler->setParameter('time_expire','20170306152200'); + $this->reqHandler->setParameter('is_raw', '1'); + /// 通知地址,必填项,接收平台通知的URL,需给绝对路径,255字符内格式如:http://wap.tenpay.com/tenpay.asp + //$notify_url = 'http://'.$_SERVER['HTTP_HOST']; + //$this->reqHandler->setParameter('notify_url', $notify_url.'/payInterface/request.php?method=callback'); + $this->reqHandler->setParameter('notify_url', 'http://zhangwei.dev.swiftpass.cn/payInterface_gzzh1/request.php?method=callback');// + $this->reqHandler->setParameter('callback_url', 'https://www.baidu.com/'); + $this->reqHandler->setParameter('nonce_str', mt_rand(time(), time() + rand())); /// 随机字符串,必填项,不长于 32 位 + $this->reqHandler->setParameter('sub_openid', 'oZ1CSjktOzQRa-q2feBrBXg9VXuM'); + $this->reqHandler->createSign(); /// 创建签名 + + $data = Utils::toXml($this->reqHandler->getAllParameters()); + //var_dump($data); + + $this->pay->setReqContent($this->reqHandler->getGateURL(), $data); + if ($this->pay->call()) + { + $this->resHandler->setContent($this->pay->getResContent()); + $this->resHandler->setKey($this->reqHandler->getKey()); + if ($this->resHandler->isTenpaySign()) + { + /// 当返回状态与业务结果都为0时才返回,其它结果请查看接口文档 + if ($this->resHandler->getParameter('status') == 0 && $this->resHandler->getParameter('result_code') == 0) + { + echo json_encode(array( + 'token_id' => $this->resHandler->getParameter('token_id'), + 'pay_info' => $this->resHandler->getParameter('pay_info'), + )); + exit(); + } + else + { + echo json_encode(array( + 'status' => 500, + 'msg' => 'Error Code:' . $this->resHandler->getParameter('status') . ' Error Message:' . $this->resHandler->getParameter('message'), + )); + exit(); + } + } + echo json_encode(array( + 'status' => 500, + 'msg' => 'Error Code:' . $this->resHandler->getParameter('status') . ' Error Message:' . $this->resHandler->getParameter('message'), + )); + } + else + { + echo json_encode(array( + 'status' => 500, + 'msg' => 'Response Code:' . $this->pay->getResponseCode() . ' Error Info:' . $this->pay->getErrInfo(), + )); + } + } + + /** + * 查询订单 + */ + public function queryOrder() + { + $this->reqHandler->setReqParams($_POST, array('method')); + $reqParam = $this->reqHandler->getAllParameters(); + if (empty($reqParam['transaction_id']) && empty($reqParam['out_trade_no'])) + { + echo json_encode(array( + 'status' => 500, + 'msg' => '请输入商户订单号,平台订单号!', + )); + exit(); + } + $this->reqHandler->setParameter('version', $this->cfg->C('version')); + $this->reqHandler->setParameter('service', 'unified.trade.query');//接口类型 + $this->reqHandler->setParameter('mch_id', $this->cfg->C('mchId'));//必填项,商户号,由平台分配 + $this->reqHandler->setParameter('nonce_str', mt_rand(time(), time() + rand()));//随机字符串,必填项,不长于 32 位 + $this->reqHandler->createSign();//创建签名 + $data = Utils::toXml($this->reqHandler->getAllParameters()); + + $this->pay->setReqContent($this->reqHandler->getGateURL(), $data); + if ($this->pay->call()) + { + $this->resHandler->setContent($this->pay->getResContent()); + $this->resHandler->setKey($this->reqHandler->getKey()); + if ($this->resHandler->isTenpaySign()) + { + $res = $this->resHandler->getAllParameters(); + Utils::dataRecodes('查询订单', $res); + //支付成功会输出更多参数,详情请查看文档中的7.1.4返回结果 + echo json_encode(array( + 'status' => 200, + 'msg' => '查询订单成功,请查看result.txt文件!', + 'data' => $res, + )); + exit(); + } + echo json_encode(array( + 'status' => 500, + 'msg' => 'Error Code:' . $this->resHandler->getParameter('status') . ' Error Message:' . $this->resHandler->getParameter('message'), + )); + } + else + { + echo json_encode(array( + 'status' => 500, + 'msg' => 'Response Code:' . $this->pay->getResponseCode() . ' Error Info:' . $this->pay->getErrInfo(), + )); + } + } + + + /** + * 提交退款 + */ + public function submitRefund() + { + $this->reqHandler->setReqParams($_POST, array('method')); + $reqParam = $this->reqHandler->getAllParameters(); + if (empty($reqParam['transaction_id']) && empty($reqParam['out_trade_no'])) + { + echo json_encode(array( + 'status' => 500, + 'msg' => '请输入商户订单号或平台订单号!', + )); + exit(); + } + $this->reqHandler->setParameter('version', $this->cfg->C('version')); + $this->reqHandler->setParameter('service', 'unified.trade.refund');//接口类型 + $this->reqHandler->setParameter('mch_id', $this->cfg->C('mchId'));//必填项,商户号,由平台分配 + $this->reqHandler->setParameter('nonce_str', mt_rand(time(), time() + rand()));//随机字符串,必填项,不长于 32 位 + $this->reqHandler->setParameter('op_user_id', $this->cfg->C('mchId'));//必填项,操作员帐号,默认为商户号 + + $this->reqHandler->createSign();//创建签名 + $data = Utils::toXml($this->reqHandler->getAllParameters());//将提交参数转为xml,目前接口参数也只支持XML方式 + var_dump($data); + $this->pay->setReqContent($this->reqHandler->getGateURL(), $data); + if ($this->pay->call()) + { + $this->resHandler->setContent($this->pay->getResContent()); + $this->resHandler->setKey($this->reqHandler->getKey()); + if ($this->resHandler->isTenpaySign()) + { + //当返回状态与业务结果都为0时才返,其它结果请查看接口文档 + if ($this->resHandler->getParameter('status') == 0 && $this->resHandler->getParameter('result_code') == 0) + { + /*$res = array('transaction_id'=>$this->resHandler->getParameter('transaction_id'), + 'out_trade_no'=>$this->resHandler->getParameter('out_trade_no'), + 'out_refund_no'=>$this->resHandler->getParameter('out_refund_no'), + 'refund_id'=>$this->resHandler->getParameter('refund_id'), + 'refund_channel'=>$this->resHandler->getParameter('refund_channel'), + 'refund_fee'=>$this->resHandler->getParameter('refund_fee'), + 'coupon_refund_fee'=>$this->resHandler->getParameter('coupon_refund_fee'));*/ + $res = $this->resHandler->getAllParameters(); + Utils::dataRecodes('提交退款', $res); + echo json_encode(array( + 'status' => 200, + 'msg' => '退款成功,请查看result.txt文件!', + 'data' => $res, + )); + exit(); + } + else + { + echo json_encode(array( + 'status' => 500, + 'msg' => 'Error Code:' . $this->resHandler->getParameter('err_code') . ' Error Message:' . $this->resHandler->getParameter('err_msg'), + )); + exit(); + } + } + echo json_encode(array( + 'status' => 500, + 'msg' => 'Error Code:' . $this->resHandler->getParameter('status') . ' Error Message:' . $this->resHandler->getParameter('message'), + )); + } + else + { + echo json_encode(array( + 'status' => 500, + 'msg' => 'Response Code:' . $this->pay->getResponseCode() . ' Error Info:' . $this->pay->getErrInfo(), + )); + } + } + + /** + * 查询退款 + */ + public function queryRefund() + { + $this->reqHandler->setReqParams($_POST, array('method')); + if (count($this->reqHandler->getAllParameters()) === 0) + { + echo json_encode(array( + 'status' => 500, + 'msg' => '请输入商户订单号,平台订单号,商户退款单号,平台退款单号!', + )); + exit(); + } + $this->reqHandler->setParameter('version', $this->cfg->C('version')); + $this->reqHandler->setParameter('service', 'unified.trade.refundquery');//接口类型 + $this->reqHandler->setParameter('mch_id', $this->cfg->C('mchId'));//必填项,商户号,由平台分配 + $this->reqHandler->setParameter('nonce_str', mt_rand(time(), time() + rand()));//随机字符串,必填项,不长于 32 位 + + $this->reqHandler->createSign();//创建签名 + $data = Utils::toXml($this->reqHandler->getAllParameters());//将提交参数转为xml,目前接口参数也只支持XML方式 + + $this->pay->setReqContent($this->reqHandler->getGateURL(), $data);//设置请求地址与请求参数 + if ($this->pay->call()) + { + $this->resHandler->setContent($this->pay->getResContent()); + $this->resHandler->setKey($this->reqHandler->getKey()); + if ($this->resHandler->isTenpaySign()) + { + //当返回状态与业务结果都为0时才返回,其它结果请查看接口文档 + if ($this->resHandler->getParameter('status') == 0 && $this->resHandler->getParameter('result_code') == 0) + { + /*$res = array('transaction_id'=>$this->resHandler->getParameter('transaction_id'), + 'out_trade_no'=>$this->resHandler->getParameter('out_trade_no'), + 'refund_count'=>$this->resHandler->getParameter('refund_count')); + for($i=0; $i<$res['refund_count']; $i++){ + $res['out_refund_no_'.$i] = $this->resHandler->getParameter('out_refund_no_'.$i); + $res['refund_id_'.$i] = $this->resHandler->getParameter('refund_id_'.$i); + $res['refund_channel_'.$i] = $this->resHandler->getParameter('refund_channel_'.$i); + $res['refund_fee_'.$i] = $this->resHandler->getParameter('refund_fee_'.$i); + $res['coupon_refund_fee_'.$i] = $this->resHandler->getParameter('coupon_refund_fee_'.$i); + $res['refund_status_'.$i] = $this->resHandler->getParameter('refund_status_'.$i); + }*/ + $res = $this->resHandler->getAllParameters(); + Utils::dataRecodes('查询退款', $res); + echo json_encode(array( + 'status' => 200, + 'msg' => '查询成功,请查看result.txt文件!', + 'data' => $res, + )); + exit(); + } + else + { + echo json_encode(array( + 'status' => 500, + 'msg' => 'Error Code:' . $this->resHandler->getParameter('message'), + )); + exit(); + } + } + echo json_encode(array( + 'status' => 500, + 'msg' => $this->resHandler->getContent(), + )); + } + else + { + echo json_encode(array( + 'status' => 500, + 'msg' => 'Response Code:' . $this->pay->getResponseCode() . ' Error Info:' . $this->pay->getErrInfo(), + )); + } + } + + /** + * 后台异步回调通知 + */ + public function callback() + { + $xml = file_get_contents('php://input'); + file_put_contents('1.txt', $xml); + $this->resHandler->setContent($xml); + //var_dump($this->resHandler->setContent($xml)); + $this->resHandler->setKey($this->cfg->C('key')); + if ($this->resHandler->isTenpaySign()) + { + if ($this->resHandler->getParameter('status') == 0 && $this->resHandler->getParameter('result_code') == 0) + { + $tradeno = $this->resHandler->getParameter('out_trade_no'); + // 此处可以在添加相关处理业务,校验通知参数中的商户订单号out_trade_no和金额total_fee是否和商户业务系统的单号和金额是否一致,一致后方可更新数据库表中的记录。 + //更改订单状态 + + Utils::dataRecodes('接口回调收到通知参数', $this->resHandler->getAllParameters()); + ob_clean(); + echo 'success'; + file_put_contents('2.txt', 1); + exit(); + } + else + { + echo 'failure1'; + exit(); + } + } + else + { + echo 'failure2'; + } + } +} + +$req = new Request(); +$req->index(); +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/unionpay/__init.php b/codes/agent/game-docker/api/payment/unionpay/__init.php new file mode 100644 index 0000000..e50ba10 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/__init.php @@ -0,0 +1,42 @@ + $log['plid'])); + if($log['is_usecard'] == 1 && $log['card_type'] == 1 && !empty($log['encrypt_code']) && $log['acid']) { + load()->classs('coupon'); + $acc = new coupon($log['acid']); + $codearr['encrypt_code'] = $log['encrypt_code']; + $codearr['module'] = $log['module']; + $codearr['card_id'] = $log['card_id']; + $acc->PayConsumeCode($codearr); + } + if($log['is_usecard'] == 1 && $log['card_type'] == 2) { + $now = time(); + $log['card_id'] = intval($log['card_id']); + pdo_query('UPDATE ' . tablename('activity_coupon_record') . " SET status = 2, usetime = {$now}, usemodule = '{$log['module']}' WHERE uniacid = :aid AND couponid = :cid AND uid = :uid AND status = 1 LIMIT 1", array(':aid' => $_W['uniacid'], ':uid' => $log['openid'], ':cid' => $log['card_id'])); + } + + $site = WeUtility::createModuleSite($log['module']); + if(!is_error($site)) { + $method = 'payResult'; + if (method_exists($site, $method)) { + $ret = array(); + $ret['weid'] = $log['uniacid']; + $ret['uniacid'] = $log['uniacid']; + $ret['result'] = 'success'; + $ret['type'] = $log['type']; + $ret['from'] = 'nofity'; + $ret['tid'] = $log['tid']; + $ret['user'] = $log['openid']; + $ret['fee'] = $log['fee']; + $ret['tag'] = $log['tag']; + $ret['is_usecard'] = $log['is_usecard']; + $ret['card_type'] = $log['card_type']; + $ret['card_fee'] = $log['card_fee']; + $ret['card_id'] = $log['card_id']; + $site->$method($ret); + exit('success'); + } + } + } +} +exit('fail'); diff --git a/codes/agent/game-docker/api/payment/unionpay/pay.php b/codes/agent/game-docker/api/payment/unionpay/pay.php new file mode 100644 index 0000000..9886927 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/pay.php @@ -0,0 +1,105 @@ +app('common'); +load()->app('template'); + +$sl = $_GPC['ps']; +$params = @json_decode(base64_decode($sl), true); + +$setting = uni_setting($_W['uniacid'], array('payment')); +if(!is_array($setting['payment'])) { + exit('没有设定支付参数.'); +} +$payment = $setting['payment']['unionpay']; +require '__init.php'; + +if (!empty($_POST) && verify($_POST) && $_POST['respMsg'] == 'success') { + $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid'; + $params = array(); + $params[':uniontid'] = $_POST['orderId']; + $log = pdo_fetch($sql, $params); + if(!empty($log) && $log['status'] == '0') { + $log['tag'] = iunserializer($log['tag']); + $log['tag']['queryId'] = $_POST['queryId']; + + $record = array(); + $record['status'] = 1; + $record['tag'] = iserializer($log['tag']); + pdo_update('core_paylog', $record, array('plid' => $log['plid'])); + if($log['is_usecard'] == 1 && $log['card_type'] == 1 && !empty($log['encrypt_code']) && $log['acid']) { + load()->classs('coupon'); + $acc = new coupon($log['acid']); + $codearr['encrypt_code'] = $log['encrypt_code']; + $codearr['module'] = $log['module']; + $codearr['card_id'] = $log['card_id']; + $acc->PayConsumeCode($codearr); + } + if($log['is_usecard'] == 1 && $log['card_type'] == 2) { + $now = time(); + $log['card_id'] = intval($log['card_id']); + pdo_query('UPDATE ' . tablename('activity_coupon_record') . " SET status = 2, usetime = {$now}, usemodule = '{$log['module']}' WHERE uniacid = :aid AND couponid = :cid AND uid = :uid AND status = 1 LIMIT 1", array(':aid' => $_W['uniacid'], ':uid' => $log['openid'], ':cid' => $log['card_id'])); + } + } + $site = WeUtility::createModuleSite($log['module']); + if(!is_error($site)) { + $method = 'payResult'; + if (method_exists($site, $method)) { + $ret = array(); + $ret['weid'] = $log['uniacid']; + $ret['uniacid'] = $log['uniacid']; + $ret['result'] = 'success'; + $ret['type'] = $log['type']; + $ret['from'] = 'return'; + $ret['tid'] = $log['tid']; + $ret['uniontid'] = $log['uniontid']; + $ret['user'] = $log['openid']; + $ret['fee'] = $log['fee']; + $ret['tag'] = $log['tag']; + $ret['is_usecard'] = $log['is_usecard']; + $ret['card_fee'] = $log['card_fee']; + $ret['card_id'] = $log['card_id']; + $site->$method($ret); + exit('success'); + } + } +} +$sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `plid`=:plid'; +$paylog = pdo_fetch($sql, array(':plid' => $params['tid'])); +if(!empty($paylog) && $paylog['status'] != '0') { + exit('这个订单已经支付成功, 不需要重复支付.'); +} +$auth = sha1($sl . $paylog['uniacid'] . $_W['config']['setting']['authkey']); +if($auth != $_GPC['auth']) { + exit('参数传输错误.'); +} +$_W['openid'] = intval($paylog['openid']); + +$params = array( + 'version' => '5.0.0', + 'encoding' => 'utf-8', + 'certId' => getSignCertId(), + 'txnType' => '01', + 'txnSubType' => '01', + 'bizType' => '000201', + 'frontUrl' => SDK_FRONT_NOTIFY_URL . '?i='.$_W['uniacid'], + 'backUrl' => SDK_BACK_NOTIFY_URL . '?i='.$_W['uniacid'], + 'signMethod' => '01', + 'channelType' => '08', + 'accessType' => '0', + 'merId' => SDK_MERID, + 'orderId' => $paylog['uniontid'], + 'txnTime' => date('YmdHis'), + 'txnAmt' => $paylog['fee'] * 100, + 'currencyCode' => '156', + 'defaultPayType' => '0001', + 'reqReserved' => $_W['uniacid'], +); +sign($params); +$html_form = create_html($params, SDK_FRONT_TRANS_URL); +echo $html_form; \ No newline at end of file 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 new file mode 100644 index 0000000..89b222b --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/ReadMe.txt @@ -0,0 +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) + +ܣЧڼܷ + + diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/PublicEncrypte.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/PublicEncrypte.php new file mode 100644 index 0000000..9283e44 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/PublicEncrypte.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/httpClient.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/httpClient.php new file mode 100644 index 0000000..920dbc2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/httpClient.php @@ -0,0 +1,31 @@ + $value ) { + $params_str .= ($key . '=' . (!isset ( $value ) ? '' : urlencode( $value )) . '&'); + } + return substr ( $params_str, 0, strlen ( $params_str ) - 1 ); +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/log.class.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/log.class.php new file mode 100644 index 0000000..8ded231 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/func/log.class.php @@ -0,0 +1,228 @@ +filename = date('Y-m-d', time()) . '.log'; $this->log_file = $this->createPath($filepath, $this->filename); + $this->MessageQueue = array(); + $this->priority = $priority; + date_default_timezone_set($timezone); + + if ( !file_exists($filepath) ) { + if(!empty($filepath)) { + if(!($this->_createDir($filepath))) + { + die("创建目录失败!"); + } + if ( !is_writable($this->log_file) ) + { + $this->Log_Status = PhpLog::OPEN_FAILED; + $this->MessageQueue[] = "The file exists, but could not be opened for writing. Check that appropriate permissions have been set."; + return; + } + } + } + + if ( $this->file_handle = fopen( $this->log_file , "a+" ) ) + { + $this->Log_Status = PhpLog::LOG_OPEN; + $this->MessageQueue[] = "The log file was opened successfully."; + } + else + { + $this->Log_Status = PhpLog::OPEN_FAILED; + $this->MessageQueue[] = "The file could not be opened. Check permissions."; + } + return; + } + + public function __destruct() + { + if ( $this->file_handle ) + fclose( $this->file_handle ); + } + + + private function _createDir($dir) + { + return is_dir($dir) or (self::_createDir(dirname($dir)) and mkdir($dir, 0777)); + } + + + private function createPath($dir, $filename) + { + if (empty($dir)) + { + return $filename; + } + else + { + return $dir . "/" . $filename; + } + } + + public function LogInfo($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::INFO, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + public function LogDebug($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::DEBUG, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + public function LogWarn($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::WARN, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + public function LogError($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::ERROR, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + public function LogFatal($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::FATAL, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + + public function Log($line, $priority, $sFile, $iLine) + { + if ($iLine > 0) + { + $line = iconv('GBK', 'UTF-8', $line); + if ( $this->priority <= $priority ) + { + $status = $this->getTimeLine( $priority, $sFile, $iLine); + $this->WriteFreeFormLine ( "$status $line \n" ); + } + } + else + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + if ( $this->priority <= $priority ) + { + $status = $this->getTimeLine( $priority, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + $this->WriteFreeFormLine ( "$status $line \n" ); + } + } + } + public function WriteFreeFormLine( $line ) + { + if ( $this->Log_Status == PhpLog::LOG_OPEN && $this->priority != PhpLog::OFF ) + { + if (fwrite( $this->file_handle , $line ) === false) + { + $this->MessageQueue[] = "The file could not be written to. Check that appropriate permissions have been set."; + } + } + } + private function getRemoteIP() + { + foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) + { + if (array_key_exists($key, $_SERVER) === true) + { + foreach (explode(',', $_SERVER[$key]) as $ip) + { + $ip = trim($ip); + if (!empty($ip)) + { + return $ip; + } + } + } + } + return "_NO_IP"; + } + + private function getTimeLine( $level, $FilePath, $FileLine) + { + $time = date( $this->DateFormat ); + $ip = $this->getRemoteIP(); + switch( $level ) + { + case PhpLog::INFO: + return "$time, " . "INFO, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + case PhpLog::WARN: + return "$time, " . "WARN, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + case PhpLog::DEBUG: + return "$time, " . "DEBUG, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + case PhpLog::ERROR: + return "$time, " . "ERROR, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + case PhpLog::FATAL: + return "$time, " . "FATAL, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + default: + return "$time, " . "LOG, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + } + } + } +?> diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/PinBlock.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/PinBlock.php new file mode 100644 index 0000000..81f6d56 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/PinBlock.php @@ -0,0 +1,108 @@ + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/PublicEncrypte.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/PublicEncrypte.php new file mode 100644 index 0000000..9283e44 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/PublicEncrypte.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/SDKConfig.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/SDKConfig.php new file mode 100644 index 0000000..3a6102a --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/SDKConfig.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/common.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/common.php new file mode 100644 index 0000000..7005d38 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/common.php @@ -0,0 +1,125 @@ + $val ) { + if ($key == 'signature') { + continue; + } + $sign_str .= sprintf ( "%s=%s&", $key, $val ); + } + return substr ( $sign_str, 0, strlen ( $sign_str ) - 1 ); +} + +function coverStringToArray($str) { + $result = array (); + + if (! empty ( $str )) { + $temp = preg_split ( '/&/', $str ); + if (! empty ( $temp )) { + foreach ( $temp as $key => $val ) { + $arr = preg_split ( '/=/', $val, 2 ); + if (! empty ( $arr )) { + $k = $arr ['0']; + $v = $arr ['1']; + $result [$k] = $v; + } + } + } + } + return $result; +} + +function deal_params(&$params) { + + if (! empty ( $params ['customerInfo'] )) { + $params ['customerInfo'] = base64_decode ( $params ['customerInfo'] ); + } + + if (! empty ( $params ['encoding'] ) && strtoupper ( $params ['encoding'] ) == 'utf-8') { + foreach ( $params as $key => $val ) { + $params [$key] = iconv ( 'utf-8', 'UTF-8', $val ); + } + } +} + + +function deflate_file(&$params) { + global $log; + foreach ( $_FILES as $file ) { + $log->LogInfo ( "---------处理文件---------" ); + if (file_exists ( $file ['tmp_name'] )) { + $params ['fileName'] = $file ['name']; + + $file_content = file_get_contents ( $file ['tmp_name'] ); + $file_content_deflate = gzcompress ( $file_content ); + + $params ['fileContent'] = base64_encode ( $file_content_deflate ); + $log->LogInfo ( "压缩后文件内容为>" . base64_encode ( $file_content_deflate ) ); + } else { + $log->LogInfo ( ">>>>文件上传失败<<<<<" ); + } + } +} + + +function deal_file($params) { + global $log; + if (isset ( $params ['fileContent'] )) { + $log->LogInfo ( "---------处理后台报文返回的文件---------" ); + $fileContent = $params ['fileContent']; + + if (empty ( $fileContent )) { + $log->LogInfo ( '文件内容为空' ); + } else { + $content = gzuncompress ( base64_decode ( $fileContent ) ); + $root = SDK_FILE_DOWN_PATH; + $filePath = null; + if (empty ( $params ['fileName'] )) { + $log->LogInfo ( "文件名为空" ); + $filePath = $root . $params ['merId'] . '_' . $params ['batchNo'] . '_' . $params ['txnTime'] . 'txt'; + } else { + $filePath = $root . $params ['fileName']; + } + $handle = fopen ( $filePath, "w+" ); + if (! is_writable ( $filePath )) { + $log->LogInfo ( "文件:" . $filePath . "不可写,请检查!" ); + } else { + file_put_contents ( $filePath, $content ); + $log->LogInfo ( "文件位置 >:" . $filePath ); + } + fclose ( $handle ); + } + } +} + + +function create_html($params, $action) { + $encodeType = isset ( $params ['encoding'] ) ? $params ['encoding'] : 'UTF-8'; + $html = << + + + + +
    + +eot; + foreach ( $params as $key => $value ) { + $html .= " \n"; + } + $html .= << + + + +eot; + return $html; +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/httpClient.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/httpClient.php new file mode 100644 index 0000000..9369de2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/httpClient.php @@ -0,0 +1,34 @@ + $value ) { + $params_str .= ($key . '=' . (!isset ( $value ) ? '' : urlencode( $value )) . '&'); + } + return substr ( $params_str, 0, strlen ( $params_str ) - 1 ); +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/log.class.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/log.class.php new file mode 100644 index 0000000..8ded231 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/log.class.php @@ -0,0 +1,228 @@ +filename = date('Y-m-d', time()) . '.log'; $this->log_file = $this->createPath($filepath, $this->filename); + $this->MessageQueue = array(); + $this->priority = $priority; + date_default_timezone_set($timezone); + + if ( !file_exists($filepath) ) { + if(!empty($filepath)) { + if(!($this->_createDir($filepath))) + { + die("创建目录失败!"); + } + if ( !is_writable($this->log_file) ) + { + $this->Log_Status = PhpLog::OPEN_FAILED; + $this->MessageQueue[] = "The file exists, but could not be opened for writing. Check that appropriate permissions have been set."; + return; + } + } + } + + if ( $this->file_handle = fopen( $this->log_file , "a+" ) ) + { + $this->Log_Status = PhpLog::LOG_OPEN; + $this->MessageQueue[] = "The log file was opened successfully."; + } + else + { + $this->Log_Status = PhpLog::OPEN_FAILED; + $this->MessageQueue[] = "The file could not be opened. Check permissions."; + } + return; + } + + public function __destruct() + { + if ( $this->file_handle ) + fclose( $this->file_handle ); + } + + + private function _createDir($dir) + { + return is_dir($dir) or (self::_createDir(dirname($dir)) and mkdir($dir, 0777)); + } + + + private function createPath($dir, $filename) + { + if (empty($dir)) + { + return $filename; + } + else + { + return $dir . "/" . $filename; + } + } + + public function LogInfo($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::INFO, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + public function LogDebug($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::DEBUG, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + public function LogWarn($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::WARN, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + public function LogError($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::ERROR, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + public function LogFatal($line) + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + $this->Log( $line, PhpLog::FATAL, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + } + + + public function Log($line, $priority, $sFile, $iLine) + { + if ($iLine > 0) + { + $line = iconv('GBK', 'UTF-8', $line); + if ( $this->priority <= $priority ) + { + $status = $this->getTimeLine( $priority, $sFile, $iLine); + $this->WriteFreeFormLine ( "$status $line \n" ); + } + } + else + { + + $sAarray = array(); + $sAarray = debug_backtrace(); + $sGetFilePath = $sAarray[0]["file"]; + $sGetFileLine = $sAarray[0]["line"]; + if ( $this->priority <= $priority ) + { + $status = $this->getTimeLine( $priority, $sGetFilePath, $sGetFileLine); + unset($sAarray); + unset($sGetFilePath); + unset($sGetFileLine); + $this->WriteFreeFormLine ( "$status $line \n" ); + } + } + } + public function WriteFreeFormLine( $line ) + { + if ( $this->Log_Status == PhpLog::LOG_OPEN && $this->priority != PhpLog::OFF ) + { + if (fwrite( $this->file_handle , $line ) === false) + { + $this->MessageQueue[] = "The file could not be written to. Check that appropriate permissions have been set."; + } + } + } + private function getRemoteIP() + { + foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) + { + if (array_key_exists($key, $_SERVER) === true) + { + foreach (explode(',', $_SERVER[$key]) as $ip) + { + $ip = trim($ip); + if (!empty($ip)) + { + return $ip; + } + } + } + } + return "_NO_IP"; + } + + private function getTimeLine( $level, $FilePath, $FileLine) + { + $time = date( $this->DateFormat ); + $ip = $this->getRemoteIP(); + switch( $level ) + { + case PhpLog::INFO: + return "$time, " . "INFO, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + case PhpLog::WARN: + return "$time, " . "WARN, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + case PhpLog::DEBUG: + return "$time, " . "DEBUG, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + case PhpLog::ERROR: + return "$time, " . "ERROR, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + case PhpLog::FATAL: + return "$time, " . "FATAL, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + default: + return "$time, " . "LOG, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; + } + } + } +?> diff --git a/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/secureUtil.php b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/secureUtil.php new file mode 100644 index 0000000..fb66cc7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/unionpay/upacp_sdk_php/utf8/func/secureUtil.php @@ -0,0 +1,162 @@ +LogInfo ( '=====签名报文开始======' ); + if(isset($params['transTempUrl'])){ + unset($params['transTempUrl']); + } + $params_str = coverParamsToString ( $params ); + $log->LogInfo ( "签名key=val&...串 >" . $params_str ); + + $params_sha1x16 = sha1 ( $params_str, FALSE ); + $log->LogInfo ( "摘要sha1x16 >" . $params_sha1x16 ); + $cert_path = SDK_SIGN_CERT_PATH; + $private_key = getPrivateKey ( $cert_path ); + $sign_falg = openssl_sign ( $params_sha1x16, $signature, $private_key, OPENSSL_ALGO_SHA1 ); + if ($sign_falg) { + $signature_base64 = base64_encode ( $signature ); + $log->LogInfo ( "签名串为 >" . $signature_base64 ); + $params ['signature'] = $signature_base64; + } else { + $log->LogInfo ( ">>>>>签名失败<<<<<<<" ); + } + $log->LogInfo ( '=====签名报文结束======' ); +} + + +function verify($params) { + global $log; + $public_key = getPulbicKeyByCertId ( $params ['certId'] ); + $signature_str = $params ['signature']; + unset ( $params ['signature'] ); + $params_str = coverParamsToString ( $params ); + $log->LogInfo ( '报文去[signature] key=val&串>' . $params_str ); + $signature = base64_decode ( $signature_str ); + $params_sha1x16 = sha1 ( $params_str, FALSE ); + $log->LogInfo ( '摘要shax16>' . $params_sha1x16 ); + $isSuccess = openssl_verify ( $params_sha1x16, $signature,$public_key, OPENSSL_ALGO_SHA1 ); + $log->LogInfo ( $isSuccess ? '验签成功' : '验签失败' ); + return $isSuccess; +} + + +function getPulbicKeyByCertId($certId) { + global $log; + $log->LogInfo ( '报文返回的证书ID>' . $certId ); + $cert_dir = SDK_VERIFY_CERT_DIR; + $log->LogInfo ( '验证签名证书目录 :>' . $cert_dir ); + $handle = opendir ( $cert_dir ); + if ($handle) { + while ( $file = readdir ( $handle ) ) { + clearstatcache (); + $filePath = $cert_dir . '/' . $file; + if (is_file ( $filePath )) { + if (pathinfo ( $file, PATHINFO_EXTENSION ) == 'cer') { + if (getCertIdByCerPath ( $filePath ) == $certId) { + closedir ( $handle ); + $log->LogInfo ( '加载验签证书成功' ); + return getPublicKey ( $filePath ); + } + } + } + } + $log->LogInfo ( '没有找到证书ID为[' . $certId . ']的证书' ); + } else { + $log->LogInfo ( '证书目录 ' . $cert_dir . '不正确' ); + } + closedir ( $handle ); + return null; +} + + +function getCertId($cert_path) { + $pkcs12certdata = file_get_contents ( $cert_path ); + + openssl_pkcs12_read ( $pkcs12certdata, $certs, SDK_SIGN_CERT_PWD ); + $x509data = $certs ['cert']; + openssl_x509_read ( $x509data ); + $certdata = openssl_x509_parse ( $x509data ); + $cert_id = $certdata ['serialNumber']; + return $cert_id; +} + + +function getCertIdByCerPath($cert_path) { + $x509data = file_get_contents ( $cert_path ); + openssl_x509_read ( $x509data ); + $certdata = openssl_x509_parse ( $x509data ); + $cert_id = $certdata ['serialNumber']; + return $cert_id; +} + + +function getSignCertId() { + + return getCertId ( SDK_SIGN_CERT_PATH ); +} +function getEncryptCertId() { + return getCertIdByCerPath ( SDK_ENCRYPT_CERT_PATH ); +} + + +function getPublicKey($cert_path) { + return file_get_contents ( $cert_path ); +} + +function getPrivateKey($cert_path) { + $pkcs12 = file_get_contents ( $cert_path ); + openssl_pkcs12_read ( $pkcs12, $certs, SDK_SIGN_CERT_PWD ); + return $certs ['pkey']; +} + + +function encryptPan($pan) { + $cert_path = MPI_ENCRYPT_CERT_PATH; + $public_key = getPublicKey ( $cert_path ); + + openssl_public_encrypt ( $pan, $cryptPan, $public_key ); + return base64_encode ( $cryptPan ); +} + +function encryptPin($pan, $pwd) { + $cert_path = SDK_ENCRYPT_CERT_PATH; + $public_key = getPublicKey ( $cert_path ); + + return EncryptedPin ( $pwd, $pan, $public_key ); +} + +function encryptCvn2($cvn2) { + $cert_path = SDK_ENCRYPT_CERT_PATH; + $public_key = getPublicKey ( $cert_path ); + + openssl_public_encrypt ( $cvn2, $crypted, $public_key ); + + return base64_encode ( $crypted ); +} + +function encryptDate($certDate) { + $cert_path = SDK_ENCRYPT_CERT_PATH; + $public_key = getPublicKey ( $cert_path ); + + openssl_public_encrypt ( $certDate, $crypted, $public_key ); + + return base64_encode ( $crypted ); +} + + +function encryptDateType($certDataType) { + $cert_path = SDK_ENCRYPT_CERT_PATH; + $public_key = getPublicKey ( $cert_path ); + + openssl_public_encrypt ( $certDataType, $crypted, $public_key ); + + return base64_encode ( $crypted ); +} + +?> \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/WxPay.AppPay.php b/codes/agent/game-docker/api/payment/wechat/WxPay.AppPay.php new file mode 100644 index 0000000..991ad21 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/WxPay.AppPay.php @@ -0,0 +1,79 @@ + $v) + { + $buff .= $k . "=" . $v . "&"; + } + + $buff = trim($buff, "&"); + return $buff; + } + + /** + * 生成直接支付url,支付url有效期为2小时,模式二 + * @param WxPayUnifiedOrder $input + * @param array $wechatInfo + * @return array + * @throws WxPayException + */ + public function GetPayPrepayId($input, $wechatInfo) + { + if ($input->GetTrade_type() == "APP") + { + $result = WxPayApi::unifiedOrder($input, 6, $wechatInfo); + return $result; + } + } + + + /** + * + * 获取app支付的参数 + * @param array $UnifiedOrderResult 统一支付接口返回的数据 + * @param array $weixinInfo 微信公众号相关信息 + * @throws WxPayException + * + * @return string json数据,可直接填入js函数作为参数 + */ + public function GetAppApiParameters($UnifiedOrderResult, $weixinInfo) + { + if(!array_key_exists("appid", $UnifiedOrderResult) + || !array_key_exists("prepay_id", $UnifiedOrderResult) + || $UnifiedOrderResult['prepay_id'] == "") + { + throw new WxPayException("参数错误"); + } + + $appapi = new WxPayAppApiPay(); + $appapi->SetAppid($UnifiedOrderResult["appid"]); + $appapi->SetPartnerId($UnifiedOrderResult["mch_id"]); + $appapi->SetPrepayId($UnifiedOrderResult["prepay_id"]); + $timeStamp = time(); + $appapi->SetTimeStamp($timeStamp); + $appapi->SetNonceStr(WxPayApi::getNonceStr()); + $appapi->SetPackage("Sign=WXPay"); + $appapi->SetSign($appapi->MakeSign($weixinInfo)); + $back_arr=$appapi->GetValues(); + $back_arr['prepay_id']=$UnifiedOrderResult["prepay_id"]; + $parameters = json_encode($appapi->GetValues()); + return $parameters; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/WxPay.JsApiPay.php b/codes/agent/game-docker/api/payment/wechat/WxPay.JsApiPay.php new file mode 100644 index 0000000..574339d --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/WxPay.JsApiPay.php @@ -0,0 +1,207 @@ +__CreateOauthUrlForCode($baseUrl); + Header("Location: $url"); + exit(); + } else { + //获取code码,以获取openid + $code = $_GET['code']; + $openid = $this->getOpenidFromMp($code); + return $openid; + } + } + + /** + * + * 获取jsapi支付的参数 + * @param array $UnifiedOrderResult 统一支付接口返回的数据 + * @param array $weixinInfo 微信公众号相关信息 + * @throws WxPayException + * + * @return json数据,可直接填入js函数作为参数 + */ + public function GetJsApiParameters($UnifiedOrderResult, $weixinInfo) + { + if(!array_key_exists("appid", $UnifiedOrderResult) + || !array_key_exists("prepay_id", $UnifiedOrderResult) + || $UnifiedOrderResult['prepay_id'] == "") + { + throw new WxPayException("参数错误"); + } + $jsapi = new WxPayJsApiPay(); + $jsapi->SetAppid($UnifiedOrderResult["appid"]); + $timeStamp = time(); + $jsapi->SetTimeStamp("$timeStamp"); + $jsapi->SetNonceStr(WxPayApi::getNonceStr()); + $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']); + $jsapi->SetSignType("MD5"); + $jsapi->SetPaySign($jsapi->MakeSign($weixinInfo)); + $parameters = json_encode($jsapi->GetValues()); + return $parameters; + } + + /** + * + * 通过code从工作平台获取openid机器access_token + * @param string $code 微信跳转回来带上的code + * + * @return openid + */ + public function GetOpenidFromMp($code) + { + $url = $this->__CreateOauthUrlForOpenid($code); + //初始化curl + $ch = curl_init(); + //设置超时 + curl_setopt($ch, CURLOPT_TIMEOUT, $this->curl_timeout); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE); + curl_setopt($ch, CURLOPT_HEADER, FALSE); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0" + && WxPayConfig::CURL_PROXY_PORT != 0){ + curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST); + curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT); + } + //运行curl,结果以jason形式返回 + $res = curl_exec($ch); + curl_close($ch); + //取出openid + $data = json_decode($res,true); + $this->data = $data; + $openid = $data['openid']; + return $openid; + } + + /** + * + * 拼接签名字符串 + * @param array $urlObj + * + * @return 返回已经拼接好的字符串 + */ + private function ToUrlParams($urlObj) + { + $buff = ""; + foreach ($urlObj as $k => $v) + { + if($k != "sign"){ + $buff .= $k . "=" . $v . "&"; + } + } + + $buff = trim($buff, "&"); + return $buff; + } + + /** + * + * 获取地址js参数 + * + * @return 获取共享收货地址js函数需要的参数,json格式可以直接做参数使用 + */ + public function GetEditAddressParameters() + { + $getData = $this->data; + $data = array(); + $data["appid"] = WxPayConfig::APPID; + $data["url"] = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; + $time = time(); + $data["timestamp"] = "$time"; + $data["noncestr"] = "1234568"; + $data["accesstoken"] = $getData["access_token"]; + ksort($data); + $params = $this->ToUrlParams($data); + $addrSign = sha1($params); + + $afterData = array( + "addrSign" => $addrSign, + "signType" => "sha1", + "scope" => "jsapi_address", + "appId" => WxPayConfig::APPID, + "timeStamp" => $data["timestamp"], + "nonceStr" => $data["noncestr"] + ); + $parameters = json_encode($afterData); + return $parameters; + } + + /** + * + * 构造获取code的url连接 + * @param string $redirectUrl 微信服务器回跳的url,需要url编码 + * + * @return 返回构造好的url + */ + private function __CreateOauthUrlForCode($redirectUrl) + { + $urlObj["appid"] = WxPayConfig::APPID; + $urlObj["redirect_uri"] = "$redirectUrl"; + $urlObj["response_type"] = "code"; + $urlObj["scope"] = "snsapi_base"; + $urlObj["state"] = "STATE"."#wechat_redirect"; + $bizString = $this->ToUrlParams($urlObj); + return "https://open.weixin.qq.com/connect/oauth2/authorize?".$bizString; + } + + /** + * + * 构造获取open和access_toke的url地址 + * @param string $code,微信跳转带回的code + * + * @return 请求的url + */ + private function __CreateOauthUrlForOpenid($code) + { + $urlObj["appid"] = WxPayConfig::APPID; + $urlObj["secret"] = WxPayConfig::APPSECRET; + $urlObj["code"] = $code; + $urlObj["grant_type"] = "authorization_code"; + $bizString = $this->ToUrlParams($urlObj); + return "https://api.weixin.qq.com/sns/oauth2/access_token?".$bizString; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/WxPay.MicroPay.php b/codes/agent/game-docker/api/payment/wechat/WxPay.MicroPay.php new file mode 100644 index 0000000..af1fe3d --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/WxPay.MicroPay.php @@ -0,0 +1,147 @@ +GetOut_trade_no(); + + //②、接口调用成功,明确返回调用失败 + if($result["return_code"] == "SUCCESS" && + $result["result_code"] == "FAIL" && + $result["err_code"] != "USERPAYING" && + $result["err_code"] != "SYSTEMERROR") + { + return false; + } + + //③、确认支付是否成功 + $queryTimes = 10; + while($queryTimes > 0) + { + $succResult = 0; + $queryResult = $this->query($out_trade_no, $succResult); + //如果需要等待1s后继续 + if($succResult == 2){ + sleep(2); + continue; + } else if($succResult == 1){//查询成功 + return $queryResult; + } else {//订单交易失败 + return false; + } + } + + //④、次确认失败,则撤销订单 + if(!$this->cancel($out_trade_no)) + { + throw new WxpayException("撤销单失败!"); + } + + return false; + } + + /** + * + * 查询订单情况 + * @param string $out_trade_no 商户订单号 + * @param int $succCode 查询订单结果 + * @return 0 订单不成功,1表示订单成功,2表示继续等待 + */ + public function query($out_trade_no, &$succCode) + { + $queryOrderInput = new WxPayOrderQuery(); + $queryOrderInput->SetOut_trade_no($out_trade_no); + $result = WxPayApi::orderQuery($queryOrderInput); + + if($result["return_code"] == "SUCCESS" + && $result["result_code"] == "SUCCESS") + { + //支付成功 + if($result["trade_state"] == "SUCCESS"){ + $succCode = 1; + return $result; + } + //用户支付中 + else if($result["trade_state"] == "USERPAYING"){ + $succCode = 2; + return false; + } + } + + //如果返回错误码为“此交易订单号不存在”则直接认定失败 + if($result["err_code"] == "ORDERNOTEXIST") + { + $succCode = 0; + } else{ + //如果是系统错误,则后续继续 + $succCode = 2; + } + return false; + } + + /** + * + * 撤销订单,如果失败会重复调用10次 + * @param string $out_trade_no + * @param 调用深度 $depth + */ + public function cancel($out_trade_no, $depth = 0) + { + if($depth > 10){ + return false; + } + + $clostOrder = new WxPayReverse(); + $clostOrder->SetOut_trade_no($out_trade_no); + $result = WxPayApi::reverse($clostOrder); + + //接口调用失败 + if($result["return_code"] != "SUCCESS"){ + return false; + } + + //如果结果为success且不需要重新调用撤销,则表示撤销成功 + if($result["result_code"] != "SUCCESS" + && $result["recall"] == "N"){ + return true; + } else if($result["recall"] == "Y") { + return $this->cancel($out_trade_no, ++$depth); + } + return false; + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/WxPay.NativePay.php b/codes/agent/game-docker/api/payment/wechat/WxPay.NativePay.php new file mode 100644 index 0000000..5be0948 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/WxPay.NativePay.php @@ -0,0 +1,58 @@ +SetProduct_id($productId); + $values = WxpayApi::bizpayurl($biz); + $url = "weixin://wxpay/bizpayurl?" . $this->ToUrlParams($values); + return $url; + } + + /** + * + * 参数数组转换为url参数 + * @param array $urlObj + */ + private function ToUrlParams($urlObj) + { + $buff = ""; + foreach ($urlObj as $k => $v) + { + $buff .= $k . "=" . $v . "&"; + } + + $buff = trim($buff, "&"); + return $buff; + } + + /** + * 生成直接支付url,支付url有效期为2小时,模式二 + * @param WxPayUnifiedOrder $input + * @param array $wechatInfo + * @return array + * @throws WxPayException + */ + public function GetPayUrl($input, $wechatInfo) + { + if($input->GetTrade_type() == "NATIVE") + { + $result = WxPayApi::unifiedOrder($input, 6, $wechatInfo); + return $result; + } + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_cert.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_cert.p12 new file mode 100644 index 0000000..28f69d9 Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..38ec637 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..889d51c --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/apiclient_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..7a36225 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/rootca.pem @@ -0,0 +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 +-----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 new file mode 100644 index 0000000..e8a73dd --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1277120701/证书使用说明.txt @@ -0,0 +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进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 + 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ 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 new file mode 100644 index 0000000..8d896b7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..08994b5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1319664901/apiclient_key.pem @@ -0,0 +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----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_cert.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_cert.p12 new file mode 100644 index 0000000..cf656f7 Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..9e305d4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..61b83f2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/apiclient_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..7a36225 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/rootca.pem @@ -0,0 +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 +-----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 new file mode 100644 index 0000000..e8a73dd --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336943701/证书使用说明.txt @@ -0,0 +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进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 + 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336980601.zip b/codes/agent/game-docker/api/payment/wechat/cert/1336980601.zip new file mode 100644 index 0000000..13e60cf Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1336980601.zip differ diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_cert.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_cert.p12 new file mode 100644 index 0000000..351effc Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..ebb54e9 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..ebdc3d4 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/apiclient_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..7a36225 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/rootca.pem @@ -0,0 +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 +-----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 new file mode 100644 index 0000000..a775010 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1336980601/证书使用说明.txt @@ -0,0 +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 +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根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.zip b/codes/agent/game-docker/api/payment/wechat/cert/1345625501.zip new file mode 100644 index 0000000..f745eec Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1345625501.zip differ diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_cert.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_cert.p12 new file mode 100644 index 0000000..068a0a0 Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..455305e --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..de3fba2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/apiclient_key.pem @@ -0,0 +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----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1345625501/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/证书使用说明.txt new file mode 100644 index 0000000..a775010 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1345625501/证书使用说明.txt @@ -0,0 +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 +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根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 new file mode 100644 index 0000000..f1389fa --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..847648f --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1352126501/apiclient_key.pem @@ -0,0 +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----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_cert.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_cert.p12 new file mode 100644 index 0000000..82e69e2 Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..258d5c1 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..642f6bf --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/apiclient_key.pem @@ -0,0 +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----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1390950502/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/证书使用说明.txt new file mode 100644 index 0000000..a775010 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1390950502/证书使用说明.txt @@ -0,0 +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 +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根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.zip b/codes/agent/game-docker/api/payment/wechat/cert/1399351902.zip new file mode 100644 index 0000000..0a3e30b Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1399351902.zip differ diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_cert.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_cert.p12 new file mode 100644 index 0000000..07aa544 Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..14b3558 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..5400451 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/apiclient_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..7a36225 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/rootca.pem @@ -0,0 +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 +-----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 new file mode 100644 index 0000000..a775010 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1399351902/证书使用说明.txt @@ -0,0 +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 +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根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.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_cert.p12 new file mode 100644 index 0000000..b92705d Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..006c695 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..fd1b6d2 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/apiclient_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..7a36225 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/rootca.pem @@ -0,0 +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 +-----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 new file mode 100644 index 0000000..e8a73dd --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1430158002/证书使用说明.txt @@ -0,0 +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进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 + 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1435214302.zip b/codes/agent/game-docker/api/payment/wechat/cert/1435214302.zip new file mode 100644 index 0000000..684885d Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1435214302.zip differ diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_cert.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_cert.p12 new file mode 100644 index 0000000..64f12af Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..2c45c69 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..6705fb5 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/apiclient_key.pem @@ -0,0 +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----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1435214302/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/证书使用说明.txt new file mode 100644 index 0000000..a775010 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1435214302/证书使用说明.txt @@ -0,0 +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 +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根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.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_cert.p12 new file mode 100644 index 0000000..42f9b4f Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..6142b00 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..283a0f3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/apiclient_key.pem @@ -0,0 +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----- diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1482148292/证书使用说明.txt b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/证书使用说明.txt new file mode 100644 index 0000000..a775010 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1482148292/证书使用说明.txt @@ -0,0 +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 +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根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.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_cert.p12 new file mode 100644 index 0000000..3149999 Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..ff588b3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..f7269a0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/apiclient_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..7a36225 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/rootca.pem @@ -0,0 +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 +-----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 new file mode 100644 index 0000000..e8a73dd --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1488598262/证书使用说明.txt @@ -0,0 +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进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 + 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_cert.p12 b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_cert.p12 new file mode 100644 index 0000000..d2c7c9c Binary files /dev/null and b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_cert.p12 differ 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 new file mode 100644 index 0000000..29ff916 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_cert.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..bb7e51d --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/apiclient_key.pem @@ -0,0 +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----- 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 new file mode 100644 index 0000000..7a36225 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/rootca.pem @@ -0,0 +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 +-----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 new file mode 100644 index 0000000..e8a73dd --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/cert/1491648082/证书使用说明.txt @@ -0,0 +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进行调用时也需要验证所调用服务器及域名的真实性 + 该文件为签署微信支付证书的权威机构的根证书,可以用来验证微信支付服务器证书的真实性 + 某些环境和工具已经内置了若干权威机构的根证书,无需引用该证书也可以正常进行验证,这里提供给您在未内置所必须根证书的环境中载入使用 \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Api.php b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Api.php new file mode 100644 index 0000000..514d4c0 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Api.php @@ -0,0 +1,678 @@ +IsOut_trade_noSet()) + throw new WxPayException("缺少统一支付接口必填参数out_trade_no!"); + else if (!$inputObj->IsBodySet()) + throw new WxPayException("缺少统一支付接口必填参数body!"); + else if (!$inputObj->IsTotal_feeSet()) + throw new WxPayException("缺少统一支付接口必填参数total_fee!"); + else if (!$inputObj->IsTrade_typeSet()) + throw new WxPayException("缺少统一支付接口必填参数trade_type!"); + + //关联参数 + if ($inputObj->GetTrade_type() == "JSAPI" && !$inputObj->IsOpenidSet()) + throw new WxPayException("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!"); + + if ($inputObj->GetTrade_type() == "NATIVE" && !$inputObj->IsProduct_idSet()) + throw new WxPayException("统一支付接口中,缺少必填参数product_id!trade_type为JSAPI时,product_id为必填参数!"); + + + // 异步通知url未设置,则使用配置文件中的url + if (!$inputObj->IsNotify_urlSet()) + $inputObj->SetNotify_url(WxPayConfig::NOTIFY_URL); // 异步通知url + + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']); // 终端ip + //$inputObj->SetSpbill_create_ip("1.1.1.1"); + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + // 签名 + $inputObj->SetSign($wechatInfo); + $xml = $inputObj->ToXml(); + + $startTimeStamp = self::getMillisecond(); // 请求开始时间 + // 提交统一订单返回的数据 + $response = self::postXmlCurl($xml, $url, false, $timeOut); + + $result = WxPayResults::Init($response, $wechatInfo); + self::reportCostTime($url, $startTimeStamp, $result); // 上报请求花费时间 + + return $result; + } + + /** + * + * 查询订单,WxPayOrderQuery中out_trade_no、transaction_id至少填一个 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayOrderQuery $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + * @return 成功时返回,其他抛异常 + */ + public static function orderQuery($inputObj, $timeOut, $wechatInfo) + { + $url = "https://api.mch.weixin.qq.com/pay/orderquery"; + //检测必填参数 + if (!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) + throw new WxPayException("订单查询接口中,out_trade_no、transaction_id至少填一个!"); + + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($wechatInfo); // 签名 + $xml = $inputObj->ToXml(); + + $startTimeStamp = self::getMillisecond();//请求开始时间 + $response = self::postXmlCurl($xml, $url, false, $timeOut); + + + $result = WxPayResults::Init($response, $wechatInfo); + self::reportCostTime($url, $startTimeStamp, $result); // 上报请求花费时间 + + return $result; + } + + /** + * + * 关闭订单,WxPayCloseOrder中out_trade_no必填 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayCloseOrder $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + * @return 成功时返回,其他抛异常 + */ + public static function closeOrder($inputObj, $timeOut, $wechatInfo) + { + $url = "https://api.mch.weixin.qq.com/pay/closeorder"; + //检测必填参数 + if (!$inputObj->IsOut_trade_noSet()) + { + throw new WxPayException("订单查询接口中,out_trade_no必填!"); + } + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($wechatInfo);//签名 + $xml = $inputObj->ToXml(); + + $startTimeStamp = self::getMillisecond(); // 请求开始时间 + $response = self::postXmlCurl($xml, $url, false, $timeOut); + $result = WxPayResults::Init($response, $wechatInfo); + self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间 + + return $result; + } + + /** + * + * 申请退款,WxPayRefund中out_trade_no、transaction_id至少填一个且 + * out_refund_no、total_fee、refund_fee、op_user_id为必填参数 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayRefund $inputObj + * @param int $timeOut + * @param array $weixinInfo + * @param int $timeOut + * @throws WxPayException + * @return array 成功时返回,其他抛异常 + */ + public static function refund($inputObj, $timeOut = 6, $weixinInfo, $dbObj) + { + $url = "https://api.mch.weixin.qq.com/secapi/pay/refund"; + // 检测必填参数 + if (!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) + throw new WxPayException("退款申请接口中,out_trade_no、transaction_id至少填一个!"); + else if (!$inputObj->IsOut_refund_noSet()) + throw new WxPayException("退款申请接口中,缺少必填参数out_refund_no!"); + else if (!$inputObj->IsTotal_feeSet()) + throw new WxPayException("退款申请接口中,缺少必填参数total_fee!"); + else if (!$inputObj->IsRefund_feeSet()) + throw new WxPayException("退款申请接口中,缺少必填参数refund_fee!"); + else if (!$inputObj->IsOp_user_idSet()) + throw new WxPayException("退款申请接口中,缺少必填参数op_user_id!"); + + $inputObj->SetAppid($weixinInfo["appid"]); // 公众账号ID + $inputObj->SetMch_id($weixinInfo["mchid"]); // 商户号 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($weixinInfo);//签名 + $xml = $inputObj->ToXml(); + $startTimeStamp = self::getMillisecond(); // 请求开始时间 + $response = self::postXmlCurl($xml, $url, true, $timeOut, $weixinInfo); + //Log::DEBUG("退款回调消息:" . $response); + $result = WxPayResults::Init($response, $weixinInfo, 1, true, $dbObj); + self::reportCostTime($url, $startTimeStamp, $result); // 上报请求花费时间 + + return $result; + } + + /** + * + * 查询退款 + * 提交退款申请后,通过调用该接口查询退款状态。退款有一定延时, + * 用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。 + * WxPayRefundQuery中out_refund_no、out_trade_no、transaction_id、refund_id四个参数必填一个 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayRefundQuery $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + * @return 成功时返回,其他抛异常 + */ + public static function refundQuery($inputObj, $timeOut, $wechatInfo) + { + $url = "https://api.mch.weixin.qq.com/pay/refundquery"; + //检测必填参数 + if (!$inputObj->IsOut_refund_noSet() && + !$inputObj->IsOut_trade_noSet() && + !$inputObj->IsTransaction_idSet() && + !$inputObj->IsRefund_idSet() + ) + { + throw new WxPayException("退款查询接口中,out_refund_no、out_trade_no、transaction_id、refund_id四个参数必填一个!"); + } + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($wechatInfo); // 签名 + $xml = $inputObj->ToXml(); + + $startTimeStamp = self::getMillisecond(); // 请求开始时间 + $response = self::postXmlCurl($xml, $url, false, $timeOut); + $result = WxPayResults::Init($response, $wechatInfo); + self::reportCostTime($url, $startTimeStamp, $result); // 上报请求花费时间 + + return $result; + } + + /** + * 下载对账单,WxPayDownloadBill中bill_date为必填参数 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayDownloadBill $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + * @return 成功时返回,其他抛异常 + */ + public static function downloadBill($inputObj, $timeOut, $wechatInfo) + { + $url = "https://api.mch.weixin.qq.com/pay/downloadbill"; + //检测必填参数 + if (!$inputObj->IsBill_dateSet()) + { + throw new WxPayException("对账单接口中,缺少必填参数bill_date!"); + } + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($wechatInfo); // 签名 + $xml = $inputObj->ToXml(); + + $response = self::postXmlCurl($xml, $url, false, $timeOut); + if (substr($response, 0, 5) == "") + { + return ""; + } + return $response; + } + + /** + * 提交被扫支付API + * 收银员使用扫码设备读取微信用户刷卡授权码以后,二维码或条码信息传送至商户收银台, + * 由商户收银台或者商户后台调用该接口发起支付。 + * WxPayWxPayMicroPay中body、out_trade_no、total_fee、auth_code参数必填 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayWxPayMicroPay $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + * @return 成功时返回,其他抛异常 + */ + public static function micropay($inputObj, $timeOut, $wechatInfo) + { + $url = "https://api.mch.weixin.qq.com/pay/micropay"; + //检测必填参数 + if (!$inputObj->IsBodySet()) + throw new WxPayException("提交被扫支付API接口中,缺少必填参数body!"); + else if (!$inputObj->IsOut_trade_noSet()) + throw new WxPayException("提交被扫支付API接口中,缺少必填参数out_trade_no!"); + else if (!$inputObj->IsTotal_feeSet()) + throw new WxPayException("提交被扫支付API接口中,缺少必填参数total_fee!"); + else if (!$inputObj->IsAuth_codeSet()) + throw new WxPayException("提交被扫支付API接口中,缺少必填参数auth_code!"); + + $inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']);//终端ip + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($wechatInfo); // 签名 + $xml = $inputObj->ToXml(); + + $startTimeStamp = self::getMillisecond(); // 请求开始时间 + $response = self::postXmlCurl($xml, $url, false, $timeOut); + $result = WxPayResults::Init($response, $wechatInfo); + self::reportCostTime($url, $startTimeStamp, $result); // 上报请求花费时间 + + return $result; + } + + /** + * + * 撤销订单API接口,WxPayReverse中参数out_trade_no和transaction_id必须填写一个 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayReverse $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + */ + public static function reverse($inputObj, $timeOut, $wechatInfo) + { + $url = "https://api.mch.weixin.qq.com/secapi/pay/reverse"; + //检测必填参数 + if (!$inputObj->IsOut_trade_noSet() && !$inputObj->IsTransaction_idSet()) + throw new WxPayException("撤销订单API接口中,参数out_trade_no和transaction_id必须填写一个!"); + + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetNonce_str(self::getNonceStr());//随机字符串 + + $inputObj->SetSign($wechatInfo); // 签名 + $xml = $inputObj->ToXml(); + + $startTimeStamp = self::getMillisecond();//请求开始时间 + $response = self::postXmlCurl($xml, $url, true, $timeOut); + $result = WxPayResults::Init($response, $wechatInfo); + self::reportCostTime($url, $startTimeStamp, $result);//上报请求花费时间 + + return $result; + } + + /** + * + * 测速上报,该方法内部封装在report中,使用时请注意异常流程 + * WxPayReport中interface_url、return_code、result_code、user_ip、execute_time_必填 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayReport $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + * @return 成功时返回,其他抛异常 + */ + public static function report($inputObj, $timeOut, $wechatInfo) + { + $url = "https://api.mch.weixin.qq.com/payitil/report"; + //检测必填参数 + if (!$inputObj->IsInterface_urlSet()) + throw new WxPayException("接口URL,缺少必填参数interface_url!"); + if (!$inputObj->IsReturn_codeSet()) + throw new WxPayException("返回状态码,缺少必填参数return_code!"); + if (!$inputObj->IsResult_codeSet()) + throw new WxPayException("业务结果,缺少必填参数result_code!"); + if (!$inputObj->IsUser_ipSet()) + throw new WxPayException("访问接口IP,缺少必填参数user_ip!"); + if (!$inputObj->IsExecute_time_Set()) + throw new WxPayException("接口耗时,缺少必填参数execute_time_!"); + + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetUser_ip($_SERVER['REMOTE_ADDR']);//终端ip + $inputObj->SetTime(date("YmdHis")); // 商户上报时间 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($wechatInfo); // 签名 + $xml = $inputObj->ToXml(); + + $startTimeStamp = self::getMillisecond(); // 请求开始时间 + $response = self::postXmlCurl($xml, $url, false, $timeOut); + return $response; + } + + /** + * + * 生成二维码规则,模式一生成支付二维码 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayBizPayUrl $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + * @return 成功时返回,其他抛异常 + */ + public static function bizpayurl($inputObj, $timeOut, $wechatInfo) + { + if (!$inputObj->IsProduct_idSet()) + throw new WxPayException("生成二维码,缺少必填参数product_id!"); + + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetTime_stamp(time()); // 时间戳 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($wechatInfo); // 签名 + + return $inputObj->GetValues(); + } + + /** + * + * 转换短链接 + * 该接口主要用于扫码原生支付模式一中的二维码链接转成短链接(weixin://wxpay/s/XXXXXX), + * 减小二维码数据量,提升扫描速度和精确度。 + * appid、mchid、spbill_create_ip、nonce_str不需要填入 + * @param WxPayShortUrl $inputObj + * @param int $timeOut + * @param array $wechatInfo + * @throws WxPayException + * @return 成功时返回,其他抛异常 + */ + public static function shorturl($inputObj, $timeOut, $wechatInfo) + { + $url = "https://api.mch.weixin.qq.com/tools/shorturl"; + //检测必填参数 + if (!$inputObj->IsLong_urlSet()) + throw new WxPayException("需要转换的URL,签名用原串,传输需URL encode!"); + + $inputObj->SetAppid($wechatInfo['appid']); // 公众账号ID + $inputObj->SetMch_id($wechatInfo['mchid']); // 商户号 + $inputObj->SetNonce_str(self::getNonceStr()); // 随机字符串 + + $inputObj->SetSign($wechatInfo); // 签名 + $xml = $inputObj->ToXml(); + + $startTimeStamp = self::getMillisecond(); // 请求开始时间 + $response = self::postXmlCurl($xml, $url, false, $timeOut); + $result = WxPayResults::Init($response, $wechatInfo); + self::reportCostTime($url, $startTimeStamp, $result); // 上报请求花费时间 + + return $result; + } + + /** + * + * 支付结果通用通知 + * @param function $callback + * 直接回调函数使用方法: notify(you_function); + * 回调类成员函数方法:notify(array($this, you_function)); + * $callback 原型为:function function_name($data){} + */ + public static function notify($callback, &$msg, $xml, $isXML, $db = null) + { + //如果返回成功则验证签名 + try + { + // 假如是XML格式的话 + if ($isXML) + $result = WxPayResults::Init($xml, "", 2, true, $db); + else + $result = WxPayResults::Init($_GET, "", 2, false, $db); + } + catch (WxPayException $e) + { + $msg = $e->errorMessage(); + return false; + } + + return call_user_func($callback, $result, $db); + } + + /** + * + * 发送普通红包 + * @param WxPaySendredpack $inputObj + * @param int $timeOut + * @param array $weixinInfo + * @throws WxPayException + * @return array 成功时返回,其他抛异常 + */ + public static function sendredpack($inputObj, $timeOut, $weixinInfo) + { + $url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack"; + // 检测必填参数 + if (!$inputObj->IsMch_billnoSet()) + throw new WxPayException("发送红包接口中,缺少必填参数mch_billno!"); + else if (!$inputObj->IsSend_nameSet()) + throw new WxPayException("发送红包接口中,缺少必填参数send_name!"); + else if (!$inputObj->IsRe_openidSet()) + throw new WxPayException("发送红包接口中,缺少必填参数re_openid!"); + else if (!$inputObj->IsTotal_amountSet()) + throw new WxPayException("发送红包接口中,缺少必填参数total_amount!"); + else if (!$inputObj->IsTotal_numSet()) + throw new WxPayException("发送红包接口中,缺少必填参数total_num!"); + else if (!$inputObj->IsWishingSet()) + throw new WxPayException("发送红包接口中,缺少必填参数wishing!"); + else if (!$inputObj->IsClient_ipSet()) + throw new WxPayException("发送红包接口中,缺少必填参数client_ip!"); + else if (!$inputObj->IsAct_nameSet()) + throw new WxPayException("发送红包接口中,缺少必填参数act_name!"); + else if (!$inputObj->IsRemarkSet()) + throw new WxPayException("发送红包接口中,缺少必填参数remark!"); + + $inputObj->SetAppid($weixinInfo["appid"]); /// 公众账号ID + $inputObj->SetMch_id($weixinInfo["mchid"]); /// 商户号 + $inputObj->SetNonce_str(self::getNonceStr()); /// 随机字符串 + + $inputObj->SetSign($weixinInfo); /// 签名 + $xml = $inputObj->ToXml(); + //Log::DEBUG("发送普通红包消息:" . $xml); + $startTimeStamp = self::getMillisecond(); /// 请求开始时间 + $response = self::postXmlCurl($xml, $url, true, $timeOut, $weixinInfo); + //Log::DEBUG("发送普通红包消息:" . $response); + $result = WxPayResults::Init($response, $weixinInfo, 1, true, null, false); + self::reportCostTime($url, $startTimeStamp, $result); /// 上报请求花费时间 + + return $result; + } + + /** + * + * 产生随机字符串,不长于32位 + * @param int $length + * @return 产生的随机字符串 + */ + public static function getNonceStr($length = 32) + { + $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; + $str = ""; + for ($i = 0; $i < $length; $i++) + { + $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); + } + return $str; + } + + /** + * 直接输出xml + * @param string $xml + */ + public static function replyNotify($xml) + { + echo $xml; + } + + /** + * + * 上报数据, 上报的时候将屏蔽所有异常流程 + * @param string $usrl + * @param int $startTimeStamp + * @param array $data + */ + private static function reportCostTime($url, $startTimeStamp, $data) + { + //如果不需要上报数据 + if (WxPayConfig::REPORT_LEVENL == 0) + { + return; + } + //如果仅失败上报 + if (WxPayConfig::REPORT_LEVENL == 1 && + array_key_exists("return_code", $data) && + $data["return_code"] == "SUCCESS" && + array_key_exists("result_code", $data) && + $data["result_code"] == "SUCCESS" + ) + { + return; + } + + //上报逻辑 + $endTimeStamp = self::getMillisecond(); + $objInput = new WxPayReport(); + $objInput->SetInterface_url($url); + $objInput->SetExecute_time_($endTimeStamp - $startTimeStamp); + //返回状态码 + if (array_key_exists("return_code", $data)) + $objInput->SetReturn_code($data["return_code"]); + //返回信息 + if (array_key_exists("return_msg", $data)) + $objInput->SetReturn_msg($data["return_msg"]); + //业务结果 + if (array_key_exists("result_code", $data)) + $objInput->SetResult_code($data["result_code"]); + //错误代码 + if (array_key_exists("err_code", $data)) + $objInput->SetErr_code($data["err_code"]); + //错误代码描述 + if (array_key_exists("err_code_des", $data)) + $objInput->SetErr_code_des($data["err_code_des"]); + //商户订单号 + if (array_key_exists("out_trade_no", $data)) + $objInput->SetOut_trade_no($data["out_trade_no"]); + //设备号 + if (array_key_exists("device_info", $data)) + $objInput->SetDevice_info($data["device_info"]); + + try + { + self::report($objInput); + } + catch (WxPayException $e) + { + //不做任何处理 + } + } + + /** + * 以post方式提交xml到对应的接口url + * + * @param string $xml 需要post的xml数据 + * @param string $url url + * @param bool $useCert 是否需要证书,默认不需要 + * @param int $second url执行超时时间,默认30s + * @throws WxPayException + */ + private static function postXmlCurl($xml, $url, $useCert = false, $second = 30, $weixinInfo = null) + { + // return ihttp_request($url,$xml,false); + $ch = curl_init(); + //设置超时 + curl_setopt($ch, CURLOPT_TIMEOUT, $second); + + //如果有配置代理这里就设置代理 + if (WxPayConfig::CURL_PROXY_HOST != "0.0.0.0" && WxPayConfig::CURL_PROXY_PORT != 0) + { + curl_setopt($ch, CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST); + curl_setopt($ch, CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT); + } + curl_setopt($ch, CURLOPT_URL, $url); + // edit by benton begin + //curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE); + //curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验 + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//严格校验 + // edit by benton end + //设置header + curl_setopt($ch, CURLOPT_HEADER, false); + //要求结果为字符串且输出到屏幕上 + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + + if ($useCert == true) + { + //设置证书 + //使用证书:cert 与 key 分别属于两个.pem文件 + if (!empty($weixinInfo) && count($weixinInfo) > 0) + { + curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM'); + //curl_setopt($ch, CURLOPT_SSLCERT, str_replace("WEIXINMCHID", $weixinInfo["mchid"], WxPayConfig::SSLCERT_PATH)); + curl_setopt($ch, CURLOPT_SSLCERT, sprintf(WxPayConfig::SSLCERT_PATH(), $weixinInfo['mchid'])); + + curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM'); + //curl_setopt($ch, CURLOPT_SSLKEY, str_replace("WEIXINMCHID", $weixinInfo["mchid"], WxPayConfig::SSLKEY_PATH)); + curl_setopt($ch, CURLOPT_SSLKEY, sprintf(WxPayConfig::SSLKEY_PATH(), $weixinInfo['mchid'])); + + ///var_dump(sprintf(WxPayConfig::SSLCERT_PATH(), $weixinInfo['mchid'])); + ///echo '
    ', PHP_EOL; + ///var_dump(sprintf(WxPayConfig::SSLKEY_PATH(), $weixinInfo['mchid'])); + } + else + throw new WxPayException("未传入公众号相关信息。"); + } + //post提交方式 + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); + //运行curl + $data = curl_exec($ch); + //返回结果 + if ($data) + { + curl_close($ch); + return $data; + } + else + { + $error = curl_errno($ch); + $message = curl_error($ch); + curl_close($ch); + throw new WxPayException("curl出错,错误码:{$error},错误信息:{$message}"); + } + } + + /** + * 获取毫秒级别的时间戳 + */ + private static function getMillisecond() + { + //获取毫秒的时间戳 + $time = explode(" ", microtime()); + $time = $time[1] . ($time[0] * 1000); + $time2 = explode(".", $time); + $time = $time2[0]; + return $time; + } +} + diff --git a/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Config.php b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Config.php new file mode 100644 index 0000000..17ca0d3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Config.php @@ -0,0 +1,80 @@ +appid = $appid; + $this->mchid = $mchid; + $this->key = $key; + $this->appsecret = $appsecret; + } + //=======【基本信息设置】===================================== + // + /** + * TODO: 修改这里配置为您自己申请的商户信息 + * 微信公众号信息配置 + * + * APPID:绑定支付的APPID(必须配置,开户邮件中可查看) + * + * MCHID:商户号(必须配置,开户邮件中可查看) + * + * KEY:商户支付密钥,参考开户邮件设置(必须配置,登录商户平台自行设置) + * 设置地址:https://pay.weixin.qq.com/index.php/account/api_cert + * + * APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置), + * 获取地址:https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev&token=2005451881&lang=zh_CN + * @var string + */ + public $appid = ''; + public $mchid = ''; + public $key = ''; + public $appsecret = ''; + + //=======【证书路径设置】===================================== + /** + * TODO:设置商户证书路径 + * 证书路径,注意应该填写绝对路径(仅退款、撤销订单时需要,可登录商户平台下载, + * API证书下载地址:https://pay.weixin.qq.com/index.php/account/api_cert,下载之前需要安装商户操作证书) + * @var path + */ + //const SSLCERT_PATH = 'E:\\java\\apache24www\\syapi\\payment\\wechat\\cert\\WEIXINMCHID\\apiclient_cert.pem'; + //const SSLKEY_PATH = 'E:\\java\\apache24www\\syapi\\payment\\wechat\\cert\\WEIXINMCHID\\apiclient_key.pem'; + static public function SSLCERT_PATH() + { + return dirname(dirname(__FILE__)) . '\\cert\\%s\\apiclient_cert.pem'; + } + + static public function SSLKEY_PATH() + { + return dirname(dirname(__FILE__)) . '\\cert\\%s\\apiclient_key.pem'; + } + + //=======【curl代理设置】=================================== + /** + * TODO:这里设置代理机器,只有需要代理的时候才设置,不需要代理,请设置为0.0.0.0和0 + * 本例程通过curl使用HTTP POST方法,此处可修改代理服务器, + * 默认CURL_PROXY_HOST=0.0.0.0和CURL_PROXY_PORT=0,此时不开启代理(如有需要才设置) + * @var unknown_type + */ + const CURL_PROXY_HOST = "0.0.0.0";//"10.152.18.220"; + const CURL_PROXY_PORT = 0;//8080; + + //=======【上报信息配置】=================================== + /** + * TODO:接口调用上报等级,默认紧错误上报(注意:上报超时间为【1s】,上报无论成败【永不抛出异常】, + * 不会影响接口调用流程),开启上报之后,方便微信监控请求调用的质量,建议至少 + * 开启错误上报。 + * 上报等级,0.关闭上报; 1.仅错误出错上报; 2.全量上报 + * @var int + */ + const REPORT_LEVENL = 1; + + /** + * todo: 默认的通知地址 + */ + const NOTIFY_URL = ''; +} diff --git a/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Data.php b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Data.php new file mode 100644 index 0000000..c60983e --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Data.php @@ -0,0 +1,3948 @@ +MakeSign($wechatInfo); + $this->values['sign'] = $sign; + return $sign; + } + + /** + * 获取签名,详见签名生成算法的值 + * @return 值 + **/ + public function GetSign() + { + return $this->values['sign']; + } + + /** + * 判断签名,详见签名生成算法是否存在 + * @return true 或 false + **/ + public function IsSignSet() + { + return array_key_exists('sign', $this->values); + } + + /** + * 输出xml字符 + * @throws WxPayException + **/ + public function ToXml() + { + if (!is_array($this->values) + || count($this->values) <= 0 + ) + { + throw new WxPayException("数组数据异常!"); + } + + $xml = ""; + foreach ($this->values as $key => $val) + { + if (is_numeric($val)) + { + $xml .= "<" . $key . ">" . $val . ""; + } + else + { + $xml .= "<" . $key . ">"; + } + } + $xml .= ""; + return $xml; + } + + /** + * 将xml转为array + * @param string $xml + * @throws WxPayException + */ + public function FromXml($xml, $type = 1) + { + if (!$xml) + { + throw new WxPayException("xml数据异常!"); + } + // 将XML转为array + // 禁止引用外部xml实体 + libxml_disable_entity_loader(true); + + //if( $type==1 ){ + //$this->values = json_decode(json_encode(@isimplexml_load_string($xml['content'], 'SimpleXMLElement', LIBXML_NOCDATA)), true); + //} else { + //$this->values = json_decode(json_encode(isimplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)),true); + $this->values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true); + //} + + //$this->values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true); + return $this->values; + } + + /** + * 格式化参数格式化成url参数 + */ + public function ToUrlParams() + { + $buff = ""; + foreach ($this->values as $k => $v) + { + if ($k != "sign" && $v != "" && !is_array($v)) + { + $buff .= $k . "=" . $v . "&"; + } + } + + $buff = trim($buff, "&"); + return $buff; + } + + /** + * 生成签名 + * # + * @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值 + */ + public function MakeSign($wechatInfo) + { + //签名步骤一:按字典序排序参数 + ksort($this->values); + $string = $this->ToUrlParams(); + //签名步骤二:在string后加入KEY + $string = $string . "&key=" . $wechatInfo["signkey"]; + //签名步骤三:MD5加密 + $string = md5($string); + //签名步骤四:所有字符转为大写 + $result = strtoupper($string); + return $result; + } + + /** + * 获取设置的值 + */ + public function GetValues() + { + return $this->values; + } +} + +/** + * + * 接口调用结果类 + * @path("/wxpay_result") + */ +class WxPayResults extends WxPayDataBase +{ + /** + * + * 检测签名 + */ + public function CheckSign($wechatInfo) + { + //fix异常 + if (!$this->IsSignSet()) + { + throw new WxPayException("签名错误!"); + } + + $sign = $this->MakeSign($wechatInfo); + if ($this->GetSign() == $sign) + { + return true; + } + throw new WxPayException("签名错误!"); + } + + /** + * + * 使用数组初始化 + * @param array $array + */ + public function FromArray($array) + { + $this->values = $array; + } + + /** + * + * 使用数组初始化对象 + * @param array $array + * @param 是否检测签名 $noCheckSign + */ + public static function InitFromArray($array, $noCheckSign = false) + { + $obj = new self(); + $obj->FromArray($array); + if ($noCheckSign == false) + { + $obj->CheckSign(); + } + return $obj; + } + + /** + * + * 设置参数 + * @param string $key + * @param string $value + */ + public function SetData($key, $value) + { + $this->values[$key] = $value; + } + + /** + * 将xml转为array + * @param string $xml + * @param array $wechatInfo 公众号的相关信息,当不是微信回调的时候,该参数必须传入 + * @param int $is_notify 表示是否为微信回调 2:代表微信回调 + * @param bool $is_xml + * @param null $dbObj + * @param bool $needCheckSign + * @return array + * @throws WxPayException + */ + static public function Init($xml, $wechatInfo, $is_notify = 1, $is_xml = true, $dbObj = null, $needCheckSign = true) + { + $obj = new self(); + + if ($is_notify == 1) + { + $obj->FromXml($xml, 1); + } + else + { + // 微信回调 + if ($is_xml) + { + // 格式为XML格式 + $obj->FromXml($xml, 2); + } + else + { + $obj->values = $xml; + } + } + + // 假如是微信回调的话,则需要从回传的参数中解析商户ID,然后查询公众号信息 begin + if ($is_notify == 2) + { + if (array_key_exists("attach", $obj->GetValues())) + { + $attach = $obj->values['attach']; + if (!empty($attach)) + { + $attach = explode('======', $attach); + if (count($attach) == 2) + { + $business_id = (int)$attach[1]; // 第二个元素是商户ID + $businessList = Sql::select('syweb_business.*') + ->from('syweb_business') + ->where('syweb_business.id=?', $business_id) + ->get($dbObj, null); + if (!empty($businessList) && count($businessList) > 0) + { + $wechatInfo["appid"] = $businessList[0]["app_id"]; + $wechatInfo["secret"] = $businessList[0]["weixin_secret_appid"]; + $wechatInfo["mchid"] = $businessList[0]["mchid"]; + $wechatInfo["signkey"] = $businessList[0]["signkey"]; + } + else + { + return error(10004, "找不到商户信息。"); + } + } + else + { + return error(10003, "回调参数attach必须包含两个元素。"); + } + } + else + { + return error(10002, "回调参数attach不能为空。"); + } + } + else + { + return error(10001, "回调参数缺少attach参数。"); + } + } + // 假如是微信回调的话,则需要从回传的参数中解析商户ID,然后查询公众号信息 end + + if ($is_xml) + { + //fix bug 2015-06-29,当服务返回非SUCCESS,则不需要验证签名,直接返回 + if ($obj->values['return_code'] != 'SUCCESS') + { + return $obj->GetValues(); + } + } + + // 假如需要验证签名,则进行签名验证,发送普通红包由于微信未返回签名,则不验证 + if ($needCheckSign) + { + $obj->CheckSign($wechatInfo); + } + return $obj->GetValues(); + } +} + +/** + * + * 回调基础类 + * @author widyhu + * + */ +class WxPayNotifyReply extends WxPayDataBase +{ + /** + * + * 设置错误码 FAIL 或者 SUCCESS + * @param string + */ + public function SetReturn_code($return_code) + { + $this->values['return_code'] = $return_code; + } + + /** + * + * 获取错误码 FAIL 或者 SUCCESS + * @return string $return_code + */ + public function GetReturn_code() + { + return $this->values['return_code']; + } + + /** + * + * 设置错误信息 + * @param string $return_code + */ + public function SetReturn_msg($return_msg) + { + $this->values['return_msg'] = $return_msg; + } + + /** + * + * 获取错误信息 + * @return string + */ + public function GetReturn_msg() + { + return $this->values['return_msg']; + } + + /** + * + * 设置返回参数 + * @param string $key + * @param string $value + */ + public function SetData($key, $value) + { + $this->values[$key] = $value; + } +} + +/** + * + * 统一下单输入对象 + * @author widyhu + * + */ +class WxPayUnifiedOrder extends WxPayDataBase +{ + /** + * 设置微信支付Key + * @param string $value + **/ + public function SetPayKey($value) + { + $this->values['payKey'] = $value; + } + + /** + * 获取微信支付Key + * @return 值 + **/ + public function GetPayKey() + { + return $this->values['payKey']; + } + + /** + * 设置微信SecretID + * @param string $value + **/ + public function SetSecretId($value) + { + $this->values['secretId'] = $value; + } + + /** + * 获取微信SecretID + * @return 值 + **/ + public function GetSecretId() + { + return $this->values['secretId']; + } + + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置微信支付分配的终端设备号,商户自定义 + * @param string $value + **/ + public function SetDevice_info($value) + { + $this->values['device_info'] = $value; + } + + /** + * 获取微信支付分配的终端设备号,商户自定义的值 + * @return 值 + **/ + public function GetDevice_info() + { + return $this->values['device_info']; + } + + /** + * 判断微信支付分配的终端设备号,商户自定义是否存在 + * @return true 或 false + **/ + public function IsDevice_infoSet() + { + return array_key_exists('device_info', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } + + /** + * 设置商品或支付单简要描述 + * @param string $value + **/ + public function SetBody($value) + { + $this->values['body'] = $value; + } + + /** + * 获取商品或支付单简要描述的值 + * @return 值 + **/ + public function GetBody() + { + return $this->values['body']; + } + + /** + * 判断商品或支付单简要描述是否存在 + * @return true 或 false + **/ + public function IsBodySet() + { + return array_key_exists('body', $this->values); + } + + /** + * 设置商品名称明细列表 + * @param string $value + **/ + public function SetDetail($value) + { + $this->values['detail'] = $value; + } + + /** + * 获取商品名称明细列表的值 + * @return 值 + **/ + public function GetDetail() + { + return $this->values['detail']; + } + + /** + * 判断商品名称明细列表是否存在 + * @return true 或 false + **/ + public function IsDetailSet() + { + return array_key_exists('detail', $this->values); + } + + /** + * 设置附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 + * @param string $value + **/ + public function SetAttach($value) + { + $this->values['attach'] = $value; + } + + /** + * 获取附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据的值 + * @return 值 + **/ + public function GetAttach() + { + return $this->values['attach']; + } + + /** + * 判断附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据是否存在 + * @return true 或 false + **/ + public function IsAttachSet() + { + return array_key_exists('attach', $this->values); + } + + + /** + * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号 + * @param string $value + **/ + public function SetOut_trade_no($value) + { + $this->values['out_trade_no'] = $value; + } + + /** + * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值 + * @return 值 + **/ + public function GetOut_trade_no() + { + return $this->values['out_trade_no']; + } + + /** + * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在 + * @return true 或 false + **/ + public function IsOut_trade_noSet() + { + return array_key_exists('out_trade_no', $this->values); + } + + /** + * 设置符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 + * @param string $value + **/ + public function SetFee_type($value) + { + $this->values['fee_type'] = $value; + } + + /** + * 获取符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值 + * @return 值 + **/ + public function GetFee_type() + { + return $this->values['fee_type']; + } + + /** + * 判断符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在 + * @return true 或 false + **/ + public function IsFee_typeSet() + { + return array_key_exists('fee_type', $this->values); + } + + /** + * 设置订单总金额,只能为整数,详见支付金额 + * @param string $value + **/ + public function SetTotal_fee($value) + { + $this->values['total_fee'] = $value; + } + + /** + * 获取订单总金额,只能为整数,详见支付金额的值 + * @return 值 + **/ + public function GetTotal_fee() + { + return $this->values['total_fee']; + } + + /** + * 判断订单总金额,只能为整数,详见支付金额是否存在 + * @return true 或 false + **/ + public function IsTotal_feeSet() + { + return array_key_exists('total_fee', $this->values); + } + + + /** + * 设置APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。 + * @param string $value + **/ + public function SetSpbill_create_ip($value) + { + $this->values['spbill_create_ip'] = $value; + } + + /** + * 获取APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。的值 + * @return 值 + **/ + public function GetSpbill_create_ip() + { + return $this->values['spbill_create_ip']; + } + + /** + * 判断APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。是否存在 + * @return true 或 false + **/ + public function IsSpbill_create_ipSet() + { + return array_key_exists('spbill_create_ip', $this->values); + } + + + /** + * 设置订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则 + * @param string $value + **/ + public function SetTime_start($value) + { + $this->values['time_start'] = $value; + } + + /** + * 获取订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则的值 + * @return 值 + **/ + public function GetTime_start() + { + return $this->values['time_start']; + } + + /** + * 判断订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则是否存在 + * @return true 或 false + **/ + public function IsTime_startSet() + { + return array_key_exists('time_start', $this->values); + } + + + /** + * 设置订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则 + * @param string $value + **/ + public function SetTime_expire($value) + { + $this->values['time_expire'] = $value; + } + + /** + * 获取订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则的值 + * @return 值 + **/ + public function GetTime_expire() + { + return $this->values['time_expire']; + } + + /** + * 判断订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则是否存在 + * @return true 或 false + **/ + public function IsTime_expireSet() + { + return array_key_exists('time_expire', $this->values); + } + + + /** + * 设置商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠 + * @param string $value + **/ + public function SetGoods_tag($value) + { + $this->values['goods_tag'] = $value; + } + + /** + * 获取商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠的值 + * @return 值 + **/ + public function GetGoods_tag() + { + return $this->values['goods_tag']; + } + + /** + * 判断商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠是否存在 + * @return true 或 false + **/ + public function IsGoods_tagSet() + { + return array_key_exists('goods_tag', $this->values); + } + + + /** + * 设置接收微信支付异步通知回调地址 + * @param string $value + **/ + public function SetNotify_url($value) + { + $this->values['notify_url'] = $value; + } + + /** + * 获取接收微信支付异步通知回调地址的值 + * @return 值 + **/ + public function GetNotify_url() + { + return $this->values['notify_url']; + } + + /** + * 判断接收微信支付异步通知回调地址是否存在 + * @return true 或 false + **/ + public function IsNotify_urlSet() + { + return array_key_exists('notify_url', $this->values); + } + + + /** + * 设置取值如下:JSAPI,NATIVE,APP,详细说明见参数规定 + * @param string $value + **/ + public function SetTrade_type($value) + { + $this->values['trade_type'] = $value; + } + + /** + * 获取取值如下:JSAPI,NATIVE,APP,详细说明见参数规定的值 + * @return 值 + **/ + public function GetTrade_type() + { + return $this->values['trade_type']; + } + + /** + * 判断取值如下:JSAPI,NATIVE,APP,详细说明见参数规定是否存在 + * @return true 或 false + **/ + public function IsTrade_typeSet() + { + return array_key_exists('trade_type', $this->values); + } + + + /** + * 设置trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。 + * @param string $value + **/ + public function SetProduct_id($value) + { + $this->values['product_id'] = $value; + } + + /** + * 获取trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。的值 + * @return 值 + **/ + public function GetProduct_id() + { + return $this->values['product_id']; + } + + /** + * 判断trade_type=NATIVE,此参数必传。此id为二维码中包含的商品ID,商户自行定义。是否存在 + * @return true 或 false + **/ + public function IsProduct_idSet() + { + return array_key_exists('product_id', $this->values); + } + + + /** + * 设置trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 + * @param string $value + **/ + public function SetOpenid($value) + { + $this->values['openid'] = $value; + } + + /** + * 获取trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 的值 + * @return 值 + **/ + public function GetOpenid() + { + return $this->values['openid']; + } + + /** + * 判断trade_type=JSAPI,此参数必传,用户在商户appid下的唯一标识。下单前需要调用【网页授权获取用户信息】接口获取到用户的Openid。 是否存在 + * @return true 或 false + **/ + public function IsOpenidSet() + { + return array_key_exists('openid', $this->values); + } + + + /** + * 场景信息 + * 该字段用于上报支付的场景信息,针对H5支付有以下三种场景,请根据对应场景上报,H5支付不建议在APP端使用,针对场景1,2请接入APP支付,不然可能会出现兼容性问题 + + 1,IOS移动应用 + {"h5_info": //h5支付固定传"h5_info" + {"type": "", //场景类型 + "app_name": "", //应用名 + "bundle_id": "" //bundle_id + } + } + + 2,安卓移动应用 + {"h5_info": //h5支付固定传"h5_info" + {"type": "", //场景类型 + "app_name": "", //应用名 + "package_name": "" //包名 + } + } + + 3,WAP网站应用 + {"h5_info": //h5支付固定传"h5_info" + {"type": "", //场景类型 + "wap_url": "",//WAP网站URL地址 + "wap_name": "" //WAP 网站名 + } + } + * @param $value + */ + public function SetSceneInfo($value) + { + $this->values['scene_info'] = $value; + } +} + +/** + * + * 订单查询输入对象 + * @author widyhu + * + */ +class WxPayOrderQuery extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置微信的订单号,优先使用 + * @param string $value + **/ + public function SetTransaction_id($value) + { + $this->values['transaction_id'] = $value; + } + + /** + * 获取微信的订单号,优先使用的值 + * @return 值 + **/ + public function GetTransaction_id() + { + return $this->values['transaction_id']; + } + + /** + * 判断微信的订单号,优先使用是否存在 + * @return true 或 false + **/ + public function IsTransaction_idSet() + { + return array_key_exists('transaction_id', $this->values); + } + + + /** + * 设置商户系统内部的订单号,当没提供transaction_id时需要传这个。 + * @param string $value + **/ + public function SetOut_trade_no($value) + { + $this->values['out_trade_no'] = $value; + } + + /** + * 获取商户系统内部的订单号,当没提供transaction_id时需要传这个。的值 + * @return 值 + **/ + public function GetOut_trade_no() + { + return $this->values['out_trade_no']; + } + + /** + * 判断商户系统内部的订单号,当没提供transaction_id时需要传这个。是否存在 + * @return true 或 false + **/ + public function IsOut_trade_noSet() + { + return array_key_exists('out_trade_no', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } +} + +/** + * + * 关闭订单输入对象 + * @author widyhu + * + */ +class WxPayCloseOrder extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置商户系统内部的订单号 + * @param string $value + **/ + public function SetOut_trade_no($value) + { + $this->values['out_trade_no'] = $value; + } + + /** + * 获取商户系统内部的订单号的值 + * @return 值 + **/ + public function GetOut_trade_no() + { + return $this->values['out_trade_no']; + } + + /** + * 判断商户系统内部的订单号是否存在 + * @return true 或 false + **/ + public function IsOut_trade_noSet() + { + return array_key_exists('out_trade_no', $this->values); + } + + + /** + * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } +} + +/** + * + * 提交退款输入对象 + * @author widyhu + * + */ +class WxPayRefund extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置微信支付分配的终端设备号,与下单一致 + * @param string $value + **/ + public function SetDevice_info($value) + { + $this->values['device_info'] = $value; + } + + /** + * 获取微信支付分配的终端设备号,与下单一致的值 + * @return 值 + **/ + public function GetDevice_info() + { + return $this->values['device_info']; + } + + /** + * 判断微信支付分配的终端设备号,与下单一致是否存在 + * @return true 或 false + **/ + public function IsDevice_infoSet() + { + return array_key_exists('device_info', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } + + /** + * 设置微信订单号 + * @param string $value + **/ + public function SetTransaction_id($value) + { + $this->values['transaction_id'] = $value; + } + + /** + * 获取微信订单号的值 + * @return 值 + **/ + public function GetTransaction_id() + { + return $this->values['transaction_id']; + } + + /** + * 判断微信订单号是否存在 + * @return true 或 false + **/ + public function IsTransaction_idSet() + { + return array_key_exists('transaction_id', $this->values); + } + + + /** + * 设置商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no + * @param string $value + **/ + public function SetOut_trade_no($value) + { + $this->values['out_trade_no'] = $value; + } + + /** + * 获取商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no的值 + * @return 值 + **/ + public function GetOut_trade_no() + { + return $this->values['out_trade_no']; + } + + /** + * 判断商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no是否存在 + * @return true 或 false + **/ + public function IsOut_trade_noSet() + { + return array_key_exists('out_trade_no', $this->values); + } + + + /** + * 设置商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔 + * @param string $value + **/ + public function SetOut_refund_no($value) + { + $this->values['out_refund_no'] = $value; + } + + /** + * 获取商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔的值 + * @return 值 + **/ + public function GetOut_refund_no() + { + return $this->values['out_refund_no']; + } + + /** + * 判断商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔是否存在 + * @return true 或 false + **/ + public function IsOut_refund_noSet() + { + return array_key_exists('out_refund_no', $this->values); + } + + + /** + * 设置订单总金额,单位为分,只能为整数,详见支付金额 + * @param string $value + **/ + public function SetTotal_fee($value) + { + $this->values['total_fee'] = $value; + } + + /** + * 获取订单总金额,单位为分,只能为整数,详见支付金额的值 + * @return 值 + **/ + public function GetTotal_fee() + { + return $this->values['total_fee']; + } + + /** + * 判断订单总金额,单位为分,只能为整数,详见支付金额是否存在 + * @return true 或 false + **/ + public function IsTotal_feeSet() + { + return array_key_exists('total_fee', $this->values); + } + + + /** + * 设置退款总金额,订单总金额,单位为分,只能为整数,详见支付金额 + * @param string $value + **/ + public function SetRefund_fee($value) + { + $this->values['refund_fee'] = $value; + } + + /** + * 获取退款总金额,订单总金额,单位为分,只能为整数,详见支付金额的值 + * @return 值 + **/ + public function GetRefund_fee() + { + return $this->values['refund_fee']; + } + + /** + * 判断退款总金额,订单总金额,单位为分,只能为整数,详见支付金额是否存在 + * @return true 或 false + **/ + public function IsRefund_feeSet() + { + return array_key_exists('refund_fee', $this->values); + } + + + /** + * 设置货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 + * @param string $value + **/ + public function SetRefund_fee_type($value) + { + $this->values['refund_fee_type'] = $value; + } + + /** + * 获取货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值 + * @return 值 + **/ + public function GetRefund_fee_type() + { + return $this->values['refund_fee_type']; + } + + /** + * 判断货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在 + * @return true 或 false + **/ + public function IsRefund_fee_typeSet() + { + return array_key_exists('refund_fee_type', $this->values); + } + + + /** + * 设置操作员帐号, 默认为商户号 + * @param string $value + **/ + public function SetOp_user_id($value) + { + $this->values['op_user_id'] = $value; + } + + /** + * 获取操作员帐号, 默认为商户号的值 + * @return 值 + **/ + public function GetOp_user_id() + { + return $this->values['op_user_id']; + } + + /** + * 判断操作员帐号, 默认为商户号是否存在 + * @return true 或 false + **/ + public function IsOp_user_idSet() + { + return array_key_exists('op_user_id', $this->values); + } +} + +/** + * + * 退款查询输入对象 + * @author widyhu + * + */ +class WxPayRefundQuery extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置微信支付分配的终端设备号 + * @param string $value + **/ + public function SetDevice_info($value) + { + $this->values['device_info'] = $value; + } + + /** + * 获取微信支付分配的终端设备号的值 + * @return 值 + **/ + public function GetDevice_info() + { + return $this->values['device_info']; + } + + /** + * 判断微信支付分配的终端设备号是否存在 + * @return true 或 false + **/ + public function IsDevice_infoSet() + { + return array_key_exists('device_info', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } + + /** + * 设置微信订单号 + * @param string $value + **/ + public function SetTransaction_id($value) + { + $this->values['transaction_id'] = $value; + } + + /** + * 获取微信订单号的值 + * @return 值 + **/ + public function GetTransaction_id() + { + return $this->values['transaction_id']; + } + + /** + * 判断微信订单号是否存在 + * @return true 或 false + **/ + public function IsTransaction_idSet() + { + return array_key_exists('transaction_id', $this->values); + } + + + /** + * 设置商户系统内部的订单号 + * @param string $value + **/ + public function SetOut_trade_no($value) + { + $this->values['out_trade_no'] = $value; + } + + /** + * 获取商户系统内部的订单号的值 + * @return 值 + **/ + public function GetOut_trade_no() + { + return $this->values['out_trade_no']; + } + + /** + * 判断商户系统内部的订单号是否存在 + * @return true 或 false + **/ + public function IsOut_trade_noSet() + { + return array_key_exists('out_trade_no', $this->values); + } + + + /** + * 设置商户退款单号 + * @param string $value + **/ + public function SetOut_refund_no($value) + { + $this->values['out_refund_no'] = $value; + } + + /** + * 获取商户退款单号的值 + * @return 值 + **/ + public function GetOut_refund_no() + { + return $this->values['out_refund_no']; + } + + /** + * 判断商户退款单号是否存在 + * @return true 或 false + **/ + public function IsOut_refund_noSet() + { + return array_key_exists('out_refund_no', $this->values); + } + + + /** + * 设置微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no + * @param string $value + **/ + public function SetRefund_id($value) + { + $this->values['refund_id'] = $value; + } + + /** + * 获取微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no的值 + * @return 值 + **/ + public function GetRefund_id() + { + return $this->values['refund_id']; + } + + /** + * 判断微信退款单号refund_id、out_refund_no、out_trade_no、transaction_id四个参数必填一个,如果同时存在优先级为:refund_id>out_refund_no>transaction_id>out_trade_no是否存在 + * @return true 或 false + **/ + public function IsRefund_idSet() + { + return array_key_exists('refund_id', $this->values); + } +} + +/** + * + * 下载对账单输入对象 + * @author widyhu + * + */ +class WxPayDownloadBill extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单 + * @param string $value + **/ + public function SetDevice_info($value) + { + $this->values['device_info'] = $value; + } + + /** + * 获取微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单的值 + * @return 值 + **/ + public function GetDevice_info() + { + return $this->values['device_info']; + } + + /** + * 判断微信支付分配的终端设备号,填写此字段,只下载该设备号的对账单是否存在 + * @return true 或 false + **/ + public function IsDevice_infoSet() + { + return array_key_exists('device_info', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } + + /** + * 设置下载对账单的日期,格式:20140603 + * @param string $value + **/ + public function SetBill_date($value) + { + $this->values['bill_date'] = $value; + } + + /** + * 获取下载对账单的日期,格式:20140603的值 + * @return 值 + **/ + public function GetBill_date() + { + return $this->values['bill_date']; + } + + /** + * 判断下载对账单的日期,格式:20140603是否存在 + * @return true 或 false + **/ + public function IsBill_dateSet() + { + return array_key_exists('bill_date', $this->values); + } + + + /** + * 设置ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单 + * @param string $value + **/ + public function SetBill_type($value) + { + $this->values['bill_type'] = $value; + } + + /** + * 获取ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单的值 + * @return 值 + **/ + public function GetBill_type() + { + return $this->values['bill_type']; + } + + /** + * 判断ALL,返回当日所有订单信息,默认值SUCCESS,返回当日成功支付的订单REFUND,返回当日退款订单REVOKED,已撤销的订单是否存在 + * @return true 或 false + **/ + public function IsBill_typeSet() + { + return array_key_exists('bill_type', $this->values); + } +} + +/** + * + * 测速上报输入对象 + * @author widyhu + * + */ +class WxPayReport extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置微信支付分配的终端设备号,商户自定义 + * @param string $value + **/ + public function SetDevice_info($value) + { + $this->values['device_info'] = $value; + } + + /** + * 获取微信支付分配的终端设备号,商户自定义的值 + * @return 值 + **/ + public function GetDevice_info() + { + return $this->values['device_info']; + } + + /** + * 判断微信支付分配的终端设备号,商户自定义是否存在 + * @return true 或 false + **/ + public function IsDevice_infoSet() + { + return array_key_exists('device_info', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } + + + /** + * 设置上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。 + * @param string $value + **/ + public function SetInterface_url($value) + { + $this->values['interface_url'] = $value; + } + + /** + * 获取上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。的值 + * @return 值 + **/ + public function GetInterface_url() + { + return $this->values['interface_url']; + } + + /** + * 判断上报对应的接口的完整URL,类似:https://api.mch.weixin.qq.com/pay/unifiedorder对于被扫支付,为更好的和商户共同分析一次业务行为的整体耗时情况,对于两种接入模式,请都在门店侧对一次被扫行为进行一次单独的整体上报,上报URL指定为:https://api.mch.weixin.qq.com/pay/micropay/total关于两种接入模式具体可参考本文档章节:被扫支付商户接入模式其它接口调用仍然按照调用一次,上报一次来进行。是否存在 + * @return true 或 false + **/ + public function IsInterface_urlSet() + { + return array_key_exists('interface_url', $this->values); + } + + + /** + * 设置接口耗时情况,单位为毫秒 + * @param string $value + **/ + public function SetExecute_time_($value) + { + $this->values['execute_time_'] = $value; + } + + /** + * 获取接口耗时情况,单位为毫秒的值 + * @return 值 + **/ + public function GetExecute_time_() + { + return $this->values['execute_time_']; + } + + /** + * 判断接口耗时情况,单位为毫秒是否存在 + * @return true 或 false + **/ + public function IsExecute_time_Set() + { + return array_key_exists('execute_time_', $this->values); + } + + + /** + * 设置SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断 + * @param string $value + **/ + public function SetReturn_code($value) + { + $this->values['return_code'] = $value; + } + + /** + * 获取SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断的值 + * @return 值 + **/ + public function GetReturn_code() + { + return $this->values['return_code']; + } + + /** + * 判断SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断是否存在 + * @return true 或 false + **/ + public function IsReturn_codeSet() + { + return array_key_exists('return_code', $this->values); + } + + + /** + * 设置返回信息,如非空,为错误原因签名失败参数格式校验错误 + * @param string $value + **/ + public function SetReturn_msg($value) + { + $this->values['return_msg'] = $value; + } + + /** + * 获取返回信息,如非空,为错误原因签名失败参数格式校验错误的值 + * @return 值 + **/ + public function GetReturn_msg() + { + return $this->values['return_msg']; + } + + /** + * 判断返回信息,如非空,为错误原因签名失败参数格式校验错误是否存在 + * @return true 或 false + **/ + public function IsReturn_msgSet() + { + return array_key_exists('return_msg', $this->values); + } + + + /** + * 设置SUCCESS/FAIL + * @param string $value + **/ + public function SetResult_code($value) + { + $this->values['result_code'] = $value; + } + + /** + * 获取SUCCESS/FAIL的值 + * @return 值 + **/ + public function GetResult_code() + { + return $this->values['result_code']; + } + + /** + * 判断SUCCESS/FAIL是否存在 + * @return true 或 false + **/ + public function IsResult_codeSet() + { + return array_key_exists('result_code', $this->values); + } + + + /** + * 设置ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误 + * @param string $value + **/ + public function SetErr_code($value) + { + $this->values['err_code'] = $value; + } + + /** + * 获取ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误的值 + * @return 值 + **/ + public function GetErr_code() + { + return $this->values['err_code']; + } + + /** + * 判断ORDERNOTEXIST—订单不存在SYSTEMERROR—系统错误是否存在 + * @return true 或 false + **/ + public function IsErr_codeSet() + { + return array_key_exists('err_code', $this->values); + } + + + /** + * 设置结果信息描述 + * @param string $value + **/ + public function SetErr_code_des($value) + { + $this->values['err_code_des'] = $value; + } + + /** + * 获取结果信息描述的值 + * @return 值 + **/ + public function GetErr_code_des() + { + return $this->values['err_code_des']; + } + + /** + * 判断结果信息描述是否存在 + * @return true 或 false + **/ + public function IsErr_code_desSet() + { + return array_key_exists('err_code_des', $this->values); + } + + + /** + * 设置商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。 + * @param string $value + **/ + public function SetOut_trade_no($value) + { + $this->values['out_trade_no'] = $value; + } + + /** + * 获取商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。 的值 + * @return 值 + **/ + public function GetOut_trade_no() + { + return $this->values['out_trade_no']; + } + + /** + * 判断商户系统内部的订单号,商户可以在上报时提供相关商户订单号方便微信支付更好的提高服务质量。 是否存在 + * @return true 或 false + **/ + public function IsOut_trade_noSet() + { + return array_key_exists('out_trade_no', $this->values); + } + + + /** + * 设置发起接口调用时的机器IP + * @param string $value + **/ + public function SetUser_ip($value) + { + $this->values['user_ip'] = $value; + } + + /** + * 获取发起接口调用时的机器IP 的值 + * @return 值 + **/ + public function GetUser_ip() + { + return $this->values['user_ip']; + } + + /** + * 判断发起接口调用时的机器IP 是否存在 + * @return true 或 false + **/ + public function IsUser_ipSet() + { + return array_key_exists('user_ip', $this->values); + } + + + /** + * 设置系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则 + * @param string $value + **/ + public function SetTime($value) + { + $this->values['time'] = $value; + } + + /** + * 获取系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则的值 + * @return 值 + **/ + public function GetTime() + { + return $this->values['time']; + } + + /** + * 判断系统时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。其他详见时间规则是否存在 + * @return true 或 false + **/ + public function IsTimeSet() + { + return array_key_exists('time', $this->values); + } +} + +/** + * + * 短链转换输入对象 + * @author widyhu + * + */ +class WxPayShortUrl extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置需要转换的URL,签名用原串,传输需URL encode + * @param string $value + **/ + public function SetLong_url($value) + { + $this->values['long_url'] = $value; + } + + /** + * 获取需要转换的URL,签名用原串,传输需URL encode的值 + * @return 值 + **/ + public function GetLong_url() + { + return $this->values['long_url']; + } + + /** + * 判断需要转换的URL,签名用原串,传输需URL encode是否存在 + * @return true 或 false + **/ + public function IsLong_urlSet() + { + return array_key_exists('long_url', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } +} + +/** + * + * 提交被扫输入对象 + * @author widyhu + * + */ +class WxPayMicroPay extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置终端设备号(商户自定义,如门店编号) + * @param string $value + **/ + public function SetDevice_info($value) + { + $this->values['device_info'] = $value; + } + + /** + * 获取终端设备号(商户自定义,如门店编号)的值 + * @return 值 + **/ + public function GetDevice_info() + { + return $this->values['device_info']; + } + + /** + * 判断终端设备号(商户自定义,如门店编号)是否存在 + * @return true 或 false + **/ + public function IsDevice_infoSet() + { + return array_key_exists('device_info', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } + + /** + * 设置商品或支付单简要描述 + * @param string $value + **/ + public function SetBody($value) + { + $this->values['body'] = $value; + } + + /** + * 获取商品或支付单简要描述的值 + * @return 值 + **/ + public function GetBody() + { + return $this->values['body']; + } + + /** + * 判断商品或支付单简要描述是否存在 + * @return true 或 false + **/ + public function IsBodySet() + { + return array_key_exists('body', $this->values); + } + + + /** + * 设置商品名称明细列表 + * @param string $value + **/ + public function SetDetail($value) + { + $this->values['detail'] = $value; + } + + /** + * 获取商品名称明细列表的值 + * @return 值 + **/ + public function GetDetail() + { + return $this->values['detail']; + } + + /** + * 判断商品名称明细列表是否存在 + * @return true 或 false + **/ + public function IsDetailSet() + { + return array_key_exists('detail', $this->values); + } + + + /** + * 设置附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据 + * @param string $value + **/ + public function SetAttach($value) + { + $this->values['attach'] = $value; + } + + /** + * 获取附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据的值 + * @return 值 + **/ + public function GetAttach() + { + return $this->values['attach']; + } + + /** + * 判断附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据是否存在 + * @return true 或 false + **/ + public function IsAttachSet() + { + return array_key_exists('attach', $this->values); + } + + + /** + * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号 + * @param string $value + **/ + public function SetOut_trade_no($value) + { + $this->values['out_trade_no'] = $value; + } + + /** + * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值 + * @return 值 + **/ + public function GetOut_trade_no() + { + return $this->values['out_trade_no']; + } + + /** + * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在 + * @return true 或 false + **/ + public function IsOut_trade_noSet() + { + return array_key_exists('out_trade_no', $this->values); + } + + + /** + * 设置订单总金额,单位为分,只能为整数,详见支付金额 + * @param string $value + **/ + public function SetTotal_fee($value) + { + $this->values['total_fee'] = $value; + } + + /** + * 获取订单总金额,单位为分,只能为整数,详见支付金额的值 + * @return 值 + **/ + public function GetTotal_fee() + { + return $this->values['total_fee']; + } + + /** + * 判断订单总金额,单位为分,只能为整数,详见支付金额是否存在 + * @return true 或 false + **/ + public function IsTotal_feeSet() + { + return array_key_exists('total_fee', $this->values); + } + + + /** + * 设置符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型 + * @param string $value + **/ + public function SetFee_type($value) + { + $this->values['fee_type'] = $value; + } + + /** + * 获取符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型的值 + * @return 值 + **/ + public function GetFee_type() + { + return $this->values['fee_type']; + } + + /** + * 判断符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型是否存在 + * @return true 或 false + **/ + public function IsFee_typeSet() + { + return array_key_exists('fee_type', $this->values); + } + + + /** + * 设置调用微信支付API的机器IP + * @param string $value + **/ + public function SetSpbill_create_ip($value) + { + $this->values['spbill_create_ip'] = $value; + } + + /** + * 获取调用微信支付API的机器IP 的值 + * @return 值 + **/ + public function GetSpbill_create_ip() + { + return $this->values['spbill_create_ip']; + } + + /** + * 判断调用微信支付API的机器IP 是否存在 + * @return true 或 false + **/ + public function IsSpbill_create_ipSet() + { + return array_key_exists('spbill_create_ip', $this->values); + } + + + /** + * 设置订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则 + * @param string $value + **/ + public function SetTime_start($value) + { + $this->values['time_start'] = $value; + } + + /** + * 获取订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则的值 + * @return 值 + **/ + public function GetTime_start() + { + return $this->values['time_start']; + } + + /** + * 判断订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则是否存在 + * @return true 或 false + **/ + public function IsTime_startSet() + { + return array_key_exists('time_start', $this->values); + } + + + /** + * 设置订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则 + * @param string $value + **/ + public function SetTime_expire($value) + { + $this->values['time_expire'] = $value; + } + + /** + * 获取订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则的值 + * @return 值 + **/ + public function GetTime_expire() + { + return $this->values['time_expire']; + } + + /** + * 判断订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。详见时间规则是否存在 + * @return true 或 false + **/ + public function IsTime_expireSet() + { + return array_key_exists('time_expire', $this->values); + } + + + /** + * 设置商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠 + * @param string $value + **/ + public function SetGoods_tag($value) + { + $this->values['goods_tag'] = $value; + } + + /** + * 获取商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠的值 + * @return 值 + **/ + public function GetGoods_tag() + { + return $this->values['goods_tag']; + } + + /** + * 判断商品标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠是否存在 + * @return true 或 false + **/ + public function IsGoods_tagSet() + { + return array_key_exists('goods_tag', $this->values); + } + + + /** + * 设置扫码支付授权码,设备读取用户微信中的条码或者二维码信息 + * @param string $value + **/ + public function SetAuth_code($value) + { + $this->values['auth_code'] = $value; + } + + /** + * 获取扫码支付授权码,设备读取用户微信中的条码或者二维码信息的值 + * @return 值 + **/ + public function GetAuth_code() + { + return $this->values['auth_code']; + } + + /** + * 判断扫码支付授权码,设备读取用户微信中的条码或者二维码信息是否存在 + * @return true 或 false + **/ + public function IsAuth_codeSet() + { + return array_key_exists('auth_code', $this->values); + } +} + +/** + * + * 撤销输入对象 + * @author widyhu + * + */ +class WxPayReverse extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + + /** + * 设置微信的订单号,优先使用 + * @param string $value + **/ + public function SetTransaction_id($value) + { + $this->values['transaction_id'] = $value; + } + + /** + * 获取微信的订单号,优先使用的值 + * @return 值 + **/ + public function GetTransaction_id() + { + return $this->values['transaction_id']; + } + + /** + * 判断微信的订单号,优先使用是否存在 + * @return true 或 false + **/ + public function IsTransaction_idSet() + { + return array_key_exists('transaction_id', $this->values); + } + + + /** + * 设置商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no + * @param string $value + **/ + public function SetOut_trade_no($value) + { + $this->values['out_trade_no'] = $value; + } + + /** + * 获取商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no的值 + * @return 值 + **/ + public function GetOut_trade_no() + { + return $this->values['out_trade_no']; + } + + /** + * 判断商户系统内部的订单号,transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no是否存在 + * @return true 或 false + **/ + public function IsOut_trade_noSet() + { + return array_key_exists('out_trade_no', $this->values); + } + + + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } +} + +/** + * + * 提交JSAPI输入对象 + * @author widyhu + * + */ +class WxPayJsApiPay extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appId'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appId']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appId', $this->values); + } + + + /** + * 设置支付时间戳 + * @param string $value + **/ + public function SetTimeStamp($value) + { + $this->values['timeStamp'] = $value; + } + + /** + * 获取支付时间戳的值 + * @return 值 + **/ + public function GetTimeStamp() + { + return $this->values['timeStamp']; + } + + /** + * 判断支付时间戳是否存在 + * @return true 或 false + **/ + public function IsTimeStampSet() + { + return array_key_exists('timeStamp', $this->values); + } + + /** + * 随机字符串 + * @param string $value + **/ + public function SetNonceStr($value) + { + $this->values['nonceStr'] = $value; + } + + /** + * 获取notify随机字符串值 + * @return 值 + **/ + public function GetReturn_code() + { + return $this->values['nonceStr']; + } + + /** + * 判断随机字符串是否存在 + * @return true 或 false + **/ + public function IsReturn_codeSet() + { + return array_key_exists('nonceStr', $this->values); + } + + + /** + * 设置订单详情扩展字符串 + * @param string $value + **/ + public function SetPackage($value) + { + $this->values['package'] = $value; + } + + /** + * 获取订单详情扩展字符串的值 + * @return 值 + **/ + public function GetPackage() + { + return $this->values['package']; + } + + /** + * 判断订单详情扩展字符串是否存在 + * @return true 或 false + **/ + public function IsPackageSet() + { + return array_key_exists('package', $this->values); + } + + /** + * 设置签名方式 + * @param string $value + **/ + public function SetSignType($value) + { + $this->values['signType'] = $value; + } + + /** + * 获取签名方式 + * @return 值 + **/ + public function GetSignType() + { + return $this->values['signType']; + } + + /** + * 判断签名方式是否存在 + * @return true 或 false + **/ + public function IsSignTypeSet() + { + return array_key_exists('signType', $this->values); + } + + /** + * 设置签名方式 + * @param string $value + **/ + public function SetPaySign($value) + { + $this->values['paySign'] = $value; + } + + /** + * 获取签名方式 + * @return 值 + **/ + public function GetPaySign() + { + return $this->values['paySign']; + } + + /** + * 判断签名方式是否存在 + * @return true 或 false + **/ + public function IsPaySignSet() + { + return array_key_exists('paySign', $this->values); + } +} + +/** + * + * 扫码支付模式一生成二维码参数 + * @author widyhu + * + */ +class WxPayBizPayUrl extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + /** + * 设置支付时间戳 + * @param string $value + **/ + public function SetTime_stamp($value) + { + $this->values['time_stamp'] = $value; + } + + /** + * 获取支付时间戳的值 + * @return 值 + **/ + public function GetTime_stamp() + { + return $this->values['time_stamp']; + } + + /** + * 判断支付时间戳是否存在 + * @return true 或 false + **/ + public function IsTime_stampSet() + { + return array_key_exists('time_stamp', $this->values); + } + + /** + * 设置随机字符串 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } + + /** + * 设置商品ID + * @param string $value + **/ + public function SetProduct_id($value) + { + $this->values['product_id'] = $value; + } + + /** + * 获取商品ID的值 + * @return 值 + **/ + public function GetProduct_id() + { + return $this->values['product_id']; + } + + /** + * 判断商品ID是否存在 + * @return true 或 false + **/ + public function IsProduct_idSet() + { + return array_key_exists('product_id', $this->values); + } +} + +/** + * + * 发送普通红包对象 + * @author widyhu + * + */ +class WxPaySendredpack extends WxPayDataBase +{ + /** + * 设置随机字符串,不长于32位。推荐随机数生成算法 + * @param string $value + **/ + public function SetNonce_str($value) + { + $this->values['nonce_str'] = $value; + } + + /** + * 获取随机字符串,不长于32位。推荐随机数生成算法的值 + * @return 值 + **/ + public function GetNonce_str() + { + return $this->values['nonce_str']; + } + + /** + * 判断随机字符串,不长于32位。推荐随机数生成算法是否存在 + * @return true 或 false + **/ + public function IsNonce_strSet() + { + return array_key_exists('nonce_str', $this->values); + } + + /** + * 设置商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号 + * @param string $value + **/ + public function SetMch_billno($value) + { + $this->values['mch_billno'] = $value; + } + + /** + * 获取商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号的值 + * @return 值 + **/ + public function GetMch_billno() + { + return $this->values['mch_billno']; + } + + /** + * 判断商户系统内部的订单号,32个字符内、可包含字母, 其他说明见商户订单号是否存在 + * @return true 或 false + **/ + public function IsMch_billnoSet() + { + return array_key_exists('mch_billno', $this->values); + } + + /** + * 设置微信支付分配的商户号 + * @param string $value + **/ + public function SetMch_id($value) + { + $this->values['mch_id'] = $value; + } + + /** + * 获取微信支付分配的商户号的值 + * @return 值 + **/ + public function GetMch_id() + { + return $this->values['mch_id']; + } + + /** + * 判断微信支付分配的商户号是否存在 + * @return true 或 false + **/ + public function IsMch_idSet() + { + return array_key_exists('mch_id', $this->values); + } + + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['wxappid'] = $value; + } + + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['wxappid']; + } + + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('wxappid', $this->values); + } + + /** + * 设置商户名称 + * @param string $value + **/ + public function SetSend_name($value) + { + $this->values['send_name'] = $value; + } + + /** + * 获取商户名称 + * @return 值 + **/ + public function GetSend_name() + { + return $this->values['send_name']; + } + + /** + * 判断商户名称是否存在 + * @return true 或 false + **/ + public function IsSend_nameSet() + { + return array_key_exists('send_name', $this->values); + } + + /** + * 设置接受红包的用户re_openid + * @param string $value + **/ + public function SetRe_openid($value) + { + $this->values['re_openid'] = $value; + } + + /** + * 获取接受红包的用户re_openid + * @return 值 + **/ + public function GetRe_openid() + { + return $this->values['re_openid']; + } + + /** + * 判断接受红包的用户re_openid。 是否存在 + * @return true 或 false + **/ + public function IsRe_openidSet() + { + return array_key_exists('re_openid', $this->values); + } + + /** + * 设置付款金额,单位分 + * @param string $value + **/ + public function SetTotal_amount($value) + { + $this->values['total_amount'] = $value; + } + + /** + * 获取付款金额,单位分 + * @return 值 + **/ + public function GetTotal_amount() + { + return $this->values['total_amount']; + } + + /** + * 判断付款金额,单位分,是否存在 + * @return true 或 false + **/ + public function IsTotal_amountSet() + { + return array_key_exists('total_amount', $this->values); + } + + /** + * 设置红包发放总人数 + * @param string $value + **/ + public function SetTotal_num($value) + { + $this->values['total_num'] = $value; + } + + /** + * 获取红包发放总人数 + * @return 值 + **/ + public function GetTotal_num() + { + return $this->values['total_num']; + } + + /** + * 判断红包发放总人数是否存在 + * @return true 或 false + **/ + public function IsTotal_numSet() + { + return array_key_exists('total_num', $this->values); + } + + /** + * 设置红包祝福语 + * @param string $value + **/ + public function SetWishing($value) + { + $this->values['wishing'] = $value; + } + + /** + * 获取红包祝福语 + * @return 值 + **/ + public function GetWishing() + { + return $this->values['wishing']; + } + + /** + * 判断红包祝福语是否存在 + * @return true 或 false + **/ + public function IsWishingSet() + { + return array_key_exists('wishing', $this->values); + } + + /** + * 设置调用接口的机器Ip地址 + * @param string $value + **/ + public function SetClient_ip($value) + { + $this->values['client_ip'] = $value; + } + + /** + * 获取调用接口的机器Ip地址 + * @return 值 + **/ + public function GetClient_ip() + { + return $this->values['client_ip']; + } + + /** + * 判断调用接口的机器Ip地址是否存在 + * @return true 或 false + **/ + public function IsClient_ipSet() + { + return array_key_exists('client_ip', $this->values); + } + + /** + * 设置活动名称 + * @param string $value + **/ + public function SetAct_name($value) + { + $this->values['act_name'] = $value; + } + + /** + * 获取活动名称 + * @return 值 + **/ + public function GetAct_name() + { + return $this->values['act_name']; + } + + /** + * 判断活动名称是否存在 + * @return true 或 false + **/ + public function IsAct_nameSet() + { + return array_key_exists('act_name', $this->values); + } + + /** + * 设置备注信息 + * @param string $value + **/ + public function SetRemark($value) + { + $this->values['remark'] = $value; + } + + /** + * 获取备注信息 + * @return 值 + **/ + public function GetRemark() + { + return $this->values['remark']; + } + + /** + * 判断备注信息是否存在 + * @return true 或 false + **/ + public function IsRemarkSet() + { + return array_key_exists('remark', $this->values); + } + + /** + * 设置场景id + * @param string $value + **/ + public function SetScene_id($value) + { + $this->values['scene_id'] = $value; + } + + /** + * 获取场景id + * @return 值 + **/ + public function GetScene_id() + { + return $this->values['scene_id']; + } + + /** + * 判断场景id是否存在 + * @return true 或 false + **/ + public function IsScene_idSet() + { + return array_key_exists('scene_id', $this->values); + } + + /** + * 设置活动信息 + * @param string $value + **/ + public function SetRisk_info($value) + { + $this->values['risk_info'] = $value; + } + + /** + * 获取活动信息 + * @return 值 + **/ + public function GetRisk_info() + { + return $this->values['risk_info']; + } + + /** + * 判断活动信息 + * @return true 或 false + **/ + public function IsRisk_infoSet() + { + return array_key_exists('risk_info', $this->values); + } + + /** + * 设置资金授权商户号 + * @param string $value + **/ + public function SetConsume_mch_id($value) + { + $this->values['consume_mch_id'] = $value; + } + + /** + * 获取资金授权商户号 + * @return 值 + **/ + public function GetConsume_mch_id() + { + return $this->values['consume_mch_id']; + } + + /** + * 判断资金授权商户号 + * @return true 或 false + **/ + public function IsConsume_mch_idSet() + { + return array_key_exists('consume_mch_id', $this->values); + } +} + + + + +class WxPayAppApiPay extends WxPayDataBase +{ + /** + * 设置微信分配的公众账号ID + * @param string $value + **/ + public function SetAppid($value) + { + $this->values['appid'] = $value; + } + /** + * 获取微信分配的公众账号ID的值 + * @return 值 + **/ + public function GetAppid() + { + return $this->values['appid']; + } + /** + * 判断微信分配的公众账号ID是否存在 + * @return true 或 false + **/ + public function IsAppidSet() + { + return array_key_exists('appid', $this->values); + } + + + /** + * 设置微信支付分配的prepayid + * @param string $value + **/ + public function SetPrepayId($value) + { + $this->values['prepayid'] = $value; + } + /** + * 获取微信支付分配的prepayid的值 + * @return 值 + **/ + public function GetPrepayId() + { + return $this->values['prepayid']; + } + /** + * 判断微信支付分配的prepayid是否存在 + * @return true 或 false + **/ + public function IsPrepayIdSet() + { + return array_key_exists('prepayid', $this->values); + } + + + /** + * 设置微信支付分配的partnerid + * @param string $value + **/ + public function SetPartnerId($value) + { + $this->values['partnerid'] = $value; + } + /** + * 获取微信支付分配的partnerid的值 + * @return 值 + **/ + public function GetPartnerId() + { + return $this->values['partnerid']; + } + /** + * 判断微信支付分配的partnerid是否存在 + * @return true 或 false + **/ + public function IsPartnerIdSet() + { + return array_key_exists('partnerid', $this->values); + } + + /** + * 设置支付时间戳 + * @param string $value + **/ + public function SetTimeStamp($value) + { + $this->values['timestamp'] = $value; + } + /** + * 获取支付时间戳的值 + * @return 值 + **/ + public function GetTimeStamp() + { + return $this->values['timestamp']; + } + /** + * 判断支付时间戳是否存在 + * @return true 或 false + **/ + public function IsTimeStampSet() + { + return array_key_exists('timestamp', $this->values); + } + + /** + * 随机字符串 + * @param string $value + **/ + public function SetNonceStr($value) + { + $this->values['noncestr'] = $value; + } + /** + * 获取notify随机字符串值 + * @return 值 + **/ + public function GetReturn_code() + { + return $this->values['noncestr']; + } + /** + * 判断随机字符串是否存在 + * @return true 或 false + **/ + public function IsReturn_codeSet() + { + return array_key_exists('noncestr', $this->values); + } + + + /** + * 设置订单详情扩展字符串 + * @param string $value + **/ + public function SetPackage($value) + { + $this->values['package'] = $value; + } + /** + * 获取订单详情扩展字符串的值 + * @return 值 + **/ + public function GetPackage() + { + return $this->values['package']; + } + /** + * 判断订单详情扩展字符串是否存在 + * @return true 或 false + **/ + public function IsPackageSet() + { + return array_key_exists('package', $this->values); + } + + /** + * 设置签名 + * @param string $value + **/ + /*public function SetSign($value) + { + $this->values['sign'] = $value; + }*/ + /** + * 获取签名 + * @return 值 + **/ + public function GetSign() + { + return $this->values['sign']; + } + /** + * 判断签名是否存在 + * @return true 或 false + **/ + public function IsSignSet() + { + return array_key_exists('sign', $this->values); + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Exception.php b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Exception.php new file mode 100644 index 0000000..dbe0853 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Exception.php @@ -0,0 +1,13 @@ +getMessage(); + } +} diff --git a/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Notify.php b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Notify.php new file mode 100644 index 0000000..7b61c52 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/lib/WxPay.Notify.php @@ -0,0 +1,112 @@ +SetReturn_code("FAIL"); + $this->SetReturn_msg($msg); + $this->ReplyNotify(false); + return; + } + else + { + // 该分支在成功回调到NotifyCallBack方法,处理完成之后流程 + $this->SetReturn_code("SUCCESS"); + $this->SetReturn_msg("OK"); + } + $this->ReplyNotify($needSign, $isxml); + } + + /** + * + * 回调方法入口,子类可重写该方法 + * 注意: + * 1、微信回调超时时间为2s,建议用户使用异步处理流程,确认成功之后立刻回复微信服务器 + * 2、微信服务器在调用失败或者接到回包为非确认包的时候,会发起重试,需确保你的回调是可以重入 + * @param array $data 回调解释出的参数 + * @param string $msg 如果回调处理失败,可以将错误信息输出到该方法 + * @return true回调出来完成不需要继续回调,false回调处理未完成需要继续回调 + */ + public function NotifyProcess($data, &$msg) + { + //TODO 用户基础该类之后需要重写该方法,成功的时候返回true,失败返回false + return true; + } + + /** + * + * notify回调方法,该方法中需要赋值需要输出的参数,不可重写 + * @param array $data + * @return true回调出来完成不需要继续回调,false回调处理未完成需要继续回调 + */ + final public function NotifyCallBack($data, $db = null) + { + $msg = "OK"; + $result = $this->NotifyProcess($data, $msg, $db); + if ($result == true) + { + return true; + } + else + { + return false; + } + + return $result; + } + + /** + * + * 回复通知 + * @param bool $needSign 是否需要签名输出 + */ + final private function ReplyNotify($needSign = true, $isXML) + { + if ($isXML) + { + //如果需要签名 + if ($needSign == true && + $this->GetReturn_code($return_code) == "SUCCESS" + ) + { + $this->SetSign(); + } + WxpayApi::replyNotify($this->ToXml()); + } + else + { + exit('success'); + } + } +} \ No newline at end of file diff --git a/codes/agent/game-docker/api/payment/wechat/log.php b/codes/agent/game-docker/api/payment/wechat/log.php new file mode 100644 index 0000000..9402a20 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/log.php @@ -0,0 +1,124 @@ +handle = fopen($file,'a'); + } + + public function write($msg) + { + fwrite($this->handle, $msg, 4096); + } + + public function __destruct() + { + fclose($this->handle); + } +} + +class Log +{ + private $handler = null; + private $level = 15; + + private static $instance = null; + + private function __construct(){} + + private function __clone(){} + + public static function Init($handler = null,$level = 15) + { + if(!self::$instance instanceof self) + { + self::$instance = new self(); + self::$instance->__setHandle($handler); + self::$instance->__setLevel($level); + } + return self::$instance; + } + + + private function __setHandle($handler){ + $this->handler = $handler; + } + + private function __setLevel($level) + { + $this->level = $level; + } + + public static function DEBUG($msg) + { + self::$instance->write(1, $msg); + } + + public static function WARN($msg) + { + self::$instance->write(4, $msg); + } + + public static function ERROR($msg) + { + $debugInfo = debug_backtrace(); + $stack = "["; + foreach($debugInfo as $key => $val){ + if(array_key_exists("file", $val)){ + $stack .= ",file:" . $val["file"]; + } + if(array_key_exists("line", $val)){ + $stack .= ",line:" . $val["line"]; + } + if(array_key_exists("function", $val)){ + $stack .= ",function:" . $val["function"]; + } + } + $stack .= "]"; + self::$instance->write(8, $stack . $msg); + } + + public static function INFO($msg) + { + self::$instance->write(2, $msg); + } + + private function getLevelStr($level) + { + switch ($level) + { + case 1: + return 'debug'; + break; + case 2: + return 'info'; + break; + case 4: + return 'warn'; + break; + case 8: + return 'error'; + break; + default: + + } + } + + protected function write($level,$msg) + { + if(($level & $this->level) == $level ) + { + $msg = '['.date('Y-m-d H:i:s').']['.$this->getLevelStr($level).'] '.$msg."\n"; + $this->handler->write($msg); + } + } +} diff --git a/codes/agent/game-docker/api/payment/wechat/native.php b/codes/agent/game-docker/api/payment/wechat/native.php new file mode 100644 index 0000000..d6f5e63 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/native.php @@ -0,0 +1,8 @@ +SetTransaction_id($transaction_id); + $result = WxPayApi::orderQuery($input); + Log::DEBUG("query:" . json_encode($result)); + if(array_key_exists("return_code", $result) + && array_key_exists("result_code", $result) + && $result["return_code"] == "SUCCESS" + && $result["result_code"] == "SUCCESS") { + return true; + } + return false;*/ + return true; + } + + /** + * @note 转换数据编码 + * @param $data + * @param string $charset + * @return string + * @auther 应俊 + */ + function Characet($data, $charset = 'utf-8') + { + if (!empty ($data)) + { + $encoding = mb_detect_encoding($data, array('ASCII', 'UTF-8', 'GBK', 'GB2312', 'LATIN1', 'BIG5',)); + if (0 != strcasecmp($encoding, $charset)) + { + $data = mb_convert_encoding($data, $charset, $encoding); + } + } + return $data; + } + + + // 重写回调处理函数 + public function NotifyProcess($data, &$msg, $db = null) + { + $app_id = 0; // 开发者应用ID + $business_id = 0; // 商户ID + if (!array_key_exists("transaction_id", $data)) + { + $msg = "输入参数不正确,必须包含transaction_id参数"; + return false; + } + + // 查询订单,判断订单真实性 + if (!$this->Queryorder($data["transaction_id"])) + { + $msg = "订单查询失败"; + return false; + } + + if (!array_key_exists("out_trade_no", $data)) + { + $msg = "输入参数不正确,不能缺少out_trade_no参数。"; + return false; + } + + if (!array_key_exists("attach", $data)) + { + $msg = "输入参数不正确"; + return false; + } + + $attach = $data['attach']; + + if (!empty($attach)) + { + $attach = explode('======', $attach); + if (count($attach) == 2) + { + $app_id = (int)$attach[0]; + $business_id = (int)$attach[1]; + + $businessList = Sql::select('syweb_business.*') + ->from('syweb_business') + ->where('syweb_business.id=?', $business_id) + ->get($db, null); + if (!empty($businessList) && count($businessList) > 0) + { + $signkey = $businessList[0]["signkey"]; + } + else + { + $msg = "找不到的商户信息。"; + return false; + } + + } + else + { + $msg = "attach参数格式不正确。"; + return false; + } + } + else + { + $msg = "attach参数不能为空"; + return false; + } + + $log = Sql::select('syweb_core_paylog.*') + ->from('syweb_core_paylog') + ->where('uniontid=?', $data['out_trade_no']) + ->get($db, null); + if (!empty($log) && count($log) > 0) + { + $log = $log[0]; + } + else + { + // 当指定的订单不存在时,则直接返回true + return true; + } + + if (!empty($log) && $log['status'] == '0') + { + // 提前设置为已经支付成功状态 + $recordTemp = array(); + $recordTemp['status'] = '1'; + $pdo = $db; + $pdo->beginTransaction(); + Sql::update('syweb_core_paylog')->setArgs($recordTemp)->where('plid = ?', $log['plid'])->exec($pdo); + $pdo->commit(); + + $log['tag'] = iunserializer($log['tag']); + $callbackUrl = $log['tag']['notice_url']; // 回调地址 + $param_mask = $log['tag']['param_mask']; // 回调参数格式 + // 验证客户端逻辑处理 + if (!empty($callbackUrl)) + { + if (!empty($param_mask)) + { + $callback_data = str_replace("%orderNo%", $log["tid"], $param_mask); + $callback_data = str_replace("%money%", $log["fee"], $callback_data); + + $callback_data = str_replace("%outtradeNo%", $log["uniontid"], $callback_data); + $callback_data = str_replace("%transactionid%", $log['tag']['transaction_id'], $callback_data); + $callback_data = str_replace("%signkey%", $signkey, $callback_data); + + $callback_response = ihttp_request($callbackUrl . "?" . $callback_data, "", false); + + $callback_response = mb_convert_encoding($callback_response, "UTF-8"); + + //$begin_position = stripos($callback_response,"\r\n\r\n"); + $begin_position = strstr($callback_response, "\r\n"); + + + if ($begin_position >= 0) + { + $callback_response = substr($callback_response, $begin_position + 17); + } + else + { + $callback_response = ""; + } + } + else + { + $callback_data['orderNo'] = $log["tid"]; + $callback_data['out_trade_no'] = $log["uniontid"]; // 商家订单号 + $callback_data['transaction_id'] = $log['tag']['transaction_id']; // 微信订单号 + $callback_data['signkey'] = $signkey; + $callback_data = json_encode($callback_data); + $callback_response = ihttp_request($callbackUrl, $callback_data, false); + } + // 发送模板消息接口地址 + + + 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; + } + } + + $log['tag']['transaction_id'] = $data['transaction_id']; + $log['transaction_id'] = $data['transaction_id']; + + $record = array(); + $record['status'] = '1'; + $record['tag'] = iserializer($log['tag']); + + $pdo = $db; + $pdo->beginTransaction(); + Sql::update('syweb_core_paylog')->setArgs($record)->where('plid = ?', $log['plid'])->exec($pdo); + $pdo->commit(); + } + + return true; + } +} diff --git a/codes/agent/game-docker/api/payment/wechat/notify1.php b/codes/agent/game-docker/api/payment/wechat/notify1.php new file mode 100644 index 0000000..46e91e7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/notify1.php @@ -0,0 +1,131 @@ + 'FAIL', + 'return_msg' => '' + ); + echo array2xml($result); + exit; + } + if ($data['result_code'] != 'SUCCESS' || $data['return_code'] != 'SUCCESS') { + $result = array( + 'return_code' => 'FAIL', + 'return_msg' => empty($data['return_msg']) ? $data['err_code_des'] : $data['return_msg'] + ); + echo array2xml($result); + exit; + } + $get = $data; +} else { + $isxml = false; + $get = $_GET; +} + +$_W['uniacid'] = $_W['weid'] = $get['attach']; +$setting = uni_setting($_W['uniacid'], array('payment')); +if(is_array($setting['payment'])) { + $wechat = $setting['payment']['wechat']; + WeUtility::logging('pay', var_export($get, true)); + if(!empty($wechat)) { + ksort($get); + $string1 = ''; + foreach($get as $k => $v) { + if($v != '' && $k != 'sign') { + $string1 .= "{$k}={$v}&"; + } + } + $wechat['signkey'] = ($wechat['version'] == 1) ? $wechat['key'] : $wechat['signkey']; + $sign = strtoupper(md5($string1 . "key={$wechat['signkey']}")); + if($sign == $get['sign']) { + $sql = 'SELECT * FROM ' . tablename('core_paylog') . ' WHERE `uniontid`=:uniontid'; + $params = array(); + $params[':uniontid'] = $get['out_trade_no']; + $log = pdo_fetch($sql, $params); + if(!empty($log) && $log['status'] == '0') { + $log['tag'] = iunserializer($log['tag']); + $log['tag']['transaction_id'] = $get['transaction_id']; + $log['uid'] = $log['tag']['uid']; + $log['transaction_id'] = $get['transaction_id']; + $record = array(); + $record['status'] = '1'; + $record['tag'] = iserializer($log['tag']); + pdo_update('core_paylog', $record, array('plid' => $log['plid'])); + if($log['is_usecard'] == 1 && $log['card_type'] == 1 && !empty($log['encrypt_code']) && $log['acid']) { + load()->classs('coupon'); + $acc = new coupon($log['acid']); + $codearr['encrypt_code'] = $log['encrypt_code']; + $codearr['module'] = $log['module']; + $codearr['card_id'] = $log['card_id']; + $acc->PayConsumeCode($codearr); + } + + if($log['is_usecard'] == 1 && $log['card_type'] == 2) { + $now = time(); + $log['card_id'] = intval($log['card_id']); + pdo_query('UPDATE ' . tablename('activity_coupon_record') . " SET status = 2, usetime = {$now}, usemodule = '{$log['module']}' WHERE uniacid = :aid AND couponid = :cid AND uid = :uid AND status = 1 LIMIT 1", array(':aid' => $_W['uniacid'], ':uid' => $log['uid'], ':cid' => $log['card_id'])); + } + + $site = WeUtility::createModuleSite($log['module']); + if(!is_error($site)) { + $method = 'payResult'; + if (method_exists($site, $method)) { + $ret = array(); + $ret['weid'] = $log['weid']; + $ret['uniacid'] = $log['uniacid']; + $ret['acid'] = $log['acid']; + $ret['result'] = 'success'; + $ret['type'] = $log['type']; + $ret['from'] = 'notify'; + $ret['tid'] = $log['tid']; + $ret['uniontid'] = $log['uniontid']; + $ret['transaction_id'] = $log['transaction_id']; + $ret['trade_type'] = $get['trade_type']; + $ret['follow'] = $get['is_subscribe'] == 'Y' ? 1 : 0; + $ret['user'] = empty($get['openid']) ? $log['openid'] : $get['openid']; + $ret['fee'] = $log['fee']; + $ret['tag'] = $log['tag']; + $ret['is_usecard'] = $log['is_usecard']; + $ret['card_type'] = $log['card_type']; + $ret['card_fee'] = $log['card_fee']; + $ret['card_id'] = $log['card_id']; + if(!empty($get['time_end'])) { + $ret['paytime'] = strtotime($get['time_end']); + } + $site->$method($ret); + if($isxml) { + $result = array( + 'return_code' => 'SUCCESS', + 'return_msg' => 'OK' + ); + echo array2xml($result); + exit; + } else { + exit('success'); + } + } + } + } + } + } +} +if($isxml) { + $result = array( + 'return_code' => 'FAIL', + 'return_msg' => '' + ); + echo array2xml($result); + exit; +} else { + exit('fail'); +} diff --git a/codes/agent/game-docker/api/payment/wechat/pay.php b/codes/agent/game-docker/api/payment/wechat/pay.php new file mode 100644 index 0000000..3909364 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/pay.php @@ -0,0 +1,21 @@ + diff --git a/codes/agent/game-docker/api/payment/wechat/rights.php b/codes/agent/game-docker/api/payment/wechat/rights.php new file mode 100644 index 0000000..5aca3b3 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/rights.php @@ -0,0 +1,86 @@ +FeedBackId)) { + $data = array( + 'openid' => trim($obj->OpenId), + 'appid' => trim($obj->AppId), + 'timestamp' => trim($obj->TimeStamp), + 'msgtype' => trim($obj->MsgType), + 'feedbackid' => trim($obj->FeedBackId), + 'transid' => trim($obj->TransId), + 'reason' => trim($obj->Reason), + 'solution' => trim($obj->Solution), + 'extinfo' => trim($obj->ExtInfo), + 'appsignature' => trim($obj->AppSignature), + 'signmethod' => trim($obj->SignMethod), + ); + if (!empty($obj->PicInfo) && !empty($obj->PicInfo->item)) { + foreach ($obj->PicInfo->item as $item) { + $data['picinfo'][] = trim($item->PicUrl); + } + } + require '../../framework/bootstrap.inc.php'; + WeUtility::logging('pay-rights', $input); + $_W['uniacid'] = pdo_fetchcolumn("SELECT uniacid FROM ".tablename('account_wechats')." WHERE `key` = :key", array(':key' => $data['appid'])); + $setting = uni_setting($_W['uniacid'], array('payment')); + $_W['weid'] = $_W['uniacid']; + + if (empty($setting['payment'])) { + exit('failed'); + } + $data['appkey'] = $setting['payment']['wechat']['signkey']; + if (!checkSign($data)) { + exit('failed'); + } + if ($data['msgtype'] == 'request') { + $insert = array( + 'weid' => $_W['weid'], + 'openid' => $data['openid'], + 'feedbackid' => $data['feedbackid'], + 'transid' => $data['transid'], + 'reason' => $data['reason'], + 'solution' => $data['solution'], + 'remark' => $data['extinfo'], + 'createtime' => $data['timestamp'], + 'status' => 0, + ); + pdo_insert('shopping_feedback', $insert); + exit('success'); + } elseif ($data['msgtype'] == 'confirm') { + pdo_update('shopping_feedback', array('status' => 1), array('feedbackid' => $data['feedbackid'])); + exit('success'); + } elseif ($data['msgtype'] == 'reject') { + pdo_update('shopping_feedback', array('status' => 2), array('feedbackid' => $data['feedbackid'])); + exit('success'); + } else { + exit('failed'); + } +} +exit('failed'); + +function checkSign($data) { + $string = ''; + $keys = array('appid', 'timestamp', 'openid', 'appkey'); + sort($keys); + foreach($keys as $key) { + $v = $data[$key]; + $key = strtolower($key); + $string .= "{$key}={$v}&"; + } + $string = sha1(rtrim($string, '&')); + if ($data['appsignature'] == $string) { + return true; + } else { + return false; + } +} diff --git a/codes/agent/game-docker/api/payment/wechat/warning.php b/codes/agent/game-docker/api/payment/wechat/warning.php new file mode 100644 index 0000000..bc2bdb7 --- /dev/null +++ b/codes/agent/game-docker/api/payment/wechat/warning.php @@ -0,0 +1,27 @@ +FeedBackId)) { + $data = array( + 'appid' => trim($obj->AppId), + 'timestamp' => trim($obj->TimeStamp), + 'errortype' => trim($obj->ErrorType), + 'description' => trim($obj->Description), + 'alarmcontent' => trim($obj->AlarmContent), + 'appsignature' => trim($obj->AppSignature), + 'signmethod' => trim($obj->SignMethod), + ); + require '../../framework/bootstrap.inc.php'; + WeUtility::logging('pay-warning', $input); +} +exit('success'); diff --git a/codes/agent/game-docker/api/php8_system_verification.php b/codes/agent/game-docker/api/php8_system_verification.php new file mode 100644 index 0000000..d711efd --- /dev/null +++ b/codes/agent/game-docker/api/php8_system_verification.php @@ -0,0 +1,260 @@ +getMessage() . "\n"; + } catch (Error $e) { + echo "❌ 错误: " . $e->getMessage() . "\n"; + } +} + +// 测试1: PHP基础功能 +runTest("PHP基础扩展", function() { + $required_extensions = ['curl', 'openssl', 'pdo', 'json', 'mbstring']; + $missing = []; + + foreach ($required_extensions as $ext) { + if (!extension_loaded($ext)) { + $missing[] = $ext; + } + } + + if (!empty($missing)) { + return "缺少扩展: " . implode(', ', $missing); + } + + return true; +}); + +// 测试2: mcrypt替换功能(加密解密) +runTest("加密解密功能", function() { + // 包含加密相关文件 + if (file_exists(__DIR__ . '/source/apis/transfer.php')) { + require_once __DIR__ . '/source/apis/transfer.php'; + + // 测试简单的OpenSSL功能 + $testData = "Hello World Test"; + $key = "test_key_123"; + + // 测试AES加密 + $encrypted = openssl_encrypt($testData, 'AES-128-ECB', str_pad($key, 16, '0'), OPENSSL_RAW_DATA); + if ($encrypted === false) { + return "OpenSSL AES加密失败"; + } + + $decrypted = openssl_decrypt($encrypted, 'AES-128-ECB', str_pad($key, 16, '0'), OPENSSL_RAW_DATA); + if ($decrypted !== $testData) { + return "OpenSSL AES解密失败"; + } + + return true; + } else { + return "transfer.php文件不存在"; + } +}); + +// 测试3: CURL功能 +runTest("CURL HTTP请求", function() { + if (!function_exists('curl_init')) { + return "CURL扩展未安装"; + } + + $ch = curl_init(); + + // 测试我们修复的CURLOPT_SAFE_UPLOAD问题 + try { + if (version_compare(phpversion(), '5.6') >= 0 && version_compare(phpversion(), '8.0') < 0) { + curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); + } + // 如果没有抛出异常,说明修复成功 + } catch (ValueError $e) { + curl_close($ch); + return "CURLOPT_SAFE_UPLOAD问题未修复: " . $e->getMessage(); + } + + curl_close($ch); + return true; +}); + +// 测试4: 数组函数(each替换) +runTest("数组遍历功能", function() { + $test_array = ['a' => 1, 'b' => 2, 'c' => 3]; + + // 测试我们的each()替换逻辑 + $results = []; + while (($key = key($test_array)) !== null) { + $value = current($test_array); + $results[] = $value; + next($test_array); + } + + if (count($results) !== 3 || $results !== [1, 2, 3]) { + return "数组遍历结果不正确"; + } + + return true; +}); + +// 测试5: 反射功能(create_function替换) +runTest("动态类创建", function() { + if (!class_exists('ReflectionClass')) { + return "反射类不可用"; + } + + // 测试创建stdClass实例 + try { + $reflection = new ReflectionClass('stdClass'); + $instance = $reflection->newInstance(); + + if (!is_object($instance) || get_class($instance) !== 'stdClass') { + return "反射创建实例失败"; + } + + return true; + } catch (Exception $e) { + return "反射操作异常: " . $e->getMessage(); + } +}); + +// 测试6: 字符串访问语法 +runTest("字符串访问语法", function() { + $test_string = "hello"; + + // 测试方括号访问(替换大括号) + try { + $char = $test_string[strlen($test_string)-1]; + if ($char !== 'o') { + return "字符串访问结果错误"; + } + return true; + } catch (Error $e) { + return "字符串访问语法错误: " . $e->getMessage(); + } +}); + +// 测试7: session功能 +runTest("Session功能", function() { + if (session_status() === PHP_SESSION_DISABLED) { + return "Session功能被禁用"; + } + + // 在CLI模式下session可能无法正常工作,这是正常的 + if (php_sapi_name() === 'cli') { + return true; // CLI模式跳过session测试 + } + + return true; +}); + +// 测试8: 包含关键文件 +runTest("关键文件加载", function() { + $key_files = [ + 'source/apis/transfer.php', + 'framework/function/communication.func.php', + 'lib/phprs/Router.php' + ]; + + $missing_files = []; + foreach ($key_files as $file) { + if (!file_exists(__DIR__ . '/' . $file)) { + $missing_files[] = $file; + } + } + + if (!empty($missing_files)) { + return "文件缺失: " . implode(', ', $missing_files); + } + + return true; +}); + +// 测试9: communication.func.php加载 +runTest("通信函数库", function() { + $file = __DIR__ . '/framework/function/communication.func.php'; + if (!file_exists($file)) { + return "文件不存在"; + } + + // 尝试包含文件 + try { + require_once $file; + + // 检查关键函数是否存在 + if (!function_exists('ihttp_request') && !function_exists('ihttp_get')) { + return "关键HTTP函数不存在"; + } + + return true; + } catch (Error $e) { + return "文件包含错误: " . $e->getMessage(); + } catch (Exception $e) { + return "文件包含异常: " . $e->getMessage(); + } +}); + +// 测试10: 基本网络连接 +runTest("网络连接测试", function() { + // 简单的网络连接测试 + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, "https://www.baidu.com"); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_TIMEOUT, 5); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + + $response = curl_exec($ch); + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $error = curl_error($ch); + curl_close($ch); + + if ($response === false) { + return "网络请求失败: $error"; + } + + if ($httpCode !== 200) { + return "HTTP状态码异常: $httpCode"; + } + + return true; +}); + +echo "\n=== 测试总结 ===\n"; +echo "总测试数: $tests_total\n"; +echo "通过测试: $tests_passed\n"; +echo "失败测试: " . ($tests_total - $tests_passed) . "\n"; + +if ($tests_passed === $tests_total) { + echo "🎉 所有测试通过!系统PHP8兼容性良好!\n"; + exit(0); +} else { + echo "⚠️ 有测试失败,需要进一步检查\n"; + exit(1); +} +?> diff --git a/codes/agent/game-docker/api/sample/mobilepay/android.apk b/codes/agent/game-docker/api/sample/mobilepay/android.apk new file mode 100644 index 0000000..1e0f19b Binary files /dev/null and b/codes/agent/game-docker/api/sample/mobilepay/android.apk differ diff --git a/codes/agent/game-docker/api/sample/mobilepay/index.php b/codes/agent/game-docker/api/sample/mobilepay/index.php new file mode 100644 index 0000000..b7cc8bc --- /dev/null +++ b/codes/agent/game-docker/api/sample/mobilepay/index.php @@ -0,0 +1,67 @@ + + + + + + + + + +

    微信打开

    + + + + + +"; +?> + + + + diff --git a/codes/agent/game-docker/api/sample/mobilepay/jquery.min.js b/codes/agent/game-docker/api/sample/mobilepay/jquery.min.js new file mode 100644 index 0000000..218a694 --- /dev/null +++ b/codes/agent/game-docker/api/sample/mobilepay/jquery.min.js @@ -0,0 +1,2394 @@ +/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function (a, b) { + "object" == typeof module && "object" == typeof module.exports ? module.exports = a.document ? b(a, !0) : function (a) { + if (!a.document)throw new Error("jQuery requires a window with a document"); + return b(a) + } : b(a) +}("undefined" != typeof window ? window : this, function (a, b) { + var c = [], d = c.slice, e = c.concat, f = c.push, g = c.indexOf, h = {}, i = h.toString, j = h.hasOwnProperty, k = {}, l = a.document, m = "2.1.4", n = function (a, b) { + return new n.fn.init(a, b) + }, o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, p = /^-ms-/, q = /-([\da-z])/gi, r = function (a, b) { + return b.toUpperCase() + }; + n.fn = n.prototype = { + jquery: m, constructor: n, selector: "", length: 0, toArray: function () { + return d.call(this) + }, get: function (a) { + return null != a ? 0 > a ? this[a + this.length] : this[a] : d.call(this) + }, pushStack: function (a) { + var b = n.merge(this.constructor(), a); + return b.prevObject = this, b.context = this.context, b + }, each: function (a, b) { + return n.each(this, a, b) + }, map: function (a) { + return this.pushStack(n.map(this, function (b, c) { + return a.call(b, c, b) + })) + }, slice: function () { + return this.pushStack(d.apply(this, arguments)) + }, first: function () { + return this.eq(0) + }, last: function () { + return this.eq(-1) + }, eq: function (a) { + var b = this.length, c = +a + (0 > a ? b : 0); + return this.pushStack(c >= 0 && b > c ? [this[c]] : []) + }, end: function () { + return this.prevObject || this.constructor(null) + }, push: f, sort: c.sort, splice: c.splice + }, n.extend = n.fn.extend = function () { + var a, b, c, d, e, f, g = arguments[0] || {}, h = 1, i = arguments.length, j = !1; + for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || n.isFunction(g) || (g = {}), h === i && (g = this, h--); i > h; h++)if (null != (a = arguments[h]))for (b in a)c = g[b], d = a[b], g !== d && (j && d && (n.isPlainObject(d) || (e = n.isArray(d))) ? (e ? (e = !1, f = c && n.isArray(c) ? c : []) : f = c && n.isPlainObject(c) ? c : {}, g[b] = n.extend(j, f, d)) : void 0 !== d && (g[b] = d)); + return g + }, n.extend({ + expando: "jQuery" + (m + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (a) { + throw new Error(a) + }, noop: function () { + }, isFunction: function (a) { + return "function" === n.type(a) + }, isArray: Array.isArray, isWindow: function (a) { + return null != a && a === a.window + }, isNumeric: function (a) { + return !n.isArray(a) && a - parseFloat(a) + 1 >= 0 + }, isPlainObject: function (a) { + return "object" !== n.type(a) || a.nodeType || n.isWindow(a) ? !1 : a.constructor && !j.call(a.constructor.prototype, "isPrototypeOf") ? !1 : !0 + }, isEmptyObject: function (a) { + var b; + for (b in a)return !1; + return !0 + }, type: function (a) { + return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h[i.call(a)] || "object" : typeof a + }, globalEval: function (a) { + var b, c = eval; + a = n.trim(a), a && (1 === a.indexOf("use strict") ? (b = l.createElement("script"), b.text = a, l.head.appendChild(b).parentNode.removeChild(b)) : c(a)) + }, camelCase: function (a) { + return a.replace(p, "ms-").replace(q, r) + }, nodeName: function (a, b) { + return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() + }, each: function (a, b, c) { + var d, e = 0, f = a.length, g = s(a); + if (c) { + if (g) { + for (; f > e; e++)if (d = b.apply(a[e], c), d === !1)break + } else for (e in a)if (d = b.apply(a[e], c), d === !1)break + } else if (g) { + for (; f > e; e++)if (d = b.call(a[e], e, a[e]), d === !1)break + } else for (e in a)if (d = b.call(a[e], e, a[e]), d === !1)break; + return a + }, trim: function (a) { + return null == a ? "" : (a + "").replace(o, "") + }, makeArray: function (a, b) { + var c = b || []; + return null != a && (s(Object(a)) ? n.merge(c, "string" == typeof a ? [a] : a) : f.call(c, a)), c + }, inArray: function (a, b, c) { + return null == b ? -1 : g.call(b, a, c) + }, merge: function (a, b) { + for (var c = +b.length, d = 0, e = a.length; c > d; d++)a[e++] = b[d]; + return a.length = e, a + }, grep: function (a, b, c) { + for (var d, e = [], f = 0, g = a.length, h = !c; g > f; f++)d = !b(a[f], f), d !== h && e.push(a[f]); + return e + }, map: function (a, b, c) { + var d, f = 0, g = a.length, h = s(a), i = []; + if (h)for (; g > f; f++)d = b(a[f], f, c), null != d && i.push(d); else for (f in a)d = b(a[f], f, c), null != d && i.push(d); + return e.apply([], i) + }, guid: 1, proxy: function (a, b) { + var c, e, f; + return "string" == typeof b && (c = a[b], b = a, a = c), n.isFunction(a) ? (e = d.call(arguments, 2), f = function () { + return a.apply(b || this, e.concat(d.call(arguments))) + }, f.guid = a.guid = a.guid || n.guid++, f) : void 0 + }, now: Date.now, support: k + }), n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (a, b) { + h["[object " + b + "]"] = b.toLowerCase() + }); + function s(a) { + var b = "length" in a && a.length, c = n.type(a); + return "function" === c || n.isWindow(a) ? !1 : 1 === a.nodeType && b ? !0 : "array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a + } + + var t = function (a) { + var b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = "sizzle" + 1 * new Date, v = a.document, w = 0, x = 0, y = ha(), z = ha(), A = ha(), B = function (a, b) { + return a === b && (l = !0), 0 + }, C = 1 << 31, D = {}.hasOwnProperty, E = [], F = E.pop, G = E.push, H = E.push, I = E.slice, J = function (a, b) { + for (var c = 0, d = a.length; d > c; c++)if (a[c] === b)return c; + return -1 + }, K = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", L = "[\\x20\\t\\r\\n\\f]", M = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", N = M.replace("w", "w#"), O = "\\[" + L + "*(" + M + ")(?:" + L + "*([*^$|!~]?=)" + L + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + N + "))|)" + L + "*\\]", P = ":(" + M + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + O + ")*)|.*)\\)|)", Q = new RegExp(L + "+", "g"), R = new RegExp("^" + L + "+|((?:^|[^\\\\])(?:\\\\.)*)" + L + "+$", "g"), S = new RegExp("^" + L + "*," + L + "*"), T = new RegExp("^" + L + "*([>+~]|" + L + ")" + L + "*"), U = new RegExp("=" + L + "*([^\\]'\"]*?)" + L + "*\\]", "g"), V = new RegExp(P), W = new RegExp("^" + N + "$"), X = { + ID: new RegExp("^#(" + M + ")"), + CLASS: new RegExp("^\\.(" + M + ")"), + TAG: new RegExp("^(" + M.replace("w", "w*") + ")"), + ATTR: new RegExp("^" + O), + PSEUDO: new RegExp("^" + P), + CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + L + "*(even|odd|(([+-]|)(\\d*)n|)" + L + "*(?:([+-]|)" + L + "*(\\d+)|))" + L + "*\\)|)", "i"), + bool: new RegExp("^(?:" + K + ")$", "i"), + needsContext: new RegExp("^" + L + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + L + "*((?:-\\d)?\\d*)" + L + "*\\)|)(?=[^-]|$)", "i") + }, Y = /^(?:input|select|textarea|button)$/i, Z = /^h\d$/i, $ = /^[^{]+\{\s*\[native \w/, _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, aa = /[+~]/, ba = /'|\\/g, ca = new RegExp("\\\\([\\da-f]{1,6}" + L + "?|(" + L + ")|.)", "ig"), da = function (a, b, c) { + var d = "0x" + b - 65536; + return d !== d || c ? b : 0 > d ? String.fromCharCode(d + 65536) : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) + }, ea = function () { + m() + }; + try { + H.apply(E = I.call(v.childNodes), v.childNodes), E[v.childNodes.length].nodeType + } catch (fa) { + H = { + apply: E.length ? function (a, b) { + G.apply(a, I.call(b)) + } : function (a, b) { + var c = a.length, d = 0; + while (a[c++] = b[d++]); + a.length = c - 1 + } + } + } + function ga(a, b, d, e) { + var f, h, j, k, l, o, r, s, w, x; + if ((b ? b.ownerDocument || b : v) !== n && m(b), b = b || n, d = d || [], k = b.nodeType, "string" != typeof a || !a || 1 !== k && 9 !== k && 11 !== k)return d; + if (!e && p) { + if (11 !== k && (f = _.exec(a)))if (j = f[1]) { + if (9 === k) { + if (h = b.getElementById(j), !h || !h.parentNode)return d; + if (h.id === j)return d.push(h), d + } else if (b.ownerDocument && (h = b.ownerDocument.getElementById(j)) && t(b, h) && h.id === j)return d.push(h), d + } else { + if (f[2])return H.apply(d, b.getElementsByTagName(a)), d; + if ((j = f[3]) && c.getElementsByClassName)return H.apply(d, b.getElementsByClassName(j)), d + } + if (c.qsa && (!q || !q.test(a))) { + if (s = r = u, w = b, x = 1 !== k && a, 1 === k && "object" !== b.nodeName.toLowerCase()) { + o = g(a), (r = b.getAttribute("id")) ? s = r.replace(ba, "\\$&") : b.setAttribute("id", s), s = "[id='" + s + "'] ", l = o.length; + while (l--)o[l] = s + ra(o[l]); + w = aa.test(a) && pa(b.parentNode) || b, x = o.join(",") + } + if (x)try { + return H.apply(d, w.querySelectorAll(x)), d + } catch (y) { + } finally { + r || b.removeAttribute("id") + } + } + } + return i(a.replace(R, "$1"), b, d, e) + } + + function ha() { + var a = []; + + function b(c, e) { + return a.push(c + " ") > d.cacheLength && delete b[a.shift()], b[c + " "] = e + } + + return b + } + + function ia(a) { + return a[u] = !0, a + } + + function ja(a) { + var b = n.createElement("div"); + try { + return !!a(b) + } catch (c) { + return !1 + } finally { + b.parentNode && b.parentNode.removeChild(b), b = null + } + } + + function ka(a, b) { + var c = a.split("|"), e = a.length; + while (e--)d.attrHandle[c[e]] = b + } + + function la(a, b) { + var c = b && a, d = c && 1 === a.nodeType && 1 === b.nodeType && (~b.sourceIndex || C) - (~a.sourceIndex || C); + if (d)return d; + if (c)while (c = c.nextSibling)if (c === b)return -1; + return a ? 1 : -1 + } + + function ma(a) { + return function (b) { + var c = b.nodeName.toLowerCase(); + return "input" === c && b.type === a + } + } + + function na(a) { + return function (b) { + var c = b.nodeName.toLowerCase(); + return ("input" === c || "button" === c) && b.type === a + } + } + + function oa(a) { + return ia(function (b) { + return b = +b, ia(function (c, d) { + var e, f = a([], c.length, b), g = f.length; + while (g--)c[e = f[g]] && (c[e] = !(d[e] = c[e])) + }) + }) + } + + function pa(a) { + return a && "undefined" != typeof a.getElementsByTagName && a + } + + c = ga.support = {}, f = ga.isXML = function (a) { + var b = a && (a.ownerDocument || a).documentElement; + return b ? "HTML" !== b.nodeName : !1 + }, m = ga.setDocument = function (a) { + var b, e, g = a ? a.ownerDocument || a : v; + return g !== n && 9 === g.nodeType && g.documentElement ? (n = g, o = g.documentElement, e = g.defaultView, e && e !== e.top && (e.addEventListener ? e.addEventListener("unload", ea, !1) : e.attachEvent && e.attachEvent("onunload", ea)), p = !f(g), c.attributes = ja(function (a) { + return a.className = "i", !a.getAttribute("className") + }), c.getElementsByTagName = ja(function (a) { + return a.appendChild(g.createComment("")), !a.getElementsByTagName("*").length + }), c.getElementsByClassName = $.test(g.getElementsByClassName), c.getById = ja(function (a) { + return o.appendChild(a).id = u, !g.getElementsByName || !g.getElementsByName(u).length + }), c.getById ? (d.find.ID = function (a, b) { + if ("undefined" != typeof b.getElementById && p) { + var c = b.getElementById(a); + return c && c.parentNode ? [c] : [] + } + }, d.filter.ID = function (a) { + var b = a.replace(ca, da); + return function (a) { + return a.getAttribute("id") === b + } + }) : (delete d.find.ID, d.filter.ID = function (a) { + var b = a.replace(ca, da); + return function (a) { + var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); + return c && c.value === b + } + }), d.find.TAG = c.getElementsByTagName ? function (a, b) { + return "undefined" != typeof b.getElementsByTagName ? b.getElementsByTagName(a) : c.qsa ? b.querySelectorAll(a) : void 0 + } : function (a, b) { + var c, d = [], e = 0, f = b.getElementsByTagName(a); + if ("*" === a) { + while (c = f[e++])1 === c.nodeType && d.push(c); + return d + } + return f + }, d.find.CLASS = c.getElementsByClassName && function (a, b) { + return p ? b.getElementsByClassName(a) : void 0 + }, r = [], q = [], (c.qsa = $.test(g.querySelectorAll)) && (ja(function (a) { + o.appendChild(a).innerHTML = "", a.querySelectorAll("[msallowcapture^='']").length && q.push("[*^$]=" + L + "*(?:''|\"\")"), a.querySelectorAll("[selected]").length || q.push("\\[" + L + "*(?:value|" + K + ")"), a.querySelectorAll("[id~=" + u + "-]").length || q.push("~="), a.querySelectorAll(":checked").length || q.push(":checked"), a.querySelectorAll("a#" + u + "+*").length || q.push(".#.+[+~]") + }), ja(function (a) { + var b = g.createElement("input"); + b.setAttribute("type", "hidden"), a.appendChild(b).setAttribute("name", "D"), a.querySelectorAll("[name=d]").length && q.push("name" + L + "*[*^$|!~]?="), a.querySelectorAll(":enabled").length || q.push(":enabled", ":disabled"), a.querySelectorAll("*,:x"), q.push(",.*:") + })), (c.matchesSelector = $.test(s = o.matches || o.webkitMatchesSelector || o.mozMatchesSelector || o.oMatchesSelector || o.msMatchesSelector)) && ja(function (a) { + c.disconnectedMatch = s.call(a, "div"), s.call(a, "[s!='']:x"), r.push("!=", P) + }), q = q.length && new RegExp(q.join("|")), r = r.length && new RegExp(r.join("|")), b = $.test(o.compareDocumentPosition), t = b || $.test(o.contains) ? function (a, b) { + var c = 9 === a.nodeType ? a.documentElement : a, d = b && b.parentNode; + return a === d || !(!d || 1 !== d.nodeType || !(c.contains ? c.contains(d) : a.compareDocumentPosition && 16 & a.compareDocumentPosition(d))) + } : function (a, b) { + if (b)while (b = b.parentNode)if (b === a)return !0; + return !1 + }, B = b ? function (a, b) { + if (a === b)return l = !0, 0; + var d = !a.compareDocumentPosition - !b.compareDocumentPosition; + return d ? d : (d = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1, 1 & d || !c.sortDetached && b.compareDocumentPosition(a) === d ? a === g || a.ownerDocument === v && t(v, a) ? -1 : b === g || b.ownerDocument === v && t(v, b) ? 1 : k ? J(k, a) - J(k, b) : 0 : 4 & d ? -1 : 1) + } : function (a, b) { + if (a === b)return l = !0, 0; + var c, d = 0, e = a.parentNode, f = b.parentNode, h = [a], i = [b]; + if (!e || !f)return a === g ? -1 : b === g ? 1 : e ? -1 : f ? 1 : k ? J(k, a) - J(k, b) : 0; + if (e === f)return la(a, b); + c = a; + while (c = c.parentNode)h.unshift(c); + c = b; + while (c = c.parentNode)i.unshift(c); + while (h[d] === i[d])d++; + return d ? la(h[d], i[d]) : h[d] === v ? -1 : i[d] === v ? 1 : 0 + }, g) : n + }, ga.matches = function (a, b) { + return ga(a, null, null, b) + }, ga.matchesSelector = function (a, b) { + if ((a.ownerDocument || a) !== n && m(a), b = b.replace(U, "='$1']"), !(!c.matchesSelector || !p || r && r.test(b) || q && q.test(b)))try { + var d = s.call(a, b); + if (d || c.disconnectedMatch || a.document && 11 !== a.document.nodeType)return d + } catch (e) { + } + return ga(b, n, null, [a]).length > 0 + }, ga.contains = function (a, b) { + return (a.ownerDocument || a) !== n && m(a), t(a, b) + }, ga.attr = function (a, b) { + (a.ownerDocument || a) !== n && m(a); + var e = d.attrHandle[b.toLowerCase()], f = e && D.call(d.attrHandle, b.toLowerCase()) ? e(a, b, !p) : void 0; + return void 0 !== f ? f : c.attributes || !p ? a.getAttribute(b) : (f = a.getAttributeNode(b)) && f.specified ? f.value : null + }, ga.error = function (a) { + throw new Error("Syntax error, unrecognized expression: " + a) + }, ga.uniqueSort = function (a) { + var b, d = [], e = 0, f = 0; + if (l = !c.detectDuplicates, k = !c.sortStable && a.slice(0), a.sort(B), l) { + while (b = a[f++])b === a[f] && (e = d.push(f)); + while (e--)a.splice(d[e], 1) + } + return k = null, a + }, e = ga.getText = function (a) { + var b, c = "", d = 0, f = a.nodeType; + if (f) { + if (1 === f || 9 === f || 11 === f) { + if ("string" == typeof a.textContent)return a.textContent; + for (a = a.firstChild; a; a = a.nextSibling)c += e(a) + } else if (3 === f || 4 === f)return a.nodeValue + } else while (b = a[d++])c += e(b); + return c + }, d = ga.selectors = { + cacheLength: 50, + createPseudo: ia, + match: X, + attrHandle: {}, + find: {}, + relative: { + ">": {dir: "parentNode", first: !0}, + " ": {dir: "parentNode"}, + "+": {dir: "previousSibling", first: !0}, + "~": {dir: "previousSibling"} + }, + preFilter: { + ATTR: function (a) { + return a[1] = a[1].replace(ca, da), a[3] = (a[3] || a[4] || a[5] || "").replace(ca, da), "~=" === a[2] && (a[3] = " " + a[3] + " "), a.slice(0, 4) + }, CHILD: function (a) { + return a[1] = a[1].toLowerCase(), "nth" === a[1].slice(0, 3) ? (a[3] || ga.error(a[0]), a[4] = +(a[4] ? a[5] + (a[6] || 1) : 2 * ("even" === a[3] || "odd" === a[3])), a[5] = +(a[7] + a[8] || "odd" === a[3])) : a[3] && ga.error(a[0]), a + }, PSEUDO: function (a) { + var b, c = !a[6] && a[2]; + return X.CHILD.test(a[0]) ? null : (a[3] ? a[2] = a[4] || a[5] || "" : c && V.test(c) && (b = g(c, !0)) && (b = c.indexOf(")", c.length - b) - c.length) && (a[0] = a[0].slice(0, b), a[2] = c.slice(0, b)), a.slice(0, 3)) + } + }, + filter: { + TAG: function (a) { + var b = a.replace(ca, da).toLowerCase(); + return "*" === a ? function () { + return !0 + } : function (a) { + return a.nodeName && a.nodeName.toLowerCase() === b + } + }, CLASS: function (a) { + var b = y[a + " "]; + return b || (b = new RegExp("(^|" + L + ")" + a + "(" + L + "|$)")) && y(a, function (a) { + return b.test("string" == typeof a.className && a.className || "undefined" != typeof a.getAttribute && a.getAttribute("class") || "") + }) + }, ATTR: function (a, b, c) { + return function (d) { + var e = ga.attr(d, a); + return null == e ? "!=" === b : b ? (e += "", "=" === b ? e === c : "!=" === b ? e !== c : "^=" === b ? c && 0 === e.indexOf(c) : "*=" === b ? c && e.indexOf(c) > -1 : "$=" === b ? c && e.slice(-c.length) === c : "~=" === b ? (" " + e.replace(Q, " ") + " ").indexOf(c) > -1 : "|=" === b ? e === c || e.slice(0, c.length + 1) === c + "-" : !1) : !0 + } + }, CHILD: function (a, b, c, d, e) { + var f = "nth" !== a.slice(0, 3), g = "last" !== a.slice(-4), h = "of-type" === b; + return 1 === d && 0 === e ? function (a) { + return !!a.parentNode + } : function (b, c, i) { + var j, k, l, m, n, o, p = f !== g ? "nextSibling" : "previousSibling", q = b.parentNode, r = h && b.nodeName.toLowerCase(), s = !i && !h; + if (q) { + if (f) { + while (p) { + l = b; + while (l = l[p])if (h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType)return !1; + o = p = "only" === a && !o && "nextSibling" + } + return !0 + } + if (o = [g ? q.firstChild : q.lastChild], g && s) { + k = q[u] || (q[u] = {}), j = k[a] || [], n = j[0] === w && j[1], m = j[0] === w && j[2], l = n && q.childNodes[n]; + while (l = ++n && l && l[p] || (m = n = 0) || o.pop())if (1 === l.nodeType && ++m && l === b) { + k[a] = [w, n, m]; + break + } + } else if (s && (j = (b[u] || (b[u] = {}))[a]) && j[0] === w)m = j[1]; else while (l = ++n && l && l[p] || (m = n = 0) || o.pop())if ((h ? l.nodeName.toLowerCase() === r : 1 === l.nodeType) && ++m && (s && ((l[u] || (l[u] = {}))[a] = [w, m]), l === b))break; + return m -= e, m === d || m % d === 0 && m / d >= 0 + } + } + }, PSEUDO: function (a, b) { + var c, e = d.pseudos[a] || d.setFilters[a.toLowerCase()] || ga.error("unsupported pseudo: " + a); + return e[u] ? e(b) : e.length > 1 ? (c = [a, a, "", b], d.setFilters.hasOwnProperty(a.toLowerCase()) ? ia(function (a, c) { + var d, f = e(a, b), g = f.length; + while (g--)d = J(a, f[g]), a[d] = !(c[d] = f[g]) + }) : function (a) { + return e(a, 0, c) + }) : e + } + }, + pseudos: { + not: ia(function (a) { + var b = [], c = [], d = h(a.replace(R, "$1")); + return d[u] ? ia(function (a, b, c, e) { + var f, g = d(a, null, e, []), h = a.length; + while (h--)(f = g[h]) && (a[h] = !(b[h] = f)) + }) : function (a, e, f) { + return b[0] = a, d(b, null, f, c), b[0] = null, !c.pop() + } + }), has: ia(function (a) { + return function (b) { + return ga(a, b).length > 0 + } + }), contains: ia(function (a) { + return a = a.replace(ca, da), function (b) { + return (b.textContent || b.innerText || e(b)).indexOf(a) > -1 + } + }), lang: ia(function (a) { + return W.test(a || "") || ga.error("unsupported lang: " + a), a = a.replace(ca, da).toLowerCase(), function (b) { + var c; + do if (c = p ? b.lang : b.getAttribute("xml:lang") || b.getAttribute("lang"))return c = c.toLowerCase(), c === a || 0 === c.indexOf(a + "-"); while ((b = b.parentNode) && 1 === b.nodeType); + return !1 + } + }), target: function (b) { + var c = a.location && a.location.hash; + return c && c.slice(1) === b.id + }, root: function (a) { + return a === o + }, focus: function (a) { + return a === n.activeElement && (!n.hasFocus || n.hasFocus()) && !!(a.type || a.href || ~a.tabIndex) + }, enabled: function (a) { + return a.disabled === !1 + }, disabled: function (a) { + return a.disabled === !0 + }, checked: function (a) { + var b = a.nodeName.toLowerCase(); + return "input" === b && !!a.checked || "option" === b && !!a.selected + }, selected: function (a) { + return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 + }, empty: function (a) { + for (a = a.firstChild; a; a = a.nextSibling)if (a.nodeType < 6)return !1; + return !0 + }, parent: function (a) { + return !d.pseudos.empty(a) + }, header: function (a) { + return Z.test(a.nodeName) + }, input: function (a) { + return Y.test(a.nodeName) + }, button: function (a) { + var b = a.nodeName.toLowerCase(); + return "input" === b && "button" === a.type || "button" === b + }, text: function (a) { + var b; + return "input" === a.nodeName.toLowerCase() && "text" === a.type && (null == (b = a.getAttribute("type")) || "text" === b.toLowerCase()) + }, first: oa(function () { + return [0] + }), last: oa(function (a, b) { + return [b - 1] + }), eq: oa(function (a, b, c) { + return [0 > c ? c + b : c] + }), even: oa(function (a, b) { + for (var c = 0; b > c; c += 2)a.push(c); + return a + }), odd: oa(function (a, b) { + for (var c = 1; b > c; c += 2)a.push(c); + return a + }), lt: oa(function (a, b, c) { + for (var d = 0 > c ? c + b : c; --d >= 0;)a.push(d); + return a + }), gt: oa(function (a, b, c) { + for (var d = 0 > c ? c + b : c; ++d < b;)a.push(d); + return a + }) + } + }, d.pseudos.nth = d.pseudos.eq; + for (b in{radio: !0, checkbox: !0, file: !0, password: !0, image: !0})d.pseudos[b] = ma(b); + for (b in{submit: !0, reset: !0})d.pseudos[b] = na(b); + function qa() { + } + + qa.prototype = d.filters = d.pseudos, d.setFilters = new qa, g = ga.tokenize = function (a, b) { + var c, e, f, g, h, i, j, k = z[a + " "]; + if (k)return b ? 0 : k.slice(0); + h = a, i = [], j = d.preFilter; + while (h) { + (!c || (e = S.exec(h))) && (e && (h = h.slice(e[0].length) || h), i.push(f = [])), c = !1, (e = T.exec(h)) && (c = e.shift(), f.push({ + value: c, + type: e[0].replace(R, " ") + }), h = h.slice(c.length)); + for (g in d.filter)!(e = X[g].exec(h)) || j[g] && !(e = j[g](e)) || (c = e.shift(), f.push({ + value: c, + type: g, + matches: e + }), h = h.slice(c.length)); + if (!c)break + } + return b ? h.length : h ? ga.error(a) : z(a, i).slice(0) + }; + function ra(a) { + for (var b = 0, c = a.length, d = ""; c > b; b++)d += a[b].value; + return d + } + + function sa(a, b, c) { + var d = b.dir, e = c && "parentNode" === d, f = x++; + return b.first ? function (b, c, f) { + while (b = b[d])if (1 === b.nodeType || e)return a(b, c, f) + } : function (b, c, g) { + var h, i, j = [w, f]; + if (g) { + while (b = b[d])if ((1 === b.nodeType || e) && a(b, c, g))return !0 + } else while (b = b[d])if (1 === b.nodeType || e) { + if (i = b[u] || (b[u] = {}), (h = i[d]) && h[0] === w && h[1] === f)return j[2] = h[2]; + if (i[d] = j, j[2] = a(b, c, g))return !0 + } + } + } + + function ta(a) { + return a.length > 1 ? function (b, c, d) { + var e = a.length; + while (e--)if (!a[e](b, c, d))return !1; + return !0 + } : a[0] + } + + function ua(a, b, c) { + for (var d = 0, e = b.length; e > d; d++)ga(a, b[d], c); + return c + } + + function va(a, b, c, d, e) { + for (var f, g = [], h = 0, i = a.length, j = null != b; i > h; h++)(f = a[h]) && (!c || c(f, d, e)) && (g.push(f), j && b.push(h)); + return g + } + + function wa(a, b, c, d, e, f) { + return d && !d[u] && (d = wa(d)), e && !e[u] && (e = wa(e, f)), ia(function (f, g, h, i) { + var j, k, l, m = [], n = [], o = g.length, p = f || ua(b || "*", h.nodeType ? [h] : h, []), q = !a || !f && b ? p : va(p, m, a, h, i), r = c ? e || (f ? a : o || d) ? [] : g : q; + if (c && c(q, r, h, i), d) { + j = va(r, n), d(j, [], h, i), k = j.length; + while (k--)(l = j[k]) && (r[n[k]] = !(q[n[k]] = l)) + } + if (f) { + if (e || a) { + if (e) { + j = [], k = r.length; + while (k--)(l = r[k]) && j.push(q[k] = l); + e(null, r = [], j, i) + } + k = r.length; + while (k--)(l = r[k]) && (j = e ? J(f, l) : m[k]) > -1 && (f[j] = !(g[j] = l)) + } + } else r = va(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : H.apply(g, r) + }) + } + + function xa(a) { + for (var b, c, e, f = a.length, g = d.relative[a[0].type], h = g || d.relative[" "], i = g ? 1 : 0, k = sa(function (a) { + return a === b + }, h, !0), l = sa(function (a) { + return J(b, a) > -1 + }, h, !0), m = [function (a, c, d) { + var e = !g && (d || c !== j) || ((b = c).nodeType ? k(a, c, d) : l(a, c, d)); + return b = null, e + }]; f > i; i++)if (c = d.relative[a[i].type])m = [sa(ta(m), c)]; else { + if (c = d.filter[a[i].type].apply(null, a[i].matches), c[u]) { + for (e = ++i; f > e; e++)if (d.relative[a[e].type])break; + return wa(i > 1 && ta(m), i > 1 && ra(a.slice(0, i - 1).concat({value: " " === a[i - 2].type ? "*" : ""})).replace(R, "$1"), c, e > i && xa(a.slice(i, e)), f > e && xa(a = a.slice(e)), f > e && ra(a)) + } + m.push(c) + } + return ta(m) + } + + function ya(a, b) { + var c = b.length > 0, e = a.length > 0, f = function (f, g, h, i, k) { + var l, m, o, p = 0, q = "0", r = f && [], s = [], t = j, u = f || e && d.find.TAG("*", k), v = w += null == t ? 1 : Math.random() || .1, x = u.length; + for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) { + if (e && l) { + m = 0; + while (o = a[m++])if (o(l, g, h)) { + i.push(l); + break + } + k && (w = v) + } + c && ((l = !o && l) && p--, f && r.push(l)) + } + if (p += q, c && q !== p) { + m = 0; + while (o = b[m++])o(r, s, g, h); + if (f) { + if (p > 0)while (q--)r[q] || s[q] || (s[q] = F.call(i)); + s = va(s) + } + H.apply(i, s), k && !f && s.length > 0 && p + b.length > 1 && ga.uniqueSort(i) + } + return k && (w = v, j = t), r + }; + return c ? ia(f) : f + } + + return h = ga.compile = function (a, b) { + var c, d = [], e = [], f = A[a + " "]; + if (!f) { + b || (b = g(a)), c = b.length; + while (c--)f = xa(b[c]), f[u] ? d.push(f) : e.push(f); + f = A(a, ya(e, d)), f.selector = a + } + return f + }, i = ga.select = function (a, b, e, f) { + var i, j, k, l, m, n = "function" == typeof a && a, o = !f && g(a = n.selector || a); + if (e = e || [], 1 === o.length) { + if (j = o[0] = o[0].slice(0), j.length > 2 && "ID" === (k = j[0]).type && c.getById && 9 === b.nodeType && p && d.relative[j[1].type]) { + if (b = (d.find.ID(k.matches[0].replace(ca, da), b) || [])[0], !b)return e; + n && (b = b.parentNode), a = a.slice(j.shift().value.length) + } + i = X.needsContext.test(a) ? 0 : j.length; + while (i--) { + if (k = j[i], d.relative[l = k.type])break; + if ((m = d.find[l]) && (f = m(k.matches[0].replace(ca, da), aa.test(j[0].type) && pa(b.parentNode) || b))) { + if (j.splice(i, 1), a = f.length && ra(j), !a)return H.apply(e, f), e; + break + } + } + } + return (n || h(a, o))(f, b, !p, e, aa.test(a) && pa(b.parentNode) || b), e + }, c.sortStable = u.split("").sort(B).join("") === u, c.detectDuplicates = !!l, m(), c.sortDetached = ja(function (a) { + return 1 & a.compareDocumentPosition(n.createElement("div")) + }), ja(function (a) { + return a.innerHTML = "", "#" === a.firstChild.getAttribute("href") + }) || ka("type|href|height|width", function (a, b, c) { + return c ? void 0 : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2) + }), c.attributes && ja(function (a) { + return a.innerHTML = "", a.firstChild.setAttribute("value", ""), "" === a.firstChild.getAttribute("value") + }) || ka("value", function (a, b, c) { + return c || "input" !== a.nodeName.toLowerCase() ? void 0 : a.defaultValue + }), ja(function (a) { + return null == a.getAttribute("disabled") + }) || ka(K, function (a, b, c) { + var d; + return c ? void 0 : a[b] === !0 ? b.toLowerCase() : (d = a.getAttributeNode(b)) && d.specified ? d.value : null + }), ga + }(a); + n.find = t, n.expr = t.selectors, n.expr[":"] = n.expr.pseudos, n.unique = t.uniqueSort, n.text = t.getText, n.isXMLDoc = t.isXML, n.contains = t.contains; + var u = n.expr.match.needsContext, v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, w = /^.[^:#\[\.,]*$/; + + function x(a, b, c) { + if (n.isFunction(b))return n.grep(a, function (a, d) { + return !!b.call(a, d, a) !== c + }); + if (b.nodeType)return n.grep(a, function (a) { + return a === b !== c + }); + if ("string" == typeof b) { + if (w.test(b))return n.filter(b, a, c); + b = n.filter(b, a) + } + return n.grep(a, function (a) { + return g.call(b, a) >= 0 !== c + }) + } + + n.filter = function (a, b, c) { + var d = b[0]; + return c && (a = ":not(" + a + ")"), 1 === b.length && 1 === d.nodeType ? n.find.matchesSelector(d, a) ? [d] : [] : n.find.matches(a, n.grep(b, function (a) { + return 1 === a.nodeType + })) + }, n.fn.extend({ + find: function (a) { + var b, c = this.length, d = [], e = this; + if ("string" != typeof a)return this.pushStack(n(a).filter(function () { + for (b = 0; c > b; b++)if (n.contains(e[b], this))return !0 + })); + for (b = 0; c > b; b++)n.find(a, e[b], d); + return d = this.pushStack(c > 1 ? n.unique(d) : d), d.selector = this.selector ? this.selector + " " + a : a, d + }, filter: function (a) { + return this.pushStack(x(this, a || [], !1)) + }, not: function (a) { + return this.pushStack(x(this, a || [], !0)) + }, is: function (a) { + return !!x(this, "string" == typeof a && u.test(a) ? n(a) : a || [], !1).length + } + }); + var y, z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, A = n.fn.init = function (a, b) { + var c, d; + if (!a)return this; + if ("string" == typeof a) { + if (c = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 ? [null, a, null] : z.exec(a), !c || !c[1] && b)return !b || b.jquery ? (b || y).find(a) : this.constructor(b).find(a); + if (c[1]) { + if (b = b instanceof n ? b[0] : b, n.merge(this, n.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : l, !0)), v.test(c[1]) && n.isPlainObject(b))for (c in b)n.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); + return this + } + return d = l.getElementById(c[2]), d && d.parentNode && (this.length = 1, this[0] = d), this.context = l, this.selector = a, this + } + return a.nodeType ? (this.context = this[0] = a, this.length = 1, this) : n.isFunction(a) ? "undefined" != typeof y.ready ? y.ready(a) : a(n) : (void 0 !== a.selector && (this.selector = a.selector, this.context = a.context), n.makeArray(a, this)) + }; + A.prototype = n.fn, y = n(l); + var B = /^(?:parents|prev(?:Until|All))/, C = {children: !0, contents: !0, next: !0, prev: !0}; + n.extend({ + dir: function (a, b, c) { + var d = [], e = void 0 !== c; + while ((a = a[b]) && 9 !== a.nodeType)if (1 === a.nodeType) { + if (e && n(a).is(c))break; + d.push(a) + } + return d + }, sibling: function (a, b) { + for (var c = []; a; a = a.nextSibling)1 === a.nodeType && a !== b && c.push(a); + return c + } + }), n.fn.extend({ + has: function (a) { + var b = n(a, this), c = b.length; + return this.filter(function () { + for (var a = 0; c > a; a++)if (n.contains(this, b[a]))return !0 + }) + }, closest: function (a, b) { + for (var c, d = 0, e = this.length, f = [], g = u.test(a) || "string" != typeof a ? n(a, b || this.context) : 0; e > d; d++)for (c = this[d]; c && c !== b; c = c.parentNode)if (c.nodeType < 11 && (g ? g.index(c) > -1 : 1 === c.nodeType && n.find.matchesSelector(c, a))) { + f.push(c); + break + } + return this.pushStack(f.length > 1 ? n.unique(f) : f) + }, index: function (a) { + return a ? "string" == typeof a ? g.call(n(a), this[0]) : g.call(this, a.jquery ? a[0] : a) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 + }, add: function (a, b) { + return this.pushStack(n.unique(n.merge(this.get(), n(a, b)))) + }, addBack: function (a) { + return this.add(null == a ? this.prevObject : this.prevObject.filter(a)) + } + }); + function D(a, b) { + while ((a = a[b]) && 1 !== a.nodeType); + return a + } + + n.each({ + parent: function (a) { + var b = a.parentNode; + return b && 11 !== b.nodeType ? b : null + }, parents: function (a) { + return n.dir(a, "parentNode") + }, parentsUntil: function (a, b, c) { + return n.dir(a, "parentNode", c) + }, next: function (a) { + return D(a, "nextSibling") + }, prev: function (a) { + return D(a, "previousSibling") + }, nextAll: function (a) { + return n.dir(a, "nextSibling") + }, prevAll: function (a) { + return n.dir(a, "previousSibling") + }, nextUntil: function (a, b, c) { + return n.dir(a, "nextSibling", c) + }, prevUntil: function (a, b, c) { + return n.dir(a, "previousSibling", c) + }, siblings: function (a) { + return n.sibling((a.parentNode || {}).firstChild, a) + }, children: function (a) { + return n.sibling(a.firstChild) + }, contents: function (a) { + return a.contentDocument || n.merge([], a.childNodes) + } + }, function (a, b) { + n.fn[a] = function (c, d) { + var e = n.map(this, b, c); + return "Until" !== a.slice(-5) && (d = c), d && "string" == typeof d && (e = n.filter(d, e)), this.length > 1 && (C[a] || n.unique(e), B.test(a) && e.reverse()), this.pushStack(e) + } + }); + var E = /\S+/g, F = {}; + + function G(a) { + var b = F[a] = {}; + return n.each(a.match(E) || [], function (a, c) { + b[c] = !0 + }), b + } + + n.Callbacks = function (a) { + a = "string" == typeof a ? F[a] || G(a) : n.extend({}, a); + var b, c, d, e, f, g, h = [], i = !a.once && [], j = function (l) { + for (b = a.memory && l, c = !0, g = e || 0, e = 0, f = h.length, d = !0; h && f > g; g++)if (h[g].apply(l[0], l[1]) === !1 && a.stopOnFalse) { + b = !1; + break + } + d = !1, h && (i ? i.length && j(i.shift()) : b ? h = [] : k.disable()) + }, k = { + add: function () { + if (h) { + var c = h.length; + !function g(b) { + n.each(b, function (b, c) { + var d = n.type(c); + "function" === d ? a.unique && k.has(c) || h.push(c) : c && c.length && "string" !== d && g(c) + }) + }(arguments), d ? f = h.length : b && (e = c, j(b)) + } + return this + }, remove: function () { + return h && n.each(arguments, function (a, b) { + var c; + while ((c = n.inArray(b, h, c)) > -1)h.splice(c, 1), d && (f >= c && f--, g >= c && g--) + }), this + }, has: function (a) { + return a ? n.inArray(a, h) > -1 : !(!h || !h.length) + }, empty: function () { + return h = [], f = 0, this + }, disable: function () { + return h = i = b = void 0, this + }, disabled: function () { + return !h + }, lock: function () { + return i = void 0, b || k.disable(), this + }, locked: function () { + return !i + }, fireWith: function (a, b) { + return !h || c && !i || (b = b || [], b = [a, b.slice ? b.slice() : b], d ? i.push(b) : j(b)), this + }, fire: function () { + return k.fireWith(this, arguments), this + }, fired: function () { + return !!c + } + }; + return k + }, n.extend({ + Deferred: function (a) { + var b = [["resolve", "done", n.Callbacks("once memory"), "resolved"], ["reject", "fail", n.Callbacks("once memory"), "rejected"], ["notify", "progress", n.Callbacks("memory")]], c = "pending", d = { + state: function () { + return c + }, always: function () { + return e.done(arguments).fail(arguments), this + }, then: function () { + var a = arguments; + return n.Deferred(function (c) { + n.each(b, function (b, f) { + var g = n.isFunction(a[b]) && a[b]; + e[f[1]](function () { + var a = g && g.apply(this, arguments); + a && n.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f[0] + "With"](this === d ? c.promise() : this, g ? [a] : arguments) + }) + }), a = null + }).promise() + }, promise: function (a) { + return null != a ? n.extend(a, d) : d + } + }, e = {}; + return d.pipe = d.then, n.each(b, function (a, f) { + var g = f[2], h = f[3]; + d[f[1]] = g.add, h && g.add(function () { + c = h + }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = function () { + return e[f[0] + "With"](this === e ? d : this, arguments), this + }, e[f[0] + "With"] = g.fireWith + }), d.promise(e), a && a.call(e, e), e + }, when: function (a) { + var b = 0, c = d.call(arguments), e = c.length, f = 1 !== e || a && n.isFunction(a.promise) ? e : 0, g = 1 === f ? a : n.Deferred(), h = function (a, b, c) { + return function (e) { + b[a] = this, c[a] = arguments.length > 1 ? d.call(arguments) : e, c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c) + } + }, i, j, k; + if (e > 1)for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++)c[b] && n.isFunction(c[b].promise) ? c[b].promise().done(h(b, k, c)).fail(g.reject).progress(h(b, j, i)) : --f; + return f || g.resolveWith(k, c), g.promise() + } + }); + var H; + n.fn.ready = function (a) { + return n.ready.promise().done(a), this + }, n.extend({ + isReady: !1, readyWait: 1, holdReady: function (a) { + a ? n.readyWait++ : n.ready(!0) + }, ready: function (a) { + (a === !0 ? --n.readyWait : n.isReady) || (n.isReady = !0, a !== !0 && --n.readyWait > 0 || (H.resolveWith(l, [n]), n.fn.triggerHandler && (n(l).triggerHandler("ready"), n(l).off("ready")))) + } + }); + function I() { + l.removeEventListener("DOMContentLoaded", I, !1), a.removeEventListener("load", I, !1), n.ready() + } + + n.ready.promise = function (b) { + return H || (H = n.Deferred(), "complete" === l.readyState ? setTimeout(n.ready) : (l.addEventListener("DOMContentLoaded", I, !1), a.addEventListener("load", I, !1))), H.promise(b) + }, n.ready.promise(); + var J = n.access = function (a, b, c, d, e, f, g) { + var h = 0, i = a.length, j = null == c; + if ("object" === n.type(c)) { + e = !0; + for (h in c)n.access(a, b, h, c[h], !0, f, g) + } else if (void 0 !== d && (e = !0, n.isFunction(d) || (g = !0), j && (g ? (b.call(a, d), b = null) : (j = b, b = function (a, b, c) { + return j.call(n(a), c) + })), b))for (; i > h; h++)b(a[h], c, g ? d : d.call(a[h], h, b(a[h], c))); + return e ? a : j ? b.call(a) : i ? b(a[0], c) : f + }; + n.acceptData = function (a) { + return 1 === a.nodeType || 9 === a.nodeType || !+a.nodeType + }; + function K() { + Object.defineProperty(this.cache = {}, 0, { + get: function () { + return {} + } + }), this.expando = n.expando + K.uid++ + } + + K.uid = 1, K.accepts = n.acceptData, K.prototype = { + key: function (a) { + if (!K.accepts(a))return 0; + var b = {}, c = a[this.expando]; + if (!c) { + c = K.uid++; + try { + b[this.expando] = {value: c}, Object.defineProperties(a, b) + } catch (d) { + b[this.expando] = c, n.extend(a, b) + } + } + return this.cache[c] || (this.cache[c] = {}), c + }, set: function (a, b, c) { + var d, e = this.key(a), f = this.cache[e]; + if ("string" == typeof b)f[b] = c; else if (n.isEmptyObject(f))n.extend(this.cache[e], b); else for (d in b)f[d] = b[d]; + return f + }, get: function (a, b) { + var c = this.cache[this.key(a)]; + return void 0 === b ? c : c[b] + }, access: function (a, b, c) { + var d; + return void 0 === b || b && "string" == typeof b && void 0 === c ? (d = this.get(a, b), void 0 !== d ? d : this.get(a, n.camelCase(b))) : (this.set(a, b, c), void 0 !== c ? c : b) + }, remove: function (a, b) { + var c, d, e, f = this.key(a), g = this.cache[f]; + if (void 0 === b)this.cache[f] = {}; else { + n.isArray(b) ? d = b.concat(b.map(n.camelCase)) : (e = n.camelCase(b), b in g ? d = [b, e] : (d = e, d = d in g ? [d] : d.match(E) || [])), c = d.length; + while (c--)delete g[d[c]] + } + }, hasData: function (a) { + return !n.isEmptyObject(this.cache[a[this.expando]] || {}) + }, discard: function (a) { + a[this.expando] && delete this.cache[a[this.expando]] + } + }; + var L = new K, M = new K, N = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, O = /([A-Z])/g; + + function P(a, b, c) { + var d; + if (void 0 === c && 1 === a.nodeType)if (d = "data-" + b.replace(O, "-$1").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) { + try { + c = "true" === c ? !0 : "false" === c ? !1 : "null" === c ? null : +c + "" === c ? +c : N.test(c) ? n.parseJSON(c) : c + } catch (e) { + } + M.set(a, b, c) + } else c = void 0; + return c + } + + n.extend({ + hasData: function (a) { + return M.hasData(a) || L.hasData(a) + }, data: function (a, b, c) { + return M.access(a, b, c) + }, removeData: function (a, b) { + M.remove(a, b) + }, _data: function (a, b, c) { + return L.access(a, b, c) + }, _removeData: function (a, b) { + L.remove(a, b) + } + }), n.fn.extend({ + data: function (a, b) { + var c, d, e, f = this[0], g = f && f.attributes; + if (void 0 === a) { + if (this.length && (e = M.get(f), 1 === f.nodeType && !L.get(f, "hasDataAttrs"))) { + c = g.length; + while (c--)g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = n.camelCase(d.slice(5)), P(f, d, e[d]))); + L.set(f, "hasDataAttrs", !0) + } + return e + } + return "object" == typeof a ? this.each(function () { + M.set(this, a) + }) : J(this, function (b) { + var c, d = n.camelCase(a); + if (f && void 0 === b) { + if (c = M.get(f, a), void 0 !== c)return c; + if (c = M.get(f, d), void 0 !== c)return c; + if (c = P(f, d, void 0), void 0 !== c)return c + } else this.each(function () { + var c = M.get(this, d); + M.set(this, d, b), -1 !== a.indexOf("-") && void 0 !== c && M.set(this, a, b) + }) + }, null, b, arguments.length > 1, null, !0) + }, removeData: function (a) { + return this.each(function () { + M.remove(this, a) + }) + } + }), n.extend({ + queue: function (a, b, c) { + var d; + return a ? (b = (b || "fx") + "queue", d = L.get(a, b), c && (!d || n.isArray(c) ? d = L.access(a, b, n.makeArray(c)) : d.push(c)), d || []) : void 0 + }, dequeue: function (a, b) { + b = b || "fx"; + var c = n.queue(a, b), d = c.length, e = c.shift(), f = n._queueHooks(a, b), g = function () { + n.dequeue(a, b) + }; + "inprogress" === e && (e = c.shift(), d--), e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() + }, _queueHooks: function (a, b) { + var c = b + "queueHooks"; + return L.get(a, c) || L.access(a, c, { + empty: n.Callbacks("once memory").add(function () { + L.remove(a, [b + "queue", c]) + }) + }) + } + }), n.fn.extend({ + queue: function (a, b) { + var c = 2; + return "string" != typeof a && (b = a, a = "fx", c--), arguments.length < c ? n.queue(this[0], a) : void 0 === b ? this : this.each(function () { + var c = n.queue(this, a, b); + n._queueHooks(this, a), "fx" === a && "inprogress" !== c[0] && n.dequeue(this, a) + }) + }, dequeue: function (a) { + return this.each(function () { + n.dequeue(this, a) + }) + }, clearQueue: function (a) { + return this.queue(a || "fx", []) + }, promise: function (a, b) { + var c, d = 1, e = n.Deferred(), f = this, g = this.length, h = function () { + --d || e.resolveWith(f, [f]) + }; + "string" != typeof a && (b = a, a = void 0), a = a || "fx"; + while (g--)c = L.get(f[g], a + "queueHooks"), c && c.empty && (d++, c.empty.add(h)); + return h(), e.promise(b) + } + }); + var Q = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, R = ["Top", "Right", "Bottom", "Left"], S = function (a, b) { + return a = b || a, "none" === n.css(a, "display") || !n.contains(a.ownerDocument, a) + }, T = /^(?:checkbox|radio)$/i; + !function () { + var a = l.createDocumentFragment(), b = a.appendChild(l.createElement("div")), c = l.createElement("input"); + c.setAttribute("type", "radio"), c.setAttribute("checked", "checked"), c.setAttribute("name", "t"), b.appendChild(c), k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked, b.innerHTML = "", k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue + }(); + var U = "undefined"; + k.focusinBubbles = "onfocusin" in a; + var V = /^key/, W = /^(?:mouse|pointer|contextmenu)|click/, X = /^(?:focusinfocus|focusoutblur)$/, Y = /^([^.]*)(?:\.(.+)|)$/; + + function Z() { + return !0 + } + + function $() { + return !1 + } + + function _() { + try { + return l.activeElement + } catch (a) { + } + } + + n.event = { + global: {}, + add: function (a, b, c, d, e) { + var f, g, h, i, j, k, l, m, o, p, q, r = L.get(a); + if (r) { + c.handler && (f = c, c = f.handler, e = f.selector), c.guid || (c.guid = n.guid++), (i = r.events) || (i = r.events = {}), (g = r.handle) || (g = r.handle = function (b) { + return typeof n !== U && n.event.triggered !== b.type ? n.event.dispatch.apply(a, arguments) : void 0 + }), b = (b || "").match(E) || [""], j = b.length; + while (j--)h = Y.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o && (l = n.event.special[o] || {}, o = (e ? l.delegateType : l.bindType) || o, l = n.event.special[o] || {}, k = n.extend({ + type: o, + origType: q, + data: d, + handler: c, + guid: c.guid, + selector: e, + needsContext: e && n.expr.match.needsContext.test(e), + namespace: p.join(".") + }, f), (m = i[o]) || (m = i[o] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, p, g) !== !1 || a.addEventListener && a.addEventListener(o, g, !1)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e ? m.splice(m.delegateCount++, 0, k) : m.push(k), n.event.global[o] = !0) + } + }, + remove: function (a, b, c, d, e) { + var f, g, h, i, j, k, l, m, o, p, q, r = L.hasData(a) && L.get(a); + if (r && (i = r.events)) { + b = (b || "").match(E) || [""], j = b.length; + while (j--)if (h = Y.exec(b[j]) || [], o = q = h[1], p = (h[2] || "").split(".").sort(), o) { + l = n.event.special[o] || {}, o = (d ? l.delegateType : l.bindType) || o, m = i[o] || [], h = h[2] && new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"), g = f = m.length; + while (f--)k = m[f], !e && q !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), k.selector && m.delegateCount--, l.remove && l.remove.call(a, k)); + g && !m.length && (l.teardown && l.teardown.call(a, p, r.handle) !== !1 || n.removeEvent(a, o, r.handle), delete i[o]) + } else for (o in i)n.event.remove(a, o + b[j], c, d, !0); + n.isEmptyObject(i) && (delete r.handle, L.remove(a, "events")) + } + }, + trigger: function (b, c, d, e) { + var f, g, h, i, k, m, o, p = [d || l], q = j.call(b, "type") ? b.type : b, r = j.call(b, "namespace") ? b.namespace.split(".") : []; + if (g = h = d = d || l, 3 !== d.nodeType && 8 !== d.nodeType && !X.test(q + n.event.triggered) && (q.indexOf(".") >= 0 && (r = q.split("."), q = r.shift(), r.sort()), k = q.indexOf(":") < 0 && "on" + q, b = b[n.expando] ? b : new n.Event(q, "object" == typeof b && b), b.isTrigger = e ? 2 : 3, b.namespace = r.join("."), b.namespace_re = b.namespace ? new RegExp("(^|\\.)" + r.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, b.result = void 0, b.target || (b.target = d), c = null == c ? [b] : n.makeArray(c, [b]), o = n.event.special[q] || {}, e || !o.trigger || o.trigger.apply(d, c) !== !1)) { + if (!e && !o.noBubble && !n.isWindow(d)) { + for (i = o.delegateType || q, X.test(i + q) || (g = g.parentNode); g; g = g.parentNode)p.push(g), h = g; + h === (d.ownerDocument || l) && p.push(h.defaultView || h.parentWindow || a) + } + f = 0; + while ((g = p[f++]) && !b.isPropagationStopped())b.type = f > 1 ? i : o.bindType || q, m = (L.get(g, "events") || {})[b.type] && L.get(g, "handle"), m && m.apply(g, c), m = k && g[k], m && m.apply && n.acceptData(g) && (b.result = m.apply(g, c), b.result === !1 && b.preventDefault()); + return b.type = q, e || b.isDefaultPrevented() || o._default && o._default.apply(p.pop(), c) !== !1 || !n.acceptData(d) || k && n.isFunction(d[q]) && !n.isWindow(d) && (h = d[k], h && (d[k] = null), n.event.triggered = q, d[q](), n.event.triggered = void 0, h && (d[k] = h)), b.result + } + }, + dispatch: function (a) { + a = n.event.fix(a); + var b, c, e, f, g, h = [], i = d.call(arguments), j = (L.get(this, "events") || {})[a.type] || [], k = n.event.special[a.type] || {}; + if (i[0] = a, a.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, a) !== !1) { + h = n.event.handlers.call(this, a, j), b = 0; + while ((f = h[b++]) && !a.isPropagationStopped()) { + a.currentTarget = f.elem, c = 0; + while ((g = f.handlers[c++]) && !a.isImmediatePropagationStopped())(!a.namespace_re || a.namespace_re.test(g.namespace)) && (a.handleObj = g, a.data = g.data, e = ((n.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i), void 0 !== e && (a.result = e) === !1 && (a.preventDefault(), a.stopPropagation())) + } + return k.postDispatch && k.postDispatch.call(this, a), a.result + } + }, + handlers: function (a, b) { + var c, d, e, f, g = [], h = b.delegateCount, i = a.target; + if (h && i.nodeType && (!a.button || "click" !== a.type))for (; i !== this; i = i.parentNode || this)if (i.disabled !== !0 || "click" !== a.type) { + for (d = [], c = 0; h > c; c++)f = b[c], e = f.selector + " ", void 0 === d[e] && (d[e] = f.needsContext ? n(e, this).index(i) >= 0 : n.find(e, this, null, [i]).length), d[e] && d.push(f); + d.length && g.push({elem: i, handlers: d}) + } + return h < b.length && g.push({elem: this, handlers: b.slice(h)}), g + }, + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + fixHooks: {}, + keyHooks: { + props: "char charCode key keyCode".split(" "), filter: function (a, b) { + return null == a.which && (a.which = null != b.charCode ? b.charCode : b.keyCode), a + } + }, + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function (a, b) { + var c, d, e, f = b.button; + return null == a.pageX && null != b.clientX && (c = a.target.ownerDocument || l, d = c.documentElement, e = c.body, a.pageX = b.clientX + (d && d.scrollLeft || e && e.scrollLeft || 0) - (d && d.clientLeft || e && e.clientLeft || 0), a.pageY = b.clientY + (d && d.scrollTop || e && e.scrollTop || 0) - (d && d.clientTop || e && e.clientTop || 0)), a.which || void 0 === f || (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), a + } + }, + fix: function (a) { + if (a[n.expando])return a; + var b, c, d, e = a.type, f = a, g = this.fixHooks[e]; + g || (this.fixHooks[e] = g = W.test(e) ? this.mouseHooks : V.test(e) ? this.keyHooks : {}), d = g.props ? this.props.concat(g.props) : this.props, a = new n.Event(f), b = d.length; + while (b--)c = d[b], a[c] = f[c]; + return a.target || (a.target = l), 3 === a.target.nodeType && (a.target = a.target.parentNode), g.filter ? g.filter(a, f) : a + }, + special: { + load: {noBubble: !0}, focus: { + trigger: function () { + return this !== _() && this.focus ? (this.focus(), !1) : void 0 + }, delegateType: "focusin" + }, blur: { + trigger: function () { + return this === _() && this.blur ? (this.blur(), !1) : void 0 + }, delegateType: "focusout" + }, click: { + trigger: function () { + return "checkbox" === this.type && this.click && n.nodeName(this, "input") ? (this.click(), !1) : void 0 + }, _default: function (a) { + return n.nodeName(a.target, "a") + } + }, beforeunload: { + postDispatch: function (a) { + void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) + } + } + }, + simulate: function (a, b, c, d) { + var e = n.extend(new n.Event, c, {type: a, isSimulated: !0, originalEvent: {}}); + d ? n.event.trigger(e, null, b) : n.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault() + } + }, n.removeEvent = function (a, b, c) { + a.removeEventListener && a.removeEventListener(b, c, !1) + }, n.Event = function (a, b) { + return this instanceof n.Event ? (a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 ? Z : $) : this.type = a, b && n.extend(this, b), this.timeStamp = a && a.timeStamp || n.now(), void(this[n.expando] = !0)) : new n.Event(a, b) + }, n.Event.prototype = { + isDefaultPrevented: $, + isPropagationStopped: $, + isImmediatePropagationStopped: $, + preventDefault: function () { + var a = this.originalEvent; + this.isDefaultPrevented = Z, a && a.preventDefault && a.preventDefault() + }, + stopPropagation: function () { + var a = this.originalEvent; + this.isPropagationStopped = Z, a && a.stopPropagation && a.stopPropagation() + }, + stopImmediatePropagation: function () { + var a = this.originalEvent; + this.isImmediatePropagationStopped = Z, a && a.stopImmediatePropagation && a.stopImmediatePropagation(), this.stopPropagation() + } + }, n.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, function (a, b) { + n.event.special[a] = { + delegateType: b, bindType: b, handle: function (a) { + var c, d = this, e = a.relatedTarget, f = a.handleObj; + return (!e || e !== d && !n.contains(d, e)) && (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), c + } + } + }), k.focusinBubbles || n.each({focus: "focusin", blur: "focusout"}, function (a, b) { + var c = function (a) { + n.event.simulate(b, a.target, n.event.fix(a), !0) + }; + n.event.special[b] = { + setup: function () { + var d = this.ownerDocument || this, e = L.access(d, b); + e || d.addEventListener(a, c, !0), L.access(d, b, (e || 0) + 1) + }, teardown: function () { + var d = this.ownerDocument || this, e = L.access(d, b) - 1; + e ? L.access(d, b, e) : (d.removeEventListener(a, c, !0), L.remove(d, b)) + } + } + }), n.fn.extend({ + on: function (a, b, c, d, e) { + var f, g; + if ("object" == typeof a) { + "string" != typeof b && (c = c || b, b = void 0); + for (g in a)this.on(g, b, c, a[g], e); + return this + } + if (null == c && null == d ? (d = b, c = b = void 0) : null == d && ("string" == typeof b ? (d = c, c = void 0) : (d = c, c = b, b = void 0)), d === !1)d = $; else if (!d)return this; + return 1 === e && (f = d, d = function (a) { + return n().off(a), f.apply(this, arguments) + }, d.guid = f.guid || (f.guid = n.guid++)), this.each(function () { + n.event.add(this, a, d, c, b) + }) + }, one: function (a, b, c, d) { + return this.on(a, b, c, d, 1) + }, off: function (a, b, c) { + var d, e; + if (a && a.preventDefault && a.handleObj)return d = a.handleObj, n(a.delegateTarget).off(d.namespace ? d.origType + "." + d.namespace : d.origType, d.selector, d.handler), this; + if ("object" == typeof a) { + for (e in a)this.off(e, b, a[e]); + return this + } + return (b === !1 || "function" == typeof b) && (c = b, b = void 0), c === !1 && (c = $), this.each(function () { + n.event.remove(this, a, c, b) + }) + }, trigger: function (a, b) { + return this.each(function () { + n.event.trigger(a, b, this) + }) + }, triggerHandler: function (a, b) { + var c = this[0]; + return c ? n.event.trigger(a, b, c, !0) : void 0 + } + }); + var aa = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, ba = /<([\w:]+)/, ca = /<|&#?\w+;/, da = /<(?:script|style|link)/i, ea = /checked\s*(?:[^=]|=\s*.checked.)/i, fa = /^$|\/(?:java|ecma)script/i, ga = /^true\/(.*)/, ha = /^\s*\s*$/g, ia = { + option: [1, ""], + thead: [1, "", "
    "], + col: [2, "", "
    "], + tr: [2, "", "
    "], + td: [3, "", "
    "], + _default: [0, "", ""] + }; + ia.optgroup = ia.option, ia.tbody = ia.tfoot = ia.colgroup = ia.caption = ia.thead, ia.th = ia.td; + function ja(a, b) { + return n.nodeName(a, "table") && n.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") ? a.getElementsByTagName("tbody")[0] || a.appendChild(a.ownerDocument.createElement("tbody")) : a + } + + function ka(a) { + return a.type = (null !== a.getAttribute("type")) + "/" + a.type, a + } + + function la(a) { + var b = ga.exec(a.type); + return b ? a.type = b[1] : a.removeAttribute("type"), a + } + + function ma(a, b) { + for (var c = 0, d = a.length; d > c; c++)L.set(a[c], "globalEval", !b || L.get(b[c], "globalEval")) + } + + function na(a, b) { + var c, d, e, f, g, h, i, j; + if (1 === b.nodeType) { + if (L.hasData(a) && (f = L.access(a), g = L.set(b, f), j = f.events)) { + delete g.handle, g.events = {}; + for (e in j)for (c = 0, d = j[e].length; d > c; c++)n.event.add(b, e, j[e][c]) + } + M.hasData(a) && (h = M.access(a), i = n.extend({}, h), M.set(b, i)) + } + } + + function oa(a, b) { + var c = a.getElementsByTagName ? a.getElementsByTagName(b || "*") : a.querySelectorAll ? a.querySelectorAll(b || "*") : []; + return void 0 === b || b && n.nodeName(a, b) ? n.merge([a], c) : c + } + + function pa(a, b) { + var c = b.nodeName.toLowerCase(); + "input" === c && T.test(a.type) ? b.checked = a.checked : ("input" === c || "textarea" === c) && (b.defaultValue = a.defaultValue) + } + + n.extend({ + clone: function (a, b, c) { + var d, e, f, g, h = a.cloneNode(!0), i = n.contains(a.ownerDocument, a); + if (!(k.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || n.isXMLDoc(a)))for (g = oa(h), f = oa(a), d = 0, e = f.length; e > d; d++)pa(f[d], g[d]); + if (b)if (c)for (f = f || oa(a), g = g || oa(h), d = 0, e = f.length; e > d; d++)na(f[d], g[d]); else na(a, h); + return g = oa(h, "script"), g.length > 0 && ma(g, !i && oa(a, "script")), h + }, buildFragment: function (a, b, c, d) { + for (var e, f, g, h, i, j, k = b.createDocumentFragment(), l = [], m = 0, o = a.length; o > m; m++)if (e = a[m], e || 0 === e)if ("object" === n.type(e))n.merge(l, e.nodeType ? [e] : e); else if (ca.test(e)) { + f = f || k.appendChild(b.createElement("div")), g = (ba.exec(e) || ["", ""])[1].toLowerCase(), h = ia[g] || ia._default, f.innerHTML = h[1] + e.replace(aa, "<$1>") + h[2], j = h[0]; + while (j--)f = f.lastChild; + n.merge(l, f.childNodes), f = k.firstChild, f.textContent = "" + } else l.push(b.createTextNode(e)); + k.textContent = "", m = 0; + while (e = l[m++])if ((!d || -1 === n.inArray(e, d)) && (i = n.contains(e.ownerDocument, e), f = oa(k.appendChild(e), "script"), i && ma(f), c)) { + j = 0; + while (e = f[j++])fa.test(e.type || "") && c.push(e) + } + return k + }, cleanData: function (a) { + for (var b, c, d, e, f = n.event.special, g = 0; void 0 !== (c = a[g]); g++) { + if (n.acceptData(c) && (e = c[L.expando], e && (b = L.cache[e]))) { + if (b.events)for (d in b.events)f[d] ? n.event.remove(c, d) : n.removeEvent(c, d, b.handle); + L.cache[e] && delete L.cache[e] + } + delete M.cache[c[M.expando]] + } + } + }), n.fn.extend({ + text: function (a) { + return J(this, function (a) { + return void 0 === a ? n.text(this) : this.empty().each(function () { + (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) && (this.textContent = a) + }) + }, null, a, arguments.length) + }, append: function () { + return this.domManip(arguments, function (a) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var b = ja(this, a); + b.appendChild(a) + } + }) + }, prepend: function () { + return this.domManip(arguments, function (a) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var b = ja(this, a); + b.insertBefore(a, b.firstChild) + } + }) + }, before: function () { + return this.domManip(arguments, function (a) { + this.parentNode && this.parentNode.insertBefore(a, this) + }) + }, after: function () { + return this.domManip(arguments, function (a) { + this.parentNode && this.parentNode.insertBefore(a, this.nextSibling) + }) + }, remove: function (a, b) { + for (var c, d = a ? n.filter(a, this) : this, e = 0; null != (c = d[e]); e++)b || 1 !== c.nodeType || n.cleanData(oa(c)), c.parentNode && (b && n.contains(c.ownerDocument, c) && ma(oa(c, "script")), c.parentNode.removeChild(c)); + return this + }, empty: function () { + for (var a, b = 0; null != (a = this[b]); b++)1 === a.nodeType && (n.cleanData(oa(a, !1)), a.textContent = ""); + return this + }, clone: function (a, b) { + return a = null == a ? !1 : a, b = null == b ? a : b, this.map(function () { + return n.clone(this, a, b) + }) + }, html: function (a) { + return J(this, function (a) { + var b = this[0] || {}, c = 0, d = this.length; + if (void 0 === a && 1 === b.nodeType)return b.innerHTML; + if ("string" == typeof a && !da.test(a) && !ia[(ba.exec(a) || ["", ""])[1].toLowerCase()]) { + a = a.replace(aa, "<$1>"); + try { + for (; d > c; c++)b = this[c] || {}, 1 === b.nodeType && (n.cleanData(oa(b, !1)), b.innerHTML = a); + b = 0 + } catch (e) { + } + } + b && this.empty().append(a) + }, null, a, arguments.length) + }, replaceWith: function () { + var a = arguments[0]; + return this.domManip(arguments, function (b) { + a = this.parentNode, n.cleanData(oa(this)), a && a.replaceChild(b, this) + }), a && (a.length || a.nodeType) ? this : this.remove() + }, detach: function (a) { + return this.remove(a, !0) + }, domManip: function (a, b) { + a = e.apply([], a); + var c, d, f, g, h, i, j = 0, l = this.length, m = this, o = l - 1, p = a[0], q = n.isFunction(p); + if (q || l > 1 && "string" == typeof p && !k.checkClone && ea.test(p))return this.each(function (c) { + var d = m.eq(c); + q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b) + }); + if (l && (c = n.buildFragment(a, this[0].ownerDocument, !1, this), d = c.firstChild, 1 === c.childNodes.length && (c = d), d)) { + for (f = n.map(oa(c, "script"), ka), g = f.length; l > j; j++)h = c, j !== o && (h = n.clone(h, !0, !0), g && n.merge(f, oa(h, "script"))), b.call(this[j], h, j); + if (g)for (i = f[f.length - 1].ownerDocument, n.map(f, la), j = 0; g > j; j++)h = f[j], fa.test(h.type || "") && !L.access(h, "globalEval") && n.contains(i, h) && (h.src ? n._evalUrl && n._evalUrl(h.src) : n.globalEval(h.textContent.replace(ha, ""))) + } + return this + } + }), n.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function (a, b) { + n.fn[a] = function (a) { + for (var c, d = [], e = n(a), g = e.length - 1, h = 0; g >= h; h++)c = h === g ? this : this.clone(!0), n(e[h])[b](c), f.apply(d, c.get()); + return this.pushStack(d) + } + }); + var qa, ra = {}; + + function sa(b, c) { + var d, e = n(c.createElement(b)).appendTo(c.body), f = a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) ? d.display : n.css(e[0], "display"); + return e.detach(), f + } + + function ta(a) { + var b = l, c = ra[a]; + return c || (c = sa(a, b), "none" !== c && c || (qa = (qa || n("';break;case 3:b.title=!1,b.closeBtn=!1,-1===b.icon&&0===b.icon,f.closeAll("loading");break;case 4:j||(b.content=[b.content,"body"]),b.follow=b.content[1],b.content=b.content[0]+'',b.title=!1,b.shade=!1,b.fix=!1,b.tips="object"==typeof b.tips?b.tips:[b.tips,!0],b.tipsMore||f.closeAll("tips")}a.vessel(j,function(d,e){c("body").append(d[0]),j?function(){2==b.type||4==b.type?function(){c("body").append(d[1])}():function(){i.parents("."+h[0])[0]||(i.show().addClass("layui-layer-wrap").wrap(d[1]),c("#"+h[0]+g).find("."+h[5]).before(e))}()}():c("body").append(d[1]),a.layero=c("#"+h[0]+g),b.scrollbar||h.html.css("overflow","hidden").attr("layer-full",g)}).auto(g),2==b.type&&f.ie6&&a.layero.find("iframe").attr("src",i[0]),c(document).off("keydown",e.enter).on("keydown",e.enter),a.layero.on("keydown",function(a){c(document).off("keydown",e.enter)}),4==b.type?a.tips():a.offset(),b.fix&&d.on("resize",function(){a.offset(),(/^\d+%$/.test(b.area[0])||/^\d+%$/.test(b.area[1]))&&a.auto(g),4==b.type&&a.tips()}),b.time<=0||setTimeout(function(){f.close(a.index)},b.time),a.move().callback()},g.pt.auto=function(a){function b(a){a=g.find(a),a.height(i[1]-j-k-2*(0|parseFloat(a.css("padding"))))}var e=this,f=e.config,g=c("#"+h[0]+a);""===f.area[0]&&f.maxWidth>0&&(/MSIE 7/.test(navigator.userAgent)&&f.btn&&g.width(g.innerWidth()),g.outerWidth()>f.maxWidth&&g.width(f.maxWidth));var i=[g.innerWidth(),g.innerHeight()],j=g.find(h[1]).outerHeight()||0,k=g.find("."+h[6]).outerHeight()||0;switch(f.type){case 2:b("iframe");break;default:""===f.area[1]?f.fix&&i[1]>=d.height()&&(i[1]=d.height(),b("."+h[5])):b("."+h[5])}return e},g.pt.offset=function(){var a=this,b=a.config,c=a.layero,e=[c.outerWidth(),c.outerHeight()],f="object"==typeof b.offset;a.offsetTop=(d.height()-e[1])/2,a.offsetLeft=(d.width()-e[0])/2,f?(a.offsetTop=b.offset[0],a.offsetLeft=b.offset[1]||a.offsetLeft):"auto"!==b.offset&&(a.offsetTop=b.offset,"rb"===b.offset&&(a.offsetTop=d.height()-e[1],a.offsetLeft=d.width()-e[0])),b.fix||(a.offsetTop=/%$/.test(a.offsetTop)?d.height()*parseFloat(a.offsetTop)/100:parseFloat(a.offsetTop),a.offsetLeft=/%$/.test(a.offsetLeft)?d.width()*parseFloat(a.offsetLeft)/100:parseFloat(a.offsetLeft),a.offsetTop+=d.scrollTop(),a.offsetLeft+=d.scrollLeft()),c.css({top:a.offsetTop,left:a.offsetLeft})},g.pt.tips=function(){var a=this,b=a.config,e=a.layero,f=[e.outerWidth(),e.outerHeight()],g=c(b.follow);g[0]||(g=c("body"));var i={width:g.outerWidth(),height:g.outerHeight(),top:g.offset().top,left:g.offset().left},j=e.find(".layui-layer-TipsG"),k=b.tips[0];b.tips[1]||j.remove(),i.autoLeft=function(){i.left+f[0]-d.width()>0?(i.tipLeft=i.left+i.width-f[0],j.css({right:12,left:"auto"})):i.tipLeft=i.left},i.where=[function(){i.autoLeft(),i.tipTop=i.top-f[1]-10,j.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left+i.width+10,i.tipTop=i.top,j.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",b.tips[1])},function(){i.autoLeft(),i.tipTop=i.top+i.height+10,j.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left-f[0]-10,i.tipTop=i.top,j.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",b.tips[1])}],i.where[k-1](),1===k?i.top-(d.scrollTop()+f[1]+16)<0&&i.where[2]():2===k?d.width()-(i.left+i.width+f[0]+16)>0||i.where[3]():3===k?i.top-d.scrollTop()+i.height+f[1]+16-d.height()>0&&i.where[0]():4===k&&f[0]+16-i.left>0&&i.where[1](),e.find("."+h[5]).css({"background-color":b.tips[1],"padding-right":b.closeBtn?"30px":""}),e.css({left:i.tipLeft,top:i.tipTop})},g.pt.move=function(){var a=this,b=a.config,e={setY:0,moveLayer:function(){var a=e.layero,b=parseInt(a.css("margin-left")),c=parseInt(e.move.css("left"));0===b||(c-=b),"fixed"!==a.css("position")&&(c-=a.parent().offset().left,e.setY=0),a.css({left:c,top:parseInt(e.move.css("top"))-e.setY})}},f=a.layero.find(b.move);return b.move&&f.attr("move","ok"),f.css({cursor:b.move?"move":"auto"}),c(b.move).on("mousedown",function(a){if(a.preventDefault(),"ok"===c(this).attr("move")){e.ismove=!0,e.layero=c(this).parents("."+h[0]);var f=e.layero.offset().left,g=e.layero.offset().top,i=e.layero.outerWidth()-6,j=e.layero.outerHeight()-6;c("#layui-layer-moves")[0]||c("body").append('
    '),e.move=c("#layui-layer-moves"),b.moveType&&e.move.css({visibility:"hidden"}),e.moveX=a.pageX-e.move.position().left,e.moveY=a.pageY-e.move.position().top,"fixed"!==e.layero.css("position")||(e.setY=d.scrollTop())}}),c(document).mousemove(function(a){if(e.ismove){var c=a.pageX-e.moveX,f=a.pageY-e.moveY;if(a.preventDefault(),!b.moveOut){e.setY=d.scrollTop();var g=d.width()-e.move.outerWidth(),h=e.setY;0>c&&(c=0),c>g&&(c=g),h>f&&(f=h),f>d.height()-e.move.outerHeight()+e.setY&&(f=d.height()-e.move.outerHeight()+e.setY)}e.move.css({left:c,top:f}),b.moveType&&e.moveLayer(),c=f=g=h=null}}).mouseup(function(){try{e.ismove&&(e.moveLayer(),e.move.remove(),b.moveEnd&&b.moveEnd()),e.ismove=!1}catch(a){e.ismove=!1}}),a},g.pt.callback=function(){function a(){var a=g.cancel&&g.cancel(b.index);a===!1||f.close(b.index)}var b=this,d=b.layero,g=b.config;b.openLayer(),g.success&&(2==g.type?d.find("iframe").on("load",function(){g.success(d,b.index)}):g.success(d,b.index)),f.ie6&&b.IE6(d),d.find("."+h[6]).children("a").on("click",function(){var e=c(this).index();g["btn"+(e+1)]&&g["btn"+(e+1)](b.index,d),0===e?g.yes?g.yes(b.index,d):f.close(b.index):1===e?a():g["btn"+(e+1)]||f.close(b.index)}),d.find("."+h[7]).on("click",a),g.shadeClose&&c("#layui-layer-shade"+b.index).on("click",function(){f.close(b.index)}),d.find(".layui-layer-min").on("click",function(){f.min(b.index,g),g.min&&g.min(d)}),d.find(".layui-layer-max").on("click",function(){c(this).hasClass("layui-layer-maxmin")?(f.restore(b.index),g.restore&&g.restore(d)):(f.full(b.index,g),g.full&&g.full(d))}),g.end&&(e.end[b.index]=g.end)},e.reselect=function(){c.each(c("select"),function(a,b){var d=c(this);d.parents("."+h[0])[0]||1==d.attr("layer")&&c("."+h[0]).length<1&&d.removeAttr("layer").show(),d=null})},g.pt.IE6=function(a){function b(){a.css({top:f+(e.config.fix?d.scrollTop():0)})}var e=this,f=a.offset().top;b(),d.scroll(b),c("select").each(function(a,b){var d=c(this);d.parents("."+h[0])[0]||"none"===d.css("display")||d.attr({layer:"1"}).hide(),d=null})},g.pt.openLayer=function(){var a=this;f.zIndex=a.config.zIndex,f.setTop=function(a){var b=function(){f.zIndex++,a.css("z-index",f.zIndex+1)};return f.zIndex=parseInt(a[0].style.zIndex),a.on("mousedown",b),f.zIndex}},e.record=function(a){var b=[a.outerWidth(),a.outerHeight(),a.position().top,a.position().left+parseFloat(a.css("margin-left"))];a.find(".layui-layer-max").addClass("layui-layer-maxmin"),a.attr({area:b})},e.rescollbar=function(a){h.html.attr("layer-full")==a&&(h.html[0].style.removeProperty?h.html[0].style.removeProperty("overflow"):h.html[0].style.removeAttribute("overflow"),h.html.removeAttr("layer-full"))},a.layer=f,f.getChildFrame=function(a,b){return b=b||c("."+h[4]).attr("times"),c("#"+h[0]+b).find("iframe").contents().find(a)},f.getFrameIndex=function(a){return c("#"+a).parents("."+h[4]).attr("times")},f.iframeAuto=function(a){if(a){var b=f.getChildFrame("html",a).outerHeight(),d=c("#"+h[0]+a),e=d.find(h[1]).outerHeight()||0,g=d.find("."+h[6]).outerHeight()||0;d.css({height:b+e+g}),d.find("iframe").css({height:b})}},f.iframeSrc=function(a,b){c("#"+h[0]+a).find("iframe").attr("src",b)},f.style=function(a,b){var d=c("#"+h[0]+a),f=d.attr("type"),g=d.find(h[1]).outerHeight()||0,i=d.find("."+h[6]).outerHeight()||0;(f===e.type[1]||f===e.type[2])&&(d.css(b),f===e.type[2]&&d.find("iframe").css({height:parseFloat(b.height)-g-i}))},f.min=function(a,b){var d=c("#"+h[0]+a),g=d.find(h[1]).outerHeight()||0;e.record(d),f.style(a,{width:180,height:g,overflow:"hidden"}),d.find(".layui-layer-min").hide(),"page"===d.attr("type")&&d.find(h[4]).hide(),e.rescollbar(a)},f.restore=function(a){var b=c("#"+h[0]+a),d=b.attr("area").split(",");b.attr("type");f.style(a,{width:parseFloat(d[0]),height:parseFloat(d[1]),top:parseFloat(d[2]),left:parseFloat(d[3]),overflow:"visible"}),b.find(".layui-layer-max").removeClass("layui-layer-maxmin"),b.find(".layui-layer-min").show(),"page"===b.attr("type")&&b.find(h[4]).show(),e.rescollbar(a)},f.full=function(a){var b,g=c("#"+h[0]+a);e.record(g),h.html.attr("layer-full")||h.html.css("overflow","hidden").attr("layer-full",a),clearTimeout(b),b=setTimeout(function(){var b="fixed"===g.css("position");f.style(a,{top:b?0:d.scrollTop(),left:b?0:d.scrollLeft(),width:d.width(),height:d.height()}),g.find(".layui-layer-min").hide()},100)},f.title=function(a,b){var d=c("#"+h[0]+(b||f.index)).find(h[1]);d.html(a)},f.close=function(a){var b=c("#"+h[0]+a),d=b.attr("type");if(b[0]){if(d===e.type[1]&&"object"===b.attr("conType")){b.children(":not(."+h[5]+")").remove();for(var g=0;2>g;g++)b.find(".layui-layer-wrap").unwrap().hide()}else{if(d===e.type[2])try{var i=c("#"+h[4]+a)[0];i.contentWindow.document.write(""),i.contentWindow.close(),b.find("."+h[5])[0].removeChild(i)}catch(j){}b[0].innerHTML="",b.remove()}c("#layui-layer-moves, #layui-layer-shade"+a).remove(),f.ie6&&e.reselect(),e.rescollbar(a),c(document).off("keydown",e.enter),"function"==typeof e.end[a]&&e.end[a](),delete e.end[a]}},f.closeAll=function(a){c.each(c("."+h[0]),function(){var b=c(this),d=a?b.attr("type")===a:1;d&&f.close(b.attr("times")),d=null})},e.run=function(){c=jQuery,d=c(a),h.html=c("html"),f.open=function(a){var b=new g(a);return b.index}},"function"==typeof define?define(function(){return e.run(),f}):function(){e.run(),f.use("skin/layer.css")}()}(window); \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/web2/js/public-z.js b/codes/agent/game-docker/dlweb/api/web2/js/public-z.js new file mode 100644 index 0000000..362e4cd --- /dev/null +++ b/codes/agent/game-docker/dlweb/api/web2/js/public-z.js @@ -0,0 +1,19 @@ +/** + * Created by zhaohuilin on 2017/10/12. + */ +$("#vuenum").on("touchmove",function(){ + $(".huad-left").hide(); +}); +$("#vuenum").on("click",function(){ + $(".huad-left").hide(); +}); +$(".nav-li").click(function(){ + var obj = $(this); + obj.find(".nav-li-a").addClass("active"); + obj.siblings().find(".nav-li-a").removeClass("active"); +}); +$(".footer_ul li").click(function(){ + var obj = $(this); + obj.addClass("blue"); + obj.siblings().removeClass("blue"); +}); \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/web2/js/public_method.js b/codes/agent/game-docker/dlweb/api/web2/js/public_method.js new file mode 100644 index 0000000..20921bf --- /dev/null +++ b/codes/agent/game-docker/dlweb/api/web2/js/public_method.js @@ -0,0 +1,1062 @@ +//常量数据 +var public_app = "youle";// 游戏游戏的应用ID 服务器调用 +var public_route = "sales"; + + +var public_agentid = "";//测试使用数据。使用微信菜单链接后去掉内容 //代理id +var public_appid = ""; //开发者平台的app_id 支付使用 +var public_devkey = ""; +var public_businessid = ""; + +var public_server_url_one = "http://ylyxservice1.daoqijuyou77.cn:1089/index.html";// + + + +var public_openid = "";//用户的微信openid +var public_nickname = "";//昵称 +var public_avatar = "";//头像地址 +var public_sex = "";//性别 +var public_province = "";//省 +var public_city = "";//城市 +var public_unionid = "";//用户的微信unionid + +var productid_id = "";//产品类型 +var select_model_color = "#2697fc"; +var default_color = "#717274"; +var room_card = 0; + +//var login_url = ""; + + +var user_login_method = function (type) { + var data = {}; + data.app = public_app; + data.route = "platform"; + data.rpc = "agentserver_web"; + data.data = {}; + if (min_getQueryString("agentid") != null) { + var agentid = decodeURIComponent(min_getQueryString("agentid")); + data.data.agentid = agentid; + } else { + if (getCookie("agentid") != null) { + data.data.agentid = getCookie("agentid"); + } else { + data.data.agentid = ""; + } + } + if (min_getQueryString("channelid")) { + var channelid = decodeURIComponent(min_getQueryString("channelid")); + data.data.channelid = channelid; + } else { + if (getCookie("channelid")) { + data.data.channelid = getCookie("channelid"); + } else { + data.data.channelid = ""; + } + } + var config = {}; + config.url = public_server_url_one; + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var data_str = JSON.parse(data); + var public_appid = data_str.data.youle_appid; + var public_devkey = data_str.data.youle_devkey; + var public_businessid = data_str.data.youle_busiid; + setCookie("agentid", data_str.data.agentid); + setCookie("channelid", data_str.data.channelid); + setCookie("channeltel", data_str.data.channeltel); + setCookie("channelwechat", data_str.data.channelwechat); + setCookie("agentlogo", data_str.data.agentlogo); + setCookie("appid", data_str.data.youle_appid); + setCookie("devkey", data_str.data.youle_devkey); + setCookie("busiid", data_str.data.youle_busiid); + setCookie("url_sales", data_str.data.urlserver); + if (type == 1) {//有推荐人 + youle_dev_face.wechat_login_getuserinfo(public_appid, public_devkey, public_businessid, tuijianren_get_wx_succ, get_wx_fail); + } else if (type == 0) {//无推荐人 + youle_dev_face.wechat_login_getuserinfo(public_appid, public_devkey, public_businessid, get_wx_succ, get_wx_fail); + } else if (type == 3) {//代理登录 + youle_dev_face.wechat_login_getuserinfo(public_appid, public_devkey, public_businessid, agentget_wx_succ, get_wx_fail); + } + }; + config.error = function (str) { + //alert("错误提示:" + str); + }; + min_http(config); +}; + +var get_wx_succ = function (data) {//获取微信信息成功后 + var get_wx_data = data;//json对象转换成json字符串 + var public_openid = get_wx_data.openid;//openid + var public_nickname = get_wx_data.nickname;//用户名 + var public_avatar = get_wx_data.avatar;//头像 + var public_sex = get_wx_data.sex;//年龄 + var public_province = get_wx_data.province;//省份 + var public_city = get_wx_data.city;//省份城市 + var public_unionid = get_wx_data.unionid;//绑定游戏ID + setCookie("openid", get_wx_data.openid); + setCookie("nickname", get_wx_data.nickname); + setCookie("avatar", get_wx_data.avatar); + setCookie("sex", get_wx_data.sex); + setCookie("province", get_wx_data.province); + setCookie("city", get_wx_data.city); + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "user_login"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.channelid = getCookie("channelid"); + data.data.openid = public_openid; + data.data.unionid = public_unionid; + data.data.nickname = public_nickname; + data.data.avatar = public_avatar; + data.data.sex = public_sex; + data.data.province = public_province; + data.data.city = public_city; + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var data_str = JSON.parse(data); + if (data_str.data.salestype == undefined) { + setCookie("salestype", 0); + } else { + setCookie("salestype", data_str.data.salestype); + } + setCookie("salesman", data_str.data.salesman); + setCookie("salesid", data_str.data.salesid); + setCookie("room_card", data_str.data.roomcard); + setCookie("awardstate", data_str.data.awardstate); + if (document.getElementById("yk_headImg")) { + document.getElementById("yk_headImg").src = getCookie("avatar"); + document.getElementById("yk_user_name").innerHTML = getCookie("nickname"); + document.getElementById("yk_user_logo").src = getCookie("agentlogo"); + } else { + } + }; + config.error = function (str) { + //alert("错误提示:" + str); + }; + min_http(config); +}; +var tuijianren_get_wx_succ = function (data) {//获取微信信息成功后 + var get_wx_data = data;//json对象转换成json字符串 + var public_openid = get_wx_data.openid;//openid + var public_nickname = get_wx_data.nickname;//用户名 + var public_avatar = get_wx_data.avatar;//头像 + var public_sex = get_wx_data.sex;//年龄 + var public_province = get_wx_data.province;//省份 + var public_city = get_wx_data.city;//省份城市 + var public_unionid = get_wx_data.unionid;//绑定游戏ID + setCookie("openid", get_wx_data.openid); + setCookie("nickname", get_wx_data.nickname); + setCookie("avatar", get_wx_data.avatar); + setCookie("sex", get_wx_data.sex); + setCookie("province", get_wx_data.province); + setCookie("city", get_wx_data.city); + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "user_login"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.channelid = getCookie("channelid"); + data.data.openid = public_openid; + data.data.unionid = public_unionid; + data.data.nickname = public_nickname; + data.data.avatar = public_avatar; + data.data.sex = public_sex; + data.data.province = public_province; + data.data.city = public_city; + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var data_str = JSON.parse(data); + if (data_str.data.salestype == undefined) { + setCookie("salestype", 0); + } else { + setCookie("salestype", data_str.data.salestype); + } + if (data_str.data.salesman == 0) { + setCookie("salesman", data_str.data.salesman); + setCookie("salesid", data_str.data.salesid); + setCookie("room_card", data_str.data.roomcard); + setCookie("awardstate", data_str.data.awardstate); + document.getElementById("yk_headImg").src = getCookie("avatar"); + document.getElementById("yk_user_name").innerHTML = getCookie("nickname"); + document.getElementById("yk_user_logo").src = getCookie("agentlogo"); + } else if (data_str.data.salesman == 1) { + setCookie("salesman", data_str.data.salesman); + setCookie("salesid", data_str.data.salesid); + setCookie("room_card", data_str.data.roomcard); + setCookie("awardstate", data_str.data.awardstate); + window.location.href = "user_three.html?#" + Math.random() * 100000; + } + }; + config.error = function (str) { + //alert("错误提示:" + str); + }; + min_http(config); +}; +var agentget_wx_succ = function (data) { + var get_wx_data = data;//json对象转换成json字符串 + var public_openid = get_wx_data.openid;//openid + var public_nickname = get_wx_data.nickname;//用户名 + var public_avatar = get_wx_data.avatar;//头像 + var public_sex = get_wx_data.sex;//年龄 + var public_province = get_wx_data.province;//省份 + var public_city = get_wx_data.city;//省份城市 + var public_unionid = get_wx_data.unionid;//绑定游戏ID + setCookie("openid", get_wx_data.openid); + setCookie("nickname", get_wx_data.nickname); + setCookie("avatar", get_wx_data.avatar); + setCookie("sex", get_wx_data.sex); + setCookie("province", get_wx_data.province); + setCookie("city", get_wx_data.city); + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "user_login"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.channelid = getCookie("channelid"); + data.data.openid = public_openid; + data.data.unionid = public_unionid; + data.data.nickname = public_nickname; + data.data.avatar = public_avatar; + data.data.sex = public_sex; + data.data.province = public_province; + data.data.city = public_city; + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var data_str = JSON.parse(data); + if (data_str.data.salestype == undefined) { + setCookie("salestype", 0); + } else { + setCookie("salestype", data_str.data.salestype); + } + setCookie("salesid", data_str.data.salesid); + setCookie("room_card", data_str.data.roomcard); + setCookie("salesman", data_str.data.salesman); + document.getElementById("agent_head_img").src = getCookie("avatar"); + document.getElementById("agent_user_name").innerHTML = getCookie("nickname"); + document.getElementById("agent_head_logo").src = getCookie("agentlogo"); + document.getElementById("sy_fk_num").innerHTML = "F卡数:" + getCookie("room_card"); + }; + config.error = function (str) { + //alert("错误提示:" + str); + }; + min_http(config); +}; +var get_wx_fail = function () { + Currency_Prompt('错误提示', '返回失败'); +}; + +var login_package = function () { + var sidscode = youle_dev_face.getsidscode();//订单支付成功查询 + if (sidscode.sid && sidscode.scode) {// 本地存储了sid和scode + document.getElementById("yk_headImg").src = getCookie("avatar"); + document.getElementById("yk_user_name").innerHTML = getCookie("nickname"); + document.getElementById("yk_user_logo").innerHTML = getCookie("agentlogo"); + } else { + user_login_method(0); + } +}; +var Agentlogin_package = function () { + var sidscode = youle_dev_face.getsidscode();//订单支付成功查询 + if (sidscode.sid && sidscode.scode) {// 本地存储了sid和scode + document.getElementById("agent_head_img").src = getCookie("avatar"); + document.getElementById("agent_user_name").innerHTML = getCookie("nickname"); + document.getElementById("agent_head_logo").src = getCookie("agentlogo"); + document.getElementById("sy_fk_num").innerHTML = "F卡数:" + getCookie("room_card"); + } else { + user_login_method(3); + } +}; +function delCookie(name) { + var exp = new Date(); + exp.setTime(exp.getTime() - 1); + var cval = getCookie(name); + if (cval != null) + document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); +} + + +//var yk_productid_id = ""; +//公用函数 +/************************************************************************ + | 函数名称: setCookie | + | 函数功能: 设置cookie函数 | + | 入口参数: name:cookie名称;value:cookie值 | + *************************************************************************/ +function setCookie(name, value) { + var Days = 30; + var exp = new Date(); + exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); + document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); +} + +/************************************************************************ + | 函数名称: getCookie | + | 函数功能: 读取cookie函数 | + | 入口参数: Name:cookie名称 | + *************************************************************************/ +function getCookie(name) { //读取cookies + var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); + if (arr = document.cookie.match(reg)) + return unescape(arr[2]); + else + return null; +} + +var dl_head_method = function () { + document.getElementById("agent_head_div").innerHTML += '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '
    ' + + '' + + '' + + '本杰明
    ' + '
    ' + + '' + + '
    ' + + '' + + '
    '; +}; +var lunbo_photo = function () { + document.getElementById("lunbo_divId").innerHTML += '' + + ''; +}; +var toolbar_method = function (type) {//工具栏渲染函数 + if (type == 1) { + document.getElementById("toolbar_id").innerHTML += + ''; + } else if (type == 0) { + document.getElementById("toolbar_id").innerHTML += + ''; + } +}; +/* + '
  6. ' + + '' + '' + + '' + + '我的' + + '' + + '
  7. ' + + / + */ +var point_page = function (type,value) {//我的信息 + switch (type) { + case 1://售卡 + if(value == 1){ + document.getElementById("sellCard_icon").style.color = select_model_color;//售卡 + document.getElementById("sellCard_font").style.color = select_model_color; + + document.getElementById("notice_icon").style.color = default_color;//房卡转让 + document.getElementById("notice_font").style.color = default_color; + } + document.getElementById("user_icon").style.color = default_color;//用户中心 + document.getElementById("user_font").style.color = default_color; + + document.getElementById("player_icon").style.color = default_color;//玩家列表 + document.getElementById("player_font").style.color = default_color; + + document.getElementById("agent_icon").style.color = default_color;//代理列表 + document.getElementById("agent_font").style.color = default_color; + + top.window.location = "home_page.html" + "?ver=" + Math.random() * 100000; + break; + case 3://转让房卡 + if(value == 1) { + document.getElementById("sellCard_icon").style.color = default_color;//售卡 + document.getElementById("sellCard_font").style.color = default_color; + + document.getElementById("notice_icon").style.color = select_model_color;//房卡转让 + document.getElementById("notice_font").style.color = select_model_color; + } + document.getElementById("user_icon").style.color = default_color;//用户中心 + document.getElementById("user_font").style.color = default_color; + + document.getElementById("player_icon").style.color = default_color;//玩家列表 + document.getElementById("player_font").style.color = default_color; + + document.getElementById("agent_icon").style.color = default_color;//代理列表 + document.getElementById("agent_font").style.color = default_color; + top.window.location = "TurnCard_page.html" + "?ver=" + Math.random() * 100000; + break; + case 4://用户中心 + if(value == 1) { + document.getElementById("sellCard_icon").style.color = default_color;//售卡 + document.getElementById("sellCard_font").style.color = default_color; + + document.getElementById("notice_icon").style.color = default_color;//房卡转让 + document.getElementById("notice_font").style.color = default_color; + } + document.getElementById("user_icon").style.color = select_model_color;//用户中心 + document.getElementById("user_font").style.color = select_model_color; + + document.getElementById("player_icon").style.color = default_color;//玩家列表 + document.getElementById("player_font").style.color = default_color; + + document.getElementById("agent_icon").style.color = default_color;//代理列表 + document.getElementById("agent_font").style.color = default_color; + top.window.location = "UserCenter_page.html" + "?ver=" + Math.random() * 100000; + break; + case 5://玩家列表 + if(value == 1) { + document.getElementById("sellCard_icon").style.color = default_color;//售卡 + document.getElementById("sellCard_font").style.color = default_color; + + document.getElementById("notice_icon").style.color = default_color;//房卡转让 + document.getElementById("notice_font").style.color = default_color; + } + document.getElementById("user_icon").style.color = default_color;//用户中心 + document.getElementById("user_font").style.color = default_color; + + document.getElementById("player_icon").style.color = select_model_color;//玩家列表 + document.getElementById("player_font").style.color = select_model_color; + + document.getElementById("agent_icon").style.color = default_color;//代理列表 + document.getElementById("agent_font").style.color = default_color; + top.window.location = "playerList.html" + "?ver=" + Math.random() * 100000; + break; + case 6://子代理列表 + if(value == 1) { + document.getElementById("sellCard_icon").style.color = default_color;//售卡 + document.getElementById("sellCard_font").style.color = default_color; + + document.getElementById("notice_icon").style.color = default_color;//房卡转让 + document.getElementById("notice_font").style.color = default_color; + } + document.getElementById("user_icon").style.color = default_color;//用户中心 + document.getElementById("user_font").style.color = default_color; + + document.getElementById("player_icon").style.color = default_color;//玩家列表 + document.getElementById("player_font").style.color = default_color; + + document.getElementById("agent_icon").style.color = select_model_color;//代理列表 + document.getElementById("agent_font").style.color = select_model_color; + top.window.location = "agentList.html" + "?ver=" + Math.random() * 100000; + break; + } +}; +//function removeCookie(name){ +// setCookie(name, 1, -1); +//} +function removeCookie(name) { + var exp = new Date(); + exp.setTime(exp.getTime() - 1); + var cval = getCookie(name); + if (cval != null) + document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); +} +var page_type; +var public_login = function (type) { + page_type = type; + + var data = {}; + data.app = public_app; + data.route = "platform"; + data.rpc = "agentserver_web"; + data.data = {}; + if (min_getQueryString("agentid")) { + var agentid = decodeURIComponent(min_getQueryString("agentid")); + data.data.agentid = agentid; + } else { + if (getCookie("agentid")) { + data.data.agentid = getCookie("agentid"); + } else { + data.data.agentid = ""; + } + } + if (min_getQueryString("channelid")) { + var channelid = decodeURIComponent(min_getQueryString("channelid")); + data.data.channelid = channelid; + } else { + if (getCookie("channelid")) { + data.data.channelid = getCookie("channelid"); + } else { + data.data.channelid = ""; + } + } + var config = {}; + config.url = public_server_url_one; + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var data_str = JSON.parse(data); + public_agentid = data_str.data.agentid; + public_server_url = data_str.data.url_sales; + public_appid = data_str.data.youle_appid; + public_devkey = data_str.data.youle_devkey; + public_businessid = data_str.data.youle_busiid; + setCookie("agentid", data_str.data.agentid); + setCookie("channelid", data_str.data.channelid); + setCookie("channeltel", data_str.data.channeltel); + setCookie("channelwechat", data_str.data.channelwechat); + setCookie("appid", data_str.data.youle_appid); + setCookie("devkey", data_str.data.youle_devkey); + setCookie("busiid", data_str.data.youle_busiid); + setCookie("url_sales", data_str.data.urlserver); + setCookie("agentlogo", data_str.data.agentlogo); + youle_dev_face.wechat_login_getuserinfo(public_appid, public_devkey, public_businessid, public_get_wx_succ, public_get_wx_fail); + }; + config.error = function (str) { + }; + min_http(config); +}; +var public_get_wx_succ = function (data) { + var get_wx_data = data; + setCookie("openid", get_wx_data.openid); + setCookie("nickname", get_wx_data.nickname); + setCookie("avatar", get_wx_data.avatar); + setCookie("sex", get_wx_data.sex); + setCookie("province", get_wx_data.province); + setCookie("city", get_wx_data.city); + var public_openid = get_wx_data.openid;//openid + var public_nickname = get_wx_data.nickname;//用户名 + var public_avatar = get_wx_data.avatar;//头像 + var public_sex = get_wx_data.sex;//年龄 + var public_province = get_wx_data.province;//省份 + var public_city = get_wx_data.city;//省份城市 + var public_unionid = get_wx_data.unionid;//绑定游戏ID + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "user_login"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.channelid = getCookie("channelid"); + data.data.openid = public_openid; + data.data.unionid = public_unionid; + data.data.nickname = public_nickname; + data.data.avatar = public_avatar; + data.data.sex = public_sex; + data.data.province = public_province; + data.data.city = public_city; + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var data_str = JSON.parse(data); + if (data_str.data.salestype == undefined) { + setCookie("salestype", 0); + } else { + setCookie("salestype", data_str.data.salestype); + } + setCookie("salesid", data_str.data.salesid); + if (data_str.data.salesman == 0) { + if (document.getElementById("agent_head_img")) { + document.getElementById("agent_head_img").src = getCookie("avatar"); + } + if (document.getElementById("agent_user_name")) { + document.getElementById("agent_user_name").innerHTML = getCookie("nickname"); + } + if (document.getElementById("agent_head_logo")) { + document.getElementById("agent_head_logo").src = getCookie("agentlogo"); + } + if (data_str.data.roomcard != undefined) { + room_card = data_str.data.roomcard; + setCookie("room_card", room_card); + if (document.getElementById("sy_fk_num")) { + document.getElementById("sy_fk_num").innerHTML = "F卡数:" + data_str.data.roomcard; + } + } else { + if (document.getElementById("sy_fk_num")) { + document.getElementById("sy_fk_num").innerHTML = "F卡数:0"; + } + } + layer.alert('提示', { + closeBtn: 0, + title: ['代理首页'], + content: '您还不是代理,请前往申请代理页面', + yes: function (index, layero) { + layer.close(index); + top.window.location = 'applyAgent.html?#' + Math.random() * 100000; + } + }); + } else if (data_str.data.salesman == 1) { + + if (document.getElementById("agent_head_img")) { + document.getElementById("agent_head_img").src = getCookie("avatar"); + } + if (document.getElementById("agent_id")) { + document.getElementById("agent_id").innerHTML = "代理ID:" + data_str.data.salesid; + } + if (document.getElementById("agent_user_name")) { + document.getElementById("agent_user_name").innerHTML = getCookie("nickname"); + } + if (document.getElementById("agent_head_logo")) { + document.getElementById("agent_head_logo").src = getCookie("agentlogo"); + } + if (document.getElementById("sy_fk_num")) { + document.getElementById("sy_fk_num").innerHTML = "F卡数:" + data_str.data.roomcard; + } + if (document.getElementById("sy_fk_num")) { + document.getElementById("sy_fk_num").innerHTML = "F卡数:" + data_str.data.roomcard; + } + if (document.getElementById("my_sid")) { + document.getElementById("my_sid").innerHTML = data_str.data.salesid; + } + room_card = data_str.data.roomcard; + setCookie("room_card", room_card); + if (page_type == 1) { + Agent_buy(data_str.data.awardstate); + } else if (page_type == 2) { + turnCard_login(data_str.data.awardstate); + } else if (page_type == 3) { + user_index(data_str.data.awardstate); + } else if (page_type == 31) { + user_one(); + } else if (page_type == 32) { + user_two(); + } else if (page_type == 33) { + user_three(); + } else if (page_type == 34) { + user_four(); + } else if (page_type == 35) { + user_five(); + } else if (page_type == 36) {//用户中心 + document.getElementById("agent_level").innerHTML = data_str.data.level; + document.getElementById("Invitation_code").innerHTML = data_str.data.salesid; + UserCenter_login(); + } else if (page_type == 37) {//玩家列表 + player_login(); + } else if (page_type == 38) {//代理列表 + agent_login(); + } + } + }; + config.error = function (str) { + //alert("错误提示:" + str); + }; + min_http(config); +}; +var public_get_wx_fail = function () { + public_login(); +}; +var Agent_buy = function (salesman) { + document.getElementById("foo").style.display = "none"; + if (document.getElementById("foo").style.display == "none") { + toolbar_method(getCookie("salestype")); + document.getElementById("agent_tel").innerHTML = getCookie("channeltel"); + document.getElementById("agent_wechat").innerHTML = getCookie("channelwechat"); + document.getElementById("buyCard_icon").style.color = select_model_color;//购卡 + document.getElementById("buyCard_font").style.color = select_model_color; + } +}; + +var turnCard_login = function (salesman) { + document.getElementById("foo").style.display = "none"; + if (document.getElementById("foo").style.display == "none") { + toolbar_method(getCookie("salestype")); + document.getElementById("notice_icon").style.color = select_model_color;//转让房卡 + document.getElementById("notice_font").style.color = select_model_color; + } +}; + +var user_index = function (salesman) {//我的首页 + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "myinfo"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.openid = getCookie("openid"); + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var my_data = JSON.parse(data); + setCookie("room_card", my_data.data.roomcard); + setCookie("salesid", my_data.data.salesid); + document.getElementById("my_headimg").src = getCookie("avatar"); + document.getElementById("my_name").innerHTML = getCookie("nickname"); + document.getElementById("sy_fk_num").innerHTML = my_data.data.roomcard; + document.getElementById("my_sid").innerHTML = getCookie("salesid"); + document.getElementById("foo").style.display = "none"; + document.getElementById("user_head_div").style.display = ""; + if (document.getElementById("foo").style.display == "none") { + toolbar_method(getCookie("salestype")); + document.getElementById("user_icon").style.color = "#2697fc";//我的 + document.getElementById("user_font").style.color = "#2697fc"; + if (getCookie("message_icon") == 1) { + var data = {}; + data.data = [ + { + "img": "img/Usericon/tb1.png", + "text": "我的子代理", + "type": "1", + "red_show": 0 + }, + { + "img": "img/Usericon/tb2.png", + "text": "我的奖励", + "type": "2", + "red_show": 1 + }, + { + "img": "img/Usericon/tb3.png", + "text": "绑定推荐人", + "type": "3", + "red_show": 0 + }, + { + "img": "img/Usericon/tb4.png", + "text": "招募子代理", + "type": "4", + "red_show": 0 + }, + { + "img": "img/Usericon/tb5.png", + "text": "联系客服", + "type": "5", + "red_show": 0 + } + ]; + var model_Id = document.getElementById('user_model_hide').innerHTML; + var html = laytpl(model_Id).render(data.data); + document.getElementById('user_model_show').innerHTML = html; + } + if (getCookie("message_icon") == 0) { + var data = {}; + data.data = [ + { + "img": "img/Usericon/tb1.png", + "text": "我的子代理", + "type": "1", + "red_show": 0 + }, + { + "img": "img/Usericon/tb2.png", + "text": "我的奖励", + "type": "2", + "red_show": 0 + }, + { + "img": "img/Usericon/tb3.png", + "text": "绑定推荐人", + "type": "3", + "red_show": 0 + }, + { + "img": "img/Usericon/tb4.png", + "text": "招募子代理", + "type": "4", + "red_show": 0 + }, + { + "img": "img/Usericon/tb5.png", + "text": "联系客服", + "type": "5", + "red_show": 0 + } + ]; + var model_Id = document.getElementById('user_model_hide').innerHTML; + var html = laytpl(model_Id).render(data.data); + document.getElementById('user_model_show').innerHTML = html; + } + } + }; + config.error = function (str) { + }; + min_http(config); +}; + +var user_one = function () { + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "mychild"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.openid = getCookie("openid"); + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var SonAgent_data = JSON.parse(data); + var model_Id = document.getElementById("applyAgent_hide").innerHTML; + var html = laytpl(model_Id).render(SonAgent_data.data.childs); + document.getElementById("applyAgent_show").innerHTML = html; + document.getElementById("my_headimg").src = getCookie("avatar"); + document.getElementById("my_name").innerHTML = getCookie("nickname"); + document.getElementById("sy_fk_num").innerHTML = getCookie("room_card"); + document.getElementById("my_sid").innerHTML = getCookie("salesid"); + toolbar_method(getCookie("salestype")); + document.getElementById("user_icon").style.color = "#2697fc";//我的 + document.getElementById("user_font").style.color = "#2697fc"; + document.getElementById("foo").style.display = "none"; + document.getElementById("user_head_div").style.display = ""; + }; + config.error = function (str) { + }; + min_http(config); +}; + +var user_two = function () { + document.getElementById('Reward_show').innerHTML = ""; + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "myaward"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.openid = getCookie("openid"); + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var my_data = JSON.parse(data); + for (var i = 0; i < my_data.data.awards.length; i++) { + var var_date = new Date(Date.parse(my_data.data.awards[i].awardtime.replace('-', '/').replace('-', '/'))); + var year = new data_time(var_date.getFullYear() + "-" + (var_date.getMonth() + 1) + "-" + var_date.getDate()); + var time = new data_time(var_date.getHours() + ":" + var_date.getMinutes() + ":" + var_date.getSeconds()); + my_data.data.awards[i].year = year.time; + my_data.data.awards[i].time = time.time; + if (my_data.data.awards[i].state == 0) { + } else { + setCookie("message_icon", 0); + } + } + var model_Id = document.getElementById('Reward_hide').innerHTML; + var html = laytpl(model_Id).render(my_data.data.awards); + document.getElementById('Reward_show').innerHTML = html; + document.getElementById("my_headimg").src = getCookie("avatar"); + document.getElementById("my_name").innerHTML = getCookie("nickname"); + document.getElementById("sy_fk_num").innerHTML = getCookie("room_card"); + document.getElementById("my_sid").innerHTML = getCookie("salesid"); + toolbar_method(getCookie("salestype")); + document.getElementById("user_icon").style.color = "#2697fc";//我的 + document.getElementById("user_font").style.color = "#2697fc"; + document.getElementById("foo").style.display = "none"; + document.getElementById("user_head_div").style.display = ""; + }; + config.error = function (str) { + }; + min_http(config); +}; +var user_three = function () { + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "myparent"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.openid = getCookie("openid"); + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var my_RecommendData = JSON.parse(data); + if (!my_RecommendData.data.avatar && !my_RecommendData.data.parentid && !my_RecommendData.data.name) { + document.getElementById("my_Recommend_message").style.display = "none"; + document.getElementById("Recommend_title").innerHTML = "我的推荐人:无"; + } else { + document.getElementById("my_Recommend_message").style.display = ""; + document.getElementById("Recommend_title").innerHTML = "我的推荐人:"; + document.getElementById("MyRecommend_img").src = my_RecommendData.data.avatar; + document.getElementById("MyRecommend_id").innerHTML = my_RecommendData.data.parentid; + document.getElementById("MyRecommend_name").innerHTML = my_RecommendData.data.name; + finsh_bingding = my_RecommendData.data.parentid; + } + //alert("推荐人ID :"+decodeURIComponent(min_getQueryString("Recommend_id"))+" 运营商ID:"+decodeURIComponent(min_getQueryString("url_agentID"))); + + if (decodeURIComponent(min_getQueryString("url_agentID"))) {//如果运营商ID和个人代理ID有则查询个人代理 + call_Recommend(decodeURIComponent(min_getQueryString("url_agentID")), decodeURIComponent(min_getQueryString("Recommend_id"))); + } else { + } + document.getElementById("my_headimg").src = getCookie("avatar"); + document.getElementById("my_name").innerHTML = getCookie("nickname"); + document.getElementById("sy_fk_num").innerHTML = getCookie("room_card"); + document.getElementById("my_sid").innerHTML = getCookie("salesid"); + toolbar_method(getCookie("salestype")); + document.getElementById("user_icon").style.color = "#2697fc";//我的 + document.getElementById("user_font").style.color = "#2697fc"; + document.getElementById("foo").style.display = "none"; + document.getElementById("user_head_div").style.display = ""; + }; + config.error = function (str) { + }; + min_http(config); +}; +var user_four = function () { + document.getElementById("my_headimg").src = getCookie("avatar"); + document.getElementById("my_name").innerHTML = getCookie("nickname"); + document.getElementById("sy_fk_num").innerHTML = getCookie("room_card"); + document.getElementById("my_sid").innerHTML = getCookie("salesid"); + toolbar_method(getCookie("salestype")); + document.getElementById("user_icon").style.color = "#2697fc";//我的 + document.getElementById("user_font").style.color = "#2697fc"; + document.getElementById("foo").style.display = "none"; + document.getElementById("user_head_div").style.display = ""; +}; +var user_five = function () { + toolbar_method(getCookie("salestype")); + document.getElementById("user_icon").style.color = "#2697fc";//我的 + document.getElementById("user_font").style.color = "#2697fc"; + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "get_service"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var admin = JSON.parse(data); + document.getElementById("qq_id").innerHTML = admin.data.qq; + document.getElementById("iphone_id").innerHTML = admin.data.tel; + document.getElementById("wx_id").innerHTML = admin.data.wechat; + document.getElementById("foo").style.display = "none"; + document.getElementById("user_head_div").style.display = ""; + }; + config.error = function (str) { + }; + min_http(config); +}; +var UserCenter_login = function () { + document.getElementById("foo").style.display = "none"; + if (document.getElementById("foo").style.display == "none") { + toolbar_method(getCookie("salestype")); + document.getElementById("user_icon").style.color = select_model_color;//用户中心 + document.getElementById("user_font").style.color = select_model_color; + } +}; +var player_login = function () { + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "my_player"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.openid = getCookie("openid"); + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var data_Invitation = JSON.parse(data); + if (data_Invitation.data.list.length == 0) { + //alert("查询记录为空"); + } else { + var model_Id = document.getElementById('player_hide').innerHTML; + var html = laytpl(model_Id).render(data_Invitation.data.list); + document.getElementById('player_show').innerHTML = html; + } + document.getElementById("foo").style.display = "none"; + if (document.getElementById("foo").style.display == "none") { + toolbar_method(getCookie("salestype")); + document.getElementById("player_icon").style.color = select_model_color;//玩家列表 + document.getElementById("player_font").style.color = select_model_color; + } + }; + config.error = function (str) { + }; + min_http(config); +}; +var agent_login = function () { + var data = {}; + data.app = public_app; + data.route = public_route; + data.rpc = "my_salesman"; + data.data = {}; + data.data.agentid = getCookie("agentid"); + data.data.openid = getCookie("openid"); + var config = {}; + config.url = getCookie("url_sales"); + config.type = "POST"; + config.data = min_jsontostr(data); + config.success = function (data) { + var data_ = JSON.parse(data); + if (data_.data.list.length == 0) { + //alert("查询记录为空"); + } else { + var model_Id = document.getElementById('agent_hide').innerHTML; + var html = laytpl(model_Id).render(data_.data.list); + document.getElementById('agent_show').innerHTML = html; + } + document.getElementById("foo").style.display = "none"; + if (document.getElementById("foo").style.display == "none") { + toolbar_method(getCookie("salestype")); + document.getElementById("agent_icon").style.color = select_model_color;//子代理列表 + document.getElementById("agent_font").style.color = select_model_color; + } + }; + config.error = function (str) { + }; + min_http(config); +}; \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/web2/js/tangjian.js b/codes/agent/game-docker/dlweb/api/web2/js/tangjian.js new file mode 100644 index 0000000..ac521e7 --- /dev/null +++ b/codes/agent/game-docker/dlweb/api/web2/js/tangjian.js @@ -0,0 +1,190 @@ +;(function ($) { + "use strict"; + + // 默认api配置 + var defaults = { + api_url: '', + data: { + method: '', + format: 'json', + charset: 'utf-8', + version: '1.0', + user_auth_token: '', + biz_content: null + }, + cacheMethods: [] + }; + + // 缓存 + var Cache = {}; + + // 初始化函数 + var init = function () { + + // 通过域名判断环境 + switch (window.location.hostname) { + case 'localhost': + defaults.api_url = 'http://localhost/proxy/trunk/api/Index.php'; + break; + case 'proxytest.tscce.cn': + defaults.api_url = 'https://proxytest.tscce.cn/api/Index.php'; + break; + default: + defaults.api_url = 'https://dlapiv3.tscce.cn/Index.php'; + } + + if($.getPageName() === 'welcome.html') + { + var adminInfo = sessionStorage.getItem('adminInfo'); + if (adminInfo) Cache.adminInfo = JSON.parse(adminInfo); + } + + + + }; + + $.extend( + { + api: function (obj) { + // 判断是否有缓存 + var tmp = obj.data.method; + if(Cache[tmp]) { + console.log(tmp, 'from cache'); + obj.success && obj.success(Cache[obj.data.method]); + return; + } + + var data = $.extend({}, defaults.data, obj.data); + //console.log('merge data', data); + var token = sessionStorage.getItem("token"); + data.user_auth_token = token; + + if(Cache.adminInfo) data.biz_content = $.extend({}, data.biz_content, Cache.adminInfo); + + if(obj.isLoading) $.loading(); + $.ajax( + { + url: defaults.api_url, + type: 'POST', + //dataType: 'json', + //async: !!obj.async, + data: data, + timeout: 10000, + success: function (r) { + try { + r = (typeof r === 'string') ? JSON.parse(decodeURIComponent(r)) : r; + if (typeof r !== 'object') throw {code: 1, msg: '数据异常'}; + + console.log(data.method, r); + + if (r.user_auth_token) { + try { + sessionStorage.setItem('token', r.user_auth_token); + } catch (e) { + alert("如果此页面无法正常显示,请关闭浏览器的隐身模式,再打开此页面。"); + } + } + + if (r.retcode !== 0) throw {code: r.retcode, msg: r.retinfo}; + + if (r.biz_content.state && parseInt(r.biz_content.state) !== 0) throw { + code: r.biz_content.state, + msg: r.biz_content.error + }; + + // 判断是否要缓存数据 + if($.inArray(data.method, defaults.cacheMethods) !== -1) { + Cache[data.method] = r.biz_content; + } + + obj.success && obj.success(r.biz_content); + } catch (e) { + if(obj.error) + obj.error(e); + else + $.alert(e.msg); + } + }, + complete: function (r) { + if(obj.isLoading && typeof Cache.loadingLayerIndex === 'number') layer.close(Cache.loadingLayerIndex); + obj.complete && obj.complete(r); + }, + error: function (xhr, textStatus) { + alert('网络较慢!'); + } + } + ) + + }, + alert: function (msg) { + if(typeof layer === 'object') + layer.open({content: msg, btn: '我知道了'}); + else + alert(msg); + //layer ? layer.open({content: msg, btn: '我知道了'}) : alert(msg); + }, + confirm: function (func) { + var $obj = { + content: "确认操作?", + btn: ['确认', '取消'], + yes: function (i) { + layer.close(i); + func(); + } + }; + layer.open($obj); + }, + loading: function (func) { + Cache.loadingLayerIndex = layer.open( + { + type: 2, + content: '加载中', + shadeClose: false, + success: function (e) { + func && func(e); + } + }); + }, + store: function (name, obj) { + sessionStorage.setItem(name, JSON.stringify(obj)); + }, + isRightId: function (playerId) { + return /^\d{6,10}$/.test(playerId); + }, + isWeiXin: function () { + if(typeof Cache.isWeiXin === 'boolean') return Cache.isWeiXin; + var ua = navigator.userAgent.toLowerCase().match("micromessenger"); + if (ua && ua[0] === "micromessenger") { + Cache.isWeiXin = true; + return true; + } + + Cache.isWeiXin = false; + return false; + }, + getQueryObj: function () { + if(Cache.get) return Cache.get; + var tmp = window.location.search.substr(1).split('&'); + var res = {}; + for (var i = 0; i < tmp.length; i++) { + var arr = tmp[i].split('='); + res[arr[0]] = arr[1]; + } + + if(!res.agentid || !res.channelid) throw {code: 1, msg: '链接中没有agentid或channelid参数,请确认链接是否正确'}; + + + Cache.get = res; + return res; + }, + getPageName: function () { + if(Cache.pageName) return Cache.pageName; + var name = window.location.pathname.split('/').pop(); + Cache.pageName = name; + return name; + } + } + ); + + init(); +})(jQuery); \ No newline at end of file diff --git a/codes/agent/game-docker/dlweb/api/web2/js/vue-2.4.2.js b/codes/agent/game-docker/dlweb/api/web2/js/vue-2.4.2.js new file mode 100644 index 0000000..8a0a5b8 --- /dev/null +++ b/codes/agent/game-docker/dlweb/api/web2/js/vue-2.4.2.js @@ -0,0 +1,10078 @@ +/*! + * Vue.js v2.4.2 + * (c) 2014-2017 Evan You + * Released under the MIT License. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Vue = factory()); +}(this, (function () { 'use strict'; + +/* */ + +// these helpers produces better vm code in JS engines due to their +// explicitness and function inlining +function isUndef (v) { + return v === undefined || v === null +} + +function isDef (v) { + return v !== undefined && v !== null +} + +function isTrue (v) { + return v === true +} + +function isFalse (v) { + return v === false +} + +/** + * Check if value is primitive + */ +function isPrimitive (value) { + return ( + typeof value === 'string' || + typeof value === 'number' || + typeof value === 'boolean' + ) +} + +/** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ +function isObject (obj) { + return obj !== null && typeof obj === 'object' +} + +var _toString = Object.prototype.toString; + +/** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ +function isPlainObject (obj) { + return _toString.call(obj) === '[object Object]' +} + +function isRegExp (v) { + return _toString.call(v) === '[object RegExp]' +} + +/** + * Check if val is a valid array index. + */ +function isValidArrayIndex (val) { + var n = parseFloat(val); + return n >= 0 && Math.floor(n) === n && isFinite(val) +} + +/** + * Convert a value to a string that is actually rendered. + */ +function toString (val) { + return val == null + ? '' + : typeof val === 'object' + ? JSON.stringify(val, null, 2) + : String(val) +} + +/** + * Convert a input value to a number for persistence. + * If the conversion fails, return original string. + */ +function toNumber (val) { + var n = parseFloat(val); + return isNaN(n) ? val : n +} + +/** + * Make a map and return a function for checking if a key + * is in that map. + */ +function makeMap ( + str, + expectsLowerCase +) { + var map = Object.create(null); + var list = str.split(','); + for (var i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase + ? function (val) { return map[val.toLowerCase()]; } + : function (val) { return map[val]; } +} + +/** + * Check if a tag is a built-in tag. + */ +var isBuiltInTag = makeMap('slot,component', true); + +/** + * Check if a attribute is a reserved attribute. + */ +var isReservedAttribute = makeMap('key,ref,slot,is'); + +/** + * Remove an item from an array + */ +function remove (arr, item) { + if (arr.length) { + var index = arr.indexOf(item); + if (index > -1) { + return arr.splice(index, 1) + } + } +} + +/** + * Check whether the object has the property. + */ +var hasOwnProperty = Object.prototype.hasOwnProperty; +function hasOwn (obj, key) { + return hasOwnProperty.call(obj, key) +} + +/** + * Create a cached version of a pure function. + */ +function cached (fn) { + var cache = Object.create(null); + return (function cachedFn (str) { + var hit = cache[str]; + return hit || (cache[str] = fn(str)) + }) +} + +/** + * Camelize a hyphen-delimited string. + */ +var camelizeRE = /-(\w)/g; +var camelize = cached(function (str) { + return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; }) +}); + +/** + * Capitalize a string. + */ +var capitalize = cached(function (str) { + return str.charAt(0).toUpperCase() + str.slice(1) +}); + +/** + * Hyphenate a camelCase string. + */ +var hyphenateRE = /([^-])([A-Z])/g; +var hyphenate = cached(function (str) { + return str + .replace(hyphenateRE, '$1-$2') + .replace(hyphenateRE, '$1-$2') + .toLowerCase() +}); + +/** + * Simple bind, faster than native + */ +function bind (fn, ctx) { + function boundFn (a) { + var l = arguments.length; + return l + ? l > 1 + ? fn.apply(ctx, arguments) + : fn.call(ctx, a) + : fn.call(ctx) + } + // record original fn length + boundFn._length = fn.length; + return boundFn +} + +/** + * Convert an Array-like object to a real Array. + */ +function toArray (list, start) { + start = start || 0; + var i = list.length - start; + var ret = new Array(i); + while (i--) { + ret[i] = list[i + start]; + } + return ret +} + +/** + * Mix properties into target object. + */ +function extend (to, _from) { + for (var key in _from) { + to[key] = _from[key]; + } + return to +} + +/** + * Merge an Array of Objects into a single Object. + */ +function toObject (arr) { + var res = {}; + for (var i = 0; i < arr.length; i++) { + if (arr[i]) { + extend(res, arr[i]); + } + } + return res +} + +/** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/) + */ +function noop (a, b, c) {} + +/** + * Always return false. + */ +var no = function (a, b, c) { return false; }; + +/** + * Return same value + */ +var identity = function (_) { return _; }; + +/** + * Generate a static keys string from compiler modules. + */ +function genStaticKeys (modules) { + return modules.reduce(function (keys, m) { + return keys.concat(m.staticKeys || []) + }, []).join(',') +} + +/** + * Check if two values are loosely equal - that is, + * if they are plain objects, do they have the same shape? + */ +function looseEqual (a, b) { + if (a === b) { return true } + var isObjectA = isObject(a); + var isObjectB = isObject(b); + if (isObjectA && isObjectB) { + try { + var isArrayA = Array.isArray(a); + var isArrayB = Array.isArray(b); + if (isArrayA && isArrayB) { + return a.length === b.length && a.every(function (e, i) { + return looseEqual(e, b[i]) + }) + } else if (!isArrayA && !isArrayB) { + var keysA = Object.keys(a); + var keysB = Object.keys(b); + return keysA.length === keysB.length && keysA.every(function (key) { + return looseEqual(a[key], b[key]) + }) + } else { + /* istanbul ignore next */ + return false + } + } catch (e) { + /* istanbul ignore next */ + return false + } + } else if (!isObjectA && !isObjectB) { + return String(a) === String(b) + } else { + return false + } +} + +function looseIndexOf (arr, val) { + for (var i = 0; i < arr.length; i++) { + if (looseEqual(arr[i], val)) { return i } + } + return -1 +} + +/** + * Ensure a function is called only once. + */ +function once (fn) { + var called = false; + return function () { + if (!called) { + called = true; + fn.apply(this, arguments); + } + } +} + +var SSR_ATTR = 'data-server-rendered'; + +var ASSET_TYPES = [ + 'component', + 'directive', + 'filter' +]; + +var LIFECYCLE_HOOKS = [ + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUpdate', + 'updated', + 'beforeDestroy', + 'destroyed', + 'activated', + 'deactivated' +]; + +/* */ + +var config = ({ + /** + * Option merge strategies (used in core/util/options) + */ + optionMergeStrategies: Object.create(null), + + /** + * Whether to suppress warnings. + */ + silent: false, + + /** + * Show production mode tip message on boot? + */ + productionTip: "development" !== 'production', + + /** + * Whether to enable devtools + */ + devtools: "development" !== 'production', + + /** + * Whether to record perf + */ + performance: false, + + /** + * Error handler for watcher errors + */ + errorHandler: null, + + /** + * Warn handler for watcher warns + */ + warnHandler: null, + + /** + * Ignore certain custom elements + */ + ignoredElements: [], + + /** + * Custom user key aliases for v-on + */ + keyCodes: Object.create(null), + + /** + * Check if a tag is reserved so that it cannot be registered as a + * component. This is platform-dependent and may be overwritten. + */ + isReservedTag: no, + + /** + * Check if an attribute is reserved so that it cannot be used as a component + * prop. This is platform-dependent and may be overwritten. + */ + isReservedAttr: no, + + /** + * Check if a tag is an unknown element. + * Platform-dependent. + */ + isUnknownElement: no, + + /** + * Get the namespace of an element + */ + getTagNamespace: noop, + + /** + * Parse the real tag name for the specific platform. + */ + parsePlatformTagName: identity, + + /** + * Check if an attribute must be bound using property, e.g. value + * Platform-dependent. + */ + mustUseProp: no, + + /** + * Exposed for legacy reasons + */ + _lifecycleHooks: LIFECYCLE_HOOKS +}); + +/* */ + +var emptyObject = Object.freeze({}); + +/** + * Check if a string starts with $ or _ + */ +function isReserved (str) { + var c = (str + '').charCodeAt(0); + return c === 0x24 || c === 0x5F +} + +/** + * Define a property. + */ +function def (obj, key, val, enumerable) { + Object.defineProperty(obj, key, { + value: val, + enumerable: !!enumerable, + writable: true, + configurable: true + }); +} + +/** + * Parse simple path. + */ +var bailRE = /[^\w.$]/; +function parsePath (path) { + if (bailRE.test(path)) { + return + } + var segments = path.split('.'); + return function (obj) { + for (var i = 0; i < segments.length; i++) { + if (!obj) { return } + obj = obj[segments[i]]; + } + return obj + } +} + +/* */ + +var warn = noop; +var tip = noop; +var formatComponentName = (null); // work around flow check + +{ + var hasConsole = typeof console !== 'undefined'; + var classifyRE = /(?:^|[-_])(\w)/g; + var classify = function (str) { return str + .replace(classifyRE, function (c) { return c.toUpperCase(); }) + .replace(/[-_]/g, ''); }; + + warn = function (msg, vm) { + var trace = vm ? generateComponentTrace(vm) : ''; + + if (config.warnHandler) { + config.warnHandler.call(null, msg, vm, trace); + } else if (hasConsole && (!config.silent)) { + console.error(("[Vue warn]: " + msg + trace)); + } + }; + + tip = function (msg, vm) { + if (hasConsole && (!config.silent)) { + console.warn("[Vue tip]: " + msg + ( + vm ? generateComponentTrace(vm) : '' + )); + } + }; + + formatComponentName = function (vm, includeFile) { + if (vm.$root === vm) { + return '' + } + var name = typeof vm === 'string' + ? vm + : typeof vm === 'function' && vm.options + ? vm.options.name + : vm._isVue + ? vm.$options.name || vm.$options._componentTag + : vm.name; + + var file = vm._isVue && vm.$options.__file; + if (!name && file) { + var match = file.match(/([^/\\]+)\.vue$/); + name = match && match[1]; + } + + return ( + (name ? ("<" + (classify(name)) + ">") : "") + + (file && includeFile !== false ? (" at " + file) : '') + ) + }; + + var repeat = function (str, n) { + var res = ''; + while (n) { + if (n % 2 === 1) { res += str; } + if (n > 1) { str += str; } + n >>= 1; + } + return res + }; + + var generateComponentTrace = function (vm) { + if (vm._isVue && vm.$parent) { + var tree = []; + var currentRecursiveSequence = 0; + while (vm) { + if (tree.length > 0) { + var last = tree[tree.length - 1]; + if (last.constructor === vm.constructor) { + currentRecursiveSequence++; + vm = vm.$parent; + continue + } else if (currentRecursiveSequence > 0) { + tree[tree.length - 1] = [last, currentRecursiveSequence]; + currentRecursiveSequence = 0; + } + } + tree.push(vm); + vm = vm.$parent; + } + return '\n\nfound in\n\n' + tree + .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) + ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)") + : formatComponentName(vm))); }) + .join('\n') + } else { + return ("\n\n(found in " + (formatComponentName(vm)) + ")") + } + }; +} + +/* */ + +function handleError (err, vm, info) { + if (config.errorHandler) { + config.errorHandler.call(null, err, vm, info); + } else { + { + warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm); + } + /* istanbul ignore else */ + if (inBrowser && typeof console !== 'undefined') { + console.error(err); + } else { + throw err + } + } +} + +/* */ +/* globals MutationObserver */ + +// can we use __proto__? +var hasProto = '__proto__' in {}; + +// Browser environment sniffing +var inBrowser = typeof window !== 'undefined'; +var UA = inBrowser && window.navigator.userAgent.toLowerCase(); +var isIE = UA && /msie|trident/.test(UA); +var isIE9 = UA && UA.indexOf('msie 9.0') > 0; +var isEdge = UA && UA.indexOf('edge/') > 0; +var isAndroid = UA && UA.indexOf('android') > 0; +var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA); +var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; + +// Firefix has a "watch" function on Object.prototype... +var nativeWatch = ({}).watch; + +var supportsPassive = false; +if (inBrowser) { + try { + var opts = {}; + Object.defineProperty(opts, 'passive', ({ + get: function get () { + /* istanbul ignore next */ + supportsPassive = true; + } + })); // https://github.com/facebook/flow/issues/285 + window.addEventListener('test-passive', null, opts); + } catch (e) {} +} + +// this needs to be lazy-evaled because vue may be required before +// vue-server-renderer can set VUE_ENV +var _isServer; +var isServerRendering = function () { + if (_isServer === undefined) { + /* istanbul ignore if */ + if (!inBrowser && typeof global !== 'undefined') { + // detect presence of vue-server-renderer and avoid + // Webpack shimming the process + _isServer = global['process'].env.VUE_ENV === 'server'; + } else { + _isServer = false; + } + } + return _isServer +}; + +// detect devtools +var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + +/* istanbul ignore next */ +function isNative (Ctor) { + return typeof Ctor === 'function' && /native code/.test(Ctor.toString()) +} + +var hasSymbol = + typeof Symbol !== 'undefined' && isNative(Symbol) && + typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys); + +/** + * Defer a task to execute it asynchronously. + */ +var nextTick = (function () { + var callbacks = []; + var pending = false; + var timerFunc; + + function nextTickHandler () { + pending = false; + var copies = callbacks.slice(0); + callbacks.length = 0; + for (var i = 0; i < copies.length; i++) { + copies[i](); + } + } + + // the nextTick behavior leverages the microtask queue, which can be accessed + // via either native Promise.then or MutationObserver. + // MutationObserver has wider support, however it is seriously bugged in + // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It + // completely stops working after triggering a few times... so, if native + // Promise is available, we will use it: + /* istanbul ignore if */ + if (typeof Promise !== 'undefined' && isNative(Promise)) { + var p = Promise.resolve(); + var logError = function (err) { console.error(err); }; + timerFunc = function () { + p.then(nextTickHandler).catch(logError); + // in problematic UIWebViews, Promise.then doesn't completely break, but + // it can get stuck in a weird state where callbacks are pushed into the + // microtask queue but the queue isn't being flushed, until the browser + // needs to do some other work, e.g. handle a timer. Therefore we can + // "force" the microtask queue to be flushed by adding an empty timer. + if (isIOS) { setTimeout(noop); } + }; + } else if (typeof MutationObserver !== 'undefined' && ( + isNative(MutationObserver) || + // PhantomJS and iOS 7.x + MutationObserver.toString() === '[object MutationObserverConstructor]' + )) { + // use MutationObserver where native Promise is not available, + // e.g. PhantomJS IE11, iOS7, Android 4.4 + var counter = 1; + var observer = new MutationObserver(nextTickHandler); + var textNode = document.createTextNode(String(counter)); + observer.observe(textNode, { + characterData: true + }); + timerFunc = function () { + counter = (counter + 1) % 2; + textNode.data = String(counter); + }; + } else { + // fallback to setTimeout + /* istanbul ignore next */ + timerFunc = function () { + setTimeout(nextTickHandler, 0); + }; + } + + return function queueNextTick (cb, ctx) { + var _resolve; + callbacks.push(function () { + if (cb) { + try { + cb.call(ctx); + } catch (e) { + handleError(e, ctx, 'nextTick'); + } + } else if (_resolve) { + _resolve(ctx); + } + }); + if (!pending) { + pending = true; + timerFunc(); + } + if (!cb && typeof Promise !== 'undefined') { + return new Promise(function (resolve, reject) { + _resolve = resolve; + }) + } + } +})(); + +var _Set; +/* istanbul ignore if */ +if (typeof Set !== 'undefined' && isNative(Set)) { + // use native Set when available. + _Set = Set; +} else { + // a non-standard Set polyfill that only works with primitive keys. + _Set = (function () { + function Set () { + this.set = Object.create(null); + } + Set.prototype.has = function has (key) { + return this.set[key] === true + }; + Set.prototype.add = function add (key) { + this.set[key] = true; + }; + Set.prototype.clear = function clear () { + this.set = Object.create(null); + }; + + return Set; + }()); +} + +/* */ + + +var uid = 0; + +/** + * A dep is an observable that can have multiple + * directives subscribing to it. + */ +var Dep = function Dep () { + this.id = uid++; + this.subs = []; +}; + +Dep.prototype.addSub = function addSub (sub) { + this.subs.push(sub); +}; + +Dep.prototype.removeSub = function removeSub (sub) { + remove(this.subs, sub); +}; + +Dep.prototype.depend = function depend () { + if (Dep.target) { + Dep.target.addDep(this); + } +}; + +Dep.prototype.notify = function notify () { + // stabilize the subscriber list first + var subs = this.subs.slice(); + for (var i = 0, l = subs.length; i < l; i++) { + subs[i].update(); + } +}; + +// the current target watcher being evaluated. +// this is globally unique because there could be only one +// watcher being evaluated at any time. +Dep.target = null; +var targetStack = []; + +function pushTarget (_target) { + if (Dep.target) { targetStack.push(Dep.target); } + Dep.target = _target; +} + +function popTarget () { + Dep.target = targetStack.pop(); +} + +/* + * not type checking this file because flow doesn't play well with + * dynamically accessing methods on Array prototype + */ + +var arrayProto = Array.prototype; +var arrayMethods = Object.create(arrayProto);[ + 'push', + 'pop', + 'shift', + 'unshift', + 'splice', + 'sort', + 'reverse' +] +.forEach(function (method) { + // cache original method + var original = arrayProto[method]; + def(arrayMethods, method, function mutator () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var result = original.apply(this, args); + var ob = this.__ob__; + var inserted; + switch (method) { + case 'push': + case 'unshift': + inserted = args; + break + case 'splice': + inserted = args.slice(2); + break + } + if (inserted) { ob.observeArray(inserted); } + // notify change + ob.dep.notify(); + return result + }); +}); + +/* */ + +var arrayKeys = Object.getOwnPropertyNames(arrayMethods); + +/** + * By default, when a reactive property is set, the new value is + * also converted to become reactive. However when passing down props, + * we don't want to force conversion because the value may be a nested value + * under a frozen data structure. Converting it would defeat the optimization. + */ +var observerState = { + shouldConvert: true +}; + +/** + * Observer class that are attached to each observed + * object. Once attached, the observer converts target + * object's property keys into getter/setters that + * collect dependencies and dispatches updates. + */ +var Observer = function Observer (value) { + this.value = value; + this.dep = new Dep(); + this.vmCount = 0; + def(value, '__ob__', this); + if (Array.isArray(value)) { + var augment = hasProto + ? protoAugment + : copyAugment; + augment(value, arrayMethods, arrayKeys); + this.observeArray(value); + } else { + this.walk(value); + } +}; + +/** + * Walk through each property and convert them into + * getter/setters. This method should only be called when + * value type is Object. + */ +Observer.prototype.walk = function walk (obj) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length; i++) { + defineReactive$$1(obj, keys[i], obj[keys[i]]); + } +}; + +/** + * Observe a list of Array items. + */ +Observer.prototype.observeArray = function observeArray (items) { + for (var i = 0, l = items.length; i < l; i++) { + observe(items[i]); + } +}; + +// helpers + +/** + * Augment an target Object or Array by intercepting + * the prototype chain using __proto__ + */ +function protoAugment (target, src, keys) { + /* eslint-disable no-proto */ + target.__proto__ = src; + /* eslint-enable no-proto */ +} + +/** + * Augment an target Object or Array by defining + * hidden properties. + */ +/* istanbul ignore next */ +function copyAugment (target, src, keys) { + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + def(target, key, src[key]); + } +} + +/** + * Attempt to create an observer instance for a value, + * returns the new observer if successfully observed, + * or the existing observer if the value already has one. + */ +function observe (value, asRootData) { + if (!isObject(value)) { + return + } + var ob; + if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) { + ob = value.__ob__; + } else if ( + observerState.shouldConvert && + !isServerRendering() && + (Array.isArray(value) || isPlainObject(value)) && + Object.isExtensible(value) && + !value._isVue + ) { + ob = new Observer(value); + } + if (asRootData && ob) { + ob.vmCount++; + } + return ob +} + +/** + * Define a reactive property on an Object. + */ +function defineReactive$$1 ( + obj, + key, + val, + customSetter, + shallow +) { + var dep = new Dep(); + + var property = Object.getOwnPropertyDescriptor(obj, key); + if (property && property.configurable === false) { + return + } + + // cater for pre-defined getter/setters + var getter = property && property.get; + var setter = property && property.set; + + var childOb = !shallow && observe(val); + Object.defineProperty(obj, key, { + enumerable: true, + configurable: true, + get: function reactiveGetter () { + var value = getter ? getter.call(obj) : val; + if (Dep.target) { + dep.depend(); + if (childOb) { + childOb.dep.depend(); + } + if (Array.isArray(value)) { + dependArray(value); + } + } + return value + }, + set: function reactiveSetter (newVal) { + var value = getter ? getter.call(obj) : val; + /* eslint-disable no-self-compare */ + if (newVal === value || (newVal !== newVal && value !== value)) { + return + } + /* eslint-enable no-self-compare */ + if ("development" !== 'production' && customSetter) { + customSetter(); + } + if (setter) { + setter.call(obj, newVal); + } else { + val = newVal; + } + childOb = !shallow && observe(newVal); + dep.notify(); + } + }); +} + +/** + * Set a property on an object. Adds the new property and + * triggers change notification if the property doesn't + * already exist. + */ +function set (target, key, val) { + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val + } + if (hasOwn(target, key)) { + target[key] = val; + return val + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + "development" !== 'production' && warn( + 'Avoid adding reactive properties to a Vue instance or its root $data ' + + 'at runtime - declare it upfront in the data option.' + ); + return val + } + if (!ob) { + target[key] = val; + return val + } + defineReactive$$1(ob.value, key, val); + ob.dep.notify(); + return val +} + +/** + * Delete a property and trigger change if necessary. + */ +function del (target, key) { + if (Array.isArray(target) && isValidArrayIndex(key)) { + target.splice(key, 1); + return + } + var ob = (target).__ob__; + if (target._isVue || (ob && ob.vmCount)) { + "development" !== 'production' && warn( + 'Avoid deleting properties on a Vue instance or its root $data ' + + '- just set it to null.' + ); + return + } + if (!hasOwn(target, key)) { + return + } + delete target[key]; + if (!ob) { + return + } + ob.dep.notify(); +} + +/** + * Collect dependencies on array elements when the array is touched, since + * we cannot intercept array element access like property getters. + */ +function dependArray (value) { + for (var e = (void 0), i = 0, l = value.length; i < l; i++) { + e = value[i]; + e && e.__ob__ && e.__ob__.dep.depend(); + if (Array.isArray(e)) { + dependArray(e); + } + } +} + +/* */ + +/** + * Option overwriting strategies are functions that handle + * how to merge a parent option value and a child option + * value into the final value. + */ +var strats = config.optionMergeStrategies; + +/** + * Options with restrictions + */ +{ + strats.el = strats.propsData = function (parent, child, vm, key) { + if (!vm) { + warn( + "option \"" + key + "\" can only be used during instance " + + 'creation with the `new` keyword.' + ); + } + return defaultStrat(parent, child) + }; +} + +/** + * Helper that recursively merges two data objects together. + */ +function mergeData (to, from) { + if (!from) { return to } + var key, toVal, fromVal; + var keys = Object.keys(from); + for (var i = 0; i < keys.length; i++) { + key = keys[i]; + toVal = to[key]; + fromVal = from[key]; + if (!hasOwn(to, key)) { + set(to, key, fromVal); + } else if (isPlainObject(toVal) && isPlainObject(fromVal)) { + mergeData(toVal, fromVal); + } + } + return to +} + +/** + * Data + */ +function mergeDataOrFn ( + parentVal, + childVal, + vm +) { + if (!vm) { + // in a Vue.extend merge, both should be functions + if (!childVal) { + return parentVal + } + if (!parentVal) { + return childVal + } + // when parentVal & childVal are both present, + // we need to return a function that returns the + // merged result of both functions... no need to + // check if parentVal is a function here because + // it has to be a function to pass previous merges. + return function mergedDataFn () { + return mergeData( + typeof childVal === 'function' ? childVal.call(this) : childVal, + typeof parentVal === 'function' ? parentVal.call(this) : parentVal + ) + } + } else if (parentVal || childVal) { + return function mergedInstanceDataFn () { + // instance merge + var instanceData = typeof childVal === 'function' + ? childVal.call(vm) + : childVal; + var defaultData = typeof parentVal === 'function' + ? parentVal.call(vm) + : undefined; + if (instanceData) { + return mergeData(instanceData, defaultData) + } else { + return defaultData + } + } + } +} + +strats.data = function ( + parentVal, + childVal, + vm +) { + if (!vm) { + if (childVal && typeof childVal !== 'function') { + "development" !== 'production' && warn( + 'The "data" option should be a function ' + + 'that returns a per-instance value in component ' + + 'definitions.', + vm + ); + + return parentVal + } + return mergeDataOrFn.call(this, parentVal, childVal) + } + + return mergeDataOrFn(parentVal, childVal, vm) +}; + +/** + * Hooks and props are merged as arrays. + */ +function mergeHook ( + parentVal, + childVal +) { + return childVal + ? parentVal + ? parentVal.concat(childVal) + : Array.isArray(childVal) + ? childVal + : [childVal] + : parentVal +} + +LIFECYCLE_HOOKS.forEach(function (hook) { + strats[hook] = mergeHook; +}); + +/** + * Assets + * + * When a vm is present (instance creation), we need to do + * a three-way merge between constructor options, instance + * options and parent options. + */ +function mergeAssets (parentVal, childVal) { + var res = Object.create(parentVal || null); + return childVal + ? extend(res, childVal) + : res +} + +ASSET_TYPES.forEach(function (type) { + strats[type + 's'] = mergeAssets; +}); + +/** + * Watchers. + * + * Watchers hashes should not overwrite one + * another, so we merge them as arrays. + */ +strats.watch = function (parentVal, childVal) { + // work around Firefox's Object.prototype.watch... + if (parentVal === nativeWatch) { parentVal = undefined; } + if (childVal === nativeWatch) { childVal = undefined; } + /* istanbul ignore if */ + if (!childVal) { return Object.create(parentVal || null) } + if (!parentVal) { return childVal } + var ret = {}; + extend(ret, parentVal); + for (var key in childVal) { + var parent = ret[key]; + var child = childVal[key]; + if (parent && !Array.isArray(parent)) { + parent = [parent]; + } + ret[key] = parent + ? parent.concat(child) + : Array.isArray(child) ? child : [child]; + } + return ret +}; + +/** + * Other object hashes. + */ +strats.props = +strats.methods = +strats.inject = +strats.computed = function (parentVal, childVal) { + if (!parentVal) { return childVal } + var ret = Object.create(null); + extend(ret, parentVal); + if (childVal) { extend(ret, childVal); } + return ret +}; +strats.provide = mergeDataOrFn; + +/** + * Default strategy. + */ +var defaultStrat = function (parentVal, childVal) { + return childVal === undefined + ? parentVal + : childVal +}; + +/** + * Validate component names + */ +function checkComponents (options) { + for (var key in options.components) { + var lower = key.toLowerCase(); + if (isBuiltInTag(lower) || config.isReservedTag(lower)) { + warn( + 'Do not use built-in or reserved HTML elements as component ' + + 'id: ' + key + ); + } + } +} + +/** + * Ensure all props option syntax are normalized into the + * Object-based format. + */ +function normalizeProps (options) { + var props = options.props; + if (!props) { return } + var res = {}; + var i, val, name; + if (Array.isArray(props)) { + i = props.length; + while (i--) { + val = props[i]; + if (typeof val === 'string') { + name = camelize(val); + res[name] = { type: null }; + } else { + warn('props must be strings when using array syntax.'); + } + } + } else if (isPlainObject(props)) { + for (var key in props) { + val = props[key]; + name = camelize(key); + res[name] = isPlainObject(val) + ? val + : { type: val }; + } + } + options.props = res; +} + +/** + * Normalize all injections into Object-based format + */ +function normalizeInject (options) { + var inject = options.inject; + if (Array.isArray(inject)) { + var normalized = options.inject = {}; + for (var i = 0; i < inject.length; i++) { + normalized[inject[i]] = inject[i]; + } + } +} + +/** + * Normalize raw function directives into object format. + */ +function normalizeDirectives (options) { + var dirs = options.directives; + if (dirs) { + for (var key in dirs) { + var def = dirs[key]; + if (typeof def === 'function') { + dirs[key] = { bind: def, update: def }; + } + } + } +} + +/** + * Merge two option objects into a new one. + * Core utility used in both instantiation and inheritance. + */ +function mergeOptions ( + parent, + child, + vm +) { + { + checkComponents(child); + } + + if (typeof child === 'function') { + child = child.options; + } + + normalizeProps(child); + normalizeInject(child); + normalizeDirectives(child); + var extendsFrom = child.extends; + if (extendsFrom) { + parent = mergeOptions(parent, extendsFrom, vm); + } + if (child.mixins) { + for (var i = 0, l = child.mixins.length; i < l; i++) { + parent = mergeOptions(parent, child.mixins[i], vm); + } + } + var options = {}; + var key; + for (key in parent) { + mergeField(key); + } + for (key in child) { + if (!hasOwn(parent, key)) { + mergeField(key); + } + } + function mergeField (key) { + var strat = strats[key] || defaultStrat; + options[key] = strat(parent[key], child[key], vm, key); + } + return options +} + +/** + * Resolve an asset. + * This function is used because child instances need access + * to assets defined in its ancestor chain. + */ +function resolveAsset ( + options, + type, + id, + warnMissing +) { + /* istanbul ignore if */ + if (typeof id !== 'string') { + return + } + var assets = options[type]; + // check local registration variations first + if (hasOwn(assets, id)) { return assets[id] } + var camelizedId = camelize(id); + if (hasOwn(assets, camelizedId)) { return assets[camelizedId] } + var PascalCaseId = capitalize(camelizedId); + if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] } + // fallback to prototype chain + var res = assets[id] || assets[camelizedId] || assets[PascalCaseId]; + if ("development" !== 'production' && warnMissing && !res) { + warn( + 'Failed to resolve ' + type.slice(0, -1) + ': ' + id, + options + ); + } + return res +} + +/* */ + +function validateProp ( + key, + propOptions, + propsData, + vm +) { + var prop = propOptions[key]; + var absent = !hasOwn(propsData, key); + var value = propsData[key]; + // handle boolean props + if (isType(Boolean, prop.type)) { + if (absent && !hasOwn(prop, 'default')) { + value = false; + } else if (!isType(String, prop.type) && (value === '' || value === hyphenate(key))) { + value = true; + } + } + // check default value + if (value === undefined) { + value = getPropDefaultValue(vm, prop, key); + // since the default value is a fresh copy, + // make sure to observe it. + var prevShouldConvert = observerState.shouldConvert; + observerState.shouldConvert = true; + observe(value); + observerState.shouldConvert = prevShouldConvert; + } + { + assertProp(prop, key, value, vm, absent); + } + return value +} + +/** + * Get the default value of a prop. + */ +function getPropDefaultValue (vm, prop, key) { + // no default, return undefined + if (!hasOwn(prop, 'default')) { + return undefined + } + var def = prop.default; + // warn against non-factory defaults for Object & Array + if ("development" !== 'production' && isObject(def)) { + warn( + 'Invalid default value for prop "' + key + '": ' + + 'Props with type Object/Array must use a factory function ' + + 'to return the default value.', + vm + ); + } + // the raw prop value was also undefined from previous render, + // return previous default value to avoid unnecessary watcher trigger + if (vm && vm.$options.propsData && + vm.$options.propsData[key] === undefined && + vm._props[key] !== undefined + ) { + return vm._props[key] + } + // call factory function for non-Function types + // a value is Function if its prototype is function even across different execution context + return typeof def === 'function' && getType(prop.type) !== 'Function' + ? def.call(vm) + : def +} + +/** + * Assert whether a prop is valid. + */ +function assertProp ( + prop, + name, + value, + vm, + absent +) { + if (prop.required && absent) { + warn( + 'Missing required prop: "' + name + '"', + vm + ); + return + } + if (value == null && !prop.required) { + return + } + var type = prop.type; + var valid = !type || type === true; + var expectedTypes = []; + if (type) { + if (!Array.isArray(type)) { + type = [type]; + } + for (var i = 0; i < type.length && !valid; i++) { + var assertedType = assertType(value, type[i]); + expectedTypes.push(assertedType.expectedType || ''); + valid = assertedType.valid; + } + } + if (!valid) { + warn( + 'Invalid prop: type check failed for prop "' + name + '".' + + ' Expected ' + expectedTypes.map(capitalize).join(', ') + + ', got ' + Object.prototype.toString.call(value).slice(8, -1) + '.', + vm + ); + return + } + var validator = prop.validator; + if (validator) { + if (!validator(value)) { + warn( + 'Invalid prop: custom validator check failed for prop "' + name + '".', + vm + ); + } + } +} + +var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/; + +function assertType (value, type) { + var valid; + var expectedType = getType(type); + if (simpleCheckRE.test(expectedType)) { + valid = typeof value === expectedType.toLowerCase(); + } else if (expectedType === 'Object') { + valid = isPlainObject(value); + } else if (expectedType === 'Array') { + valid = Array.isArray(value); + } else { + valid = value instanceof type; + } + return { + valid: valid, + expectedType: expectedType + } +} + +/** + * Use function string name to check built-in types, + * because a simple equality check will fail when running + * across different vms / iframes. + */ +function getType (fn) { + var match = fn && fn.toString().match(/^\s*function (\w+)/); + return match ? match[1] : '' +} + +function isType (type, fn) { + if (!Array.isArray(fn)) { + return getType(fn) === getType(type) + } + for (var i = 0, len = fn.length; i < len; i++) { + if (getType(fn[i]) === getType(type)) { + return true + } + } + /* istanbul ignore next */ + return false +} + +/* */ + +var mark; +var measure; + +{ + var perf = inBrowser && window.performance; + /* istanbul ignore if */ + if ( + perf && + perf.mark && + perf.measure && + perf.clearMarks && + perf.clearMeasures + ) { + mark = function (tag) { return perf.mark(tag); }; + measure = function (name, startTag, endTag) { + perf.measure(name, startTag, endTag); + perf.clearMarks(startTag); + perf.clearMarks(endTag); + perf.clearMeasures(name); + }; + } +} + +/* not type checking this file because flow doesn't play well with Proxy */ + +var initProxy; + +{ + var allowedGlobals = makeMap( + 'Infinity,undefined,NaN,isFinite,isNaN,' + + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + + 'require' // for Webpack/Browserify + ); + + var warnNonPresent = function (target, key) { + warn( + "Property or method \"" + key + "\" is not defined on the instance but " + + "referenced during render. Make sure to declare reactive data " + + "properties in the data option.", + target + ); + }; + + var hasProxy = + typeof Proxy !== 'undefined' && + Proxy.toString().match(/native code/); + + if (hasProxy) { + var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta'); + config.keyCodes = new Proxy(config.keyCodes, { + set: function set (target, key, value) { + if (isBuiltInModifier(key)) { + warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key)); + return false + } else { + target[key] = value; + return true + } + } + }); + } + + var hasHandler = { + has: function has (target, key) { + var has = key in target; + var isAllowed = allowedGlobals(key) || key.charAt(0) === '_'; + if (!has && !isAllowed) { + warnNonPresent(target, key); + } + return has || !isAllowed + } + }; + + var getHandler = { + get: function get (target, key) { + if (typeof key === 'string' && !(key in target)) { + warnNonPresent(target, key); + } + return target[key] + } + }; + + initProxy = function initProxy (vm) { + if (hasProxy) { + // determine which proxy handler to use + var options = vm.$options; + var handlers = options.render && options.render._withStripped + ? getHandler + : hasHandler; + vm._renderProxy = new Proxy(vm, handlers); + } else { + vm._renderProxy = vm; + } + }; +} + +/* */ + +var VNode = function VNode ( + tag, + data, + children, + text, + elm, + context, + componentOptions, + asyncFactory +) { + this.tag = tag; + this.data = data; + this.children = children; + this.text = text; + this.elm = elm; + this.ns = undefined; + this.context = context; + this.functionalContext = undefined; + this.key = data && data.key; + this.componentOptions = componentOptions; + this.componentInstance = undefined; + this.parent = undefined; + this.raw = false; + this.isStatic = false; + this.isRootInsert = true; + this.isComment = false; + this.isCloned = false; + this.isOnce = false; + this.asyncFactory = asyncFactory; + this.asyncMeta = undefined; + this.isAsyncPlaceholder = false; +}; + +var prototypeAccessors = { child: {} }; + +// DEPRECATED: alias for componentInstance for backwards compat. +/* istanbul ignore next */ +prototypeAccessors.child.get = function () { + return this.componentInstance +}; + +Object.defineProperties( VNode.prototype, prototypeAccessors ); + +var createEmptyVNode = function (text) { + if ( text === void 0 ) text = ''; + + var node = new VNode(); + node.text = text; + node.isComment = true; + return node +}; + +function createTextVNode (val) { + return new VNode(undefined, undefined, undefined, String(val)) +} + +// optimized shallow clone +// used for static nodes and slot nodes because they may be reused across +// multiple renders, cloning them avoids errors when DOM manipulations rely +// on their elm reference. +function cloneVNode (vnode) { + var cloned = new VNode( + vnode.tag, + vnode.data, + vnode.children, + vnode.text, + vnode.elm, + vnode.context, + vnode.componentOptions, + vnode.asyncFactory + ); + cloned.ns = vnode.ns; + cloned.isStatic = vnode.isStatic; + cloned.key = vnode.key; + cloned.isComment = vnode.isComment; + cloned.isCloned = true; + return cloned +} + +function cloneVNodes (vnodes) { + var len = vnodes.length; + var res = new Array(len); + for (var i = 0; i < len; i++) { + res[i] = cloneVNode(vnodes[i]); + } + return res +} + +/* */ + +var normalizeEvent = cached(function (name) { + var passive = name.charAt(0) === '&'; + name = passive ? name.slice(1) : name; + var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first + name = once$$1 ? name.slice(1) : name; + var capture = name.charAt(0) === '!'; + name = capture ? name.slice(1) : name; + return { + name: name, + once: once$$1, + capture: capture, + passive: passive + } +}); + +function createFnInvoker (fns) { + function invoker () { + var arguments$1 = arguments; + + var fns = invoker.fns; + if (Array.isArray(fns)) { + var cloned = fns.slice(); + for (var i = 0; i < cloned.length; i++) { + cloned[i].apply(null, arguments$1); + } + } else { + // return handler return value for single handlers + return fns.apply(null, arguments) + } + } + invoker.fns = fns; + return invoker +} + +function updateListeners ( + on, + oldOn, + add, + remove$$1, + vm +) { + var name, cur, old, event; + for (name in on) { + cur = on[name]; + old = oldOn[name]; + event = normalizeEvent(name); + if (isUndef(cur)) { + "development" !== 'production' && warn( + "Invalid handler for event \"" + (event.name) + "\": got " + String(cur), + vm + ); + } else if (isUndef(old)) { + if (isUndef(cur.fns)) { + cur = on[name] = createFnInvoker(cur); + } + add(event.name, cur, event.once, event.capture, event.passive); + } else if (cur !== old) { + old.fns = cur; + on[name] = old; + } + } + for (name in oldOn) { + if (isUndef(on[name])) { + event = normalizeEvent(name); + remove$$1(event.name, oldOn[name], event.capture); + } + } +} + +/* */ + +function mergeVNodeHook (def, hookKey, hook) { + var invoker; + var oldHook = def[hookKey]; + + function wrappedHook () { + hook.apply(this, arguments); + // important: remove merged hook to ensure it's called only once + // and prevent memory leak + remove(invoker.fns, wrappedHook); + } + + if (isUndef(oldHook)) { + // no existing hook + invoker = createFnInvoker([wrappedHook]); + } else { + /* istanbul ignore if */ + if (isDef(oldHook.fns) && isTrue(oldHook.merged)) { + // already a merged invoker + invoker = oldHook; + invoker.fns.push(wrappedHook); + } else { + // existing plain hook + invoker = createFnInvoker([oldHook, wrappedHook]); + } + } + + invoker.merged = true; + def[hookKey] = invoker; +} + +/* */ + +function extractPropsFromVNodeData ( + data, + Ctor, + tag +) { + // we are only extracting raw values here. + // validation and default values are handled in the child + // component itself. + var propOptions = Ctor.options.props; + if (isUndef(propOptions)) { + return + } + var res = {}; + var attrs = data.attrs; + var props = data.props; + if (isDef(attrs) || isDef(props)) { + for (var key in propOptions) { + var altKey = hyphenate(key); + { + var keyInLowerCase = key.toLowerCase(); + if ( + key !== keyInLowerCase && + attrs && hasOwn(attrs, keyInLowerCase) + ) { + tip( + "Prop \"" + keyInLowerCase + "\" is passed to component " + + (formatComponentName(tag || Ctor)) + ", but the declared prop name is" + + " \"" + key + "\". " + + "Note that HTML attributes are case-insensitive and camelCased " + + "props need to use their kebab-case equivalents when using in-DOM " + + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"." + ); + } + } + checkProp(res, props, key, altKey, true) || + checkProp(res, attrs, key, altKey, false); + } + } + return res +} + +function checkProp ( + res, + hash, + key, + altKey, + preserve +) { + if (isDef(hash)) { + if (hasOwn(hash, key)) { + res[key] = hash[key]; + if (!preserve) { + delete hash[key]; + } + return true + } else if (hasOwn(hash, altKey)) { + res[key] = hash[altKey]; + if (!preserve) { + delete hash[altKey]; + } + return true + } + } + return false +} + +/* */ + +// The template compiler attempts to minimize the need for normalization by +// statically analyzing the template at compile time. +// +// For plain HTML markup, normalization can be completely skipped because the +// generated render function is guaranteed to return Array. There are +// two cases where extra normalization is needed: + +// 1. When the children contains components - because a functional component +// may return an Array instead of a single root. In this case, just a simple +// normalization is needed - if any child is an Array, we flatten the whole +// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep +// because functional components already normalize their own children. +function simpleNormalizeChildren (children) { + for (var i = 0; i < children.length; i++) { + if (Array.isArray(children[i])) { + return Array.prototype.concat.apply([], children) + } + } + return children +} + +// 2. When the children contains constructs that always generated nested Arrays, +// e.g.