Могу ли я продавать продукт PayPal с помощью BlueSnap и взимать плату позже в тот же день за дополнительную плату?

Я использую BlueSnap API для продажи товаров через PayPal. На своем веб-сайте я отправляю покупателей в PayPal без заполнения ими каких-либо сведений о доставке — как только они входят в PayPal, я получаю эти данные из их учетной записи BlueSnap.

Но проблема в том, что я не знаю, где находятся покупатели, прежде чем отправить их в PayPal, поэтому есть проблема с доставкой и налогом, которые, возможно, придется добавить к цене продукта.

Есть ли способ отправить покупателя в PayPal на определенную сумму, скажем, 50 долларов, а затем, в соответствии с информацией о доставке, добавить дополнительную плату в размере 7 долларов без повторного одобрения сделки покупателем?

Я обычно использую этот вызов Payment API:

{
    "amount": 50,
    "softDescriptor": "My SD",
    "currency": "USD",
    "paypalTransaction": {
        "cancelUrl": "http://www.cancelURL.com",
        "returnUrl": "http://www.returnURL.com"
    },
    "transactionFraudInfo": {"fraudSessionId": 1234}
}

Нет очевидного места для потенциальной доплаты, поэтому я не уверен, что это вообще возможно — и каковы ограничения? Я читал эту документацию и не мог получить четкой картины. https://developers.bluesnap.com/v8976-JSON/docs/create-paypal-transaction

Буду признателен за любую помощь!


person Lowback    schedule 19.09.2017    source источник


Ответы (1)


В BlueSnap есть несколько потоков для обработки покупок PayPal — и, судя по тому, что вы описываете, похоже, что поток PayPal с разделением шагов должен работать на вас. Когда вы отправляете запрос через API, просто отправьте это (POST):

{
    "merchantTransactionId": "mysurchagetransaction",
    "softDescriptor": "SOFTDESC",
    "amount": "50.00",
    "currency": "USD",
    "payerInfo": {
        "firstName": "John",
        "lastName": "Doe"
     },
     "paypalTransaction": {
         "transactionType": "AUTH_ONLY",
         "returnUrl": "http://www.returnURL.com",
         "cancelUrl": "http://www.cancelURL.com",
         "maxAmount": "70.00"
    }
}

70 долларов США — это ваш предел. Вы можете увеличить сумму на 40 %, иначе BlueSnap не разрешит транзакцию. Идея состоит в том, что на этом этапе вы хотите отправить покупателя в PayPal для покупки на 50 долларов, но вы ожидаете потенциальной доплаты, как только узнаете, откуда он, потенциально до 70 долларов. Ответ на этот вызов API будет включать идентификатор заказа (сохраните его на потом!), а также обычную ссылку перенаправления на PayPal. Ваш покупатель будет перенаправлен туда, одобрит 50 долларов, а затем снова будет перенаправлен на ваш returnURL (ваш веб-сайт).

Когда покупатель вернется, вы получите идентификатор покупателя BlueSnap, и все данные о доставке будут взяты из PayPal. Чтобы просмотреть данные, вы можете получить покупателя обычным способом: https://developers.bluesnap.com/v8976-JSON/docs/retrieve-vaulted-shopper.

Теперь наступает второй этап, который рекомендуется выполнить в течение нескольких часов (у PayPal есть временное окно). Вы учитываете адрес доставки покупателя для налогов/надбавок за доставку, а затем отправляете этот вызов API сбора средств (PUT):

{
    "amount": "58.00",
    "currency": "USD",
    "paypalTransaction": {
        "orderId": "4006145",
       "transactionType": "CAPTURE"
    }
}

Обратите внимание, что вы решили взимать 58 долларов США, поэтому вы не использовали полную максимальную сумму в 70 долларов США. Это нормально, и у покупателя не будет записи в PayPal о 70 долларах, которые вы рассматривали для оплаты, — только 58 долларов. Кроме того, покупателю не нужно было повторно подтверждать покупку или снова входить в систему PayPal. Хотя это и не является обязательным, я бы порекомендовал вам сообщить покупателю сумму, которую вы планируете взимать, когда он вернется на ваш сайт, если это применимо к потоку вашего сайта.

Надеюсь, я помог!

person Oskar    schedule 19.09.2017
comment
Спасибо, Оскар, я думаю, вам нужно обновить онлайн-документ разработчика BlueSnap и добавить некоторые пояснения к полю maxAmount. Я не могу найти информацию о maxAmount в онлайн-документах для разработчиков, но здесь, в Stack Overflow. developers.bluesnap.com/v8976-JSON/docs/paypal - person Seunghoon; 27.12.2018