Guest User

Untitled

a guest
Feb 9th, 2012
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.87 KB | None | 0 0
  1. <?
  2.  
  3. define('ALLEGRO_LOGIN', ***tuJestMojLogin***);
  4. define('ALLEGRO_PASSWORD', ***tuJestMojeHaslo***);
  5. define('ALLEGRO_KEY', ***tuJestMojKlucz***);
  6. define('ALLEGRO_COUNTRY', AllegroWebAPISoapClient::COUNTRY_PL);
  7.  
  8. class AllegroWebAPISoapClient extends SoapClient
  9. {
  10. const COUNTRY_PL = 228;
  11.  
  12. public function __construct()
  13. {
  14. parent::__construct('http://webapi.allegro.pl/uploader.php?wsdl');
  15. }
  16. }
  17.  
  18. // pobieramy nasz klucz wersji
  19. $allegroVerKey = file_get_contents('.verkey');
  20.  
  21. // łączymy się z Allegro WebAPI
  22. $client = new AllegroWebAPISoapClient();
  23.  
  24. try
  25. {
  26. try
  27. {
  28. // próba logowania
  29. $session = $client->doLoginEnc(ALLEGRO_LOGIN, base64_encode( hash('sha256', ALLEGRO_PASSWORD, true) ), ALLEGRO_COUNTRY, ALLEGRO_KEY, $allegroVerKey);
  30. }
  31. catch(SoapFault $error)
  32. {
  33. // błąd niepoprawnego klucza wersji pozwala nam zauważyć fakt iż coś w serwisie się zmieniło
  34. if($error->faultcode == 'ERR_INVALID_VERSION_CAT_SELL_FIELDS')
  35. {
  36. // pobieramy aktualny klucz wersji
  37. $version = $client->doQuerySysStatus(1, ALLEGRO_COUNTRY, ALLEGRO_KEY);
  38. $allegroVerKey = $version['ver-key'];
  39.  
  40. /* tutaj wykonujemy swoje operacje uaktualniające */
  41.  
  42. // zapisujemy klucz wersji do pliku
  43. file_put_contents('.verkey', $allegroVerKey);
  44.  
  45. // ponowna próba logowania, już z nowym kluczem
  46. $session = $client->doLoginEnc(ALLEGRO_LOGIN, base64_encode( hash('sha256', ALLEGRO_PASSWORD, true) ), ALLEGRO_COUNTRY, ALLEGRO_KEY, $allegroVerKey);
  47. }
  48. // każdy inny błąd to już poważny problem
  49. else
  50. {
  51. throw $error;
  52. }
  53. }
  54.  
  55. // udało nam się zalogować
  56. echo 'Logowanie poprawne. Uzyskany klucz sesji to: ', $session['session-handle-part'];
  57. }
  58. catch(SoapFault $error)
  59. {
  60. echo 'Błąd ', $error->faultcode, ': ', $error->faultstring, "n";
  61. }
  62.  
  63. $empty = new stdClass();
  64. $empty->{'fvalue-string'} = "";
  65. $empty->{'fvalue-int'} = 0;
  66. $empty->{'fvalue-float'} = 0;
  67. $empty->{'fvalue-image'} = " ";
  68. $empty->{'fvalue-text'} = " ";
  69. $empty->{'fvalue-datetime'} = 0;
  70. $empty->{'fvalue-boolean'} = false;
  71.  
  72. $form = array();
  73.  
  74. $field = clone $empty;
  75. $field->{'fid'} = 1; // Nazwa aukcji.
  76. $field->{'fvalue-string'} = 'jakas nazwa aukcji';
  77. $form[] = $field;
  78.  
  79. $field = clone $empty;
  80. $field->{'fid'} = 2; // Numer kategorii.
  81. $field->{'fvalue-int'} = 1885;
  82. $form[] = $field;
  83.  
  84. $field = clone $empty;
  85. $field->{'fid'} = 3; // Czas rozpoczęcia.
  86. $field->{'fvalue-datetime'} = time();
  87. $form[] = $field;
  88.  
  89. $field = clone $empty;
  90. $field->{'fid'} = 4; // Czas trwania, wartość jest jedną ze stałych, których wartości można odczytać z informacji o polach.
  91. $field->{'fvalue-int'} = 3;
  92. $form[] = $field;
  93.  
  94. $field = clone $empty;
  95. $field->{'fid'} = 5; // Ilość sztuk (1 - 1000).
  96. $field->{'fvalue-int'} = 69;
  97. $form[] = $field;
  98.  
  99. $field = clone $empty;
  100. $field->{'fid'} = 6; // Cena wywoławcza
  101. $field->{'fvalue-float'} = 1;
  102. $form[] = $field;
  103.  
  104. $field = clone $empty;
  105. $field->{'fid'} = 8; // Cena Kup Teraz!
  106. $field->{'fvalue-float'} = 666;
  107. $form[] = $field;
  108.  
  109. $field = clone $empty;
  110. $field->{'fid'} = 9; // Numer kraju, pokrywa się z numerem kraju używanym do wybierania wersji serwisu.
  111. $field->{'fvalue-int'} = 228;
  112. $form[] = $field;
  113.  
  114. $field = clone $empty;
  115. $field->{'fid'} = 11; // Miejscowość.
  116. $field->{'fvalue-string'} = 'Szczecin';
  117. $form[] = $field;
  118.  
  119. $field = clone $empty;
  120. $field->{'fid'} = 12; // Kto pokrywa koszty transportu. W zasadzie to pole logiczne, przeliczalne wartości tego pola to tylko 0 jeśli koszty pokrywa sprzedający i 1 jeśli kupujący.
  121. $field->{'fvalue-int'} = 1;
  122. $form[] = $field;
  123.  
  124. // flagi składamy przez ich logiczne sumowanie
  125. $field = clone $empty;
  126. $field->{'fid'} = 13; //Opcje transportu. Wartość to nałożenie flag, kolejne bity odpowiadają kolejnym wartością z listy opcji, a opcje kolejno to: "Przesyłka pocztowa", "Przesyłka pocztowa priorytetowa", "Przesyłka kurierska", "Odbiór osobisty", "Inne", "Zgadzam się na wysłanie przedmiotu za granicę". Szkoda, że w manualu WebAPI nie napisali, że tego typu pola są właśnie złożeniem flag…
  127. $field->{'fvalue-int'} = 1;
  128. $form[] = $field;
  129.  
  130. $field = clone $empty;
  131. $field->{'fid'} = 14; // Opcje płatności. Wartość jest obliczana jak w przypadku pola "Opcje transportu", dostępne flagi to kolejno: "Wpłata na konto", "Pobranie", "Płatności Allegro", "Płatności Allegro Escrow", "Inne".
  132. $field->{'fvalue-int'} = 1;
  133. $form[] = $field;
  134.  
  135. $field = clone $empty;
  136. $field->{'fid'} = 24; //opis przedmiotu
  137. $field->{'fvalue-string'} = '<h1>Opis</h1>
  138. <p>Nasza aukcja - powered by <a href="http://flaszeczki.pl/" title="flaszeczki.pl - flashowe gry online dla każdego">flaszeczki.pl</a>.</p>';
  139. $form[] = $field;
  140.  
  141. $field = clone $empty;
  142. $field->{'fid'} = 32; // kod pocztowy
  143. $field->{'fvalue-string'} = '11-220';
  144. $form[] = $field;
  145.  
  146. $local = uniqid();
  147.  
  148. $aAuctionProperties = array(
  149. array(
  150. 'fid' => 1, // Tytuł
  151. 'fvalue-string' => 'Łożysko kulkowe 5cm',
  152. 'fvalue-int' => 0,
  153. 'fvalue-float' => 0,
  154. 'fvalue-image' => 0,
  155. 'fvalue-datetime' => 0,
  156. 'fvalue-boolean' => false
  157. ),
  158. array(
  159. 'fid' => 2, // Kategoria
  160. 'fvalue-string' => '',
  161. 'fvalue-int' => 1885,
  162. 'fvalue-float' => 0,
  163. 'fvalue-image' => 0,
  164. 'fvalue-datetime' => 0,
  165. 'fvalue-boolean' => false
  166. ),
  167. array(
  168. 'fid' => 3, // Data rozpoczęcia
  169. 'fvalue-string' => '',
  170. 'fvalue-int' => strtotime("2010-05-16 23:55"),
  171. 'fvalue-float' => 0,
  172. 'fvalue-image' => 0,
  173. 'fvalue-datetime' => 0,
  174. 'fvalue-boolean' => false
  175. ),
  176. array(
  177. 'fid' => 4, // Czas trwania
  178. 'fvalue-string' => '',
  179. 'fvalue-int' => 4,
  180. 'fvalue-float' => 0,
  181. 'fvalue-image' => 0,
  182. 'fvalue-datetime' => 0,
  183. 'fvalue-boolean' => false
  184. ),
  185. array(
  186. 'fid' => 5, // Ilość sztuk
  187. 'fvalue-string' => '',
  188. 'fvalue-int' => 1,
  189. 'fvalue-float' => 0,
  190. 'fvalue-image' => 0,
  191. 'fvalue-datetime' => 0,
  192. 'fvalue-boolean' => false
  193. ),
  194. array(
  195. 'fid' => 6, // Cena wywoławcza
  196. 'fvalue-string' => '',
  197. 'fvalue-int' => 0,
  198. 'fvalue-float' => 30.00,
  199. 'fvalue-image' => 0,
  200. 'fvalue-datetime' => 0,
  201. 'fvalue-boolean' => false
  202. ),
  203. array(
  204. 'fid' => 9, // Kraj
  205. 'fvalue-string' => '',
  206. 'fvalue-int' => 228,
  207. 'fvalue-float' => 0,
  208. 'fvalue-image' => 0,
  209. 'fvalue-datetime' => 0,
  210. 'fvalue-boolean' => false
  211. ),
  212. array(
  213. 'fid' => 10, // Województwo
  214. 'fvalue-string' => '',
  215. 'fvalue-int' => 214,
  216. 'fvalue-float' => 0,
  217. 'fvalue-image' => 0,
  218. 'fvalue-datetime' => 0,
  219. 'fvalue-boolean' => false
  220. ),
  221. array(
  222. 'fid' => 11, // Miasto
  223. 'fvalue-string' => 'Sincity',
  224. 'fvalue-int' => 0,
  225. 'fvalue-float' => 0,
  226. 'fvalue-image' => 0,
  227. 'fvalue-datetime' => 0,
  228. 'fvalue-boolean' => false
  229. ),
  230. array(
  231. 'fid' => 12, // Transport
  232. 'fvalue-string' => '',
  233. 'fvalue-int' => 1,
  234. 'fvalue-float' => 0,
  235. 'fvalue-image' => 0,
  236. 'fvalue-datetime' => 0,
  237. 'fvalue-boolean' => false
  238. ),
  239. array(
  240. 'fid' => 14, // Formy płatności
  241. 'fvalue-string' => '',
  242. 'fvalue-int' => 1,
  243. 'fvalue-float' => 0,
  244. 'fvalue-image' => 0,
  245. 'fvalue-datetime' => 0,
  246. 'fvalue-boolean' => false
  247. ),
  248. array(
  249. 'fid' => 24, // Opis
  250. 'fvalue-string' => 'Szczegółowy opis łożyska kulkowego 5cm',
  251. 'fvalue-int' => 0,
  252. 'fvalue-float' => 0,
  253. 'fvalue-image' => 0,
  254. 'fvalue-datetime' => 0,
  255. 'fvalue-boolean' => false
  256. ),
  257. array(
  258. 'fid' => 36, // Paczka pocztowa ekonomiczna
  259. 'fvalue-string' => '',
  260. 'fvalue-int' => 0,
  261. 'fvalue-float' => 11.00,
  262. 'fvalue-image' => 0,
  263. 'fvalue-datetime' => 0,
  264. 'fvalue-boolean' => false
  265. )
  266. );
  267.  
  268. echo "<br>przed wystawieniem";
  269. $item = $client->doNewAuctionExt($session['session-handle-part'], $aAuctionProperties);
  270. echo "<br>po wystawieniu";
  271. ?>
Advertisement
Add Comment
Please, Sign In to add comment