【问题标题】:Paypal IPN process more than one custom variablePaypal IPN 处理多个自定义变量
【发布时间】:2023-03-12 10:20:02
【问题描述】:

所以我已经在我的网站中实施了 paypal IPN,我正处于 工作过程。现在我想在 pp 表单中使用超过 1 个自定义变量 目前我只用这个

<input type="hidden" name="custom" value="<?php echo $user_id; ?>">

所以我知道名称为“custom”的变量是允许的。我想知道是否 我可以传递更多变量,这样我就可以根据他们的标准过滤付款。 因此,如果运费超过 0.00 美元,我会像这样设置一个变量“shipping_cost”:

<input type="hidden" name="shipping_cost" value="<?php echo $cost; ?>">

或用于其他目的。这是允许的吗?或者贝宝有一个已经定义的允许列表 我们可以使用的变量?我真的很想解决这个问题,因为并不总是一种类型 我们可以处理的付款... 谢谢各位。

【问题讨论】:

    标签: paypal paypal-ipn


    【解决方案1】:

    这样你可以传递更多的参数

    <input type="hidden" name="custom" value="variable1=234&var2=summa&etc=xyz"/>
    

    在您的贝宝表格上使用上述表格。

    并通过以下代码进行处理。

     parse_str($_POST['custom'],$_MYVAR);
    
    echo $_MYVAR['variable1'];
    echo $_MYVAR['var2'];
    echo $_MYVAR['etc'];
    

    我希望这个对你有所帮助。

    【讨论】:

    • 您还可以将自定义数据作为 JSON 发送(使用 json_encode($data) 从 PHP 数据类型转换),然后使用 json_decode($_POST['custom']) 检索它。
    • 这是一个很好的解决方案。谢谢+1
    • @QuinnComendant - 如果您修改答案并准确显示您的建议,作为此答案的第二部分,那就太好了。
    【解决方案2】:

    我(以及我想象的许多其他人)也面临这个问题,我想我会分享一些我遇到的解决方案。

    This one 在 PayPal 社区提出,建议使用选项变量,这似乎提供了键/值对实现来促进多达 99 个变量(据记录,我实际上没有尝试过)。

    最普遍接受的解决方案(我也赞成)是将您的所有数据添加到数据库记录中,然后使用自定义 var 来存储您的记录 ID,这显然可以在以后使用(例如通过 IPN)来检索你的数据。

    【讨论】:

      【解决方案3】:

      PayPal 定义了您可以使用哪些字段here。任何其他字段都将被忽略。

      定义了一个“运费”字段,PayPal 将使用该字段的值收取额外的运费。您还可以从 IPN 或 PDT 数据中获取该值。

      如果您需要传递其他值,您可以考虑在“自定义”字段中传递以查询字符串样式 (var1=value1&var2=value2...) 格式的字符串。请注意,此字段中允许的最大字符数为 256。然后您将在收到 IPN 或 PDT 响应时对其进行解析。

      如果自定义字段的大小太有限,那么您可以尝试我在另一个 answer here 中描述的内容。

      【讨论】:

      • 真的很失望。我不得不使用其他允许的 paypal ip 变量来实现我的意图。我使用了产品名称和描述。不过,谢谢您的回答。
      • 您确定不能只使用“custom2”吗?我正在浏览一些遗留代码,我看到一个表单,其中包含“custom”和“custom2”作为发送到 Paypal 的字段。
      猜你喜欢
      • 2016-03-05
      • 2014-05-17
      • 2012-02-10
      • 2016-03-26
      • 2012-06-30
      • 2012-01-22
      • 2012-08-17
      相关资源
      最近更新 更多