Search code examples
ruby-on-railsrubysoappaypalactivemerchant

10001 Internal Error when trying to capture an authorization from PayPal with Activemerchant


I've successfully made authorized a card, and it shows up in my sandbox transaction log. When I try to capture using that authorization (with activemerchant, which uses SOAP), this is the XML it sends to the server:

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Header>
        <RequesterCredentials xmlns:n1="urn:ebay:apis:eBLBaseComponents" xmlns="urn:ebay:api:PayPalAPI" env:mustUnderstand="0">
            <n1:Credentials>
                <Username>seller_1249669053_per_api1.synergyeoc.com</Username>
                <Password>snip</Password>
                <Subject/>
            </n1:Credentials>
        </RequesterCredentials>
    </env:Header>
    <env:Body>
        <DoCaptureReq xmlns="urn:ebay:api:PayPalAPI">
            <DoCaptureRequest xmlns:n2="urn:ebay:apis:eBLBaseComponents">
                <n2:Version>52.0</n2:Version>
                <AuthorizationID>0RF01309N5838270B</AuthorizationID>
                <Amount currencyID="USD">2600.00</Amount>
                <CompleteType>Complete</CompleteType>
                <Note/>
            </DoCaptureRequest>
        </DoCaptureReq>
    </env:Body>
</env:Envelope>

Paypal returns the ever so descriptive 10001 "Internal Error." Can anyone spot what's not right here?

Just for fun, here is what ActiveMerchant parses as the response from paypal:

=> #<ActiveMerchant::Billing::Response:0x3e00698 @params={"payment_status"=>"None", "correlation_id"=>"a188cc8c5f94c", "timestamp"=>"2009-08-11T06:21:22Z", "pending_reason"=>"none", "build"=>"997644", "transaction_type"=>"none", "error_codes"=>"10001", "version"=>"52.0", "ack"=>"Failure", "message"=>"Internal Error", "reason_code"=>"none", "payment_type"=>"none"}, @test=true, @authorization=nil, @cvv_result={"code"=>nil, "message"=>nil}, @message="Internal Error", @success=false, @fraud_review=false, @avs_result={"code"=>nil, "postal_match"=>nil, "street_match"=>nil, "message"=>nil}>

I'd LOVE it if someone could help!!!


Solution

  • All I have are long-shot possibilities.

    The interface could have gone down for unannounced reasons after you authorized. Similar thing happened on the 3rd, returning 10001s.

    Could be related to https://ppmts.custhelp.com/cgi-bin/ppdts.cfg/php/enduser/std_adp.php?p_faqid=169

    I'd also try reauthorizing with a small amount, but it should have given a different error if that was the problem.

    Though it shouldn't make a difference if the auth succeeded, you haven't shown us the authorize transaction.