# Distribution

La distribution correspond à la façon dont les acheteurs ajoutent les billets Secutix à Apple Wallet et Google Wallet. Vous pouvez partager un lien de téléchargement hébergé ou intégrer un **Ajouter au Wallet** bouton. Placez l'appel à l'action là où se trouvent déjà les acheteurs.

Points de contact courants :

* E-mail de confirmation (lien hébergé)
* Page de confirmation de commande de la billetterie Secutix (bouton intégré)
* Votre site web (bouton intégré)
* Lien SMS (utile quelques heures avant le spectacle)

La plupart des déploiements combinent plusieurs canaux : **Page de téléchargement hébergée** dans les e-mails transactionnels pour la fiabilité et **bouton « Ajouter au Wallet » intégré (SDK)** pour des sauvegardes instantanées dans la billetterie ou les pages propriétaires.

## Page de téléchargement hébergée (envoyée par e-mail)

C’est le chemin le plus simple pour les acheteurs. Il fonctionne bien lorsque Secutix envoie déjà un e-mail de confirmation après l’achat.

{% hint style="info" %}
Cette page ne requiert pas d’authentification. Les acheteurs peuvent ouvrir l’e-mail quelques minutes avant le spectacle et ajouter les billets à leur Wallet. Ils n’ont pas besoin de se souvenir de leur identifiant et mot de passe de la billetterie.
{% endhint %}

The Wallet Crew expose une page de commande optimisée pour le mobile. Sur iOS, elle affiche le bouton Apple Wallet. Sur Android, elle affiche le bouton Google Wallet. Sur ordinateur de bureau, elle revient à un QR code.

La page liste chaque billet de la commande. Les acheteurs peuvent ajouter des billets depuis le même lien, sans rouvrir l’e-mail.

<div align="center"><figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2F7l989f9t9VW3zeDD8aO5%2Fimage.png?alt=media&#x26;token=f9b898f0-71dd-406a-a303-045c6612807c" alt="Hosted download page on iOS showing the ticket list and Apple Wallet button." width="250"><figcaption><p>Page de téléchargement hébergée sur iOS.</p></figcaption></figure> <figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2F1Ic55PA8E09neBoD1WhO%2Fimage.png?alt=media&#x26;token=64aca2e4-094b-402c-8ad2-59fec4592f82" alt="Hosted download page on Android showing the ticket list and Google Wallet button." width="245"><figcaption><p>Page de téléchargement hébergée sur Android.</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2FZxPmV2VNMuiiOHdnuDCP%2Fimage.png?alt=media&#x26;token=6f5d7f13-fa74-4ab6-b267-5cab1064a0c9" alt="Hosted download page on desktop showing the ticket list and QR code fallback." width="563"><figcaption><p>Page de téléchargement hébergée sur ordinateur de bureau.</p></figcaption></figure></div>

### Modèle d’URL

Utilisez cette URL dans les e-mails de confirmation Secutix. Remplacez `<customdomain>` et `<tenantId>` par vos valeurs.

```
https://<customdomain>/<tenantId>/tickets?ids.secutix.orderToken=$document.order.secretToken
```

### Exigence de mise en page

La page hébergée utilise une mise en page nommée `tickets`. Créez-la dans vos mises en page Wallet Crew.

{% code title="Configuration de mise en page (exemple)" %}

```yaml
type: passList
internationalisation :
  resources :
    - /locales/tickets/
headerImage: /public/header.png
```

{% endcode %}

{% hint style="info" %}
Contactez le support The Wallet Crew si vous avez besoin d’aide pour configurer cette mise en page.
{% endhint %}

## « Ajouter au Wallet » dans la billetterie

Utilisez ceci lorsque vous voulez l’appel à l’action directement dans l’interface de la billetterie. C’est le meilleur flux pour les acheteurs mobiles qui souhaitent sauvegarder le billet immédiatement.

