2016-11-22 16 views
1

私はPayPal Reference Transactinを使用しようとしています。私は既に請求の同意書を作成しており、取引が完了する前に請求契約書IDが設定されています。PayPalの参照取引 - ステータスコード400の返信

私は、単純なトランザクション要求を行うが、得た:

をPPConnectionExceptionはPPHttpConnection.phpライン108に:
ガットHTTPレスポンスコード400 https://api-3t.sandbox.paypal.com/2.0にアクセスするとき。

私のコード(商人-SDK-PHPパッケージとLaravel 5.3で書か):

$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

I何が間違っていたかを考え出した。代わりに

$RTRequestDetails->PaymentAction ='sale'; 

ペイパルのSOAP APIの

$RTRequestDetails->PaymentAction ='Sale'; 

は敏感右ケース内のすべてを持っている必要があります。 後悔して、彼らは間違った情報を送信しません。

関連する問題