2012-01-28 30 views
10

Có ai biết cách quản lý đăng ký PayPal bằng API của họ không? Tôi đã đọc rằng tôi có thể sử dụng ManageRecurringPaymentsProfileStatus để hủy, tạm ngưng và kích hoạt lại đăng ký nhưng tôi chưa thể tìm thấy phương thức để nhận các ID nên tôi không thể sử dụng nó.Cách quản lý đăng ký PayPal bằng API?

This page nói để sử dụng phương thức phản hồi của CreateRecurringPaymentsProfile có chứa ID, mặc dù tôi không tạo đăng ký bằng API nên tôi sẽ không thể thực hiện việc này.

Có phương pháp API nào để chỉ nhận ID không? Cảm ơn.

+0

Bất cứ ai? Trên trang đó nó nói ID cần phải là profileID, nhưng sau khi đọc một số chi tiết có vẻ như bạn có thể sử dụng subscriptionID thay vào đó, vì vậy đó là tốt. Tôi chỉ không chắc chắn làm thế nào để có được các chi tiết đăng ký và ID. –

+2

Bạn không thể quản lý các đăng ký bắt đầu bằng S- thông qua API (bạn chỉ có thể hủy chúng). Đăng ký mới bắt đầu bằng I- có thể được quản lý thông qua API, nhưng lại chỉ có chức năng giới hạn. Để có kết quả tốt nhất, hãy tạo hồ sơ thanh toán định kỳ qua CreateRecurringPaymentsProfile và sử dụng ManageRecurringPaymentsProfileStatus trên đó. – Robert

Trả lời

4

Paypal thay đổi chứng chỉ payment..please trực tiếp như hộp cát của bạn cung cấp ...

<?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)); 
} 

?> 

vui lòng truy cập https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/library_code

Cảm ơn

+0

+1 cho một số mã làm việc, cảm ơn bạn. –

Các vấn đề liên quan