title: DoExpressCheckoutPayment - no items displayed on the order email
body: <p>I've spent the whole day googling why it's not working and can't really figure it out. I use PayPal Express to checkout an order. Order contains items and they are not visible on the confirmation email, neither anywhere under the paypal's dashboard.</p>
  
  <p>They appear fine before paying (so the <code>SetExpressCheckoutPayment</code> call works properly), but not with DoExpressCheckoutPayment. I pass over to <code>DoExpressCheckoutPayment</code> the following parameters:</p>
  
  <pre><code>- TOKEN
  - PAYERID
  - PAYMENTACTION
  - AMT
  - CURRENCYCODE,
  - L_PAYMENTREQUEST_0_QTY0
  - L_PAYMENTREQUEST_0_AMT0
  - L_PAYMENTREQUEST_0_NAME0
  - L_PAYMENTREQUEST_0_DESC0 (the digits at the end increase with next items)
  - PAYMENTREQUEST_0_CURRENCYCODE
  - PAYMENTREQUEST_0_ITEMAMT
  </code></pre>
  
  <p>The response I get:</p>
  
  <pre><code>[TOKEN] =&gt; xxxx
  [SUCCESSPAGEREDIRECTREQUESTED] =&gt; true
  [TIMESTAMP] =&gt; 2014%2d02%2d25T18%3a32%3a07Z
  [CORRELATIONID] =&gt; 21459a872dc21
  [ACK] =&gt; Success
  [VERSION] =&gt; 76%2e0
  [BUILD] =&gt; 9720069
  [TRANSACTIONID] =&gt; xxx
  [RECEIPTID] =&gt; xxxx
  [TRANSACTIONTYPE] =&gt; expresscheckout
  [PAYMENTTYPE] =&gt; instant
  [ORDERTIME] =&gt; 2014%2d02%2d25T18%3a32%3a06Z
  [AMT] =&gt; 1%2e00
  [FEEAMT] =&gt; 0%2e23
  [TAXAMT] =&gt; 0%2e00
  [CURRENCYCODE] =&gt; GBP
  [PAYMENTSTATUS] =&gt; Completed
  [PENDINGREASON] =&gt; None
  [REASONCODE] =&gt; None
  [PROTECTIONELIGIBILITY] =&gt; Eligible
  [INSURANCEOPTIONSELECTED] =&gt; false
  [SHIPPINGOPTIONISDEFAULT] =&gt; false
  [PAYMENTINFO_0_TRANSACTIONID] =&gt; xxx
  [PAYMENTINFO_0_RECEIPTID] =&gt; xxx
  [PAYMENTINFO_0_TRANSACTIONTYPE] =&gt; expresscheckout
  [PAYMENTINFO_0_PAYMENTTYPE] =&gt; instant
  [PAYMENTINFO_0_ORDERTIME] =&gt; 2014%2d02%2d25T18%3a32%3a06Z
  [PAYMENTINFO_0_AMT] =&gt; 1%2e00
  [PAYMENTINFO_0_FEEAMT] =&gt; 0%2e23
  [PAYMENTINFO_0_TAXAMT] =&gt; 0%2e00
  [PAYMENTINFO_0_CURRENCYCODE] =&gt; GBP
  [PAYMENTINFO_0_PAYMENTSTATUS] =&gt; Completed
  [PAYMENTINFO_0_PENDINGREASON] =&gt; None
  [PAYMENTINFO_0_REASONCODE] =&gt; None
  [PAYMENTINFO_0_PROTECTIONELIGIBILITY] =&gt; Eligible
  [PAYMENTINFO_0_PROTECTIONELIGIBILITYTYPE] =&gt; ItemNotReceivedEligible%2cUnauthorizedPaymentEligible
  [PAYMENTINFO_0_SECUREMERCHANTACCOUNTID] =&gt; xxxx
  [PAYMENTINFO_0_ERRORCODE] =&gt; 0
  [PAYMENTINFO_0_ACK] =&gt; Success
  </code></pre>
  
  <p>How can we crack this?</p>