# CV1で作成したオブジェクトをCV2のAmazon Pay APIで扱うことができますか？

CV1（古いバージョン）で作成したOrderReferenceオブジェクト/Authorizationオブジェクト/Captureオブジェクト/BillingAgreementオブジェクトをCV2のAmazon Pay APIで再オーソリする/売上請求する/返金することが可能です。

## CV2 APIを使用したCV1注文の管理

CV1で作成された古い注文に対してCV2 APIで処理する場合は、下記の対応表を参考に該当する処理を実行してください。
詳細は参考リンクにあるインテグレーションガイドの内容をご覧ください。

### ワンタイムペイメントAPIからOneTime(都度支払い)API


|**CV1 API**|**CV2移行手順**|
|:---|:---|
|Authorize|CV1のAmazonOrderReferenceIdを使用したCreate Charge。 Order Reference objectはOpen状態である必要があります。<br>同じトランザクションを使用して支払いを売上請求するするには、captureNowをtrueに設定します。<br>オーソリを同期にするか非同期にするかを指定するにはCanHandlePendingAuthorizationパラメータを使用してください。|
|Cancel Order Reference| CV1のAmazonOrderReferenceIdを使用したClose Charge Permission。cancelPendingChargesをTrueに設定します。|
|Capture|次の手順を実行します：<br>1. CV1のAmazonAuthorizationIdの21番目の文字を文字「A」から文字「C」に変更します。<br>例：S01-5797829-1888777-A043451からS01-5797829-1888777-C043451。<br>2. 変更された値を使用してCapture Chargeを実行します。|
|Close Authorization|次の手順を実行します：<br>1. CV1のAmazonAuthorizationIdの21番目の文字を文字「A」から文字「C」に変更します。<br>例：S01-5797829-1888777-A043451からS01-5797829-1888777-C043451。<br>2. 変更された値を使用してCancel Chargeを実行します。|
|Close Order Reference|CV1のAmazonOrderReferenceIdを使用したClose Charge Permission。cancelPendingChargesをFalseに設定します。|
|Get Authorization Details|次の手順を実行します：<br>1. CV1のAmazonAuthorizationIdの21番目の文字を文字「A」から文字「C」に変更します。<br>例：S01-5797829-1888777-A043451からS01-5797829-1888777-C043451。<br>2. 変更された値を使用してGet Charge を実行します。<br><br>CV1 Authorizationの状態とCV2 Chargeの状態の対応は次の通りです：<br>Pending = AuthorizationInitiated<br>Open = Authorized<br>Closed = ReasonCodeがMaxAmountCapturedの場合はCaptured, その他の全てのReasonCodeの場合は、Canceled<br>Declined = Declined|
|Get Capture Details|CV1のAmazonCaptureIdを使用したGet Charge。<br><br>CV1 Captureの状態とCV2 Chargeの状態の対応は次の通りです：<br>Pending = CaptureInitiated<br>Completed = Captured<br>Closed = Canceled<br>Declined = Declined|
|Get OrderReference Details| CV1のAmazonOrderReferenceIdを使用したGet Charge Permission。<br><br>CV1 ObjectReference状態とCV2 ChargePermisionの状態の対応は次の通りです：<br>CV1で作成したOrderReferenceをCV2 Get Charge Permission APIなどで取得するとCharge Permissionの状態はNonChargeableとなります。|
|Get Refund Details|CV1のAmazonRefundIdを使用したGet Refund。<br><br>CV1 Refundの状態とCV2 Refundの状態の対応は次の通りです：<br>Pending = RefundInitiated<br>Completed = Refunded<br>Declined = Declined|
|Refund|CV1のAmazonCaptureIdを使用したCreate Refund。 CaptureオブジェクトはCompleted状態である必要があります。|


### Auto Pay APIからRecurring(継続支払い)API

|**CV1 API**|**CV2移行手順**|
|:---|:---|
|AuthorizeOnBilling Agreement| CV1のAmazonBillingAgreementIdを使用したCreate Charge。Billing AgreementオブジェクトはOpen状態である必要があります。 <br><br>同じトランザクションを使用して支払いを売上請求するするには、captureNowをtrueに設定します。<br>オーソリを同期にするか非同期にするかを指定するにはCanHandlePendingAuthorizationパラメータを使用してください。|
|CloseBillingAgreement|CV1のAmazonBillingAgreementIdを使用したClose Charge Permission。cancelPendingChargesをFalseに設定してください。|
|CreateOrderReferenceForId|CV2では同等のAPIを提供していません。<br><br>このAPIを将来のオーソリ取得するためにOrder Reference objectの生成で利用している場合は、<br>CV1のAmazonBillingAgreementIdを使用したCreate Chargeを実行するようにコードをリファクタリングしてください。<br><br>このAPIを即時のオーソリや売上請求のために使用している場合は、AmazonBillingAgreementIdを使用した<br>Create Chargeを実行してください。|
|GetBillingAgreementDetails|CV1の AmazonBillingAgreementIdを使用したGet Charge Permission。<br><br>CV1 Billing Agreementの状態とCV2 Charge Permisionの状態の対応は次の通りです：<br>Open = Chargeable<br>Closed = Closed<br>Canceled = Closed<br>Suspended = NonChargeable|
|SetBillingAgreementDetails|CV1のAmazonBillingAgreementIdを使用したUpdate Charge Permission。|
|ValidateBillingAgreement|CV2では同等のAPIを提供していません。 Amazon PayはCharge Permissionオブジェクトが作成されるときに、<br>それに関連付けられている支払い方法を自動的に検証します。このAPIリクエストはコードから削除する必要があります。|


## 処理例

例えば、以下のような形でV2のAPIをご活用いただけます。

例１）CV1でauthorize APIまで実行し、Authorizationオブジェクトまで生成した場合
AmazonAuthorizationId (注1)に対してCaptureChargeを実行

注1: ただしCV1のAuthorizationオブジェクトをCV2で扱うには、S03-5797829-1888777-A043451 → S03-5797829-1888777-C043451 のように、"A" から "C" に変更していただく必要がございます。

例２）CV1でcapture APIまで実行し、Captureオブジェクトまで生成した場合
AmazonCaptureIdに対して、CreateRefundを実行

※CV2で作成したオブジェクトをV1のAPIで操作することについては、弊社は動作保証しておりません。
※CV2をリリースした際にCV1で作成した注文のオーソリが期限切れになった可能性があります。その際再オーソリ（Create Charge）を実行ください。



## 参考

[Upgrading to V2 Checkout](https://developer.amazon.com/ja/docs/amazon-pay-checkout/upgrading-to-v2-checkout.html)
[OneTime（都度支払い）で、再オーソリの処理方法を教えてください。](https://www.amazonpay-faq.jp/faq/QA-13)
[再オーソリ(Create Charge)時・Recurring(継続支払い)の２回目以降の決済時などにオーソリがDeclinedになった場合はどのようにすればよいですか？ ](https://www.amazonpay-faq.jp/faq/QA-45)
