Stripe PHP API : 결제 수단이 없기 때문에이 PaymentIntent를 확인할 수 없습니다.
Stripe PHP API를 구현하려고하는데 지난주부터 멈췄습니다. 처음에는 정확한 표기법으로 결제 수단을 정확하게 언급하지 않았다고 생각했습니다. 그러나 이것은 사실이 아닌 것 같습니다.
모든 스트라이프 API 파일을로드하는 래퍼 클래스를 만들고 다음은 내게 필요한 모든 호출을 처리합니다.
따라서 코드 레이아웃이 그 이유입니다.
스크립트를 실행하면 다음 오류가 발생합니다.
치명적인 오류 : Uncaught (상태 400) (요청 req_AQbkjKFB4mo31Z) 결제 수단이 없기 때문에이 PaymentIntent를 확인할 수 없습니다. 결제 수단으로 PaymentIntent를 업데이트 한 다음 다시 확인하거나 결제 수단으로 직접 다시 확인할 수 있습니다. 38 행의 /var/www/vhosts/example.com/httpdocs/stripe/stripe/lib/Exception/ApiErrorException.php에서 발생
나는 이미 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));
}
내 실수를 지적 할 수 있기를 바랍니다. 나는 여기에 절대적으로 붙어 있기 때문에.
답변
payment_method_types이 결제 목적에 허용되는 결제 방법 유형을 결정하는을 설정합니다 . 결제를 확인하고 수금하려면 특정 payment_method. 직접 제공 할 수 있지만 Stripe.js 및 Elements 를 사용 하여 iDEAL 결제 세부 정보 를 수집하는 것이 좋습니다 . 서버에서 지불 의도를 생성 한 후 client_secret
클라이언트로 다시 보내고 수집 된 세부 정보와 함께 사용합니다.
HTML :
<div id="ideal-bank-element">
<!-- A Stripe Element will be inserted here. -->
</div>
JS :
var idealBank = elements.create('idealBank', options);
idealBank.mount('#ideal-bank-element');
...
stripe.confirmIdealPayment(
'{{PAYMENT_INTENT_CLIENT_SECRET}}',
{
payment_method: {
ideal: idealBank,
billing_details: {
name: accountholderName.value,
},
},
return_url: 'https://your-website.com/checkout/complete',
}
);
confirmIdealPayment
이와 같이 사용 payment_method
하면 결제 의도에 자동으로 설정 되고 확인됩니다.