0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel Guzzel HTTPクライアントを用いてAPI通信を行う

Last updated at Posted at 2022-01-03

はじめに

どこかの外部Webサービスのデータを取得する為に外部のサーバーにアクセスしたい!!
そんな時に使えるのがこのGuzzel HTTPクライアントです。

業務でGMOペイメントの決済と送金機能のレビューをする際に使用されていたので、ここで備忘録として残そうかと思い記載しました。
こちらは備忘録として書いている為、そんなに分かりやすく書いてなくてすみません・・・

このブログの解説は分かりやすかったです!
https://blog.capilano-fw.com/?p=6033

目次

  1. Guzzelインストール
  2. 使い方
  3. 具体例

Guzzelインストール

Guzzel HTTPというライブラリで、API通信を行いますので、Laravelにインストールします。
プロジェクトのディレクトリ内で以下のコマンドを入力します。

$ composer require guzzlehttp/guzzle

使い方

今回はpostメソッドを例に出します。
【使い方】
use Illuminate\Support\Facades\Http;でHTTPファサードをuse宣言します。
・postでhttp通信する場合、Http::post('http通信を行うURLを入力', [必要なデータがあればオブジェクトに入れる]);を記述する
$response->body()
htmlのbodyタグの中身(ブラウザの表示部分のbody)をstringで取得する。
$response->json()
$response->body()の値がjson形式の場合、配列でデータを取得する。

// 何らかのController.phpファイル


// 下記追記 (config/app.phpファイルのaliasesに登録してあるHTTPファサードを使用)
use Illuminate\Support\Facades\Http;

public function edit()
{
    $response = Http::post('http通信のURL', 
    [
        'key' => 'value',
    ]);

    dd($response->body());

    dd($response->json());
}

具体例

決済した後にキャンセルがあった場合、銀行口座が必要になると思います。
今回の場合はGMOペイメントに登録されているユーザーの銀行口座情報を取得する例です。

// BankAccountController.php

// 下記追記
use Illuminate\Support\Facades\Http;

public function getBankAccount($bank_id)
{
    // GMOペイメントサービス内にある、ユーザーの銀行口座を取得する為のURLを入力
    $response = Http::post('https://〜途中省略〜AccountSearch.json'), 
                // ユーザーの銀行口座を取得する為に必要な情報を入力する
                [
            // GMOのダッシュボードに表示されているショップID
            'Shop_ID' => 'test00000000',
                         // GMOのダッシュボードに表示されているショップパスワード
            'Shop_Pass' => 'testpass',
                         ユーザーを特定する為のID
            'Bank_ID' => $bank_id,
        ]);

       dd($response->body());

       dd($response->json());

       dd($response->json()['Bank_Name']);
}

$response->body()で取得したデータ

{
 "Bank_ID":"00000000-0000test0test",
 "Delete_Flag":"0",
 "Bank_Name":"○ ○ 銀行",
 "Bank_Code":"0001",
 "Branch_Name":"○ ○ 支店",
 "Branch_Code":"123",
 "Account_Type":"1",
 "Account_Number":"1234567",
 "Account_Name":"TEST TEST",
 "Free":"",
 "Branch_Code_Jpbank":"",
 "Account_Number_Jpbank":""
}
$response->json()で取得したデータ

array:12 [▼
  "Bank_ID" => "00000000-0000test0test"
  "Delete_Flag" => "0"
  "Bank_Name" => "○ ○ 銀行"
  "Bank_Code" => "0001"
  "Branch_Name" => "○ ○ 支店"
  "Branch_Code" => "123"
  "Account_Type" => "1"
  "Account_Number" => "1234567"
  "Account_Name" => "TEST TEST"
  "Free" => ""
  "Branch_Code_Jpbank" => ""
  "Account_Number_Jpbank" => ""
]
$response->json()['Bank_Name'])で取得したデータ

"○ ○ 銀行"

こんな感じで、GMOペイメントのDBからAPIを用いてデータを取得できました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?