Заголовок безопасности недействителен - используется curl php - PullRequest
2 голосов
/ 16 июня 2010

Я внедряю Express Checkout, Paypal API с использованием PHP.

У меня нет проблем с первым шагом: SetExpressCheckout.У меня есть awk = успех.

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

Что я сделал, я скопировал весь URL:

https://api -3t.sandbox.paypal.com/nvp?USER=sanbox_1276609583_biz_api1.gmail.com&PWD=1276609589&SIGNATURE=AYVosblmD7khKkvvb.bNxvFT0OQ2A8GopwByEuC.CfMHt65VaUmvAEy-&VERSION=62.0&token=EC-3YG18670X88588437&METHOD=GetExpressCheckoutDetails

и вставить его вбраузер.Это приведет к:

TOKEN = EC% 2d3YG18670X88588437 & CHECKOUTSTATUS = PaymentActionNotInitiated & TIMESTAMP = 2010% 2d06% 2d16T07% 3a40% 3a12Z & CORRELATIONID = e1a1e469b2 & reg;URL, выполненный в функции, которую я сделал, не будет работать.Ниже моя функция:

функция mycurl ($ url, $ querystr) {

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, $url);

  curl_setopt($ch, CURLOPT_VERBOSE, 1);

  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_POST, 1);

  curl_setopt($ch, CURLOPT_POSTFIELDS, $querystr);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

  $response = curl_exec($ch); 

  curl_close ($ch);

  return $response;

}

Я надеюсь, что кто-то может помочь в этом.Большое спасибо.

Примечание: - Я использовал для этого песочницу.Я создал учетную запись «песочницы», у меня есть учетная запись «Бизнес» для представления информации о торговце и «Личная учетная запись» для представления информации о покупателе.

И я использовал это:

url конечной точки: api-3t.sandbox.paypal.com / URL-адрес песочницы nvp: www.sandbox.paypal.com/cgi-bin/webscr

Это не должно быть проблемой.

1 Ответ

0 голосов
/ 19 июня 2010

Скорее всего, это проблема области действия

. В функции вы должны записать переменную $querystr в файл непосредственно перед выполнением вызова curl или распечатать его на экране и убедиться, что все в порядке.там.Скорее всего, вы используете переменные извне вашей функции для переменной $querystr, и в результате она либо пуста, либо отсутствует.

Вот пример, иллюстрирующий проблему

<?php
$variable = 'bar';
echo $variable;         // prints bar

function myfunc(){
    echo $variable;         // prints nothing
}
function myfunc1(){
    global $variable, $variable1, $variable2;
    echo $variable;        // prints bar
}
?>

См. http://us3.php.net/manual/en/language.variables.scope.php для получения дополнительной информации

также добавьте эту строку после установки переменной $ response

<code>echo '<pre>'; print_r($response); echo '
';

Вы получите код ошибки и длинное сообщение об ошибке, посмотрите их на сайте PayPals для получения дополнительной информации здесь: [https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_errorcodes]

...