Paiement
Le module de paiement fournit des fonctionnalités liées à l'achat d'articles dans le jeu et aux paiements forfaitaires. Après avoir lu la section pertinente pour votre moteur de jeu sur la page Introduction à JOGOS_SDK
, vous pouvez utiliser les fonctions associées comme suit :
window.JOGOS_SDK.payment;
Achats intégrés aux applications (In-App Purchase)
Étape 1 : Créer un ID de produit
- Créez des produits sur la page Information / Purchase du backend développeur.
- Remarque : Les ID de produit ne peuvent pas être dupliqués au sein d'un même jeu.
Étape 2 : Initier une commande
- Lorsqu'un joueur a besoin d'acheter un objet dans le jeu, vous pouvez appeler cette interface sur le bouton d'achat pour ouvrir la fenêtre de paiement Jogos.
- Le développeur doit transmettre l'ID du produit (goodsId). Après avoir ouvert avec succès la fenêtre de paiement, un numéro de commande est retourné. Ultérieurement, le développeur peut utiliser ce numéro de commande pour interroger les informations relatives à cette commande.
goodsId
est l'ID du produit que vous avez créé dans le backend développeur.
// Retourne le numéro de commande en cas de succès
let orderNo = await window.JOGOS_SDK.payment.buyGoods(goodsId: string);
Étape 3 : Attendre que l'utilisateur effectue le paiement
Souscrire à la notification d'achèvement du paiement de la commande depuis le client
Il peut y avoir un délai important entre le moment où un joueur passe une commande et le moment où le paiement est effectué avec succès. Les développeurs peuvent utiliser cette interface pour s'abonner aux messages de succès de paiement du joueur. Lorsqu'un joueur paie avec succès, la plateforme notifiera le callback abonné, informant activement le développeur que la commande a été payée et en retournant les informations les plus récentes sur la commande.
window.JOGOS_SDK.payment.subscribeOrderPaid(callbackFn: (order: PaymentOrder) => void);
Étape 4 : Livrer les marchandises et notifier la plateforme
Traiter la livraison côté client (Jeux standalone)
Lorsque le développeur sait que le joueur a payé avec succès, il traite automatiquement la distribution des récompenses et appelle cette interface pour notifier la plateforme que la livraison est effectuée.
await window.JOGOS_SDK.payment.deliverGoods(orderNo: string);
Méthode via intégration du "Serveur de Jeu" :
Pour les API liées à l'intégration du serveur, veuillez consulter la page Interface d'Intégration Serveur
.
Autres Interfaces
Informations sur la Commande
Interrogez les informations détaillées d'une commande en fonction de son numéro. La structure de la commande est la suivante :
// Commande de Paiement
export interface PaymentOrder {
// ID du Jeu
gameId: number;
// Nom du Jeu
gameName: string;
// ID de l'Utilisateur
userId: number;
// Numéro de Commande
orderNo: string;
// ID du Produit
productId: string;
// Nom du Produit
productName: string;
// Devise
currency: string;
// Pays
country: string;
// Remise
discount: number;
// Déduction de la Monnaie Jogos (Points)
calorcoin: number;
// Montant Payé
paid: number;
// Canal de Paiement
channel: string;
// Type de Paiement
paymentType: string;
// Numéro de Transaction de Paiement
paymentNo: string;
// Marchandises Déjà Livrées
deliverGoods: boolean;
// Statut de la Commande : pending (en attente), fail (échec), cancel (annulé), expire (expiré), success (succès), refunding (remboursement en cours), refunded (remboursé), refund-fail (échec du remboursement)
status: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded' | 'refund-fail';
// Heure de Création de la Commande
createTime: String;
// Numéro de Remboursement
refundNo: String;
// Description du Remboursement
refundDescription: String;
// Heure de Demande de Remboursement
refundTime: String;
// Heure de Remboursement Réussi
refundedTime: String;
}
Obtenir les Informations de la Commande
// Retourne les informations de la commande en cas de succès
let order = await window.JOGOS_SDK.payment.getOrderDetail(orderNo: string);
Obtenir la Liste des Commandes
Les développeurs peuvent utiliser cette interface pour interroger les commandes d'états spécifiques. Retourne une liste de commandes en cas de succès. La structure d'information de la commande est la même que celle des détails de la commande.
// Retourne la liste des commandes en cas de succès
let orderList = await window.JOGOS_SDK.payment.getOrderList(
status?: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded',
pageNo?: number, // Numéro de page : par défaut 1
pageSize?: number // Nombre d'enregistrements par page : par défaut 20
);
Jeux en Achat Unique (Buy-to-Play)
- Définissez votre jeu sur "Game Pricing" (type achat unique) dans le backend développeur et définissez le prix de votre jeu.
- Créez deux versions de soumission pour votre jeu : une Version d'Essai (Trial) et une Version Complète (Full).
- Version d'Essai : Il est recommandé de supprimer les ressources de niveaux inaccessibles au joueur, les modèles, textures, musiques, etc., en ne conservant que le contenu disponible pour l'essai. Empaquetez et uploadez cette version séparément.
- Version Complète : La version où les joueurs ont accès au contenu complet du jeu.
- Configurez un bouton d'achat dans la version d'essai :
- Lorsque le joueur termine l'essai, par exemple en atteignant le dernier niveau du Chapitre 1 dans la version d'essai, et a besoin d'acheter la version complète du jeu, concevez une interface pour "Vendre la Version Complète" avec un bouton d'achat :
- Le bouton d'achat peut appeler l'interface
buyOut
pour ouvrir la fenêtre de paiement de la plateforme Jogos, permettant aux joueurs d'acheter rapidement la version complète du jeu. - Une fois l'achat réussi par l'utilisateur, la plateforme Jogos passera automatiquement à la version complète pour que le joueur continue à jouer. Aucun traitement supplémentaire n'est requis par le développeur.
- Maintenez les numéros de version de la Version d'Essai et de la Version Complète identiques. La plateforme Jogos migrera automatiquement les sauvegardes utilisateur vers la version complète.
- Après un paiement réussi, un numéro de commande est retourné. Le développeur peut utiliser ce numéro de commande pour interroger les informations relatives à cette commande.
// Retourne le numéro de commande en cas de succès
let orderNo = await window.JOGOS_SDK.payment.buyOut();