=== JPYC Pay for WooCommerce ===
Contributors: mameta
Tags: jpyc, payment, woocommerce
Requires at least: 6.5
Requires PHP: 8.1
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

JPYC Payの決済画面を使い、確認済みの支払いをWooCommerceの注文へ反映します。

== Description ==

JPYC Payの外部決済画面へ移動し、購入者がウォレットで署名して支払います。
受取ウォレットと受付チェーンは加盟店がPayで設定します。成功が確認されるとショップへ戻ります。

* WooCommerceの通常の購入画面とCheckoutブロックに対応
* HPOS対応。注文APIを通じて注文・在庫を更新
* Webhook署名、サーバー照合、注文・金額・モードの一致を検証
* 同時実行ロックと冪等キーで同じ注文の重複処理を防止
* Action Schedulerによる確認漏れの再試行
* 店舗URLの承認による自動接続。店舗専用のAPIキー・Webhookを自動設定
* テストモード（送金なし）と本番モード
* Payで署名を完了した返金をWooCommerceへ反映（商品の在庫は自動で戻しません）

対応通貨はJPYです。継続課金・定期購入・複数通貨には対応していません。
ショップにはHTTPSが必要です。WordPress.comなど、外部プラグインのインストールが制限される環境では契約内容を確認してください。

== Installation ==

1. https://pay.jpyc-service.com/integrations/woocommerce からZIPを取得します。
2. WordPressの「プラグイン → 新規プラグインを追加 → プラグインのアップロード」でZIPを選び、有効化します。
3. 「WooCommerce → 設定 → 決済 → JPYC Pay」を開きます。
4. 「JPYC Payに接続する」からPayへ進み、加盟店の管理ウォレットでログインします。
5. 店舗URLと受取ウォレットを確認して承認します。WordPressに戻るとテスト・本番の接続キーとWebhookが自動で設定されます。
6. Payの設定で受取チェーンを確認します。WooCommerceで「JPYC Payを購入画面に表示する」とテストモードを有効にして保存し、テスト商品を購入して注文・在庫の連携を確認します。
7. テストモードを外し、少額のJPYCでウォレット署名・送金・注文反映を確認してください。

手動設定も利用できます。Payで戻り先ドメイン、APIキー、Webhookを登録して設定欄に貼り付けます。店舗単位のアクセス制限は自動接続のキーに適用されます。

== External services ==

このプラグインはJPYC Pay API（https://pay.jpyc-service.com）を利用します。
管理者が開発検証用サービスを選択した場合は https://stg-pay.jpyc-service.com に接続します。
自動接続では店舗URL・通知先URL・接続確認情報をPayへ送信します。加盟店がPay画面で承認した後、WordPressサーバーが接続コードを交換し、店舗専用のAPIキーとWebhookシークレットを受け取ります。PayはこのWordPressで接続操作が開始されたこともサーバー間で確認します。
注文作成時に注文金額、注文番号、ランダムな照合用ID、ショップ名、購入者が戻るURLを送信します。
戻り先URLにはWooCommerceの注文を確認するための注文キーが含まれます。
購入者の氏名、メールアドレス、配送先はPayの決済metadataには送信しません。
APIキーはWordPressのサーバー内に保存し、認証のためPayへ送ります。ブラウザ側のコードには出しません。
PayからのWebhookで決済状況を受け取り、PayのAPIで照合した上で注文を更新します。

利用規約: https://pay.jpyc-service.com/terms
プライバシーポリシー: https://pay.jpyc-service.com/privacy
料金: https://pay.jpyc-service.com/pricing

== Frequently Asked Questions ==

= テストモードとテストネットは違いますか？ =
テストモードは送金をせず連携結果を再現します。実際の署名・テストネット送金は、ステージングの本番モードとテスト用JPYCを使用します。

= 返金はどこから行いますか？ =
注文詳細の「決済の詳細・返金を開く」からPayを開きます。受取ウォレットで返金に署名し、送金が確認されるとWooCommerceにも反映されます。WooCommerceの「手動で返金」はJPYCを送金しません。在庫を戻す場合は、返品を確認してWooCommerceで操作してください。

= 通知が届かない場合は？ =
Action Schedulerが支払い状況を再確認します。WordPressのCronが実行される環境が必要です。注文アクション「JPYC Payの決済状況を再確認」も使えます。PayのWebhook履歴と、ショップの公開URL・署名シークレットを確認してください。

= 利用をやめるには？ =
購入画面でJPYC Payを無効にし、WordPressの「接続を解除する」またはPayの「サイト連携」で解除してください。キーとWebhookが無効になります。手動接続の場合はPayで該当するAPIキーを失効、Webhookを停止してください。未確定の支払い・返金がないことを確認してからプラグインを削除してください。

== Changelog ==

= 1.1.0 =
店舗URLの承認、PKCEと設置先照合による自動接続、店舗単位のAPI権限、キー更新と解除を追加。

= 1.0.0 =
初回提供。JPYC Payの外部決済、注文照合、返金結果の同期、テストモードに対応。
