2016-11-22 94 views
1

我嘗試使用貝寶參考Transactin。我已經完成了結算協議,在任何交易完成之前獲得了帳單協議ID。PayPal參考交易狀態碼400作爲迴應

我做一個簡單的交易請求,卻得到了:訪問 https://api-3t.sandbox.paypal.com/2.0
GOT HTTP響應代碼400:

PPConnectionException在PPHttpConnection.php線108。

我的代碼(軟件寫在Laravel 5.3商戶-SDK-php軟件包):

$user=Auth::user(); 

$currencyCode = 'GBP'; 
$price=config('constants.offer_submit_price'); 

$reference_id=$user->userExt()->where('field_name', '=', 'billing_agreement')->firstOrFail()->field_value; 
$amount = new BasicAmountType($currencyCode, $price); 

$paymentDetails = new PaymentDetailsType(); 
$paymentDetails->OrderTotal = $amount; 

$RTRequestDetails = new DoReferenceTransactionRequestDetailsType(); 
$RTRequestDetails->PaymentDetails = $paymentDetails; 
$RTRequestDetails->ReferenceID = $reference_id; 
$RTRequestDetails->PaymentAction ='sale'; 

$RTRequest = new DoReferenceTransactionRequestType(); 
$RTRequest->DoReferenceTransactionRequestDetails = $RTRequestDetails; 

$RTReq = new DoReferenceTransactionReq(); 
$RTReq->DoReferenceTransactionRequest = $RTRequest; 

$paypalService = new PayPalAPIInterfaceServiceService($this->config); 
try { 
    $setRTResponse = $paypalService->DoReferenceTransaction($RTReq); 
} catch (Exception $ex) { 
    dd($ex); 
} 

那是由腳本生成的SAOP envelopr:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="urn:ebay:api:PayPalAPI" xmlns:ebl="urn:ebay:apis:eBLBaseComponents" xmlns:cc="urn:ebay:apis:CoreComponentTypes" xmlns:ed="urn:ebay:apis:EnhancedDataTypes" > 
    <soapenv:Header> 
    <ns:RequesterCredentials> 
    <ebl:Credentials> 
     <ebl:Username>username 
</ebl:Username> 
<ebl:Password>password 
</ebl:Password> 
<ebl:Signature>signature 
</ebl:Signature> 
</ebl:Credentials> 
</ns:RequesterCredentials> 
</soapenv:Header> 
<soapenv:Body> 
    <ns:DoReferenceTransactionReq> 
    <ns:DoReferenceTransactionRequest> 
    <ebl:DoReferenceTransactionRequestDetails> 
    <ebl:ReferenceID>B-reference_id 
</ebl:ReferenceID> 
<ebl:PaymentAction>sale 
</ebl:PaymentAction> 
<ebl:PaymentDetails> 
    <ebl:OrderTotal currencyID="GBP">10 
</ebl:OrderTotal> 
<ebl:ButtonSource>PayPal_SDK 
</ebl:ButtonSource> 
</ebl:PaymentDetails> 
</ebl:DoReferenceTransactionRequestDetails> 
<ebl:Version>106.0 
</ebl:Version> 
</ns:DoReferenceTransactionRequest> 
</ns:DoReferenceTransactionReq> 
</soapenv:Body> 
</soapenv:Envelope>' 
+0

huehuehuehuehue – TheWandererr

回答

1

和我的朋友的幫助下,我找出了錯誤。

$RTRequestDetails->PaymentAction ='Sale'; 

代替

$RTRequestDetails->PaymentAction ='sale'; 

貝寶SOAP API必須正確區分大小寫的一切。 遺憾的是,他們不發送任何信息有什麼問題。