Paypal REST API 错误 - PayPal 收取的费用未在响应中设置

标签 paypal paypal-sandbox

更新:问题适用于测试和实时 API 请求

起初我以为这是一个测试环境错误,但我已经确认它也适用于生产环境。了解 PayPal 收取的费用 很重要。


有没有办法让 Paypal 测试环境 (developer.paypal.com) 响应 PayPal 收取的费用?既不是销售也不是Sale 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();

响应 - 批准(full response)

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
                                                                )

                                                        )

                                                )

                                        )

文档 - PayPal 收取的费用

(下图) - 细节对象 from the documentation显示 PayPal 收取的 (string) 费用 - 它似乎没有在测试环境中暴露自己。

enter image description here

最佳答案

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

REST API 允许您执行诸如管理信用卡保管库之类的操作。这样您就可以存储卡并使用 REST 为卡充值。但是当我充值时,我会返回 NVP API GetTransactionDetails 响应,其中包括 Paypal 收取的费用 以及您需要了解的有关通过 REST 收取的交易的所有其他信息。这可能是一个 hack,涉及额外的 API 调用,但它确实运行良好。

关于Paypal REST API 错误 - PayPal 收取的费用未在响应中设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16347904/

相关文章:

javascript - 当您使用新的 Checkout 按钮时,PayPal 如何禁用浏览器的工具栏访问

php - 如何以这种特定方式将 PayPal 与 PHP 系统集成?

通过静默 url 进行的 Paypal 定期订阅给出无效响应?

paypal - paypal 开发者账户必须要有真实的银行账户吗?

php - 电子邮件不使用sandox ipn发送给 Paypal 中的买家

php - 如何在服务器端执行 future 付款(Paypal REST IOS API)(使用 Php curl)

api - Paypal Sandbox- 进入现场生产环境

paypal - 如何为我的 PayPal 沙盒账户启用网上银行支付方式?

用于获取客户数据的 PayPal API 端点

asp.net-mvc - PayPal 沙盒 - CreateBillingAgreement 调用返回内部错误 (10001)