Connectez WHMCS à HandyPay pour des factures ponctuelles et des abonnements récurrents tout en gardant le test et la facturation en direct complètement séparés.
Liste de contrôle de configuration
- Créez une clé API dans le portail marchand. Commencez par un
hp_test_La clé. - Conservez la clé dans la configuration WHMCS gateway. Ne le placez jamais dans JavaScript côté client ou dans un modèle public.
- Utilisation
https://api.handypay.me/api/v1comme la base de API URL. - Enregistrer un paramètre webhook qui peut recevoir des événements de paiement et de cycle de vie d'abonnement.
- Exécuter une facture de test complète avant de remplacer la clé par une
hp_live_La clé.
Essai en toute sécurité
Les clés de test utilisent un compte de test dédié. Produits, clients, paiements, abonnements et webhooks créés avec une clé de test ne peuvent pas apparaître dans l'activité en direct.
curl https://api.handypay.me/api/v1/test-payments \
-H "Authorization: Bearer hp_test_your_api_key_here"La même activité est visible sous Test Mode dans le portail marchand HandyPay.
Comportement de la vérification
Créez une session de paiement hébergée pour chaque facture WHMCS. HandyPay affiche les méthodes de paiement éligibles pour le marchand, la monnaie, le client et l'appareil. La carte de paiement reste disponible lorsqu'une méthode supplémentaire n'est pas admissible.
curl -X POST https://api.handypay.me/api/v1/payment-sessions \
-H "Authorization: Bearer hp_test_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"line_items": [{
"amount": 4999,
"currency": "usd",
"name": "WHMCS invoice #1042",
"quantity": 1
}],
"customer_email": "buyer@example.com",
"success_url": "https://billing.example.com/payment-complete",
"cancel_url": "https://billing.example.com/viewinvoice.php?id=1042",
"metadata": { "whmcs_invoice_id": "1042" }
}'Google Pay est déjà activé. Il n’y a aucun champ Google Pay à ajouter au module. Stripe Checkout l’affiche automatiquement lorsque le client et le paiement sont admissibles.
- Effectuez le test dans un navigateur pris en charge, sur un appareil compatible doté d’une carte active dans Google Wallet.
- N’utilisez pas de fenêtre privée ou de navigation incognito et autorisez le navigateur à vérifier les moyens de paiement enregistrés.
- Google Pay est signalé comme un portefeuille de carte ; la session Checkout et le flux de webhooks existants continuent donc de rapprocher la facture WHMCS.
Abonnements et sièges
Créez un produit d'abonnement une fois, puis créez une session d'abonnement pour le client. Jeu quantity pour la facturation par siège. Les abonnements actifs peuvent être mis à jour sans les remplacer.
curl -X PATCH https://api.handypay.me/api/v1/subscriptions/sub_123/quantity \
-H "Authorization: Bearer hp_test_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"quantity": 8,
"proration_behavior": "create_prorations"
}'create_prorationsplace le réglage sur la facture suivante.always_invoicefacture immédiatement le rajustement.nonechange le nombre de sièges sans réglage proportionnel.
Webhooks
Enregistrez le callback URL WHMCS avec le même mode de clé utilisé par la caisse. Un paramètre de test ne reçoit que des événements de test, et un paramètre de vie ne reçoit que des événements de l'ordre de l'événement.
curl -X POST https://api.handypay.me/api/v1/webhook-endpoints \
-H "Authorization: Bearer hp_test_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://billing.example.com/modules/gateways/callback/handypay.php",
"events": [
"payment_intent.succeeded",
"payment_intent.payment_failed",
"customer.subscription.updated",
"customer.subscription.deleted"
]
}'Dépannage
Google Pay ne s’affiche pas : vérifiez que Google Wallet contient une carte active, utilisez un navigateur et un appareil pris en charge hors navigation privée et autorisez le navigateur à vérifier les moyens de paiement enregistrés. Stripe peut encore masquer un portefeuille pour une région ou une transaction non prise en charge ; la carte reste la solution de repli prise en charge.
Un paiement d'essai est manquant: confirmer la demande utilisée hp_test_ clé, puis vérifier l'espace de travail du mode test portail ou GET /v1/test-payments.
WHMCS ne met pas à jour: confirmer le callback URL est public HTTPS, vérifier la signature webhook contre le corps de la demande brute, et de retourner une réponse 2xx réussie seulement après la mise à jour de la facture réussit.