Page 1 sur 1

Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 23 mai 2022, 17:58
par nestor94
Serait -il possible d'effectuer une maj de la database après le déclenchement d'un paiement en ligne sur mon site?

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 23 mai 2022, 22:46
par two3d
Si le paiement est sur ton site, il te suffit de faire une requête sur ta base de données après le déclenchement du paiement.

Ou regarde du côté des Webhooks.

Quel service de paiement en ligne tu utilise ? Le service doit normalement proposer une "URL de fond" pour l'appeler et lui demander si le paiement est OK (si OK : Maj de la base)

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 23 mai 2022, 23:48
par nestor94
J'ai installé Stripe. Mais il n'est pas encore opérationnel. Je dois voir avec l'hébergeur où et comment installer l'API coté serveur.

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 24 mai 2022, 00:41
par two3d
Je dois voir avec l'hébergeur où et comment installer l'API coté serveur
Ton hébergeur ne t'aider pas, c'est à toi de te débrouiller.

La doc est là : https://stripe.com/docs

Avec un peu de traduction et 2 à 3 jours pour comprendre le système, tu devrais y arriver, Stripe est plus simple que PayPal, la doc est bien fournie et partiellement traduite en Français ;)

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 24 mai 2022, 10:35
par nestor94
Oui, je viens de me plonger dedans et c'est galère :?

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 24 mai 2022, 10:50
par two3d
C'est quoi que tu doit faire comme style de paiement ? un paiement et tu valide directement ? ou un abonnement ?

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 24 mai 2022, 11:49
par @rthur
Il faut que tu mettes en place un webhook pour que Stripe appelle un de tes scripts à chaque fois qu'un paiement a été effectué.
La doc est là :
https://stripe.com/docs/webhooks/quickstart

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 24 mai 2022, 14:27
par two3d
Si le paiement est direct (paymentintents), pas besoin de webhook, la réponse est instantanée (hors virement qui peuvent prendre plusieurs jours).

J'affirme ceci car je les ai eu par leur tchat et ils me l'ont confirmé (d'ailleurs si tu as besoin d'aide, ils sont facilement joignable via le tchat ;))

Pour les autres méthodes, l'utilisation de webhooks sera la solution.

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 25 mai 2022, 11:09
par nestor94
Merci pour vos réponses, je continue les tests. Je suis en train de configurer le webhook pour qu'il pointe vers mon script de maj de la base de données ...

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 03 juin 2022, 16:26
par nestor94
J'ai testé en réel, les paiements s'effectuent bien.
J'ai 2 scripts: server.php et webhook.php.
Je pense que c'est dans ce dernier que je dois mettre mon line de maj de database suite paiement?
<?php
// webhook.php
//
// Use this sample code to handle webhook events in your integration.
//
// 1) Paste this code into a new file (webhook.php)
//
// 2) Install dependencies
//   composer require stripe/stripe-php
//
// 3) Run the server on http://localhost:4242
//   php -S localhost:4242

require 'vendor/autoload.php';

// This is your Stripe CLI webhook secret for testing your endpoint locally.
$endpoint_secret = 'xxxxxxxxxxxxx';

$payload = @file_get_contents('php://input');
$sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
$event = null;

try {
  $event = \Stripe\Webhook::constructEvent(
    $payload, $sig_header, $endpoint_secret
  );
} catch(\UnexpectedValueException $e) {
  // Invalid payload
  http_response_code(400);
  exit();
} catch(\Stripe\Exception\SignatureVerificationException $e) {
  // Invalid signature
  http_response_code(400);
  exit();
}

// Handle the event
switch ($event->type) {
  case 'cash_balance.funds_available':
    $cashBalance = $event->data->object;
  // ... handle other event types
  default:
    echo 'Received unknown event type ' . $event->type;
}

http_response_code(200);
?>

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 04 juin 2022, 22:56
par nestor94
Apparemment, c'est pas dans celui-ci ! et ni dans "server.php" ?!

Help !

Est-ce dans le dashboard que je dois ajouter mon lien de maj?

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 17 juin 2022, 11:03
par nestor94
Je les ai contacté via le tchat, mais apparemment on ne se comprend pas. La fille m'a renvoyé vers le systeme de lien de paiement. Chose que j'ai déjà mis en place ...
J'ai ajouté mon lien de maj dans les évènements à traiter mais cela ne fonctionne toujours pas.
// Handle the event
switch ($event->type) {
	  case 'payment_intent.succeeded':
    $paymentIntent = $event->data->object; // contains a \Stripe\PaymentIntent
  header('Location:maj_bonus.php');
  exit;

  case 'cash_balance.funds_available':
    $cashBalance = $event->data->object;
 // ... handle other event types
  header('Location:maj_bonus.php');
  exit;
  case 'checkout.session.async_payment_succeeded':
    $session = $event->data->object;
  header('Location:maj_bonus.php');
  exit;
  case 'checkout.session.completed':
    $session = $event->data->object;
	  header('Location:maj_bonus.php');
  exit;

  // ... handle other event types
  default:
    echo 'Received unknown event type ' . $event->type;
}

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 17 juin 2022, 13:07
par @rthur
Fais ton traitement directement sans faire une redirection via header() qui ne sera potentiellement pas suivi par l'appel de Stripe.

Et sinon comme toujours, commence par un code ultra-simple en suivant le tuto officiel et juste en effectuant une commande simple (genre écrire un fichier avec file_put_contents() ) comme traitement, et une fois que le tuto fonctionne, alors tu ajoutes progressivement ta complexité

Re: Comment lier une action PHP à une action effectuée via un prestataire extérieur?

Posté : 17 juin 2022, 20:58
par nestor94
Désolé, j'ai laissé tomber.
J'ai trouvé une solution beaucoup plus simple avec STARPASS et seulement deux javascripts installés...
Tests OK.