Perhatian! Informasi dalam artikel ini tidak menggantikan pengetahuan dasar yang diperlukan untuk menggunakan fungsionalitas API. Artikel ini ditujukan untuk pengguna berpengalaman.
Protokol
Fungsi API hanya tersedia melalui protokol HTTPS (SSL)
SDK PHP
Anda dapat menggunakan SDK kami
Otorisasi
Tidak diperlukan otorisasi terpisah.
Untuk otorisasi, Anda harus melewatkan kunci rahasia sebagai parameter kunci dari permintaan POST dengan setiap permintaan.
Baca lebih lanjut tentang cara menghasilkan secret key API pribadi dalam artikel terpisah.
Tindakan/Action
Tindakan dilewatkan sebagai parameter tindakan dari permintaan POST
Opsi untuk Tindakan/Action
Parameter untuk tindakan dikirim dalam format JSON, dienkripsi dalam base64 dalam parameter params dari permintaan POST
Catatan:
Impor atau ekspor data melalui API hanya tersedia dengan paket berbayar GetCourse. Fungsionalitas ini tidak tersedia dalam paket uji coba.
Format Respons
Responsnya dikembalikan dalam format JSON:
{ "success":"true/false", // result of the call "action":"triggered action", "result":{ "deal_id": "unique order id", "deal_number": "order number", "success":"true/false", // action result "user_id":"user id", "user_status":"user status", "payment_link": "link to the payment page", "error_message": "error message", "error":"true/false", // presence of errors } }
Konten
Impor pengguna:
Metode ini dimaksudkan untuk mengimpor data, dan bukan untuk manajemen operasional objek!
Impor pengguna terletak di:
https://{account_name}.getcourse.id/pl/api/users
Untuk menambahkan pengguna, Anda perlu melewati aksi add, secret key, dan parameter pengguna yang akan ditambahkan.
curl -i -H "Accept: application/json; q=1.0, */*; q=0.1" "https://{account_name}.getcourse.ru/pl/api/users" -d "action=add&key= {secret_key}¶ms={params}"
Parameter Pengguna:
base64_encode { "user":{ "email":"email", "phone":"phone", "first_name":"name", "last_name":"last name", "city":"city", "country":"country", "group_name":[ // to add a user to groups "Group1", // simple addition to groups ["Group2", "2018-08-01 21:21"], // adding to the group indicating an arbitrary moment ["Group4", "2018-08-02"] ], "addfields":{"Additional field1":"value","Additional field2":"value"} // to add additional user fields }, "system":{ "refresh_if_exists":0, //whether to update an existing user 1/0 yes/no "partner_email":"partner email (for user)*" }, "session":{ "utm_source":"", "utm_medium":"", "utm_content":"", "utm_campaign":"", "utm_group":"", "gcpc":"", "gcao":"", "referrer":"" } }
Jika pengguna dengan email yang ditentukan tidak ada dalam sistem, pengguna baru akan dibuat.
Jika pengguna sudah ada dan system.refresh_if_exists == 1, data pengguna akan diperbarui, dan daftar grupnya akan dilengkapi dengan grup yang ditentukan dalam parameter user.group_name. Jika bendera ini tidak diatur, maka tidak ada data pengguna yang akan berubah.
Data dari objek sesi/session akan ditangkap sebagai parameter pendaftaran pengguna baru. Jika ada pembaruan data (hanya dengan system.refresh_if_exists == 1), maka data sebelumnya akan digantikan.
Anda dapat menetapkan mitra untuk seorang pengguna dengan dua cara yang berbeda:
a) menggunakan parameter system.partner_email;
b) menggunakan parameter session.gcpc (memiliki prioritas yang lebih tinggi).
Jika mitra yang ditentukan untuk pengguna yang dibuat/diperbarui ada, pengguna dalam sistem akan ditandai sebagai rujukan dari mitra tersebut. Jika pengguna mitra tidak ada, akan dikembalikan pesan kesalahan. Jika pengguna mitra ada tetapi bukan mitra, maka pengguna yang ditentukan akan secara otomatis diberi status mitra.
Mengelola grup pengguna
Metode ini dimaksudkan untuk mengimpor data, dan bukan untuk manajemen operasional objek!
Impor informasi tentang grup pengguna terletak di:
https://{nama_akun}.getcourse.id/pl/api/users
Untuk memperbarui informasi tentang grup pengguna, Anda perlu melewati tindakan update, kunci rahasia, dan parameter pengguna:
Parameter Pengguna:
base64_encode { "user":{ "id":"user id", "group_name": ["Group 1", "Group 2"] // list of groups } }
Sebagai hasil dari permintaan, pengguna akan menjadi anggota semua grup yang tercantum dalam daftar group_name. Jika pengguna sebelumnya menjadi anggota grup mana pun yang tidak tercantum dalam group_name, dia akan dihapus dari grup-grup tersebut.
IMPOR PESANAN
Metode ini dimaksudkan untuk mengimpor data, bukan untuk manajemen operasional objek!
Transaksi impor terletak di:
https://{nama_akun}.getcourse.id/pl/api/deals
Untuk menambahkan transaksi, Anda perlu melewati tindakan add, kunci rahasia, parameter transaksi, dan parameter pengguna untuk siapa transaksi tersebut dibuat:
curl -i -H "Accept: application/json; q=1.0, */*; q=0.1" "https://{account_name}.getcourse.ru/pl/api/deals" --data "action=add&key ={secret_key}¶ms={params}"
base64_encode { "user":{ // as in user import }, "system":{ "refresh_if_exists":0, //whether to update an existing user 1/0 yes/no "partner_email":"partner email (for user)*", "multiple_offers":0, // add multiple offers to an order 1/0 "return_payment_link":0, // return payment link 1/0 "return_deal_number":0 // return order number 1/0 }, "session":{ // as in user import }, "deal":{ "deal_number": "order number", "offer_code": "unique offer code", "product_title":"offer name", "product_description":"offer description", "quantity":1, // quantity "deal_cost": "order amount", "deal_status": "order status code", "deal_is_paid": "no", // paid yes/no 1/0 "manager_email": "manager email", "deal_created_at": "order date", "deal_finished_at": "payment/order completion date", "deal_comment":"comment", "payment_type": "payment type from the list", "payment_status": "payment status from the list", "partner_email":"partner's email (for ordering)", "addfields":{"Additional field1":"value","Additional field2":"value"}, // to add additional order fields "deal_currency":"order currency code" // for example, "EUR", the parameter is optional, if it is not used in the request - the order currency will be rubles (RUB) "funnel_id":"Sales board ID", "funnel_stage_id": "Sales board stage ID" } }
Untuk mengimpor transaksi, pengguna harus ada - pemilik transaksi.
Jika pengguna yang dilewatkan tidak ada, maka akan dibuat.
Jika ada pengguna dengan email yang ditentukan, maka dia akan digunakan sebagai pemilik pesanan.
Jika parameter system.refresh_if_exists == 1 dilewatkan dan pengguna ada, maka data pengguna akan diperbarui dengan cara yang sama seperti operasi impor pengguna (dengan pengecualian objek sesi - lihat di bawah)
Ketika mengimpor transaksi, dilakukan pengecekan apakah transaksi dengan nomor yang ditentukan ada.
Tergantung pada hal ini, transaksi baru dibuat atau yang sudah ada diperbarui.
Jika system.multiple_offers flag == 1 dan pesanan yang sudah ada diperbarui, maka posisi yang ditransfer dalam transaksi ditambahkan ke yang sudah ada, bukan menggantikannya.
Parameter system.refresh_if_exists tidak memiliki efek pada pembuatan/pembaruan transaksi (parameter ini hanya digunakan untuk pengguna!)
Saat mengimpor transaksi, objek sesi/session berisi parameter UTM yang dicatat sebagai konteks pembuatan pesanan.
Selain itu, jika pengguna baru dibuat saat mengimpor transaksi, objek sesi juga digunakan sebagai konteks pendaftaran pengguna. Namun, saat memperbarui data pengguna saat mengimpor transaksi, objek sesi hanya digunakan untuk transaksi, bukan untuk pengguna.
Pesanan dapat menunjukkan mitra selain mitra pengguna. Mitra pesanan dapat ditetapkan dengan dua cara:
a) menggunakan parameter deal.partner_email;
b) menggunakan parameter session.gcpc (prioritas lebih tinggi).
Jika mitra yang ditentukan untuk transaksi ada, maka mitra ini akan ditetapkan untuknya.
Jika pengguna mitra tidak ada, maka akan dikembalikan pesan kesalahan.
Jika pengguna mitra ada tetapi bukan mitra, maka pengguna yang ditentukan akan secara otomatis diberi status mitra.
Catatan:
1. Parameter minimum yang diperlukan untuk membuat pesanan baru adalah:
- kode penawaran unik * atau nama penawaran
- harga pesanan
- email pengguna
Untuk mengedit pesanan yang sudah ada - parameter yang sama, tetapi juga:
- Nomor pesanan
- parameter refresh_if_exists = 1
* - ditemukan dalam pengaturan penawaran yang dibutuhkan
Mengubah status suatu pesanan (transaksi)
Status pesanan dapat diubah di:
https://{nama_akun}.getcourse.id/pl/api/deals
Untuk mengubah status sebuah transaksi, Anda perlu melewati tindakan add, kunci rahasia, dan kumpulan parameter transaksi dan pengguna berikut:
base64_encode { "user":{ "email":"email@yopmail.com" }, "deal":{ "deal_number":"13667463", "deal_status":"new" } }
Kode Status Pesanan (deal_status)
- new
- paid
- canceled
- false
- in_work
- payment_waiting
- part_paid
- waiting_for_return
- not_confirmed
- pending
Kode Status Pembayaran (payment_status)
- expected
- accepted
- returned
- tobalance
- frombalance
- returned_to_balance
Kode Metode Pembayaran (payment_type)
- 2CO - 2Checkout
- ALFA - Alfa Bank
- BILL - Pembayaran non-tunai
- CARD - Kartu bank
- CARD_TERMINAL — Kartu bank melalui terminal
- CASH - Tunai
- cloud_payments — CloudPayments
- cloud_payments_kz — CloudPaymentsKz
- fondy - Fondy
- hutki_grosh — Hutki Grosh
- INTERNAL - Saldo internal
- justclick — justclick
- kvit — Penerimaan ke bank
- OTHER - Lainnya
- payanyway — PayAnyWay
- PAYPAL - PayPal
- perfect_money — Perfect Money
- PERFECTMONEY - Perfect Money
- QIWI - Qiwi (usang)
- qiwi_kassa – Kasir QIWI
- QUICKTRANSFER - Sistem transfer cepat
- RBK - RBC Money
- rbkmoney - RBC Money (usang)
- rbkmoney_new — RBC Money (2018)
- ROBOKASSA - Robokassa
- SBER - Sberbank
- sberbank — Sberbank acquiring
- tinkoff — Tinkoff Bank
- tinkoffcredit - Kredit Tinkoff
- VIRTUAL - Akun bonus
- walletone - Kasir tunggal
- wayforpay — WayForPay
- WEBMONEY - Webmoney
- yandex_kassa — Yandex.Kassa
- YANDEXMONEY - Yandex.Money
- ZPAYMENT - Z-payment
- ebanx - EBANX
- swedbank - Swedbank
Kode Mata Uang
- RUB
- USD
- EUR
- GBP
- BYR
- BYN
- KZT
- UAH
- AUD
- DKK
- CHF
- SEK
- ZAR
- AMD
- RON
- BRL
- ILS
- MYR
- SGD
- KGS
- CAD
- MXN
- JPY
- UZS
- PLN
- AZN
- AED
- TRY
- INR
- RSD
- CZK
- MNT
- NZD
Catatan: Jika pesanan memiliki status «Selesai/complete» dan Anda mengubah statusnya menggunakan API menjadi status lain, maka pembelian aktif yang terkait dengan pesanan tersebut tidak akan dibatalkan. Artinya, tanpa mengubah status pembelian, pengguna akan tetap mempertahankan akses yang diberikan oleh pembelian ini.
Ketika mengubah status pesanan menggunakan API menjadi «Selesai/completer» (terbayar), sebuah pembayaran akan dibuat dalam pesanan, sama seperti saat melewati parameter deal_is_paid.
Untuk mendapatkan akses melalui pembelian, kami merekomendasikan menggunakan metode lain:
1. Buat atau gunakan bidang pesanan tambahan yang sudah ada.
2. Kemudian lewati status pesanan yang diinginkan ke bidang tambahan ini melalui API.
3. Setelah itu, menggunakan proses yang dikonfigurasi, secara otomatis ubah status pesanan sesuai dengan nilai bidang tambahan.
Sebagai hasilnya, pembelian yang terkait dengan pesanan akan dibatalkan dan pengguna akan kehilangan akses.
Berikut adalah contoh cara menambahkan pengguna menggunakan PHP:
<?php $accountName = 'XXXXXX' ; $secretKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ; $user = [ ] ; $user [ 'user' ] [ 'email' ] = 'xxxxx@xxxxx.xxx' ; $user [ 'user' ] [ 'phone' ] = '+74951234567' ; $user [ 'user' ] [ 'first_name' ] = 'Vasily' ; $user [ 'user' ] [ 'last_name' ] = 'Pupkin' ; $user [ 'user' ] [ 'city' ] = 'Moscow' ; $user [ 'user' ] [ 'country' ] = 'Russia' ; $user [ 'user' ] [ 'group_name' ] = [ 'Group1' , 'Group2' ] ; $user [ 'system' ] [ 'refresh_if_exists' ] = 1 ; $json = json_encode ( $user ) ; $base64 = base64_encode ( $json ) ; if ( $curl = curl_init ( ) ) { curl_setopt ( $curl , CURLOPT_URL , 'https://' . $accountName . '.getcourse.ru/pl/api/users' ) ; curl_setopt ( $curl , CURLOPT_RETURNTRANSFER , true ) ; curl_setopt ( $curl , CURLOPT_POST , true ) ; curl_setopt ( $curl , CURLOPT_POSTFIELDS , 'action=add&key=' . $secretKey . '¶ms=' . $base64 ) ; $out = curl_exec ( $curl ) ; echo $out ; curl_close ( $curl ) ; } else { echo 'Failed initialization' ; } ?>
Ekspor API
API Ekspor dirancang untuk secara berkala mengunduh data dari GetCourse untuk analisis.
GetCourse hanya menyediakan data dan tidak memengaruhi kemampuan untuk memproses data ini dalam sistem eksternal.
API Ekspor tidak dimaksudkan untuk transfer data cepat secara terpisah untuk setiap objek.
Terletak di:
https://{nama_akun}.getcourse.id/pl/api/account
Data apa yang dapat diunggah melalui API:
— Pengguna
— Grup
— Pesanan
— Pembayaran
Struktur data untuk setiap objek sesuai dengan apa yang diekspor ke CSV menggunakan interface ekspor di bagian yang sesuai.
Catatan:
— Ekspor API dilakukan dalam satu aliran, artinya tidak mungkin untuk memproses permintaan untuk membuat file ekspor baru sampai pembentukan file ekspor untuk permintaan sebelumnya selesai;
— Dalam satu akun, tidak lebih dari 100 permintaan terkait metode API ekspor dapat diproses dalam 2 jam.
EKSPOR PENGGUNA
Untuk mendapatkan data, Anda perlu melakukan hal berikut:
1. Kirimkan tindakan users, kunci rahasia, dan setidaknya satu filter objek untuk diekspor:
"https://{account_name}.getcourse.id/pl/api/account/users?key={secret_key}&...."
Sebagai gantinya "..." parameter filter yang diperlukan ditambahkan (lihat di bawah).
Tindakan ini memulai tugas untuk mengumpulkan data dan mengembalikan ekspor key dalam string JSON, yang akan diperlukan untuk memeriksa status kesiapan dan untuk mengambil data.
2. Kirimkan tindakan ekspor, ekspor key, dan secret key:
"https://{nama_akun}.getcourse.id/pl/api/account/exports/{id_ekspor}?key={secret_key}"
Tindakan ini memeriksa status kesiapan dan mengembalikan aliran data dalam string JSON.
Opsi filter:
Tanggal pembuatan pengguna- created_at[from]=YYYY-MM-DD
- created_at[to]=YYYY-MM-DD
Status pengguna
- status=active/in_base
EKSPOR GRUP
Data dapat diperoleh dengan salah satu cara berikut:
1.1 Untuk mendapatkan daftar semua grup pengguna, Anda harus mengirimkan tindakan groups dan secret key:
"https://{nama_akun}.getcourse.id/pl/api/account/groups?key={secret_key}"
Data berikut diunduh:
- id — ID grup;
- name — nama grup;
- last_added_at — tanggal dan waktu penambahan pengguna terakhir ke grup dalam format "yyyy-mm-dd hh-mm-ss". Jika pengguna belum ditambahkan ke grup, nilai akan menjadi "null".
1.2 Untuk mengekspor data pengguna berdasarkan grup, gunakan ID grup saat mengirimkan permintaan dalam format:
"https://{nama_akun}.getcourse.id/pl/api/account/groups/{ID}/users?key={secret_key}&...."
Ganti parameter {ID} dengan ID grup. Sebagai gantinya "....", tambahkan setidaknya satu dari parameter filter (lihat di bawah).
Tindakan ini memulai tugas untuk mengumpulkan data dan mengembalikan ekspor key dalam string JSON, yang akan diperlukan untuk memeriksa status kesiapan dan untuk mengambil data.
Daftar bidang yang diekspor terdapat dalam artikel terpisah. Selain itu, bidang-bidang berikut diunggah:
- ID Grup;
- Ditambahkan ke grup - dalam format "yyyy-mm-dd hh-mm-ss".
2. Selanjutnya, kirimkan tindakan ekspor, kunci ekspor, dan kunci rahasia:
"https://{nama_akun}.getcourse.ru/pl/api/account/exports/{id_ekspor}?key={kunci_rahasia}"
Tindakan ini memeriksa status kesiapan dan mengembalikan aliran data dalam string JSON.
Opsi filter:
created_at[from]=YYYY-MM-DD
created_at[to]=YYYY-MM-DD
Status pengguna
status=active/in_base
Tanggal ditambahkan ke grup (penambahan ke filter group_id)
added_at[from]=YYYY-MM-DD
added_at[to]=YYYY-MM-DD
EKSPOR PESANAN
Untuk mendapatkan data, Anda perlu:
1. Kirimkan tindakan deals, kunci rahasia, dan setidaknya satu filter objek untuk diekspor:
"https://{nama_akun}.getcourse.id/pl/api/account/deals?key={secret_key}&...."
Sebagai gantinya "..." tambahkan parameter filter yang diperlukan (lihat di bawah).
Tindakan ini memulai tugas untuk mengumpulkan data dan mengembalikan ekspor key dalam string JSON, yang akan diperlukan untuk memeriksa status kesiapan dan mengambil data.
2. Kirimkan tindakan ekspor, ekspor key, dan secret key:
"https://{nama_akun}.getcourse.id/pl/api/account/exports/{id_ekspor}?key={secret_key}"
Tindakan ini memeriksa status kesiapan dan mengembalikan aliran data dalam string JSON.
Opsi filter:
Tanggal pembuatan pesanan
created_at[from]=YYYY-MM-DD`
created_at[to]=YYYY-MM-DD`
Status pesanan
status=deal_status
Tanggal pembayaran pesanan
payed_at[from]=YYYY-MM-DD
payed_at[to]=YYYY-MM-DD
Tanggal penyelesaian pesanan
finished_at[from]=YYYY-MM-DD
finished_at[to]=YYYY-MM-DD
Tanggal perubahan status pesanan
status_changed_at[from]=YYYY-MM-DD
status_changed_at[to]=YYYY-MM-DD
Daftar status pesanan yang mungkin:
- new
- paid
- cancelled
- in_work
- payment_waiting
- part_paid
- waiting_for_return
- not_confirmed
- pending
Ekspor Pembayaran
Untuk mendapatkan data pembayaran, ikuti langkah-langkah ini:
1. Kirim tindakan "pembayaran", bersama dengan secret key Anda dan setidaknya satu filter objek untuk diekspor:
"https://{account_name}.getcourse.id/pl/api/account/payments?key={secret_key}&...."
Daripada "..." parameter filter yang diperlukan ditambahkan (lihat di bawah).
Tindakan ini memulai tugas untuk mengumpulkan data dan mengembalikan ekspor key dalam string JSON, yang akan dibutuhkan untuk memeriksa status kesiapan dan mengambil data.
2. Kirim tindakan "eksport", bersamaan dengan eksport key dan secret key Anda:
"https://{account_name}.getcourse.id/pl/api/account/exports/{export_id}?key={secret_key}"
Tindakan ini memeriksa status kesiapan dan mengembalikan aliran data dalam bentuk string JSON.
Opsi filter:
Tanggal pembuatan pembayaran
created_at[from]=YYYY-MM-DD
created_at[to]=YYYY-MM-DD
Status pembayaran
status=deal_status
Tanggal perubahan status pembayaran
status_changed_at[from]=YYYY-MM-DD
status_changed_at[to]=YYYY-MM-DD
Daftar status pembayaran yang mungkin:
expected
accepted
returned
tobalance
frombalance
returned_to_balance
Pemilihan direktori bidang pengguna tambahan dan bidang pesanan tambahan
Terletak di:
https://{account_name}.getcourse.id/pl/api/account/fields
Untuk mendapatkan daftar bidang, Anda perlu melewati tindakan kunci (secret key API akun) dan tindakan ("Get" harus ditentukan):
curl -i -H “Accept: application/json; q=1.0, */*; q=0.1" "https://{nama_akun}.getcourse.id/pl/api/account/fields" -d "action=get&key={secret_key}"
Harap dicatat: jika akun Anda dikonfigurasi dengan pengalihan paksa (forced redirect) dari alamat sistem akun «akun_anda.getcourse.id» ke domain tambahan «akun_anda.id», dan Anda ingin menggunakan metode API dalam format cURL, Anda harus menggunakan domain «domain_anda.id» bukan «akun_anda.getcourse.id» di alamat tempat permintaan dibuat.
Batasan impor API
Ada batasan pada pembuatan objek baru menggunakan API. Batasan ini tidak berlaku untuk perubahan pada objek yang sudah dibuat.
⚠️ Perhatian! Batasan ini berlaku untuk pembuatan objek menggunakan API dan tidak memengaruhi ekspor data menggunakan ExportAPI atau operasi «call URL» dalam proses (webhooks).
Platform ini memiliki kemampuan untuk menyetujui batasan secara individual. Untuk informasi lebih lanjut, silakan hubungi dukungan menggunakan tautan ini.
STATISTIK PENGGUNAAN API
Untuk memperhitungkan batasan saat memuat data baru, pantau statistik penggunaan API.
Untuk ini:
1. Buka halaman dengan alamat seperti:
http://akun_anda.getcourse.id/saas/account/api — untuk alamat sistem akun;
http://akun_anda.com/saas/account/api — jika Anda menggunakan nama domain sendiri
2. Klik Statistik Penggunaan API
Statistik menampilkan informasi bulanan tentang pembuatan objek menggunakan API.
Download our app
Available in
Available in
Kami menggunakan teknologi cookies di situs web kami untuk mempersonalisasi konten dan iklan, menyediakan fitur media, dan menganalisis traffic kami. Dengan menggunakan situs web GetCourse, Anda setuju dengan Kebijakan Privasi kami, Kebijakan Cookie
silakan masuk