2013-03-12 59 views
2

我使用Paypal的經典API來做直接付款。下面的代碼:貝寶DoDirectPaymentRequest返回NULL

 require('merchant-sdk-php-master/samples/PPBootStrap.php'); 

     $logger = new PPLoggingManager('DoDirectPayment'); 

     $address = new AddressType(); 
     $address->Name = $full_name; 
     $address->Street1 = $address_1; 
     $address->Street2 = $address_2; 
     $address->CityName = $city; 
     $address->StateOrProvince = $province; 
     $address->PostalCode = $postal_code; 
     $address->Country = $country; 
     $address->Phone = $phone; 

     $paymentDetails = new PaymentDetailsType(); 
     $paymentDetails->ShipToAddress = $address; 
     $paymentDetails->OrderTotal = new BasicAmountType('CAD', $amount); 

     $personName = new PersonNameType(); 
     $personName->FirstName = $first_name; 
     $personName->LastName = $last_name; 

     $payer = new PayerInfoType(); 
     $payer->PayerName = $personName; 
     $payer->Address = $address; 
     $payer->PayerCountry = $country; 

     $cardDetails = new CreditCardDetailsType(); 
     $cardDetails->CreditCardNumber = $card_number; 
     $cardDetails->CreditCardType = $card_type; 
     $cardDetails->ExpMonth = $expiry_month; 
     $cardDetails->ExpYear = $expiry_year; 
     $cardDetails->CVV2 = $cvv; 
     $cardDetails->CardOwner = $payer; 

     $ddReqDetails = new DoDirectPaymentRequestDetailsType(); 
     $ddReqDetails->CreditCard = $cardDetails; 
     $ddReqDetails->PaymentDetails = $paymentDetails; 
     $ddReqDetails->PaymentAction = 'Sale'; 
     $ddReqDetails->IPAddress = $ip_address; 
     $ddReqDetails->ReturnFMFDetails = true; 

     $doDirectPaymentReq = new DoDirectPaymentReq(); 
     $doDirectPaymentReq->DoDirectPaymentRequest = new DoDirectPaymentRequestType($ddReqDetails); 

     $logger->info("created doDirectPaymentReq Object"); 

     $paypalService = new PayPalAPIInterfaceServiceService(); 

     try{ 
      $doDirectPaymentResponse = $paypalService->DoDirectPayment($doDirectPaymentReq); 
      var_dump($doDirectPaymentResponse); 
     } 
     catch (Exception $ex){ 
      var_dump($ex); 
     } 

這是它返回的對象:

object(DoDirectPaymentResponseType)#84 (15) { ["Amount"]=> NULL ["AVSCode"]=> NULL ["CVV2Code"]=> NULL ["TransactionID"]=> NULL ["PendingReason"]=> NULL ["PaymentStatus"]=> NULL ["FMFDetails"]=> NULL ["ThreeDSecureResponse"]=> NULL ["PaymentAdviceCode"]=> NULL ["Timestamp"]=> NULL ["Ack"]=> NULL ["CorrelationID"]=> NULL ["Errors"]=> NULL ["Version"]=> NULL ["Build"]=> NULL } ­ 

我是加拿大人,是因爲他們沒有可以在這裏但我不能使用新的API。我堅持使用傳統的API。爲什麼我會得到這個結果?

任何幫助表示讚賞!

+0

我也想提一下,當我刪除它所需的信息來完成請求時,響應失敗,出現錯誤代碼和所有內容,所以我連接到了Paypal。 – jasonaburton 2013-03-13 12:10:53

回答

0

由於某種原因,昨天我得到了一個N​​ULL值的對象。但是,今天我收到一條錯誤消息。我修復了錯誤並獲得了成功。

爲什麼它今天顯示錯誤信息而不是昨天,我不知道。我從來沒有改變任何代碼,所以它一定是貝寶的結束。

仍然不知道什麼是錯的,但就是這樣。