【发布时间】:2021-09-01 15:14:33
【问题描述】:
我试图第一次向客户收取条纹作为押金,第二次是在 5 分钟后,这是剩余的金额,这由 Laravel Queue 处理。但由于某种原因,第二次收费没有发生
这是我的控制器
public function StripeCharge(Request $request) {
$product_name = $request->product_name;
$product_price = $request->product_price;
Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));
$customer = \Stripe\Customer::create(array(
"email" => $email = Auth::user()->email,
"source" => $request->stripeToken
));
$mailInfo = \Stripe\Charge::create(array(
"amount" => $product_price * 100,
"currency" => "gbp",
"customer" => $customer->id,
"description" => "Deposit" . "-" . $product_name
));
$customerId = $customer->id;
$amount = $product_price;
$email = Auth::user()->email;
Mail::to($email)->send(new WelcomeMail($mailInfo));
$fullamount = New ChargeCustomer($customerId,$amount);
dispatch(New ChargeCustomer( $fullamount) )->delay(now()->addMinutes(5));
return view('confirmation');
}
这是我的工作 CustomerCharge
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Stripe;
class ChargeCustomer implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $customerId;
public $amount;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(string $customerId, int $amount)
{
$this->customerId = $customerId;
$this->amount = $amount;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
\Stripe\Charge::create([
'amount' => $this->amount,
'currency'=> 'gbp',
'customer' => $this->customerId
]);
ChargeCustomer::dispatch('cus_test',1000);
}
}
任何帮助将不胜感激
【问题讨论】:
标签: laravel queue stripe-payments