PayPal自适应付款集付款选项 - 它是否有效



我一直在尝试(徒劳!)让PayPals SetPaymentOptions API功能正常工作,如下:https://developer.paypal.com/docs/classic/api/adaptive-payments/SetPaymentOptions_API_Operation/

FWIW - 我知道下面不是真正的 JSON,但它是我正在创建的 Perl 对象 - 它在发送之前被转换为 JSON(与将它们全部放在一行上相比,它更容易阅读 =))

到目前为止,我使用"付款"功能(https://svcs.sandbox.paypal.com/AdaptivePayments/Pay)创建初始付款:

{
      requestEnvelope => { 
        detailLevel => "ReturnAll",
        errorLanguage =>  "en_US",
      },
      actionType => "PAY",
      currencyCode => "USD",
      receiverList => {
         receiver => [
           {
              amount => 65,
              email  => 'user1@gmail.com',
              paymentType => "GOODS",
              invoiceId => "test"
           },
            {
              amount => 15,
              email  => 'user2@gmail.com',
              paymentType => "GOODS",               
              invoiceId => "test 2"
           }
         ],  
      },
      returnUrl => 'http://xx.com/thanks.html',
      cancelUrl => 'http://xx.com/cancel.html',
}

这创造了它很好,我得到了很好的回报。当我尝试通过设置付款选项添加运费/单价/税费等时,问题就开始了。这是我提出的一个示例请求:

{
  payKey => $json_returned->{payKey},
  requestEnvelope => { 
          detailLevel => "ReturnAll",
          errorLanguage =>  "en_US",
  },  
  receiverOptions => [
      {
           customId => "foo123",
           receiver => {
              email => 'andy-facilitator@ultranerds.com'
           }, 
           invoiceData => {
             item => [{
                            name      => "ITEM1",
                            price     => 50,
                            itemCount => 2,
                            itemPrice => 25,
                          }],
              totalTax  => 5,
              totalShipping => 10,
           },
          SenderOptions  => {
              addressOverride => 1,
              requireShippingAddressSelection => 1
          }
      }
  ]
}

然后,我通过使用付款详细信息请求(https://svcs.sandbox.paypal.com/AdaptivePayments/PaymentDetails)取回该交易以查看所有交易是否保存正常

这总是没有运费、税金、单位编号等。我对发生了什么感到非常茫然 - 因为如果我更改(例如)第二个请求中的单位数量或交货价格......它给了我一个数字不匹配的错误!所以它必须认识到它 - 但只是不做任何事情。

我真的在这里尽头

(我希望他们能快点完成 REST API - 因为它们看起来比这更有前途......但就目前而言,我必须通过自适应支付来凑合

更新:

这就是你所说的运行ExecutePayment吗?

my $pass_in_params = {
  payKey => $json_returned->{payKey},
  requestEnvelope => { 
          detailLevel => "ReturnAll",
          errorLanguage =>  "en_US",
  },
  actionType => "CREATE"
};

- 终于让它工作了! 根据 Andrews 的信息,我没有在ExecutePayment请求中看到运费/单位/税费的原因是因为我们还没有将它们发送到付款页面(在付款完成之前您无法获取它)。使用沙盒,您可以登录到测试帐户并完美地查看所有单位等。

当您使用 CREATE 付款,

然后在其后调用 SetPaymentOptions 时,在您使用 ExecutePayment 完成付款之前,不会发生任何付款。 因此,当您致电付款详细信息时,无法获得任何详细信息。

尝试调用ExecutePayment来完成工作,然后看看PaymentDetails是否更适合您。

最新更新