2016-03-18 2 views
0

Я использую полосу для захвата кредитных карт. У меня есть мои формы, так что они являются переменными входами, и он отлично работает. Я передаю информацию из моего <input> в файл charge.php, и он захватывается успешно.Как создать переменную подписки в Stripe

Когда я пытаюсь использовать эту информацию для создания подписки, я не могу использовать переменные суммы. Я могу создать только подписку с установленной суммой.

Я надеялся использовать $finalamount, чтобы установить размер подписки. Я в порядке с name и id будет таким же, как и amount.

Как создать переменную подписку, включая пользовательские amount, name и id на основе ввода пользователем?

<?php 

require_once('init.php'); 

\Stripe\Stripe::setApiKey("sk_test_***********"); 

// Get the credit card details submitted by the form 
$token = $_POST['stripeToken']; 
$email = $_POST['stripeEmail']; 
$amount = $_POST['amount']; 
$finalamount = $amount * 100; 

\Stripe\Plan::create(array(
    "amount" => $finalamount, //this does not work. It only works if there is a present amount. 
    "interval" => "month", 
    "name" => "Green Plan", 
    "currency" => "usd", 
    "id" => "green") 
); 

// Create a Customer 
$customer = \Stripe\Customer::create(array(
    "source" => $token, 
    "plan" => "green", 
    "description" => "Description", 
    "email" => $email) 
); 


// Charge the Customer instead of the card 
\Stripe\Charge::create(array(
    "amount" => $finalamount, // amount in cents, again 
    "currency" => "usd", 
    "customer" => $customer->id) 
); 

?> 
+0

Какая ошибка вы получаете, когда пытаетесь использовать свой код? –

+0

У меня нет ошибки, она просто не обрабатывается. Он обрабатывается только при наличии установленной суммы. –

+0

вы должны включить регистрацию ошибок PHP. По умолчанию это отключено, и он просто прекратит обработку. Так что не обрабатывается = ошибка, которая просто не отображается вам. –

ответ

0

Вы должны удалить этот код

\Stripe\Charge::create(array(
    "amount" => $finalamount, // amount in cents, again 
    "currency" => "usd", 
    "customer" => $customer->id) 
); 

, потому что когда вы создаете план с указанием клиента ваш клиент подписался и заряженную автоматически.

надеюсь, что это поможет :)

+0

Эй, спасибо за записку. К сожалению, удаление этой строки не помогло мне в обработке подписки. Подписка сделала сообщение, что приятно. Но по какой-то причине он удаляет «электронную почту», и до сих пор нет «суммы». Я думаю, что '$ finalamount' установил бы это, но это не по какой-то причине. –

+0

Я бы предложил вам зарегистрировать $ finalamount, email, чтобы проверить, есть ли у них какие-либо значения или нет. пожалуйста, покажите мне какие-либо ошибки, которые вы получаете. Я мог бы помочь вам понять, что я сам реализовал аналогичную функциональность в проекте. – FastTurtle

Смежные вопросы