Я реализовал Stripe в проекте Laravel. Я хочу взимать плату с клиентов ежемесячно, но каждому из них придется платить разную сумму. Я отправляю им счет отдельно через другую систему, им нужно будет ввести номер счета, сумму и оплатить на моем сайте.
Теперь, чтобы взимать с клиентов переменную сумму, я нашел решение здесь: https://support.stripe.com/questions/how-can-i-create-plans-that-dont-have-a-fixed-price
У меня есть форма, в которой клиент будет вводить номер своего счета, другие данные и сумму, которую он хочет заплатить. Теперь, как я могу использовать эту информацию в виде полосы и создать клиента полосы, как это? Я не могу заставить это работать.
Лучший способ справиться с переменной суммой подписки — создать базовый план на полосе, например freePlan
и назначить сумму 1
к этому.
Поэтому, если вы хотите обрабатывать переменную сумму подписки «в вашем случае», вы подпишитесь на эту freePlan
затем увеличьте эту сумму 1 по количеству подписки.
Например, вы хотите взимать с 2 пользователей 10 и 15 долларов соответственно. ты сможешь
// Let get first user
$user = User::find(1);
// subscribe to free plan which has an amount of one(1)
// and increment the quantity by 10 so in this case he/she will pay
// $10 every month
$user->subscription('freePlan')->incrementQuantity(10);
// Lets do same for user 2
$user = User::find(2);
// subscribe to free plan which has an amount of one(1)
// and increment the quantity by 15 so in this case he/she will pay
// $15 every month
$user->subscription('freePlan')->incrementQuantity(15);
или вы можете использовать уже созданный пример плана basicPlan
или же businessPlan
и увеличить или уменьшить количество
// Let say basicPlan is $30 so increasing it by 5 will be 150
$user->subscription('basicPlan')->incrementQuantity(15);
Эта ссылка указывает на полосу о том, как установить количество https://stripe.com/docs/subscriptions/guide#setting-quantities
Эта ссылка указывает на то, как увеличить или уменьшить количество
https://laravel.com/docs/5.2/billing#subscription-quantity
Похоже, вы просто хотите взимать с клиента определенную сумму. Вам не нужно использовать планы или подписки Stripe для этого, вы должны просто создать заряд.
Если вы хотите собрать данные карты клиента один раз и иметь возможность снимать их повторно, не обращаясь к ним с просьбой предоставить данные своей карты снова, вам следует сначала создать клиента с помощью токена карты, а затем создайте плату с идентификатором клиента в customer
параметр.
Вы должны проверить этот учебник: https://stripe.com/docs/charges#saving-credit-card-details-for-later
Итак, я обошёл решение этой проблемы. Вместо использования Stripe’s Quantity
или же QuantityIncrement()
Я создал отдельный план для каждого клиента.
Теперь Laravel Cashier не позволяет нам программно создавать план полосы. Тем не мение, это решение помог мне сделать это. Хотя мне нужно было сделать несколько изменений, чтобы заставить это работать в Laravel, но я наконец-то начал работать после игры.