# Paypal

* [Paypal nasıl ayarlanır ](#kak-nastroit-paypal)How to set up Paypal bağlantısı
* [Ödeme bağlantısı nasıl oluşturulur ](#sozdanie-ssylki-na-oplatu) How to create a payment link bağlantısı
* [Yineleyen ödeme nasıl oluşturulur](#kak-sozdat-rekkurentnyi-platezh) How to create a recurring payment bağlantısı
* [Sonuç nasıl işlenir](#obrabotka-rezultata) How to process the result bağlantısı

## How to set up Paypal

Paypal ile çalışmak için iki anahtar almanız gerekir: **client\_id** ve **gizli**

Şu sayfaya gidin <https://developer.paypal.com/developer/applications/>

Ve listeden seçin veya yeni bir uygulama oluşturun:

![](https://lh4.googleusercontent.com/i7wtKw-RzPSHarXCkIVIqPvAvn_39t1r4CPL9lSmxzFc1mNiz24zHj4PJIUUhCzL-YXaNrQbK5edCP9bYHGXkIij59shZ6XPj3YZiVp4uRlDllvWRetnF1Y3GSbQXRZt03OOiGxs)

Üstte Live moduna geçin ve istediğiniz uygulamayı seçin. Gerekli verilerin bulunduğu ayarlar sayfası açılır:<br>

![](https://lh4.googleusercontent.com/DEKr4nWXl27UVUoT4Ycl_nOx0Aj-M7KrLcgxWR-uTaUFV82416Wwd2ib4ghxQ3jiW5P53KfMwkqvB_ZS3KjLxNNdn8bzbpvVgfeV5HKsL_iFcv6bc1y_0yntseRKzwPUGz37bpnn)

Verileri kopyalayın ve Mavibot ayarlarında ilgili alanlara yapıştırın: "Acquiring" bölümüne gidin ve Paypal hizmetini bulun:

<figure><img src="/files/17ddb3c019d57aeed905699b5a473b9d8ae9637c" alt=""><figcaption></figcaption></figure>

Ardından "Connect"e tıklayın ve alanları daha önce aldığınız secret key ve Client ID ile doldurun:

<figure><img src="/files/6fd54a1060877cf1f2eda389ea1500fec7dd4729" alt=""><figcaption></figcaption></figure>

Ardından "Save settings"e tıklayın. Bağlantı tamamlanır.

## Ödeme bağlantısı nasıl oluşturulur

### payment\_sum değişkenini kullanma

Bir ödeme bağlantısı oluşturmak için, **payment\_sum** değişkeninin değerini ayarlamanız ve hemen ardından **paypal\_pay\_url** değişkeni görünecektir.

| İşlev parametreleri      | Parametre açıklaması                                                                | Not                                                                                                                            |
| ------------------------ | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| **payment\_title**       | <p>(isteğe bağlı değişken)<br>bu ürün adıdır.</p>                                   | Belirtilmemişse, şu metinle doldurulur: **“Invoice payment order\_id"** (order\_id, mavibot içindeki sipariş tanımlayıcısıdır) |
| **payment\_description** | ürün açıklaması, isteğe bağlı alan                                                  |                                                                                                                                |
| **company\_name**        | şirketinizin adı ödeme sayfasının en üstünde gösterilir (örnek aşağıdadır, company) |                                                                                                                                |

![](https://lh4.googleusercontent.com/sVxsMZdMlVcetXrFFXEWC9lV6dNB3dzDTBWv05Cl5GiilrRWDHlAy69a_ntlX2jY3esyzOPv8TGDm-YHQwnkz1nVMlMtWL6M7rOqeJMNRs0KY22g_d50EksFL8U7y7pF2BZH6FqJ)

Ayrıca, payment\_sum belirtilmeden önce ödeme sayfasının hangi dilde olacağını belirtebilirsiniz.

Bunun için locale değişkenini ayarlayın. Varsayılan dil <mark style="color:kırmızı;">**Rusça (ru-RU).**</mark> Olası seçenekler: da-DK, he-IL, id-ID, ja-JP, no-NO, pt-BR, ru-RU, sv-SE, th-TH, zh-CN, zh-HK, zh-TW vb. (mevcut diller kümesi değişebilir, asıl kaynağa bakın) bağlantı [asıl kaynak](https://developer.paypal.com/api/rest/reference/locale-codes/))

Ödemenin hangi para biriminde kabul edileceğini de belirtebilirsiniz. Bunun için **currency** değişkenini belirtin, <mark style="color:kırmızı;">**ruble (RUB)**</mark> varsayılan olarak ayarlanır; dolar için değerini USD olarak ayarlayın (currency = USD). Olası para birimi seçenekleri bağlantıda bulunabilir. bağlantı  [bağlantı](https://developer.paypal.com/docs/api/reference/currency-codes/).&#x20;

Ve üçüncü ek parametre **company\_name** - şirketinizin adı, ödeme sayfasının en üstünde gösterilir (örnek aşağıdadır, company)

Düğmenin **paypal\_pay\_url** değişkeni bir bağlantıyla gösterilebilir veya "Pay" metni bulunan bir butona yerleştirilebilir.

Bağlantı şu şekilde görünür: [https://www.paypal.com/checkoutnow?token=07N53571YM296381N](https://www.sandbox.paypal.com/checkoutnow?token=07N53571YM296381N)

Uygulamaya bir örnek.

Ödeme tutarını ve şirket adını ayarlama

<figure><img src="/files/18fa059833c560792033df8bae20402f13780513" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
&#x20;**Lütfen dikkat:** şu **payment\_sum** değişkenine değer en son, isteğe bağlı değişkenlerden sonra atanır **payment\_title, company\_name,** vb.
{% endhint %}

Ardından, değişkeni #**{paypal\_pay\_url}** ikinci "Status" bloğunda belirtin:

1. Değişken mesaj alanında belirtilebilir:

<figure><img src="/files/0a20817f977363c0ef7110482d54f4ab0805e095" alt=""><figcaption></figcaption></figure>

2. Değişken, ek ayarlarındaki url alanında belirtilebilir:

<figure><img src="/files/dd4306f2965781bd8c042427f8c498cee0236093" alt=""><figcaption></figcaption></figure>

3. Değişken, buton ayarlarındaki url alanında belirtilebilir:

<figure><img src="/files/6411665b4d17f2f2e79bccb81fe5cbdbe7741b32" alt=""><figcaption></figcaption></figure>

Ödeme bağlantısı açıldığında

![](https://lh3.googleusercontent.com/GvWy17AiTcE0apTWzoPjoADq9h9bXWMRjS61DC00iwnVfSojYKvGS6Puhr6Eg0KfBtBnUza1rY_Mlh0351ka2ikbmNkC6-9zjc2CP-LdUYOQjX4fMaB3V-AT9IRTrMbqRxD-KzW2)

### paypal\_payment\_url hesaplayıcı fonksiyonunu kullanma

Bir funnel oluşturucu bloğu oluşturun ve hesaplayıcı içinde **paypal\_payment\_url** fonksiyonunu kullanarak gerekli parametreleri ona iletin:

<table><thead><tr><th width="264">İşlev parametreleri</th><th>Parametre açıklaması</th></tr></thead><tbody><tr><td><mark style="color:kırmızı;"><strong>!</strong></mark> <strong>payment_sum</strong></td><td>gerekli parametre ödeme tutarıdır.</td></tr><tr><td><strong>currency</strong></td><td> Varsayılan ödeme para birimi ‘USD'dir. Tam liste bağlantıda mevcuttur <a href="https://developer.paypal.com/docs/api/reference/currency-codes/">https://developer.paypal.com/docs/api/reference/currency-codes/</a></td></tr><tr><td><strong>payment_title</strong></td><td>ödeme başlığı (127 karaktere kadar). (Atlanırsa şu metinle doldurulur: “Invoice payment payment_id”, burada payment_id Mavibot'taki sipariş ID'sidir)</td></tr><tr><td><strong>payment_description</strong></td><td>ödemenin kısa açıklaması<br>(<em>127 karaktere kadar</em>)</td></tr><tr><td>company_name</td><td>isteğe bağlı parametre, kuruluş/şirket adı vb.</td></tr><tr><td><strong>locale</strong></td><td>Ödeme sayfası dili en-US, fr-XC vb. olarak belirtilir.<br>Varsayılan olarak ‘ru-Ru’dur.<br>Tam liste şu bağlantıda mevcuttur https://developer.paypal.com/api/rest/reference/locale-codes/</td></tr></tbody></table>

Blok koşulu karşılandığında, müşteri bir ödeme bağlantısı alır ve **paypal\_payment\_completed** müşteri değişkeni <mark style="color:kırmızı;">**False değeriyle oluşturulur.**</mark>

<figure><img src="/files/3a7bcee3bbd076d08a3b327ae470903678db5e91" alt="" width="563"><figcaption></figcaption></figure>

`url = paypal_payment_url(2500,`` `<mark style="color:kırmızı;">`'RUB'`</mark>`, 'Invoice payment payment_id','payment description', 'organization name', 'ru-Ru')`

## Yineleyen ödeme nasıl oluşturulur

Yineleyen ödemelerle ödeme yapmak için bir bağlantı almak ve oluşturmak üzere bir **abonelik planı** kişisel hesabınızda oluşturmanız gerekir.&#x20;

<figure><img src="/files/7843e242cc0a3cd84902e99b3b0e7b516698672c" alt="" width="548"><figcaption></figcaption></figure>

<figure><img src="/files/9a1c099ec8369b6fbe20e25e9617d0f5c1f1160c" alt="" width="563"><figcaption></figcaption></figure>

Daha önce oluşturulmuş teklifi seçme:

<figure><img src="/files/32e834fafa27f54248992d5d1dce5c0ed1ff107d" alt="" width="563"><figcaption></figcaption></figure>

Alternatif olarak, teklif adını arama çubuğuna yazın ve "Create"e tıklayın.

<figure><img src="/files/15af4f2c9548701464d8e191021cc32749737cfc" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/dc5c19e5c2c9e5dde06e5faa41bcbcd28519bb60" alt="" width="563"><figcaption><p>Paypal'da abonelik teklifi oluşturma</p></figcaption></figure>

Otomatik çekim türü Fixed'i seçin:

<figure><img src="/files/0ebd5a9c84a4da4c1332c636dda1f9a23a4b04cf" alt="" width="563"><figcaption></figcaption></figure>

Abonelik oluştur

<figure><img src="/files/c909bcc26389946eeeae6b1464507f4a2ee7d6fc" alt="" width="563"><figcaption></figcaption></figure>

Abonelik para birimini ve çekim koşullarını seçme:

{% hint style="danger" %} <mark style="color:kırmızı;">**Dikkat!!**</mark>&#x20;

Mavibot'ta varsayılan para birimi eurodur; eğer çekim dolar ya da başka bir para birimindeyse, abonelik oluştururken ihtiyacınız olan para birimini belirtin ve Mavibot'ta Paypal aboneliğinden aynı para birimini kullanın.
{% endhint %}

<figure><img src="/files/8ef0c8caca6154ad9d59c9b27bacecaeaf5db673" alt="" width="563"><figcaption></figcaption></figure>

Ardından aboneliği etkinleştirin:

<figure><img src="/files/806cc859a13b9ea96355184aa3dedd7d98cd3492" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/11372f99adf5d498283f54050b92aabe21252952" alt="" width="563"><figcaption></figcaption></figure>

Oluşturma sonrasında, daha sonra abonelik oluşturmak ve bir ödeme bağlantısı almak için kullanacağımız ID erişilebilir olacaktır.

<figure><img src="/files/04884018536b035409bc82e95cb2dda20429e399" alt="" width="563"><figcaption></figcaption></figure>

Ödeme bağlantısı şu fonksiyon tarafından oluşturulur ve döndürülür:\
**paypal\_subscription\_url(plan\_id, shipping\_currency, shipping\_payment\_sum, start\_time)**&#x20;

| İşlev parametreleri                                              | Parametre açıklaması                                                                                                                                                                                                                      |
| ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:kırmızı;">**!**</mark> **plan\_id**           | abonelik planı ID'si                                                                                                                                                                                                                      |
| <mark style="color:kırmızı;">**!**</mark> **shipping\_currency** | belirtilen planın ödemesi dolar ise, hiçbir şey aktarmanıza gerek yoktur; aksi halde planda belirttiğiniz para birimi kodunu aktarırız. Teslimatın ödendiği para birimi buradan iletilir (sıfır maliyet için bile). Varsayılan olarak USD |
| **shipping\_payment\_sum**                                       | Bu, teslimat maliyetini belirten isteğe bağlı bir parametredir. Varsayılan olarak değer sıfıra ayarlanır.                                                                                                                                 |
| **start\_time**                                                  | <p>abonelik başlangıcının tarih ve saati için isteğe bağlı parametre. Hiçbir şey aktarmazsanız, abonelik başlangıç tarihi = ödeme tarihi olur.<br> Biçimler: %d.%m.%Y veya %d.%m.%Y %H:%M. </p>                                           |

<figure><img src="/files/544d9b6901f4121061c038cde0ddda8f24822455" alt="" width="563"><figcaption></figcaption></figure>

Bağlantı oluşturulurken, **paypal\_subscription\_id** değişkeni de görünecektir; bu değişken abonelik ID'sini içerecektir.

Ödeme sırasında, normal bir ödeme için ödeme yapmaya benzer bir callback alırsınız.

**paypal\_subscription\_data(paypal\_subscription\_id)** - abonelik bilgilerini alma

| İşlev parametreleri          | Parametrelerin açıklaması |
| ---------------------------- | ------------------------- |
| **paypal\_subscription\_id** | abonelik ID'si.           |

Düğmenin **fonksiyonun** çalıştırılmasının sonucu - ödeme sayısı, başarısız çekim denemesi sayısı, durum ve daha fazlası dahil olmak üzere abonelikle ilgili tüm bilgileri içeren bir dizidir.

### Abonelik nasıl iptal edilir

paypal\_remove\_subscription(paypal\_subscription\_id) fonksiyonu, müşterilerin hizmetlerinize olan aboneliklerini iptal etmelerine yardımcı olur.

Parametreler:

| İşlev parametreleri      | Açıklama                                                               |
| ------------------------ | ---------------------------------------------------------------------- |
| paypal\_subscription\_id | abonelik oluşturulurken müşteri değişkenine kaydedilen abonelik ID'si. |

<figure><img src="/files/27788fc3dd920a55e8679e52d9eb53ad065958bc" alt=""><figcaption></figcaption></figure>

## Sonuç Nasıl İşlenir

{% hint style="info" %}
Başarılı bir ödemeden sonra, başarılı olduğunu bildiren callback'ler bot'a gönderilecektir.
{% endhint %}

{% hint style="success" %}
Sistemde callback'leri kullanıcının mesajları olarak görürsünüz, ancak kullanıcının kendisi bunları GÖRMEZ: yalnızca operatöre gösterilirler.
{% endhint %}

{% hint style="danger" %}
Callback'i blokta işlemek ve kullanıcıya ödeme durumu hakkında mesajlar göndermek için "Exact match" karşılaştırma türünü kullanın.
{% endhint %}

{% hint style="warning" %}
Callback'ler gecikebilir; bu nedenle, ödeme bağlantısını kullanıcıya gösterdikten sonra şu tür bir mesaj göndermeniz önerilir: “Ödemeyi yaptıktan sonra, lütfen ödemenin başarılı olduğunu belirten bir onay mesajı bekleyin.”
{% endhint %}

### Doğrudan ödeme için

Başarılı ödeme callback'i, gizlinin ilk 10 karakterinden ve durumla birlikte imzadan oluşur. Örneğin: EHsWHYOoWV\_success

Örnek 1: "Start condition" bloğu kullanarak başarılı bir ödemeye tepki:

<figure><img src="/files/1e7ddc2db09e85c0424b5acbe0d44751cf722ba5" alt=""><figcaption></figcaption></figure>

Örnek 2: "Start condition" bloğu kullanarak başarılı bir ödemeye tepki:

<figure><img src="/files/4649f23392ead7e020d65724e2fb5beecfcb4b6a" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Kullanıcıyı ana chatbot akışından çıkarmak istemiyorsanız, “No-state with condition” bloğunu kullanın — kullanıcılar doğrudan bu bloğa yönlendirilemez, bu nedenle başarılı bir ödemeden sonra ana funnel içinde kalırlar ve aynı zamanda başarılı ödeme hakkında bir bildirim alırlar.

Ancak başarılı ödeme olayına göre funnel'a devam etmek istiyorsanız, “Start condition” bloğunu kullanın. Bu durumda, ödeme bloğu tamamlandıktan sonra kullanıcı “Start condition” bloğuna yönlendirilir ve buradan funnel'ınızı oluşturmaya devam edebilirsiniz.
{% endhint %}

{% hint style="info" %}
Koşullu bloklar hakkında daha fazla bilgi aynı adlı makalede verilmiştir. [şartlı bloklarda anlattık](broken://pages/676be56d259b2b337f871ff6556002fb28f5dda1) bağlantı
{% endhint %}

Başarılı ödeme durumunda, paypal\_payment\_completed değişkeni True olarak ayarlanır.

Ödeme tamamlandıktan sonra, işlemin durumuna ilişkin güncel ödeme sistemi verilerini içeren paypal\_callback\_data değişkeni müşteriye eklenir. Gerekli verileri alınan sözlükten get metodu ile çıkarabilirsiniz.

{% hint style="danger" %}
Tekrarlayan bir ödeme yapmak için, payment\_sum değişkenini, daha önce oluşturulmuş bağlantıya sahip değişkeni sıfırlamanız ve ardından payment\_sum değişkenini yeniden atamanız veya yeni bir bağlantı almak için fonksiyonu çağırmanız gerekir.
{% endhint %}

### Abonelik ödemeleri için

{% hint style="danger" %}
Abonelikle ilgili işlemler için callback ayarlama fonksiyonu 09/01/2024 tarihinde eklendi. Bu kategorideki callback'lerin doğru çalışması için, projenizde Paypal ödeme sistemi entegrasyonunu devre dışı bırakıp yeniden bağlamanız gerekir.
{% endhint %}

Bir abonelik ödemesi yapıldığında, bot aşağıdaki mesajlardan birini alır:

* aboneliğin etkinleştirilmesi hakkında. Örneğin, subscription\_I-PTV5H4MRC1H3\_activated;
* başarılı yinelenen abonelik ödemesi bildirimi. Örneğin, subscription\_I-PTV5H4MRC1H3\_paid;
* veya abonelik ödeme hatası hakkında. Örneğin, subscription\_I-PTV5H4MRC1H3\_not\_paid;

Yukarıdaki örneklerde “I-PTV5H4MRC1H3” - müşteri aboneliğinin ID'sidir; buna paypal\_subscription\_id değişkeni kullanılarak erişilebilir.

Callback, işlem durumuna ilişkin güncel ödeme sistemi verilerini içeren paypal\_subscription\_callback\_data değişkenini müşteriye ekleyecektir. Gerekli verileri alınan sözlükten get metodu ile çıkarabilirsiniz.

Örnek 1: "Start condition" bloğu kullanarak abonelik etkinleştirmesine tepki:

<figure><img src="/files/2db8ec93874417c3d358a6c1e9c603ece26ab7aa" alt=""><figcaption></figcaption></figure>

Örnek 1: "Not state with condition" bloğu kullanarak abonelik etkinleştirmesine tepki:

<figure><img src="/files/04675e14f409fddcec5e2e82410f26e55999b2b3" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/tr/odeme/paypal.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
