2010-12-07 9 views
1
$URL:https://demo.firstach.com/https/TransRequest.asp?Login_ID=someit&Transaction_Key=somekey&Customer_ID=23&Customer_Name=Muhammad Naeem&Customer_Address=Address&Customer_City=city&Customer_State=HI&Customer_Zip=54000&Customer_Phone=--&Customer_Bank_ID=111111118&Customer_Bank_Account=123456789&Account_Type=Business Checking&Transaction_Type=Debit&Frequency=Once&Number_of_Payments=1&Effective_Date=12%2F05%2F2010&Amount_per_Transaction=10.00&Check_No=&Memo=&SECCType=WEB 

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); // set url to post to 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable 
    curl_setopt($ch, CURLOPT_TIMEOUT, 0); // times out after Ns 
    curl_setopt($ch, CURLOPT_FAILONERROR, 0); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    $result = curl_exec($ch); // run the whole process 

    print_r($result); 

    curl_close($ch); 

i verwendet auch file_get_conent und fopen aber alle mir BAD REQUEST Fehler zurückkehren, mir bitteBad Request immer eine Abfragezeichenfolgeflag Datei in CURL beim Öffnen

bitte den Link unten

siehe für weitere Einzelheiten helfen

http://www.uqwibble.com/Phase-2/ach.php

Antwort

2

Nun assumign der Code, den Sie geschrieben genau dann diese Linie ist die Frage:

$URL:https://demo.firstach.com/https/TransRequest.asp?Login_ID=someit&Transaction_Key=somekey&Customer_ID=23&Customer_Name=Muhammad Naeem&Customer_Address=Address&Customer_City=city&Customer_State=HI&Customer_Zip=54000&Customer_Phone=--&Customer_Bank_ID=111111118&Customer_Bank_Account=123456789&Account_Type=Business Checking&Transaction_Type=Debit&Frequency=Once&Number_of_Payments=1&Effective_Date=12%2F05%2F2010&Amount_per_Transaction=10.00&Check_No=&Memo=&SECCType=WEB 

Hier sieht es aus, dass Sie versuchen, $URL zu definieren, aber wenn Sie es mit cURL verwenden, verweisen Sie auf $url. Die Variablen sind Groß- und Kleinschreibung. Zweitens haben Sie $URL:, die nicht gültig ist, die Sie $url = verwenden möchten.

Addiitonally würde ich die params wie folgt kodieren:

$baseurl = 'https://demo.firstach.com/https/TransRequest.asp'; 
$params = array(
'Login_ID' => 'someit', 
'Transaction_Key' => 'somekey', 
'Customer_ID'= => 23, 
'Customer_Name' => 'Muhammad Naeem', 
'Customer_Address' => 'Address', 
'Customer_City' => 'city', 
'Customer_State' => 'HI', 
'Customer_Zip' => '54000', 
'Customer_Phone' => '--', 
'Customer_Bank_ID' => '111111118' 
'Customer_Bank_Account' => '123456789' 
'Account_Type' => 'Business Checking' 
'Transaction_Type' => 'Debit' 
'Frequency' => 'Once' 
'Number_of_Payments' => 1, 
'Effective_Date'=> '12/05/2010', 
'Amount_per_Transaction' => '10.00', 
'Check_No'=> '', 
'Memo'=> '', 
'SECCType' => 'WEB' 
); 

$url = sprintf('%s?%s', $baseurl, http_build_query($params)); 

auf diese Weise http_build_query kümmert sich um alle Ihre URL-Codierung nehmen und Sie können, bevor die Hand, so seine leicht zu sehen, mit einem Array arbeiten, was los ist, und fügen Sie/Parameter entfernen/ändern. Wenn es alternativ eine Post-Anforderung Sie könnten Verwendung jsut:

curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

die Pflege aller Parametercodierung stattfinden wird und was nicht direkt aus dem Array auf diese Weise müssen sie nicht manuell auf den $url angehängt werden.

+0

Vielen Dank, es funktioniert. – Naeem