PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Paypal
Paypal
Iniciado por anonyme, set., 20 2018 9:22 AM - 11 respostas
Membro registado
130 mensagems
Popularité : +0 (4 votes)
Publicado em setembro, 20 2018 - 9:22 AM
Bonjour,

Je souhaite utiliser le système Paypal pour mon site. J' ai bien intégré le bouton, mais impossible d' être redirigé vers Paypal.

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"><input type="hidden" name="hosted_button_id" value="access_token"><input type="image"src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif"border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"><img alt="" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif"width="1" height="1">


J' ai le code suivant, repris sur le site de Paypal, mais hélas quand je clique dessus rien ne se passe.

Quelqu' un pourrait- il m' aider ?

Merci d' avance.
Membro registado
130 mensagems
Popularité : +0 (4 votes)
Publicado em setembro, 20 2018 - 4:29 PM
Re,

Finalement, j' ai réussi à trouver un bon tuto sur YT.


Du coup, j' ai changé mon code (l' autre redirigeant vers un message d' erreur), ça m' a redirigé sur le site de Paypal, tout va bien...

...ou presque, car ça a marché sur du PHP (via EASYPHP) et pas WebDev :/

J' ai oublié de préciser que j' ai mis mon code dans un champ HTML, le bouton apparait bien, mais ne fait aucune action.

Y a-t-il quelque chose que j' ai oublié ?
Membro registado
130 mensagems
Popularité : +0 (4 votes)
Publicado em setembro, 21 2018 - 9:20 AM
Bonjour,

Up, s' il vous plait.
Membro registado
102 mensagems
Popularité : +4 (4 votes)
Publicado em setembro, 21 2018 - 11:55 AM
Bonjour,
Il s'agit d'une connexion sécurisée que vous utilisez avec Paypal.
C'est probablement le champ HTML qui pose pb dans les redirections : essayez d'ouvrir la page de connexion à Paypal sur une page blanche externe à votre site.
Membro registado
130 mensagems
Popularité : +0 (4 votes)
Publicado em setembro, 21 2018 - 12:01 PM
Bonjour Dav,

Merci de votre réponse, cependant, je ne suis pas sûr de comprendre. Comment ouvrir la page de connexion à Paypal sur une page blanche externe à mon site ?
Membro registado
102 mensagems
Popularité : +4 (4 votes)
Publicado em setembro, 21 2018 - 2:26 PM
Au lieu de créer un bouton dans le champ HTML pour y ouvrir la page Paypal à l'intérieur même de votre page, ouvrez-là directement en pleine page.

Puisque ca fonctionne en php, vous pouvez utiliser un bouton classique WebDev. Son clic envoie tous les paramètres dans une procédure PHP qui
- formate la requête avec tous les bons paramètres : montant, identifiants, URLretour, URLCancel...,
- établit la connexion avec Paypal (via curl par exemple),
- vérifie s'il n'y a pas d'erreur,
- récupère le token,
- mémorise la transaction en attente dans une BDD,
et se termine par un
header('Location: https://www.paypal.com/webscr&cmd=_express-checkout&useraction=commit&token='.$token);
qui redirige vers la page Paypal en dehors de votre site.
L'utilisateur fait ce qu'il a à faire et Paypal redirige vers votre site avec le token ce qui permet de reprendre la main et de MAJ la transaction dans la BDD.
Membro registado
130 mensagems
Popularité : +0 (4 votes)
Publicado em setembro, 24 2018 - 11:19 AM
Rebonjour,

Du coup, j' ai essayé votre requête Dav, hélas, ça ne semble pas marcher. J' ai repris du code php, que j' ai vu sur GitHub, avant de le générer en dynamique PHP, hélas, ça n' a pas marché.

Voilà le code ipn.php:

<?php
//permet de traiter le retour ipn de paypal
$email_account = "IDENTIFIANT@VENDEUR.COM";
$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}




$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: www.sandbox.paypal.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];
parse_str($_POST['custom'],$custom);

if (!$fp) {

} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// vérifier que payment_status a la valeur Completed
if ( $payment_status == "Completed") {
if ( $email_account == $receiver_email) {
/**
* C'EST LA QUE TOUT SE PASSE
* PS : tjrs penser à vérifier la somme !!
*/


/**
* FIN CODE
*/
}
}
else {
// Statut de paiement: Echec
}
exit();
}
else if (strcmp ($res, "INVALID") == 0) {
// Transaction invalide
}
}
fclose ($fp);
}


