Developer Zone od PayLane

0

Hej,

mam nadzieję, że nie macie nic przeciwko małej auto-reklamie, ale myślę, że może Was to zainteresować :)

Właśnie ruszył nasz najnowszy projekt - Developer Zone (http://devzone.paylane.pl/) , czyli strefa dla programistów z pełną dokumentacją i przykładami kodu potrzebnymi do integracji z systemem płatności PayLane. Znajdują się tam:

  • dokładne opisy sposobów integracji z PayLane - poprzez API i Secure Form (formularz płatniczy), ze szczegółowym wyjaśnieniem działania i zobrazowania przebiegu komunikacji, które ułatwią wybór sposobu implementacji płatności online,
  • przykłady kodu w PHP, Java, C#, Ruby, Python, cURL, ilustrujące możliwe wykorzystanie API PayLane (co ciekawe, możeci pisać kod w swoim ulubionym języku, bo API PayLane jest oparte na SOAP :) ),
  • request demo, czyli możliwość przeprowadzenia testowej transakcji (zarówno ta zakończona sukcesem jak i błędem)

Wszystko to jest opatrzone dokładnymi opisami, instrukcjami i przykładami popularnych mechanizmów przyjmowania płatności, więc może to być ciekawe źródło informacji dla zaawansowanych i początkujących programistów.

Jeśli macie jakieś pytania, chętnie na nie odpowiem :)

http://devzone.paylane.pl/

Pzdr,

Zosia
PayLane

1

Te kody są bez sensu. Klasa PayLaneClient jest zupełnie niepotrzebna, opakowuje tylko obiekt SOAP i sama w sobie w bezsensowny sposób obsługuje wyjątki.

	public function checkSales($id_sale_list)
	{
		try
		{
			$result = $this->client->checkSales($id_sale_list);
		}
		catch (SoapFault $exception)
		{
			echo $exception;
			$this->error = $exception;
			return false;
		}
		
		return $result;
	}
//...
	public function checkCard3DSecureEnrollment($params)
	{
		try
		{
			$result = $this->client->checkCard3DSecureEnrollment($params);
		}
		catch (SoapFault $exception)
		{
			echo $exception;
			$this->error = $exception;
			return false;
		}
		
		return $result;
	}

I tak przez cały plik. Po co tak bezsensowna wbudowana obsługa wyjątków, która rzutując wyjątek na string serwuje cały stack trace klientowi i nie da się jej wyłączyć oraz programowanie w stylu copy->paste? Nie wiem. Wierzę natomiast że każdy programista chcący implementować ten system płatności będzie znał podstawy obsługi klientów SOAP. Identyczne zadanie spełniłaby klasa zawierająca 3 metody i korzystająca z __call.

Wisienka na koniec:

	public function connect()
	{
		try
		{
			$params = array(
				"login" => Config::$login,
				"password" => Config::$password,
			);
			$this->client = new SoapClient(Config::$wsdl, $params);
		}
		catch (SoapFault $exception)
		{
			echo $exception; // WTF???????????????????????????????????????????
			$this->error = $exception;
			return false;
		}
		
		return true;
	}

Jedyne co was chroni przed pokazaniem wszystkich danych autoryzacyjnych klientowi to fakt, że są opakowane w tablicę. Powodzenia jak któryś patch sprawi stack trace bardziej szczegółowymi.

0

Dzięki za komentarz - poprawki nanosimy na bieżąco, więc jeszcze jakieś błędy mogą się pojawiać. A wspomniany przez Ciebie kod już jest zmieniony. :)

0

Poprawki sprowadzały się wyłącznie do usunięcia echo $exception, eh...
Cała ta klasa PayLaneClient jest bez sensu, naprawdę, ludzie umieją korzystać z SOAPa bezpośrednio.

0

Cała klasa PayLaneClient jest stworzona dla wygody naszych klientów, by ułatwić im integrację z naszymi systemami. Wielu z nich dopiero stawia swoje pierwsze kroki w internetowym biznesie, więc nie ma zbyt dużego doświadczenia w komunikacji za pomocą SOAP. Ci bardziej zaawansowani pewnie będą zagłębiać się w naszą dokumentację i korzystać z własnych rozwiązań, ale wg nas będzie też spore grono programistów, którzy wolą korzystać ze sprawdzonych i gotowych rozwiązań niż tracić czas na poznawanie protokołów i pisanie tego co już zostało stworzone - i to właśnie dla nich ta klasa została napisana.

1 użytkowników online, w tym zalogowanych: 0, gości: 1