囲碁動画のダウンロードサイト構築中に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;
を追加しておきました。