PHP ページへの cfhttp 投稿を行っています。
<cfhttp method="Post" url="https://www.example.com/ssl/roundpoint.php" result="mlResponse">
<cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0">
<cfhttpparam type="Header" name="TE" value="deflate;q=0">
<cfoutput>
<cfif isdefined( "ppcid" )><cfhttpparam name="PPCID" type="formField" value="#PPCID#"></cfif>
<cfif isdefined( "product")><cfhttpparam name="PRODUCT" type="formField" value="#PRODUCT#"></cfif>
<cfif isdefined( "va_status" )><cfhttpparam name="VA_STATUS" type="formField" value="#VA_STATUS#"></cfif>
<cfif isdefined( "qs_product")><cfhttpparam name="QS_PRODUCT" type="formField" value="#QS_PRODUCT#"></cfif>
<cfif isdefined( "prop_st" ) and prop_st neq ""><cfhttpparam name="PROP_ST" type="formField" value="#PROP_ST#"></cfif>
</cfoutput>
</cfhttp>
PHP ページで cURL 関数を実行し、結果から特定の値を探して保存します。
$pstVars = '';
if (count($_REQUEST) > 0) {
foreach($_REQUEST as $key=>$value) {
$pstVars .= $key . '=' . urlencode($value) . '&';
}
$pstVars .= 'ON_SUBMIT=YES';
//the SSL/ORGANIC redirect API url
$url = 'https://www.example.com/ssl/redirect.php';
//make the server-side redirect API call
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $pstVars);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//store the result from the API call
$roundpoint_result = curl_exec($ch);
// LOOKING FOR ROUNDPOINT FLAG
$rpVals = substr($roundpoint_result, 0, 10);
テスト目的で、$rpVals の値が正しいことを確認するために自分自身に電子メールを送信しました。その値を Coldfusion ページに戻す必要があります。値をCookieに渡そうとしました:
setcookie('RPCOOKIE', $rpVals, time()+60*60*24*2, '/', '.example.com');
ColdFusionページでそれを読み込もうとしました:
<cfparam name="RPCOOKIE" default=""/>
<cfcookie name="RPCOOKIE" value="#RPCOOKIE#">
しかし、Cookie を設定したり、ColdFusion で読み取ったりして、これでうまくいきませんでした。助言がありますか?
(参考までに - Coldfusion ページは数週間以内に PHP で書き直されますが、クライアントは時間に敏感なものを要求しています)。