バックグラウンド タスクを介していくつかの JS コードを実行しようとしています。
ペイパルと同様に機能するゲートウェイを使用しています。つまり、支払いの詳細が取得されると、サーバーのリスナーに応答が返されます(これは即時または数分後に発生する可能性があります)
応答がリスナー (listener.cfm) によって受信されたら、cfhttp im を使用して、トリガー コードを含むファイル (runPixCode.cfm) を呼び出します。runPixCode.cfm はブラウザによってレンダリングされないため、JS は実行されません。
また、これが機能したかどうかを証明するために、ログを txt ファイルに書き込む別のファイル (provethisis called.cfm) を呼び出すように JS を取得しています。
cfhttp 呼び出しの直後に次の行を追加すると、ログ ファイルにエントリが表示されます。これにより、ブラウザによってレンダリングされた JS を提供することに問題がないことが保証されます。
<cfoutput>#cfhttp.FileContent#</cfoutput><cfabort>
ただし、バックグラウンド タスクでは機能しません。これに対処する方法が他にわかりません。提案をいただければ幸いです。
リスナー.cfm
--Does a bunch of logic--
<cfif paymentsuccessful>
<CFHTTP URL="www.mysite.com/runPixCode.cfm" METHOD="post" timeout="12" resolveurl="true">
<CFHTTPPARAM NAME="TrackingId" VALUE="#trackingId#" TYPE="FormField">
</CFHTTP>
</cfif>
runPixCode.cfm
<SCRIPT language="JavaScript">
var axel = Math.random()+"";
var a = axel * 1000;
document.write('<IFRAME SRC="http://www.mysite.com/provethisiscalled.cfm?codearea=landing&num='+ a + '?" WIDTH=1 HEIGHT=1 FRAMEBORDER=0></IFRAME>');
</SCRIPT>
<NOSCRIPT><IFRAME SRC="http://www.mysite.com/provethisiscalled.cfm?codearea=landing&num=1" WIDTH=1 HEIGHT=1 FRAMEBORDER=0></IFRAME> </NOSCRIPT>
これが呼び出されたことを証明する.cfm
<cfloop collection=#ARGUMENTS.triggerParams# item="key">
<cfset docLogging = docLogging & chr(13) & "#key# = " & ARGUMENTS.triggerParams[key]>
</cfloop>
<cffile action="append" file="c:\serverlocation\someDir\triggerlog.txt" output="#docLogging#" addnewline="YES" >