Fixes & Updates - 2026-06-01: Integrate Back-End v3 updates, fix call/connection issues across apps
This commit is contained in:
@@ -116,48 +116,6 @@ class CRUD {
|
||||
}
|
||||
}
|
||||
|
||||
Future<dynamic> getWallet({
|
||||
required String link,
|
||||
Map<String, dynamic>? payload,
|
||||
}) async {
|
||||
var s = await getJwtWallet();
|
||||
final hmac = box.read(BoxName.hmac);
|
||||
var url = Uri.parse(link);
|
||||
|
||||
// إضافة الـ HMAC للـ payload لزيادة التوافقية
|
||||
if (payload != null && hmac != null) {
|
||||
payload['hmac'] = hmac.toString();
|
||||
}
|
||||
|
||||
var response = await http.post(
|
||||
url,
|
||||
body: payload,
|
||||
headers: {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
'Authorization': 'Bearer $s',
|
||||
'X-HMAC-Auth': hmac.toString(),
|
||||
'X-Device-FP': box.read(BoxName.fingerPrint) ?? '',
|
||||
},
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
try {
|
||||
var jsonData = jsonDecode(response.body);
|
||||
if (jsonData['status'] == 'success') {
|
||||
return jsonData;
|
||||
}
|
||||
return jsonData['status'] ?? 'failure';
|
||||
} catch (e) {
|
||||
return 'failure';
|
||||
}
|
||||
} else if (response.statusCode == 401) {
|
||||
await getJwtWallet();
|
||||
return 'token_expired';
|
||||
} else {
|
||||
return 'failure';
|
||||
}
|
||||
}
|
||||
|
||||
Future<dynamic> post(
|
||||
{required String link, Map<String, dynamic>? payload}) async {
|
||||
var url = Uri.parse(link);
|
||||
@@ -248,7 +206,8 @@ class CRUD {
|
||||
mainToken = mainTokenEnc.toString().split(AppInformation.addd)[0];
|
||||
}
|
||||
Log.print('Wallet SSO mainToken length: ${mainToken.length}');
|
||||
Log.print('Wallet SSO token starts with: ${mainToken.substring(0, mainToken.length > 10 ? 10 : mainToken.length)}');
|
||||
Log.print(
|
||||
'Wallet SSO token starts with: ${mainToken.substring(0, mainToken.length > 10 ? 10 : mainToken.length)}');
|
||||
|
||||
// استخدام الـ SSO للسيرفر الرئيسي إذا كان الأدمن مسجل دخوله
|
||||
var response1 = await http.post(
|
||||
@@ -307,6 +266,68 @@ class CRUD {
|
||||
return null;
|
||||
}
|
||||
|
||||
Future<dynamic> getWallet({
|
||||
required String link,
|
||||
Map<String, dynamic>? payload,
|
||||
bool isRetry = false,
|
||||
}) async {
|
||||
var s = await getJwtWallet();
|
||||
final hmac = box.read(BoxName.hmac);
|
||||
var url = Uri.parse(link);
|
||||
|
||||
Log.print('--- getWallet Execution ---');
|
||||
Log.print('URL: $url');
|
||||
Log.print('JWT: $s');
|
||||
Log.print('HMAC: $hmac');
|
||||
Log.print('Is Retry: $isRetry');
|
||||
Log.print('Payload: $payload');
|
||||
|
||||
if (payload != null && hmac != null) {
|
||||
payload['hmac'] = hmac.toString();
|
||||
}
|
||||
|
||||
try {
|
||||
var response = await http.post(
|
||||
url,
|
||||
body: payload,
|
||||
headers: {
|
||||
"Content-Type": "application/x-www-form-urlencoded",
|
||||
'Authorization': 'Bearer $s',
|
||||
'X-HMAC-Auth': hmac.toString(),
|
||||
'X-Device-FP': box.read(BoxName.fingerPrint) ?? '',
|
||||
},
|
||||
);
|
||||
|
||||
Log.print('Status Code: ${response.statusCode}');
|
||||
Log.print('Response Body: ${response.body}');
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
try {
|
||||
var jsonData = jsonDecode(response.body);
|
||||
if (jsonData['status'] == 'success') {
|
||||
return jsonData;
|
||||
}
|
||||
Log.print('Logic Error: Status is not success. Data: $jsonData');
|
||||
return jsonData['status'] ?? 'failure';
|
||||
} catch (e) {
|
||||
Log.print('JSON Decode Error in getWallet: $e');
|
||||
return 'failure';
|
||||
}
|
||||
} else if (response.statusCode == 401 && !isRetry) {
|
||||
Log.print('Token expired (401). Clearing cache and retrying...');
|
||||
await box.remove('wallet_jwt');
|
||||
await box.remove('wallet_jwt_expiry');
|
||||
return await getWallet(link: link, payload: payload, isRetry: true);
|
||||
} else {
|
||||
Log.print('HTTP Error in getWallet. Status: ${response.statusCode}');
|
||||
return 'failure';
|
||||
}
|
||||
} catch (e) {
|
||||
Log.print('HTTP Request Exception in getWallet: $e');
|
||||
return 'failure';
|
||||
}
|
||||
}
|
||||
|
||||
Future<dynamic> postWallet(
|
||||
{required String link, Map<String, dynamic>? payload}) async {
|
||||
var s = await getJwtWallet();
|
||||
|
||||
Reference in New Issue
Block a user