0

并感谢您的社区提供的大力帮助。

这是一个关于Paypal的问题。下面的代码创建了一个立即购买的非托管按钮。我希望能够在用户按下“立即购买”按钮时运行我的 geoTestArray.php 代码,目前仅包含在内,而不是当按钮显示在页面上时。

这可能吗?

提前致谢,

<?php
include ('geoTestArray.php');
echo "<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">
<input type=\"hidden\" name=\"business\" value=\"shop@mysite.com\">
<input type=\"hidden\" name=\"cmd\" value=\"$cmd\">
<input type=\"hidden\" name=\"amount\" value=\"$price\">
<input type=\"hidden\" name=\"shipping\" value=\"$shipping\">
<input type=\"hidden\" name=\"currency_code\" value=\"$currency\">
<input type=\"hidden\" name=\"shipto\" value=\"$shipto\">
<input type=\"hidden\" name=\"item_name\" value=\"$title\">";
if ($cmd == 'cart') {
echo "<input type=\"hidden\" name=\"add\" value=\"1\">";
}
include('./quantities2.php');
echo "<input type=\"hidden\" name=\"lc\" value=\"US\">
<input class=\"submit\" type=\"image\" src=\"$button\" border=\"0\" name=\"submit\" alt=\"$altaction\">
<img alt=\"\" border=\"0\" src=\"https://www.paypal.com/en_US/i/scr/pixel.gif\" width=\"1\" height=\"1\">
</form>";
?>
4

2 回答 2

0

感谢大家的评论和解决方案选项。我最终选择修改我页面上的 onSubmit javascript,添加:

function InterceptForm(formObj) {
  var newshipto = httpGet('geoTestArray.php');
  formObj.shipto.value =  newshipto;
}

上面的代码使用了在另一个 stackoverflow 帖子中发布的 httpGet() 函数:

JavaScript 中的 HTTP GET 请求?

完成拼图:

下面的代码在我页面的 html 中

<script language="javascript">
// During onLoad, loop through all forms and for each form object do something
function InterceptForm(formobj) {
    formobj.onsubmit = function ff() {
        interceptform(formobj);
    };
}
</script>

下面的代码收集页面上的所有表单并在每个表单上运行上述 javascript(注意:您可能希望为表单命名,以便仅在相关表单上而不是在所有表单上运行脚本):

<script language="javascript">
function GetForms() {
var formsCollection = document.getElementsByTagName("form");
for(var i=0;i<formsCollection.length;i++)
{
   if (formsCollection[i].name != "seecart")
   {
   InterceptForm(formsCollection[i]);
   }
}
        return true;
}
</script>

下面的代码是 onLoad 函数:

<script language="javascript">
function onLoadFunction () {
  GetForms();
  return true;
}
</script>

干杯,

于 2013-10-13T10:40:34.657 回答
0

您只能显示具有一个输入的表单,例如 item_id。
提交此表单后,您搜索项目详细信息,在后端执行您的 geoTestArray.php,然后您可以使用重定向您的用户到贝宝header("location: $query");

我会这样做:

<?php
if( isset($_POST['do_action']) && $_POST['do_action'] != "" ) {
    //check for non-empty item_id field
    //run your geoTestArray.php script
    //get item details from database and build your paypal query
    $query = "https://www.paypal.com/cgi-bin/webscr&cmd=_xclick";  // add rest of paypal request fields separated by &
    header( "Location: $query" );
}
?>
<form action='' method='post'>
    <input type='hidden' name='item_id' value'your_item_id'>
    <input type='submit' name='do_action' value='Buy'>
<form>

希望我对你有所帮助!:d

于 2013-10-12T14:35:43.713 回答