2012-04-25 76 views
2

我正在與PayPal SOAP API合作。實際過程工作正常,因爲我的意思是我重定向到PayPal和過程重定向回來,我不能接受訂單,並處理它。使用ASP.Net中的SOAP API發送購物車項目到PayPal

我遇到的問題是我似乎無法將我的購物車的內容發送到PayPal頁面,以概述他們所支付的費用。我嘗試使用PaymentDetails數組,並且這種類型的工作適用於一個項目,但多項目(和多個paymentDetail對象)失敗,因爲我認爲我試圖從多個賣家處獲得支付,這是有道理的,但我不是。

有誰知道這是如何與.Net工作,或有任何想法,我應該把這些項目,我發現了一些關於定製espress結帳過程的文檔,但這是爲NVP API,我似乎無法找到SOAP API的相同信息。

+0

當您從貝寶收到收據時,您是否也體驗過數量= 1?我也在PaymentDetailsItem中指定了數量。 – Jonats 2012-06-29 04:38:02

回答

1

我正在尋找正確的區域,錯誤的重點。 PaymentDetails對象包含一個PaymentDetailsItem數組,其中的項目去,代碼需要整理,但應該提供一般的想法,如果任何人需要它。

PaymentDetailsType[] pmtDetails = new PaymentDetailsType[1]; 
    pmtDetails[0] = new PaymentDetailsType(); 
    var pmtIndex = 0; 

    PaymentDetailsItemType[] items = new PaymentDetailsItemType[cartItems.Count]; 

    foreach (var item in cartItems) 
    { 
     var i = new PaymentDetailsItemType() 
     { 
      Name = item.productName, 
      Number = item.productID.ToString(), 
      Quantity = item.quantity.ToString(), 
      Amount = new BasicAmountType(){ currencyID = CurrencyCodeType.GBP, Value = item.productPrice.ToString() } 
     }; 
     items[pmtIndex] = i; 
     pmtIndex++; 
    } 
    //reqDetails.p 
    //reqDetails.PaymentDetails = pmtDetails; 
    //hOrderTotal.Value 
    // 
    pmtDetails[0].PaymentDetailsItem = items; 
    pmtDetails[0].OrderTotal = new BasicAmountType() { currencyID = CurrencyCodeType.GBP, Value = HttpContext.Current.Session["_OrderTotalLessShippingAmount"].ToString() }; 
    reqDetails.PaymentDetails = pmtDetails;