Paypal IPN - 返回时自定义为空

Posted

技术标签:

【中文标题】Paypal IPN - 返回时自定义为空【英文标题】:Paypal IPN - custom Is Empty when Returned 【发布时间】:2014-01-09 20:57:19 【问题描述】:

提前感谢您为我提供的任何帮助。

我正在使用 ASP.NET C# MVC 4 制作一个网站,用户将在该网站上支付某种游戏内货币以添加到他们的帐户中,并且我使用 Paypal 作为我的用户的桥梁购买这种货币。我在使用 PayPal 的沙盒测试环境创建的网站上添加了一个“立即购买”按钮。这是表单的 html 代码:

        <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top" id="PayPal">
            <input type="hidden" name="custom" value="@SessionManager.CurrentUser.UserID">
            <input type="hidden" name="cmd" value="_s-xclick">
            <input type="hidden" name="hosted_button_id" value="MHV7ZLEXJC6YJ">
            <input type="hidden" name="on0" value="CurrencyAmounts">
            <label for="os0">How Much?</label>
            <select name="os0">
                <option value="One Thousand">One Month $3.00 USD</option>
                <option value="Six Thousand">Six Months $15.00 USD</option>
                <option value="Ten Thousand">One Year $25.00 USD</option>
            </select>
            <br class="clearfix" />
            <br />
            <input type="hidden" name="currency_code" value="USD">
            <input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" >
            <img  border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif"  >
        </form>

现在,表单确实发送了,我可以登录到我的沙盒用户购买它,并且交易确认。我的 IPN 侦听器正在记录我从 IPN 获得的所有数据,但是,每次自定义都没有任何价值。我做错了什么?

【问题讨论】:

如果您在提交前检查页面(使用开发工具),您是否在 item_number 表单元素中看到任何值?这将告诉您它是否只是没有从 Session 中填写,或者它是否在 POST 之后丢失。 【参考方案1】:

您使用的是托管按钮,因此在创建按钮时必须设置项目编号和其他详细信息。如果您想像这样将详细信息构建到您的 HTML 代码中,您需要禁用按钮创建向导中的“在 PayPal 上保存按钮”选项,但当然这会使您的代码容易受到人们的干扰,因此您将希望确保您在收到订单时检查价格和所有内容是否匹配。

【讨论】:

我现在尝试这样做,因为我使用的是自定义而不是 item_number,但它没有帮助...... 让我得到一份您现在正在使用的按钮代码的副本,看看能否重现您的问题。我一直在 IPN 中使用自定义,所以我知道它在沙盒和生产服务器中都有效。

以上是关于Paypal IPN - 返回时自定义为空的主要内容,如果未能解决你的问题,请参考以下文章

PayPal IPN 不返回自定义字段

从 cURL 支付向 paypal IPN 添加自定义变量

Paypal 订阅 IPN 自定义变量

PayPal IPN 自定义表单数据

PayPal IPN 错误和自定义端口 IPN URL

缺少 PAYPAL IPN 自定义字段