ASP.Net C# 4.0 で PayPal サンドボックスを使用しています。次の Web リファレンスを追加しました。
https://www.paypalobjects.com/wsdl/PayPalSvc.wsdl
アイテムが 1 つある場合 (T シャツを 2 枚ください)、それを PayPal オブジェクトに渡し、問題なくトランザクションを完了することができます。
var item = new PayPalAPIHelper.PayPalWS.PaymentDetailsItemType
{
Quantity = 2, //etc...etc
};
var paymentDetails = new PayPalAPIHelper.PayPalWS.PaymentDetailsType();
paymentDetails.PaymentDetailsItem = new PaymentDetailsItemType[]{item};
ここでのジレンマは、顧客がさまざまなアイテム (T シャツ 1 枚、パンツ 1 枚) を欲しがっている場合です。複数の PaymentDetailsItemType オブジェクトを paymentDetails オブジェクトに渡す必要があります。私はこれを試しました:
//now i have an array of different items
var items = new PayPalAPIHelper.PayPalWS.PaymentDetailsItemType[3];
items[0].Description = "T-shirt";
items[1].Description = "Jeans";
paymentDetails.PaymentDetailsItem = new PaymentDetailsItemType[]{items};
次のエラーが表示されます。
Cannot implicitly convert type 'PayPalAPIHelper.PayPalWS.PaymentDetailsItemType[]'
to 'PayPalAPIHelper.PayPalWS.PaymentDetailsItemType'
私はこれを行うことができ、コンパイルされます:
paymentDetails.PaymentDetailsItem = new PaymentDetailsItemType[]{items[0],items[1]};
しかし、それを実行すると、PayPal サービスを呼び出すと、要素 '数量' でデータ型 '' 不一致が発生します。
PayPalAPIHelper.PayPalWS.PaymentDetailsType paymentDetails = new PayPalAPIHelper.PayPalWS.PaymentDetailsType();
paymentDetails.PaymentDetailsItem = new PayPalAPIHelper.PayPalWS.PaymentDetailsItemType[] { items[0],items[1] };
reqDetails.PaymentDetails = new PayPalAPIHelper.PayPalWS.PaymentDetailsType[] { paymentDetails };
PayPalAPIHelper.PayPalWS.SetExpressCheckoutReq req = new PayPalAPIHelper.PayPalWS.SetExpressCheckoutReq()
{
SetExpressCheckoutRequest = new PayPalAPIHelper.PayPalWS.SetExpressCheckoutRequestType()
{
Version = Version,
SetExpressCheckoutRequestDetails = reqDetails
}
};
// query PayPal and get token
//error occurs here
PayPalAPIHelper.PayPalWS.SetExpressCheckoutResponseType resp = BuildPayPalWebservice().SetExpressCheckout(req); //this is where the error occurs
ユーザーが異なるアイテムを注文できるように、複数のタイプを PayPal API Web サービスに渡すにはどうすればよいですか? 前もって感謝します