#php #paypal #payment #php-5.3
#php #paypal #оплата #php-5.3
Вопрос:
У меня проблема с платежами PayPal. Все коды работают хорошо, но когда страница перейдет по ссылке для оплаты / URL, она будет преобразована в домашнюю страницу учетной записи PayPal.
Я использую это:
if (!isset($_POST["txn_id"]) amp;amp; !isset($_POST["txn_type"])){
$querystring = '';
// Firstly Append paypal account to querystring
$querystring .= "?business=".urlencode($paypal_email)."amp;";
// Append amountamp; currency (£) to quersytring so it cannot be edited in html
//The item name and amount can be brought in dynamically by querying the $_POST['item_number'] variable.
$querystring .= "item_name=".urlencode($item_name)."amp;";
$querystring .= "amount=".urlencode($item_amount)."amp;";
//loop for posted values and append to querystring
foreach($_POST as $key => $value){
$value = urlencode(stripslashes($value));
$querystring .= "$key=$valueamp;";
}
// Append paypal return addresses
$querystring .= "return=".urlencode(stripslashes($return_url))."amp;";
$querystring .= "cancel_return=".urlencode(stripslashes($cancel_url))."amp;";
$querystring .= "notify_url=".urlencode($notify_url);
// Append querystring with custom field
//$querystring .= "amp;custom=".USERID;
// Redirect to paypal IPN
header('location:https://www.paypal.com/cgi-bin/webscr'.$querystring);
exit();
}
Комментарии:
1. У вас очень неаккуратный стиль кода. Я предполагаю, что вы применяете
urlencode()
неправильно. Возможно, двойное кодирование.2. То, что вы здесь делаете, не имеет никакого отношения к IPN. Вы просто пытаетесь сгенерировать стандартную строку платежа PayPal. Должно быть, у вас что-то не так с конечным результатом. Каков фактический результат для $ querystring при создании URL-адреса?
Ответ №1:
Похоже (я думаю, в вашем описании немного не хватает, но я полагаю, что это хорошее предположение …), что ваш код предназначен для прослушивателя IPN PayPal.
Там есть много примеров кода (в том числе — и лучший, ИМХО, — напрямую из PayPalhttps://developer.paypal.com/docs/classic/ipn/ht_ipn/#do-it ), который показывает, как это сделать.
Где вы взяли код, который говорит «Перенаправить на IPN PayPal»? Конечно, это не сработало бы, поскольку это было бы крайне небезопасно (любой мог просто взломать эти пункты …)
Вы должны выполнить cURL (или, возможно, другой метод, я думаю, cURL более распространен), который предоставит вам подтверждение и позволит вашему коду обрабатывать дальше.
Посмотрите документацию для примера кода и опубликуйте, что вы пытаетесь сделать, если у вас возникнут дополнительные проблемы.
Я не верю, что это имеет какое-либо отношение к версии PHP — это имеет прямое отношение к следованию документации и потоку защищенной информации.