←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Sklep
API dla dedykiNET

  • +
  • -
snikers1997 - zdjęcie snikers1997 26.03.2015

Witam, mam taki problem posiadam sklep by ghost, z api dla dedykiNET, został od stworzony jakoś na początku stycznia i działał mi do dnia 21.03 (Wtedy ostatnio wysyłałem i widziałem, że działa), a dzisiaj chciałem wysłać to sprawdzam i wyskakuje mi "Wystąpił błąd" , gdzie powinno wyskoczyć "Konto zostało pomyślnie doładowane", dodam, że moje konto na dedyki normalnie zostaje zasilone, więc dziwne, bo do serwera wysyła kod zwrotny, ale wyświetla mi błąd. I ze względu, że wywala mi błąd to nie doładowuje mojego sklepiku na mojej stronce. A jak wpisze zły kod to wyskakuje ten sam komunikat "Wystąpił błąd", a powinno wyskakiwać "Coś nie tak z kodem..."

Nic nie dodawałem nic nie zmieniałem...

 

Mój cały kod:

<?php defined('SYSPATH') or die('No direct script access.');

class Payments_dedykiNet
{
	protected $rates  = array( 
		7055 => array( 0.62, 0.26 ),
		7155 => array( 1.23, 0.52 ),
		7255 => array( 2.46, 1.04 ),
		7355 => array( 3.69, 1.56 ),
		7455 => array( 4.92, 2.08 ),
		7555 => array( 6.15, 2.60 ),
		7655 => array( 7.38, 3.12 ),
		7955 => array( 11.07, 4.68 ),
		91055 => array( 12.30, 5.20 ),
		91155 => array( 13.53, 5.72 ),
		91455 => array( 17.22, 7.28 ),
		91955 => array( 23.37, 9.88 ),
		92055 => array( 24.60, 10.40 ),
		92555 => array( 30.75, 13.00 )
	);

	public function check( $sms, $numer = NULL, $code = NULL ) {
		$user	= Core::setting( ) -> get( 'dedykinet_key_api' );
		
		$url 	= @file_get_contents( "http://panel.dedyki.net/api/payment/api_code_verify.php?payment=homepay_sms&userid=$user&comment=byCZUS&code=".$sms );
		
		$api = json_decode( $url );
		
		if( !is_object( $api ) )
			return array( 0.0, 'Wystąpił błąd...' );
			
		if( isset( $api -> error ) && $api -> error )
			return array( 0.0, 'Coś nie tak z kodem...' );
			
		
		if( $api -> status == 'OK' )
			return array( (float)$api -> kwota, 'Konto zostało pomyślnie doładowane' );
			
		return array( 0.0, 'Wystąpił błąd...' );
	}
	
	public function rates( ) {
		foreach( $this -> rates as $key => $rate ) {
			$_return[ ] = array(
				'numer'    => $key,
				'text_sms' => 'HPAY.DEDYKI',
				'cost'	   => $rate[ 0 ],
				'amount'   => $rate[ 1 ] 
			);
		}
		
		return $_return;
	}
}

?>

Proszę o pomoc.

Odpowiedz

  • +
  • -
Puchate - zdjęcie Puchate 27.03.2015

Masz w kodzie 2x taki błąd, więc pierw dowiedz się która linia kodu go wyświetla.

 

 $url  = @file_get_contents( "http://panel.dedyki.net/api/payment/api_code_verify.php?payment=homepay_sms&userid=$user&comment=byCZUS&code=".$sms );
 
$api = json_decode( $url );
 
if( !is_object( $api ) )
return array( 0.0, 'Wystąpił błąd...' );
      
Może tutaj jest błąd? Przed file_get_contents masz @, więc nigdy nie zwróci błędu.
 
PS.
 if( isset( $api -> error ) && $api -> error )
a nie łatwiej tak? 
if(!empty($api->error))
      
;)
      
Odpowiedz

  • +
  • -
snikers1997 - zdjęcie snikers1997 27.03.2015

Ale pamiętaj, że działało przez około 3 miesiące bez zarzutów.

 

Spróbowałem usunąć @ przed file_get_contents, nic nie zmieniło dalej ten sam błąd.

if( isset( $api -> error ) && $api -> error )

na:

if(!empty($api->error))

także nic nie robi.

 

A ten błąd jest wczytany z tego pierwszego cały czas.

czyli:

$api = json_decode( $url );
        
        if( !is_object( $api ) )
            return array( 0.0, 'Wystąpił błąd...' );

Użytkownik snikers1997 edytował ten post 27.03.2015 14:29
Odpowiedz

  • +
  • -
Portek - zdjęcie Portek 27.03.2015


wyskakuje mi "Wystąpił błąd" , gdzie powinno wyskoczyć "Konto zostało pomyślnie doładowane"dodam


że moje konto na dedyki normalnie zostaje zasilone
To napisz im maila że API się krzaczy, skoro doładowuje, a wyświetla inny komunikat niż docelowy to znaczy że to problem po ich stronie.
Odpowiedz

  • +
  • -
snikers1997 - zdjęcie snikers1997 27.03.2015

Pisałem do nich oni, że nic nie było tykane i to raczej problem po mojej stronie

Odpowiedz

  • +
  • -
Puchate - zdjęcie Puchate 27.03.2015

 

 

$api = json_decode( $url );
        
        
if( !is_object( $api ) )
            return array( 0.0, 'Wystąpił błąd...' );

Dodaj pod tym

echo '<pre>' . print_r($url,1) . print_r($api, 1) . '</pre>'; exit;
i pokaż co się wyświetliło
Odpowiedz

  • +
  • -
snikers1997 - zdjęcie snikers1997 28.03.2015

Dalej to samo "Wystąpił błąd"

Odpowiedz

  • +
  • -
snikers1997 - zdjęcie snikers1997 28.03.2015

Dodam taką informację być może przyda się do pomocy.
 
Po wpisaniu zapytania bezpośrednio w przeglądarkę z moim kodem zwrotnym id konta itd.
 
Kiedyś wyskakiwało mi tak (Po wpisaniu dobrego kodu):
{"status":"OK","kwota":"0.26"}
A teraz wyskakuje tak:
{"status":"OK","kwota":0.26}
 
A po złym wpisaniu kodu wyskakiwało tak:
{"status":"FAIL","kwota":"","error":"BAD_CODE"}
A wyskakuje tak:
{"status":"FAIL","kwota":"","error":"BAD_CODE[1]"}
 
 
Ale normalnie doładowuje konto dedykiNET tak jak mówiłem, ale na sklepie mi za każdym razem wyskakuje "Wystąpił błąd..." więc sklepu nie doładowuje :/
 
 
Udostępniam API na prośbę użytkownika.

Załączone pliki


Użytkownik snikers1997 edytował ten post 28.03.2015 10:57
Odpowiedz

  • +
  • -
L0lek - zdjęcie L0lek 28.03.2015

Skopiowałem link z ich przykładowego api, uzupełniłem danymi i też wywala błąd, to raczej coś u nich

 

Odpowiedz

  • +
  • -
snikers1997 - zdjęcie snikers1997 28.03.2015

No więc napisałem do nich i czekam na odpowiedz.

Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 28.03.2015

No więc napisałem do nich i czekam na odpowiedz.

 

Tez mam ten sam blad, to wina hostingu. Mi juz odpisali, cyt "Witam sprawę skierowaliśmy do programisty ponownie".

Odpowiedz