استدعاؤك الأول

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

باستخدام حزمة SDK لـ ‎.NET

builder.Services
    .AddAnisPartners(options => options.Authority = new Uri("https://<the address Anis gave you>"))
    .WithSigner(EcdsaP256Signer.FromPemFile("/secure/partner-key.pem", keyId));

// later, from the container:
var profile = await anis.Profile.GetAsync(ct);
Console.WriteLine(string.Join(", ", profile.Application!.Scopes));

راجع صفحة حزمة SDK لـ ‎.NET لملفات الإعدادات، وحفظ المفتاح، وبقية العميل البرمجي.

ما الذي يعود

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

عندما يُرفض استدعاء

يحمل كل رفض قيمة code ورابطًا إلى صفحته في رموز الأخطاء. أول ما قد تصادفه منها:

الرمز يعني عادةً
invalid_credentials معرّف المفتاح أو المفتاح أو التوقيع أو الساعة غير صحيح — أو أن المفتاح لم يصبح نشطًا بعد
insufficient_scope صلاحية ناقصة، أو استدعاء من خارج الشبكات المسموح بها لك

افحص توقيعك

إذا فشل التحقق من توقيع، فاسأل أنيس عمّا رآه: افحص توقيعك يمرّر استدعاءك عبر جميع فحوصات أنيس، ولا يغيّر شيئًا، ويُبلغك بالطريقة (method) والعنوان والمسار والاستعلام (query) التي شملها التوقيع، والمفتاح الذي عثر عليه، والصلاحيات السارية. ويتطلّب صلاحية diagnostics:use.

var seen = await anis.Diagnostics.CheckSignatureAsync(ct);
Console.WriteLine($"{seen.Method} {seen.Authority}{seen.Path} ?{seen.CanonicalQuery} key {seen.KeyId}");

قارن كل قيمة بما وقّعته — فالمشكلة تكون في الغالب في العنوان أو الاستعلام.

إذا رُفض الفحص الذاتي أيضًا

فالمشكلة إذن في المفتاح نفسه: معرّف مفتاح لا يطابق ملف المفتاح، أو مفتاح لم يُؤكَّد بعد أو أُلغي من قبل، أو ساعة خادم غير متزامنة.