JSON 使用 Amazon Java SDK 无法识别格式

JSON format not recognised using Amazon Java SDK

我正在将 Amazon Pay SDK 与 Coldfusion 结合使用,我几乎已经完成了。但是,我正在尝试使用 updateCheckoutSession 方法,但它无法识别该方法的参数。当我调用该方法时,出现以下错误:

我尝试了尽可能多的创建和格式化 JSON 的不同方式,但我总是遇到相同的错误(上述错误)。

我调用的方法:

<!-- Gets the Session ID from the URL -->
<cfset amzSessionId = url.amazonCheckoutSessionId>          
<cfobject action="create" type="java" class="com.amazon.pay.api.WebstoreClient" name="WebstoreClient">
<cfset theJson = '{"webCheckoutDetails":{"checkoutResultReturnUrl":"XXXXXX"},"paymentDetails":{"paymentIntent":"AuthorizeWithCapture","canHandlePendingAuthorization":false,"softDescriptor":"Descriptor","chargeAmount":{"amount":"#orderTotal#","currencyCode":"GBP"}},"merchantMetadata":{"merchantReferenceId":"XXXXXX","merchantStoreName":"XXXXXX"}}'>
<cfset updateResponse = WebstoreClient.updateCheckoutSession(amzSessionId,theJson)>

下面是WebstoreClient的CFDUMP,更新方法显示在底部。

如果您需要任何其他信息,我很乐意提供。

我认为你应该通过 java JSONObject type variable refer。所以理论上应该可以工作。

<cfset theJsonString = '{"webCheckoutDetails":{"checkoutResultReturnUrl":"XXXXXX"},"paymentDetails":{"paymentIntent":"AuthorizeWithCapture","canHandlePendingAuthorization":false,"softDescriptor":"Descriptor","chargeAmount":{"amount":"#orderTotal#","currencyCode":"GBP"}},"merchantMetadata":{"merchantReferenceId":"XXXXXX","merchantStoreName":"XXXXXX"}}'>
<cfset theJsonObject = createObject('java', 'org.json.JSONObject').init(theJsonString)>
<cfset updateResponse = WebstoreClient.updateCheckoutSession(amzSessionId, theJsonObject)>