2013-04-30 13 views
7

Nie jestem jasne, jak umieścić ten przykład kodu w strukturze CURL PHP, a konkretnie -d uchwyt.Dokonywanie płatności Paypal za pomocą REST API w PHP

curl -v https://api.sandbox.paypal.com/v1/payments/payment \ 
-H 'Content-Type:application/json' \ 
-H 'Authorization:Bearer EOjEJigcsRhdOgD7_76lPfrr45UfuI43zzNzTktUk1MK' \ 
-d '{ 
    "intent":"sale", 
    "redirect_urls":{ 
    "return_url":"http://<return URL here>", 
    "cancel_url":"http://<cancel URL here>" 
    }, 
    "payer":{ 
    "payment_method":"paypal" 
    }, 
    "transactions":[ 
    { 
     "amount":{ 
     "total":"7.47", 
     "currency":"USD" 
     }, 
     "description":"This is the payment transaction description." 
    } 
    ] 
}' 

Użyłem następującego połączenia testowego ok, ale nie wiem jak przedłużyć to do powyższego przykładu.

curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token"); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERPWD, $clientId.":".$secret); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials"); 

$result = curl_exec($ch); 

if(empty($result))die("Error: No response."); 
else 
{ 
    $json = json_decode($result); 
    print_r($json->access_token); 
} 

Odpowiedz

11

Spróbuj czegoś takiego, -d to dane, które chcesz opublikować. niestandardowe nagłówki są ustawiane za pomocą CURLOPT_HTTPHEADER.

$data = '{ 
    "intent":"sale", 
    "redirect_urls":{ 
    "return_url":"http://<return URL here>", 
    "cancel_url":"http://<cancel URL here>" 
    }, 
    "payer":{ 
    "payment_method":"paypal" 
    }, 
    "transactions":[ 
    { 
     "amount":{ 
     "total":"7.47", 
     "currency":"USD" 
     }, 
     "description":"This is the payment transaction description." 
    } 
    ] 
}'; 

curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/payments/payment"); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    "Content-Type: application/json", 
    "Authorization: Bearer EOjEJigcsRhdOgD7_76lPfrr45UfuI43zzNzTktUk1MK", 
    "Content-length: ".strlen($data)) 
); 

Zapraszamy do obejrzenia tutaj opcji, http://php.net/manual/en/function.curl-setopt.php zestaw curl_setopt ($ ch, CURLOPT_HEADER, false); na przykład, jeśli nie potrzebujesz zwracanych nagłówków.

+0

Czy to kompletne rozwiązanie? Nie otrzymuję odpowiedzi. Zmieniłem autoryzację na typ i dostęp do tokena pobranego z kodu bardzo podobnego do tego w pierwszym przykładzie. – RevNoah

+0

Daje błąd: brak odpowiedzi. –

+0

Daje tylko 0 w odpowiedzi ... proszę zasugeruj poprawny kod – Shalini

Powiązane problemy