
LINE PayのAPIをPHPで実装したいんだけど、やり方が分からないんだよね。。
こんな悩みを解決します。
- 本記事の内容
- LINE Payの実装方法
- 具体的なソースコード
- 本記事の執筆者
プロフィール


- 元エンジニア(歴7年)、資格保有数約20個(IT系以外も含む)
- 物販月利50万円⇒脱サラ
- 物販、システム開発、アフィリエイト、プログラミング、投資をやっています。
- 物販は彼女と楽しみながらやっています!
今回は、LINE Pay APIをPHPで実装してみます。



すぐ読み終わるので、是非最後まで読んでみてください!
よく読まれている記事はこちら!
目次
前提
今回は「SandBox環境」を利用します。
本番環境ではないので注意してください。
SandBox生成


こちらにアクセスしてSandBoxを生成します。
生成すると、メールアドレス宛にメールが送信されます。
LINE PayのMyPageにログイン


こちらにアクセスしてログインします。
連動キー管理


ログイン後、「決済連動管理」⇒「連動キー管理」でパスワード(ログイン時のパスワード)を入力し、確認ボタンを押下します。
連動キー管理参照


「 Channel ID 」「 Channel Secret Key 」をメモしておきます。
ソースコード
<?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で実装してみました。
認証通るまでが結構大変でした。。
ではまた!
- 自由な生き方がしたいなら!
自由な生き方をするためには、稼ぐスキルを身に付けなければなりません。
当サイト「リバトレ」では稼ぐスキルに関する情報を日々発信しているので、興味のあるものから見て頂ければ嬉しいです。
稼ぐスキルを身に付けよう!!
コメント