如何在 Laravel 中验证电子邮件地址是不是是有效的 PayPal 电子邮件地址

Posted

技术标签:

【中文标题】如何在 Laravel 中验证电子邮件地址是不是是有效的 PayPal 电子邮件地址【英文标题】:How to validate email address is valid PayPal email address or not in Laravel如何在 Laravel 中验证电子邮件地址是否是有效的 PayPal 电子邮件地址 【发布时间】:2021-07-03 23:10:25 【问题描述】:

我需要验证正确的 PayPal 电子邮件地址。因为我需要向那个 PayPal 电子邮件地址汇款。

此代码以前有效。但现在它没有经过验证。

我的代码是

 $ch = curl_init();
    //parameters of requests
    $nvpStr = 'emailAddress=' . $request->email . '&matchCriteria=NONE';

    // RequestEnvelope fields
    $detailLevel    = urlencode("ReturnAll");
    $errorLanguage  = urlencode("en_US");
    $nvpreq = "requestEnvelope.errorLanguage=$errorLanguage&requestEnvelope.detailLevel=$detailLevel&";
    $nvpreq .= "&$nvpStr";
    curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq);

    $headerArray = array(
        "X-PAYPAL-SECURITY-USERID:" . env('PAYPAL_USERNAME'),
        "X-PAYPAL-SECURITY-PASSWORD:" . env('PAYPAL_PASSWORD'),
        "X-PAYPAL-SECURITY-SIGNATURE:" . env('PAYPAL_SIGNATURE'),
        "X-PAYPAL-REQUEST-DATA-FORMAT:JSON",
        "X-PAYPAL-RESPONSE-DATA-FORMAT:JSON",
        "X-PAYPAL-APPLICATION-ID:" . env('PAYPAL_APP_ID') //,
        //"X-PAYPAL-SANDBOX-EMAIL-ADDRESS:$sandboxEmail" //comment this line in production mode. IT IS JUST FOR SANDBOX TEST
    );

    $url = "https://svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus";
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_VERBOSE, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
    $paypalResponse = curl_exec($ch);
    //echo $paypalResponse;   //if you want to see whole PayPal response then uncomment it.
    curl_close($ch);

    $data = json_decode($paypalResponse);

    if ($data->responseEnvelope->ack == 'Success')
        return true;
    else
        return false;

我收到这个作为回应

我正在开发 php laravel。

如果有人有任何想法,请提供帮助。

【问题讨论】:

如果您使用的第三方服务突然停止工作(您没有进行任何更改),那么您应该首先联系服务提供商(贝宝)并检查是否有任何更改/问题您的帐户/他们的 api。我们不能检查/调试,因为我们不是他们。 感谢您的回复。我没有使用任何第三方服务。 svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus 您实际上是在询问 Paypal 的 API,它是这种情况下的第三方。 现在它正在工作。它来自贝宝端。 【参考方案1】:

错误 ID 和相关 ID 在问题的屏幕截图中被涂掉了。让任何人都无法准确回答问题所在的方法。

一个可能的问题是 GetVerifiedStatus 不支持 &matchCriteria=NONE。相反,传递 &matchCriteria=NAME 以及 &FirstName=xxxxx&LastName=xxxxx 之类的内容。

如果您不想提示用户输入匹配条件,另一种不同的解决方案是使用Connect with PayPal 按钮让他们登录。

【讨论】:

以上是关于如何在 Laravel 中验证电子邮件地址是不是是有效的 PayPal 电子邮件地址的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 8:我如何在注册后验证用户的电子邮件地址而无需提供登录信息?

如何在 Laravel 中手动重新发送电子邮件验证?

Laravel 和 jwt-auth。如何检查用户电子邮件是不是经过验证

电子邮件地址字段的值已被使用。 laravel 请求验证

Laravel 5 & 在单个字段中验证多个电子邮件地址

我应该如何在 javascript 或 nodeJs 中验证电子邮件地址是不是存在和域名是不是存在?