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();
}
}