

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menghubungkan ke PayPal
<a name="connecting-to-data-paypal"></a>

PayPal adalah sistem pembayaran yang memfasilitasi transfer uang secara online antar pihak, seperti transfer antara pelanggan dan vendor online. Jika Anda PayPal pengguna, akun Anda berisi data tentang transaksi Anda, seperti pembayar, tanggal, dan status mereka. Anda dapat menggunakan AWS Glue untuk mentransfer data dari PayPal ke AWS layanan tertentu atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk PayPal](paypal-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](paypal-configuring-iam-permissions.md)
+ [Mengkonfigurasi PayPal](paypal-configuring.md)
+ [Mengkonfigurasi koneksi PayPal](paypal-configuring-connections.md)
+ [Membaca dari PayPal entitas](paypal-reading-from-entities.md)
+ [PayPal opsi koneksi](paypal-connection-options.md)
+ [Keterbatasan dan catatan untuk PayPal konektor](paypal-connector-limitations.md)

# AWS Glue dukungan untuk PayPal
<a name="paypal-support"></a>

AWS Glue mendukung PayPal sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari PayPal.

**Didukung sebagai target?**  
Tidak.

**Versi PayPal API yang didukung**  
Versi PayPal API berikut didukung:
+ v1

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="paypal-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

# Mengkonfigurasi PayPal
<a name="paypal-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari PayPal, Anda harus memenuhi persyaratan ini:

## Persyaratan minimum
<a name="paypal-configuring-min-requirements"></a>

Berikut ini adalah persyaratan minimum:
+ Anda memiliki PayPal akun dengan kredensi klien.
+  PayPal Akun Anda memiliki akses API dengan lisensi yang valid.

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke PayPal akun Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain PayPal.

# Mengkonfigurasi koneksi PayPal
<a name="paypal-configuring-connections"></a>

PayPal mendukung jenis hibah KREDENSIAL KLIEN untuk. OAuth2
+ Jenis hibah ini dianggap OAuth 2.0 berkaki 2 karena digunakan oleh klien untuk mendapatkan token akses di luar konteks pengguna. AWS Glue dapat menggunakan ID klien dan rahasia klien untuk mengautentikasi PayPal APIs yang disediakan oleh layanan khusus yang Anda tentukan.
+ Setiap layanan kustom dimiliki oleh pengguna khusus API yang memiliki serangkaian peran dan izin yang mengizinkan layanan untuk melakukan tindakan tertentu. Token akses dikaitkan dengan satu layanan kustom.
+ Jenis hibah ini menghasilkan token akses yang berumur pendek, dan dapat diperbarui dengan memanggil `/v2/oauth2/token` titik akhir lagi.
+ [Untuk PayPal dokumentasi publik untuk OAuth 2.0 dengan kredensi klien, lihat Otentikasi.](https://developer.paypal.com/api/rest/authentication/)

Untuk mengkonfigurasi PayPal koneksi:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih PayPal.

   1. Berikan PayPal contoh `INSTANCE_URL` yang ingin Anda sambungkan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

## Mendapatkan kredensi OAuth 2.0
<a name="paypal-getting-oauth-20-credentials"></a>

Untuk memanggil API Istirahat, Anda harus menukar ID klien dan rahasia klien Anda dengan token akses. Untuk informasi selengkapnya, lihat [Memulai PayPal REST APIs](https://developer.paypal.com/api/rest/).

# Membaca dari PayPal entitas
<a name="paypal-reading-from-entities"></a>

**Prasyarat**

 PayPal Objek yang ingin Anda baca. Anda akan membutuhkan nama objek,`transaction`.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| transaksi | Ya | Ya | Tidak | Ya | Ya | 

**Contoh:**

```
paypal_read = glueContext.create_dynamic_frame.from_options(
    connection_type="paypal",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "transaction",
        "API_VERSION": "v1",
        "INSTANCE_URL": "https://api-m.paypal.com"
    }
```

**PayPal detail entitas dan bidang**:

Entitas dengan metadata statis:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/glue/latest/dg/paypal-reading-from-entities.html)

## Mempartisi kueri
<a name="paypal-reading-partitioning-queries"></a>

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima nilai dalam format ISO.

  Contoh nilai valid:

  ```
  "2024-07-01T00:00:00.000Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Bidang berikut didukung untuk partisi berdasarkan entitas:


| Nama entitas | Bidang partisi | Jenis data | 
| --- | --- | --- | 
| transaksi | transaction\$1initiation\$1date | DateTime | 

Contoh:

```
paypal_read = glueContext.create_dynamic_frame.from_options(
    connection_type="paypal",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "transaction",
        "API_VERSION": "v1",
        "PARTITION_FIELD": "transaction_initiation_date"
        "LOWER_BOUND": "2024-07-01T00:00:00.000Z"
        "UPPER_BOUND": "2024-07-02T00:00:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

# PayPal opsi koneksi
<a name="paypal-connection-options"></a>

Berikut ini adalah opsi koneksi untuk PayPal:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di PayPal.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. PayPal Rest versi API yang ingin Anda gunakan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.

# Keterbatasan dan catatan untuk PayPal konektor
<a name="paypal-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk PayPal konektor:
+ [Dokumentasi PayPal transaksi](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get) menyebutkan bahwa dibutuhkan maksimal tiga jam agar transaksi yang dieksekusi muncul dalam daftar panggilan transaksi. Namun, telah diamati untuk mengambil lebih banyak waktu daripada itu tergantung [https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=last_refreshed_datetime](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=last_refreshed_datetime). Di sini, `last_refreshed_datetime` adalah jumlah waktu sampai Anda memiliki data yang tersedia dari APIs.
+ Jika `last_refreshed_datetime` kurang dari yang diminta `end_date` maka, `end_date` menjadi sama dengan `last_refreshed_datetime` karena kita hanya memiliki data sampai titik itu.
+ `transaction_initiation_date`Kolom adalah filter wajib yang akan disediakan untuk `transaction` entitas dan rentang tanggal [maksimum yang didukung](https://developer.paypal.com/docs/transaction-search/#:~:text=The%20maximum%20supported%20date%20range%20is%2031%20days.) untuk bidang ini adalah 31 hari.
+ Saat Anda memanggil permintaan API `transaction` entitas dengan filter (parameter kueri) selain `transaction_initiation_date` bidang, diharapkan nilai [https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=If%20you%20specify%20one%20or%20more%20optional%20query%20parameters%2C%20the%20ending_balance%20response%20field%20is%20empty.](https://developer.paypal.com/docs/api/transaction-search/v1/#search_get:~:text=If%20you%20specify%20one%20or%20more%20optional%20query%20parameters%2C%20the%20ending_balance%20response%20field%20is%20empty.)bidang tidak akan diambil dalam respons.