WordPress × Simple Membership × PayPay を連携して有料会員サイトを作る方法【PHP実装あり】
🔰 はじめに
WordPress の会員管理プラグイン「Simple Membership」と、日本国内で普及している QR コード決済「PayPay」を連携し、
PayPay決済後に 自動で有料会員登録を行う仕組みを構築します。
- ✅ 月額制・回数制限なし(都度払い方式)
- ✅ 会員登録を自動化(メール認証リンク付き)
- ✅ Webhook対応で決済後の処理を完全自動化
🧩 使用技術・前提条件
- WordPress(任意テーマ)
- Simple Membership プラグイン
- PayPay for Developers(APIキー取得済み)
- Composer(PayPay SDK導入用)
💳 1. PayPay決済フォームをショートコードで実装
add_shortcode('paypay_payment', 'paypay_payment_shortcode');
function paypay_payment_shortcode($atts) {
ob_start();
?>
<form method="POST">
<label>メールアドレス:</label><br>
<input type="email" name="email" required><br><br>
<input type="hidden" name="paypay_payment" value="1">
<button type="submit" name="amount" value="1000">1ヶ月プラン</button>
<button type="submit" name="amount" value="3000">3ヶ月プラン</button>
</form>
<?php
return ob_get_clean();
}
📤 2. フォーム送信時にQRコードを生成
add_action('template_redirect', 'handle_paypay_payment_form');
function handle_paypay_payment_form() {
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['paypay_payment'])) {
$email = sanitize_email($_POST['email']);
$amount = (int) $_POST['amount'];
$merchantPaymentId = uniqid("pp_{$amount}_");
require_once get_stylesheet_directory() . '/shortcodes/vendor/autoload.php';
$client = new \PayPay\OpenPaymentAPI\Client([
'API_KEY' => 'API_KEY',
'API_SECRET' => 'API_SECRET',
'MERCHANT_ID' => 'MERCHANT_ID'
], false); // 本番環境
$payload = new \PayPay\OpenPaymentAPI\Models\CreateQrCodePayload();
$payload->setMerchantPaymentId($merchantPaymentId);
$payload->setRequestedAt(new DateTime());
$payload->setCodeType("ORDER_QR");
$payload->setAmount(["amount" => $amount, "currency" => "JPY"]);
$payload->setRedirectType('WEB_LINK');
$payload->setRedirectUrl(home_url('/thank-you/'));
$result = $client->code->createQRCode($payload);
if ($result['resultInfo']['code'] === 'SUCCESS') {
$url = $result['data']['url'];
// メールアドレスと紐づけてローカル保存
$mapFile = $_SERVER['DOCUMENT_ROOT'] . '/paypay_payment_logs.json';
$map = file_exists($mapFile) ? json_decode(file_get_contents($mapFile), true) : [];
$map[$merchantPaymentId] = ['email' => $email, 'amount' => $amount];
file_put_contents($mapFile, json_encode($map, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
wp_redirect($url);
exit;
}
}
}
📩 3. PayPay Webhookで支払い完了を受信・会員登録
Webhook用ファイル(例:/paypay-webhook.php)を用意します。
✅ まとめ
• PayPayとSimple Membershipを連携することで、国内ユーザー向けの柔軟な会員サイト構築が可能です。
• QRコード払い+メール認証によるアクティベーション方式は、定期課金を使わず安全に導入できます。
• PayPay決済の導入により、会員数の増加を見込めます。
• 必要に応じて 返金処理、アカウント状態変更、通知メール強化も可能です。
📌 おまけ:今後の拡張案
• merchant_order_id による重複チェック強化
• Webhook署名検証(セキュリティ強化)
• 会員の延長更新(現在は新規登録のみ)
「Simple Membership + PayPayで会員サイト構築したい」という方、気軽にコメントください。