кто-то делал оплату через paypal через кнопку?
От: pira  
Дата: 19.05.18 10:54
Оценка:
В документации чёрт ногу сломит. А также в статьях — одни устаревшие, другие противоречивые.

Нужно по клике на кнопку отправить пользователя на PayPal заплатить и потом обработать callback. И если callback говорит, что платёж прошёл, то отправить email. И если не прошёл — тоже.


У пользователя может быть куплено в корзине несколько товаров, нужно все их отобрзить. Но, кнопку Add To Cart от PayPal'а использовать не хочу. Использую простую кнопку — Standard Button.

Как всё это делается, может кто-то поделиться кодом?
Re: кто-то делал оплату через paypal через кнопку?
От: falcoware Ниоткуда https://falco3d.com
Дата: 19.05.18 13:14
Оценка:
Здравствуйте, pira, Вы писали:

P>В документации чёрт ногу сломит. А также в статьях — одни устаревшие, другие противоречивые.


<form id = "buyForm" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="sales@falcoware.com">
<input type="hidden" name="lc" value="USD">
<input type="hidden" name="item_name" value="Payment for rent of remote computer">
<input id = "amount" type="hidden" name="amount" value="1.00">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="button_subtype" value="services">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="no_shipping" value="2">
<input type="hidden" name="rm" value="1">
<input type="hidden" name="return" value="<?php echo $siteAddress;?>checkPayment">
<input type="hidden" name="cancel_return" value="<?php echo $siteAddress;?>PaymentFailure?errorCode=2">
<input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted">
<input type="submit" id="submit" style="margin: 0 auto;" class="btn btn-primary" value = "Rent now" <?php if (!$haveFreeUsers) echo "disabled";?>> <!-- должно быть disabled="" до приёма соглашения !-->
</form>


checkPayment.php:

<?php
// Скрипт проверки и подтверждения платежей.

// Подгружаем основной код
require_once ("includes/methods.php");

session_start();

$token = session_id();
$token.= rand(100, 100000);

$paidAmount = intval($_SESSION['amount']); // Получаем кол-во часов (пока что оплата должна быть в долларах, дальше как-то это улучшить надо)

try
{
$session = Session::StartNewSession($token, $paidAmount); // создаём новую сессию.

try { mailAboutBought($token, $session); }
catch (Exception $ex) { $errors .= "Mail send failed!"; }
}
catch (Exception $ex)
{
header("Location: PaymentFailure?errorCode=3");
return;
}

header("Location: PaymentSuccess?token=$token"); // то выводим, что платёж корректный и нужно генерировать ключ доступа к RDP

?>

https://falco3d.com — Народный Двиг!
Re[2]: кто-то делал оплату через paypal через кнопку?
От: pira  
Дата: 20.05.18 04:47
Оценка: -1
Здравствуйте, falcoware, Вы писали:

F>Здравствуйте, pira, Вы писали:


P>>В документации чёрт ногу сломит. А также в статьях — одни устаревшие, другие противоречивые.


F>

F> <form id = "buyForm" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
F> <input type="hidden" name="cmd" value="_xclick">
F> <input type="hidden" name="business" value="sales@falcoware.com">
F> <input type="hidden" name="lc" value="USD">
F> <input type="hidden" name="item_name" value="Payment for rent of remote computer">
F> <input id = "amount" type="hidden" name="amount" value="1.00">
F> <input type="hidden" name="currency_code" value="USD">
F> <input type="hidden" name="button_subtype" value="services">
F> <input type="hidden" name="no_note" value="1">
F> <input type="hidden" name="no_shipping" value="2">
F> <input type="hidden" name="rm" value="1">
F> <input type="hidden" name="return" value="<?php echo $siteAddress;?>checkPayment">
F> <input type="hidden" name="cancel_return" value="<?php echo $siteAddress;?>PaymentFailure?errorCode=2">
F> <input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted">
F> <input type="submit" id="submit" style="margin: 0 auto;" class="btn btn-primary" value = "Rent now" <?php if (!$haveFreeUsers) echo "disabled";?>> <!-- должно быть disabled="" до приёма соглашения !-->
F> </form>


F>checkPayment.php:

F>

F><?php
F> // Скрипт проверки и подтверждения платежей.

F> // Подгружаем основной код
F> require_once ("includes/methods.php");

F> session_start();

F> $token = session_id();
F> $token.= rand(100, 100000);

F> $paidAmount = intval($_SESSION['amount']); // Получаем кол-во часов (пока что оплата должна быть в долларах, дальше как-то это улучшить надо)

F> try
F> {
F> $session = Session::StartNewSession($token, $paidAmount); // создаём новую сессию.

F> try { mailAboutBought($token, $session); }
F> catch (Exception $ex) { $errors .= "Mail send failed!"; }
F> }
F> catch (Exception $ex)
F> {
F> header("Location: PaymentFailure?errorCode=3");
F> return;
F> }

