2013-07-12 33 views
14

Đây là thiết lập:Danh sách các giao dịch PayPal

Tôi có thiết lập trang web cho khách hàng. Khách hàng:

  1. thăm trang web
  2. Enters trong thông tin cơ bản để lưu hồ sơ
  3. Tiền PayPal thông qua một "Buy Now" nút
  4. Làm cho việc thanh toán thông qua PayPal
  5. Returns vào trang web

Điều tôi muốn biết là làm cách nào để có danh sách tất cả các giao dịch? Tôi có đăng nhập PayPal cũng như tên người dùng, mật khẩu và chữ ký API, nhưng đối với cuộc sống của tôi, tôi không thể tìm thấy một địa điểm duy nhất trên internet cho ví dụ về cách kéo danh sách các giao dịch từ PayPal qua PHP hoặc jQuery/Javascript/Ajax.

Có ai có ý tưởng nào không? ví dụ?

Xin cảm ơn trước.

UPDATE:

tôi đã có thể phát triển một giải pháp cho câu hỏi này. Xem câu trả lời của tôi bên dưới với mã và nhận xét.

Trả lời

17

Ok, vì vậy cuối cùng tôi đã có thể phát triển thứ gì đó hoạt động. Mã này được đăng tải dưới đây với một liên kết đến các tùy chọn TransactionSearch API từ PayPal

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/TransactionSearch_API_Operation_NVP/

<?php 
$info = 'USER=[API_USERNAME]' 
     .'&PWD=[API_PASSWORD]' 
     .'&SIGNATURE=[API_SIGNATURE]' 
     .'&METHOD=TransactionSearch' 
     .'&TRANSACTIONCLASS=RECEIVED' 
     .'&STARTDATE=2013-01-08T05:38:48Z' 
     .'&ENDDATE=2013-07-14T05:38:48Z' 
     .'&VERSION=94'; 

$curl = curl_init('https://api-3t.paypal.com/nvp'); 
curl_setopt($curl, CURLOPT_FAILONERROR, true); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 

curl_setopt($curl, CURLOPT_POSTFIELDS, $info); 
curl_setopt($curl, CURLOPT_HEADER, 0); 
curl_setopt($curl, CURLOPT_POST, 1); 

$result = curl_exec($curl); 

# Bust the string up into an array by the ampersand (&) 
# You could also use parse_str(), but it would most likely limit out 
$result = explode("&", $result); 

# Loop through the new array and further bust up each element by the equal sign (=) 
# and then create a new array with the left side of the equal sign as the key and the right side of the equal sign as the value 
foreach($result as $value){ 
    $value = explode("=", $value); 
    $temp[$value[0]] = $value[1]; 
} 

# At the time of writing this code, there were 11 different types of responses that were returned for each record 
# There may only be 10 records returned, but there will be 110 keys in our array which contain all the different pieces of information for each record 
# Now create a 2 dimensional array with all the information for each record together 
for($i=0; $i<count($temp)/11; $i++){ 
    $returned_array[$i] = array(
     "timestamp"   => urldecode($temp["L_TIMESTAMP".$i]), 
     "timezone"   => urldecode($temp["L_TIMEZONE".$i]), 
     "type"    => urldecode($temp["L_TYPE".$i]), 
     "email"    => urldecode($temp["L_EMAIL".$i]), 
     "name"    => urldecode($temp["L_NAME".$i]), 
     "transaction_id" => urldecode($temp["L_TRANSACTIONID".$i]), 
     "status"   => urldecode($temp["L_STATUS".$i]), 
     "amt"    => urldecode($temp["L_AMT".$i]), 
     "currency_code"  => urldecode($temp["L_CURRENCYCODE".$i]), 
     "fee_amount"  => urldecode($temp["L_FEEAMT".$i]), 
     "net_amount"  => urldecode($temp["L_NETAMT".$i])); 
} 
?> 

Ngoài ra, tôi đã đưa ra rất ít, kịch bản đơn giản tiện lợi này để biết thêm chi tiết về một giao dịch cụ thể:

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/GetTransactionDetails_API_Operation_NVP/

<?php 
$info = 'USER=[API_USERNAME]' 
     .'&PWD=[API_PASSWORD]' 
     .'&SIGNATURE=[API_SIGNATURE]' 
     .'&VERSION=94' 
     .'&METHOD=GetTransactionDetails' 
     .'&TRANSACTIONID=[TRANSACTION_ID]' 
     .'&STARTDATE=2013-07-08T05:38:48Z' 
     .'&ENDDATE=2013-07-12T05:38:48Z'; 

$curl = curl_init('https://api-3t.paypal.com/nvp'); 
curl_setopt($curl, CURLOPT_FAILONERROR, true); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 

curl_setopt($curl, CURLOPT_POSTFIELDS, $info); 
curl_setopt($curl, CURLOPT_HEADER, 0); 
curl_setopt($curl, CURLOPT_POST, 1); 

$result = curl_exec($curl); 

parse_str($result, $result); 

foreach($result as $key => $value){ 
    echo $key.' => '.$value."<BR>"; 
} 
?> 
+0

Xin chào, tôi đã thử mã hóa đầu tiên để hiển thị giao dịch nhưng tôi đã nhận được 'SCREAM: Loại bỏ lỗi bị bỏ qua cho ' ' Lỗi phân tích cú pháp: lỗi cú pháp, không mong muốn '=', mong ')' trong C: \ wamp \ www \ all_transactions.php trên dòng 40' lỗi –

+0

Điều này dường như là một lỗi PHP như thể bạn có một nhân vật không đúng chỗ hoặc cái gì đó. Kiểm tra lại mã của bạn vì không thấy mã của bạn, tôi thậm chí không biết bắt đầu từ đâu. –

+0

Tôi đã mã hóa giải pháp mã hóa đầu tiên mà bạn đã đưa ra trong câu trả lời này bắt đầu bằng '

0

Họ có một API TransactionSearch:

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/TransactionSearch_API_Operation_NVP/

tôi sử dụng tôi kéo theo số hóa đơn để lấy id giao dịch cho hoàn.

+0

Tôi đánh giá cao sự trợ giúp và mã, nhưng không có lớp PHP đằng sau nó mà bạn đang sử dụng, tất cả những gì bạn đã đăng chỉ là một loạt các biến. Bạn có mã, hoặc một liên kết đến mã, của lớp bạn đang sử dụng? –

+0

Bạn có thể sử dụng lớp Angell EYE. –

0
<script 
    data-env="sandbox" 
    data-tax="0.00" 
    data-shipping="0.00" 
    data-currency="USD" 
    data-amount="0.00" 
    data-quantity="0" 
    data-name="No Item Selected" 
    data-button="buynow" src="https://www.paypalobjects.com/js/external/[email protected]" async="async"></script> 

Đây là một phần tử html nối với API paypal để thực hiện giao dịch khi nút được nhấp. Không thay đổi các thuộc tính data-button, src hoặc async. Hoàn toàn loại bỏ nút data-env sau khi bạn kết thúc kiểm tra (nút data-env ngăn không cho thực hiện khoản phí thực trong khi bạn đang thử nghiệm). Thay đổi tất cả các thuộc tính khác theo tên của chúng (ví dụ: bạn sẽ thay đổi data-name thành tên sản phẩm bạn đang bán). Chèn phần tử như bạn làm với bất kỳ phần tử html nào khác (ví dụ: <p>).

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