Как сделать частичный возврат оплаты полосы в laravel
Я интегрировал полосу в качестве платежного шлюза в свое приложение, разработанное в laravel. Я также могу сделать полный возврат средств, используя приведенный ниже код.
$stripe = Stripe::make('sk_test_******');
$charge_id = Session::get('charge_id');
$amount = Session::get('payment_amount');
$refund = $stripe->refunds()->create(
$charge_id
);
Теперь я хочу разрешить администратору сделать частичное возмещение клиенту из бэкэнда, я попробую ниже код для этого согласно документам полосы.
$stripe = Stripe::make('sk_test_**********');
$charge_id = Session::get('charge_id');
$amount = Session::get('payment_amount');
$refund = $stripe->refunds()->create([
'charge' => $charge_id,
'amount' => '5',
'reason' => 'refund'
]);
Но я получил ошибку как преобразование массива в строку. Может кто-нибудь помочь мне решить эту ошибку или сказать, что не так в этом коде.
2 ответа
Из документации полосы четко указано, что вы должны установить APIKEY следующим образом
$stripe = new Stripe();
$stripe = Stripe::make('YOUR API KEY');
$charge_id = Session::get('charge_id');
$amount = Session::get('payment_amount');
$refund = $stripe->refunds()->create( $charge_id,$amount, ['reason' => 'refund'
]);
Предостережение. Чтобы вернуть часть комиссии, укажите параметр суммы в виде целого числа в центах или наименьшей денежной единицы валюты оплаты в конкретной валюте, которую вы используете.
Потому что вы передаете неправильные параметры. Изменить:
$refund = $stripe->refunds()->create([
'charge' => $charge_id,
'amount' => '5',
'reason' => 'refund'
]);
чтобы:
$refund = $stripe->refunds()->create($charge_id, 5, ['reason' => 'refund']);