Jak zaimportować transakcje PayPal do Arkuszy Google
Opublikowany: 2022-06-16Ten 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ć.
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.
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