2010-07-12 11 views
19

Quiero integrar PayPal en mi sitio web y solicitar a los usuarios que ingresen la cuenta de PayPal para el pago de la comisión. ¿Cómo puedo verificar si su cuenta existe en paypal? ¿Prefiero NO enviarles $ 0.01 o es la única forma de verificar la cuenta?¿Cómo validar la cuenta de PayPal?

Debe validarlo automáticamente mientras los usuarios inician sesión en el sitio web.

Respuesta

3

puede solicitarles que ingresen la dirección de correo electrónico que utilizan en paypal. y si no tienen una cuenta en PayPal, aún puede enviarles fondos a cualquier correo electrónico que ingresen. Paypal se encargará de que creen una cuenta de PayPal con esa identificación de correo electrónico y les muestre sus fondos.

todo lo que debe asegurarse es que ingresen la dirección de correo electrónico correcta ... tal vez un paso de verificación de dirección de correo electrónico podría hacer el truco.

+0

Debe validarlo automáticamente mientras los usuarios firman. – Andrey

+1

¿Quiere decir que quiere verificar si tienen una cuenta de PayPal válida antes de enviarles dinero? debe tener un problema único porque simplemente les pediría que ingresen su identificación de PayPal y supongan que lo están haciendo bien, les envíe el dinero y terminará con eso. son ellos quienes deberían estar preocupados por ingresar la información correcta, no usted. a menos que esté dando dinero a personas que no están particularmente interesadas en recibirlo ... que es lo que quiero decir con que debe tener un problema único. –

+0

Nota: ¡las API MassPay y Payments NO enviarán dinero a una dirección de correo electrónico que no haya registrado una cuenta primero! –

11

Intente utilizar la API de PayPal AddressVerify: https://www.x.com/docs/DOC-1161

AddressVerify también se puede comprobar que la dirección de su usuario y código postal/código postal son correctos.

Tenga en cuenta que PayPal no proporciona el acceso a la API de AddressVerify por defecto. Debe presentar una solicitud de soporte al cliente para tener acceso a ella en la zona de pruebas y luego contactarlos de nuevo para que se considere su aprobación en el sitio en vivo.

+8

enlace roto ....:/ – coiso

5

GetVerifiedStatus deberían hacer el truco. Tendrá que pasar la dirección de correo electrónico y el nombre de la persona y luego devolverá si su cuenta ha sido verificada o no.

Si no tienen una cuenta de PayPal, recibirá un error que dice "No se puede determinar el estado de la cuenta de PayPal".

He aquí una muestra de la solicitud y la respuesta que acaba de ejecutar en la caja de arena para obtener una cuenta PayPal verificada ...

<?xml version="1.0" encoding="utf-8"?> 
<GetVerifiedStatusRequest xmlns="http://svcs.paypal.com/types/ap"> 
    <requestEnvelope xmlns=""> 
    <detailLevel>ReturnAll</detailLevel> 
    <errorLanguage>en_US</errorLanguage> 
    </requestEnvelope> 
    <emailAddress xmlns="">[email protected]</emailAddress> 
    <matchCriteria xmlns="">NAME</matchCriteria> 
    <firstName xmlns="">Drew</firstName> 
    <lastName xmlns="">Angell</lastName> 
</GetVerifiedStatusRequest> 

<?xml version='1.0' encoding='UTF-8'?> 
<ns2:GetVerifiedStatusResponse xmlns:ns2="http://svcs.paypal.com/types/aa"> 
    <responseEnvelope> 
    <timestamp>2013-01-05T00:07:01.729-08:00</timestamp> 
    <ack>Success</ack> 
    <correlationId>3fecb3e1f2011</correlationId> 
    <build>4055066</build> 
    </responseEnvelope> 
    <accountStatus>VERIFIED</accountStatus> 
    <userInfo> 
    <emailAddress>[email protected]</emailAddress> 
    <accountType>BUSINESS</accountType> 
    <accountId>E7BTGVXBFSUAU</accountId> 
    <name> 
     <salutation></salutation> 
     <firstName>Drew</firstName> 
     <middleName></middleName> 
     <lastName>Angell</lastName> 
     <suffix></suffix> 
    </name> 
    <businessName>Drew Angell's Test Store</businessName> 
    </userInfo> 
</ns2:GetVerifiedStatusResponse> 

Y aquí es una muestra de una solicitud y la respuesta donde no existe la cuenta de PayPal ...

<?xml version="1.0" encoding="utf-8"?> 
<GetVerifiedStatusRequest xmlns="http://svcs.paypal.com/types/ap"> 
    <requestEnvelope xmlns=""> 
    <detailLevel>ReturnAll</detailLevel> 
    <errorLanguage>en_US</errorLanguage> 
    </requestEnvelope> 
    <emailAddress xmlns="">[email protected]</emailAddress> 
    <matchCriteria xmlns="">NAME</matchCriteria> 
    <firstName xmlns="">Drew</firstName> 
    <lastName xmlns="">Angell</lastName> 
</GetVerifiedStatusRequest> 

<?xml version='1.0' encoding='UTF-8'?> 
<ns3:FaultMessage xmlns:ns3="http://svcs.paypal.com/types/common" xmlns:ns2="http://svcs.paypal.com/types/aa"> 
    <responseEnvelope> 
    <timestamp>2013-01-05T00:08:28.581-08:00</timestamp> 
    <ack>Failure</ack> 
    <correlationId>43364ce704211</correlationId> 
    <build>4055066</build> 
    </responseEnvelope> 
    <error> 
    <errorId>580023</errorId> 
    <domain>PLATFORM</domain> 
    <subdomain>Application</subdomain> 
    <severity>Error</severity> 
    <category>Application</category> 
    <message>Cannot determine PayPal Account status</message> 
    </error> 
