Is a valid paypal email address or not (PHP)

后端 未结 3 1793
滥情空心
滥情空心 2020-12-15 02:00

I am using paypal adaptive payments and i need to verify email address from paypal api given by the store/seller, so that the payment can be directly given to store by custo

相关标签:
3条回答
  • 2020-12-15 02:17
        $email_pay=json_decode($this->config->item('paypal_payment')); 
        $paypal_email=$email_pay->email;
        $paypal_username=$email_pay->username;
        $paypal_password=$email_pay->password;
        $paypal_appid=$email_pay->appid;
        $paypal_signature=$email_pay->signature;
        $mode=$email_pay->mode;
        if($mode==0)
        {
            $API_Endpoint = "https://svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus";
        }
        else
        {
            $API_Endpoint = "https://svcs.paypal.com/AdaptiveAccounts/GetVerifiedStatus";
        }
    
        $ret['error_new']='';   
        $payLoad["emailAddress"]=$_POST['paypal_email'];
        $payLoad["matchCriteria"]="NONE";       $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $API_Endpoint);
        curl_setopt($ch, CURLOPT_VERBOSE, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_HTTPHEADER,  array(
            'X-PAYPAL-REQUEST-DATA-FORMAT: JSON',
            'X-PAYPAL-RESPONSE-DATA-FORMAT: JSON',
            'X-PAYPAL-SECURITY-USERID: '. $paypal_username,
            'X-PAYPAL-SECURITY-PASSWORD: '. $paypal_password,
            'X-PAYPAL-SECURITY-SIGNATURE: '. $paypal_signature,
            'X-PAYPAL-APPLICATION-ID: '. $paypal_appid
        ));  
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payLoad));
        $response = curl_exec($ch);
        $response = json_decode($response, 1); 
        if(empty($response['error'])){
            //valid account
        }
        else{
            $ret['error_new']='Please enter valid paypal email id.';    
        }
    
        }       
        else
        {           
            $ret['status']=0;
        }
        echo json_encode($ret);
    
    0 讨论(0)
  • 2020-12-15 02:22

    Checkout Paypay Adaptive Accounts and look for GetVerifiedStatus

    There is also an SDK for it https://github.com/paypal/adaptiveaccounts-sdk-php

    0 讨论(0)
  • 2020-12-15 02:42

    Yes PayPal supports this feature via the use of "GetVerifiedStatus" API where you have to input the email address , first name and the last name as the required parameter and it will return the response like below :

    Response:
    responseEnvelope.timestamp: 2014-10-01T01%3A17%3A10.081-07%3A00
    responseEnvelope.ack: Success
    responseEnvelope.correlationId: ce5a28138ca78
    responseEnvelope.build: 13068405
    accountStatus: VERIFIED
    userInfo.emailAddress: XXXXXXX
    userInfo.accountType: BUSINESS
    userInfo.accountId: XXXXXXXX
    userInfo.name.salutation: 
    userInfo.name.firstName: Eshan+Business+Test
    userInfo.name.middleName: 
    userInfo.name.lastName: Account
    userInfo.name.suffix: 
    userInfo.businessName: Eshan+New+Business+Name
    

    You can use the below php code for this :

    <?php
    
      $url = trim("https://svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus");  //set PayPal Endpoint to sandbox
    //$url = trim("https://svcs.paypal.com/AdaptiveAccounts/GetVerifiedStatus");         //set PayPal Endpoint to Live 
    
    $API_UserName = "XXXXXXXXXXXXXXXXXXX";                                //PayPal Test API Credentials, Replace it with live if in live mode
    $API_Password = "XXXXXXXXXXXXXXXXXXX"; 
    $API_Signature = "XXXXXXXXXXXXXXXXXX"; 
    $API_AppID = "APP-80W284485P519543T";                                       //Default App ID for Sandbox, replace it with live id if in live mode   
    $API_RequestFormat = "NV";
    $API_ResponseFormat = "NV";
    
    //Create request payload 
    $bodyparams = array (   "requestEnvelope.errorLanguage" => "en_US",
                            "emailAddress" =>"put email address to check ",
                            "firstName" =>"XXXXX",
                            "lastName" =>"XXXXXX",
                            "matchCriteria" => "NAME"
                        );
    
    // convert payload array into url encoded query string
    $body_data = http_build_query($bodyparams, "", chr(38));
    
    try
    {
        //create request and add headers
        $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
    
        //check to see if stream is open
         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;
        }
    
    //print the request to screen for testing purposes
    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>";
    
    //print the response to screen for testing purposes
        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()."||";
    }
    
    echo "<br>";  
    ?>
    
    0 讨论(0)
提交回复
热议问题