Projeto em Php 7.4, php, twig e js, nada além. Preciso passar meus processos crons para webhooks para fins de deixar o servidor mais leve e melhor otimizado, todas as crons estão prontas e rodando perfeitamente, daria para usar como base, as crons são responsáveis por:
verificar o status do pedido:
pendente, em progresso, cancelado, parcialmente concluído, concluído, falha.
Enviar reposição de pedidos:
Caso identifique queda dos serviços comprados para as redes sociais, a cron será responsável por enviar para o provedor de serviços a reposição (completar o que falta do pedido) dos serviços durante a garantia, que pode variar de 15 a 999 dias.
Sincronizar preços
Sempre que o provedor de serviços muda os valores, o status do pedido, tempo médio de início, as crons atualizam diretamente no banco de dados, para ter uma noção, aqui está uma parte do código:
$smmapi = new SMMApi();
// Obter os registros da tabela service_api que correspondem aos service_api da tabela services
$services_query = $conn->prepare("Select s.api_service, s.category_id, s.service_api, a.api_key, a.api_url
from services s
join service_api a on s.service_api =
a.id");
$services_query->execute();
$services = $services_query->fetchAll(PDO::FETCH_ASSOC);
if (!empty($services)) {
foreach ($services as $service) {
$api_key = $service['api_key'];
$api_url = $service['api_url'];
// Fazer a chamada à API usando os parâmetros key e action
$api_response = $smmapi->action(array(
'key' => $api_key,
'action' => 'services'
), $api_url);
// Exibir os resultados dos serviços da tabela services
echo "API Service: " . $Service['api_service'] . "<Br>";
echo "Service API: " . $Service['service_api'] . "<Br>";
echo "Categoria ID: " . $Service['category_id'] . "<Br>";
// Processar a resposta da api e atualizar os registros
if (!empty($api_response)) {
foreach ($api_response as $response) {
if ($response->service == $service['api_service']) {
// echo "api service: " . $Response->service . "<Br>";
// echo "Name: " . $Response->name . "<Br>";
// echo "Category: " . $Response->category . "<Br>";
// echo "Rate: " . $Response->rate . "<Br>";
// echo "Min: " . $Response->min . "<Br>";
// echo "Max: " . $Response->max . "<Br>";
// echo "Type: " . $Response->type . "<Br>";
// echo "Description: " . $Response->desc . "<Br>";
// echo "Dripfeed: " . $Response->dripfeed . "<Br>";
// echo "Refill: " . $Response->refill . "<Br>";
// Montar o json
$json_data = array(
"min" => $response->min,
"max" => $response->max,
"rate" => $response->rate,
"refill" => $response->refill,
"currency" => "usd"
);
// atualizar a coluna api_detail, service_name, service_max, service_min na tabela services
$update_detail = $conn->prepare("update services set service_max=:service_max, service_min=:service_min, api_detail=:api_detail, service_name=:service_name where api_service=:api_service");
$update_detail->execute(array(
"api_detail" => json_encode($json_data),
"service_name" => $response->name,
"service_min" => $response->min,
"service_max" => $response->max,
"api_service" => $response->service
));
// atualizar a coluna category_name na tabela categories
$update_category = $conn->prepare("update categories set category_name=:category_name where category_id=:category_id");
$update_category->execute(array(
"category_name" => $response->category,
"category_id" => $service['category_id']
essa é a cron de sincronização de valores.
O projeto não precisa ser com webhooks, pode ser outra forma que faça tudo isso fora do meu servidor ou ao menos otimize 95% do meu código.
Tem outras funcionalidades nas crons e no código em si, preciso desse projeto para 1 ou 2 semanas após o início do projeto. Não tenho interesse em negociação por fora da WORKANA, não insista.
Contexto Geral do Projeto
Preciso de OTIMIZAÇÃO, velocidade, funcionalidade perfeita, se desempenhar bem, vários outros projetos o aguarda.
Prazo de Entrega: 02 de Setembro de 2023