Avec PayPal, je peux créer très facilement un bouton BuyNow, contenant mes informations commerciales, prix, taxes, frais de port, etc. Est-ce possible dans SagePay?Comment créer un bouton SagePay BuyNow?
Répondre
Le système souhaité est appelé SagePay Form en ce qui concerne la similarité avec le bouton BuyNow de PayPal + le processus PDT. Tout d'abord, vous devez créer un formulaire comme ceci:
<form action="https://live.sagepay.com/gateway/service/vspform-register.vsp" method="POST" id="SagePayForm" name="SagePayForm">
<input type="hidden" name="VPSProtocol" value="2.23" />
<input type="hidden" name="TxType" value="PAYMENT" />
<input type="hidden" name="Vendor" value="<?= $YOUR_VENDOR_LOGIN_NAME ?>" />
<input type="hidden" name="Crypt" value="<?= $PAYMENT_CRYPT ?>">
<input type="image" src="images/buynow-sagepay.png" />
</form>
(On peut échanger l'URL en temps réel avec un test d'un ici: https://test.sagepay.com/gateway/service/vspform-register.vsp)
Quant au PAYMENT_CRYPT $, vous devez d'abord créer une chaîne comme ceci:
VendorTxCode=406227821909
&Amount=32.00
&Currency=USD
&Description=1 ACME Widget
&SuccessURL=http://example.com/success.php
&FailureURL=http://example.com/fail.php
&BillingSurname=Smith
&BillingFirstnames=John
&BillingAddress1=123 Main Street
&BillingCity=Anywhere
&BillingPostCode=29555
&BillingCountry=USA
&DeliverySurname=Smith
&DeliveryFirstnames=John
&DeliverAddress1=123 Main Street
&DeliveryCity=Anywhere
&DeliveryPostCode=29555
&DeliveryCountry=USA
Il est un peu stupide pourquoi ils ont besoin certaines de ces informations lorsque PayPal ne est pas, mais oh bien. Les docs disent clairement que la chose commettra une erreur si elle ne reçoit pas des valeurs légitimes comme un vrai code postal qui valide pour cette ville et ce pays, et elle est aussi utilisée pour l'arbitrage des conflits. Notez dans mon exemple qu'il n'y a pas de taxe ou d'expédition comme PP, donc vous aurez besoin de l'afficher si nécessaire avant d'afficher ce bouton BuyNow, ou peut-être sur votre page de confirmation ou email de confirmation que vous envoyez. Ils ont un "& Basket =" paramètre où la taxe peut être spécifiée, mais il est redondant à ce que vous pouvez afficher sur votre page de formulaire et pas nécessaire. Par conséquent, la valeur & Montant doit être la valeur brute et non nette. Il n'y a pas non plus de valeur de quantité (que le paramètre de panier & peut être utilisé pour spécifier). Plus que probablement, vous trouverez le paramètre Panier & juste redondant à ce que vous pouvez déjà afficher sur votre propre formulaire au cours du processus de commande. Donc, c'est pourquoi mon exemple ne l'incluait pas. Comme pour le VendorTxCode, c'est quelque chose que vous créez afin que vous puissiez suivre la commande au client approprié. Ce $ PAYMENT_CRYPT est ensuite chiffré en utilisant le codage XOR + Base64, en utilisant le mot de passe de chiffrement fourni par SagePay. Ils ont une option de chiffrement AES + Binhex, mais c'est trop et votre serveur doit avoir la bibliothèque mcrypt activée. Certains plans d'hébergement partagé STILL n'ont pas encore activé! Ils fournissent un exemple XOR, mais c'est un exemple typique de cours en informatique où vous parcourez chaque code ASCII du mot de passe et chaque code ASCII des données et prenez le complément de l'autre (le processus XOR). Une fois cela fait, alimentez-le via le codage Base64 pour un transfert POST sécurisé. L'encodage Base64 utilise la fonction intégrée de PHP.
La réponse de ceci est plus proche du processus PDT de PayPal que du processus IPN de PayPal. Ils dirigent quelqu'un à success.php et fail.php avec une réponse URL cryptée via GET que vous pouvez déchiffrer et analyser (base64 decode + XOR), mais la difficulté est que le client peut fermer le formulaire avant d'attendre la page pour réorienter. Dans ce cas, on verra cela dans leur panneau de contrôle dans SagePay et devrez remplir la transaction manuellement pour le client.
Sur les success.php et fail.php, c'est à vous de décider ce que vous voulez faire. Une fois que la chaîne de requête & est cryptée, vous pouvez analyser si la transaction est terminée ou non en regardant "OK".
Notez que vous ne devez pas aller directement à success.php. Vous pouvez le rendre comme success.php? Custom = value pour transmettre des informations supplémentaires sur la transaction que vous pouvez analyser.Leur code va automatiquement comprendre ceci et virer sur le paramètre crypt = & à la fin. La même chose vaut avec fail.php.
Ils ont des moyens pour que SagePay envoie des emails au client et au vendeur, mais c'est vraiment exagéré parce que vous pouvez faire la même chose dans votre propre code PHP avec l'instruction mail() lors de la commande.
REFERENCE: Notez que l'URL de doc suivante peut changer dans le futur. Pour obtenir la dernière version du document, visitez le site Web, inscrivez-vous en tant que développeur (un processus de 1 minute), et effectuez une recherche sur "protocole de formulaire".
EDIT: New Link (25 octobre 2017)-https://www.sagepay.co.uk/file/25041/download-document/FORM_Integration_and_Protocol_Guidelines_270815.pdf
- 1. bouton Paypal buynow ne fonctionne pas
- 2. Sagepay NotificationUrl
- 3. Comment créer un bouton?
- 4. Cartthrob Erreur Sagepay
- 5. Descrypt SagePay chaîne vb.net
- 6. Magento Sagepay Payment response Magentopatchupdate.com
- 7. Django/Sagepay error
- 8. Comment créer un bouton "Copier"?
- 9. Comment créer un bouton multiligne
- 10. créer un bouton personnalisé
- 11. Sagepay/.net/Erreur de réponse
- 12. Créer un bouton qui crée un bouton
- 13. SagePay Direct Paiement Intégration C#
- 14. Sagepay CURL affichage des données
- 15. Créer un bouton comme le bouton Digg
- 16. Créer un bouton animé
- 17. HTML: comment créer un bouton "enregistrer sous"?
- 18. iPhone: Comment créer un simple bouton Terminé?
- 19. Comment créer un bouton statique sous ScrollView?
- 20. comment créer un bouton pointu sur Android?
- 21. Comment créer un bouton Div a entier?
- 22. Comment créer un bouton Partager sur Hi5
- 23. Comment créer un bouton email sur Android?
- 24. Comment créer un bouton pour activer JavaScript?
- 25. Comment créer un bouton par programmation?
- 26. Windows Explorer: Comment créer un bouton supplémentaire?
- 27. Comment créer un bouton de recherche RESTful?
- 28. Comment créer un hyperlien de bouton ctrl
- 29. Comment créer un bouton lié à Safari?
- 30. comment créer un bouton dans cocos2d?
lien mort bas. J'obtiens l'erreur - 5080: l'enregistrement de transaction de formulaire a échoué. En utilisant l'exemple ci-dessus. Y a-t-il un moyen de déboguer? Y at-il des exemples de travail? Est-ce que la chaîne peut être ajoutée directement dans le formulaire ou doit-on en faire plus? – Jon