EnglishEN EspañolES FrançaisFR DeutschDE ItalianoIT PortuguêsPT 中文ZH 日本語JA 한국어KO РусскийRU NederlandsNL
← Back to all articles

カスタムPHPウェブサイトにStripe Checkoutを追加する方法(プラグイン不要)

Stripe は利用できる中で最もクリーンな決済 API であり、それを PHP に直接組み込めば、月額の SaaS 費用も、WooCommerce の肥大も、Shopify のトランザクション手数料もありません。以下は、BuiltToWinWeb の実際のクライアントストアで稼働している、まさにその実装です。純粋な PHP、公式の Stripe SDK、安全な webhook、そして自動化されたメール確認です。チェックアウトセッション、リダイレクト、webhook 検証、注文処理といった各部品がどう噛み合うかが分かり、プラットフォームに分け前を渡すことなく実際の決済を受けられます。ここにあるのはすべて本番コードであり、使い捨てのデモではありません。

ネイティブPHP + Stripeがあらゆるページビルダーを上回る理由

ShopifyはStripe自身の手数料に加えて取引ごとに0.5〜2%を請求します。WooCommerceは14以上のプラグイン依存関係を追加し、チェックアウトページのLCPが3.8秒に遅くなります。カスタムPHP統合は0.6秒以下でロードするチェックアウトを実現します。

  • プラットフォーム取引手数料ゼロ – Stripeの2.9% + 30¢のみ
  • チェックアウトページLighthouseスコア:98対Shopifyの典型的な61
  • 完全なWebhookコントロール – カスタム履行、在庫、メール
  • 電子商取引プラットフォームの定期購読コストなし
  • コードを所有し、どこでもホスト、自由に移行

ステップ1 — Stripe PHP SDKをインストール

Composerが最もクリーンなアプローチです。ホストがComposerをサポートしていない場合は、SDK ZIPをダウンロードしてプロジェクトルートに配置します。

composer require stripe/stripe-php

チェックアウトスクリプトの先頭でロードします:

require_once __DIR__ . '/vendor/autoload.php';
\Stripe\Stripe::setApiKey(getenv('STRIPE_SECRET_KEY'));

ステップ2 — チェックアウトセッションを作成(サーバー側)

ブラウザに秘密鍵を置かないでください。フロントエンドがPOSTするサーバー側エンドポイントを作成します。

<?php
require_once __DIR__ . '/vendor/autoload.php';
$session = \Stripe\Checkout\Session::create(['payment_method_types'=>['card'],'line_items'=>[['price_data'=>['currency'=>'usd','unit_amount'=>300000,'product_data'=>['name'=>'Business Pro Website']],'quantity'=>1]],'mode'=>'payment','success_url'=>'https://yoursite.com/success?session_id={CHECKOUT_SESSION_ID}','cancel_url'=>'https://yoursite.com/pricing']);
header('Content-Type: application/json');
echo json_encode(['url'=>$session->url]);

ステップ3 — フロントエンドからユーザーをリダイレクト

価格ページのボタンでのシンプルなfetch呼び出し:

document.getElementById('buy-btn').addEventListener('click', async () => {
    const res = await fetch('/create-checkout-session.php', {method:'POST'});
    const data = await res.json();
    window.location.href = data.url;
});

ステップ4 — Webhookを処理(注文履行)

Stripeは支払いが成功するとWebhookエンドポイントにPOSTを送信します。ここでメール送信、在庫更新、注文記録を行います。

<?php
$payload = file_get_contents('php://input');
$event = \Stripe\Webhook::constructEvent($payload, $_SERVER['HTTP_STRIPE_SIGNATURE'], getenv('STRIPE_WEBHOOK_SECRET'));
if ($event->type === 'checkout.session.completed') { fulfill_order($event->data->object); }
http_response_code(200);

StripeダッシュボードでWebhook URLを登録してください:開発者 → Webhooks。

ステップ5 — PHPMailerで確認メールを送信

`fulfill_order()`関数内で、セッションから顧客のメールアドレスを取得しPHPMailerを実行します。

function fulfill_order($session) {
    $email = $session->customer_details->email;
    $mail = new PHPMailer\PHPMailer\PHPMailer(true);
    $mail->isSMTP(); $mail->Host = 'smtp.yourhost.com';
    $mail->setFrom('[email protected]', 'あなたのビジネス');
    $mail->addAddress($email);
    $mail->Subject = 'お支払い確認 – ありがとうございます!';
    $mail->Body = 'ご注文が確認されました。';
    $mail->send();
}

プラットフォーム比較 — カスタムPHP・Shopify・WooCommerce

指標 カスタムPHP + Stripe Shopify WooCommerce
チェックアウトLCP 0.6秒 1.9秒 2.8秒
Lighthouseスコア 98 61 55
プラットフォーム手数料/取引 0% 0.5〜2% 0%*
月額プラットフォームコスト $0 $39〜$399 $0*
プラグイン依存 0 n/a 14+
コード所有権 100% 0% 〜60%

実際のビジネスへの影響

月$50,000の売上があるストアでは、Stripeの2.9% + 30¢は避けられません。しかしShopifyの追加プラットフォーム料金0.5〜2%は月$250〜$1,000の余分なコストになります。

  • Shopify Advanced ($399/月) + $50kの0.5% = $649/月のプラットフォームコスト
  • カスタムPHP + Stripe = $0/月のプラットフォームコスト
  • $8,000のカスタムビルドの損益分岐点:9ヶ月以内
  • チェックアウトページが3倍速く読み込まれる = カート離脱率が低下

計算は単純:月$15,000以上処理するなら、カスタムPHPストアは1年以内に元が取れます。

セキュリティチェックリスト

  • キーは環境変数に保存 – PHPファイルにハードコードしない
  • 常に`constructEvent()`でStripe Webhookシグネチャを検証
  • HTTPS必須 – Stripeが要求します
  • 冪等性:処理前に注文がすでに存在するか確認
  • `/create-checkout-session.php`にレート制限(IPごとに10リクエスト/時間)

よくある質問

PHPでStripeを使うにはComposerが必要ですか?

Composerは推奨されますが必須ではありません。Stripe PHP SDKをZIPファイルとしてダウンロードし、require_onceで手動で含めることができます。

Shopifyのようなプラットフォームなしで支払いを処理するのは安全ですか?

はい。StripeはPCI-DSSレベル1認定です。サーバーは生のカード番号を扱いません – StripeのJSがクライアント側でトークン化します。

実際のカードに課金せずにStripeをテストするには?

プレフィックスsk_test_のStripeテストモードを使用してください。テストカード4242 4242 4242 4242を任意の有効期限とCVCで使用できます。

このアプローチでサブスクリプションを追加できますか?

はい。Checkoutセッションモードを"payment"から"subscription"に変更し、price_dataの代わりに定期価格IDを渡します。

カスタムStripeストアを構築しましょうか?

BuiltToWinWebはネイティブStripe統合、Lighthouse 98+スコア、月額プラットフォーム料金ゼロのカスタムPHP Eコマースストアを構築します。

ストアは通常3〜4週間で納品されます。24時間以内の返信を保証。

無料見積もりを取得

同一のHostinger VPSホスティングでの管理テストのベンチマークデータ。