有効期限のない月額サブスクリプションを設定しました。誰かがサブスクリプションをキャンセルすると、裏で次の関数が呼び出されます
$subscription->setId('sub_dea86e5c65b2087202e3');
->setRemove(false);
予約された現在の期間に関する情報が得られません。誰かが 9 月 1 日に購読し、9 月 2 日にキャンセルした場合、彼の購読がまだ有効かどうかを確認する方法がありません。
Paymill-API を照会する組み込みの方法がないため、次のことを行いました。
$subscription = $this->getClientSubscriptions(); //Get subscriptions for the client
if ($subscription)
{
if ( ! $subscription['is_canceled'])
{
$this->client->end_of_period = date('Y-m-d H:i:s', $subscription['next_capture_at']);
/* Set end of period within the database if
subscription is not canceled */
} elseif ($this->client->end_of_period < date('Y-m-d H:i:s'))
{
/* If the subscription has been canceled we can
compare the end of period to the current date
and set the subscription to false since it expired */
$this->client->end_of_period = null;
$subscription = false;
}
$this->client->save();
$this->cache->put($subscription_cache, $subscription, 1440);
/* Save and put it to cache to prevent excessive calls to the paymill-api */
}
このソリューションについて質問がある場合は、喜んでお答えします。