2

我在使用 PayPal SOAP API 时有点发疯。实际流程运行良好,我的意思是我重定向到 Paypal,流程重定向回来,我无法接受订单并处理它。

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

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

4

1 回答 1

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;
于 2012-10-31T15:27:07.487 回答