[SaaS型SP開発者向け] V2AuthTokenを利用してAmazon Payで決済する方法を教えてください。
認証情報自動連携について
- V2では、SaaS型SP(Service Provider:以降、SP)に限り、事業者が利用する SPの管理画面を起点に、認証情報発行およびSPへ自動連携する機能を追加することができるようになります。
- この機能により、事業者の作業負担が減り、キー発行後すぐAmazon Payをご利用いただけるだけでなく、事業者からSPへの問い合わせの削減も見込めます。
- また、事業者からシークレットキー(PrivateKey)を共有いただく必要もなくなるため、セキュリティの向上も期待できます。(PrivateKeyの代わりに、V2AuthTokenを利用します)
- 詳細は、認証情報自動連携機能をご覧ください。
Amazon Payボタンを表示する際の注意点
1.Payloadを作成する
- Generate the Create Checkout Session payloadに従い、Payloadを作成してください。
- 以下のstoreIdには、加盟店のstoreIdを設定してください。
{
"webCheckoutDetails": {
"checkoutReviewReturnUrl": "https://a.com/merchant-review-page"
},
"storeId": "amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId", //加盟店のstoreIdを利用する
.....
}
2.1.のPayloadを利用して、Signatureを生成する
- Sign the payloadに従い、1.で作成したPayloadからSignatureを作成してください。
- YOUR_PUBLIC_KEY_IDとYOUR_PRIVATE_KEY_STRINGにはSPのPrivateKeyやPublicKeyIdを設定してください。※以下の例はJavaでSignatureを生成する例です。
.setPublicKeyId("YOUR_PUBLIC_KEY_ID") //SPのPublicKeyIdを利用する
...
.setPrivateKey("YOUR_PRIVATE_KEY_STRING") //SPのPrivteKeyを利用する
3.1.で作成したPayloadと2.で生成したSignatureを使い、Amazon Payボタンを生成する
- Render the buttonに従い、Amazon Payボタンを設置してください。
Amazon Pay APIを実行する際の注意点
- APIを実行する際には、headerに
x-amz-pay-authtoken
を追加するのみです。 - それ以外は、PrivateKeyを利用した実行方法と変わりません。
headerへの設定方法
- API実行時のheaderに、
x-amz-pay-authtoken(V2AuthToken)
を指定してください。 - Clientを生成する際に設定する、PrivateKeyやPublicKeyIdについては、SPのPrivateKeyとPublicKeyIdをご利用ください。
//PHPでGetCheckoutSession APIを実行する場合の例
$headers = array('x-amz-pay-authtoken' => $amz_pay_authToken);
try {
$client = new Amazon\Pay\API\Client($amazonpay_config);
$result = $client->getCheckoutSession($checkout_session_id, $headers);
$response = '{"status":' . $result['status'] . ',"response":' . $result['response'] . '}';
echo($response);
} catch (\Exception $e) {
// handle the exception
echo $e . "\n";
}