【超簡単】LINE Pay APIをPHPで実装する方法を解説!

【超簡単】LINE Pay APIをPHPで実装する方法を解説!
悩んでいる人

LINE PayのAPIをPHPで実装したいんだけど、やり方が分からないんだよね。。

こんな疑問にお答えします。

  • 本記事の内容
  • 本記事の信頼性
プロフィール
  • フリーランスエンジニア(保有資格約20個)
  • ブログ・アフィリエイト歴5年
  • ブランドせどりで月利50万円⇨脱サラ
  • Twitterフォロワー約2,000人
いずみん

本記事を書いている僕はエンジニア歴7年です。
PHPの業務歴は2年半なので、かなり有益な情報を発信できるかと思います。

結論、LINE Pay APIをPHPで実装するのは非常に簡単です。

本記事を読んでいただければ、LINE Pay APIをPHPで実装する方法がしっかりと理解できるので早速見ていきましょう!

いずみん

すぐ読み終わるので、是非最後まで読んでみてください!

目次

【前提】環境

今回は、SandBox環境(テスト環境)を利用します。

いずみん

RequestAPIの実行までを実装していきます。

LINE Pay APIをPHPで実装するための事前準備

LINE Pay APIをPHPで実装するための事前準備を解説します。

STEP
SandBox生成

こちらにアクセスし、SandBoxを生成します。

生成すると、メールアドレス宛にメールが送信されます。

STEP
LINE PayのMyPageにログイン

こちらにアクセスしてログインします。

ログイン情報は先ほどのメールに記載されています。

STEP
連動キー管理

ログイン後、「決済連動管理」⇒「連動キー管理」でパスワード(ログイン時のパスワード)を入力し、確認をクリックします。

STEP
連動キー管理参照

Channel IDChannel Secret Keyをメモしておきます。

LINE Pay APIをPHPで実装する

LINE Pay APIをPHPで実装します。

<?php
    // チャネルID(連動キー管理) ※環境毎に変えること
    $channel_id = 'あなたのチャネルID';
    
    // チャネルシークレットキー(連動キー管理) ※環境毎に変えること
    $channel_secret_key = 'あなたのシークレットキー';

    // LINE URL ※下記どちらでも可能
    $line_url = 'https://sandbox-api-pay.line.me';
    // $line_url = 'https://api-pay.line.me';

    // パス
    $path = '/v3/payments/request';
    
    // ノンス
    $nonce = gen_uuid();

    // ボディ 
    $body = json_encode(array(
        "amount" => 1,
        "currency" => "JPY",
        "orderId" => "testOrderId",
        "packages" => array(array(
            "id" => "testPackages1",
            'name'   => "packages",
            "amount" => 1,
            "products" => array(array(
                "id" => "testProducts1",
                "name" => "products",
                "quantity" => 1,
                "price" => 1
            ))
        )),
        "redirectUrls" => array(
            "confirmUrl" => "https://myPage",
            "cancelUrl" => "https://myPage"
        )
    ));
    
    echo $body;
    
    // シグネチャ
    $signature = base64_encode(hash_hmac('sha256', $channel_secret_key . $path . $body . $nonce, $channel_secret_key, true));
    
    // ヘッダ情報
    $header = array(
        'Content-Type:'               . 'application/json',
        'X-LINE-ChannelId:'           . $channel_id,
        'X-LINE-Authorization-Nonce:' . $nonce,
        'X-LINE-Authorization:'       . $signature
    );
    
    /***********************************************************
     * API実行
     ***********************************************************/
    $curl = curl_init();
    
    curl_setopt($curl, CURLOPT_URL,            $line_url . $path);
    curl_setopt($curl, CURLOPT_HTTPHEADER,     $header);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_POST,           true);
    curl_setopt($curl, CURLOPT_POSTFIELDS,     $body);

    $result = curl_exec($curl);

    curl_close($curl);
    
    echo $result;

    /**
     * UUIDを生成する
     */
    function gen_uuid()
    {
        return sprintf(
            '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
            mt_rand(0, 0xffff),
            mt_rand(0, 0xffff),
            mt_rand(0, 0xffff),
            mt_rand(0, 0x0fff) | 0x4000,
            mt_rand(0, 0x3fff) | 0x8000,
            mt_rand(0, 0xffff),
            mt_rand(0, 0xffff),
            mt_rand(0, 0xffff)
        );
    }
?>

上記を実行します。

{
    "returnCode": "0000",
    "returnMessage": "Success.",
    "info": {
        "paymentUrl": {
            "web": "https://sandbox-web-pay.line.me/web/payment/wait?transactionReserveId=hoge...",
            "app": "linesandbox://pay/payment/hoge..."
        },
        "transactionId": 2020122500646238200,
        "paymentAccessToken": "911163781279"
    }
}

↑のようなJSONが返却されればOKです。

まとめ | LINE Pay APIをPHPで実装する方法

今回は、LINE Pay APIをPHPで実装する方法について解説しました。

以下が本記事のまとめになります。

まとめ
  • LINE Pay APIをPHPで実装する際はSandBox環境を利用する。
  • LINE Pay APIをPHPで実装するには連動キーが必要。

この記事があなたのお役に立てば幸いです。

サイト内には、他にも初心者向けの記事を多く投稿していますので良ければ参考にしてみてください。

最後までお読みいただきありがとうございました!

【超簡単】LINE Pay APIをPHPで実装する方法を解説!

この記事が気に入ったら
フォローしてね!

シェアしてね!
  • URLをコピーしました!
目次