النقاط الطرفية

نظرة عامة على النقاط الطرفية

يوفر One Ticket API أربع نقاط طرفية مختلفة كما يلي:

  1. إنشاء تذكرة: تُستخدم لإنشاء تذكرة جديدة للمستخدم.
  2. الحصول على تذكرة: تُستخدم لاسترداد معلومات التذكرة.
  3. مسح التذكرة: تُستخدم لمسح/التحقق من صحة التذكرة.
  4. نقل التذكرة: تُستخدم لنقل التذكرة إلى مالك جديد.

النقطة الطرفية 1: إنشاء تذكرة

  1. تتحقق هذه النقطة الطرفية بشكل صارم من البيانات الواردة. تأكد من أن طلبك يتطابق مع المخطط المحدد ولا يتضمن حقولًا إضافية.
  2. إذا لم يكن المستخدم موجودًا، ستقوم هذه النقطة الطرفية بإنشائه تلقائيًا. لا يلزم أي معالجة إضافية من جانبك.
  3. إذا لم يكن الحدث موجودًا، ستقوم هذه النقطة الطرفية بإنشائه تلقائيًا. لا يلزم أي معالجة إضافية من جانبك.
الطلب : POST | https://sandbox.one-ticket.fr/api/generate_ticket
{
    client_id: "user1",
    client_firstname: "test",
    client_lastname: "test",
    event_id: "event1",
    event_name: "test"
}

يجب عليك تطبيق بروتوكول الأمان لإنشاء توقيع صالح باستخدام مفتاح التوقيع الخاص بك.

{
    client_id: "user1",
    client_firstname: "test",
    client_lastname: "test",
    event_id: "event1",
    event_name: "test",
    signature: "833f8783b3cc.........."
}

يجب تشفير بيانات الطلب باستخدام مفتاح التشفير قبل إرسالها إلى النقطة الطرفية. راجع بروتوكول الأمان لمزيد من المعلومات.

{
    data: "encryptedData",
    token: "token"
}
الاستجابة

يستجيب خادمنا دائمًا ببيانات مشفرة باستخدام نفس بروتوكول الأمان.

{
    data: "U2FsdGVkX18Rip6kq9GtW74FbBGuXX8oeNz4MVxKlpY1qYe2qaqk/RyrKCzcYQVl1PORYHCuxyTGy0f4+n1WsANvCBDJwt+eDcaw8Ripl74n1z7hbGxUb8dT1hRX3twiiWCHqtPeTSvGEHSVvN9vgFVB3tm5ANU8VBWLu29ycuIPa1Yp+1sN7pWowUdBD9ZLPRWXm3+1NDWwXso7pbnKqmtM5gZvkYx2kv5I6dcpvgVTg3pSihbrHSCr+lj6dxmg5OcPZ0hwLlGg3TouNVT6A3XQGc02MmNBJu/Y/2v1+Hs2tte/pJg0cNV/YwsTeGW6jy2nOnGhLzpLIEOv6N0981HiFXz01jDXXWcHDq87TVmcQ7f9FA8Xs4edlh7T89mR6j5fFwWKKIcw9R8nsenCe+MNV99hgdBH5lne62RaaZgVSELK+lDes9kIGdAFCOyhOCbZr0Wm2V76mwRlEmxfLE8YSHi1T3KXyVf3KuycuzZWTUejWYDsp8giXGQN5CMo32+B2F32zXwZWDvix8gYXA==",
}
  1. قم بفك تشفير الاستجابة باستخدام مفتاح التشفير الخاص بك.
  2. يتم إرسال المفتاح الخاص للمستخدم وتفاصيل الاسترداد مرة واحدة فقط عند إنشاء مستخدم جديد. قم بتخزينها بأمان. إذا كان المستخدم موجودًا بالفعل، فسيتم تضمين معلومات المحفظة فقط في الاستجابة.
  3. يتضمن كائن التذكرة دائمًا عنوان العقد. يمثل ticket_id معرف NFT على العقد، بينما يمثل one_ticket_id معرف التذكرة في نظامنا. احتفظ به بأمان للطلبات المستقبلية (الحصول، المسح، النقل).
  4. لأقصى درجات الأمان، نوصي بشدة بالتحقق من التوقيع باستخدام نفس بروتوكول الأمان للتأكد من أن الاستجابة تأتي من خوادمنا.
{
    user: {
        wallet: '0x77F971D3DB26........',
        private_key: '0x9c94d03a86f8fa613e2e4b9df5b8...........',
        recovery: 'reunion promote almost derive .........'
    },
    ticket: {
        contrat_address: '0xa32AB63b41723E6.......',
        ticket_id: '1',
        one_ticket_id: '678d34fecd......'
    },
    signature: "833f83b783cc.........."
}

