Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Stripe和PHP防止重复收费?_Php_Stripe Payments - Fatal编程技术网

如何使用Stripe和PHP防止重复收费?

如何使用Stripe和PHP防止重复收费?,php,stripe-payments,Php,Stripe Payments,最近我用Stripe收到了重复付款 他们告诉我使用幂等请求 我做了一些测试,例如,如果我尝试刷新浏览器,我会看到错误消息 但我不知道如何在出错的情况下采取“下一步” 我的意思是,如果我的客户进行了支付,并且出现了网络问题,如何使用Stripe重试并继续该过程,或者如何显示错误消息并返回到支付页面 我现在的代码: \Stripe\Stripe::setApiKey("xxxxxx"); $charge = \Stripe\Charge::create([ 'customer' =&

最近我用Stripe收到了重复付款

他们告诉我使用幂等请求

我做了一些测试,例如,如果我尝试刷新浏览器,我会看到错误消息

但我不知道如何在出错的情况下采取“下一步”

我的意思是,如果我的客户进行了支付,并且出现了网络问题,如何使用Stripe重试并继续该过程,或者如何显示错误消息并返回到支付页面

我现在的代码:

    \Stripe\Stripe::setApiKey("xxxxxx");
$charge = \Stripe\Charge::create([
    'customer' => $customer->id,
    'amount'   => $total_payment,
    'currency' => $currency,
    'description' => $description
    ], ["idempotency_key" => $idempotency,]);  
$chargeJson = $charge->jsonSerialize();
$status = $chargeJson['status'];
if($status=="succeeded") {...

谢谢您的帮助,如果您能给我一些信息,然后它将帮助我改进我的代码^^ ^

它们的关键是使用完全相同的幂等键重试。如果出现故障,通常会有工具重试相同的代码。背景工作尤其如此。您可能希望在可以重试的后台作业中执行这些条带API调用。另一件要尝试的事情是在stripe php中配置自动重试:cjav_dev:谢谢,所以如果我理解得很好,我会保留相同的幂等键,如果失败,我可以进行自动重试,以完成一次付款?这就是想法,是的。他们的关键是使用完全相同的幂等键重试。如果出现故障,通常会有工具重试相同的代码。背景工作尤其如此。您可能希望在可以重试的后台作业中执行这些条带API调用。另一件要尝试的事情是在stripe php中配置自动重试:cjav_dev:谢谢,所以如果我理解得很好,我会保留相同的幂等键,如果失败,我可以进行自动重试,以完成单个付款?这就是想法,是的。