Postback Monetizze - HELP PHP

1. Postback Monetizze - HELP PHP

Pedro Henrique de Santis
pedrodesantis

(usa Fedora)

Enviado em 21/09/2020 - 15:11h

Boa tarde, mais uma da minha série de " pedindo ajuda quase todos os dias " .
Bom estou com um projeto em PHP, onde eu tenho que inserir uma chave da Monetizze no meu sistema.
Como nunca fiz isso , eu tenho esse código que deixarei aqui em baixo, minha dúvida é: " Onde tem a chave no codigo , eu preciso inserir a chave da monetizze?"
Porque eu irei pegar todos os produtos que eu tenho cadastrado na MONETIZZE e transferir para o meu sistema .
Seria a melhor maneira de fazeendo esse processo?



<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Order;
use App\User;
use Hash;
use Log;

class MonetizzeController extends Controller
{
public function store()
{
$dados = $_POST;

/**
* Verifica se a chave da monetizze
* corresponde a chave da conta.
*/
$chaveProduto = $dados['produto']['chave'];
$chaveUnica = $dados['chave_unica'];

if($chaveUnica !== '632e48382503b531f6d63f7fdd099e06') {
/**
* Error 401 - Not Authorized
*
* A chave recebida do Postback
* não coincide com a cadastrada
*/
Log::info('A chave cadastrada não é a igual recebida');
Log::info($chaveUnica);
http_response_code(401);
exit();
}

/**
* Faz a identificação do plano do usuário
*/
$plano = null;
$codigoProduto = $dados['produto']['codigo'];
switch ($codigoProduto) {
case 104736:
$plano = 'Bronze';
break;
case 101461:
$plano = 'Prata';
break;
case 101457:
$plano = 'Ouro';
break;
default:
/**
* Error 401 - Bad Request
*
* A chave recebida do Postback
* não coincide com a cadastrada
*/
Log::info('A chave cadastrada não é a igual recebida');
Log::info($chaveProduto);
http_response_code(403);
exit();
break;
}

$user = User::where('email', $dados['comprador']['email'])
->first();
$order = Order::where('id_assinatura', $dados['assinatura']['codigo'])
->first();

if(is_null($user)){ // AND $dados['assinatura']['data_assinatura'] == 101
/**
* Se o usuário for aprovado libera o acesso
* ao mesmo
*/
$user = $this->createUser($dados, $plano);
$this->createOrder($user->id, $dados);
}elseif(is_null($order) AND $user){
/**
* Cria os dados da assinatura
* que o usuário ainda não possuí
*/
$this->createOrder($user->id, $dados);
}else{
/**
* Atualiza os dados da transação
*/
if($dados['assinatura']['data_assinatura'] !== 101){
$user->type = "inadimplente";
$user->save();
}

$order->status = $dados['tipoEvento']['codigo'];
$order->status_assinatura = $dados['assinatura']['status'];
$order->save();
}
}

/**
* Criar os dados do usuário
* de recebidos do Webhook
*/
public function createUser($dados, $plano){
$nome = explode(" ", $dados['comprador']['nome']);

$user = new User;
$user->name = $nome[0];
$user->last_name = $nome[1];
$user->email = $dados['comprador']['email'];
$user->type = $plano;
$user->password = Hash::make('blindado123');
$user->created_at = $dados['assinatura']['data_assinatura'];
$user->updated_at = null;
$user->save();
}

/**
* Criar a transação de acordo com os
* dados recebido do Webhook
*/
public function createOrder($id, $dados)
{
$order = new Order;
$order->id_user = $id;
$order->id_assinatura = $dados['assinatura']['codigo'];
$order->email = $dados['comprador']['email'];
$order->status = $dados['tipoEvento']['codigo'];
$order->data_assinatura = $dados['assinatura']['data_assinatura'];
$order->status_assinatura = $dados['assinatura']['status'];
$order->whatsapp_verificado = null;
$order->nome_gerente = null;
$order->save();
}

}



  


2. Re: Postback Monetizze - HELP PHP

Pedro Henrique de Santis
pedrodesantis

(usa Fedora)

Enviado em 21/09/2020 - 15:24h

Esqueci, eu tenho esse arquivo em todas as pastas, as pastas estão separadas por "setores" ( Main-Master **principal ) , ( Pagina de vendas ,) , ( Quiz ) , ( Advertorial ) .
Esse arquivo api.php existe em todas as 4 pastas em Routes
Eu preciso covnfigurar alguma coisa aqui tbm ?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts