私は自分のウェブサイトのサンドボックスを介してpayaplを統合しようとしています。
私はpaypalに複数のアイテムを送ることができます、そして、それはうまく働きます。ただし、カート全体の送料を設定して、 paypalに送信したいと思います。
エラーコードが表示されます:
10413 ("ErrorCode=10413&Desc=Transaction refused because of an invalid argument. See additional error messages for details.& Desc2=The totals of the cart item amounts do not match order amounts.")
My CART:
Item: Mens Jackets
Price: 14.99
DESC: "SAMPLE"
QTY: 1
ITEM TOTAL: 14.99
SHIPPING: 5.99
CART TOTAL: 20.94
私は次の変数を設定していますが、何が間違っているのかわかりません。
NVPCodec encoder = new NVPCodec();
encoder["METHOD"] = "SetExpressCheckout";
encoder["RETURNURL"] = returnURL;
encoder["CANCELURL"] = cancelURL;
encoder["BRANDNAME"] = "Mountain Warehouse Sample Application";
encoder["PAYMENTREQUEST_0_PAYMENTACTION"] = "Sale";
encoder["PAYMENTREQUEST_0_CURRENCYCODE"] = "GBP";
// Get the Shopping Cart Products
int i = 0;
Decimal totalItemAmt = 0.00M;
string cartShippingAmt = "";
foreach (BasketItem item in basket.Items)
{
if (item.OrderItemType == OrderItemType.Product)
{
encoder["L_PAYMENTREQUEST_0_NAME" + i] = item.Name.ToString();
encoder["L_PAYMENTREQUEST_0_AMT" + i] = item.Price.ToString("0.00");
encoder["L_PAYMENTREQUEST_0_QTY" + i] = item.Quantity.ToString();
i++;
totalItemAmt += Convert.ToDecimal(item.Price.ToString("0.00"));
}
if (item.OrderItemType == OrderItemType.Shipping)
{
cartShippingAmt = item.Price.ToString("0.00");
}
}
encoder["PAYMENTREQUEST_0_ITEMAMT"] = totalItemAmt.ToString();
encoder["PAYMENTREQUEST_0_AMT"] = amt;
encoder["HANDLING_CART"] = cartShippingAmt;
これがペイパルに送られるクエリです
METHOD=SetExpressCheckout&
RETURNURL=http%3a%2f%2flocalhost%3a1234%2fCheckout%2fCheckoutReview.aspx&
CANCELURL=http%3a%2f%2flocalhost%3a1234%2fCheckout%2fCheckoutCancel.aspx&
BRANDNAME=Sample+Application&
PAYMENTREQUEST_0_PAYMENTACTION=Sale&
PAYMENTREQUEST_0_CURRENCYCODE=GBP&
L_PAYMENTREQUEST_0_NAME0=MENS+JACKETS&
L_PAYMENTREQUEST_0_AMT0=14.99&
L_PAYMENTREQUEST_0_QTY0=1&
PAYMENTREQUEST_0_ITEMAMT=14.99&
HANDLING_CART=5.95&
PAYMENTREQUEST_0_AMT=20.94
カート全体に間違った変動送料を割り当てていると思います。