للتحقق من التوقيع في هذا السيناريو، يجب أن تبدو سلسلة الأساس المرتبة كما يلي:

tiketcontrat_address0xa32AB63b41723E6.......one_ticket_id678d34fecd......ticket_id1userprivate_key0x9c94d03a86f8fa613e2e4b9df5b8...........recoveryreunionpromotealmostderive.........wallet0x77F971D3DB26........keysignature_key

النقطة الطرفية 2: الحصول على تذكرة

  1. تتحقق هذه النقطة الطرفية بشكل صارم من البيانات الواردة. تأكد من أن طلبك يتطابق مع المخطط المحدد ولا يتضمن حقولًا إضافية.
  2. استخدم الحقل one_ticket_id الذي تم توفيره أثناء عملية الإنشاء كـ ticket_id.
الطلب : POST | https://sandbox.one-ticket.fr/api/get_ticket
{
    ticket_id: "678d34fecd......",
}

يجب عليك تطبيق بروتوكول الأمان لإنشاء توقيع صالح باستخدام مفتاح التوقيع الخاص بك.

{
    ticket_id: "678d34fecd......",
    signature: "8a061333cb92.........."
}

يجب تشفير بيانات الطلب باستخدام مفتاح التشفير قبل إرسالها إلى النقطة الطرفية. راجع بروتوكول الأمان لمزيد من المعلومات.

{
    data: "encryptedData",
    token: "token"
}
الاستجابة

يستجيب خادمنا دائمًا ببيانات مشفرة باستخدام نفس بروتوكول الأمان.

{
    data: "U2FsdGVkX1+8YktteAcjyGNljrdFmwR+raGDWu6Mzlk91v60kM3uFIrxPr4nKK2pdKdnco+fhLGJYOWTU+57/w7G/UwDl/WAbyy7ulExkG+tSJ077HswPU83/oDQZMQItrRrG44V4okxPwbyX4uxeLwslV6dsGYj9rKCN83/AsLxChgUHP3aN2GPdiuozxWrL0Ji/APHumXmSVGWaEhU7E0v4SWIbqv5wqCRqSbmMl/NX0X6CSKDbdd0Jm5n/L/NGmcjX7uqO6Nh47ibYqXz1ii2e+Y7sQREvFLO3g4i+4p2IugeWyPT3x2sLXgjOpwrDdzGjf9Cd7BTIn3foK5UAmz74AEAZ3UU3mWPZZgPeXyqO1SLg6kOdBZbt6+n7rjwKv9zaHTSBkyGLFra/mzSoPxH9kgBjkv9YB04Lri3gflERKLpdxMTaej3yB5a7DLmqgzkIPT6gWOfcPV6wg+R4w==",
}
  1. قم بفك تشفير الاستجابة باستخدام مفتاح التشفير الخاص بك.
  2. لأقصى درجات الأمان، نوصي بشدة بالتحقق من التوقيع باستخدام نفس بروتوكول الأمان للتأكد من أن الاستجابة تأتي من خوادمنا.
{
    one_ticket_id: '678d34fecd......',
    eventID: '1',
    eventName: 'test',
    owner: '0x77F971D3DB2639a2......',
    nft_url: 'https://scarlet-decent-bison-643.mypinata.cloud/ipfs/bafkreiaaf2kqfnajqk........',
    isTicketScanned: false,
    signature: '012701644dcfcf3393a83bc83a4df2d7'
}

للتحقق من التوقيع في هذا السيناريو، يجب أن تبدو سلسلة الأساس المرتبة كما يلي:

eventid1eventnametestisticketscannedfalsenft_urlhttps://scarlet-decent-bison-643.mypinata.cloud/ipfs/bafkreiaaf2kqfnajqk........one_ticket_id678d34fecd......owner0x77f971d3db2639a2......keysignature_key

النقطة الطرفية 3: مسح التذكرة

  1. تتحقق هذه النقطة الطرفية بشكل صارم من البيانات الواردة. تأكد من أن طلبك يتطابق مع المخطط المحدد ولا يتضمن حقولًا إضافية.
  2. استخدم الحقل one_ticket_id الذي تم توفيره أثناء عملية الإنشاء كـ ticket_id.
