【发布时间】:2021-02-27 14:12:59
【问题描述】:
我正在尝试实现 Stripe PHP API,但从上周开始我就陷入了困境。 起初我以为我没有以正确的符号方式正确提及付款方式。 然而,情况似乎并非如此。
我创建了一个包装类,它加载所有条带 API 文件并处理我所需的所有调用。
这就是代码布局的原因。
当我执行我的脚本时,我收到以下错误:
致命错误:未捕获(状态 400)(请求 req_AQbkjKFB4mo31Z)您 无法确认此 PaymentIntent,因为它缺少付款 方法。您可以使用付款方式更新 PaymentIntent 然后再次确认,或者直接付款再次确认 方法。投入 /var/www/vhosts/example.com/httpdocs/stripe/stripe/lib/Exception/ApiErrorException.php 第 38 行
我已经联系了 Stripe 帮助台,但是他们一直在向我介绍他们的手册,但这也没有让我进一步了解。
他们的仪表板中已启用 iDeal 付款方式。所以这不是失败的原因。 它可能是我设置付款的方式。但就我而言,我没有正确设置付款方式。但据我所见,他们的手册已经相应地完成了。
另外,我找不到任何有关使用检索调用的确认文档。我应该这样做吗?或者这只是加倍并且不需要。
public function create_payment($amount, $order_id, $method = 'ideal', $return_url = NULL, $currency = 'eur'){
///######## CHECK IF CURRENCY IS ALLOWED
if(!$this->currency_supported($currency)) exit('<strong>error</strong>, stripe currency not supported : '.$currency);
///######## SETUP PAYMENT
$result = $this->obj->paymentIntents->create(
array(
'amount' => $amount,
'currency' => $currency,
'payment_method_types' => array($method)
)
);
///######## IF ERROR
if(!is_object($result) || !isset($result->id)) exit('<strong>error</strong>, something went wrong during stripe payment intend creation');
///######## SETUP PAYMENT ID
$payment_id = $result->id;
///######## RETRIEVE PAYMENT INTEND DETAILS
$result = $this->obj->paymentIntents->retrieve($payment_id, []);
///######## SET AN ORDER ID
$result = $this->obj->paymentIntents->update($payment_id, array(
'metadata' => array(
'order_id' => $order_id,
),
'payment_method_types' => array($method),
));
///######## SETUP PARAMETRES
$params = array('payment_method_types' => array($method));
///######## IF THE RETURN URL HAS BEEN SET
if($return_url) $params['return_url'] = $return_url;
///######## CONFIRM A PAYMENT INTEND
$result = $this->obj->paymentIntents->confirm($payment_id, $params);
exit(print_r($result));
}
我希望有人能指出我的错误。因为我完全被困在这里了。
【问题讨论】:
标签: php stripe-payments