交易明细中的Paypal数量错误

时间:2012-04-19 19:44:26

标签: asp.net vb.net paypal

当用户从我的网站转到paypal页面时,订单会显示:

quantity 2
price 20$
Total 40$

而在交易细节中的paypal账户中显示的是:

quantity 1
price 40$
total 40$

如何解决此问题,在paypal帐户中有数量2? 我正在使用Paypal api set express check out:

   Dim caller As New CallerServices
        Dim profile As IAPIProfile = ProfileFactory.createSignatureAPIProfile()
        '
        '            WARNING: Do not embed plaintext credentials in your application code.
        '            Doing so is insecure and against best practices.
        '            Your API credentials must be handled securely. Please consider
        '            encrypting them for use in any production environment, and ensure
        '            that only authorized individuals may view or modify them.
        '            
        ' Set up your API credentials, PayPal end point, and API version.
        profile.APIUsername = AppSettings("APIUsername")
        profile.APIPassword = AppSettings("APIPassword")
        profile.APISignature = AppSettings("APISignature")
        profile.Environment = AppSettings("Environment")
        caller.APIProfile = profile
        ' Create the request object.
        Dim pp_request As New SetExpressCheckoutRequestType()
        pp_request.Version = AppSettings("APIVersion")
        ' Add request-specific fields to the request.
        ' Create the request details object.
        pp_request.SetExpressCheckoutRequestDetails = New SetExpressCheckoutRequestDetailsType()
        pp_request.SetExpressCheckoutRequestDetails.PaymentAction = paymentAction
        pp_request.SetExpressCheckoutRequestDetails.PageStyle = color
        'Enum for PaymentAction is  PaymentActionCodeType.Sale
        pp_request.SetExpressCheckoutRequestDetails.PaymentActionSpecified = True
        pp_request.SetExpressCheckoutRequestDetails.OrderDescription = type
        pp_request.SetExpressCheckoutRequestDetails.PaymentDetails = New PaymentDetailsType()
        pp_request.SetExpressCheckoutRequestDetails.PaymentDetails.Custom = DateTime.Now.ToLongTimeString
        Dim items(1) As PaymentDetailsItemType
        Dim item1 As PaymentDetailsItemType = New PaymentDetailsItemType
        item1.Name = dealName
        item1.Number = OfferID
        item1.Amount = New BasicAmountType()
        item1.Amount.Value = price

        item1.Amount.currencyID = currencyCodeType
        item1.Quantity = qnt
        items(0) = item1
        pp_request.SetExpressCheckoutRequestDetails.PaymentDetails.PaymentDetailsItem = items
        pp_request.SetExpressCheckoutRequestDetails.OrderTotal = New BasicAmountType()
        pp_request.SetExpressCheckoutRequestDetails.OrderTotal.currencyID = currencyCodeType
        'Enum for currency code is  CurrencyCodeType.USD
        pp_request.SetExpressCheckoutRequestDetails.OrderTotal.Value = paymentAmount
        pp_request.SetExpressCheckoutRequestDetails.CancelURL = cancelURL
        pp_request.SetExpressCheckoutRequestDetails.ReturnURL = returnURL
        '' Execute the API operation and obtain the response.
        Dim pp_response As New SetExpressCheckoutResponseType()
        pp_response = DirectCast(caller.[Call]("SetExpressCheckout", pp_request), SetExpressCheckoutResponseType)
        token = pp_response.Token
        resp = pp_response
        Return pp_response.Ack
    End Function

1 个答案:

答案 0 :(得分:1)

明确结帐的唯一折扣选项是运费折扣,但您可以传递负值项目作为折扣。我有一个例子如下:

VERSION = 84.0
METHOD = SetExpressCheckout
RETURNURL = test/index.php?action=ECreturn
CANCELURL = test/index.php?action=ECcancel
PAYMENTREQUEST_0_AMT = 0.99
PAYMENTACTION = Sale
L_PAYMENTREQUEST_0_NAME0 = Test
L_PAYMENTREQUEST_0_DESC0 = Test
L_PAYMENTREQUEST_0_AMT0 = 1.00
L_PAYMENTREQUEST_0_NUMBER0 =11111
L_PAYMENTREQUEST_0_QTY1 =1
L_PAYMENTREQUEST_0_NAME1 = Discount item
L_PAYMENTREQUEST_0_DESC1 = DIscount
L_PAYMENTREQUEST_0_AMT1 = -0.01
L_PAYMENTREQUEST_0_NUMBER1 =22222
L_PAYMENTREQUEST_0_QTY1 =1