我正在使用 PayPal,我需要这段代码来阅读 API 的付款响应后:
<cfif StructKeyExists(FORM.TRANSACTION[0],"ID_FOR_SENDER_TXN")>
<cfset pTxnId = FORM.TRANSACTION[0].ID_FOR_SENDER_TXN />
</cfif>
但是当我运行支付响应测试工具时,我得到了这个错误:500 Element TRANSACTION is undefined in an Java object of type [Ljava.lang.String;.
我使用了这个循环:
<cfloop collection="#form#" item="theField">
<cfif theField is not "fieldNames">
#theField# = #form[theField]#<br>
</cfif>
</cfloop>
查看 FORM 中发送的变量,变量是这样的:
- TRANSACTION[0].ID_FOR_SENDER_TXN
- TRANSACTION[0].IS_PRIMARY_RECEIVER
- TRANSACTION[0].RECEIVER TRANSACTION[0].AMOUNT
- TRANSACTION[0].STATUS_FOR_SENDER_TXN
我不知道为什么我不能访问这个。
(评论更新)
尝试使用此代码:
<cfif isDefined("form['FORM.TRANSACTION[0].ID_FOR_SENDER_TXN']")>
<cfset pTxnId = form['FORM.TRANSACTION[0].ID_FOR_SENDER_TXN'] />
</cfif>
现在我收到错误:
500 函数 IsDefined 的参数 1,现在是 form['FORM.TRANSACTION[0].ID_FOR_SENDER_TXN'],必须是语法上有效的变量名。
如果我使用同样的错误
form['FORM.TRANSACTION[0].ID_FOR_SENDER_TXN']
或者
form['TRANSACTION[0].ID_FOR_SENDER_TXN']
更新 2
曾与:
<cfif structKeyExists(FORM, "TRANSACTION[0].ID_FOR_SENDER_TXN")>
</cfif>
谢谢!