الطلب : POST | https://sandbox.one-ticket.fr/api/scan_ticket
{
    ticket_id: "678d34fecd......",
}

يجب عليك تطبيق بروتوكول الأمان لإنشاء توقيع صالح باستخدام مفتاح التوقيع الخاص بك.

{
    ticket_id: "678d34fecd......",
    signature: "8a061333cb92.........."
}

يجب تشفير بيانات الطلب باستخدام مفتاح التشفير قبل إرسالها إلى النقطة الطرفية. راجع بروتوكول الأمان لمزيد من المعلومات.

{
    data: "encryptedData",
    token: "token"
}
الاستجابة

يستجيب خادمنا دائمًا ببيانات مشفرة باستخدام نفس بروتوكول الأمان.

{
    data: "U2FsdGVkX19sfk7pwxKxg7o69ryadttAgimmhIrnTOYMp+mtM1oaT6IODYemRLSpjA7ilQrkI9+gPZailfxMU05ODgD0GTmpthi+Wyn5Eft0RnzribSSbWLpHHh/pDabBgQkuj2LT6P1vtn+tizTcTRs6pTy8m2YyUN58pDleDV35JUFNCIPNXnIhW4pYEfDuW7K7cNNmFPAl9mPPvT5NtEJprkJKGbziONhFO9hL8JzttavngER3Ixlu14EWMrw2H2rkwgY1g8C5eMUp3uZ7kYiW5QwVpvHWPVqxg4nhVqxlNKDL7IaR/vobTB77H71ZCcfB8VIE3ewE/DAxyIt1lm+7g7U3695rP/+L2tIlFqW01ZcCF1ZjLctNvb42AxUAlpdJSspqRfsW5eaJYB2uLAafdqcbK/j5SKIUss/EYlaKE2eHRoIxYU1uv/HHdPZDP3sdy6VIXNGHMsHskgSGKELPObkC7Xr6GauMEsjlyGm7VHTECdhr7Xl7OJAD8ZjY0+vm685u/nQhgFm0o9xw4l52MK0wLKjk1Szyu2n3Sf6nqC6CEmfgV2akG+eDmDX",
}
  1. قم بفك تشفير الاستجابة باستخدام مفتاح التشفير الخاص بك.
  2. لأقصى درجات الأمان، نوصي بشدة بالتحقق من التوقيع باستخدام نفس بروتوكول الأمان للتأكد من أن الاستجابة تأتي من خوادمنا.
{
    ticket: {
      one_ticket_id: '678d34fecd......',
      eventID: '1',
      eventName: 'test',
      owner: '0x77F971D3DB2639a2......',
      nft_url: 'https://scarlet-decent-bison-643.mypinata.cloud/ipfs/bafkreiaaf2kqfnajqk........',
      isTicketScanned: true
    },
    memory_ticket: {
      contrat_address: '0x2d658d532C9c87......',
      ticket_id: '2'
    },
    signature: '22ffb86d55d27b57df63ed400136b3e8'
  }

للتحقق من التوقيع في هذا السيناريو، يجب أن تبدو سلسلة الأساس المرتبة كما يلي:

memory_ticketcontrat_address0x2d658d532C9c87......ticket_id2tiketeventid1eventnamee1isticketscannedtruenft_urlhttps://scarlet-decent-bison-643.mypinata.cloud/ipfs/bafkreiaaf2kqfnajqk........one_ticket_id678d34fecd......owner0x77F971D3DB2639a2......keysignature_key

النقطة الطرفية 4: نقل التذكرة

  1. تتحقق هذه النقطة الطرفية بشكل صارم من البيانات الواردة. تأكد من أن طلبك يتطابق مع المخطط المحدد ولا يتضمن حقولًا إضافية.
  2. إذا لم يكن المستخدم المستقبل موجودًا، ستقوم هذه النقطة الطرفية بإنشائه تلقائيًا. لا يلزم أي معالجة إضافية من جانبك.
  3. استخدم الحقل one_ticket_id الذي تم توفيره أثناء عملية الإنشاء كـ ticket_id.
الطلب : POST | https://sandbox.one-ticket.fr/api/transfer_ticket
{
    ticket_id: "678d34fecd......",
    sender_id: "user1",,
    reciver_id: "user2",
    reciver_firstname: "test",
    reciver_lastname: "test",
}

يجب عليك تطبيق بروتوكول الأمان لإنشاء توقيع صالح باستخدام مفتاح التوقيع الخاص بك.

