Jak zaimportować transakcje PayPal do Arkuszy Google

Opublikowany: 2022-06-16

PayPal transactions in Google Sheets

Ten samouczek pokaże Ci, jak importować transakcje PayPal do Arkuszy Google za pomocą Google Apps Script. Możesz wybrać importowanie standardowych płatności PayPal, cyklicznych płatności za subskrypcję, darowizn, a nawet zwrotów i obciążeń zwrotnych do Arkuszy Google.

Po zaimportowaniu danych do Arkuszy Google możesz je wyeksportować do pliku CSV i zaimportować do oprogramowania księgowego Quickbooks. Użytkownicy Tally w Indiach mogą eksportować transakcje PayPal z Arkuszy Google do formatu XML i zbiorczo importować je do Tally.

Zobacz też: Automatyzacja PayPala za pomocą Formularzy Google

Importuj transakcje PayPal w Arkuszach Google

W tym przykładzie zaimportujemy do Arkuszy Google listę darczyńców, którzy przekazali darowizny za pośrednictwem systemu PayPal.

1. Utwórz dane uwierzytelniające API w systemie PayPal

Zaloguj się do pulpitu programisty PayPal (developer.paypal.com) i utwórz nową aplikację w trybie na żywo. Nadaj swojej aplikacji nazwę – Transaction Importer for Google Sheets i kliknij przycisk Utwórz aplikację.

PayPal utworzy identyfikator klienta i klucz tajny klienta, których będziesz potrzebować na późniejszym etapie. W sekcji Ustawienia aplikacji na żywo zaznacz opcję Transaction Search i wyłącz wszystkie inne opcje, ponieważ chcemy, aby klucze API wyświetlały tylko transakcje i nie miały innych funkcji. Kliknij Zapisz, aby kontynuować.

Paypal Account Credentials

2. Utwórz projekt Arkuszy Google

Przejdź sheets.new , aby utworzyć nowy Arkusz Google. Przejdź do menu Rozszerzenia i wybierz Apps Script, aby otworzyć edytor Apps Script.

Skopiuj i wklej kod w edytorze. Pamiętaj, aby zastąpić kod transakcji swoim własnym. Możesz użyć T0002 do subskrypcji PayPal, T0014 do płatności darowizn lub T1107 do zwrotów i obciążeń zwrotnych w systemie PayPal.

