2012-01-28 5 views
10

Czy ktoś wie, jak zarządzać subskrypcjami PayPal za pomocą interfejsu API? Czytałem, że mogę użyć ManageRecurringPaymentsProfileStatus, aby anulować, zawiesić i ponownie aktywować subskrypcje, ale nie byłem w stanie znaleźć metody uzyskania identyfikatorów, więc nie jestem w stanie z nich skorzystać.Jak zarządzać subskrypcjami PayPal za pomocą interfejsu API?

This page mówi, aby użyć odpowiedzi z metody , która zawiera identyfikator, chociaż nie tworzę subskrypcji za pomocą interfejsu API, więc nie byłbym w stanie tego zrobić.

Czy istnieje metoda API pozwalająca uzyskać tylko identyfikatory? Dzięki.

+0

ktoś? Na tej stronie jest napisane, że identyfikator musi być identyfikatorem profilu, ale po przeczytaniu kilku wydaje się, że można użyć identyfikatora subskrypcji, więc jest to dobre. Nie wiem tylko, jak uzyskać szczegóły subskrypcji i identyfikator. –

+2

Nie można zarządzać subskrypcjami zaczynającymi się od S- przez interfejsy API (można je tylko anulować). Nowe subskrypcje zaczynające się od I- mogą być zarządzane za pośrednictwem interfejsów API, ale znowu dostępna jest tylko ograniczona funkcjonalność. Aby uzyskać najlepsze wyniki, utwórz profil płatności cyklicznych za pomocą CreateRecurringPaymentsProfile i użyj narzędzia ManageRecurringPaymentsProfileStatus w tym zakresie. – Robert

Odpowiedz

4

Paypal bezpośredni payment..please poświadczeń zmiana jako piaskownica pod warunkiem ...

<?php 

/** DoDirectPayment NVP example; last modified 08MAY23. 
* 
* Process a credit card payment. 
*/ 

$environment = 'sandbox'; // or 'beta-sandbox' or 'live' 

/** 
* Send HTTP POST Request 
* 
* @param string The API method name 
* @param string The POST Message fields in &name=value pair format 
* @return array Parsed HTTP Response body 
*/ 
function PPHttpPost($methodName_, $nvpStr_) { 
    global $environment; 

    // Set up your API credentials, PayPal end point, and API version. 
    $API_UserName = urlencode('debash_1332929919_biz_api1.gmail.com'); 
    $API_Password = urlencode('1332929952'); 
    $API_Signature = urlencode('AIiPJKMw38NGZuaiDaeLWrH9x.WBAK4WXf1vh9.Y.YxEM-4DlbDLMEVe'); 
    $API_Endpoint = "https://api-3t.paypal.com/nvp"; 
    if("sandbox" === $environment || "beta-sandbox" === $environment) { 
     $API_Endpoint = "https://api-3t.$environment.paypal.com/nvp"; 
    } 
    $version = urlencode('51.0'); 

    // Set the curl parameters. 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $API_Endpoint); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 

    // Turn off the server and peer verification (TrustManager Concept). 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POST, 1); 

    // Set the API operation, version, and API signature in the request. 
    $nvpreq = "METHOD=$methodName_&VERSION=$version&PWD=$API_Password&USER=$API_UserName&SIGNATURE=$API_Signature$nvpStr_"; 

    // Set the request as a POST FIELD for curl. 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq); 

    // Get response from the server. 
    $httpResponse = curl_exec($ch); 

    if(!$httpResponse) { 
     exit("$methodName_ failed: ".curl_error($ch).'('.curl_errno($ch).')'); 
    } 

    // Extract the response details. 
    $httpResponseAr = explode("&", $httpResponse); 

    $httpParsedResponseAr = array(); 
    foreach ($httpResponseAr as $i => $value) { 
     $tmpAr = explode("=", $value); 
     if(sizeof($tmpAr) > 1) { 
      $httpParsedResponseAr[$tmpAr[0]] = $tmpAr[1]; 
     } 
    } 

    if((0 == sizeof($httpParsedResponseAr)) || !array_key_exists('ACK', $httpParsedResponseAr)) { 
     exit("Invalid HTTP Response for POST request($nvpreq) to $API_Endpoint."); 
    } 

    return $httpParsedResponseAr; 
} 

// Set request-specific fields. 
$paymentType = urlencode('Sale');    // or 'Sale' 
$firstName = urlencode('Debashis'); 
$lastName = urlencode('Banerjee'); 
$creditCardType = urlencode('visa'); 
$creditCardNumber = urlencode('4860795409505688'); 
$expDateMonth = '3'; 
// Month must be padded with leading zero 
$padDateMonth = urlencode(str_pad($expDateMonth, 2, '0', STR_PAD_LEFT)); 

$expDateYear = urlencode('2017'); 
$cvv2Number = urlencode('111'); 
$address1 = urlencode('Kaikala'); 
$address2 = urlencode('Hooghly'); 
$city = urlencode('Kaikala'); 
$state = urlencode('WB'); 
$zip = urlencode('712405'); 
$country = urlencode('IN');    // US or other valid country code 
$amount = urlencode('71'); 
$currencyID = urlencode('USD');       // or other currency ('GBP', 'EUR', 'JPY', 'CAD', 'AUD') 

// Add request-specific fields to the request string. 
$nvpStr = "&PAYMENTACTION=$paymentType&AMT=$amount&CREDITCARDTYPE=$creditCardType&ACCT=$creditCardNumber". 
      "&EXPDATE=$padDateMonth$expDateYear&CVV2=$cvv2Number&FIRSTNAME=$firstName&LASTNAME=$lastName". 
      "&STREET=$address1&CITY=$city&STATE=$state&ZIP=$zip&COUNTRYCODE=$country&CURRENCYCODE=$currencyID"; 

// Execute the API operation; see the PPHttpPost function above. 
$httpParsedResponseAr = PPHttpPost('DoDirectPayment', $nvpStr); 

if("SUCCESS" == strtoupper($httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($httpParsedResponseAr["ACK"])) { 
    exit('Direct Payment Completed Successfully: '.print_r($httpParsedResponseAr, true)); 
} else { 
    exit('DoDirectPayment failed: ' . print_r($httpParsedResponseAr, true)); 
} 

?> 

odwiedź https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/library_code

Dzięki

+0

+1 za działający kod, dziękuję. –