Выполнение SOAP-вызова к WSDL с PHP - PullRequest
0 голосов
/ 22 октября 2018

https://www.ticimax.com/dokumanlar/webservis.pdf

Ticimax - это программное обеспечение для электронной коммерции в Турции.Я пытаюсь создавать продукты, используя их веб-сервис для одного из моих клиентов.Я использовал все их методы веб-сервиса.Но я застрял с их методом создания продукта " SaveUrun ".Потому что этот метод имеет только одну вещь, отличную от других методов.Этот метод принимает параметр как ref

Метод SaveUrun находится в документе со страницы 7 на страницу 9.

Если вы посмотрите на страницу 9, вы увидите эту строкув конце определения метода:

urunServis.SaveUrun("U15saQ48dW453X1cA", ref urunKartlari, ukAyar, varyasyonAyar);

urunKartlari передается как ref.

Что такое ref?Что это означает?Что эквивалентно этому в PHP?Как я могу заставить мой код работать?Не могли бы вы мне помочь?

Это то, что я получаю, когда совершаю SOAP-вызов:

Значение не может быть нулевым.Имя параметра: источник

Вот мой пример кода:

<?php

$ticimax = new SoapClient("http://www.CLIENTDOMAIN.com/Servis/UrunServis.svc?wsdl");

$kategoriler = array();

$urunResimleri = array();

$varyasyonlar = array(
   array(
      "ID" => 0,
      "Aktif" => false,
      "AlisFiyati" => 10,
      "Barkod" => "",
      "Desi" => 1,
      "KargoUcreti" => 0,
      "KdvDahil" => true,
      "KdvOrani" => 8,
      "Ozellikler" => array(
                     array(
                        "Tanim" => "Numara",
                        "Deger" => 38
                     ),
                     array(
                        "Tanim" => "Renk",
                        "Deger" => "Mavi"
                     )
                  ),
      "ParaBirimiID" => 1,
      "Resimler" => array(),
      "SatisFiyati" => 100,
      "StokAdedi" => 15,
      "StokKodu" => ""
   ),
   array(
      "ID" => 0,
      "Aktif" => false,
      "AlisFiyati" => 10,
      "Barkod" => "",
      "Desi" => 1,
      "KargoUcreti" => 0,
      "KdvDahil" => true,
      "KdvOrani" => 8,
      "Ozellikler" => array(
                     array(
                        "Tanim" => "Numara",
                        "Deger" => 40
                     ),
                     array(
                        "Tanim" => "Renk",
                        "Deger" => "Mavi"
                     )
                  ),
      "ParaBirimiID" => 1,
      "Resimler" => array(),
      "SatisFiyati" => 100,
      "StokAdedi" => 15,
      "StokKodu" => ""
   )
);

$urunKarti = array(
   "ID" => 0,
   "Aktif" => false,
   "UrunAdi" => "Test ürün adı",
   "Aciklama" => "Test ürün açıklama",
   "AnaKategori" => "İç Giyim",
   "AnaKategoriID" => 1,
   "Kategoriler" => $kategoriler,
   "MarkaID" => 1,
   "TedarikciID" => 1,
   "Resimler" => $urunResimleri,
   "SatisBirimi" => "Adet",
   "UcretsizKargo" => false,
   "OnYazi" => "Test ürün önyazı",
   "PuanDeger" => 12,
   "SeoAnahtarKelime" => "",
   "SeoSayfaAciklama" => "",
   "SeoSayfaBaslik" => "",
   "Varyasyonlar" => $varyasyonlar,
   "Vitrin" => false,
   "YeniUrun" => false
);

$params = array(
   array(
      "UyeKodu" => WEBSERVICE_PASSWORD,
      "UrunKartlari" => $urunKarti,
      "ukAyar" => array(
         "AciklamaGuncelle" => true,
         "AktifGuncelle" => true,
         "FBStoreGosterGuncelle" => false,
         "FirsatUrunuGuncelle" => true,
         "KategoriGuncelle" => false,
         "MaksTaksitSayisiGuncelle" => false,
         "MarkaGuncelle" => false,
         "OnYaziGuncelle" => false,
         "ParaPuanGuncelle" => true,
         "SatisBirimiGuncelle" => false,
         "SeoAnahtarKelimeGuncelle" => false,
         "SeoSayfaAciklamaGuncelle" => false,
         "SeoSayfaBaslikGuncelle" => false,
         "TedarikciGuncelle" => false,
         "UcretsizKargoGuncelle" => true,
         "UrunAdiGuncelle" => true,
         "UrunResimGuncelle" => false,
         "VitrinGuncelle" => false,
         "YeniUrunGuncelle" => true
      ),
      "vAyar" => array(
         "AktifGuncelle" => false,
         "AlisFiyatiGuncelle" => true,
         "BarkodGuncelle" => false,
         "IndirimliFiyatiGuncelle" => true,
         "KargoUcretiGuncelle" => false,
         "KargoAgirligiGuncelle" => true,
         "ParaBirimiGuncelle" => false,
         "PiyasaFiyatiGuncelle" => true,
         "SatisFiyatiGuncelle" => false,
         "StokAdediGuncelle" => true,
         "UyeTipiFiyat1Guncelle" => false,
         "UyeTipiFiyat2Guncelle" => true,
         "UyeTipiFiyat3Guncelle" => false,
         "UyeTipiFiyat4Guncelle" => true,
         "UyeTipiFiyat5Guncelle" => false,
         "TedarikciKodunaGoreGuncelle" => false

      )
   )
);

try{

   print_r($ticimax->__soapCall("SaveUrun", $params));


}
catch(Exception $e){
   echo $e->getMessage();
}

?>

Можете ли вы исправить мой код?

...