Paypal 立即购买按钮如何在 ipn 侦听器中捕获价格/选项下拉数据

Posted

技术标签:

【中文标题】Paypal 立即购买按钮如何在 ipn 侦听器中捕获价格/选项下拉数据【英文标题】:Paypal buy now button how to capture price/option dropdown data in ipn listener 【发布时间】:2012-12-10 15:26:03 【问题描述】:

我有一个带有下拉菜单的 paypal pay now 按钮,用户可以在其中选择 2 个不同的事件。

如何捕捉下拉列表中选择的内容?我当前的表单不起作用。

<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="TFMANJVCMFZX4">
<input type="hidden" name="option_name1" value="Dinner/Show">
<input type="hidden" name="notify_url" value="http://mysite.com/ipn">
<label>Dinner/Show</label>
<select name="os0" id="paypalDropdown">
    <option value="Meal + Event">Meal + Event $15.00 USD</option>
    <option value="Event Only">Event Only $10.00 USD</option>
</select>
<input type="hidden" name="currency_code" value="USD">
<input id="paypalButton" type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" >
<img  border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif"  >

更具体地说,我正在使用这个库 - https://github.com/orderly/codeigniter-paypal-ipn,我正在记录变量,所有 option_nameoption_selection 变量都是空白的

【问题讨论】:

【参考方案1】:

onchange="myFunction(this)"

这是整个对象,在javascript中可以这样访问

function myFunction(obj) 
    var dropDownValue = obj.value;

编辑: 糟糕,只需阅读您的代码。 可以像这样在 php 中访问选择值 :)

    echo $_POST['os0']; // the select fields name

【讨论】:

用重要信息更新了我的问题。【参考方案2】:

如果您有 IPN,那么 PayPal 将调用您为这一刻准备的 URL 并在付款后,paypal 将发送您需要的所有数据。从地址和货币到他购买的物品的名称和价格。所以你可以在那个时候得到它们。 否则你必须编写一个 javascript 来捕获选定的值并通过 ajax 将其发送到其他地方......

【讨论】:

【参考方案3】:

您似乎正在尝试使用托管的 paypal 按钮,但尚未在您的个人资料中定义任何配置。

您可能会收到此错误消息:“由于卖家网站出现问题,PayPal 无法处理此交易”

没有必要在上面的表格中捕获值,因为这是通过在 paypal 帐户上的配置来处理的,如下所示:

    登录您的贝宝帐户 转到个人资料-> 销售偏好-> 我保存的按钮 编辑示例按钮(添加包含价格和选项的下拉菜单,例如餐点 + 活动 15.00 美元、notify_url 等) 保存更改 选择自动生成的表单代码,无需任何更改即可使用

【讨论】:

我没有收到您所说的错误消息。事务工作得很好,但我没有在我的数据库日志中收到 option_name 和 option_selection0。数据库日志是我在问题中发布的库的一部分。 好的。这意味着您的表单工作正常。你验证过IPN吗?您可以查看历史记录以检查它是否具有以下内容:option_name1=Dinner/Show option_selection1=Meal + Event。另外,您使用的是活动记录还是教义。如果是学说,那么实施似乎不支持这些领域 我只是使用标准的活动记录,而不是教条。【参考方案4】:

要使用字段 os0,您还必须使用字段 on0

地点:

on0 = 第一个选项字段名称。如果省略,则不会将任何变量传回给您。

.

-祝你好运。

【讨论】:

感谢您指出这一点,但实际上我曾经使用过 on0 字段,但它仍然无法正常工作。 所以这意味着你落后了 2 步...现在请添加它,我们可以尝试解决问题。 另外,在 IPN 成功后,通过电子邮件将 var_dump() 数据发送给自己,您将知道收到了什么,没有收到什么。

以上是关于Paypal 立即购买按钮如何在 ipn 侦听器中捕获价格/选项下拉数据的主要内容,如果未能解决你的问题,请参考以下文章

没有 IPN 的 Paypal 集成

如何更好地为第三方卖家集成 Paypal“立即购买”按钮?

使用非托管 PayPal 按钮时如何使用 IPN 验证 PayPal 数据

Paypal 自适应支付 IPN 回调:如何返回完整未更改的 ipn 消息

C# 中的 Paypal IPN 侦听器问题

在 PayPal Sandbox 中没有收到对侦听器的 IPN 响应