是否是有效的PayPal电子邮件地址(PHP)
发布时间:2020-12-13 17:47:50 所属栏目:PHP教程 来源:网络整理
导读:我正在使用paypal自适应支付,我需要验证商店/卖家给出的paypal api的电子邮件地址,以便付款可以直接由客户提供给商店. 我想检查一下,如果商店给出的电子邮件是有效的PayPal电子邮件地址,并且他/她已经注册了paypal. 告诉我PayPal是否支持并允许应用程序访问.
我正在使用paypal自适应支付,我需要验证商店/卖家给出的paypal api的电子邮件地址,以便付款可以直接由客户提供给商店.
我想检查一下,如果商店给出的电子邮件是有效的PayPal电子邮件地址,并且他/她已经注册了paypal. 告诉我PayPal是否支持并允许应用程序访问. 并在php中给我示例代码 解决方法
是的PayPal通过使用“GetVerifiedStatus”API支持此功能,您必须输入电子邮件地址,名字和姓氏作为必需参数,它将返回如下响应:
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 你可以使用下面的PHP代码: <?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 . "rn" . "X-PAYPAL-SECURITY-SIGNATURE: " . $API_Signature . "rn" . "X-PAYPAL-SECURITY-PASSWORD: " . $API_Password . "rn" . "X-PAYPAL-APPLICATION-ID: " . $API_AppID . "rn" . "X-PAYPAL-REQUEST-DATA-FORMAT: " . $API_RequestFormat . "rn" . "X-PAYPAL-RESPONSE-DATA-FORMAT:" . $API_ResponseFormat . "rn" )); $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>"; ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |