From a2f021fe943003679fa033b9e44c72a23b326284 Mon Sep 17 00:00:00 2001 From: hailin Date: Thu, 25 Dec 2025 03:20:27 -0800 Subject: [PATCH] =?UTF-8?q?fix(mobile-app):=20=E4=BF=AE=E5=A4=8D=E7=AD=BE?= =?UTF-8?q?=E7=BD=B2=E5=90=88=E5=90=8C=E8=AF=B7=E6=B1=82=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=90=8D=E4=B8=8E=E5=90=8E=E7=AB=AF=E4=B8=8D=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - signatureImage → signatureBase64 - 添加 signatureHash 字段 - 将 deviceInfo 包装成对象格式 {deviceId, platform} - 将 latitude/longitude 包装成 location 对象 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../services/contract_signing_service.dart | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/frontend/mobile-app/lib/core/services/contract_signing_service.dart b/frontend/mobile-app/lib/core/services/contract_signing_service.dart index 5f80fa8d..183b16d1 100644 --- a/frontend/mobile-app/lib/core/services/contract_signing_service.dart +++ b/frontend/mobile-app/lib/core/services/contract_signing_service.dart @@ -346,12 +346,15 @@ class ContractSigningService { debugPrint('[ContractSigningService] Base64 长度: ${signatureBase64.length}'); final requestData = { - 'signatureImage': signatureBase64, - 'ipAddress': ipAddress, - 'deviceInfo': deviceInfo, - 'userAgent': userAgent, - 'latitude': latitude, - 'longitude': longitude, + 'signatureBase64': signatureBase64, // 后端期望的字段名 + 'signatureHash': '', // TODO: 计算签名哈希 + 'deviceInfo': { + 'deviceId': deviceInfo ?? 'unknown', + 'platform': 'android', + }, + 'location': latitude != null && longitude != null + ? {'latitude': latitude, 'longitude': longitude} + : null, }; debugPrint('[ContractSigningService] 请求 URL: /planting/contract-signing/tasks/$orderNo/sign'); @@ -406,12 +409,15 @@ class ContractSigningService { debugPrint('[ContractSigningService] Base64 长度: ${signatureBase64.length}'); final requestData = { - 'signatureImage': signatureBase64, - 'ipAddress': ipAddress, - 'deviceInfo': deviceInfo, - 'userAgent': userAgent, - 'latitude': latitude, - 'longitude': longitude, + 'signatureBase64': signatureBase64, // 后端期望的字段名 + 'signatureHash': '', // TODO: 计算签名哈希 + 'deviceInfo': { + 'deviceId': deviceInfo ?? 'unknown', + 'platform': 'android', + }, + 'location': latitude != null && longitude != null + ? {'latitude': latitude, 'longitude': longitude} + : null, }; debugPrint('[ContractSigningService] 请求 URL: /planting/contract-signing/tasks/$orderNo/late-sign');