# 1. Ürün Bazlı

## Ürün Bazlı Ödeme Onayla

<mark style="color:green;">`POST`</mark> `{{Base Adres}}/api/paywall/marketplace/approve/pw/product`

{% hint style="info" %}
Önemli: **Ödeme** servisini kullanabilmeniz için 'Header' alanında '**apikeypublic**' ve '**apiclientpublic**' parametrelerini göndermeniz gerekmektedir.\
\
[<mark style="color:green;">**PaymentAPI Adresi**</mark>](/ortam.md)
{% endhint %}

<table><thead><tr><th width="188">Parametre</th><th width="79">Tip</th><th width="107">Zorunlu</th><th width="403">Açıklama</th></tr></thead><tbody><tr><td>apikeypublic</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Public Key.</td></tr><tr><td>apiclientpublic</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Public Client.</td></tr></tbody></table>

**Servise gönderilmesi gereken parametreler şu şekildedir:**

<table><thead><tr><th width="213.72265625">Parametre</th><th width="137">Tip</th><th width="99">Zorunlu</th><th width="336">Açıklama</th></tr></thead><tbody><tr><td>PaymentId</td><td>int</td><td>Evet</td><td>Ödemenin Paywall tarafındaki Id bilgisi kullanılmalıdır</td></tr><tr><td>ProductIds</td><td>List&#x3C;int></td><td>Evet</td><td>Ödeme esnasında gönderilen ürün(ler)e ait Paywall sisteminde Id bilgisi kullanılmalıdır. Ürün sonucunda ilgili Id cevap içerisinde dönülmektedir.<br><br>Eğer bu Id bilgilerini kendi tarafınızda saklayamıyorsanız. "Ödeme Bazlı" onaylama yöntemini kullanabilirsiniz.</td></tr><tr><td>Payout</td><td>PayoutModel</td><td>Hayır</td><td>Ödemeye ilişkin hakediş dağıtımı anında yapılabilecek ayarlar bu parametre altında yer almaktadır. Örnek: Para transferi anında ödemenin dekontuna özel bir açıklama konumlandırılmak kullanılabilmektedir.<br><br>Aldığı değerleri görebilmek için aşağıdaki JSON'ı inceleyebilirsiniz.</td></tr><tr><td>SameReflectionDateWithMember</td><td>bool</td><td>Hayır</td><td><p>Pazar yeri hakedişlerinizin, üye işyerinizin yansıma tarihi ile aynı gün gerçekleşmesini istiyorsanız bu parametreyi <code>true</code>olarak göndermeniz gerekmektedir.<br><br></p><ul><li><p>Valör günü her zaman üye işyerinin valör tarihi baz alınır.</p><ul><li>Örneğin; üye işyerinin yansıma tarihi 01.01, sizin ise 05.01 ise, bu parametre sayesinde hem üye işyerinin hem de platformun yansıma tarihi 01.01 olacaktır.</li></ul></li><li>Parametre yalnızca tek bir üye için geçerlidir. Ödeme isteği içerisinde birden fazla üye bulunması halinde parametre devre dışı kalır.</li></ul></td></tr></tbody></table>

**Servise gönderilecek örnek&#x20;**<mark style="color:green;">**JSON**</mark>**&#x20;ve&#x20;**<mark style="color:green;">**örnek kodlar**</mark>**&#x20;aşağıdaki gibidir.**

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json5
{
    "PaymentId": 1784197,
    "SameReflectionDateWithMember": false,
    "ProductIds": [
        1626127,
        1626128,
        1626129,
        1626130,
        1626131
    ],
    "Payout": {
        "DescriptionApply": true,
        "Description": "Ödemeye özel para transferi açıklaması"
    }
}
```

{% endcode %}
{% endtab %}

{% tab title="C#" %}

```csharp
// Soon
```

{% endtab %}

{% tab title="GO" %}

```go
// Soon
```

{% endtab %}

{% tab title="Java" %}

```java
// Soon
```

{% endtab %}

{% tab title="PHP" %}

```php
// Soon
```

{% endtab %}

{% tab title="Python" %}

```python
// Soon
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
// Soon
```

{% endtab %}

{% tab title="TypeScript" %}

```typescript
// Soon
```

{% endtab %}

{% tab title="Curl" %}

```sh
// Soon
```

{% endtab %}
{% endtabs %}

**Servisten dönen cevap:**

<table><thead><tr><th width="189">Parametre</th><th width="100.33333333333331">Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td>ErrorCode</td><td>int</td><td>Hata kodu. İşlem başarılı ise '0' değerini döner.</td></tr><tr><td>Result</td><td>bool</td><td>True ya da false değeri döner. İşlem başarılı iste 'true' değerini döner.</td></tr><tr><td>Message</td><td>string</td><td>İşlem hatalıysa, bu hataya dair belirtilen mesajdır, locale parametresine göre dil desteği sunar.</td></tr><tr><td>Body</td><td>nesne</td><td>İşlem detay bilgileri</td></tr></tbody></table>

{% hint style="success" %}
Başarılı için örnek cevap
{% endhint %}

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json
{
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": {
        "Success": [
            {
                "ProductId": 1626127
            },
            {
                "ProductId": 1626128
            },
            {
                "ProductId": 1626129
            },
            {
                "ProductId": 1626130
            },
            {
                "ProductId": 1626131
            }
        ],
        "Fail": []
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

{% hint style="danger" %}
Başarısız için örnek cevap
{% endhint %}

{% tabs %}
{% tab title="JSON" %}

```json
{
    "ErrorCode": 1,
    "Result": false,
    "Message": "",
    "Body": {
        "Success": [],
        "Fail": [
            {
                "ProductId": 1626127,
                "Reason": "This product already approved"
            },
            {
                "ProductId": 1626128,
                "Reason": "This product already approved"
            },
            {
                "ProductId": 1626129,
                "Reason": "This product already approved"
            },
            {
                "ProductId": 1626130,
                "Reason": "This product already approved"
            },
            {
                "ProductId": 1626131,
                "Reason": "This product already approved"
            }
        ]
    }
}
```

{% endtab %}
{% endtabs %}


---

# 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://developer.paywall.one/odeme-servisi/14.-odeme-onaylama/1.-paywall-hesaplayici/1.-urun-bazli.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.
