我正在将 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
类型变量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)>
关于java - 使用 Amazon Java SDK 无法识别 JSON 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72002830/