{
    ticket_id: "678d34fecd......",
    sender_id: "user1",,
    reciver_id: "user2",
    reciver_firstname: "test",
    reciver_lastname: "test",
    signature: "8a06b91333c2.........."
}

يجب تشفير بيانات الطلب باستخدام مفتاح التشفير قبل إرسالها إلى النقطة الطرفية. راجع بروتوكول الأمان لمزيد من المعلومات.

{
    data: "encryptedData",
    token: "token"
}
الاستجابة

يستجيب خادمنا دائمًا ببيانات مشفرة باستخدام نفس بروتوكول الأمان.

{
    data: "U2FsdGVkX19sfk7pwxKxg7o69ryadttAgimmhIrnTOYMp+mtM1oaT6IODYemRLSpjA7ilQrkI9+gPZailfxMU05ODgD0GTmpthi+Wyn5Eft0RnzribSSbWLpHHh/pDabBgQkuj2LT6P1vtn+tizTcTRs6pTy8m2YyUN58pDleDV35JUFNCIPNXnIhW4pYEfDuW7K7cNNmFPAl9mPPvT5NtEJprkJKGbziONhFO9hL8JzttavngER3Ixlu14EWMrw2H2rkwgY1g8C5eMUp3uZ7kYiW5QwVpvHWPVqxg4nhVqxlNKDL7IaR/vobTB77H71ZCcfB8VIE3ewE/DAxyIt1lm+7g7U3695rP/+L2tIlFqW01ZcCF1ZjLctNvb42AxUAlpdJSspqRfsW5eaJYB2uLAafdqcbK/j5SKIUss/EYlaKE2eHRoIxYU1uv/HHdPZDP3sdy6VIXNGHMsHskgSGKELPObkC7Xr6GauMEsjlyGm7VHTECdhr7Xl7OJAD8ZjY0+vm685u/nQhgFm0o9xw4l52MK0wLKjk1Szyu2n3Sf6nqC6CEmfgV2akG+eDmDX",
}
  1. قم بفك تشفير الاستجابة باستخدام مفتاح التشفير الخاص بك.
  2. يتم إرسال المفتاح الخاص للمستخدم المستقبل وتفاصيل الاسترداد مرة واحدة فقط عند إنشاء مستخدم جديد. قم بتخزينها بأمان. إذا كان المستخدم موجودًا بالفعل، فسيتم تضمين معلومات المحفظة فقط في الاستجابة.
  3. لأقصى درجات الأمان، نوصي بشدة بالتحقق من التوقيع باستخدام نفس بروتوكول الأمان للتأكد من أن الاستجابة تأتي من خوادمنا.
{
    msg: 'Ticket 678d34fecd...... successfully gifted to 0x1D8db58DeBe105......',
    sender: {
        wallet: '0x77F971D3DB2639a2......' 
    },
    reciver: {
        wallet: '0x1D8db58DeBe105......',
        private_key: '0x5b114bd6b895091da2c057......',
        recovery: 'inch there elevator........'
    },
    ticket: {
        one_ticket_id: '678d34fecd......',
        eventID: '1',
        eventName: 'test',
        owner: '0x1D8db58DeBe105......',
        nft_url: 'https://scarlet-decent-bison-643.mypinata.cloud/ipfs/bafkreiaaf2kqfnajqk........',
        isTicketScanned: false
    },
    signature: '2500548844a6b7d59b73675bcd3146c4'
}

للتحقق من التوقيع في هذا السيناريو، يجب أن تبدو سلسلة الأساس المرتبة كما يلي:

msgticket678d34fecd......successfullygiftedto0x1D8db58DeBe105......reciverprivate_key0x5b114bd6b895091da2c057......recoveryinchthereelevator........wallet0x1D8db58DeBe105......senderwallet0x77F971D3DB2639a2......ticketeventid1eventnametestisticketscannedfalsenft_urlhttps://scarlet-decent-bison-643.mypinata.cloud/ipfs/bafkreiaaf2kqfnajqk........one_ticket_id678d34fecd......owner0x1D8db58DeBe105......keysignature_key

ملاحظات

  1. تأكد من اتباع جميع إجراءات الأمان اللازمة أثناء التعامل مع الطلبات والاستجابات.
  2. قم بتخزين المعلومات الحساسة بأمان وتجنب مشاركتها علنًا.
  3. اتبع أفضل الممارسات للحفاظ على تكامل نظامك آمنًا وفعالًا.