2017-08-23 8 views
0

私はこれに立ち往生しています、私はpaypalの電子メールIDが確認されていることを確認したい、存在しないかどうかを確認したいです。私はlaravel 5.2を使用していると私はstackoverflowのからこの答えからコードを見つけることがあります。paypalのEメールをチェックする方法は有効ですか?

Is a valid paypal email address or not (PHP)

しかし、私はこのエラーを取得しています: -

stream_get_contents() expects parameter 1 to be resource, boolean given

私は答えがあるのか​​分かりません私を助けてください受け入れました。この問題を再現する方法。私が検証されるPayPalの電子メールをチェックしたいかをここで

は私のPHPコードがある

$url = trim("https://svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus"); //set PayPal Endpoint to sandbox 
$API_UserName = "XXXXXXXXXXXXXXXXXXX"; 
$API_Password = "XXXXXXXXXXXXXXXXXXX"; 
$API_Signature = "XXXXXXXXXXXXXXXXXX"; 
$API_AppID = "APP-80W284485P519543T"; 
$API_RequestFormat = "NV"; 
$API_ResponseFormat = "NV"; 

$bodyparams = array ("requestEnvelope.errorLanguage" => "en_US", 
        "emailAddress" =>"[email protected]", 
        "firstName" =>"Kunal", 
        "lastName" =>"Mahajan", 
        "matchCriteria" => "NAME" 
       ); 

$body_data = http_build_query($bodyparams, "", chr(38)); 

try{ 
    $params = array("http" => array( 
       "method" => "POST", 
       "content" => $body_data, 
       "header" => "X-PAYPAL-SECURITY-USERID:  " . $API_UserName . "\r\n" . 
       "X-PAYPAL-SECURITY-SIGNATURE: " . $API_Signature . "\r\n" . 
       "X-PAYPAL-SECURITY-PASSWORD: " . $API_Password . "\r\n" . 
       "X-PAYPAL-APPLICATION-ID:  " . $API_AppID . "\r\n" . 
       "X-PAYPAL-REQUEST-DATA-FORMAT: " . $API_RequestFormat . "\r\n" . 
       "X-PAYPAL-RESPONSE-DATA-FORMAT:" . $API_ResponseFormat . "\r\n" 
     )); 

    $ctx = stream_context_create($params); //create stream context 
    $fp = @fopen($url, "r", false, $ctx); //open the stream and send request 
    $response = stream_get_contents($fp); //get response 

    if ($response === false){ 
     throw new Exception("php error message = " . "$php_errormsg"); 
    } 

    fclose($fp); //close the stream 

    //parse the ap key from the response 

    $keyArray = explode("&", $response); 

    foreach ($keyArray as $rVal){ 
     list($qKey, $qVal) = explode ("=", $rVal); 
     $kArray[$qKey] = $qVal; 
    } 

    echo "Header info:" . "<br>"; 
    print_r($params['http']['header']); 
    echo "<br><br>" . "Request Info:" . "<br>"; 
    print_r(urldecode($params['http']['content'])); 
    echo "<br><br>" . "Response:" . "<br>"; 
    if ($kArray["responseEnvelope.ack"] == "Success"){ 
     foreach ($kArray as $key =>$value) { 
      echo $key . ": " .$value . "<br/>"; 
     } 
    } 
    else { 
     foreach ($kArray as $key =>$value){ 
      echo $key . ": " .$value . "<br/>"; 
     }  
    } 

}catch(Exception $e) 
{ 
    echo "Message: ||" .$e->getMessage()."||"; 
} 
+0

あなたは間違いが私はAPIのユーザ名、署名やパスワードを変更する必要があり、私は同じコードだけの事を試してみました –

+0

@IaconisSimoneここで私たちは理解してもらうためにPHPコードを投稿する必要があります。 ..残りはすべて同じです –

+0

@ IaconisSimone私は自分のコードを追加しました –

答えて

0

$response = file_get_contents($url, false, $ctx); 

代わりの

$fp = @fopen($url, "r", false, $ctx); //open the stream and send request 
    $response = stream_get_contents($fp); //get response 

使って試してみて、これを変更します。

$params = array("http" => array( 
       "method" => "POST", 
       "content" => $body_data, 
       "header" => "X-PAYPAL-SECURITY-USERID:  " . $API_UserName . "\r\n" . 
       "X-PAYPAL-SECURITY-SIGNATURE: " . $API_Signature . "\r\n" . 
       "X-PAYPAL-SECURITY-PASSWORD: " . $API_Password . "\r\n" . 
       "X-PAYPAL-APPLICATION-ID:  " . $API_AppID . "\r\n" . 
       "X-PAYPAL-REQUEST-DATA-FORMAT: " . $API_RequestFormat . "\r\n" . 
       "X-PAYPAL-RESPONSE-DATA-FORMAT:" . $API_ResponseFormat . "\r\n" 
     )); 
これに

$params = array("http" => array( 
       "method" => "POST", 
       "content" => $body_data, 
       "header" => 
       "X-PAYPAL-SECURIY-USERID:  " . $API_UserName . "\r\n" . 
       "X-PAYPAL-SECURITY-SIGNATURE: " . $API_Signature . "\r\n" . 
       "X-PAYPAL-SECURITY-PASSWORD: " . $API_Password . "\r\n" . 
       "X-PAYPAL-APPLICATION-ID:  " . $API_AppID . "\r\n" . 
       "X-PAYPAL-REQUEST-DATA-FORMAT: " . $API_RequestFormat . "\r\n" . 
       "X-PAYPAL-RESPONSE-DATA-FORMAT:" . $API_ResponseFormat . "\r\n" . 
       "Content-type: application/x-www-form-urlencoded\r\n" 
)); 
+0

はいこれは既に設定されています –

+0

プロキシでコードを実行していますか?あなたはここで確認することができます:http://amibehindaproxy.com/ –

+0

はい私はプロキシの背後にありますが、私はいくつかの別のインターネット接続で試してみました。つまり、プロキシではありませんが、それも動作していません –

関連する問題