سؤال

أحاول استخدام QuickBooks API لمزامنة قائمة منتجات شركتي مع قائمة عناصر المصنف.لقد اجتزت نظام OAuth حتى أتمكن من تقديم طلبات القراءة/الكتابة إلى واجهة برمجة التطبيقات (API)، ولكن دائمًا ما أحصل على خطأ أثناء محاولة تحديث كائن.

المرجع الذي كنت أستخدمه هو هنا, ، وفي نفس الوثائق توجد إشارة إلى استرداد كائن تمكنت من استخدامه بشكل جيد.هذا ال XML الذي أقوم بإرساله.لقد قمت بتعديل XML لبضع ساعات الآن دون جدوى.

رسالة الخطأ التي تظهر لي هي "اسم عنصر QB موجود بالفعل ERI=420962215".إن ERI هو معرف المجال الخاص بي.يبدو أن QuickBooks يعتقد أنني أحاول إضافة عنصر جديد، بينما أحاول تعديل عنصر موجود.إذا حذفت حقل الاسم أو تركته خاليًا، فسيعطيني خطأ أيضًا.

تم إنشاء العنصر الذي أحاول تعديله في QuickBooks، ثم تمت مزامنته من خلال QuickBook's Sync Manager.لقد قمت بعد ذلك بمصادقة تطبيقي على هذا المصنف وتمكنت من قراءة البيانات بسهولة.لدي مشكلة فقط عندما أحاول الكتابة.لم أحاول بعد إنشاء كائن أو حذفه منذ أن توقفت عن التحديث.

أحاول فقط إعداد نموذج بسيط على موقع شركتي والذي سيصل إلى واجهة برمجة التطبيقات (API) ويحدث البيانات عند الحفظ، ولكن لا يمكنني العثور على طريقة للتغلب على هذا الخطأ.

أي مساعدة سيكون موضع تقدير كبير.بدأت أواجه مشاكل يوم الجمعة وأشعر وكأنني أدور في دائرة الآن.لقد عثرت على مكتبة QuickBooks / PHP وحاولت البحث فيها لمعرفة ما إذا كان بإمكاني العثور على معلومات مفيدة، لكنها كانت كبيرة جدًا بالنسبة لي لتحديد ما كنت أبحث عنه، لأنني أعتقد أن الخطأ هو مجرد ملف XML غير صحيح.

لقد اتبعت جميع التوجيهات الموجودة في مرجع التحديث ولا أستطيع إحراز تقدم.لقد قمت بالتحقق مرتين وثلاث مرات من أن المصادقة الخاصة بي تعمل، وأن عنوان URL صحيح، وأنني أرسل POST وليس GET، وأن XML الخاص بي يطابق XML الموضح في هذا المثال.

تحديث 2012/03/15

يبدو أن المشكلة تكمن في أن واجهة برمجة التطبيقات (API) غير قادرة على تحديث عنصر تم إنشاؤه من خلال QuickBooks.يحتوي أي عنصر على معرف وidDomain، مما يشير إلى ما إذا كان قد تم إجراؤه من خلال API (NG) أو Quickbooks (QB).مثال على ذلك id/idDomain سيكون 1/QB أو 2556587/NG.

كلما كنت أفعل ذلك، تمكنت من تحديث عنصر تم إنشاؤه من خلال واجهة برمجة التطبيقات (API) بشكل مثالي، ولكن ليس عنصرًا تم إجراؤه من خلال Quickbooks.بعد النظر في مرجع الكائن المدعوم, ، لقد لاحظت أن تحديث/إنشاء تجميع العنصر مدرج في النسخة التجريبية.

هل كانت مفيدة؟

المحلول

ويبدو أن ما كتبته في التحديث صحيح.لا أستطيع تحديث العناصر التي تم إجراؤها في الكتب السريعة من خلال واجهة برمجة التطبيقات.يمكنني قراءة العناصر التي تم إنشاؤها في الكتب السريعة، ويمكنني إنشاء عناصر، ويمكنني تحرير العناصر التي تم إنشاؤها من خلال واجهة برمجة التطبيقات، ولكن تحرير عنصر تم إنشاؤه في الكتب السريعة من خلال واجهة برمجة التطبيقات يؤدي إلى ظهور هذا الخطأ.

نصائح أخرى

أشياء قليلة:

  • ما هو عنوان URL الذي تقوم بالنشر عليه؟
  • هل يمكنك إظهار استجابة HTTP الكاملة التي تحصل عليها؟IDS لديه سيئة عادة إرجاع رسائل الخطأ / الرموز التي تكون غامضة في بعض الأحيان إذا لم تنظر إلى استجابة XML الكاملة.
  • بعض هذه الحقول غير قابلة للتحديث:qtyonpurchaseorder ، qtyonsalesorder
  • أنت تعلم أنه يمكنك فقط استخدام IDS / Sync Manager للتطبيقات التي تستخدمها سوف نعيد بيعها لشركات أخرى ، أليس كذلك؟أي.لا يمكنك استخدامه ل التطبيقات الداخلية / لمرة واحدة.
  • ستحصل على دعم أفضل بكثير إذا قمت بنشر هذه الأسئلة إلى منتديات مطوري Intuit: https://idnforums.intuit.com/

قد تفكر في الانتقال إلى QBO V3 فهو أفضل وأسهل في العمل معه.هناك واجهة برمجة تطبيقات جيدة جدًا تم تصميمها لهذا الغرض.والتي يمكنك الحصول عليها هنا.https://github.com/consolibyte/quickbooks-php (مصنوع بواسطة :كيث بالمر)

أنا أستخدم هذا وأنا راضٍ جدًا عنه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top