Как стать автором
Обновить

Комментарии 10

Очень поверхностно. Были ли проблемы, когда ушли с сендбокса на боевой аккаунт?

По заданным вопросам, могу ответить исходя из своего опыта:
1. Токен получается от API и может потом использоваться для идентификации транзакции. Т.е. при создании платежа, токен можно привязать к пользователю, а когда придет ответ, то будет ясно для какого пользователя он предназначен.

4. Придет Instant Payment Notification (IPN). Опять же понадобится токен.
На боевом еще не тестировали. Сейчас идет тест в сандбоксе. После успешного его прохождения будем тестировать на боевом. А уже потом выйдем с PayPal в продакшен.

Придет Instant Payment Notification (IPN)

IPN мы, пока, не прикручивали. Попробуем первое время refund-ы в ручном режиме обрабатывать. Надеюсь их не будет много.

Т.е. при создании платежа, токен можно привязать к пользователю

Я не смог найти способа получить токен при создании платежа. Токен, который я использую для доступа к API сильно отличается от токена, возвращаемого PayPal.
Не могли бы вы развернуть ответ?

Зато я нашел такую секцию в документации: developer.paypal.com/docs/api/#authentication--headers В ней говорится, что мы можем передавать заголовок «PayPal-Request-Id» для «Unique ID you generate that can be used for enforcing idempotency.» того, чтобы идентифицировать транзакцию.
Похоже этот способ можно использовать как замену добавления "&InvoiceId={SOME_ID}" в return Url

Я не смог найти способа получить токен при создании платежа.

Нашел токен пластиковой карты клиента. Наверное вы его имели ввиду, когда говорили про привязку к пользователя.
3. не нужно делать refund (это возврат денег), его нужно вызывать когда вы допустим не можете доставить товар но приняли оплату
пользователь может запросить refund сам, тогда будет организован диспут в палке а вам придёт нотификация
владелец карты может запросить возврат средств, тогда палка спишет полученные деньги и комиссию за транзакции (~20$ ), к сожалению на вопросы «а с какой же радости» получить ответа от палки мне не удалось
4. cancel запрос приходит когда пользователь отменяет оплату заказа, в вашем случае придёт refund
Спасибо! С refund разобрался.

P..S. Недоставки у нас быть не может. После оплаты мы сразу зачисляем деньги на счет пользователя.

У вас российский аккаунт? В списке стран, в которых поддерживается REST API России пока нет, неужели всё равно работает? Нужно учитывать, что узнать это можно только в боевом режиме, в песочнице не проверишь.
Большое спасибо за информацию.
Аккаунт, скорее всего, будет американский. PayPal как раз нужен для американского рынка. Для российского нам достаточно робокассы.
Мы еще не вышли в продакшен с PayPal.
Хмм. Тестировали с долларами, все было хорошо. Попробовали с рублями… С рублями не работает. Оплата получает статус «pending» вместо approved (хотя такого статуса нет в документации).
Будем иметь ввиду. Еще раз спасибо.
Не, наврал. Эти операции стали pending потому, что в аккаунте на пайпале нужно было указать, что мы принимаем рубли.

www.paypal.com/webapps/helpcenter/article/?articleID=94028&m=SRE
Log in to your PayPal account.
Click Profile at the top of the page.
Click My selling tools.
Click Update in the Block payments section.
Update your settings and click Save.
Получил красивую картинку на пайпале:

Для этого в транзакцию оплаты нужно передать список товаров:
            var items = new ItemList
            {
                items = new List<Item>{new Item {name = "My payment", price = "1", 
                                                quantity = "1", currency = "USD"}}
            };
            var createdPayment = new Payment
            {
                intent = "sale",
                payer = new Payer { payment_method = "paypal" },
                transactions = new List<Transaction> {new Transaction { description = "My payment", 
                                                                        amount = amnt, 
                                                                        item_list = items}},
                redirect_urls = redirectUrls}.Create(new APIContext(accessToken) { Config = sdkConfig });


Заодно ответил на 2 вопрос: передать список товаров пайпалу и неверно указать сумму, то он не создаст оплату, а вернет ошибку:
«field»:«transactions»,«issue»:«Item amount must add up to specified amount subtotal (or total if amount details not specified)»}

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории