Я создал тестовую учетную запись покупателя и продавца в песочнице Paypal. Я также создал кнопку Paypal.
Кнопка Paypal:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="6M75NVDV8ZHR8">
<input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
Я включил IPN и установил там URL-адрес уведомления.
При создании кнопки Paypal я вставляю URL-адрес своего сайта для успешной транзакции.
Успешная транзакция и уведомление IPN имеют один и тот же URL-адрес. эм>
Вот скрипт PHP для указанного URL:
<?php
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';
print_r($_POST);
foreach ($_POST as $key => $value) {
echo "loop";
echo $value = urlencode(stripslashes($value));
echo $req .= "&$key=$value";
}
// post back to PayPal system to validate
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header.= "Content-Type: application/x-www-form-urlencoded\r\n";
$header.= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
echo " PAYMENT VALIDATED & VERIFIED! ";
}
else if (strcmp ($res, "INVALID") == 0) {
echo " PAYMENT INVALID & INVESTIGATE MANUALY! ";
}
}
fclose ($fp);
}
?>
Функция print_r
печатает только Array()
, а в цикле foreach ничего не отображается.
На странице отображается только PAYMENT INVALID & INVESTIGATE MANUALLY!
.
В чем здесь проблема?
Потому что я хочу вставить некоторые данные об успешной транзакции.
ОБНОВЛЕНО
Вот мой массив сообщений:
Array
(
)
DoDirectPayment failed: Array
(
[TIMESTAMP] => 2012%2d05%2d03T12%3a54%3a08Z
[CORRELATIONID] => 51176eef6a5
[ACK] => Failure
[VERSION] => 51%2e0
[BUILD] => 2860716
[L_ERRORCODE0] => 10527
[L_ERRORCODE1] => 10563
[L_ERRORCODE2] => 10562
[L_ERRORCODE3] => 81234
[L_SHORTMESSAGE0] => Invalid%20Data
[L_SHORTMESSAGE1] => Invalid%20Data
[L_SHORTMESSAGE2] => Invalid%20Data
[L_SHORTMESSAGE3] => Invalid%20Parameter
[L_LONGMESSAGE0] => This%20transaction%20cannot%20be%20processed%2e%20Please%20enter%20a%20valid%20credit%20card%20number%20and%20type%2e
[L_LONGMESSAGE1] => This%20transaction%20cannot%20be%20processed%2e%20Please%20enter%20a%20valid%20credit%20card%20expiration%20month%2e
[L_LONGMESSAGE2] => This%20transaction%20cannot%20be%20processed%2e%20Please%20enter%20a%20valid%20credit%20card%20expiration%20year%2e
[L_LONGMESSAGE3] => ExpDate%20%3a%20Invalid%20Parameter
[L_SEVERITYCODE0] => Error
[L_SEVERITYCODE1] => Error
[L_SEVERITYCODE2] => Error
[L_SEVERITYCODE3] => Error
)
Я изменил код ipn.php и теперь получаю эту ошибку: Неверный номер кредитной карты.
Я создал учетную запись покупателя, используя предварительно настроенную учетную запись, и она случайным образом генерирует номер кредитной карты.
Теперь, когда я пошел, чтобы добавить / изменить кредитную карту, я не могу редактировать номер карты, только адрес и дату истечения срока действия.
А также не удается добавить новую кредитную карту, вместо этого ошибка этой кредитной карты назначается другому сообщению учетной записи Paypal.
Invalid credit card number
. Я создал учетную запись покупателя, используя предварительно настроенную, и она генерирует номер кредитной карты случайным образом. Теперь, когда я пошел, чтобы добавить / изменить кредитную карту, я не могу редактировать номер карты, только адрес и дату истечения срока действия. А также не могу добавить новую кредитную карту вместо сообщения об ошибкеThis credit card is assigned to another paypal account
. - person Ahmad   schedule 03.05.2012