Şimdi Ara

PHP SOAP Api Hatası

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
1.204
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar, N11 SOAP Api kullanarak kendime ufak bir sistem oluşturmaya çalışıyorum. Çok fazla PHP bilgim yok internette bulunan dökümanlardan yola çıkarak deneme yanılma yöntemiyle hallediyorum işlemlerimi.

    N11 Apiyi kullanarak gelen siparişlerimi onaylamak istiyorum ancak hata almaktayım. Bu hatayı farklı foksiyonlarda verdi. Fonksiyonlarımı ve kodlarımı aşağıya yazıyorum. Bilgisi olan destek verebilirse çok memnun olurum.

    [B]Class şu şekilde;[/B]

    public function OrderItemAccept(array $searchData = Array()) {
    $this->setUrl('https://api.n11.com/ws/OrderService.wsdl');
    self::$_parameters['orderItemList'] = $searchData;
    return self::$_sclient->OrderItemAccept(self::$_parameters);
    }


    İstemci,

    include 'n11.class.php';  

    $n11 = new N11($n11Params);

    $Onayla = $n11->OrderItemAccept (
    [
    "orderItem"=>[
    "id"=> $_GET['id']
    ]
    ]
    );
    $Onayla->orderItemList->orderItem->productName;


    Bu işlemde sanırım SOAP array hatası almaktayım, internette bulunan makaleler ile bir miktar ilerledim ancak hata aldığımda takılıyorum. Kendim için basit bir arayüz yapıyorum. Bu hatayı çözülürse diğer fonksiyonlarda aldığım hatalarda çözülecektir.

    [B]Aldığım Hata;[/B]

    Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'numberOfPackages' property in C:\xampp\htdocs\entegrev1\fadmin\assets\ajax\n11.class.php:109 Stack trace: #0 C:\xampp\htdocs\entegrev1\fadmin\assets\ajax\n11.class.php(109): SoapClient->__call('OrderItemAccept', Array) #1 C:\xampp\htdocs\entegrev1\fadmin\assets\ajax\siparis-onayla.php(11): N11->OrderItemAccept(Array) #2 {main} thrown in C:\xampp\htdocs\entegrev1\fadmin\assets\ajax\n11.class.php on line 109







  • $n11Params ın değeri nedir bilmiyorum.değeri olmayan boş bir şeyler çağrıyosun iyi bak



    < Bu mesaj bu kişi tarafından değiştirildi ibrahimyonetici -- 12 Mart 2020; 12:58:5 >
  • $n11Params değerini n11.class.php sayfasından çekiyor. N11 in API bilgilerini içeriyor.

    Burada benim asıl takıldığım nokta "SoapClient->__call('XXXRequest...', Array)" burası. Bu Array fonksiyonunda veri gönderirken bir hata yapıyorum sanırım.



    < Bu mesaj bu kişi tarafından değiştirildi karga22 -- 12 Mart 2020; 13:8:52 >
  • karga22 K kullanıcısına yanıt
    tamam işte n11.class.php içinde ne var bilmiyoruz ki ?ordan geçersiz bir veri veya kod gönderdiğin kesin
  • n11.class.php

    $n11Params = ['appKey' => 'API',
    'appSecret' => 'API'];

    Class N11 {
    protected static $_appKey, $_appSecret, $_parameters, $_sclient;
    public $_debug = false;

    public function __construct(array $attributes = array()) {
    self::$_appKey = $attributes['appKey'];
    self::$_appSecret = $attributes['appSecret'];
    self::$_parameters = ['auth' => ['appKey' => self::$_appKey, 'appSecret' => self::$_appSecret]];
    }

    public function setUrl($url) {
    self::$_sclient = new \SoapClient($url);
    }

    public function OrderDetailRequest($searchData) {
    $this->setUrl('https://api.n11.com/ws/OrderService.wsdl');
    self::$_parameters['orderRequest'] = $searchData;
    return self::$_sclient->OrderDetailRequest(self::$_parameters);
    }

    /*HATALI KOD BAŞLANGIÇ*/

    public function OrderItemAccept(array $searchData = Array()) {
    $this->setUrl('https://api.n11.com/ws/OrderService.wsdl');
    self::$_parameters['orderItemList'] = $searchData;
    return self::$_sclient->OrderItemAccept(self::$_parameters);
    }

    /*HATALI KOD BİTİŞ*/

    public function __destruct() {
    if ($this->_debug) {
    print_r(self::$_parameters);
    }
    }

    }



    < Bu mesaj bu kişi tarafından değiştirildi karga22 -- 12 Mart 2020; 14:16:20 >




  • karga22 K kullanıcısına yanıt
    apinin çalışma mantığını nasıldır şuan için bilmiyorum.herhalde dışardan sana gelen bir veri olsa gerek.o veri sana şuan gelmiyor.gelmeyen veriyi sen $n11Params değişkenine atayarak çalıştırmaya çalışıyosun oda fatal eror veriyor.sorun bunlarda > 'appKey' => 'API','appSecret' => 'API'

    109.satır hatası $n11Params a yakın olan yerleri gösterse gerek



    < Bu mesaj bu kişi tarafından değiştirildi ibrahimyonetici -- 12 Mart 2020; 17:44:26 >
  • API dokumantasyonu var mı veya dokumantasyona baktın mı?
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.