按下Paypal立即购买按钮运行自己的PHP脚本

时间:2013-10-12 14:00:41

标签: php paypal

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

这是关于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>";
?>

2 个答案:

答案 0 :(得分:0)

您只能显示包含一个输入的表单,例如item_id 提交此表单后,您搜索项目详细信息,在后端执行geoTestArray.php,之后您可以使用header("location: $query");

将用户重定向到paypal

这是我将如何做的:

<?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

答案 1 :(得分:0)

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

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

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

HTTP GET request in JavaScript?

完成拼图:

以下代码位于我页面的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>

干杯,