Komentarz /* @OnlyCurrentDoc */ to komentarz Google Apps Script, który informuje Google Apps Script, aby uruchamiał kod tylko w bieżącym Arkuszu Google i nie wymagał dostępu do żadnego innego arkusza kalkulacyjnego na Dysku Google.

 /* @OnlyCurrentDoc */ /* Author: digitalinspiration.com */ const TRANSACTION_TYPE = 'T0001' ; // Enter your own PayPal Client ID and Client Secret key const PAYPAL_CLIENT_ID = '<YOUR_PAYPAL_CLIENT_ID>' ; const PAYPAL_CLIENT_SECRET = '<YOUR_PAYPAL_CLIENT_SECRET>' ; // Enter start and end dates in the format YYYY-MM-DD const START_DATE = '2022-03-01' ; const END_DATE = '2022-03-15' ; // Generate the PayPal access token const getPayPalAccessToken_ = ( ) => { const credentials = ` ${ PAYPAL_CLIENT_ID } : ${ PAYPAL_CLIENT_SECRET } ` ; const headers = { Authorization : ` Basic ${ Utilities . base64Encode ( credentials ) } ` , Accept : 'application/json' , 'Content-Type' : 'application/json' , 'Accept-Language' : 'en_US' , } ; const options = { method : 'POST' , headers , contentType : 'application/x-www-form-urlencoded' , payload : { grant_type : 'client_credentials' } , } ; const request = UrlFetchApp . fetch ( 'https://api.paypal.com/v1/oauth2/token' , options ) ; const { access_token } = JSON . parse ( request ) ; return access_token ; } ; // Append the query parameters to the PayPal API URL const buildAPIUrl_ = ( queryParams ) => { const baseUrl = [ ` https://api-m.paypal.com/v1/reporting/transactions ` ] ; Object . entries ( queryParams ) . forEach ( ( [ key , value ] , index ) => { const prefix = index === 0 ? '?' : '&' ; baseUrl . push ( ` ${ prefix } ${ key } = ${ value } ` ) ; } ) ; return baseUrl . join ( '' ) ; } ; // Fetch the list of PayPal transaction const fetchTransactionBatchFromPayPal = ( queryParams ) => { const options = { headers : { Authorization : ` Bearer ${ getPayPalAccessToken_ ( ) } ` , 'Content-Type' : 'application/json' , } , } ; const request = UrlFetchApp . fetch ( buildAPIUrl_ ( queryParams ) , options ) ; const { transaction_details , total_pages } = JSON . parse ( request ) ; return { transaction_details , total_pages } ; } ; // Extract the transaction details including the transaction ID, // donation amount, transaction date and buyer's email and country code const parsePayPalTransaction_ = ( { transaction_info , payer_info } ) => [ transaction_info . transaction_id , new Date ( transaction_info . transaction_initiation_date ) , transaction_info . transaction_amount ?. value , transaction_info . transaction_note || transaction_info . transaction_subject || '' , payer_info ?. payer_name ?. alternate_full_name , payer_info ?. email_address , payer_info ?. country_code , ] ; const fetchPayPalTransactions_ = ( ) => { const startDate = new Date ( START_DATE ) ; const endDate = new Date ( END_DATE ) ; startDate . setHours ( 0 , 0 , 0 , 0 ) ; endDate . setHours ( 23 , 59 , 59 , 999 ) ; const transactions = [ ] ; const params = { start_date : startDate . toISOString ( ) , end_date : endDate . toISOString ( ) , page_size : 100 , transaction_type : TRANSACTION_TYPE , fields : 'transaction_info,payer_info' , } ; for ( let page = 1 , hasMore = true ; hasMore ; page += 1 ) { const response = fetchTransactionBatchFromPayPal ( { ... params , page } ) ; const { transaction_details = [ ] , total_pages } = response ; transaction_details . map ( parsePayPalTransaction_ ) . forEach ( ( e ) => transactions . push ( e ) ) ; hasMore = total_pages && total_pages > page ; } return transactions ; } ; // Import the transactions from PayPal and write them to the active Google Sheet const importTransactionsToGoogleSheet = ( ) => { const transactions = fetchPayPalTransactions_ ( ) ; const { length } = transactions ; if ( length > 0 ) { const sheet = SpreadsheetApp . getActiveSheet ( ) ; sheet . getRange ( 1 , 1 , length , transactions [ 0 ] . length ) . setValues ( transactions ) ; const status = ` Imported ${ length } PayPal transactions into Google Sheets ` ; SpreadsheetApp . getActiveSpreadsheet ( ) . toast ( status ) ; } } ;

3. Uruchom funkcję importu PayPal

W edytorze skryptów kliknij przycisk Uruchom, aby zaimportować transakcje z PayPal. Być może trzeba będzie autoryzować skrypt, ponieważ wymaga on uprawnień do łączenia się z interfejsem API PayPal, a także zapisywania danych w Arkuszach Google w Twoim imieniu.

Otóż ​​to. Jeśli w wybranym zakresie dat będą jakieś transakcje PayPal do zaimportowania, skrypt zostanie uruchomiony, a transakcje zostaną zaimportowane do Arkuszy Google.

Run PayPal Importer

W dalszej części samouczka dowiemy się, jak wyeksportować transakcje PayPal z Arkuszy Google do pliku XML w celu zaimportowania do oprogramowania księgowego Tally.

Zobacz także: Wysyłaj faktury PayPal z Arkuszy Google