2010-07-12 59 views
19

Tôi muốn tích hợp paypal vào trang web của mình và yêu cầu người dùng nhập tài khoản paypal để trả hoa hồng. Làm cách nào để kiểm tra xem tài khoản của họ có tồn tại trên paypal không? Tôi không muốn gửi cho họ 0,01 đô la hoặc đó là cách duy nhất để kiểm tra tài khoản?Làm cách nào để xác thực tài khoản PayPal?

Cần xác thực tự động khi người dùng đăng ký trang web.

Trả lời

3

bạn có thể yêu cầu họ nhập địa chỉ email mà họ sử dụng trong paypal. và nếu họ không có tài khoản trên paypal, bạn vẫn có thể gửi tiền cho bất kỳ email nào họ nhập. Paypal sẽ chăm sóc họ để tạo một tài khoản paypal với id email đó và cho họ thấy tiền của họ.

tất cả các bạn có thể phải đảm bảo là họ nhập id email chính xác .. có thể bước xác minh địa chỉ email có thể thực hiện thủ thuật.

+0

Cần xác thực tự động khi người dùng đăng ký. – Andrey

+1

bạn có nghĩa là bạn muốn kiểm tra xem họ có một tài khoản paypal hợp lệ trước khi bạn gửi tiền cho họ không? bạn phải có một vấn đề duy nhất bởi vì tôi sẽ chỉ yêu cầu họ nhập id paypal của họ và giả sử họ đang làm đúng, gửi cho họ tiền và được thực hiện với nó. đó là những người nên lo lắng về việc nhập đúng thông tin, chứ không phải bạn. trừ khi bạn đang đưa tiền cho những người không đặc biệt quan tâm đến việc nhận nó ... đó là những gì tôi có nghĩa là bạn phải có một vấn đề duy nhất. –

+0

Lưu ý: API MassPay và Payments sẽ KHÔNG gửi tiền tới địa chỉ email chưa đăng ký tài khoản trước! –

11

Hãy thử sử dụng API Paypal AddressVerify: https://www.x.com/docs/DOC-1161

AddressVerify cũng có thể kiểm tra xem địa chỉ của người dùng của bạn và mã bưu điện/bưu chính là chính xác.

Lưu ý rằng quyền truy cập vào API AddressVerify không được cung cấp bởi Paypal theo mặc định. Bạn phải gửi yêu cầu hỗ trợ khách hàng để có quyền truy cập vào nó trong hộp cát và sau đó liên hệ lại với họ để được xem xét phê duyệt trên trang web trực tiếp.

+8

liên kết bị hỏng ....:/ – coiso

5

GetVerifiedStatus nên thực hiện thủ thuật. Bạn sẽ phải chuyển địa chỉ email và tên của người đó và sau đó nó sẽ trả về tài khoản của họ đã được xác minh hay chưa.

Nếu họ không có tài khoản PayPal, bạn sẽ nhận được thông báo lỗi "Không thể xác định trạng thái tài khoản PayPal".

Dưới đây là một mẫu của các request và response Tôi chỉ chạy trên sandbox cho một tài khoản PayPal xác minh ...

<?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> 

Và đây là một ví dụ của một request và response nơi tài khoản PayPal không tồn tại ...

<?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

Vấn đề với điều này là nó cũng yêu cầu người dùng nhập tên và họ của họ CHÍNH XÁC như nó xuất hiện trên tài khoản PayPal của họ, nếu không nó sẽ không thành công. –

+2

Rất nhiều người nhập tên của họ không chính xác? –

+1

@DougS Bạn không cần tên người dùng nếu bạn đặt trường 'matchCriteria' thành' NONE' – robmcvey

0

Có tài khoản PayPal đã xác minh có nghĩa là bạn đã cung cấp thêm thông tin để chứng minh nhận dạng của bạn. Điều này mang lại cho khách hàng tiềm năng sự tự tin hơn về tính hợp pháp của bạn và đủ điều kiện để bạn được bảo vệ theo Bảo vệ người bán của PayPal. Việc xác minh tài khoản của bạn cũng sẽ xóa giới hạn tài khoản và cho phép bạn chuyển tiền giữa tài khoản PayPal và các tài khoản ngân hàng được liên kết khác của bạn.

3

Với Java (chúng ta có thể làm điều gì đó như sử dụng 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

Mã này có đảm bảo rằng tài khoản người dùng sẽ được xác minh không? Tôi nhận được lỗi này .. INFO: responseEnvelope.timestamp = 2015-12-17T01% 3A14% 3A59.665-08% 3A00 & responseEnvelope.ack = Failure & responseEnvelope.correlationId = 9ee14ddcd7e99 & responseEnvelope.build = 18.679.799 & lỗi (0) .errorId = 580.023 & lỗi (0) .domain = PLATFORM & lỗi (0) .subdomain = Ứng dụng & lỗi (0) .severity = Lỗi & lỗi (0) .category = Ứng dụng & lỗi (0) .message = Không thể + xác định + PayPal + Tài khoản + trạng thái Bạn hoặc ai Hãy giúp tôi!!? –

3

tôi thực hiện kịch bản sau đây trong PHP cho phương pháp GetVerifiedStatus với cuộc gọi API và nó hoạt động tốt cho tôi. Kịch bản này là dành cho sandbox vì vậy nếu bạn muốn kiểm tra nó, hãy kiểm tra nó với các tài khoản PayPal sandbox. Nếu bạn muốn sử dụng nó cho chế độ sản xuất, sau đó xóa các dòng cho sandbox (tôi đã cho thấy chúng trong các gợi ý bình luận). Tôi đã giải thích về những thứ bạn cần để lấy từ paypal để chạy mã này bên trong các bình luận 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; 

?> 
Các vấn đề liên quan