Paiement
Si le module associé à votre application est de type "Vente - encaissement paramétrable" (SellingCustomPayee), StockTicket sera l'intermédiaire entre votre module de vente et le module de "Connecteur de paiement" associé.
La liste des méthodes de paiement disponibles pour le panier courant sera fournie par StockTicket en appelant la méthode GetPaymentMethods.
Chaque méthode de paiement disponible sera associée à un identifiant unique (paymentMethodId), qui devra être utilisé pour initier le paiement via la méthode InitPayment.
Finalisation d'un panier et encaissement géré par StockTicket
Lorsque StockTicket est en charge de l'encaissement du paiement, la finalisation d'un panier et sa transformation en une commande est déclenchée par l'appel à la méthode InitPayment de l'API Basket, y compris dans les cas où le panier ne contient que des produits ayant un montant à zéro.
StockTicket propose plusieurs méthodes de paiement pour finaliser les achats effectués via la plateforme, en fonction du contexte.
Info
Dans le cas d'un panier contenant uniquement des produits gratuits (montant total du panier égal à zéro), la méthode GetPaymentMethods retourne une méthode de paiement système, permettant de finalisation la commande dans ce cas précis.
Configuration requise
Afin de pouvoir appeler la méthode InitPayment, le module de vente utilisé doit être de type "Vente - encaissement paramétrable" (SellingCustomPayee), qui permet de gérer un paiement personnalisé.
De plus, il est nécessaire d'avoir associé une instance de module de paiement au module de vente concerné dans le back-office StockTicket, dans le champ "Connecteurs de paiement rattachés".

Tip
Afin de pouvoir sélectionner un module de paiement dans la liste des "Connecteurs de paiement rattachés",
vous devez au préalable avoir souscrit à une instance publique ou avoir créé votre propre instance d'un
module de type "Connecteur de paiement" (PaymentConnector).
Info
Il est possible de sélectionner et d'associer plusieurs modules de paiement à un module de vente.
La méthode GetPaymentMethods retournera alors la liste combinée des méthodes de paiement fournies par chacun des modules de paiement associés.
Consultation de la commande créée après le paiement
L'appel à la méthode InitPayment attend en paramètre l'identifiant du panier à finaliser ainsi que l'identifiant de la méthode de paiement choisie, ainsi que 3 urls:
- "paymentSuccessUrl": l'url de redirection de l'utilisateur final après un paiement réussi.
- "paymentErrorUrl": l'url de redirection de l'utilisateur final en cas d'erreur lors du paiement.
- "paymentCancelUrl": l'url de redirection de l'utilisateur final en cas d'annulation du paiement.
Ces urls représentent les points de retour finaux du processus de paiement vers votre application.
L'appel à la méthode InitPayment retourne un objet de type PaymentInitModel, contenant les informations nécessaires pour poursuivre le processus de paiement et notamment:
- un champ booléen initiated indiquant si le processus de paiement a été correctement initialisé.
- un champ paymentUrl, qui doit être utilisé pour rediriger l'utilisateur final vers l'interface de paiement.
Si le paiement est correctement initialisé, l'utilisateur final doit être redirigé vers l'url fournie dans le champ paymentUrl pour poursuivre le processus de paiement.
A la fin du processus de paiement, l'utilisateur final sera redirigé automatiquement vers l'une des trois urls fournies en paramètre, en fonction du résultat du paiement, complétée de plusieurs paramètres.
Dans tous les cas, un paramètre status est ajouté : success en cas de succès, sinon failed ou canceled.
Dans le cas du succès du paiement, l'url de redirection sera complétée des paramètres suivants:
- transactionRequestId : l'identifiant unique de la demande de transaction de paiement.
- orderToken: un token unique permettant d'identifier la commande créée après le paiement.
Le token de commande orderToken) peut être utilisé pour consulter les détails de la commande créée en appelant la méthode /Order/GetDetail (voir la rubrique "Commandes").
Finalisation d'un panier et paiement géré par le module de vente
Dans le cas où le module de vente utilisé est de type "Vente - encaissement intégré" (SellingFixedPayee), le processus de paiement d'un panier est délégué au module de vente concerné.
Celui-ci gère alors directement le paiement, et StockTicket n'intervient pas dans le processus de paiement.
Le module prévient StockTicket après le succès du paiement pour déclencher la création de la commande.
Pour cela, il appellera aussi la méthode InitPayment mais avec des paramètres différents.
{
"useExternalPayment": true,
"externalPaymentId": "<ref_externe>"
}
Tip
Dans la cas d'un appel à InitPayment pour un paiement externe, la méthode retournera directement
un identifiant de commande sous la forme d'un token dans la propriété OrderToken.
{
"transactionRequestId": "string",
"initiated": true,
"providerPaymentIntentId": "string",
"basketDetail": null,
"orderToken": "string"
}