السلام عليكم ورحمة الله
أواجه مشكلة وهي هذه الرسالة :
HTTP Code: 400
Response:
{"errors":[{"code":"Invalid-OTP","message":"The provided OTP is invalid"}]}
حيث استخدم هذه الصفحة التي انشأتها بواسطة الذكاء الاصطناعي :
<?php
// csr_test.php - تجربة إرسال CSR مباشرة لمنصة ZATCA (بيئة simulation)
$url = 'https://gw-fatoora.zatca.gov.sa/e-invoicing/simulation/compliance';
$otp = '472813';
$csrBase64 = 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0NCk1JSUNXakNDQWdBQ0FRQXdnnTlZCQVlUQWxOQk1Sd';
$payload = json_encode([
'csr' => $csrBase64
], JSON_UNESCAPED_SLASHES);
$headers = [
'accept: application/json',
"OTP: {$otp}",
'Accept-Version: V2',
'Content-Type: application/json'
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_TIMEOUT => 30
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
echo "<pre style='background:#f9f9f9;padding:10px;border:1px solid #ccc'>";
echo "HTTP Code: {$httpCode}\n";
if ($error) {
echo "cURL Error: {$error}\n";
}
echo "Response:\n{$response}\n";
echo "</pre>";
حيث أولد رمز OTP عبر بوابة المحاكاة
واستخدم الرابط ::
https://gw-fatoora.zatca.gov.sa/e-invoicing/simulation/compliance
وقد قمت بتوليد ملف csr عبر zatca-einvoicing-sdk
بعد تجهيز ملف csr.config بالمعلومات الصحيحة
csr.common.name=BENBANY-3100000003-310111111100003
csr.serial.number=1-BENBANY|2-V2.1|3-e03b11e2-b7c6-4b95-475f-1dc9c677d768
csr.organization.identifier=310111111100003
csr.organization.unit.name=فرع جدة
csr.organization.name=محمد أحمد خالد
csr.country.name=SA
csr.invoice.type=1000
csr.location.address=JEBC3333
csr.industry.business.category=عقارات
وباستخدام الامر :
fatooranet.exe csr -csrConfig ..\csr.config -generatedCsr ..\cert.csr -privateKey ..\ec-secp256k1-priv-key.pem -nonprod true
علما بأنني اعمل على خادم محلي :
http://127.0.0.1/1/csr_test.php
رغم أنني متأكد من ان الرمز OTP جديد وولدته عبر الصفحة الصحيحة وهي صفحة المحاكاة لكن رسالة الخطأ هي نفسها !!
أرجو المساعدة