【问题标题】:PayPal Donation CodeIgniter贝宝捐赠代码点火器
【发布时间】:2020-04-27 15:01:01
【问题描述】:

我在 codeigniter 上有 paypal 方法,我看到有人用 Inspect 修改了价格!

问题是如果我将使用 Inspect(Chrome、FF.etc.)进行编辑并按下购买,自动从该 html 页面获取信息!

希望你明白我的意思。

view.donate.php


            <?php 
                if(load::get('errors') != false){
                    foreach(load::get('errors') as $errors){
                        echo '<div class="notification-box notification-box-error">'.$errors.'</div>';
                    }
                }
                if(load::get('paypal') == false || load::get('paypal') == 0){
                    echo '<div class="notification-box notification-box-error">This donation method is disabled.</div>';
                }
                else{
                    foreach(load::get('paypal_packages') as $packages){
                        echo '<div style="margin-top: 10px;    padding: 10px;        background: rgb(11, 29, 39);   
                        box-shadow: 0 0 4px rgba(0,0,0,.6), 0 1px 1px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,255,255,.015), 
                        inset 0 1px 0 rgba(255,255,255,.05);                    z-index: 1;">
                                <div style="padding: 3px;float:left;width: 250px;"><h2>'.$packages['package'].'</h2></div>
                                <div style="width: 99px;float:left;"><span id="reward_'.$packages['id'].'">'.$packages['reward'].'</span> Mall Points (<span id="price_'.$packages['id'].'">'.number_format($packages['price'], 0, '.', ',').'</span> <span id="currency_'.$packages['id'].'">'.$packages['currency'].'</span>)</div>
                                <div style="float:right;"><button id="buy_'.$packages['id'].'" class="paypal_button" style="margin-top: 8px;" value="buy_'.$packages['id'].'">Buy Now</button></div>
                                <div style="clear: both;"></div>
                            </div>';
                    }   
                }
            ?>

<?php
load::view(load::get('tmp').DS.'footer');   
?>

我的 javascript 代码看起来像这样

$('button[id^="buy_"]').click(function(){
        var div_data = $(this).attr('id').split('_'),
            reward = $('#reward_'+div_data[1]).text(),
            price = $('#price_'+div_data[1]).text(),
            currency = $('#currency_'+div_data[1]).text();
        submit_paypal(div_data[1], reward, price, currency);
    });
});

function submit_paypal(id, reward, price, currency){
    $.ajax({
        url: base_url+"ajax/paypal", 
        data: {process_paypal: id, reward: reward, price: price, currency: currency},
        success: function(data){ 
            if(data.error){
                alert(data.error);
            } 
            else{
                var form = '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">';
                    form += '<input type="hidden" name="cmd" value="_xclick" />';
                    form += '<input type="hidden" name="business" value="'+data.email+'" />';
                    form += '<input type="hidden" name="item_name" value="Donate for '+$('title').text()+'" />';
                    form += '<input type="hidden" name="item_number" value="'+data.item+'" />';
                    form += '<input type="hidden" name="currency_code" value="'+currency+'" />';
                    form += '<input type="hidden" name="amount" value="'+price+'" />';
                    form += '<input type="hidden" name="no_shipping" value="1" />';
                    form += '<input type="hidden" name="return" value="'+base_url+'" />';
                    form += '<input type="hidden" name="cancel_return" value="'+base_url+'" />';
                    form += '<input type="hidden" name="notify_url" value="'+base_url+'payment/paypal" />';
                    form += '<input type="hidden" name="custom" value="'+data.user+'" />';
                    form += '<input type="hidden" name="no_note" value="1" />';
                    form += '<input type="hidden" name="tax" value="0.00" />';
                    form += '<input class="button" type="submit" value="Donate">';
                    form += '</form>';
                $(form).appendTo('body').submit();
            }
        }
    });
}

【问题讨论】:

    标签: php codeigniter paypal


    【解决方案1】:

    为了解决你需要做一些服务器端验证....

    假设您的表单价格是 $10,您可以先将该表单提交到某个 php 文件,然后在该 php 文件中验证价格,然后将该发布请求转发到 https://www.paypal.com/cgi-bin/webscr。 ..

    希望对你有帮助

    【讨论】:

    • 对于多个包,您可以唯一传递包,然后在 php 文件中进行验证。
    • 我如何验证一个包?
    • 只是一个 PHP 代码,它将检查来自 HTML 页面的价格是否相同且未更改...例如 $htmlPrice = $_POST['price']; if($htmlPrice == 10){ // submit to paypal }
    猜你喜欢
    • 2013-02-02
    • 1970-01-01
    • 2015-09-07
    • 2011-08-30
    • 2016-11-20
    • 2018-05-07
    • 2011-09-16
    • 2013-12-22
    • 2014-02-28
    相关资源
    最近更新 更多