ColdFusion (CFML) 仅在使用 Paypal 的移动设备上丢失会话变量 API
ColdFusion (CFML) Losing Session Variables ONLY on Mobile devices with Paypal API
好的,当买家 return 从 Paypal 进行 PDT 付款时,我似乎正在丢失会话变量。任何普通浏览器都不会发生这种情况。我的问题是如何将会话信息发送到 Paypal 并在他们将用户发送回网站时让他们 return 它。请查看下面的代码,它可能会提供更多信息。
<cfform name="CustomerInfo" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<!--- Paypal cart setup --->
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="Beantownaquatics@gmail.com">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="return" value="http://www.beantownaquatics.com/checkoutcomplete.cfm">
<cfset ppHostname = "www.paypal.com">
<CFHTTP url="https://#ppHostname#/cgi-bin/webscr" method="POST" resolveurl="no">
<cfhttpparam name="Host" type="header" value="#ppHostname#">
<cfhttpparam name="cmd" type="formField" value="_notify-synch">
<cfhttpparam name="tx" type="formField" value="#txToken#">
<cfhttpparam name="at" type="formField" value="#authToken#">
</CFHTTP>
我认为将会话传递给 Paypal 最简单,但我无法让它工作。我还考虑过将 JSON 字符串插入数据库,然后在用户 return 时将其传回给用户。处理我的库存更新。
如果有任何建议,请在这里停留几天。
您需要使用名为 'custom' 的字段。
<input type="hidden" name="custom" value="value1|value2|value3">
我通常用竖线分隔我的值,例如“|”,然后将它们分开,一旦它们 return,使用:
<cfset content = URLdecode(cfhttp.FileContent)>
<cfloop list="#content#" index="curLine" delimiters="#chr(10)#">
<cfif listGetAt(curLine,1,"=") is "custom">
<cfset values=listGetAt(curLine,2,"=")>
<cfset value1=listGetAt(values,1,"|")>
<cfset value2=listGetAt(values,2,"|")>
<cfset value3=listGetAt(values,3,"|")>
</cfif>
</cfloop>
好的,当买家 return 从 Paypal 进行 PDT 付款时,我似乎正在丢失会话变量。任何普通浏览器都不会发生这种情况。我的问题是如何将会话信息发送到 Paypal 并在他们将用户发送回网站时让他们 return 它。请查看下面的代码,它可能会提供更多信息。
<cfform name="CustomerInfo" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<!--- Paypal cart setup --->
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="Beantownaquatics@gmail.com">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="return" value="http://www.beantownaquatics.com/checkoutcomplete.cfm">
<cfset ppHostname = "www.paypal.com">
<CFHTTP url="https://#ppHostname#/cgi-bin/webscr" method="POST" resolveurl="no">
<cfhttpparam name="Host" type="header" value="#ppHostname#">
<cfhttpparam name="cmd" type="formField" value="_notify-synch">
<cfhttpparam name="tx" type="formField" value="#txToken#">
<cfhttpparam name="at" type="formField" value="#authToken#">
</CFHTTP>
我认为将会话传递给 Paypal 最简单,但我无法让它工作。我还考虑过将 JSON 字符串插入数据库,然后在用户 return 时将其传回给用户。处理我的库存更新。
如果有任何建议,请在这里停留几天。
您需要使用名为 'custom' 的字段。
<input type="hidden" name="custom" value="value1|value2|value3">
我通常用竖线分隔我的值,例如“|”,然后将它们分开,一旦它们 return,使用:
<cfset content = URLdecode(cfhttp.FileContent)>
<cfloop list="#content#" index="curLine" delimiters="#chr(10)#">
<cfif listGetAt(curLine,1,"=") is "custom">
<cfset values=listGetAt(curLine,2,"=")>
<cfset value1=listGetAt(values,1,"|")>
<cfset value2=listGetAt(values,2,"|")>
<cfset value3=listGetAt(values,3,"|")>
</cfif>
</cfloop>