条带未来订阅不起作用

时间:2018-06-12 10:56:00

标签: php stripe-payments payment-gateway stripe-connect

我正在进行未来的订阅,当我运行代码时,它创建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 :(得分:0)

您看到两个订阅的原因是您创建了两个订阅。第一个是在您致电Customer::Create并通过计划时创建的:

'plan' => $plan_id

此订阅没有试用期,因为您没有在计划中指定一个,这是创建此特定订阅时使用的全部内容。

另一个单独的订阅是通过Subscription::create电话创建的。这是正确的订阅,并且设置了正确的试用期。

要解决此问题,我只需从您创建客户的位置删除plan,并保留现有代码以创建订阅,因为这样可以正常工作。