如何确保从贝宝服务器调用贝宝notify_url?

时间:2019-05-10 23:19:14

标签: php codeigniter security paypal paypal-sandbox

我正在使用Paypal定期付款订阅表格,并使用沙盒帐户进行测试

这是我的表格:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
    <input type="hidden" name="cmd" value="_xclick-subscriptions">
    <input type="hidden" name="business" value="testacc@email.com">
    <input type="hidden" name="lc" value="US">
    <input type="hidden" name="item_name" value="Standard Pack">
    <input type="hidden" id="item_number" name="item_number" value="1233434-23213">
    <input type="hidden" name="no_note" value="1">
    <input type="hidden" name="user_id" value="13692">
    <input type="hidden" id="package_id" name="package_id" value="<?php echo $package_type; ?>">
    <input type="hidden" name="a1" value="0">
    <input type="hidden" name="p1" value="1">
    <input type="hidden" id="t1" name="t1" value="M">
    <input type="hidden" id="a3" name="a3" value="10">
    <input type="hidden" name="p3" value="1">
    <input type="hidden" name="t3" value="M">
    <input type="hidden" name="src" value="1">
    <input type="hidden" name="currency_code" value="USD">
    <input type="hidden" name="no_shipping" value="1">
    <input name="return" type="hidden" value="<?php echo base_url();?>package/new_payment_success" />
    <input name="notify_url" type="hidden" value="<?php echo base_url();?>package/new_payment_notify" /> 
    <input name="cancel_return" type="hidden" value="<?php echo base_url();?>package/new_payment_cancel" />

    <div class="paypal-btn">
        <input type="image" src="pay-with-paypal.png" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" style='width: 125px'>
    </div>
    <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

,它工作正常,并向notify_url url发送成功信息 现在出于安全目的,我从HTTP_USER_AGENT变量中检查了$_SERVER,但是也可以对其进行修改。

那么如何在更新数据库之前确保横切成功完成?

1 个答案:

答案 0 :(得分:0)

我认为您可以通过附加cmd = _notify-validate并将其发送到PayPal来验证整个POST内容。他们将通过“已验证”或“未验证”答复回答您。

请检查下面的链接以获取更多信息:

https://developer.paypal.com/docs/classic/ipn/gs_IPN/