ok désolé,
voici le code de mon modeèl transaction.php
<?php
class Transaction extends AppModel {
function requestPaypal($price,$name,$custom)
{
$request=array(
'METHOD'=>'BMCreateButton',
'VERSION'=>'87',
'USER'=>Configure::read('Paypal.USER'),
'PWD'=>Configure::read('Paypal.PWD'),
'SIGNATURE'=>Configure::read('Paypal.SIGNATURE'),
'BUTTONCODE'=>'HOSTED',
'BUTTONTYPE'=>'BUYNOW',
'BUTTONSUBTYPE'=>'SERVICES',
'l_BUTTONVAR0'=>'buisness='.Configure::read('Paypal.mail'),
'l_BUTTONVAR1'=> "item_name=$name",
'l_BUTTONVAR2'=> "amount=$price",
'l_BUTTONWAR3'=>"currency_code=EUR",
'l_BUTTONVAR4'=>"no_note=1",
'l_BUTTONVAR5'=>"notify=".Router::url('paypal/notify',true),
'l_BUTTONVAR6'=>"return=".Router::url('paypal/success',true),
'l_BUTTONVAR7'=>"cancel=".Router::url('paypal/cancel',true),
'l_BUTTONVAR8'=>"custom=$custom",
);
$request= http_build_query($request);
$curlOptions = array(
CURLOPT_URL => "https://api-3t.sandbox.paypal.com/nvp",
CURLOPT_VERBOSE => 1,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => APP.'Vendor'.DS.'cacert.pem',
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POSTFIELDS => $request
);
$ch = curl_init();
curl_setopt_array($ch,$curlOptions);
$response = curl_exec($ch);
if(curl_errno($ch)){
debug(curl_error($ch)); die();
return false;
}else{
curl_close($ch);
parse_str($response,$responseArray);
return $responseArray'EMAILLINK'];
die();
}
}
}
le code de ma fonction abonnement
public function abonnement() {
if (!$this->Auth->user('id')) {
$this->redirect('/users/login');
}
if(!empty($this->request->data)){
$duration = $this->request->data'duration'];
$uid = $this->Auth->user('id');
if(Configure::read("Site.prices.$duration")){
$price = number_format(Configure::read("Site.prices.$duration"),2);
$name="abonnement $duration mois";
$custom="action=abonnement&uld=$uid&duration=$duration";
$this->loadModel('Transaction');
$url=$this->Transaction->requestPaypal($price,$name,$custom);
if($url){
$this->redirect($url);
}
}
}
}
merci