公司有一個專案買了這個綠界定期定額專業版,因此不得已要研究一下他的運作方式
https://cloudwp.pro/market/plugins/premium-plugins/ecpay-subscriptions-pro/
搭配著 Woocommerce Subscription 分析 這篇文章
我們知道「訂單」和「收款更新」是兩件事
- 這個 Woocommerce Subscription 會在固定排程新增續訂訂單
- 這個定期定額外掛的 class-action.php 裏面會接收綠界收款資訊後,更新到 _cw-allpay-cce_order-info 或是 _cw-allpay-cce_period-return
因此這邊提供幾個檢驗:
- 使用以下程式來檢驗是否有正確的收到定期定額的付款
$intSubscriptionID = 12345; // 訂閱編號
print_r(get_post_meta($intSubscriptionID, '_cw-allpay-cce_period-return', true));
- 取得續訂訂單的 subscriptionOrder 或是 order
$orderId = 3499;
$subscriptionOrder = wc_get_order(
reset(
wcs_get_subscriptions_for_order($orderId, ['order_type' => 'any'])
)->get_parent_id()
);
- 比較暴力一點取得訂單所有的 meta 來看一下
$intSubscriptionID = 2945;
print_r(get_post_meta($intSubscriptionID));
- 幾個 meta
_cw-allpay-cce_order-info
: 上層訂單 會有的資訊
Array
(
[URL] => https://xxxxxxxxxxxxxx
[MerchantID] => 3156350
[TotalAmount] => 1200
[PeriodType] => M
[Frequency] => 1
[ExecTimes] => 12
[ItemName] => xxxxxxxx
[OrderResultURL] => https://xxxxxxx
[HashKey] => xxxxxxx
[HashIV] => xxxxxxxx
[PostURL] => https://payment.ecpay.com.tw/Cashier/AioCheckOut/V5
[Time] => 1718026577
[MerchantTradeNo] => xxxxxx
[Language] => TWN
[OrderID] => 2968
[SubscriptionID] => 2969
[EncryptType] => 1
)
_cw-allpay-cce_allpay-return
: 上層訂單會有資訊
Array
(
[AlipayID] =>
[AlipayTradeNo] =>
[amount] => 1200
[ATMAccBank] =>
[ATMAccNo] =>
[auth_code] => 094760
[card4no] => 0206
[card6no] => 469656
[CustomField1] =>
[CustomField2] =>
[CustomField3] =>
[CustomField4] =>
[eci] =>
[ExecTimes] => 12
[Frequency] => 1
[gwsr] => xxxxx
[MerchantID] => xxxxxxx
[MerchantTradeNo] => xxxxxxxx
[PayFrom] =>
[PaymentDate] => 2024/06/10 13:37:05
[PaymentNo] =>
[PaymentType] => Credit_CreditCard
[PaymentTypeChargeFee] => 27
[PeriodAmount] => 1200
[PeriodType] => M
[process_date] => 2024/06/10 13:37:05
[red_dan] =>
[red_de_amt] =>
[red_ok_amt] =>
[red_yet] =>
[RtnCode] => 1
[RtnMsg] => 交易成功
[SimulatePaid] => 0
[staed] =>
[stage] =>
[stast] =>
[StoreID] =>
[TenpayTradeNo] =>
[TotalSuccessAmount] => 1200
[TotalSuccessTimes] => 1
[TradeAmt] => 1200
[TradeDate] => 2024/06/10 13:36:19
[TradeNo] => xxxxxxxxx
[WebATMAccBank] =>
[WebATMAccNo] =>
[WebATMBankName] =>
[CheckMacValue] => xxxxxxxxxx
)
_cw-allpay-cce_period-return
: 續訂訂單 和 訂閱訂單 (最新的那次) 會有資訊
Array
(
[Amount] => 1200
[AuthCode] => xxxxxx
[CustomField1] =>
[CustomField2] =>
[CustomField3] =>
[CustomField4] =>
[ExecTimes] => 12
[FirstAuthAmount] => 1200
[Frequency] => 1
[Gwsr] => xxxxxx
[MerchantID] => xxxxxx
[MerchantTradeNo] => xxxxxxx
[PeriodType] => M
[ProcessDate] => 2025/04/10 10:22:41
[RtnCode] => 1
[RtnMsg] => success
[StoreID] =>
[TotalSuccessTimes] => 11
[CheckMacValue] => xxxxx
)