et le formulaire html:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
2 <input name="amount" type="hidden" value="COMBIEN_CA_COUTE" />
3 <input name="currency_code" type="hidden" value="EUR" />
4 <input name="shipping" type="hidden" value="0.00" />
5 <input name="tax" type="hidden" value="0.00" />
6 <input name="return" type="hidden" value="URL_DE_SUCCES" />
7 <input name="cancel_return" type="hidden" value="URL_ANNULATION" />
8 <input name="notify_url" type="hidden" value="URL_NOTIFICATION_PAIEMENT" />
9 <input name="cmd" type="hidden" value="_xclick" />
10 <input name="business" type="hidden" value="IDENTIFIANT_VENDEUR" />
11 <input name="item_name" type="hidden" value="CE QUE JE VENDS" />
12 <input name="no_note" type="hidden" value="1" />
13 <input name="lc" type="hidden" value="FR" />
14 <input name="bn" type="hidden" value="PP-BuyNowBF" />
15 <input name="custom" type="hidden" value="var1=1&var2=lol" />
16 <input type="submit" value="S'abonner" class="btn primary">
17 </form>
Membro registado
102 mensagems
Popularité : +4 (4 votes)
Publicado em setembro, 24 2018 - 3:22 PM
Salut,
D'après ce code, tous vos paramètres de connexion se trouvent dans le formulaire et donc dans le navigateur de tous vos utilisateurs ?!!?

Mon code est tiré d'un vieux tuto d'OpenClassrooms : https://openclassrooms.com/fr/courses/483282-paiement-en-ligne-par-paypal
Depuis que Paypal a effectué une mise à jour de sécurité de ses outils, la sandbox pose des problèmes de certificats SSL.
Je n'ai pas trouvé le moyen la refaire fonctionner depuis : un pb d'URL je pense.
En revanche le code pour les "vrais" paiements fonctionne.
Voici l'ensemble de fichiers que j'utilise : www.gaia-applis.com/Demos/paypal.zip

Sur mon site j'ai un simple bouton qui envoie le montant+id de l'utilisateur à une procédure qui crée la connexion avec Paypal, récupère le token et MAJ ma BDD avant de rediriger vers la page de paiement Paypal. Page qui redirige vers URLReturn.php pour reprendre la main à partir du token, mettre à jour ma BDD et revenir sur mon site.
En faite, la procédure se décompose en 3 requêtes vers Paypal :
SetExpressCheckout -> création de la connexion et du token
GetExpressCheckoutDetails -> récupération des infos de la transaction
DoExpressCheckoutPayment -> validation de la transaction
Membro registado
130 mensagems
Popularité : +0 (4 votes)
Publicado em setembro, 26 2018 - 10:30 AM
Rebonjour,

J' ai essayé hier d' exécuter votre code via PHPExecute (et même PHP Affiche), hélas le code ne s' est pas exécuté...

Ceci étant dit, j' ai testé avec du code tout ce qu' il y a de plus simpliste (un echo php) et ça n' a pas marché non plus :/

Juste pour préciser, vos scripts sont bien en dehors de Webdev ?
Membro registado
102 mensagems
Popularité : +4 (4 votes)
Publicado em setembro, 26 2018 - 6:43 PM
Bonsoir,
Il faut créer une procédure globale WEBDEV codée en php et y coller le code du fichier procedure.php :
function appelPaypal($montant, $id...)
{
include('paypal_fonction_api.php'); //attention : chemin relatif aux pages du site !!
$requete = construit_url_paypal();
...

Les autres fichiers php sont effectivement des fichiers externes à WEBDEV mais à mettre à côté de vos pages ou dans un répertoire dédié mais attention aux chemins relatifs !!!

Ensuite il suffit de créer un bouton qui appel la procédure en lui envoyant les paramètres : appelPaypal(montant, id...)
pas besoin de phpExecute
Publicado em novembro, 20 2018 - 12:12 PM
Bonjour

Je suis justement en train d'installer paypal, au lieu de partir à zéro avec un bouton paypal, tu es mieux de prendre la composante paiement sécurisé , et utiliser uniquement la partie paypal, cela va t'éviter bien des soucis. De mon côté mon souci vient du fait que cette composante n'est pas capable de prendre les dollars ( Canadien et Américain ) comme monnaie de paiement. Bonne chance. SI quelqu'un a une solution, je suis preneur et merci d'avance
Jean Pierre
Publicado em fevereiro, 14 2019 - 7:11 PM
BONJOUR,
J'ESSAYE D'INTÉGRER LE COMPOSANT DE PAIEMENT SÉCURISÉ DE WEBDEV DANS MON PROJET
MAIS CE DERNIER M'AFFICHE UN MESSAGE AU MOMENT DE L'APPEL DU BOUTON QUI SE TROUVE DANS LE CHAMP HTML
L'ERREUR
LE SERVICE NE FONCTIONNE PAS ACTUELLEMENT VEILLEZ RÉESSAYER PLUS TARD UN TRUC DU GENRE
MERCI POUR VOS RÉPONSES