Magento SOAP 500 Phản hồi lỗi nội bộ


7

Tôi nhận được 500 phản hồi lỗi nội bộ khi tôi cố truy xuất dữ liệu qua SOAP.

Những gì tôi có đang hoạt động và không cho tôi 500 lỗi nội bộ:

<?php
$client = new SoapClient('http://example.com/api/v2_soap/?wsdl');
$session = $client->login('xxx', 'xxx');
$complexFilter = array(
    'complex_filter' => array(
        array(
            'key' => 'type',
            'value' => array('key' => 'in', 'value' => 'simple,configurable')
        )
    )
);
$result = $client->catalogProductList($session, $complexFilter);

foreach ($result as $key => $value) {
    $id = $value->product_id;
    echo $id;
   // productPrices($id); <-- this issue causes the error.
}



?>

Khi tôi cố gắng gọi một chức năng trong vòng lặp foreach (xem bình luận ở trên):

function productPrices($id){
    $client = new SoapClient('http://example.com/api/soap/?wsdl');
    $session = $client->login('xxx', 'xxx');
    $att = array("visibility","sku","special_price", "price");
    $arguments = array( $id, NULL, $att);
    $resultPrice = $client->call($session, 'catalog_product.info', $arguments);
    echo $resultPrice['visibility'].",".$resultPrice['sku'].",".$resultPrice['special_price'].",".$resultPrice['price'];
}

Phản hồi tôi nhận được từ máy chủ hiện là lỗi nội bộ 500. Tôi có tối đa 90 idu / id sản phẩm.

Bất cứ ai cũng biết lỗi có thể là gì?


vui lòng tăng max_execut_time & memory_limit trong máy chủ của bạn
Abdul

Câu trả lời:


1

Chưa được kiểm tra nhưng một cái gì đó như thế này sẽ hoạt động:

class Foo_Bar {
    $_client = new SoapClient('http://example.com/api/soap/?wsdl');
    $_session = $client->login('xxx', 'xxx');

public function productPrices($id) {
    $client = $this->_client;
    $session = $client->login('xxx', 'xxx');
    $att = array("visibility","sku","special_price", "price");
    $arguments = array( $id, NULL, $att);
    $resultPrice = $client->call($session, 'catalog_product.info', $arguments);
    echo $resultPrice['visibility'].",".$resultPrice['sku'].",".$resultPrice['special_price'].",".$resultPrice['price'];
    }
}

Không hoạt động như vậy, thiếu một cái gì đó vì mã php không thành công. Hiển thị trang trống.
Quân đội Julianen

Điều gì xảy ra khi bạn truy cập http://example.com/api/soap/?wsdlqua trình duyệt? Đồng thời kiểm tra error.logtệp máy chủ web của bạn để biết thêm thông tin về lỗi 500.
B00mer

Theo mô tả, không có vấn đề gì tôi nhận được đầu ra đầy đủ từ cửa hàng trên url xà phòng.
Quân đội Julianen

Khi tôi gọi hàm trong vòng lặp foreach - tôi viết: productPrices-> Foo_Bar ($ id); Điều đó có đúng không?
Quân đội Julianen

magentoc Commerce.com/api/soap/catalog/catalogSản phẩm / từ sẽ cho bạn một ví dụ hoạt động để thử.
B00mer

1

Có vẻ như Magento đã ném một kết quả ngoại lệ trong Lỗi máy chủ nội bộ. Đối với tôi đã giúp tôi ghi lại tất cả các ngoại lệ được ném bằng cách thêm

self::log(debug_backtrace()[0]['file'].":".debug_backtrace()[0]['line']." - ".$message, 1, 'exceptions.log');

trước dòng throw new Mage_Core_Exception($message);trong throwExceptionPhương thức trong app/Mage.phptệp

Mong rằng sẽ giúp bạn tìm ra lỗi cụ thể của bạn


1

Nhật ký

Vui lòng xem tệp nhật ký để biết thêm thông tin:

  • Nhật ký Magento <magento_root>/var/log/*- đặc biệt system.logexception.log
  • Xem thêm liệu các tệp báo cáo mới đã được tạo <magento_root>/var/report/
  • Nhật ký máy chủ web /var/log/nginx/(error|access).loghoặc trong trường hợp bạn sử dụng Apache/var/log/(apache|httpd)/*.log
  • Nhật ký PHP (-fpm) - thường ở đây /var/log/fpm-php.www.log

SSL

Hành vi mặc định của SoapClient khác với hành vi của trình duyệt. Đặc biệt là sau khi chuyển hướng, vv ... Có httpđúng không? Có lẽ bạn cần https?

Cấu hình máy chủ web

Có thể máy chủ web của bạn được cấu hình để chỉ chấp nhận các yêu cầu trình duyệt. Ví dụ: theo quy tắc UserAgent ...? Hoặc tuyến API có sự bảo vệ đặc biệt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.