3

更新:问题适用于 TEST 和 LIVE API 请求

起初我认为这是一个测试环境错误,但我已经确认它也适用于生产。知道这一点很重要Fees Charged By PayPal


有没有办法让 Paypal 测试环境 ( developer.paypal.com ) 响应 PayPal 收取的费用? aSale或 aSale Lookup似乎都不会返回Paypal Fee在实时交易中看到的。我们是否被迫使用实时交易进行测试(不是最佳实践)?如果没有您在实际环境中看到的相同费用值,很难在开发中对我们的会计系统进行单元测试。

请求 - 使用存储卡收取信用卡费用(43 美元)

        $cardToken = new CreditCardToken();
        $cardToken->setCredit_card_id( $cc->getRefid() );

        $fi = new FundingInstrument();
        $fi->setCredit_card_token( $cardToken );

        $payer = new Payer();
        $payer->setPayment_method('credit_card');
        $payer->setFunding_instruments(array($fi));

        $amount = new Amount();
        $amount->setCurrency('USD');
        $amount->setTotal('43.00');

        $transaction = new Transaction();
        $transaction->setAmount($amount);
        $transaction->setDescription($note);

        $payment = new Payment();
        $payment->setIntent('sale');
        $payment->setPayer($payer);
        $payment->setTransactions(array($transaction));

        $response = $payment->create();

响应 - 批准(完整响应

PayPal\Api\Transaction Object
                        (
                            [_propMap:PPModel:private] => Array
                                (
                                    [amount] => PayPal\Api\Amount Object
                                        (
                                            [_propMap:PPModel:private] => Array
                                                (
                                                    [total] => 43.00
                                                    [currency] => USD
                                                    [details] => PayPal\Api\AmountDetails Object
                                                        (
                                                            [_propMap:PPModel:private] => Array
                                                                (
                                                                    [subtotal] => 43.00
                                                                )

                                                        )

                                                )

                                        )

文档 -Fee Charged By PayPal

(下图) -文档中显示的详细信息对象(string) fee charged by PayPal- 似乎没有在测试环境中暴露自己。

在此处输入图像描述

4

3 回答 3

1

使用 NVP API(GetTransactionDetails 请求)代替标准 REST 响应或与标准 REST 响应一起返回更准确的详细信息。如果您有兴趣,我可以发布一个 PHP 示例。

REST API 允许您执行诸如管理信用卡保险库之类的事情。因此您可以存储一张卡并使用 REST 对卡进行收费......但是当我收费时,我返回 NVP API GetTransactionDetails 响应,其中包括Fees Charged By Paypal您的所有其他内容需要了解通过 REST 收费的交易。这可能是一个 hack 并涉及一个额外的 API 调用,但它工作得非常好。

于 2013-05-08T20:56:21.313 回答
0

现在可以在 REST api 上使用它。具体来说,通过transaction_fee销售对象。

您还可以transaction_fee通过向下钻取从支付对象访问。这是一个(略微编辑的)示例响应:

{
  "id": "PAY-5YK922393D847794YKER7MUI",
  "state": "approved",
  "intent": "sale",
  "payer": {...},
  "transactions": [
    {
      "related_resources": [
        {
          "sale": {
            "id": "36C38912MN9658832",
            "state": "completed",
            "amount": {
              "total": "7.47",
              "currency": "USD"
            },
            "transaction_fee": {
              "value": "1.75",
              "currency": "USD"
            }
          }
        }
      ]
    }
  ]
}

对于那些在家跟随的人,您可以使用以下简单直观的代码行获得此付款的交易费用的价值:

payment.transactions[0].related_resources[0].sale.transaction_fee.value

看?简单的。哦,但请记住 - 销售对象在付款执行才会存在。

这是Ruby SDK 上有关如何添加此功能的大量票证,如果您想阅读一些内容。

于 2016-11-03T02:56:23.520 回答
-1

看起来它是已知的错误,将被修复。还没有日期。

于 2013-05-05T07:46:08.187 回答