2012-04-25 10 views
2

私はPayPal SOAP APIを使って少し狂った作業をします。実際のプロセスは正常に動作しています。つまり、私はPaypalにリダイレクトされ、プロセスはリダイレクトされ、私はそれを処理して処理します。ASP.NetのSOAP APIを使用してCartアイテムをPaypalに送信

私の問題は、自分のカートの内容をペイパルページに送って、支払っているものの概要を伝えているようです。私はPaymentDetails配列を使用しようとしましたが、この種のアイテムは1つのアイテムで機能しましたが、複数の売り手から支払いを受けようとしていると思って複数のアイテム(複数のpaymentDetailオブジェクト)が失敗しました。

誰もがこのネットで動作する方法を知っていますか、またはこれらのアイテムを置くべき場所を知っていますか?エスプレッソのチェックアウトプロセスのカスタマイズに関するドキュメントが見つかりましたが、これはNVP API用です。 SOAP APIと同じ情報です。

+0

また、paypalから領収書を受け取ったときに数量= 1が発生していますか?また、PaymentDetailsItemで数量を指定しました。 – Jonats

答えて

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;