Sites e aplicativos (Request na API)

Sabemos que vender produtos em seu website ou aplicativo é algo complicado que demanda tempo e muito estudo. Com o Pixcord você consegue automatizar este processo em questão de minutos, literalmente!

Passo-a-passo demonstrativo

1. No Pixcord...

Configurando o Produto

Após realizar as configurações básicas do produto, crie uma ação do tipo Request em API

2. No Website...

No exemplo estaremos utilizando um website feito em Express e Mongoose, mas utilize o que for mais adequado para você!

Crie uma rota API do tipo POST, como por exemplo /premiumactive

app.post("/api/premiumactive", async (req, res) => {

})

3. No Pixcord...

Configurando o Produto

  • Após realizar as configurações básicas do produto, crie uma ação do tipo Request em API

  • Defina a URL com a rota criada para seu aplicativo

  • Pronto! A configuração do produto já está pronta! Agora basta salvar.

4. No Website...

Por segurança, todas as requisições feitas pelo Pixcord contém x-pixcord-key nos seus headers. Isso evita que pessoas não autorizadas realizem um request válido em sua API.

Salve a chave encontrada na página Chaves do Pixcord em um arquivo seguro. Como por exemplo, em um arquivo .env.

PIXCORD_KEY=PIXCORD_KEY-1234567890_abcdefghijklmnopqrstuvwxyz

Atenção! Alguém com esta chave conseguirá realizar requisições maliciosas em seu website! Guarde com segurança.

Voltando para a rota da API, verifique se a chave enviada nos headers do request é igual à chave salva. Caso não seja, retorne com um erro.

app.post("/api/premiumactive", async (req, res) => {
    const pixcordKey = req.headers["x-pixcord-key"];
    if (pixcordKey != process.env.PIXCORD_KEY) return res.status(403).json({ message: "Chave do Pixcord inválida." })
})

5. Estrutura do request

Os requests enviados pelo Pixcord contém as seguintes infomações:

headers: {
  "x-purchase-id": "ID da compra",
  "x-pixcord-key": "Chave de segurança do Pixcord citada acima",
  "x-guild-id": "ID do servidor da compra"
}, 
body: {
  fields: {
    "nome do campo": "valor do campo"
  },
  purchase: {
    id: "ID da compra",
    payment_method: "Método de pagamento",
    productId: "Id produto",
    status: "Status da compra",
    subtotal_value: "Valor total da compra, sem desconto",
    total_value: "Valor total da compra",
    discount_value: "Valor do desconto",
    usedCouponCode: "Código do cupom utilizado" || null,
    usedCouponId: "ID do cupom utilizado" || null,
    unit_value: "Preço da unidade do produto",
    quantity: "Quantidade comprada",
    loggedUser: "ID do usuário logado" || null
  }
 }

Sabendo disso, crie os campos necessários no produto do Pixcord para que o usuário seja informado, e o acesse utilizando <Request>.body.fields["nome do campo"] em sua API.

6. Continuando nosso código...

  • Obtenha o username utilizando req.body.fields["username"]

  • Procure pelo usuário no banco de dados. (await UserSchema.findOne({ username: username }))

  • Caso não encontre, retorne um erro informando.

  • Defina que o usuário é premium (user.premium = true)

  • Salve o usuário! (user.save())

  • Retorne uma mensagem indicando sucesso! E pronto! Todo o sistema está pronto, sua integração com o Pixcord já está funcionando! Em alguns simples passos, você já pode vender produtos em seu website!

app.post("/api/premiumactive", async (req, res) => {
    const pixcordKey = req.headers["x-pixcord-key"];
    if (pixcordKey != process.env.PIXCORD_KEY) return res.status(403).json({ message: "Chave do Pixcord inválida." });
    
    const username = req.body.fields["username"];
    
    const user = await UserSchema.findOne({ username: username });
    if (!user) return res.status(404).json({ message: "Usário não encontrado" });
    
    user.premium = true;
    await user.save();
    
    return res.status(200).json({ message: `Premium ativado com sucesso para ${user.username}!` })
})

Este é um exemplo simples, mas com seu código o céu é o limite!

Atualizado