PHP Paypal express 10413

标签 php paypal

我在我的网站上使用 Paypal Express Checkout 时收到此错误:

SetExpressCheckout API call failed. Detailed Error Message: The totals of the cart item amounts do not match order amounts.Short Error Message: Transaction refused because of an invalid argument. See additional error messages for details.Error Code: 10413Error Severity Code: Error

当我输入数量 1 时,一切正常,但当我输入 2 或更多时,出现错误。

我正在使用 SMARTY 模板。

            <form class="pull-right" action="../Checkout/paypal_ec_redirect.php" method="POST">
            <input type="hidden" name="L_PAYMENTREQUEST_0_NAME0" value="{$product_naam}"></input>
                <input type="hidden" name="L_PAYMENTREQUEST_0_AMT0" value="{$product_productprijs}"></input>
                <input type="hidden" name="L_PAYMENTREQUEST_0_QTY0" value="{$product_aantal}"></input>

                <input type="hidden" name="PAYMENTREQUEST_0_ITEMAMT" value="{$product_subtotaal}"></input>
                <input type="hidden" name="PAYMENTREQUEST_0_TAXAMT" value="{$product_btw}"></input>
                <input type="hidden" name="PAYMENTREQUEST_0_AMT" value="{$product_totaalprijs}"></input>
                <input type="hidden" name="currencyCodeType" value="EUR"></input>
                <input type="hidden" name="paymentType" value="Sale"></input>

                <input type="image" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" alt="Check out with PayPal"></input>
            </form>
        </div>
    </div>
</div>

这是 PHP:

foreach ($getproduct as $row) {
    $productaantal = $aantalbesteld;
    $productnaam = $row['naam'];
    $productprijs = $row['prijs'];
    $btwtarief = $row['btw_tarief'];
    $btwbedrag = ($productprijs*$aantalbesteld)/100*$btwtarief;
    $subtotaal = ($productprijs*$aantalbesteld)-$btwbedrag;
    $totaalprijs = $productprijs*$aantalbesteld;
}


//Product
$smarty->assign('product_naam', $productnaam);
$smarty->assign('product_aantal', $productaantal);
$smarty->assign('product_prijs', money_format('%.2n', $productprijs));
$smarty->assign('product_subtotaal', money_format('%.2n', $subtotaal));
$smarty->assign('product_btw', money_format('%.2n', $btwbedrag));
$smarty->assign('product_totaalprijs', money_format('%.2n', $totaalprijs));
$smarty->assign('product_bestelknop', 'Bestellen');

编辑:即使这样也行不通:

            <form class="pull-right" action="../Checkout/paypal_ec_redirect.php" method="POST">
                <input type="hidden" name="L_PAYMENTREQUEST_0_NAME0" value="{$product_naam}"></input>
                <input type="hidden" name="L_PAYMENTREQUEST_0_AMT0" value="5.00"></input>
                <input type="hidden" name="L_PAYMENTREQUEST_0_QTY0" value="2"></input>

                <input type="hidden" name="PAYMENTREQUEST_0_ITEMAMT" value="10.00"></input>
                <input type="hidden" name="PAYMENTREQUEST_0_TAXAMT" value="2.10"></input>
                <input type="hidden" name="PAYMENTREQUEST_0_AMT" value="12.10"></input>
                <input type="hidden" name="currencyCodeType" value="EUR"></input>
                <input type="hidden" name="paymentType" value="Sale"></input>

                <input type="image" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" alt="Check out with PayPal"></input>
            </form>

最佳答案

它说当他们将数量和金额相乘时,它加起来不等于您指定的总金额

$btwbedrag = ($productprijs*$aantalbesteld)/100*$btwtarief;
$subtotaal = ($productprijs*$aantalbesteld)-$btwbedrag;
$totaalprijs = $productprijs*$aantalbesteld;

增值税的计算方法是用总价的 1% 乘以增值税税率。这假设您的产品金额不含增值税。

然后在下一行中,您从 $subtotaal 中删除增值税,为什么?它最初没有被包括在内。或者,如果是,那么您应该除以 121 而不是 100。

$totaalprijs 似乎是在假设已经包含增值税的情况下计算的。

您是否在页面源代码中检查了隐藏字段的值?

关于PHP Paypal express 10413,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29364419/

相关文章:

codeigniter - 由于商家配置 Paypal Sandbox 无效,无法处理此交易

paypal - 无法创建 paypal rest 应用程序,缺少沙盒开发者帐户

ruby-on-rails - 如何从 Paypal 交易中获取国家和州?

php - Codeigniter - URI 不允许的字符

javascript - 为什么我在 javascript 中仍然遇到对象对象错误?

php - YouTube API结果到Mysql

c# - ASP.NET MVC C# PayPal Rest API - UNAUTHORIZED_PAYMENT

node.js - 如何在 Braintree MarketPlace 中从子商户账户退款?

php - 将发布日期与 Codeigniter 中的时间戳进行比较

javascript 内的 php - 未找到内容