Мы пытаемся интегрировать бизнес-API Amazon на веб-сайт.
Это поток проекта. Планировщик фонда добавит продукты из амазонки бизнес-ави в проект, а затем администрация одобрит/опубликует проект на веб-сайте. Как только фонд будет собран для соответствующего проекта через веб-сайт. Администратор купит продукты с амазонки.
Мы создали URL-адрес перфорации электронной почты amazon, с помощью которого мы можем войти на веб-сайт amazon и добавить продукты в корзину. После нажатия кнопки "Отправить эти элементы для утверждения" мы можем получить ответ от тележки в нашем проекте. Но проблема заключается в том, что идентификатор заказа не генерируется и не может видеть эти заказы в учетной записи администратора сайта Amazon "Утвердить заказы".
Ниже приведены коды запросов, которые мы отправляем в бизнес Amazon. Пожалуйста, направляйте/предлагайте нам, где мы допустили ошибку.
Запрос на настройку Punchout:
<?php
$soapUrl = "https://www.amazon.com/eprocurement/punchout";
$xml_post_string = '<?xml version = "1.0" encoding = "UTF-8"?><!DOCTYPE cXML SYSTEM
"http://xml.cxml.org/schemas/cXML/1.2.007/cXML.dtd">
<cXML version="1.2.007" xml:lang="en-US" payloadID=
"[email protected]"
timestamp="2016-09-01T01:50:29-05:00">
<Header>
<From>
<Credential domain="NetworkId">
<Identity>abcd123</Identity>
</Credential>
</From>
<To>
<Credential domain="NetworkId">
<Identity>Amazon</Identity>
</Credential>
</To>
<Sender>
<Credential domain="NetworkId">
<Identity> abcd123</Identity>
<SharedSecret>test secret</SharedSecret>
</Credential>
<UserAgent>amazon.com</UserAgent>
</Sender>
</Header>
<Request>
<PunchOutSetupRequest operation="create">
<BuyerCookie>1234567</BuyerCookie>
<Extrinsic name="RequestID">5826623</Extrinsic>
<Extrinsic name="MUDID">CLS21518</Extrinsic>
<Extrinsic name="Location">RTP</Extrinsic>
<Extrinsic name="Country">UNITED STATES</Extrinsic>
<Extrinsic name="Email">[email protected]</Extrinsic>
<Extrinsic name="ClientMUDID">CLS21518</Extrinsic>
<Extrinsic name="UserEmail">[email protected]</Extrinsic>
<Extrinsic name="Division">Corporate</Extrinsic>
<Extrinsic name="StartDate">1/9/2016 2:34:36 PM</Extrinsic>
<BrowserFormPost>
<URL>http://www.test.com/ test/response.php</URL>
</BrowserFormPost>
<Contact>
<Name xml:lang="en-US">Jones, Tom</Name>
<Email>[email protected]</Email>
</Contact>
<SupplierSetup>
<URL>http://workchairs.com/cxml</URL>
</SupplierSetup>
</PunchOutSetupRequest>
</Request>
</cXML>';
$headers = array(
"Content-type: text/xml;charset=\"utf-8\"",
"Accept: text/xml",
"Cache-Control: no-cache",
"Pragma: no-cache",
"SOAPAction: https://www.amazon.com/eprocurement/punchout",
"Content-length: ".strlen($xml_post_string),
);
$url = $soapUrl;
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); // the SOAP request
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
echo "<pre>"; print_r($parser); exit;
?>
Ответ на настройку Punchout:
SimpleXMLElement Object
(
[@attributes] => Array
(
[payloadID] => [email protected]
[timestamp] => 2016-09-01T10:37:29+10:37
)
[Response] => SimpleXMLElement Object
(
[Status] => SimpleXMLElement Object
(
[@attributes] => Array
(
[code] => 200
[text] => success
)
)
[PunchOutSetupResponse] => SimpleXMLElement Object
(
[StartPage] => SimpleXMLElement Object
(
[URL] => https://www.amazon.com/eprocurement/initiate-clean-punchout/123-1234567-1234567
)
)
)
)
Punchout Order Message:
SimpleXMLElement Object
(
[@attributes] => Array
(
[payloadID] => [email protected]
[timestamp] => 2016-09-01T10:37:53.985Z
)
[Header] => SimpleXMLElement Object
(
[From] => SimpleXMLElement Object
(
[Credential] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[domain] => DUNS
)
[Identity] => 123465789
)
[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[domain] => NetworkId
)
[Identity] => Amazon
)
)
)
[To] => SimpleXMLElement Object
(
[Credential] => SimpleXMLElement Object
(
[@attributes] => Array
(
[domain] => NetworkId
)
[Identity] => abcd123
)
)
[Sender] => SimpleXMLElement Object
(
[Credential] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[domain] => DUNS
)
[Identity] => 123456789
)
[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[domain] => NetworkId
)
[Identity] => Amazon
)
)
[UserAgent] => Amazon LLC eProcurement Application
)
)
[Message] => SimpleXMLElement Object
(
[PunchOutOrderMessage] => SimpleXMLElement Object
(
[BuyerCookie] => 1234567
[PunchOutOrderMessageHeader] => SimpleXMLElement Object
(
[@attributes] => Array
(
[operationAllowed] => create
)
[Total] => SimpleXMLElement Object
(
[Money] => 1.88
)
)
[ItemIn] => SimpleXMLElement Object
(
[@attributes] => Array
(
[quantity] => 1
)
[ItemID] => SimpleXMLElement Object
(
[SupplierPartID] => D00004ABC1
[SupplierPartAuxiliaryID] => 123-1234567-1234567,1
)
[ItemDetail] => SimpleXMLElement Object
(
[UnitPrice] => SimpleXMLElement Object
(
[Money] => 1.88
)
[Description] => Mead Composition Book, Wide Ruled, 9.75 x 7.50 Inch Sheet Size, Black Marble, Bookbound, 100 Sheets (09910)
[UnitOfMeasure] => EA
[Classification] => 14111514
[ManufacturerPartID] => UPC-800187711702
[ManufacturerName] => MeadWestvaco Consumer & Office Products
[Extrinsic] => Array
(
[0] => Amazon
[1] => Amazon
[2] => gl_office_product
[3] => OFFICE_PRODUCTS
[4] => New
[5] => true
)
)
)
)
)
)
Мы получаем ответ от бизнеса Amazon успешно. Но детали заказа не сопоставляются с фактической учетной записью Amazon.
Чтобы купить продукты, как только фонд будет доступен со стороны администратора. Детали заказа должны быть доступны в бизнес-аккаунте Amazon.
Есть ли что-нибудь, что нам не хватает на запрос script? Или есть какие-либо настройки, которые необходимо внести в бизнес-аккаунт Amazon?