F> header("Location: PaymentSuccess?token=$token"); // то выводим, что платёж корректный и нужно генерировать ключ доступа к RDP

F>?>


Это ты откуда-то выдрал или это у тебя работает?
Как отсылать польователя в Paypal — это я знаю. Вопрос в том, как правильно обрабатывать колбэки.
Статус платежа не проверяешь. Код 200 Ok не отсылаешь PayPal'у.




зачем
return = " value="<?php echo $siteAddress;?>checkPayment"
?

return -- это страница "thank you", а не страница где ты проверяешь статус. А иначе пользователь и вручную сможет сделать туда запрос с нужным amount'ом и ты будешь думать, что заплатил.

В общем, таких огрызков кода я видел уже много.
Re: кто-то делал оплату через paypal через кнопку?
От: anovokreschenov Россия  
Дата: 20.05.18 07:09
Оценка:
В интернете полно готовых модулей оплаты для разного рода магазинов и т.п., можно там подглядеть.
Re[3]: кто-то делал оплату через paypal через кнопку?
От: falcoware Ниоткуда https://falco3d.com
Дата: 20.05.18 11:08
Оценка: :)
P>В общем, таких огрызков кода я видел уже много.

Плати $30 в час — напишем тебе с коллбеками!

Помогаешь людям БЕСПЛАТНО — они еще орут на тебя!
https://falco3d.com — Народный Двиг!
Re[4]: кто-то делал оплату через paypal через кнопку?
От: pira  
Дата: 21.05.18 08:00
Оценка: -1
Здравствуйте, falcoware, Вы писали:


P>>В общем, таких огрызков кода я видел уже много.


F>Плати $30 в час — напишем тебе с коллбеками!


F>Помогаешь людям БЕСПЛАТНО — они еще орут на тебя!



Ты думаешь, что если ты потрудился что-то состряпать за 2 минуты, тебе в ноги должны кланяться


Из-за этого говна, которое ты скопипастил, шароварщики могут деньги потерять, если они у себя это на сайте такое творение воткнут.

Ну зато бесплатная помощь!
Re[5]: кто-то делал оплату через paypal через кнопку?
От: falcoware Ниоткуда https://falco3d.com
Дата: 21.05.18 08:04
Оценка:
P>Ты думаешь, что если ты потрудился что-то состряпать за 2 минуты, тебе в ноги должны кланяться

Нет, мы должны всей командой работать на тебя и дать доступ к своим счетам!
https://falco3d.com — Народный Двиг!
Re[6]: кто-то делал оплату через paypal через кнопку?
От: pira  
Дата: 21.05.18 11:40
Оценка:
Здравствуйте, falcoware, Вы писали:

P>>Ты думаешь, что если ты потрудился что-то состряпать за 2 минуты, тебе в ноги должны кланяться


F>Нет, мы должны всей командой работать на тебя и дать доступ к своим счетам!


Охххооооххххооо. Аххххааааххххааа. Какой смишьной шютка


Ты мне минус поставил. Даже 2. Теперь моя жизнь пойдёт наперекосяк.
Re[7]: кто-то делал оплату через paypal через кнопку?
От: falcoware Ниоткуда https://falco3d.com
Дата: 21.05.18 11:48
Оценка:
P>Ты мне минус поставил. Даже 2. Теперь моя жизнь пойдёт наперекосяк.

10. будьте братолюбивы друг к другу с нежностью; в почтительности друг друга предупреждайте…
(Послание к Римлянам 12:10)

Видишь какие отношения должны быть между не людьми. А не выносить мозг в начале недели.
https://falco3d.com — Народный Двиг!
Re[8]: кто-то делал оплату через paypal через кнопку?
От: rean  
Дата: 21.05.18 12:19
Оценка:
deleted
Отредактировано 22.04.2019 9:07 deleted2 . Предыдущая версия .
Re[9]: кто-то делал оплату через paypal через кнопку?
От: falcoware Ниоткуда https://falco3d.com
Дата: 21.05.18 12:43
Оценка: :)
R>У вас косяк, какой сквозит и из качества сообщений и из продуктов, какие реализуете.
R>Он заключается в отношении к тому что показывается людям.

У нас главное — скорость! Мы выбрали экстенсивный путь развития. Каждый день по релизу — наш лозунг!

Можно думать — О! Понедельник — делать прогу или не делать? Писать или не писать?

Мы же пашем как лошади, шаг за шагом идя к мечте!
https://falco3d.com — Народный Двиг!
Re[8]: кто-то делал оплату через paypal через кнопку?
От: pira  
Дата: 21.05.18 13:39
Оценка:
Здравствуйте, falcoware, Вы писали:

P>>Ты мне минус поставил. Даже 2. Теперь моя жизнь пойдёт наперекосяк.


F>10. будьте братолюбивы друг к другу с нежностью; в почтительности друг друга предупреждайте…

F>(Послание к Римлянам 12:10)

F>Видишь какие отношения должны быть между не людьми. А не выносить мозг в начале недели.


Если нечего сказать — ничего не говори.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.