添加订单网络服务 [英] Add order web service

查看:66
本文介绍了添加订单网络服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为移动应用开发了 Prestashop 网络服务.

I developed a Prestashop web service for a mobile application.

我可以连接用户、创建用户帐户、创建购物车,但我无法创建订单.

I can connect a user, create user accounts, create cart but I do not manage to create orders.

我有以下错误:

HTTP XML 响应不可解析:array ( 0 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 9, 'column' => 64, 'message' => 'Input不是正确的 UTF-8,指示编码!字节:0x95 0x08 0x77 0xE2 ', 'file' => '', 'line' => 778, )), 1 => LibXMLError::__set_state(array('level' => 3, 'code' => 9, 'column' => 65, 'message' => 'PCDATA invalid Char value 8 ', 'file' => '', 'line' => 778, )), 2 =>> LibXMLError::__set_state(array('level' => 3, 'code' => 9, 'column' => 77, 'message' => 'PCDATA invalid Char value 12', 'file' => '','line' => 778, )), 3 => LibXMLError::__set_state(array('level' => 3, 'code' => 9, 'column' => 78, 'message' => 'PCDATA invalid Charvalue 14 ', 'file' => '', 'line' => 778, )), 4 => LibXMLError::__set_state(array('level' => 3, 'code' => 64, 'column' => 51, 'message' => 'XML 声明只允许在文档的开头', 'file' => '', 'line' => 14954, )), 5 => LibXMLError::__set_state(array( '级别' => 3,'代码' => 64,'列' => 51,'message' => 'XML 声明只允许在文档的开头', 'file' => '', 'line' => 17864, )), 6 => LibXMLError::__set_state(array('level' =>3, 'code' => 64, 'column' => 51, 'message' => 'XML声明只允许在文档的开头', 'file' => '', 'line' => 20773, )), 7 => LibXMLError::__set_state(array('level' => 3, 'code' => 64, 'column' => 33, 'message' => 'XML 声明只允许在文档的开头', 'file' => '', 'line' => 21368, )), )

HTTP XML response is not parsable: array ( 0 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 9, 'column' => 64, 'message' => 'Input is not proper UTF-8, indicate encoding ! Bytes: 0x95 0x08 0x77 0xE2 ', 'file' => '', 'line' => 778, )), 1 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 9, 'column' => 65, 'message' => 'PCDATA invalid Char value 8 ', 'file' => '', 'line' => 778, )), 2 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 9, 'column' => 77, 'message' => 'PCDATA invalid Char value 12 ', 'file' => '', 'line' => 778, )), 3 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 9, 'column' => 78, 'message' => 'PCDATA invalid Char value 14 ', 'file' => '', 'line' => 778, )), 4 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 64, 'column' => 51, 'message' => 'XML declaration allowed only at the start of the document ', 'file' => '', 'line' => 14954, )), 5 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 64, 'column' => 51, 'message' => 'XML declaration allowed only at the start of the document ', 'file' => '', 'line' => 17864, )), 6 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 64, 'column' => 51, 'message' => 'XML declaration allowed only at the start of the document ', 'file' => '', 'line' => 20773, )), 7 => LibXMLError::__set_state(array( 'level' => 3, 'code' => 64, 'column' => 33, 'message' => 'XML declaration allowed only at the start of the document ', 'file' => '', 'line' => 21368, )), )

我尝试将页面的编码更改为 UTF-8,但无济于事.

I tried to change the encoding of the page in UTF-8 but nothing can be done.

这是我的 PHP:

<?php

// Here's how you create a webservice call:
define('PS_SHOP_PATH', 'localhost:8888/MON_SITE');
define('PS_WS_AUTH_KEY', 'MA_CLEF');
define('DEBUG', true);

require_once('PSWebServiceLibrary.php');

try {

$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
$opt = array('resource' => 'orders');
$xml = $webService->get(array('url' => PS_SHOP_PATH.'/api/orders?schema=synopsis'));

$xml->children()->children()->id_address_delivery = 6; 
$xml->children()->children()->id_address_invoice =  6; 
$xml->children()->children()->id_cart = 136; 
$xml->children()->children()->id_currency = 1;
$xml->children()->children()->current_state = 1;
$xml->children()->children()->id_lang = 1;
$xml->children()->children()->id_customer = 1; 
$xml->children()->children()->id_carrier = 0;
$xml->children()->children()->total_paid = '56973';
$xml->children()->children()->total_paid_real = '56973';
$xml->children()->children()->total_paid_tax_excl = '56973';
$xml->children()->children()->total_paid_tax_incl = '56977';
$xml->children()->children()->total_products = 1338;
$xml->children()->children()->total_products_wt = 1337;
$xml->children()->children()->conversion_rate = '1';
$xml->children()->children()->secure_key = md5('-1');
$xml->children()->children()->valid = 1;
$xml->children()->children()->module = 'Cheque';
$xml->children()->children()->payment = 'cheque';
$xml->children()->children()->current_state = 1;

unset($xml->children()->children()->id);
unset($xml->children()->children()->date_add);
unset($xml->children()->children()->date_upd);
unset($xml->children()->children()->associations);
unset($xml->children()->children()->delivery_date);
unset($xml->children()->children()->invoice_date);
unset($xml->children()->children()->total_discounts_tax_incl);
unset($xml->children()->children()->total_discounts_tax_excl);

$xml = $webService->add(array('resource' => 'orders',
'postXml' => $xml->asXML()
));

$resources = $xml->children()->children();
echo "Successfully added order.".$resources->id;

}
catch (PrestaShopWebserviceException $ex)
{
    // Here we are dealing with errors
    $trace = $ex->getTrace();
    if ($trace[0]['args'][0] == 404) echo 'Bad ID';
    else if ($trace[0]['args'][0] == 401) echo 'Bad auth key';
    else echo 'Other error<br />'.$ex->getMessage();
}
?>

推荐答案

亲爱的,在你得到 xml 响应的地方试试这个代码.

Dear try this code where you get xml response.

$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object");
print_r($xml);

看看这个XML解析PHP

这篇关于添加订单网络服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