囲碁動画のダウンロードサイト構築中にWordpress の EasyDigitalDownload で Amazon Payment 利用するときにハマったこと。どなたかの役に立つかもしれないのでメモっておきます。

1.PHP バージョン 5.3以上でないと決済サービスの選択肢としてでてこない

EasyDigitalDownload は Amazon Payment に標準で対応しているって触れ込みだったのに、この図の赤で囲ったやつが選択肢として出てこないわけですよ。PHP  が 5.2x なんて古い設定のサーバーで動かそうとするほうが悪いんですけどね。

2.国設定を日本にしているにもかかわらず、英語のボタンがでてきて、amazon.com のユーザー認証をしようとする。

ソースコードをみてると、国設定によってちゃんと amazon.co.jp の URL を利用しようとしているよう見えたのですが....一箇所、そうでないところがありました!

includes/gateways/amazon-payments.php  というファイルの、 function load_scripts()  という関数の、

switch ( edd_get_shop_country() ) という switch 文   が、

イギリス(GB)、ドイツ(DE)、その他(デフォルトUS )にしか対応してなかった。

自分でURLを調べて

case 'JP':
$base_url = 'https://static-fe.payments-amazon.com/OffAmazonPayments/jp/' . $sandbox. 'lpa/';
break;

を追加しておきました。