2014-11-08 2 views
0

필자가 작성한 장바구니에 할인을 적용하려고합니다. Adaptive API 시스템을 사용하고 있습니다. 그러나 제대로 이해할 수 없습니다.PayPal API - 할인?

 'receiverOptions' => [ 
          { 
           'receiver' => { 
               'email' => '[email protected]' 
              }, 
           'invoiceData' => { 
                'totalShipping' => '8.00', 
                'totalTax' => 0, 
                'item' => [ 
                   { 
                   'itemPrice' => '15.00', 
                   'name' => 'Alice in Wonderland Mechanism Necklace', 
                   'price' => '15', 
                   'itemCount' => 1 
                   }, 
                   { 
                   'itemPrice' => '30.00', 
                   'name' => '110 Year Old Unicorn Dial Necklace', 
                   'price' => '30', 
                   'itemCount' => 1 
                   } 
                  ], 
                'discount' => '0.15' 
               } 
          } 
          ], 
     'requestEnvelope' => { 
          'errorLanguage' => 'en_US', 
          'detailLevel' => 'ReturnAll' 
          }, 
     'payKey' => 'AP-2F6415163M814733M', 
     'SenderOptions' => { 
          'requireShippingAddressSelection' => bless(do{\(my $o = 1)}, 'JSON::XS::Boolean') 
         } 
    }; 

을 .. 그리고 심지어 초기 지불 전화에 그것을 시도 -하지만도 할인을 인식 (및 적용)하는 것 : 나는 SetPaymentOptions 호출을 시도했습니다.

 'currencyCode' => 'GBP', 
     'requestEnvelope' => { 
          'errorLanguage' => 'en_US', 
          'detailLevel' => 'ReturnAll' 
          }, 
     'cancelUrl' => 'https://sitedev.net/', 
     'discount' => '0.15', 
     'actionType' => 'CREATE', 
     'ipnNotificationUrl' => 'https://sitedev.net/cgi-bin/ipn.cgi', 
     'returnUrl' => 'https://sitedev.net/myorders', 
     'reverseAllParallelPaymentsOnError' => bless(do{\(my $o = 0)}, 'JSON::XS::Boolean'), 
     'receiverList' => { 
          'receiver' => [ 
              { 
              'email' => '[email protected]', 
              'amount' => '53.00', 
              'invoiceId' => '47', 
              'paymentType' => 'GOODS' 
              } 
             ] 
         } 
    }; 

UPDATE : 음의 확인 -이 여전히 가진 문제! 값 그게

      'item' => [ 
            { 
             'itemPrice' => '25.00', 
             'name' => 'Cryptex - 16Gb USB Drive', 
             'price' => '25', 
             'itemCount' => 1 
            }, 
            { 
             'name' => 'Special Discount', 
             'price' => '-2.50', 
             'itemCount' => 1 
            }, 
            { 
             'itemPrice' => '5.00', 
             'name' => 'Shipping', 
             'price' => '5.00', 
             'itemCount' => 1 
            } 
            ] 

내가 전달하고있어, 아직까지는 카트 끝에서, 그것은 보여줍니다

Steampunk Junkies £27.50 
Cryptex - 16Gb USB Drive 
£25.00 
Shipping 
£5.00 

£0.00 

이상한 것은이 - 할인이 적용되고 있음을 ... 바로 표시되지 않습니다 ???

답변

1

나는이 통화에서도 사용할 수있는 "할인"매개 변수가있는 것을보고 궁금합니다. Pay 또는 SetPaymentOptions에 대한 API 참조에 나열되어 있지 않습니다.

당신이해야 할 일은 SetPaymentOptions의 광고 항목으로 할인을 음수로 추가하는 것입니다. 따라서 값이 -0.15 인 추가 광고 항목이됩니다. 항목의 이름을 "할인"또는 원하는 이름으로 지정할 수 있지만이 API에서 사용할 수있는 실제 할인 매개 변수는 없습니다.

+0

왜 그런 생각을하지 않았는지 잘 모르겠다. 다른 API에서 '할인'매개 변수를 보았다. (URL에서 "표준"지불을 위해) 전달했다. ..하지만 JSON에서도 작동 할 것이라고 가정했습니다. 그들의 API 문서는 적응 물건에 대한 약간의 절름발이입니다. (이제는 그걸 줄 것이고 작동한다면 ==) –

+1

음, 괜찮습니다. 음수를 사용하려고 할 때 오류가 발생합니다. :'ERROR : 유효하지 않은 요청 매개 변수 : itemPrice는 /var/home/user/site.net/cgi-bin/admin/Want/Cart.pm 줄 437에서 음수 일 수 없습니다.' –

+1

아, 내 실수 - 싫어했습니다. 'itemPrice'가 정의되고 있습니다 ... 만약'price' 매개 변수를 사용했다면 잘 작동합니다. 감사! –