Simple Scan(com.simplescan.scanner)数据 API
Simple Scan 通过一小组表单编码调用与云后端通信,全部带 appType=7 标记。功能开关与字节配额来自 PUT /v1/config/features(fileSyncEnable、ggOcrUsable、cloudFileShareUsable,以及每日/每月流量上限)。云保险库访问在 PUT /v1/sync/credentials 换取,返回云 identityId、identityPoolId、存储 bucketName 与短时 token。扫描件上传后,POST /v1/shares/register 记录 bucketKey 与 fileSize。高级订阅经 POST /v1/billing/subscriptions 接入,并在 GET /v1/billing/entitlements/lookup 通过 Play purchaseToken 核验。账号注销走 PUT /v1/account/delete。
Simple Scan 是 Easy inc. 的拍照转 PDF 扫描应用,带云后端用于同步、分享与高级存储。Firebase 登录后,客户端拉取功能开关(文件同步、Google OCR、云端文件分享)、为用户的文档保险库换取短时云凭据、把扫描好的 PDF 登记为可分享文件,并上报 Google Play 购买令牌以便服务端解锁高级云配额。每个调用都携带 appType=7 标记以及设备与账号身份请求头。
应用截图
API 端点一览
获取扫描仪功能开关与同步配额
PUT
/v1/config/featuresopendata返回该设备是否启用云同步、Google OCR 与文件分享,以及门控扫描云保险库的每日/每月上传下载字节配额。
认证方式: 已登录 Firebase 用户。每个调用发送自定义应用身份请求头:app-version、appType=7、app-type=7、requestTime、systemVersion、phoneModel、uu-id(Firebase UID)与 device-id。
- status
- message
- fileSyncEnable
- cloudFileShareUsable
- deviceUsable
- ggOcrUsable
- dayDownSyncFlow
- dayUploadSyncFlow
- monthDownSyncFlow
- monthUploadSyncFlow
依据应用界面重构的示意示例,并非实时抓包。
PUT /v1/config/features HTTP/1.1 app-version: 295 appType: 7 app-type: 7 requestTime: 1758902400000 systemVersion: Android 14 phoneModel: Pixel 8 uu-id: K8f2c1e0AbCdEf123456 device-id: 3a7c9e12f04b8d11{ "status": 1, "message": "ok", "data": { "fileSyncEnable": 1, "cloudFileShareUsable": true, "deviceUsable": true, "ggOcrUsable": true, "dayDownSyncFlow": 5368709120, "dayUploadSyncFlow": 5368709120, "monthDownSyncFlow": 32212254720, "monthUploadSyncFlow": 32212254720 } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的云功能开关与配额流程重建与客户端在启用同步、OCR 与分享前缓存的配置载荷一致
换取文档同步的云凭据
PUT
/v1/sync/credentialsopendata用 Firebase ID 令牌(及可选 Play 购买令牌)换取云身份凭据,以及上传下载用户云保险库扫描 PDF 所用的存储桶与区域。
认证方式: Firebase ID 令牌作为 token 提交,外加标准应用身份请求头(uu-id、device-id、appType=7)。用户订购云套餐时可选 Play IAP 字段 purchaseToken、orderId(GPA 订单)与 productId。
- status
- message
- currentTimeMillis
- bucketName
- bucketRegionName
- identityId
- identityPoolId
- identityPoolRegionName
- providerName
- token
- tokenExpireTimeMillis
- dayDownSyncFlow
- dayUploadSyncFlow
- monthDownSyncFlow
- monthUploadSyncFlow
- appType
- deviceId
- purchaseToken
- orderId
- productId
依据应用界面重构的示意示例,并非实时抓包。
PUT /v1/sync/credentials HTTP/1.1 app-version: 295 appType: 7 uu-id: K8f2c1e0AbCdEf123456 device-id: 3a7c9e12f04b8d11 Content-Type: application/x-www-form-urlencoded appType=7&token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...&deviceId=3a7c9e12f04b8d11&purchaseToken=GPA.1234-5678-9012-34567&orderId=GPA.3344-5566-7788-99000&productId=cloud100g_yearly{ "status": 1, "message": "ok", "currentTimeMillis": 1758902400000, "data": { "bucketName": "scanner-cloud-vault", "bucketRegionName": "us-east-2", "identityId": "us-east-2:8f3c1d2e-7a9b-4c5e-9f0a-1b2c3d4e5f6a", "identityPoolId": "us-east-2:c0ffee00-1111-2222-3333-444455556666", "identityPoolRegionName": "us-east-2", "providerName": "cognito-identity.amazonaws.com", "token": "eyJraWQiOiJhd3MtY29nbml0by4uLiIsInR5cCI6IkpXVCJ9...", "tokenExpireTimeMillis": 1758906000000, "dayDownSyncFlow": 5368709120, "dayUploadSyncFlow": 5368709120, "monthDownSyncFlow": 32212254720, "monthUploadSyncFlow": 32212254720 } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据配置云存储凭据的登录流程重建与应用上传扫描 PDF 前的令牌交换一致
登记扫描 PDF 分享链接
POST
/v1/shares/registeropendata在分享面板上传后,把扫描 PDF(云存储键与字节大小)登记为云分享,返回分享是否启用及免费与订阅存储上限。
认证方式: 匿名或已登录 Firebase 用户。标准应用身份请求头;请求体携带 userId、deviceId、appType=7。
- status
- message
- currentTimeMillis
- appType
- deviceId
- bucketKey
- fileSize
- userId
- orderId
- cloudFileShareUsable
- deviceUsable
- ggOcrUsable
- freeStorageSpace
- subscribeStorageSpace
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/shares/register HTTP/1.1 app-version: 295 appType: 7 uu-id: K8f2c1e0AbCdEf123456 device-id: 3a7c9e12f04b8d11 Content-Type: application/x-www-form-urlencoded appType=7&deviceId=3a7c9e12f04b8d11&bucketKey=A_K8f2c1e0AbCdEf123456/pdfs/invoice-2026-09-26.pdf&fileSize=842144&userId=K8f2c1e0AbCdEf123456&orderId=GPA.3344-5566-7788-99000{ "status": 1, "message": "ok", "currentTimeMillis": 1758902400000, "data": { "cloudFileShareUsable": true, "deviceUsable": true, "ggOcrUsable": true, "cloudFileShareConfiguration": { "freeStorageSpace": 50, "subscribeStorageSpace": 500 } } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据扫描文档的分享面板上传流程重建
登记 Google Play 订阅购买
POST
/v1/billing/subscriptionsopenfinance上传 Play Billing 的 purchaseToken、GPA orderId 与 Firebase userId,让扫描仪后端把高级/云存储权益绑定到账号。
认证方式: 已登录 Firebase 用户。标准应用身份请求头;请求体提交来自 Play Billing 的 userId(Firebase UID)、deviceId、purchaseToken 与 orderId。
- appType
- userId
- orderId
- purchaseToken
- accountId
- deviceId
- status
- message
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/billing/subscriptions HTTP/1.1 app-version: 295 appType: 7 uu-id: K8f2c1e0AbCdEf123456 device-id: 3a7c9e12f04b8d11 Content-Type: application/x-www-form-urlencoded appType=7&userId=K8f2c1e0AbCdEf123456&orderId=GPA.3344-5566-7788-99000&purchaseToken=GPA.1234-5678-9012-34567&accountId=0&deviceId=3a7c9e12f04b8d11{ "status": 1, "message": "ok" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据 Google Play 计费完成后的高级升级流程重建
核验 Play 订阅权益
GET
/v1/billing/entitlements/lookupopenfinance按购买令牌查询 Google Play 订阅,返回 SubscriptionPurchase 数据(expiryTimeMillis 与支付状态),用于开关高级/云功能。
认证方式: Play 购买令牌作为查询参数 token,外加 account_id。此调用无需 Firebase 会话。
- token
- account_id
- type
- SubscriptionPurchase
- expiryTimeMillis
- paymentState
- acknowledgementState
- orderId
- purchaseToken
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/billing/entitlements/lookup?token=GPA.1234-5678-9012-34567&account_id=0 HTTP/1.1{ "type": 1, "SubscriptionPurchase": { "expiryTimeMillis": "1761494400000", "paymentState": 1, "acknowledgementState": 1, "orderId": "GPA.3344-5566-7788-99000", "purchaseToken": "GPA.1234-5678-9012-34567" } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据门控高级功能的订阅状态检查重建
删除扫描仪账号
PUT
/v1/account/deleteosint删除绑定到该 Firebase userId、deviceId 与推送令牌的扫描云账号,清除用于同步与分享链接历史的身份。
认证方式: Firebase userId,外加 deviceId 与存储的推送令牌作为 deviceToken。标准应用身份请求头。
- userId
- appType
- deviceToken
- deviceId
- status
- message
依据应用界面重构的示意示例,并非实时抓包。
PUT /v1/account/delete HTTP/1.1 app-version: 295 appType: 7 uu-id: K8f2c1e0AbCdEf123456 device-id: 3a7c9e12f04b8d11 Content-Type: application/x-www-form-urlencoded userId=K8f2c1e0AbCdEf123456&appType=7&deviceToken=fcm-e0AbCdEf123456&deviceId=3a7c9e12f04b8d11{ "status": 1, "message": "ok" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用内账号删除流程重建
数据类别
- 云同步
- 文档分享
- 订阅权益
- 功能开关
- 设备身份
数据使用场景与案例
云保险库凭据代理
文档管理连接器用用户的 Firebase ID 令牌调用 PUT /v1/sync/credentials,再用返回的 identityId、identityPoolId、bucketName 与短时云令牌列出并拉取用户存储保险库中的扫描 PDF,无需打开应用。
后台 OCR 的分享链接接入
接入机器人监听 POST /v1/shares/register 中新的 bucketKey + fileSize 登记,然后从云存储取回 PDF,用同一 userId 做下游 OCR 或证件要素提取。
高级权益审计
计费运营把 POST /v1/billing/subscriptions(purchaseToken、orderId、userId)与 GET /v1/billing/entitlements/lookup 配对,读取 expiryTimeMillis 与 paymentState,核验设备的云配额后再开放 100 GB 同步。
账号注销 / GDPR 清除
客服工具用 userId、deviceId 与 deviceToken 调用 PUT /v1/account/delete 删除云身份,再清空同步保险库,使用户存储的扫描量归零。
常见问题
Simple Scan 如何鉴权云端调用?
每个云调用都发送自定义应用身份请求头:app-version、appType=7、app-type=7、requestTime、systemVersion、phoneModel、uu-id(Firebase UID)与 device-id。同步调用还会把 Firebase ID 令牌作为 token 提交;权益查询则改用 Play 购买令牌。
扫描的 PDF 实际存在哪里?
PUT /v1/sync/credentials 返回 bucketName、bucketRegionName、identityPoolId 与短时云令牌。应用随后把页面上传到云对象存储;分享出去的文件也会复制到 pdfs/ 存储路径下,再由 POST /v1/shares/register 记录 bucketKey。
哪些字段控制 OCR 与云分享?
PUT /v1/config/features 返回 ggOcrUsable、cloudFileShareUsable、deviceUsable 与 fileSyncEnable,外加 dayDownSyncFlow / dayUploadSyncFlow / monthDownSyncFlow / monthUploadSyncFlow。分享链接响应会重复这些开关,并补充 freeStorageSpace 与 subscribeStorageSpace。
Play 订阅如何变成云配额?
计费完成后,POST /v1/billing/subscriptions 发送 purchaseToken、orderId、userId、accountId 与 deviceId。随后 GET /v1/billing/entitlements/lookup?token=...&account_id=... 返回 expiryTimeMillis 与 paymentState,用于解锁 10 GB / 100 GB 套餐。
相关主题
- simple scan api
- simplescan 云同步 api
- simple scan pdf 分享 api
- simple scan 订阅 api
- simple scan 文档云 api
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业