我对使用PayPal SOAP API感到有些疯狂。实际过程工作正常,我的意思是我重定向到Paypal并且流程重定向回来,我不能接受订单并处理它。
我遇到的问题是我似乎无法将我的购物车内容发送到paypal页面,以概述他们所支付的费用。我尝试使用PaymentDetails数组,这种方式适用于一个项目,但多个项目(和多个paymentDetail对象)失败,因为我认为我试图从多个卖家收取付款,这是有道理的,但我不是。
有没有人知道这是如何与.Net一起工作的,或者对我应该把这些项目放在哪里有任何想法,我找到了一些关于自定义espress结帐流程的文档,但这是针对NVP API而我似乎无法找到SOAP API的相同信息。
答案 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;