</ns3:FaultMessage> 
+2

El problema con esto es que también requiere que el usuario ingrese su nombre y apellido EXACTAMENTE como aparece en su cuenta de PayPal, o de lo contrario falla. –

+2

¿Muchas personas ingresan su nombre incorrectamente? –

+1

@DougS No necesita el nombre de los usuarios si establece el campo 'matchCriteria' en' NONE' – robmcvey

0

Tener una cuenta de PayPal verificada significa que ha proporcionado información adicional de PayPal para demostrar su identidad. Esto le da a los clientes potenciales más confianza en su legitimidad y lo califica para que esté cubierto por la Protección del vendedor de PayPal. La verificación de su cuenta también elimina los límites de la cuenta y le permite transferir dinero entre su cuenta de PayPal y sus otras cuentas bancarias vinculadas.

3

Con Java (que podemos hacer algo así como el uso de adaptiveaccountssdk)

<dependency> 
    <groupId>com.paypal.sdk</groupId> 
    <artifactId>adaptiveaccountssdk</artifactId> 
    <version>LATEST</version> 
</dependency> 

...

Map<String, String> sdkConfig = new HashMap<>(); 
sdkConfig.put("mode", "sandbox/live"); 
sdkConfig.put("acct1.UserName", ""); 
sdkConfig.put("acct1.Password", "")); 
sdkConfig.put("acct1.Signature", "")); 
sdkConfig.put("acct1.AppId", "")); 

GetVerifiedStatusRequest request = new GetVerifiedStatusRequest(); 
AccountIdentifierType accountIdentifierType = new AccountIdentifierType(); 
accountIdentifierType.setEmailAddress(accountEmail); 
request.setAccountIdentifier(accountIdentifierType); 
request.setMatchCriteria("NONE"); 
AdaptiveAccountsService aas = new AdaptiveAccountsService(sdkConfig); 
GetVerifiedStatusResponse response = aas.getVerifiedStatus(request); 
String status = response.getAccountStatus(); 

.....

+0

¿Este código garantiza que se verificará la cuenta de usuario? estoy recibiendo este error .. INFORMACIÓN: responseEnvelope.timestamp = 2015-12-17T01% 3A14% 3A00% 3A59.665-08 y responseEnvelope.ack = Incidente y responseEnvelope.correlationId = 9ee14ddcd7e99 y responseEnvelope.build = 18679799 y error (0) .errorId = 580023 y error (0) .dominio = PLATAFORMA & error (0) .subdominio = Aplicación & error (0) .severidad = Error & error (0) .category = Aplicación & error (0) .message = No se puede + determinar + PayPal + Cuenta + estado ¿Puede usted o alguien? ¿¡¡por favor ayuda!!? –

3

he implementado siguiente script en PHP para el método GetVerifiedStatus con llamada API y está funcionando bien para mí. Este script es para sandbox, por lo que si desea probarlo, pruébelo con cuentas de sandbox de PayPal. Si desea usarlo para el modo de producción, elimine las líneas de la zona de pruebas (las mostré en las sugerencias de comentarios). Le expliqué sobre las cosas que debe obtener de PayPal para ejecutar este código dentro de los comentarios de PHP.

<?php 
// create a new cURL resource 
$ch = curl_init(); 

$ppUserID = "******************"; //Take it from sandbox dashboard for test mode or take it from paypal.com account in production mode, help: https://developer.paypal.com/docs/classic/api/apiCredentials/ 
$ppPass = "*************"; //Take it from sandbox dashboard for test mode or take it from paypal.com account in production mode, help: https://developer.paypal.com/docs/classic/api/apiCredentials/ 
$ppSign = "********************"; //Take it from sandbox dashboard for test mode or take it from paypal.com account in production mode, help: https://developer.paypal.com/docs/classic/api/apiCredentials/ 
$ppAppID = "***********"; //if it is sandbox then app id is always: APP-80W284485P519543T 
$sandboxEmail = "********************"; //comment this line if you want to use it in production mode.It is just for sandbox mode 

$emailAddress = "******************"; //The email address you wana verify 
$firstName = "********"; //first name of the account holder you want to verify, sandbox personal account default first name is: test 
$lastName = "*******"; //last name of the account holder you want to verify, sandbox personal account default last name is: buyer 

//parameters of requests 
$nvpStr = 'emailAddress='.$emailAddress.'&firstName='.$firstName.'&lastName='.$lastName.'&matchCriteria=NAME'; 

// RequestEnvelope fields 
$detailLevel = urlencode("ReturnAll"); // See DetailLevelCode in the WSDL for valid enumerations 
$errorLanguage = urlencode("en_US");  // This should be the standard RFC 3066 language identification tag, e.g., en_US 
$nvpreq = "requestEnvelope.errorLanguage=$errorLanguage&requestEnvelope.detailLevel=$detailLevel"; 
$nvpreq .= "&$nvpStr"; 
curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq); 

$headerArray = array(
"X-PAYPAL-SECURITY-USERID:$ppUserID", 
"X-PAYPAL-SECURITY-PASSWORD:$ppPass", 
"X-PAYPAL-SECURITY-SIGNATURE:$ppSign", 
"X-PAYPAL-REQUEST-DATA-FORMAT:NV", 
"X-PAYPAL-RESPONSE-DATA-FORMAT:JSON", 
"X-PAYPAL-APPLICATION-ID:$ppAppID", 
"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"){ 
$output = array('status' => true); //means user is verified successfully 
} else { 
$output = array('status' => false); //means verification was unsuccessful 
} 

echo $output; 

?> 
Cuestiones relacionadas