使用PHP对WSDL进行SOAP调用

时间:2018-10-22 18:36:47

标签: php web-services soap webservice-client ref

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

Ticimax是土耳其的电子商务软件。我正在尝试通过为我的一位客户使用其Web服务来创建产品。我已经使用了所有的webservice方法。但是我坚持使用他们的产品创建方法“ SaveUrun ”。因为此方法与其他方法只有一点不同。此方法接受 ref

作为参数

SaveUrun方法在第7页到第9页的文档中。

如果您查看第9页,您将在方法定义的末尾看到此行:

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

urunKartlari作为参考传递。

什么是裁判?它代表什么?在PHP中相当于什么?如何使我的代码正常工作?你能帮我吗?

这是我进行SOAP调用时得到的:

  

值不能为null。参数名称:来源

这是我的示例代码:

<?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();
}

?>

你能解决我的密码吗?

1 个答案:

答案 0 :(得分:0)

Params array 中的

UyeKodu UrunKartlari 字段必须是 uyeKodu urunKartlari