views:

138

answers:

0

Hello,

I'm trying to get paypal to accept my 3d secure authorisation after taking a user through the Cardinal Centinel process (3dsecure verification is now required in the UK by Paypal for all Maestro payments).

Having got the authorisation codes back from Cardinal Centinel when I then pass then on to paypal using a SOAP DoDirectPaymentRequest all I get as a response is a 500 Application error.

Here is a sample request to paypal (which works withouth the ThreeDSecure section) with made up data to replace the live card details I have been using:

POST https://api-3t.paypal.com/2.0/
<?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/"&gt;&lt;env:Header&gt;&lt;RequesterCredentials env:mustUnderstand="0" xmlns:n1="urn:ebay:apis:eBLBaseComponents" xmlns="urn:ebay:api:PayPalAPI"><n1:Credentials><Username>[email protected]</Username><Password>TEST</Password><Subject></Subject><Signature>sFSFADFKASFDGOP</Signature></n1:Credentials></RequesterCredentials></env:Header><env:Body><DoDirectPaymentReq xmlns="urn:ebay:api:PayPalAPI">
  <DoDirectPaymentRequest xmlns:n2="urn:ebay:apis:eBLBaseComponents">
    <n2:Version>59.0</n2:Version>
    <n2:DoDirectPaymentRequestDetails>
      <n2:PaymentAction>Authorization</n2:PaymentAction>
      <n2:PaymentDetails>
        <n2:OrderTotal currencyID="GBP">44.00</n2:OrderTotal>
        <n2:NotifyURL></n2:NotifyURL>
        <n2:OrderDescription></n2:OrderDescription>
        <n2:InvoiceID></n2:InvoiceID>
        <n2:ButtonSource>ActiveMerchant</n2:ButtonSource>
      </n2:PaymentDetails>
      <n2:CreditCard>
        <n2:CreditCardType>Maestro</n2:CreditCardType>
        <n2:CreditCardNumber>6759111111111111</n2:CreditCardNumber>
        <n2:ExpMonth>03</n2:ExpMonth>
        <n2:ExpYear>2011</n2:ExpYear>
        <n2:CVV2>598</n2:CVV2>
        <n2:StartMonth>02</n2:StartMonth>
        <n2:StartYear>2009</n2:StartYear>
        <n2:ThreeDSecureRequest>
          <n2:MpiVendor3ds>Y</n2:MpiVendor3ds>
          <n2:AuthStatus3ds>Y</n2:AuthStatus3ds>
          <n2:Cavv>jMKEKlqlJGiJARAbkHkffnrezCI=</n2:Cavv>
          <n2:Eci3ds>02</n2:Eci3ds>
          <n2:XID>Slc2VjY1eHVCMkJqMEpmTGl5NDE=</n2:XID>
        </n2:ThreeDSecureRequest>
        <n2:CardOwner>
          <n2:PayerName>
            <n2:FirstName>Test</n2:FirstName>
            <n2:LastName>Person</n2:LastName>
          </n2:PayerName>
          <n2:Payer>[email protected]</n2:Payer>
          <n2:Address>
            <n2:Name></n2:Name>
            <n2:Street1>Test street</n2:Street1>
            <n2:Street2></n2:Street2>
            <n2:CityName>London</n2:CityName>
            <n2:StateOrProvince></n2:StateOrProvince>
            <n2:Country>GB</n2:Country>
            <n2:PostalCode>SE1 111</n2:PostalCode>
            <n2:Phone></n2:Phone>
          </n2:Address>
        </n2:CardOwner>
      </n2:CreditCard>
      <n2:IPAddress>99.97.165.213</n2:IPAddress>
    </n2:DoDirectPaymentRequestDetails>
  </DoDirectPaymentRequest>
</DoDirectPaymentReq>
</env:Body></env:Envelope>

Any ideas on how to solve this issue would be much appreciated!

Thanks