1
我試圖將此PHP cURL函數轉換爲與我的rails應用程序一起工作。這段代碼來自需要驗證POST參數的SMS支付網關。由於我是一個大的PHP noob,我不知道如何處理這個問題。在rails應用程序中編寫cURL like函數
$verify_url = 'http://smsgatewayadress';
$fields = '';
$d = array(
'merchant_ID' => $_POST['merchant_ID'],
'local_ID' => $_POST['local_ID'],
'total' => $_POST['total'],
'ipn_verify' => $_POST['ipn_verify'],
'timeout' => 10,
);
foreach ($d as $k => $v)
{
$fields .= $k . "=" . urlencode($v) . "&";
}
$fields = substr($fields, 0, strlen($fields)-1);
$ch = curl_init($verify_url); //this initiates a HTTP connection to $verify_url, the connection headers will be stored in $ch
curl_setopt($ch, CURLOPT_POST, 1); //sets the delivery method as POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); //The data that is being sent via POST. From what I can see the cURL lib sends them as a string that is built in the foreach loop above
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //This verifies if the target url sends a redirect header and if it does cURL follows that link
curl_setopt($ch, CURLOPT_HEADER, 0); //This ignores the headers from the answer
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //This specifies that the curl_exec function below must return the result to the accesed URL
$result = curl_exec($ch); //It ransfers the data via POST to the URL, it gets read and returns the result
if ($result == true)
{
//confirmed
$can_download = true;
}
else
{
//failed
$can_download = false;
}
}
if (strpos($_SERVER['REQUEST_URI'], 'ipn.php'))
echo $can_download ? '1' : '0'; //we tell the sms sever that we processed the request
我GOOGLE了Rails中的捲曲LIB對方,發現一噸的選項,但沒有,我能理解,並在此腳本執行同樣的方式使用。
如果任何人都可以幫我把這個腳本從PHP轉換爲紅寶石,將不勝感激。
嘿!非常感謝您的快速回答。我現在正在查看Curb文檔,並嘗試重寫相應的ruby腳本。除了'CURLOPT_RETURNTRANSFER'之外,我發現所有參數都等價,但我仍在搜索中。一旦完成,我會在這裏發佈腳本,也許其他人會需要它。 – v3rt1go 2010-09-30 15:16:06