Привет, я включил Stripe в свое приложение, чтобы продать некоторые платные регистрации.В моей полосовой панели я уже создал несколько купонов , некоторые из них имеют процентные скидки, а некоторые фиксированные.Мне нужно заряжать своих клиентов в нескольких валютах. У меня проблема с начислением платы клиенту. Допустим, у меня есть план на 348 долл. США в год, и я предоставил
- Клиенту C1 купон CP1 с фиксированной скидкой 347 долл. (Таким образом, сумма начисления будетвсего $ 1)
- Клиент C2 - купон CP2 со скидкой 50% (таким образом, сумма начисления составит $ 174)
В случае 2 проблема не возникает, и счет-фактура создается.но в случае 1 он взимается 2 раза:
- Сначала за 1 доллар (стоимость со скидкой)
- Вся сумма 348 долларов (не знаю, с чего это взимается)
Вот мой код ниже:
Обновлена плановая стоимость (применен купон, в котором "определенная сумма отключена")
$cc = $_POST['coupon'];
$actual_amount = $_POST['actual_amount'];
$cpnObj = \Stripe\Coupon::retrieve($cc);
$cpnDtl = $cpnObj->getLastResponse()->json;
if($cpnDtl['id']){
$amount_off = $cpnDtl['amount_off'];
$percent_off = $cpnDtl['percent_off'];
if ($amount_off) {
$discount = $amount_off/100;
$paymoney = $actual_amount - $discount;
}
if ($percent_off) {
$discount = $actual_amount * $percent_off/100;
$paymoney = $actual_amount - $discount;
}
}
Позже через некоторую переменную сеанса я использую эту разрозненную сумму для списания средств с карты клиента
$token = $_POST['stripeToken'];
$plan_id = $_POST['plan_id'];
//Creating Customer
$customer = \Stripe\Customer::create([
"description" => "creating the customer",
"email" => "myemail@somedomain.com",
"source" => $token // obtained with Stripe.js
]);
//If Merchant account is created at Stripe end, Charge his Card
if($customer->id != ''){
$chargeCard = \Stripe\Charge::create([
"amount" => $paymoney (calculated above after applying the promo-code),
"currency" => 'USD',
"description" => "subscription for a year",
"capture" => true,
"customer" => $customer->id,
"receipt_email" => "myemail@somedomain.com",
"statement_descriptor" => "card is charged for so and so ... "
]);
}
//If Card is charged successfully, create the Merchant's Subscription at Stripe end
if($chargeCard->id != ''){
$subscription = \Stripe\Subscription::create(array(
"customer" => $customer->id,
"items" => [
[
"plan" => $plan_id,
],
],
"billing" => "charge_automatically",
"cancel_at_period_end" => false
));
}
Я прочитал в документе здесь https://stripe.com/docs/api/, что при создании Charge или Customer " Source " является необязательным параметром.Это вопрос " Источник "?Также в документе " создание клиента " говорится, что
Вы должны предоставить источник, если у клиента еще нет действительного источника, и вы подписываете клиента наавтоматически взимать плату за тариф, который не является бесплатным.
, поэтому я могу использовать ЖЕ « Source " при создании клиента и создании объекта начисления?
Можете ли вы помочь мне в этом отношении?
Заранее спасибо.