数週間前、プロジェクトの1つで、CRMをTinkoff Bank APIと統合するという疑問が生じました。 特に、銀行口座の明細書を取得することについてでした。
資産には次のものがありました。
- openapi.tinkoff.ru
- 電話サポートサービス(技術サポート部門の忙しさから、dr死者を救う仕事、dr死者自身の手仕事)。
- Googled文書: 24386_policy.pdf (ロシア語の文字、面白い表現、魔術の回転、不適切、しかしそれにもかかわらず、...)
Googleアカウントの過程で、Tinkoff Bank APIのセットアップは非常に楽しく、簡単ではないというフィードバックも見つかりました(banki.ru
「Tinkoff API-
これにはバカすぎます」に関する記事を参照)。
はい、私はワークショップの他の仲間の時間を節約するために、少しいじくり回さなければなりませんでした、この記事は書かれました。
Tinkoff Bank APIは認証にOauth 2.0を使用していることに注意してください。
なぜopenapi.tinkoff.ruが必要なのですか?
- テスト用(以下を参照)。
- 何が何で、どのように推測するため。 直接の添え木はありません。 私たちは直感のレベルで働いています!...
始めましょう。 「SSO承認」セクションで、「方法/非表示」をクリックし、次に/ secure / token#refresh-token(「更新トークンによるトークンの発行」)をクリックし、パラメータとしてgrant_typeを選択し、refresh_tokenフィールドで(取得できます)ユーザーアカウント)。 「Try it out!」ボタンをクリックしてください。これらのアクションの結果は、access_tokenなど
の重要なものを取得
することです (つまり、openapi.tinkoff.ru
はそれを受け取る可能性を
示します)。
次に、「アカウントと支払い」セクションを見て、/パートナー/会社/ {INN} /抜粋(「明細書の受領」)をクリックします。 取得に必要なパラメーターは、Authorization、INN、accountNumber、from、tillです。
認可-認可はaccess_tokenに過ぎないと推測します。これは、「SSO認可」セクションで受け取ったものです。
INN-APIを構成する組織のINN。
from-開始日(放電期間);
まで-何日(放電期間)。
したがって(Oauth 2.0マテリアルを見る)、
ステートメントデータの受信は2段階で行われます。最初に access_token
を取得し、次に access_token
を取得して、このステートメントのデータを取得します 。 素晴らしい。 アルゴリズムは明確で、コードを記述します($ user、$ pass、$ refresh_token、$ inn、$ accountNumberのコード値のアクセスパラメータ-明らかな理由により、以下のコードで変更されています)。
次のファイルを作成します。
- 最初の設定ファイルはStartSettings.phpです
- 2番目の開始ファイルはStart.phpです
- APIへ/からデータを投稿/解析するための3番目のファイルは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){
読者:この資料が、Webサービスと顧客のサービスの収益化に役立つことを願っています。 力があなたと共に来るように!
Tinkoff Bankの技術サポート担当者:この記事があなたの負担を減らすことを願っています! 頑張って