gpt4 book ai didi

php - 带有 'min_amount' 和 'set_customer_limit' 的 PayPal 按钮

转载 作者:IT王子 更新时间:2023-10-29 01:08:19 24 4
gpt4 key购买 nike

我创建了一个带有文本输入的非托管 PayPal 按钮,让用户可以定义要支付的金额。这是一个订阅按钮。

现在的问题是必须有最低支付金额,比如说 101(CHF - 瑞士法郎)。

根据 PayPal HTML-Variables 的文档我可以在我的表单的隐藏输入中添加以下变量以使其正常工作。

  • set_customer_limit 值为 max_limit_own
  • min_amount 值为 101

set_customer_limit 有效,但 min_amount 无效。接受任何金额。

我在技术支持上开了工单,到现在还没有回复。

这是我的表格:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<!-- //... -->
<input type="hidden" name="cancel_return" value="mydomain.com/cancel">
<input type="hidden" name="return" value="mydomain.com/paid">
<input type="hidden" name="token" value="<?php echo $token; ?>">
<input type="hidden" name="src" value="1">
<input type="text" name="a3" value="101.00">
<input type="hidden" name="p3" value="1">
<input type="hidden" name="t3" value="Y">
<input type="hidden" name="currency_code" value="CHF">
<input type="hidden" name="bn" value="PP-SubscriptionsBF:btn_subscribeCC_LG.gif:NonHostedGuest">
<!-- the concerned inputs -->
<input type="hidden" name="set_customer_limit" value="max_limit_own">
<input type="hidden" name="min_amount" value="101">
<!-- ---- -->
<input type="image" src="https://www.paypalobjects.com/de_DE/CH/i/btn/btn_subscribeCC_LG.gif" border="0" name="submit" alt="Jetzt einfach, schnell und sicher online bezahlen – mit PayPal.">
<img alt="" border="0" src="https://www.paypalobjects.com/de_DE/i/scr/pixel.gif" width="1" height="1">
</form>

至于目前,我只是用 JavaScript 验证了最小数量,这并不是很安全...


编辑

作为一个想法,我可以实现另一种形式(通过 AJAX、onchange、onkeyup 等提交),它设置用户在 PayPal 表单之前给出的最小金额,然后将其放入 PayPal 输入(设置再次隐藏):

<input type="hidden" name="a3" value="<?php echo $_POST['pre_min_amount'] ?>">

这样我就可以在提交 PayPal 表格之前使用 PhP 验证最低金额。但这对我来说似乎不是一个干净的方式。真的很高兴有人能给我提示!

最佳答案

PayPal技术支持的回答是:不可以!

(回答日期是 05/02/2015)希望这在未来成为可能。如果是,请发布您的答案!


真的建议使用 PayPal API对于这种事情(包括创建开发者帐户,通过文档等)。

所以这个“解决方案”是一个快速而肮脏的解决方法


首先,在页面上添加一个小表单(我现在称之为 min_amount -form)(告诉用户,他必须先设置金额) :

<form id="min_amount" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<input type="text" id="pre_min_amount" name="pre_min_amount" value="101">
<input type="submit" value="Set min. Amount">
</form>

然后,使用 NowDoc 将整个 PayPal 表单添加到一个 PHP 变量中并将 min_amount-form 中的发布值添加到 a3 输入:

$min_amount = 0;
$payPalForm = <<<SOME
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<!-- //... -->
<input type="hidden" name="a3" value="$min_amount">
</form>
SOME;

提交后,检查最低金额是否为真,然后只显示PayPal-form:

if (isset($_POST['pre_min_amount']) && is_numeric($_POST['pre_min_amount']) && floatval($_POST['pre_min_amount']) >= 101) {
$min_amount = htmlspecialchars($_POST['pre_min_amount']);
echo $payPalForm;
}

正如我所说,它既快速又肮脏(没有更多时间用于此项目),但您确保在服务器端验证最小数量,而不仅仅是使用 Javascript。您也可以使用 AJAX 调用提交 min_amount-form,但是此调用的返回是在客户端,这也不是很安全。 (当然你也可以)

顺便说一句,我一点也不为这个解决方案感到骄傲,但有时,程序员的生活很艰难,我相信你们所有的编码人员都必须以某种方式在某个地方做一些 q&d 代码 ;-).. .


更新: 08/05/2015

一切都取决于相关帐户注册的国家/地区。仅在美国和加拿大由 PayPal 保证的完整服务

关于php - 带有 'min_amount' 和 'set_customer_limit' 的 PayPal 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30025801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com