Cette intégration est typiquement mise en œuvre par Secutix. Confirmez qu’elle est incluse dans votre périmètre Secutix si vous ne la voyez pas.

<figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2F3ZMjc8BTqrg952oiaUSQ%2Fimage.png?alt=media&#x26;token=c3e8017b-ac46-448d-843f-0c8d89884191" alt="Add to Wallet button embedded in the Secutix ticket shop order confirmation page."><figcaption><p>Bouton « Ajouter au Wallet » dans la billetterie.</p></figcaption></figure>

## Ajoutez le bouton « Ajouter au Wallet » sur votre site

Utilisez ceci lorsque vous contrôlez la page. Les exemples typiques sont une page de compte, une page « Mes billets » ou une page d’atterrissage post-achat.

Le SDK The Wallet Crew (`cinto`) rend le bouton et détecte l’appareil. Il affiche **Apple Wallet** sur iOS et **Google Wallet** sur Android. Sur ordinateur de bureau, il revient à un QR code.

Il suit les directives de boutons d’Apple et de Google. Il reste compatible via les mises à jour du SDK. Il prend en charge la localisation selon la langue de l’utilisateur. Il protège également l’intégrité de la distribution.

### Prérequis

Avant d’intégrer le SDK, confirmez trois choses. Votre locataire Wallet Crew dispose du bon **Billet d'événement** modèle(s). Wallet Crew est connecté à Secutix via le connecteur Secutix. Vous pouvez modifier la page où vous souhaitez rendre le bouton.

{% hint style="info" %}
L’intégration Wallet Crew Secutix utilise Secutix `movementId` pour identifier de manière unique un pass de billet.
{% endhint %}

### Initialisation du script

Copiez l’extrait prêt à l’emploi depuis les paramètres d’intégration Secutix dans la console d’administration. Chargez-le une seule fois par page, idéalement dans le pied de page de la page.

<figure><img src="https://3097111101-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWLc8AHXW4tdrAXUBfrYF%2Fuploads%2FlADcXWBVmIuoZgWOesfE%2Fimage.png?alt=media&#x26;token=10bc5045-2da4-4333-8072-f19880afd306" alt="SDK snippet shown in the Secutix integration settings page."><figcaption><p>Extrait SDK disponible dans les paramètres d’intégration Secutix.</p></figcaption></figure>

```html
<script type="text/javascript">
(function (n, e, o) {
    var s=n.createElement("script");
    s.src="https://sdk.neostore.cloud/scripts/"+e+"/cinto@1";
    s.async=1;
    s.onload=function(){neostore.cinto.initialize(e,o);n.body.appendChild(s);};
})(document, "{tenantId}", { });
</script>
```

Remplacez `{tenantId}` avec votre ID de locataire Wallet Crew.

### Exemples de boutons

Toutes les options ci-dessous rendent le même bouton. Elles diffèrent uniquement par la façon dont le bouton identifie le billet.

<details>

<summary>Utilisation de <code>movementId</code>, <code>fileId</code>, <code>contactId</code>, et <code>ticketId</code></summary>

```html
<div data-neostore-addToWalletButton
     data-neostore-externalIdentifiers-secutix.movementId-value="<movementId>"
     data-neostore-externalIdentifiers-secutix.movementId-secret="<fileId>|<contactId>|<ticketId>">
</div>
```

</details>

<details>

<summary>Utilisation du calcul HMAC</summary>

```html
<div data-neostore-addToWalletButton
     data-neostore-externalIdentifiers-secutix.movementId-value="<movementId>"
     data-neostore-externalIdentifiers-secutix.movementId-hmac="<hmac_sha256(secret, movementId)>">
</div>
```

</details>

<details>

<summary>Utilisation de <code>passId</code> uniquement (résolu côté serveur)</summary>

```html
<div data-neostore-addToWalletButton
     data-neostore-passId="<passId>">
</div>
```

</details>

### Notes

Maintenez le calcul HMAC côté serveur. N’exposez jamais votre secret de signature dans le navigateur.

