PayPal İşlemlerini Google E-Tablolara Aktarma

Yayınlanan: 2022-06-16

PayPal transactions in Google Sheets

Bu eğitici, Google Apps Komut Dosyası yardımıyla PayPal işlemlerini Google E-Tablolar'a nasıl aktaracağınızı gösterecektir. Standart PayPal ödemelerini, yinelenen abonelik ödemelerini, bağışları ve hatta geri ödemeleri ve ters ibrazları Google E-Tablolar'a aktarmayı seçebilirsiniz.

Veriler Google E-Tablolar'a aktarıldıktan sonra bunları bir CSV dosyasına aktarabilir ve Quickbooks muhasebe yazılımına aktarabilirsiniz. Hindistan'daki Tally kullanıcıları, PayPal işlemlerini Google E-Tablolar'dan XML biçimine aktarabilir ve bunları toplu olarak Tally'ye aktarabilir.

Ayrıca bkz: PayPal'ı Google Formlar ile Otomatikleştirin

Google E-Tablolarda PayPal İşlemlerini İçe Aktarın

Bu örnek için, bağışları PayPal aracılığıyla yapan bağışçıların listesini Google E-Tablolar'a aktaracağız.

1. PayPal içinde API kimlik bilgileri oluşturun

PayPal geliştirici panonuzda (developer.paypal.com) oturum açın ve canlı modda yeni bir uygulama oluşturun. Uygulamanıza bir ad verin - Transaction Importer for Google Sheets ve Uygulama Oluştur düğmesini tıklayın.

PayPal, daha sonraki bir adımda ihtiyaç duyacağınız bir Müşteri Kimliği ve Müşteri Sırrı anahtarı oluşturacaktır. Canlı Uygulama ayarları bölümünde, Transaction Search seçeneğini işaretleyin ve diğer tüm seçenekleri kapatın, çünkü biz yalnızca API anahtarlarının işlemleri listelemesini istiyoruz ve başka bir işlevi yok. Devam etmek için Kaydet'i tıklayın.

Paypal Account Credentials

2. Bir Google E-Tablolar Projesi Oluşturun

Yeni bir Google E-Tablosu oluşturmak için sheets.new gidin. Uzantılar menüsüne gidin ve Apps Komut Dosyası düzenleyicisini açmak için Apps Komut Dosyası'nı seçin.

Kodu düzenleyicide kopyalayıp yapıştırın. İşlem kodunu kendi kodunuzla değiştirmeyi unutmayın. T0002 PayPal Abonelikleri için, T0014 Bağış ödemeleri için veya T1107 PayPal Geri Ödemeleri ve ters ibrazları için kullanabilirsiniz.

/* @OnlyCurrentDoc */ yorumu, Google Apps Komut Dosyasına kodu yalnızca geçerli Google E-Tablosu içinde çalıştırmasını ve Google Drive'ınızdaki başka bir e-tabloya erişim gerektirmemesini söyleyen bir Google Apps Komut Dosyası yorumudur.

 /* @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. PayPal İçe Aktarma İşlevini Çalıştırın

İşlemleri PayPal'dan içe aktarmak için komut dosyası düzenleyicisinin içinde Çalıştır düğmesini tıklayın. PayPal API'sine bağlanmak ve sizin adınıza Google E-Tablolar'a veri yazmak için izinler gerektirdiğinden komut dosyasını yetkilendirmeniz gerekebilir.

Bu kadar. Seçilen tarih aralığında içe aktarılacak PayPal işlemi varsa, komut dosyası çalışır ve işlemler Google E-Tablolar'a aktarılır.

Run PayPal Importer

Eğitimin sonraki bölümünde, PayPal işlemlerinin Google E-Tablolar'dan Tally muhasebe yazılımına içe aktarılmak üzere bir XML dosyasına nasıl aktarılacağını öğreneceğiz.

Ayrıca bakınız: Google E-Tablolardan PayPal Faturaları Gönderin