2011-12-22 146 views
0

我正在开发一个网站,我试图访问贝宝。所以我试图使用curl将存储在我的数据库中的用户信息发送到PayPal服务器。我不知道如何做到这一点。在这方面请你能帮助我吗?如何在curl中设置变量?

我的代码:

$fetSql  ="SELECT * FROM `donator` WHERE `donatorId`='".$_REQUEST['donatorId']."'"; 
     //echo $fetSql; 
     $fetQry  =$db->query($fetSql); 
     $array  =$db->fetch_array($fetQry); 



    $customer_first_name  =$array['donatorFName']; 
    $customer_last_name  =$array['donatorLName']; 
    $example_payment_amuont  =$array['amount']; 
    $customer_address1  =$array['address1']; 
    $customer_address2  =$array['address2']; 
    $customer_city  =$array['city']; 
    $customer_state  =$array['state']; 
    $customer_zip   =$array['zip']; 
    $customer_country  =$array['country']; 
    $customer_credit_card_number  =$array['cardNo']; 
    $cc_cvv2_number  =$array['cvvNo']; 
    $cc_expiration_month  =$array['expMnth']; 
    $cc_expiration_year  =$array['expYr']; 
    $currencyCodeType ='GBP'; 

我如何分配在卷曲这个数据?

+0

小[Bobby-Tables](http://bobby-tables.com/)想来玩。 *叹息* – Quentin 2011-12-22 09:51:37

+0

cURL是一个用于制作HTTP请求的库。您必须以客户需要的格式构建HTTP请求。 – Quentin 2011-12-22 09:52:14

回答

0

首先,我不是paypal的专家,但我怀疑你使用的是正确的方法,我认为你必须将你的表单的action设置为指向paypal而不使用curl。

无论如何要回答你的问题来设置卷曲参数你必须使用curl_setopt函数和CURLOPT_POSTFIELDS常数。

这里一个完整的例子

$ch=curl_init(); 
curl_setopt ($ch,CURLOPT_URL,"https://example.com/"); 
curl_setopt ($ch,CURLOPT_POST,1); 


$post = "user_id=001&price=105"; 

curl_setopt ($ch,CURLOPT_POSTFIELDS,$post); 
curl_setopt ($ch,CURLOPT_SSL_VERIFYPEER,FALSE); 
curl_setopt ($ch,CURLOPT_RETURNTRANSFER, 1); 

var_dump(curl_exec($ch)); 
curl_close ($ch); 
1

你有不错的例子在PHP中回显表单并将值作为隐藏字段提供。

<body onLoad="document.forms['gateway_form'].submit();"> 
<form method="POST" name="gateway_form" action="https://www.paypal.com/cgi-bin/webscr"> 
<input type="hidden" name="$FIELD" value="$VALUE"/> 
<input type="hidden" name="$FIELD2" value="$VALUE2"/> 
.... 
</form> 

因为它是自动提交的onLoad脚本的成功。

用户将被重定向到PayPal进行登录。

如果使用CURL进行此操作,用户将无法进行付款。