2012-04-25 79 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;