使用ASP.Net中的SOAP API将Cart项目发送到Paypal

时间:2012-04-25 08:53:57

标签: c# asp.net paypal

我对使用PayPal SOAP API感到有些疯狂。实际过程工作正常,我的意思是我重定向到Paypal并且流程重定向回来,我不能接受订单并处理它。

我遇到的问题是我似乎无法将我的购物车内容发送到paypal页面,以概述他们所支付的费用。我尝试使用PaymentDetails数组,这种方式适用于一个项目,但多个项目(和多个paymentDetail对象)失败,因为我认为我试图从多个卖家收取付款,这是有道理的,但我不是。

有没有人知道这是如何与.Net一起工作的,或者对我应该把这些项目放在哪里有任何想法,我找到了一些关于自定义espress结帐流程的文档,但这是针对NVP API而我似乎无法找到SOAP API的相同信息。

1 个答案:

答案 0 :(得分: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;