منذ أسبوعين ، في أحد المشاريع ، نشأ سؤال حول دمج CRM مع Tinkoff Bank API. على وجه الخصوص ، كان الأمر يتعلق بالحصول على كشف حساب بنكي.
الأصل لديه:
- openapi.tinkoff.ru
- خدمة الدعم عبر الهاتف (بالنظر إلى انشغال قسم الدعم الفني - مهمة إنقاذ الرجل الغارق ، العمل اليدوي للرجل الغارق نفسه).
- مستند Googled : 24386_policy.pdf (مع وجود أحرف روسية في الداخل ، مع تعبيرات مسلية ، ومنعطفات للسحر ، غير مناسبة ولكن ، مع ذلك ، شيء ...)
في مربع google ، تم العثور على تعليقات أيضًا بأن إعداد Tinkoff Bank API ترفيهي للغاية وغير تافه (راجع مقالة على banki.ru
" Tinkoff
API - نحن أغبياء جدًا لهذا" ).
نعم ، كان علي أن العبث قليلاً ، لذلك ، من أجل توفير الوقت لرفاق آخرين في ورشة العمل ، تمت كتابة هذه المقالة.
لاحظت أن Tinkoff Bank API يستخدم Oauth 2.0 للترخيص.
لماذا نحتاج openapi.tinkoff.ru؟
- للاختبار (انظر أدناه) ؛
- من أجل تخمين ما هو وكيف وكيف ؛ لا يوجد جبيرة مباشرة ؛ نحن نعمل على مستوى الحدس! ...
لنبدأ. في قسم "ترخيص SSO" ، انقر على "how / Hide" ثم / secure / token # refresh-token ("إصدار رمز مميز بواسطة رمز مميز للتحديث") ، حدد grant_type كمعلمة ، ثم في حقل refresh_token (يمكنك الحصول عليه في حساب المستخدم). انقر فوق الزر "جربه!" نتيجة هذه الإجراءات هي الحصول
على شيء مهم مثل access_token (أي openapi.tinkoff.ru
يوضح إمكانية استلامه).
بعد ذلك ، انظر إلى قسم "الحسابات والمدفوعات" ، انقر فوق / شريك / شركة / {INN} / مقتطفات ("إيصال كشف الحساب"). ندرس المعلمات المطلوبة للحصول عليها: التخويل ، INN ، accountNumber ، من ، حتى.
التفويض - نعتقد أن التفويض ليس أكثر من access_token ، الذي تلقيناه في قسم "تفويض SSO" ؛
INN - INN للمؤسسة التي نقوم بتهيئة API لها ؛
من - من أي يوم (فترة التفريغ) ؛
حتى - في أي يوم (فترة التفريغ).
وبالتالي (نلقي نظرة على Oauth 2.0 materiel) ، يتم
الحصول على بيانات العبارة على مرحلتين - أولاً نحصل على access_token ، ثم نصل إلى access_token ، نحصل على بيانات هذا البيان . عظيم الخوارزمية واضحة ، نكتب الرمز (معلمات الوصول في قيم الكود للمستخدم $ ، $ pass ، $ refresh_token ، $ inn ، $ accountNumber - في الكود أدناه يتم تغييرها ، لأسباب واضحة).
قم بإنشاء الملفات التالية:
- ملف الإعدادات الأول هو StartSettings.php
- ملف البدء الثاني هو Start.php
- الملف الثالث لنشر / تحليل البيانات إلى / من API هو TinkoffInsertData.php ؛ نحن نستخدم CURL (php).
- تفريغ قاعدة بيانات فارغة حيث يمكنك تحميل بيانات بياناتك: bank.sql ؛ قاعدة بيانات MySQL (نرسل البيانات إلى قاعدة البيانات من خلال PDO).
لذا ، انظر إلى الكود والتعليقات عليه!
ملف الإعدادات - StartSettings.php:
$host = '127.0.0.1'; $db = 'bank'; $user = 'root'; $pass = ''; $charset = 'utf8'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; $pdo = new PDO($dsn, $user, $pass, $opt); $user="IKu0jn98kllkI90kklii";
ملف البدء - Start.php:
session_start(); error_reporting(E_ALL); include 'StartSettings.php'; include 'TinkoffInsertData.php'; TinkoffInsertData($user,$pass,$refresh_token, $inn, $accountNumber, $from_year, $from_month, $from_day, $till_year, $till_month, $till_day, $pdo); $stmt = $pdo->prepare("INSERT INTO `bank`.`dateofwork` (dateofwork) VALUES (NOW())"); $stmt->execute();
ملف لنشر / تحليل البيانات إلى / من API - TinkoffInsertData.php:
function TinkoffInsertData($user,$pass,$refresh_token, $inn, $accountNumber, $from_year, $from_month, $from_day, $till_year, $till_month, $till_day, $pdo){
القراء: آمل أن تساعد هذه المواد في تسييل خدمات الويب الخاصة بك وخدمات عملائك. قد تأتي القوة معك!
رجال الدعم الفني من Tinkoff Bank: آمل أن تقلل هذه المقالة العبء عليك! حظا سعيدا