полоса будущей подписки не работает - PullRequest
0 голосов
/ 12 июня 2018

Я работаю над будущей подпиской, когда я запускаю код, он создает 2 подписки, 1 активна, а другая пробная, не знаете, почему она создает 2 подписки?Для этой активной подписки создается платеж, который является неправильным, я установил trial_end как «2018-06-20», но с сегодняшнего дня он начал подписку. Может ли кто-нибудь помочь мне, как я могу решить эту проблему?здесь я добавил свой код

<?php
require_once('init.php');
if (isset($_POST['stripeToken'])) {
    \Stripe\Stripe::setApiKey("*****************");
    \Stripe\Stripe::setApiVersion("2018-05-21");
    $token = $_POST['stripeToken'];
    try {
        $plan_id = time();
    /************ check if plan exists ***************/
    $plan_created = \Stripe\Plan::create(array(
                "amount" => 1200,
                "interval" => "day",
                "product" => array(
                "name" => "test",
                ),  
                "currency" => "usd",
                "id" => $plan_id,
            )
    );

        //Create Customer:
        $customer = \Stripe\Customer::create(array(
                    'source' => $token,
            'description'=> 'Test Customer',
                    'email' => 'testabc123@gmail.com',
                    'plan' => $plan_id
        ));
        // Charge the order:
    $dateTime = new DateTime('2018-06-20'); 
    $date_timestamp = $dateTime->format('U');

        $charge = \Stripe\Subscription::create(array(
                    'customer' => $customer->id,
                    "items" => array(
                        array(
                            "plan" => $plan_id,
                        ),
                    ),
            "trial_end"=>$date_timestamp,
                )
        );

        echo "<pre>";
        print_r($charge);
    die;

    } catch (Stripe\Error\Card $e) {
        // The card has been declined
    }
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
<form action="" method="post">
    <script src="http://checkout.stripe.com/v2/checkout.js" class="stripe-button"
            data-key="pk_test_4Ak5l6azsnSsVrpVJbIepoBu"
    data-amount="5000" data-description="One year's subscription"></script>
</form>

<script>
    $(document).ready(function () {
        $("button").trigger("click");
    });
</script>

1 Ответ

0 голосов
/ 12 июня 2018

Причина, по которой вы видите две подписки, заключается в том, что вы создаете две из них.Первая создается, когда вы звоните Customer::Create и передаете план:

'plan' => $plan_id

У этой подписки нет пробного периода, поскольку вы не указали ее в плане, и это всекоторый используется при создании этой конкретной подписки.

Другая отдельная подписка была создана из вашего звонка Subscription::create.Это правильная подписка, и для нее установлен правильный пробный период.

Чтобы устранить эту проблему, я просто удалил plan с того места, где вы создаете Заказчика, и сохранил существующий код для создания подписки, посколькуэто прекрасно работает.

...