Pagamento
O módulo de pagamento oferece funcionalidades relacionadas à compra de itens dentro do jogo e ao pagamento de versão completa. Após ler a página de Introdução ao JOGOS_SDK
e a seção relacionada ao motor do seu jogo, você pode usar as funcionalidades da seguinte forma:
window.JOGOS_SDK.payment;
Compra dentro do aplicativo
Passo 1: Criar ID do produto
- Crie um produto na página Information / Purchase do painel do desenvolvedor.
- Observe que o ID do produto não pode ser repetido dentro do mesmo jogo.
Passo 2: Iniciar pedido
- Quando o jogador precisar comprar um item dentro do jogo, você pode chamar esta interface no botão de compra do produto para abrir a janela de pagamento Jogos.
- O desenvolvedor precisa passar o ID do produto. Após abrir a janela de pagamento com sucesso, o número do pedido será retornado. Você pode usar este número para consultar informações relacionadas ao pedido posteriormente.
- goodsId é o ID do produto criado no painel do desenvolvedor.
// Retorna o número do pedido em caso de sucesso
let orderNo = await window.JOGOS_SDK.payment.buyGoods(goodsId: string);
Passo 3: Aguardar o pagamento do usuário
Assinar notificação de conclusão de pagamento do pedido no cliente
Após o jogador fazer o pedido, pode haver um intervalo até o pagamento ser concluído. Os desenvolvedores podem usar esta interface para assinar a notificação de sucesso de pagamento. Quando o pagamento for concluído, a plataforma notificará o callback registrado, informando que o pedido foi pago e retornando as informações mais recentes do pedido.
window.JOGOS_SDK.payment.subscribeOrderPaid(callbackFn: (order: PaymentOrder) => void);
Passo 4: Entregar o produto e notificar a plataforma que o pedido foi entregue
Processamento de entrega pelo cliente (jogos offline)
Após confirmar que o jogador pagou com sucesso, o desenvolvedor deve processar a entrega da recompensa automaticamente e chamar esta interface para notificar a plataforma de que o produto foi entregue.
await window.JOGOS_SDK.payment.deliverGoods(orderNo: string);
Integração via servidor de jogo:
Para APIs relacionadas à integração do servidor, consulte a página: APIs de integração do servidor
.
Outras interfaces
Informações do pedido
Consulte os detalhes de um pedido pelo número. A estrutura do pedido é a seguinte:
// Pedido de pagamento
export interface PaymentOrder {
// ID do jogo
gameId: number;
// Nome do jogo
gameName: string;
// ID do usuário
userId: number;
// Número do pedido
orderNo: string;
// ID do produto
productId: string;
// Nome do produto
productName: string;
// Moeda
currency: string;
// País
country: string;
// Desconto
discount: number;
// Dedução em Jogos coins (pontos)
calorcoin: number;
// Valor pago
paid: number;
// Canal de pagamento
channel: string;
// Tipo de pagamento
paymentType: string;
// Número do pagamento
paymentNo: string;
// Se foi entregue
deliverGoods: boolean;
// Status do pedido: pending: pendente fail: falha cancel: cancelado expire: expirado success: sucesso refunding: em reembolso refunded: reembolsado refund-fail: falha no reembolso
status: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded' | 'refund-fail';
// Hora de criação do pedido
createTime: String;
// Número do reembolso
refundNo: String;
// Descrição do reembolso
refundDescription: String;
// Hora da solicitação de reembolso
refundTime: String;
// Hora do reembolso bem-sucedido
refundedTime: String;
}
Obter informações do pedido
// Retorna as informações do pedido em caso de sucesso
let order = await window.JOGOS_SDK.payment.getOrderDetail(orderNo: string);
Obter lista de pedidos
Os desenvolvedores podem usar esta interface para consultar pedidos com base no status. Em caso de sucesso, retorna uma lista de pedidos com a mesma estrutura da consulta de detalhes.
// Retorna a lista de pedidos em caso de sucesso
let orderList = await window.JOGOS_SDK.payment.getOrderList(
status?: 'pending' | 'fail' | 'cancel' | 'expire' | 'success' | 'refunding' | 'refunded',
pageNo?: number, // Número da página: padrão é 1
pageSize?: number // Registros por página: padrão é 20
);
Jogos de compra única
- No painel do desenvolvedor, defina seu jogo como “Game Pricing” (tipo de compra única) e configure o preço.
- Crie duas versões de envio: versão de teste e versão completa
- Versão de teste: recomenda-se remover assets, modelos, texturas e músicas inacessíveis ao jogador, mantendo apenas o conteúdo jogável. Faça o upload desta versão separadamente.
- Versão completa: versão com todo o conteúdo disponível.
- Adicione um botão de compra na versão de teste:
- Quando o jogador terminar a demo, por exemplo, ao completar o último nível do primeiro capítulo, exiba uma tela e um botão para comprar a versão completa:
- O botão pode chamar a interface
buyOut
para abrir a janela de pagamento da Jogos; - Após a compra bem-sucedida, a plataforma Jogos alternará automaticamente para a versão completa. Nenhuma ação adicional é necessária.
- Mantenha o mesmo número de versão entre demo e versão completa. A plataforma migrará automaticamente o save do jogador.
- Após o pagamento, o número do pedido será retornado. Você pode usá-lo para consultar informações do pedido.
// Retorna o número do pedido em caso de sucesso
let orderNo = await window.JOGOS_SDK.payment.buyOut();