インストールをお任せしますか?
お客様のサーバーに導入・設定します。簡単な見積もりの後、固定価格でお受けします。
PaypalExpress プラグイン
🌐 言語: 🇻🇳 Tiếng Việt · 🇬🇧 English · 🇯🇵 日本語(現在)
GP247/Shop のストアで PayPal による決済を受け付けます。お客様は PayPal アカウントで注文代金を直接支払えます。速く、安全で、サイトを離れる必要もありません。
概要
| プラグイン | PaypalExpress |
| バージョン | 3.2.3 |
| 開発元 | GP247 |
| 要件 | GP247 Core 3.1+(ストア別設定、シークレットの保存時暗号化、支払いリクエスト)· パッケージ gp247/shop |
プラグインでできること
- 💳 PayPal で決済 — お客様はサイト上でそのまま PayPal アカウントを使って支払えます。
- 🧪 サンドボックスと本番 — スイッチ 1 つで PayPal のテスト環境と本番環境を切り替えられます。
- 🔔 Webhook — PayPal からの通知に応じて注文ステータスが自動で更新されます。
- 🔒 安全 — PayPal の Webhook 署名を検証し、client secret は保存時に暗号化されます。
- 💱 多通貨対応 — GP247/Shop の通貨設定で動作します(その通貨に PayPal が対応しているかだけ確認してください)。
インストール
ご都合のよい方法を選んでください。
管理画面から
- GP247 の管理画面にログインします。
- Extensions / Plugins を開きます。
- PaypalExpress を探して Install をクリックします。
- 画面の案内に従います。
ZIP ファイルから
- 公式の配布元からプラグインの ZIP ファイルをダウンロードします。
- 管理画面で Extensions / Plugins → Import / Upload を開きます。
- ZIP ファイルを選んでアップロードします。
その後、プラグイン管理画面でプラグインを有効化します。
コマンドラインでインストール(CLI、gp247 3.x)
gp247 3.x 以降では、管理画面を開かずに、PaypalExpress を GP247 ライブラリからダウンロードしてコマンドラインでそのままインストールできます。サイトのルートフォルダーでターミナルを開き、次を実行します:
# 1) ウェブサイトごとに 1 回だけ:GP247 ライブラリに接続するための API License(無料)を登録
php artisan gp247:ext-register-license
# 2) ライブラリからプラグインをダウンロードしてインストール
php artisan gp247:ext-install --type=plugin --key=PaypalExpress
- ステップ 1 の前に、
.envのAPP_URLがサイトの実際のドメインになっていること(http://localhostのままでないこと)を確認してください。ライセンスはこのドメインに紐付けられます。 - インストールが終わると、プラグインは有効化済みになり、キャッシュも自動で更新されるため、管理画面での追加操作は不要です。
- コマンドは
gp247.jsonに宣言された条件(core のバージョン、composer パッケージ、依存プラグイン)を自動で確認します。不足があればコマンドは停止し、何が足りないかを明確に表示します。 - このプラグインには
gp247/shopパッケージがインストールされている必要があります。不足している場合、コマンドは停止して通知します。 app/GP247/Plugins/PaypalExpressフォルダーがすでにサーバー上にある場合(手動でコピーした、またはインストーラーに同梱されていた場合)、コマンドは再ダウンロードせずにその場でインストールします。- プラグインがすでにインストールされている場合、コマンドは実行を拒否します。新しいバージョンに上げるには
php artisan gp247:ext-update --type=plugin --key=PaypalExpressを実行してください。 - コマンドの末尾に
--jsonを付けると、機械で読み取れる形式で結果を受け取れます(スクリプト/CI 用)。 - 下記の設定はインストール後も必要です。プラグインは有効になりますが、管理画面でサンドボックスモード、Client ID / Secret、Webhook ID を入力して初めて決済を受け付けられます。
- 詳細:プラグイン・テンプレートのインストールガイド · コマンドリファレンス。
設定
バージョン 3.1 以降、すべての設定は管理画面で行います。.env を編集する必要はありません。
Admin → Plugins → Paypal Express を開き、次の項目を入力します(ストアごと):
| 項目 | 入力内容 |
|---|---|
| サンドボックスモード | オン = テスト環境 · オフ = 本番(live) |
| Client ID / Secret(サンドボックス) | テスト環境の認証情報 |
| Client ID / Secret(本番) | 本番環境の認証情報 |
| Webhook ID | PayPal Developer アカウントで取得した Webhook ID(下記の Webhook を参照) |
知っておきたいこと:
- 🔒 Client secret は保存時に暗号化されます(
enc:v2:…)。平文で保存されることはありません。 - 🏬 ストアごと — 複数ストアのサイトでは、サイトオーナーがストアごとに別の PayPal アカウントを設定します。マーケットプレイスでは、マーケットプレイスのオーナーが 1 つのアカウントを設定し、各ストアがそれを引き継ぎます。この画面を開けるのはサイトオーナー/マーケットプレイスのオーナーだけです。
- 🔗 リダイレクト URL は自動 — プラグインがストアのドメインから自動生成するため、設定する項目はありません。
.envを使う旧バージョンからアップグレードする場合は? 以前のバージョンでは認証情報を.envに保存していました。3.1 にアップグレードすると、プラグインはそれらを一度だけ自動でデータベースに取り込み(シークレットは暗号化)、以降はデータベースのみを読み込みます。実行時に.envは使われなくなります。.envファイル自体は変更されず、取り込み後は削除しても構いません。サイトで
php artisan config:cacheを実行している場合、自動取り込みはスキップされます。管理画面で値を入力し直してください。
旧 .env 変数(上記の一度限りの移行にのみ使用):
PAYPAL_SANDBOX=true
PAYPAL_CLIENT_ID_SANDBOX=your_sandbox_client_id
PAYPAL_CLIENT_SECRET_SANDBOX=your_sandbox_client_secret
PAYPAL_CLIENT_ID_LIVE=your_live_client_id
PAYPAL_CLIENT_SECRET_LIVE=your_live_client_secret
PAYPAL_WEBHOOK_ID=your_webhook_id
通貨対応
GP247 は多くの通貨に対応していますが、PayPal が受け付ける通貨は一部だけです:
- まず PayPal Supported Currencies の一覧で、お使いの通貨を確認してください。
- 対応していない通貨でお客様が支払おうとすると、エラーメッセージが表示されます。
- 最も安全な選択:USD、EUR、GBP、CAD、AUD。
決済の流れ
- お客様が商品をカートに入れて決済に進みます。
- GP247 が注文を作成し、お客様を PayPal に移動させます。
- お客様が PayPal にログインして確認します。
- PayPal がお客様をサイトに戻します。
- GP247 が取引を検証し、注文ステータスを更新します。
- お客様に決済完了の確認が表示されます。
支払いリンク(支払いリクエスト)
3.2.0 以降、支払いリクエスト画面を備えた gp247/shop では、PayPal でカート以外の代金(注文の残額、売掛金、手付金など)も回収できます:
- 管理者が回収のリクエストを作成し、支払いリンクを作成をクリックして、リンクをお客様に送ります。
- お客様はリンクを開き、PayPal を選んで PayPal 上で確認します。サイトに戻った時点で代金が回収され、リクエストに一度だけ記録されます。
- 返金:回収済みの入金行で ゲートウェイ経由で返金 をクリックします(出金の権限が必要)。PayPal 側で行った返金も、Webhook を通じてリクエストに記録されます。
PayPal がリンクのページに表示されるのは、リクエストを所有するストアに Client ID / Secret が設定されている場合のみです。お客様がサイトに戻った直後にブラウザを閉じても入金が記録されるよう、Webhook イベント PAYMENT.CAPTURE.COMPLETED も登録しておくことをおすすめします。
Webhook
プラグインは次の URL で PayPal からの通知を受け取ります:
https://your-domain.com/plugin/paypal-express/webhook
この URL を PayPal Developer アカウントに登録し、管理画面のプラグイン設定画面に Webhook ID を貼り付けてください(ストアごと)。
Changelog
Version 3.2.3
- PayPal 決済後(戻り・キャプチャ・キャンセル・Webhook)の注文完了/キャンセルは、サイトが
app/GP247/Shop/Controllers/でShopCartControllerを上書きしている場合、そのクラスを通して処理されるようになりました。独自の注文完了処理がスキップされなくなります。gp247_namespace()を備えた GP247 Core(3.1 以降)が必要です。
Version 3.2.2
- プラグイン画面の日本語(日本語)翻訳を追加しました。
Version 3.2.1
- 設定画面に 使用前チェック 枠を追加しました。お客様が PayPal で支払えない原因(チェックアウトで決済ステップが無効、ストアで PayPal が無効、使用中のモードの Client ID / Client Secret が未入力、有効な通貨に PayPal が対応していない、Webhook ID が未入力、PayPal から Webhook URL に到達できない)と、サンドボックスモード中の注意を、それぞれの修正箇所とあわせて表示します。この枠を備えた GP247 Core が必要です。古い core では従来どおりの画面が表示されます。
Version 3.2.0
gp247/shopの 支払いリクエスト(支払いリンク/pay/…)について、リクエストを所有するストアの PayPal アカウントで回収と返金ができるようになりました。これらのためにイベントPAYMENT.CAPTURE.COMPLETEDも受け付けます。注文の決済フローは変わりません。この機能がない shop では、プラグインは 3.1.3 と同じように動作します。GP247 Core 3.1+ が必要です。
Version 3.1.3
- 設定画面:項目をモード/サンドボックス/本番/Webhook/注文ステータスのブロックにまとめ、有効な環境に「使用中」ラベルを表示するようにしました(設定ブロックに対応した GP247 Core が必要。古い core ではフラットな一覧で表示されます)。各項目に短い説明(Client ID/Secret と Webhook ID の取得場所、登録するイベント、各ステータスの用途)を付け、どのサーバーでも項目の順序が固定されるようにしました(以前はデータベースに依存していました)。
Version 3.1.2
- 不具合修正:3.1.x で PayPal の Webhook がプラグインに一度も届いていなかった問題 — エンドポイントがストアフロントの CSRF/メンテナンス層の背後にあったため、PayPal は常に 419 を受け取り、返金が注文に記録されていませんでした。Webhook は専用のエンドポイントになり、レート制限も付きました。URL は変わらないため、登録済みの Webhook ID はそのまま使えます。PayPal は失敗したイベントを数日間自動で再送します。それより古い返金は PayPal ダッシュボードで手動照合が必要です。
- 返金イベントで、設定済みの「返金時の注文ステータス」が正しく設定されるようになりました(以前はキーの誤りでステータスが空になっていました)。また、shop 標準のステータス変更フローを通るため、注文履歴・イベント・在庫の整合性が保たれます。キャンセル済みの注文への返金は金額のみ記録されます。
- PayPal 側で決済が完了していない場合に、キャプチャページが空白で表示されなくなりました。支払い済みまたはクローズ済みの注文が、戻りリンク/キャンセルリンクから再度キャプチャ/キャンセルされることはありません。
- PayPal に送る金額は、セッションではなく保存済みの注文から取得するようになりました。
- ログにお客様のセッションや Webhook の本文全体が含まれなくなりました。
- プラグインをアンインストールすると、すべてのストアの設定(暗号化済みのシークレットを含む)が削除されます。
Version 3.1
- PayPal の接続情報(サンドボックス+本番の client id/secret、webhook id、サンドボックスモード)を
.envから管理画面の設定画面に移し、ストアごとに設定できるようにしました。client secret は保存時に暗号化されます(enc:v2:…)。storeScope: store— root 管理者がストアごとに別の PayPal アカウントを設定できます。プラグインはstore_scoped_segmentsを登録しないため、この画面を開けるのはサイトオーナー/マーケットプレイスのオーナーだけです(ベンダーは決して開けません)。 - 実行時の設定の唯一の情報源はデータベースになり、
.envは読み込まれなくなりました。.envが残っている旧サイトでは、アップグレード時に一度だけ自動で取り込まれ(client secret は暗号化)、以降はデータベースのみが使われます。return_url/cancel_urlは手動で設定する必要がなくなり、ルートとストアのドメインから自動生成されます。 - GP247 Core 3.0.3+ が必要です。
Version 2.0
- 管理画面の設定画面を TailAdmin/Livewire で作り直しました(GP247 Core 2.0 が必要)。成功イベントと返金イベントの注文/支払いステータスはドロップダウンで選べるようになりました。以前と同じ
admin_configの行に保存されるため、設定済みの値はアップグレード後もそのまま保持されます。 - 以前からの不具合を修正:管理画面サイドバーの Payment method グループにある「Paypal Express」項目が、インストール時に重複することがあり、アンインストール時に削除されなかった問題(メニュー URI の誤りが原因)。
Version 1.0.0
- 初回リリース。
GP247 が開発 · 各ライセンスに基づいて配布されています。
Ratings & reviews
Please sign in to write a review.
ログインNo reviews yet. Be the first to review this product.