MWS Report APIからの移行


Amazon Payのレポート取得をMWSからAmazon Pay Reports APIに移行する

Amazon Payは、Amazon MWSに代わるAmazon Payのレポート取得方法として、Amazon Pay Reports APIを導入しました。

Amazon MWSは2023年末で廃止となります。

現在MWSのAPIを利用している事業者は、以下のガイドに従ってAmazon Pay Reports APIへの移行をお願いします。 MWS廃止およびスケジュールの詳細

MWS ReportsとAmazon Pay Reports APIsの違い

カテゴリー Amazon Pay Reports MWS Reports
Authentication Amazon Pay Reports APIは、Amazon Pay Checkout Version 2 (CV2)と同じゲートウェイを使用しています。そのため、Amazon Payのインテグレーションで使用している認証情報をそのままご利用いただくことが可能です。 MWSサービスは、MWS Access Key IdおよびSecretを使用しています。Amazon Pay CV2ではこれらの認証キーを使用する必要がありません。
SDKs Amazon Pay Reports APIは、CV2のAmazon Pay API SDKsに含まれます。詳細は こちらを参照ください。 MWS Reportは、Amazon Pay製品に関係性のない専用のSDKを提供しています。
API Amazon Pay Reports APIは、RESTfulで作られており、また構造化されたリクエストおよびレスポンスとしてJSONを使用しています。 MWS Reports APIでは、リクエストおよびレスポンスにXMLを使用しています。
レポートドキュメントの取得 Amazon Pay Reportでは、レポートドキュメントへのリンクを返します。 APIを使用して、MWSから直接レポートを取得します。

ステップ1: 認証

Amazon Pay CV2 API SDKをご利用の場合は、SDKで認証処理を行いますので、決済処理の際に使用するキーおよびID等をそのままご利用いただけます。

CV2 APIおよびSDKを初めて利用する場合は、Amazon Payインテグレーションガイドの Amazon Pay SDKをダウンロードします および Public Key IDを 取得します に従って設定してください。

署名処理を手動で行う場合は、Public Key IDを 取得します を参照してPublic Key IDを取得し、署名リクエスト に従ってリクエストの署名処理を行なってください。

Amazon Pay Scratchpad (US, EU, JP) も非常に有用なリソースですので必要に応じてご利用ください。

ステップ2: レポートの一覧を取得する

Get Reports API は、レポートおよびレポートのメタデータを一覧で返します。メタデータにはreportDocumentId が含まれています。このIDを使って実際のレポートを取得します。

MWSでの操作: GetReportRequestList and GetReportRequestListByNextToken
Amazon Payでの操作: Get Reports

MWSパラメータ Amazon Payパラメータ 注意
ReportTypeList reportTypes 取得したいレポートの種類(reportTypes)をご確認の上、指定してください reportTypes
RequestedFromDate createdSince ISO8601形式での協定世界時(UTC)
RequestedToDate createdUntil ISO8601形式での協定世界時(UTC)
ReportProcessingStatusList processingStatuses レポートのステータス (CANCELLED, DONE, FATAL, IN_PROGRESS, IN_QUEUE).
NextToken nextToken 指定する場合は、nextToken以外の他パラメータを入れずにAPIを実行します。

APIの詳細はこちらをご確認ください。SDKをご利用の場合は、利用するSDKのドキュメントをご確認ください。

ステップ3: レポートドキュメントを取得する

MWS操作: GetReport
Amazon Pay操作: Get Report Document

MWSパラメータ Amazon Payパラメータ 注意
ReportId reportDocumentId reportDocumentId が返ります。

Get Report Document API は、レスポンスで url を返します。

APIの詳細は こちらをご確認ください。SDKをご利用の場合は、利用するSDKのドキュメントをご確認ください。

ステップ4: レポートドキュメントファイルをダウンロードする

ステップ3で返ってきた情報を使用してレポートをダウンロードする必要があります。url は30秒間のみ有効ですのでご注意ください。このタイミングでレポートは非圧縮されます。

レポートをダウンロードするためのサンプルコードを以下にご紹介します。他開発言語でのダウンロード処理を実行する場合は、サンプルコードの内容を参考にしてください。

  • 一つ前のステップの URL とオプションの圧縮アルゴリズム値は、URL の引数であり、DownloadExample クラスのダウンロードメソッドの CompressionAlgorithm パラメーターでもあります。
package com.example.download;

import java.io.FileOutputStream;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.channels.ReadableByteChannel;

public class DownloadExample {

    public static void main(String[] args){
        System.out.println("Downloading file");
        try (
            ReadableByteChannel readableByteChannel = Channels.newChannel(new URL("<url from GetReportDocument>").openStream());
            FileOutputStream fileOutputStream = new FileOutputStream("<target output file>")) 
        {
            fileOutputStream.getChannel().transferFrom(readableByteChannel, 0, Long.MAX_VALUE);
            fileOutputStream.close();
            System.out.println("Download complete");
        } catch(Exception e){
            System.err.println(String.format("error downloading: %s", e.getMessage()));
        }
    }

}
wget -O <target output file> "<url from GetReportDocument>"

ヒント: wget で問題が発生しないように、URL は引用符で囲んでください。