YS CART – 綠界 ECPay
綠界金流と台湾ローカル物流、一つのプロバイダーで全て完結。
綠界は台湾で最も高い市場シェアを持つ決済サービスの一つです。このプロバイダーは、緑界AIO決済と緑界物流をYS CARTに一度に統合しました。支払い方法には、クレジットカード、ATMバーチャル口座、コンビニコード、バーコードが含まれます。物流には、ファミリーマート、セブン-イレブン、ハイライフマートのコンビニ受け取りと、黒猫宅急便、郵便局の宅配が含まれます。
金流と物流を一つのプラグインで解決
有効化後、ベンダー管理で有効になり、支払い方法と配送方法は、それぞれキャッシュフロー設定/配送設定で一元管理されます(並び順、配送料、送料無料のしきい値)。コンビニ受け取りはYS CARTの地図による店舗選択フローを使用し、店舗記憶などの体験は他の物流プロバイダーと同様になります。
深層防禦の対照設計
決済通知と調整伝票の経路は、緑界からの実際の取引金額(TradeAmt)をコア金額に連動し厳格に照合します。金額が一致した場合のみ入金処理されます。これはYS CARTの他の決済プロバイダーと同じ基準であり、金額の改ざんを排除します。
機能特徴
AIO 金流
クレジットカード、ATMバーチャル口座、コンビニコード、コンビニバーコード。
綠界物流
ファミリーマート/セブンイレブン/ハイライフコンビニ受け取り+黒猫、郵便局宅配便。
地図で店を選ぶ
コンビニ受取統合 YS CART 店舗選択フローと店舗記憶
金額守衛
通知と照合パスの両方で TradeAmt を確認し、金額が一致した場合のみ入金されます。
スクリーンショット
更新日誌 (最新)
⚠️ アップグレード順序(お読みください)
本板の必須要件 YS CART core 2.57.0以上お願しますまずコアを 2.57.1 にアップグレードしてから、このプラグインをアップデートしてください。。
コアバージョンが不足している場合、このプラグインは起動ゲートキーパーで停止します:決済方法、配送方法、RESTルート、CLIのいずれも登録しない管理画面でのみ通知を表示します。順序が逆になると、チェックアウトページのECPay(緑界)の決済方法と配送注文の作成が、コアのアップグレードが完了するまで一時的に非表示になります。
追加
- クレジットカードの返金(クエリファースト状態マシン):まず `CreditDetail/QueryTrade` で締め処理状態を確認し、緑界(ECPay)の公式フローに従って分岐させます:オーソリ済み→N(全額のみ)、全額締め処理→E の後に N、部分締め処理→R、締め処理済み→R。状態不明の場合はすべて操作を拒否します。
- クラッシュセーフ冪等性保護核心 `refund_request_id` を冪等キーとする。同一リクエストがすでに成功している場合、冪等な再実行と判定するには完全なエビデンスが必要である。通信不確定(タイムアウト/2xx以外/RtnCodeなし)は一律で pending とし、盲目的な再送は拒否する。プロバイダーが明示的に拒否した場合のみ再試行できます。
- 予約の全額返金競合解決と書き込みは同じCASクロージャ内で実行され、並行処理においては1つのリクエストのみがreservationに成功します。いかなる `DoAction` も、reservationのディスクへの書き込み(落盤)の完了後に実行されなければなりません。
- 取引フィンガープリント照合金額/`TradeNo`/`MerchantTradeNo`/`gwsr`/環境/商店代號は必須であり、かつ型に厳密です。古いレコードにフィンガーネット(指紋)がない場合は、一律して「同一の取引であると証明できない」とみなされます。
- イミュータブルな結果イベント:各ステップの金流(決済)の動きごとに、追記型(append-only)の記録(ステップ、attempted/executed、転送分類、RtnCode/RtnMsg、応答取引番号、フィンガープリント要約、タイムスタンプ)を追加する。
- 注文レベルの返金凍結結果が未確定の返金リクエストが存在する場合、手動による確認が行われるまで、新しい返金操作は拒否されます。
- `wp ys-cart-ecpay refund-attempt` CLI(list/resolve;resolve は真の CAS conditional UPDATE)。
- クレジットカードセキュリティコード(CreditCheckCode) 設定欄位:加密儲存,與 payment 憑證同一原子管線;建單改送 `NeedExtraPaidInfo=Y` 並持久化授權單號(gwsr)。
- 分割払いやボーナス払い、銀聯カード、または支払い方法の証明ができない取引は、すべて手動返金(フェイルクローズド)にルーティングされます。
変更(core 2.57.0 のペアリング)
- コアのハード要件 `YS_CART_ECPAY_REQUIRES_CORE = 2.57.0` を宣言;機能検出に `YSPaymentDetailStore` と `YSPaymentDispatch::current_operation_key` を追加。コアが完全に不在の場合もnotice-onlyに変更(サイレント処理を廃止)。
- `payment_detail` のすべての書き込み委任コア共有CAS(`YSPaymentDetailStore`); 配送コールバックの配送プロジェクション同期もこのCASを経由します——支払通知、返金元帳、配送プロジェクションは、これ以降同じJSONフィールドの協調ライターとなります。
- `MerchantTradeNo` はコアの安定版 operation key から生成されるように変更されました。
現在の制限(ご注意ください)
- クレジットカード返金待ち受けコンプの公式ストアで実測(綠界のステージング環境では公式にDoActionが提供されていません)。ゲート完了前 自動返金はデフォルトでオフになっています、record-only/manual-only を維持し、`ys_ec_ecpay_auto_refund_enabled` は明示的に有効にする必要があります。
- ステージ環境では返金を直接拒否します。
- ATM、コンビニ、バーコード決済は手動返金を維持し、クレジットカードのみ `supports_gateway_refund()` を宣言します。
検証
- クリーンクローン × 正式版コア 2.57.1:完全回帰 25銘柄すべてプラス。
- 2回の独立したクリーンクローンと再ビルドにより、ZIPのバイト数は同一(`sha256 c898bc68…`)でした。
- バンドル内容契約 26/0: 67ファイル + 30ディレクトリ、ファイル単位でgit HEADのblobとビット単位で一致。
よくある質問
アカウントは必要ですか?
緑界のベンダーアカウントを申請し、MerchantID/HashKey/HashIV を取得して設定ページに入力してください。テスト環境があれば、まず練習できます。
金流と物流はどちらか一方だけ使うことはできますか?
はい、可能です。決済方法と配送方法はそれぞれ独立したスイッチになっており、決済のみ、または配送のみを有効にすることもできます。
他の金流プラグインと競合しますか?
いいえ。YS CARTのサプライヤーフレームワークは一元管理されており、PayUni、藍新、街口などのプロバイダーと共存でき、チェックアウトページには有効になっている方法のみが表示されます。