Si vous avez besoin de `passId`, récupérez-le côté serveur en interrogeant les passes existants à l’aide de la Secutix `movementId` (cela **ne** crée pas un pass) :

```bash
curl 'https://app.neostore.cloud/api/{tenantId}/passes?pageIndex=0&pageSize=21&filter%5B0%5D.field=identifiers.secutix.movementId&filter%5B0%5D.operator=equals&filter%5B0%5D.value={movementId}' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'X-API-KEY: xxxx'
```

Choisissez le `id` dans la charge utile de la réponse. Cette valeur est le `passId` à fournir au SDK. Référence API : [GET /api/{tenantId}/passes](https://docs.thewalletcrew.io/develop/api-reference/pass-management/pass#get-api-tenantid-passes).

Besoin du guide d’intégration complet pour le site web ? Voir [Sur votre site web](https://docs.thewalletcrew.io/fr/inscription/on-your-website).

## FAQ

<details>

<summary><strong>Pourquoi le lien de la page de téléchargement hébergée ne fonctionne-t-il pas (billet non trouvé / jeton invalide), et comment le corriger ?</strong></summary>

Cela signifie que la page hébergée ne peut pas résoudre la commande à partir du jeton. Le jeton dans l’URL est manquant ou incorrect.

Utilisez exactement le modèle d’URL de cette page. Assurez-vous que la variable de jeton est renseignée. Assurez-vous que votre outil d’e-mail n’écourte pas l’URL. Si la commande a été remplacée, envoyez à l’acheteur un nouveau lien.

</details>

<details>

<summary><strong>Pourquoi le bouton « Ajouter au Wallet » affiche-t-il la mauvaise plateforme (ou uniquement un QR code) ?</strong></summary>

Le bouton sélectionne Apple vs Google vs bureau à partir de l’agent utilisateur. Les navigateurs intégrés peuvent fausser cette détection. « Demander le site de bureau » casse également la détection.

Demandez à l’acheteur d’ouvrir la page dans le navigateur système. Utilisez Safari sur iOS. Utilisez Chrome sur Android. Sur ordinateur de bureau, le QR code est le comportement de repli attendu.

Si cela ne fonctionne toujours pas, un bouton « besoin d’aide » est disponible et les boutons pour Google et Apple Wallet seront affichés.

</details>

<details>

<summary><strong>Un acheteur a plusieurs billets dans une commande. Peut-il ajouter tous les billets en une fois ?</strong></summary>

Oui. Un seul lien hébergé peut afficher tous les billets de la commande.

Les acheteurs ajoutent les billets depuis la liste. Ils n’ont pas besoin d’un lien par billet.

</details>

<details>

<summary><strong>Que se passe-t-il lorsqu’un billet est échangé, réimprimé ou annulé après avoir été ajouté au Wallet ?</strong></summary>

Les réimpressions et les modifications simples mettent généralement à jour automatiquement le pass existant du Wallet.

Les échanges ou remplacements génèrent généralement un nouveau billet. L’ancien pass est alors désactivé. L’acheteur doit ajouter le nouveau pass. La réouverture du lien hébergé suffit généralement.

Les annulations désactivent le pass afin qu’il ne puisse plus être scanné.

Pour la matrice complète des comportements, voir [Mises à jour, cycle de vie et statut d'installation](https://docs.thewalletcrew.io/fr/connecter/ticketing/secutix/updates-lifecycle-and-installation-status).

</details>

## Plus d’informations

Si vous devez encore configurer le contenu du pass, allez à [Modèle de carte wallet & mappage des champs](https://docs.thewalletcrew.io/fr/connecter/ticketing/secutix/wallet-pass-template-and-field-mapping).

Si vous souhaitez valider les échanges, les annulations et le comportement de rafraîchissement, allez à [Mises à jour, cycle de vie et statut d'installation](https://docs.thewalletcrew.io/fr/connecter/ticketing/secutix/updates-lifecycle-and-installation-status).
