更新:问题适用于测试和实时 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) 费用
- 它似乎没有在测试环境中暴露自己。
最佳答案
使用 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/