Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9b62a59705 | |||
|
|
d4db68f2e7 |
@@ -11,8 +11,8 @@
|
||||
],
|
||||
"require": {
|
||||
"php": "^8.4",
|
||||
"saloonphp/saloon": "^3.0",
|
||||
"saloonphp/laravel-plugin": "^3.0",
|
||||
"saloonphp/saloon": "^4.0",
|
||||
"saloonphp/laravel-plugin": "^4.0",
|
||||
"saloonphp/pagination-plugin": "^2.0",
|
||||
"spatie/laravel-data": "^4.0",
|
||||
"guzzlehttp/guzzle": "^7.0",
|
||||
|
||||
@@ -43,7 +43,8 @@ trait HasAlfaErrorHandling
|
||||
if (str_contains($contentType, 'application/json')) {
|
||||
$data = $response->json();
|
||||
$errorCode = $data['error'] ?? $data['ErrorCode'] ?? 'HTTP_' . $response->status();
|
||||
$errorDescription = $data['error_description'] ?? $data['message'] ?? 'Request failed';
|
||||
$rawDescription = $data['error_description'] ?? $data['message'] ?? 'Request failed';
|
||||
$errorDescription = $this->decodeBankMessage($rawDescription);
|
||||
} else {
|
||||
$errorCode = 'HTTP_' . $response->status();
|
||||
$errorDescription = 'Request failed with status ' . $response->status();
|
||||
@@ -55,4 +56,15 @@ trait HasAlfaErrorHandling
|
||||
"({$requestId}) {$errorDescription}"
|
||||
);
|
||||
}
|
||||
|
||||
private function decodeBankMessage(string $message): string
|
||||
{
|
||||
$decoded = preg_replace_callback(
|
||||
'/%u([0-9A-Fa-f]{4})/',
|
||||
fn ($m) => mb_convert_encoding(pack('H*', $m[1]), 'UTF-8', 'UCS-2BE'),
|
||||
$message
|
||||
);
|
||||
|
||||
return urldecode($decoded);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user