<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.webdev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>16 Dec 2019 08:44:38 Z</lastBuildDate><pubDate>13 Dec 2019 13:26:00 Z</pubDate><description>Bonjour,&#13;
J'utilise le code suivant, qui était disponible en téléchargement sur le site de dépot de PC Soft.&#13;
&#13;
VarSTContenuSession est STContenuSession&#13;
nMontantEntier, nMontantEntier100 sont des entiers&#13;
xMontantMonétaire est un numérique = LIBF_PRIX_TOTAL&#13;
nMontantEntier = xMontantMonétaire&#13;
nMontantEntier100 = nMontantEntier*100&#13;
&#13;
sai_DEVISE est une chaîne = "CHF"&#13;
SI COMBO_Monnaie=1 ALORS sai_DEVISE = "EUR"&#13;
// exemple// version simplifiée, certaines données pouvant être des tableaux&#13;
VarSTContenuSession.sSuccess_url			="https://www.monsite.com/FR/ShopOnLineMerci.php?session_id={CHECKOUT_SESSION_ID}"// adresse réelle, ?session_id={CHECKOUT_SESSION_ID} permet à stripe de rediriger vers cette page avec la référence de la transaction&#13;
VarSTContenuSession.sCancel_url				="https://www.monsite.com/FR/ShopOnLineMerci.php"// adresse réelle&#13;
VarSTContenuSession.sPayment_method_types	="card"&#13;
VarSTContenuSession.sLine_items_name		= ChaîneVersUTF8(gsLibAffArticle)&#13;
VarSTContenuSession.nLine_items_amount		= nMontantEntier100  //Attention donnée en centimes&#13;
VarSTContenuSession.sLine_items_currency	= sai_DEVISE&#13;
VarSTContenuSession.nLine_items_quantity	= 1&#13;
VarSTContenuSession.sCustomer_email			= ChaîneVersUTF8(sW_EMAIL_CLIENT) &#13;
VarSTContenuSession.sClient_reference_id	= 0		//W_ID_CLIENT&#13;
&#13;
// Mise en forme de la requête ============================================================&#13;
sContenuSession est une chaîne&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	success_url=%1&#13;
],VarSTContenuSession.sSuccess_url)&#13;
&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	cancel_url=%1&#13;
],VarSTContenuSession.sCancel_url)&#13;
&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	payment_method_types[]=%1&#13;
],VarSTContenuSession.sPayment_method_types)&#13;
&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	line_items[][name]=%1&#13;
],VarSTContenuSession.sLine_items_name)&#13;
&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	line_items[][amount]=%1&#13;
],VarSTContenuSession.nLine_items_amount)&#13;
&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	line_items[][currency]=%1&#13;
],VarSTContenuSession.sLine_items_currency)&#13;
&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	line_items[][quantity]=%1&#13;
],VarSTContenuSession.nLine_items_quantity)&#13;
&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	customer_email=%1&#13;
],VarSTContenuSession.sCustomer_email)&#13;
&#13;
sContenuSession += ["&amp;"] + ChaîneConstruit([&#13;
	client_reference_id=%1&#13;
],VarSTContenuSession.sClient_reference_id)&#13;
&#13;
bufSBufferEntete est un Buffer&#13;
bufSBufferRequete est un Buffer&#13;
bufClefReponse est un Buffer &#13;
&#13;
SI HTTPRequête("https://api.stripe.com/v1/checkout/sessions","","",sContenuSession,"",gsSecretKey,"")&#13;
	&#13;
	bufSBufferEntete=HTTPDonneRésultat(httpEntête)&#13;
	bufSBufferRequete=HTTPDonneRésultat(httpRésultat)&#13;
	&#13;
	SI Milieu(ExtraitChaîne(bufSBufferEntete,1,RC),10,3)&lt;&gt;200 ALORS&#13;
		&#13;
		ZR_REQ_LISTE_ARTICLES_BOUTIQUE_CATEG..Visible=Faux&#13;
	&#13;
		Info("Une erreur s'est produite...",ErreurInfo(),bufSBufferEntete,sContenuSession,"",bufSBufferRequete)&#13;
	//	RETOUR&#13;
		&#13;
	FIN&#13;
	&#13;
	LIB_AffErreur = bufSBufferEntete+RC+RC+sContenuSession+RC+bufSBufferRequete&#13;
	&#13;
	bufClefReponse= Remplace(ExtraitChaîne(Milieu(ExtraitChaîne(bufSBufferRequete,2,"id"),4,80),1,","),"""","")&#13;
//	info(bufClefReponse,rc,rc,bufSBufferRequete)&#13;
FIN&#13;
&#13;
//////// Préparation du code pour l'ouverture de la popup&#13;
sCodeHtml est une chaîne=[&#13;
	&lt;!DOCTYPE html&gt;&#13;
	&lt;html&gt;&#13;
	&lt;head&gt;&#13;
	&lt;meta charset="UTF-8"&gt;&#13;
	&lt;script src="https://js.stripe.com/v3/"&gt;&lt;/script&gt;&#13;
	&lt;/head&gt;&#13;
	&lt;body&gt;&#13;
	&lt;script type="text/javascript"&gt;&#13;
	&lt;!--&#13;
	var stripe = Stripe('%1');&#13;
	&#13;
	stripe.redirectToCheckout({&#13;
	// Make the id field from the Checkout Session creation API response&#13;
	// available to this file, so you can provide it as parameter here&#13;
	// instead of the {{CHECKOUT_SESSION_ID}} placeholder.&#13;
	sessionId: '%2'&#13;
	}).then(function (result) {&#13;
	// If `redirectToCheckout` fails due to a browser or network&#13;
	// error, display the localized error message to your customer&#13;
	// using `result.error.message`.&#13;
	});&#13;
	//--&gt;&#13;
	&lt;/script&gt;&#13;
	&lt;/body&gt;&#13;
	&lt;/html&gt;&#13;
]&#13;
&#13;
sCodeHtml = ChaîneConstruit(sCodeHtml,gsDataKey,bufClefReponse) //gsDataKey : clef publique&#13;
&#13;
//info(sCodeHtml)&#13;
&#13;
// HTM_SansNom1 est un champ HTML caché&#13;
HTM_SansNom1 = sCodeHtml&#13;
&#13;
&#13;
&#13;
Quand je teste mon projet en mode local, j'ai la réponse 200 de Stripe qui est récupérée par le code &#13;
 HTTPRequête("https://api.stripe.com/v1/checkout/sessions","","",sContenuSession,"",gsSecretKey,"")&#13;
 bufSBufferEntete=HTTPDonneRésultat(httpEntête)&#13;
&#13;
Quand publie mon projet sur mon serveur en PHP,  j'ai l'erreur suivante qui est affichée par mon HTTPRequête.&#13;
&#13;
&#13;
Server: nginx&#13;
&#13;
Date: Fri, 13 Dec 2019 12:21:00 GMT&#13;
&#13;
Content-Type: application/json&#13;
&#13;
Content-Length: 898&#13;
&#13;
Connection: close&#13;
&#13;
access-control-allow-credentials: true&#13;
&#13;
access-control-allow-methods: GET, POST, HEAD, OPTIONS, DELETE&#13;
&#13;
access-control-allow-origin: *&#13;
&#13;
access-control-expose-headers: Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required&#13;
&#13;
access-control-max-age: 300&#13;
&#13;
cache-control: no-cache, no-store&#13;
&#13;
request-id: req_DTdsvgb4tOCAiS&#13;
&#13;
stripe-version: 2019-11-05&#13;
&#13;
Strict-Transport-Security: max-age=31556926; includeSubDomains; preload&#13;
&#13;
Qui a une idée ou chercher le problème ?&#13;
&#13;
--&#13;
Nicolas</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/fr-FR/pcsoft.fr.webdev/73874-integration-stripe-webdev-php/read.awp</link><title>Intégration Stripe, webdev en PHP</title><managingEditor>moderateur@pcsoft.fr (Le modérateur)</managingEditor><webMaster>webmaster@pcsoft.fr (Le Webmaster)</webMaster><item><author>winsoft</author><category>pcsoft.fr.webdev</category><comments>https://forum.pcsoft.fr/fr-FR/pcsoft.fr.webdev/73874-integration-stripe-webdev-php-73880/read.awp</comments><pubDate>16 Dec 2019 08:44:38 Z</pubDate><description>Bonjour,&#13;
Personne n'a d'idées du problème... ?&#13;
&#13;
a+&#13;
&#13;
--&#13;
Nicolas</description><guid isPermaLink="true">https://forum.pcsoft.fr/fr-FR/pcsoft.fr.webdev/73874-integration-stripe-webdev-php-73880/read.awp</guid><link>https://forum.pcsoft.fr/fr-FR/pcsoft.fr.webdev/73874-integration-stripe-webdev-php-73880/read.awp</link><source url="https://forum.pcsoft.fr/fr-FR/pcsoft.fr.webdev/73874-integration-stripe-webdev-php/read.awp">Intégration Stripe, webdev en PHP</source><title>Re: Intégration Stripe, webdev en PHP</title></item></channel></rss>
