⑦MWS実践-認証エラー対処


MWSで認証エラー発生時の対処方法について以下のとおり説明します。MWSでPHPを用いて接続しようとすると以下のエラー【error:14090086(certificate verify failed)】が発生する場合があります。

というものですが、これはPHPでcURLを用いるための証明書が使えない状況にあるからです。
以下の3点を行うことで接続可能になります。
①php.iniファイルを書き換える
xamppですと”C:\XAMPP\php\php.ini”のファイルの最後に以下を書き加えて下さい。

★★★ディレクトリは自分の環境に書き換えてください。★★★

②以下の証明書ファイル”cacert.pem”をPHPフォルダに入れる。(XAMPPの場合は”C:\XAMPP\php\”)
cacert
(Zipファイルなので解凍して”cacert.pem”ファイルにしてフォルダに入れる。)

③php.iniファイルに”extension=php_curl.dll”があればコメントアウトを外す。
【PHP5.4では必要ですが、”extension=php_curl.dll”があればコメントアウトを外してください】

実際の接続方法は”⑥MWS実践-レポート(接続練習)-PHP-lib“を参照してください

⑥MWS実践-レポート(接続練習)-PHP-lib


AmazonMWSにおけるPHPを用いた接続方法(題名にlibと記載しているのはAmazonのライブラリを利用するためです。)について以下のとおり解説します。
記載しているサンプルはAmazonで出品されている一覧を取得するためのものですが、本来は出品リストの取得はこちらで処理するような一連の流れになります。
今回は接続の練習ですのでレポートの要求をかけるところのみ(本来は結果を取得しないと出品リストは取得できません)を説明しています。リストを取得するための処理ですので間違っても問題にはなりませんので、気軽に実施してください。(出品などは実際に販売されてしまうため価格0で出品したりすると大変です。)

Amazonのサンプルを付けていますので、事前に以下の2点を実施しておく必要があります。
①MWSのアカウント登録(”⑤MWS実践-MWS登録方法“を参照)
②PHPのインストール(”PHP環境構築(XAMPPインストール)について“参照)

(1)サンプルプログラムのダウンロード
AmazonのMWSサイトからPHPのサンプルコードをダウンロード(右上の”DownLoad”を押下)します。(今回は商品APIを選択していますが、左のウィジットに各APIがありますので必要に応じて選択し”PHPクライアントライブラリ”を選択してください。)

(2)展開したサンプルプログラムを配置
今回は”C:\AmazonMWS\MWS_reportAPI”というフォルダを作成し、その下に配置しました。【実際はsrc配下の”MarketplaceWebService”フォルダ(このフォルダは名前変更不可)をコピーすれば動作します】

(3)配置したフォルダの”src\MarketplaceWebServiceProducts\Samples”の中の”.config.inc.php”ファイルの以下の行を、<xxx>内をMWS登録時に取得したID等に変更する。

define(‘AWS_ACCESS_KEY_ID’, ‘<Your Access Key ID>’);
define(‘AWS_SECRET_ACCESS_KEY’, ‘<Your Secret Key>’);
define (‘MERCHANT_ID’, ‘<Your Merchant Id>’);

以下の2つの<xxx>内も任意のIDに書き換える。

define(‘APPLICATION_NAME’, ‘<Your Application Name>’);
define(‘APPLICATION_VERSION’, ‘<Your Application Version or Build Number>’);

(4)(3)の”Samples”フォルダ内にある処理したいサンプルフィルを選び、ファイルを書き換える。今回は”RequestReport”を送信したいので、”RequestReportSample.php”を書き換える。以下のところをコメントを外します(“//”の削除)。また、変数も値を入れればOKです。
以下のところのコメントを外す。

$serviceUrl = “https://mws.amazonservices.com”;
$request = new MarketplaceWebService_Model_RequestReportRequest();
$request->setMarketplaceIdList($marketplaceIdArray);
$request->setMerchant(MERCHANT_ID);
$request->setReportType(‘_GET_MERCHANT_LISTINGS_DATA_’);

また、以下のところの<xxx>内をMWS登録時に取得したIDに変更する。

$marketplaceIdArray = array(“Id” => array(‘<Marketplace_Id_1>’,'<Marketplace_Id_2>’));

(5)PHPの認証エラーになるので証明書を配置します。
配置方法は”⑦MWS実践-認証エラー対処“を参照してください。

(6)DOSプロンプト(“ファイル名を指定して実行”で”cmd”)を開き、ディレクトリを移動し実行すればOKです。

【コマンド例】
①cd C:\AmazonMWS\MWS_reportAPI\src\MarketplaceWebService\Samples
②c:\xampp\php\php RequestReportSample.php

★書き換えた”RequestReportSample.php”のソースコードを以下に添付します。

★DOSプロンプトでのコマンド例と成功した場合のログを表示します。

⑤MWS実践-MWS登録方法


Amazon米国におけるAmazon マーケットプレイスWebサービス(MWS)の登録方法について解説します。

ちなみに、MWSとはAmazon マーケットプレイスWebサービス(amazon Marketplace Web Service) の略で、WebサービスAPIであり、Amazon の出品者が、出品、注文、支払い、レポートなどのデータを自社のシステムと連携するためのシステム構築を可能とします。XMLを使用して、Amazonとのシステム連携を自動化することができるので、出品者は販売効率の改善や、業務コストの削減、顧客サービスの向上などを行うためのものです。使い方や詳細は別掲載します。

MWSの登録には事前にAmazon米国にセラーとして登録している必要があります。MWSには小口出品者ではなく大口出品者としての登録が必要ですので、大口出品者としてのセラー登録は”Amazon米国Seller登録方法【セラー登録】“を参照してください。

(1)MWS登録画面(US)【各国の登録サイトはページ一番下を参照】を開き、”Sign up for MWS”をクリック。
mws1
【参考:Excelから登録する場合】(1-1)を実施した場合は(1-2-x)の作業は気にせず(2)の作業をしてください。
(1-2-1)MWSの認証を行うので、”Credentials”をクリック。
5
(1-2-2)認証IDを取得するので、”I have forgotten or would like to obtain my MWS credentials”をクリック。【小口出品アカウントは取得不可】
6
(2)ログインパスワードを聞かれるので、大口出品セラーアカウントでログインする。【小口出品アカウントはログイン不可】
7

(3)出品用アカウントでマーケットプレイスWebサービスを利用するので、”I want to access my own Amazon seller account with MWS”を選択し、”Next”をクリック。
8

(4)Amazonの規約に合意するということにチェックを入れて”Next”をクリック。
9

(5)MWSの登録が完了し、認証IDやKeyなどを取得できました。(忘れないようにメモすること)
10

【MWS登録サイト】
JP: https://developer.amazonservices.jp/
US: https://developer.amazonservices.com/index.html
Canada: https://developer.amazonservices.ca/index.html
UK: https://developer.amazonservices.co.uk/index.html