1

有効期限のない月額サブスクリプションを設定しました。誰かがサブスクリプションをキャンセルすると、裏で次の関数が呼び出されます

$subscription->setId('sub_dea86e5c65b2087202e3');
             ->setRemove(false);

予約された現在の期間に関する情報が得られません。誰かが 9 月 1 日に購読し、9 月 2 日にキャンセルした場合、彼の購読がまだ有効かどうかを確認する方法がありません。

4

1 に答える 1

1

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 */
}

このソリューションについて質問がある場合は、喜んでお答えします。

于 2015-10-02T08:50:05.153 に答える