【開発者ブログ】PHP × Stripe API(php-sdk)でクレジットカード決済を実装してみる

こんにちは。開発部の久保見です。

前回、PayPay API の実装を試してみたところ、それなりに収穫(?)があったので、今回は別の決済手段として Stripe API を試してみます。

Stripe は「実装難易度が低い」と言われることも多く、APIベースで決済を組み込む際の選択肢としてよく挙がるサービスです。

今回は PHP(stripe-php SDK)を使ってクレジットカード決済を実装してみます。

前回の記事はこちら

1. Stripe に登録する

まずは Stripe に登録します。

https://stripe.com

Stripe には sandbox(テスト)モードが用意されているため、そちらで 「APIキー(認証キー)」を確認することができます。

2. SDK をインストール

PayPay API と同様に、SDKのインストールは必須ではありませんが、導入しておいた方が実装はかなり楽になります。

composer require stripe/stripe-php

3. 実装する

今回は Stripe Checkout(カード決済) を使用します。

Stripe Checkout は、決済画面をStripe側が提供してくれるため、比較的シンプルにカード決済を実装できます。

以下がサンプルコードです。

require __DIR__ . '/vendor/autoload.php';

// ----- 決済情報 -----
$item  = ’ハンバーグ定食’;
$price = 980;

// ----- 認証キー -----
\Stripe\Stripe::setApiKey('sk_test_XXXXXXXXXX');

// ----- 決済データ作成 -----

$orderId = 1234; //テスト

$session = \Stripe\Checkout\Session::create([
	'payment_method_types' => ['card'],
	'line_items' => [[
		'price_data' => [
			'currency' => 'jpy',
			'product_data' => [
				'name' => $item,
			],
			'unit_amount' => $price,
		],
		'quantity' => 1,
	]],
	'mode' => 'payment',

	//※metadataは自由項目
	
	'metadata' => [
		'order_id' => (string)$orderId,   // 自社注文ID
		'user_id'  => (string)$userId,    // ユーザーID
		'item_name'=> (string)$item,
	],

	'success_url' => 'https://www.exsample.com/Complete.php',
	'cancel_url' => 'https://www.exsample.com/Cancel.php',
]);
header("Location: " . $session->url);
exit;

実際の画面

アプリメンバーズメニュー

決済画面

補足

Stripe API には、今回使用している内容以外にもさまざまなオプションがあります。

例えば

・商品画像の設定
・税率設定
・サブスクリプション
・顧客管理

など、用途に応じて細かく設定することが可能です。

ただし、

「指定した金額の決済を行う」

というシンプルな用途であれば、今回の実装でも十分対応できます。

また、Stripe の metadata は非常に便利です。任意のキーを自由に設定でき、そのまま決済データに紐づけて取得できます。

注文IDやユーザーIDなどを持たせておくと、自社システムとの連携がしやすくなります。

すでに Stripe を利用している企業様の場合、アプリや LINEミニアプリからそのまま決済を利用したいケースもあると思います。

そのため、こうした決済方法を サービスの選択肢として用意しておくのは一つの方法かもしれません。

もし

「こんな決済方法があったら良い」
「こういう決済を組み込みたい」

といったご要望がありましたら、ぜひお気軽にお問い合わせください。

▼合わせて読みたい

お問合せ&資料請求