Goedendag,
Dat is ook de reden voor de code layout zoals onderstaand.
Wat ik wil is een PHP stripe koppeling opzetten zodat ik gemakkelijk een implementatie van Stripe kan realiseren op elk willekeurig PHP based systeem.
Als voorbeeld :
Hiermee kan ik dus gemakkelijk een nieuwe implementatie maken op welk systeem dan ook. (voor mij)
Echter ik loop nu tegen een aantal issues aan. Voornamelijk dat ik het niet voor elkaar kan krijgen om een basis Stripe test setup werkend kan krijgen.
...
Ik maak gebruik van een PHP developement environment met SSL (die is verreist voor Stripe ook op de test omgeving anders krijg je sowieso niets terug.
De PHP API class die ik gebruik is de API class van Stripe zelf. Echter blijkbaar weet de support desk ook niet hoe die in elkaar steekt.
Zodra ik mijn script uitvoer krijg ik de volgende error te zien :
...
Ik heb mijn kop gek gezocht en de documentatie meermaals doorgelezen. Ook contact gehad met de Stripe Helpdesk maar deze snapt het naar mijn persoonlijke idee ook niet helemaal en blijft refereren naar hun logs en documentatie.
Echter zij melden dat ik de betalingsmethode niet gezet heb. Deze heb ik juist wel ingesteld. Tevens blijven zij hangen op een fout die ik eerder gemaakt heb.
Waarbij ik gebruik maakte van 'payment_method' => 'ideal' ipv van 'payment_method_types' => array('ideal').
Dit heb ik nu veranderd echter ze blijven refereren naar een eerder gemaakte fout.
Ik hoop dat hier iemand ziet waar mijn fout zit.
Want ik loop gewoon helemaal vast.
Dit is mijn code tot dusver :
Wat ik probeer te maken
Ik heb een wrapper-klasse gemaakt die alle stripe API-bestanden laadt die alle calls verwerkt die nodig zijn.Dat is ook de reden voor de code layout zoals onderstaand.
Wat ik wil is een PHP stripe koppeling opzetten zodat ik gemakkelijk een implementatie van Stripe kan realiseren op elk willekeurig PHP based systeem.
Als voorbeeld :
PHP:
1
2
3
| $obj = new \stripeapi({api_key}); $result = $obj->create_payment(2000, '202010220238HJBIXF', 'https://www.mijnwebshop.nl/api-callback?=23872393'); if($result['success']) header('Location: ".$result['forward_url']); |
Hiermee kan ik dus gemakkelijk een nieuwe implementatie maken op welk systeem dan ook. (voor mij)
Echter ik loop nu tegen een aantal issues aan. Voornamelijk dat ik het niet voor elkaar kan krijgen om een basis Stripe test setup werkend kan krijgen.
...
Ik maak gebruik van een PHP developement environment met SSL (die is verreist voor Stripe ook op de test omgeving anders krijg je sowieso niets terug.
De PHP API class die ik gebruik is de API class van Stripe zelf. Echter blijkbaar weet de support desk ook niet hoe die in elkaar steekt.

Zodra ik mijn script uitvoer krijg ik de volgende error te zien :
Fatal error: Uncaught (Status 400) (Request req_AQbkjKFB4mo31Z) You cannot confirm this PaymentIntent because it's missing a payment method. You can either update the PaymentIntent with a payment method and then confirm it again, or confirm it again directly with a payment method. thrown in /var/www/vhosts/example.com/httpdocs/stripe/stripe/lib/Exception/ApiErrorException.php on line 38
...
Ik heb mijn kop gek gezocht en de documentatie meermaals doorgelezen. Ook contact gehad met de Stripe Helpdesk maar deze snapt het naar mijn persoonlijke idee ook niet helemaal en blijft refereren naar hun logs en documentatie.
Echter zij melden dat ik de betalingsmethode niet gezet heb. Deze heb ik juist wel ingesteld. Tevens blijven zij hangen op een fout die ik eerder gemaakt heb.
Waarbij ik gebruik maakte van 'payment_method' => 'ideal' ipv van 'payment_method_types' => array('ideal').
Dit heb ik nu veranderd echter ze blijven refereren naar een eerder gemaakte fout.
Ik hoop dat hier iemand ziet waar mijn fout zit.
Want ik loop gewoon helemaal vast.
Dit is mijn code tot dusver :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| 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)); } |
[ Voor 8% gewijzigd door RobIII op 16-11-2020 14:45 . Reden: Code leesbaarder gemaakt m.b.v. syntax highlighting. ]