Ir para conteúdo
View in the app

A better way to browse. Learn more.

Portal do Host

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fabio J

Membro
  • Registro em

  • Última visita

  1. Fabio J alterou sua foto pessoal
  2. Estava com problemas com esse Plugins, baixei esse plugin que esta disponível nesse link pagina www.xxhost.com.br/Modulo_whmcs_10-10-2018.zip e desativei a função pagamento recorrente e funcionando 100%.. Exemplo: 
  3. Aqui pra mim ta funcionando normalmente !!!!
  4. Boa tarde Thiago. se não me engano esse erro tem relação ao certificado SSL ! pois tive formulários em php que estava gerando esse erro mesmo usando um formulário autenticado ! até hoje não consegui resolver ! Att, fabio
  5. Paulo é senha ou tenha ??
  6. Acho que ele quis dizer "tenha" !
  7. Fabio J respondeu ao tópico de NullRoute em Segurança
    Olá Senhores. eu também estava recebendo muito ataque de força bruta principalmente na porta do FTP, os ataques estavam vindo de IPS BRS , chegava a encher a lista de ips bloqueados do csf aqui pra mim resolveu alterando a porta do ftp ! obrigado a todos e fica aqui meu feed back ! Abraços !
  8. Bom dia Alvaro . vou mandar o modulo total compactado ! www.xxhost.com.br/Modulo_whmcs_10-10-2018.zip veja se da certo ! att, fabio
  9. Parabéns Fernando Aqui funcionou também vou colar aqui todo o código lib.php do modulo do mercado pago ! Arquivo editado /public_html/modules/gateways/mercadopago/lib.php <?php class mpAuth extends mpCall { public $client_id = NULL; public $client_secret = NULL; public $refresh = NULL; public $newrefresh = null; public $accesstoken = NULL; public $error = NULL; protected $date = NULL; protected $expired = NULL; protected $b2b2c = false; public function GeAuthCore($url) { $link = "https://auth.mercadolibre.com.ar/authorization?client_id=" . $this->client_id . "&response_type=code&platform_id=mp&redirect_uri=" . $url; return $link; } public function GetRefreshToken($auth, $redict_url) { $url = "https://api.mercadolibre.com/oauth/token"; $header = array( "Accept: application/json" ); $post = array( "grant_type" => "authorization_code", "client_id" => $this->client_id, "client_secret" => $this->client_secret, "code" => $auth, "redirect_uri" => $redict_url ); $dados = $this->DoPost($post, $url, $header, "200", "post", "post"); return $dados; } public function getAccessToken() { $data = getdate(); $time = $data[0]; if( isset($this->accesstoken) && isset($this->date) ) { $timedifference = $time - $this->date; if( $timedifference < $this->expired ) { return $this->accesstoken; } } if( $this->refresh != null ) { $post = array( "client_id" => $this->client_id, "client_secret" => $this->client_secret, "grant_type" => "refresh_token", "refresh_token" => $this->refresh ); $this->b2b2c = true; $header = array( "Accept: application/json", "Content-Type: application/x-www-form-urlencoded" ); $url = "https://api.mercadolibre.com/oauth/token"; $dados = $this->DoPost($post, $url, $header, "200", "post", "post"); $this->accesstoken = $dados["access_token"]; $this->newrefresh = $dados["refresh_token"]; $this->date = $time; $this->expired = $dados["expires_in"]; return $dados["access_token"]; } $post = array( "client_id" => $this->client_id, "client_secret" => $this->client_secret, "grant_type" => "client_credentials" ); $header = array( "Accept: application/json", "Content-Type: application/x-www-form-urlencoded" ); $url = "https://api.mercadolibre.com/oauth/token"; $dados = $this->DoPost($post, $url, $header, "200", "post", "post"); $this->accesstoken = $dados["access_token"]; $this->date = $time; $this->expired = $dados["expires_in"]; return $dados["access_token"]; } } class mpCore extends mpAuth { public function __construct($client_id, $client_secret) { $this->client_id = $client_id; $this->client_secret = $client_secret; } public function GetMethods($country_id) { $url = "https://api.mercadolibre.com/sites/" . $country_id . "/payment_methods"; $header = array( "Content-Type:application/json" ); $methods = $this->DoPost($opt = null, $url, $header, "200", "none", "get"); return $methods; } public function GetCheckout($data, $excludes, $method = "lightbox") { if( $excludes != "" ) { $methods_excludes = preg_split("/[\\s,]+/", $excludes); foreach( $methods_excludes as $exclude ) { $excludemethods[] = array( "id" => $exclude ); } if( !isset($data["mkfee"]) ) { $data["mkfee"] = ""; } $data["mkfee"] = ""; $opt = array( "external_reference" => $data["external_reference"], "items" => array( array( "id" => $data["external_reference"], "title" => $data["title"], "description" => $data["quantity"] . " x " . $data["title"], "quantity" => $data["quantity"], "unit_price" => round($data["amount"], 2), "currency_id" => $data["currency"], "picture_url" => $data["image"] ) ), "payer" => array( "name" => $data["payment_firstname"], "surname" => $data["payment_lastname"], "email" => $data["email"] ), "back_urls" => array( "pending" => $data["pending"], "success" => $data["approved"] ), "payment_methods" => array( "excluded_payment_methods" => $excludemethods ) ); } else { $opt = array( "external_reference" => $data["external_reference"], "items" => array( array( "id" => $data["external_reference"], "title" => $data["title"], "description" => $data["quantity"] . " x " . $data["title"], "quantity" => $data["quantity"], "unit_price" => round($data["amount"], 2), "currency_id" => $data["currency"], "picture_url" => $data["image"] ) ), "payer" => array( "name" => $data["payment_firstname"], "surname" => $data["payment_lastname"], "email" => $data["email"] ), "back_urls" => array( "pending" => $data["pending"], "success" => $data["approved"] ) ); } $this->getAccessToken(); $url = "https://api.mercadolibre.com/checkout/preferences?access_token=" . $this->accesstoken; $header = array( "Content-Type:application/json", "Accept: application/json" ); $dados = $this->DoPost($opt, $url, $header, "201", "json", "post"); $link = $dados["init_point"]; switch( $method ) { case "lightbox": $bt = "<a href=\"" . $link . "\" name=\"MP-payButton\" class=\"blue-l-rn-ar\">Comprar</a>\n <script type=\"text/javascript\" src=\"https://www.mercadopago.com/org-img/jsapi/mptools/buttons/render.js\"></script>"; break; case "Iframe": $bt = "<iframe id=\"MP-Checkout-IFrame\" frameborder=\"0\" style=\"width: 740px; height: 480px;\" src=\"" . $link . "\">"; break; case "initpoint": $bt = $link; break; default: $bt = "<a href=\"" . $link . "\" name=\"MP-payButton\" class=\"blue-l-rn-ar\">Comprar</a>\n <script type=\"text/javascript\" src=\"https://www.mercadopago.com/org-img/jsapi/mptools/buttons/render.js\"></script>"; break; } if( $this->b2b2c ) { $return = array( $this->newrefresh, $bt ); return $return; } return $bt; } public function GetStatus($id) { $this->getAccessToken(); logTransaction("MERCADOPAGO LIB", $this->accesstoken, "Unsuccessful"); $url = "https://api.mercadolibre.com/collections/notifications/" . $id . "?access_token=" . $this->accesstoken; $header = array( "Accept: application/json", "Content-Type: application/x-www-form-urlencoded" ); $retorno = $this->DoPost($opt = null, $url, $header, "200", "none", "get"); return $retorno; } public function SearchPayment($dados = array( ), $limit = null, $offset = null, $sort = null, $order = null) { $field = ""; foreach( $dados as $key => $value ) { if( $key == "date_created" || $key == "date_approved" || $key == "last_modified" ) { $field .= "range=" . $key . "&"; foreach( $value as $keys => $dates ) { if( $keys == "start" ) { $field .= "begin_date=" . $dates . "&"; } else { if( $keys == "end" ) { $field .= "end_date=" . $dates . "&"; } } } } else { $field .= $key . "=" . $value . "&"; } } $this->getAccessToken(); if( $limit != null ) { $field .= "limit=" . $limit . "&"; } if( $offset != null ) { $field .= "offset=" . $offset . "&"; } if( $sort != null ) { $field .= "sort=" . $sort . "&"; } if( $order != null ) { $field .= "order=" . $order . "&"; } $header = array( "Accept: application/json", "Content-Type: application/x-www-form-urlencoded" ); $url = "https://api.mercadolibre.com/collections/search?access_token=" . $this->accesstoken . "&" . $field; var_dump($url); $retorno = $this->DoPost($opt = null, $url, $header, "none", "none", "get"); return $retorno; } public function RefundPayment($id) { $this->getAccessToken(); $header = array( "Content-Type:application/json", "Accept: application/json" ); $opt = "{\"status\":\"cancelled\"}"; $url = "https://api.mercadolibre.com/collections/" . $id . "?access_token=" . $this->accesstoken; $teste = $this->DoPost($opt, $url, $header, "200", "none", "put"); return $teste; } public function create_preapproval_payment($preapproval_payment, $method = "lightbox") { $this->getAccessToken(); $header = array( "Content-Type:application/json", "Accept: application/json" ); $url = "https://api.mercadolibre.com/preapproval?access_token=" . $this->accesstoken; $preapproval_payment_result = $this->DoPost($preapproval_payment, $url, $header, "201", "json", "post"); $link = $preapproval_payment_result["init_point"]; switch( $method ) { case "lightbox": $bt = "<a href=\"" . $link . "\" name=\"MP-payButton\" class=\"blue-l-rn-ar\">Comprar</a>\n<script type=\"text/javascript\" src=\"https://www.mercadopago.com/org-img/jsapi/mptools/buttons/render.js\"></script>"; break; case "Iframe": $bt = "<iframe id=\"MP-Checkout-IFrame\" frameborder=\"0\" style=\"width: 740px; height: 480px;\" src=\"" . $link . "\">"; break; case "initpoint": $bt = $link; break; default: $bt = "<a href=\"" . $link . "\" name=\"MP-payButton\" class=\"blue-l-rn-ar\">Comprar</a>\n <script type=\"text/javascript\" src=\"https://www.mercadopago.com/org-img/jsapi/mptools/buttons/render.js\"></script>"; break; } if( $this->b2b2c ) { $return = array( $this->newrefresh, $bt ); return $return; } return $bt; } } class mpCall { public static function debug($error) { echo "<br>Retorno error<br><pre>"; print_r($error); echo "</pre><br><br>"; } public function DoPost($fields, $url, $heads, $codeexpect, $type, $method) { if( $type == "json" ) { $posts = json_encode($fields); } else { if( $type == "none" ) { $posts = $fields; } else { $posts = http_build_query($fields); } } switch( $method ) { case "get": $options = array( CURLOPT_RETURNTRANSFER => "1", CURLOPT_HTTPHEADER => $heads, CURLOPT_SSL_VERIFYPEER => "false", CURLOPT_URL => $url, CURLOPT_POSTFIELDS => $posts, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_CONNECTTIMEOUT => 0 ); break; case "put": $options = array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_HTTPHEADER => $heads, CURLOPT_SSL_VERIFYPEER => "false", CURLOPT_URL => $url, CURLOPT_POSTFIELDS => $posts, CURLOPT_CUSTOMREQUEST => "PUT", CURLOPT_HEADER => 1, CURLOPT_CONNECTTIMEOUT => 0 ); break; case "post": $options = array( CURLOPT_RETURNTRANSFER => "1", CURLOPT_HTTPHEADER => $heads, CURLOPT_SSL_VERIFYPEER => "false", CURLOPT_URL => $url, CURLOPT_POSTFIELDS => $posts, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_CONNECTTIMEOUT => 0 ); break; case "delete": $options = array( CURLOPT_RETURNTRANSFER => "1", CURLOPT_HTTPHEADER => $heads, CURLOPT_SSL_VERIFYPEER => "false", CURLOPT_URL => $url, CURLOPT_POSTFIELDS => $posts, CURLOPT_CUSTOMREQUEST => "DELETE", CURLOPT_CONNECTTIMEOUT => 0 ); break; default: $options = array( CURLOPT_RETURNTRANSFER => "1", CURLOPT_HTTPHEADER => $heads, CURLOPT_SSL_VERIFYPEER => "false", CURLOPT_URL => $url, CURLOPT_POSTFIELDS => $posts, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_CONNECTTIMEOUT => 0 ); break; } $options[CURLOPT_SSLVERSION] = TLSv1; $call = curl_init(); curl_setopt_array($call, $options); $dados = curl_exec($call); $status = curl_getinfo($call); curl_close($call); if( $status["http_code"] != $codeexpect && $codeexpect != "none" ) { $this->debug($dados); return false; } return json_decode($dados, true); } } Muito Obrigado e parabéns pela iniciativa de compartilhar !!!
  10. Boa tarde Galerinha alguem ai teve alguma noticia ? Obrigado !
  11. Estou tendo o mesmo problemas desde o ia 26 meu retorno automático também parou de funcionar ! alguém tem uma luz ? Valeu !
  12. Boa noite amigo Eu uso o vesta CP para Clientes Único. que tem na maior paste das vezes muito acesso ! Eu Nunca tive problema na vida tenho uma maquina ligada que ta mais de 1 ano sem reboot sem nada . ela se vira sozinha. faz os backups diários ! Muito Estável !!!! sem palavras... pois o pessoal que fala mal é pq é preguiçoso .... valeu !
  13. Boa noite Jorge . isso mesmo amigo. utilizamos os dois na mesma VM valeu !

Informação Importante

Concorda com os nossos termos?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.