获取表单张贴到php文件,发送电子邮件,然后重定向到正确的贝宝选项购买页面


Getting form to post to php file that sends email, then redirects to correct paypal option purchase page

我有一个收集用户信息以注册高尔夫锦标赛的表单。目前,表单完成后,它发布到php文件,向我发送一个电子邮件与表单内容,然后重定向用户到第二个页面,在那里他们选择他们想要购买的注册包,并被重定向到一个paypal页面完成购买。

我想做的是结合这两个表单,以便用户填写他的信息,选择他的注册包,点击提交按钮,php文件向我发送电子邮件,然后重定向到他们选择的正确的paypal支付页面。

如果可能的话,我想这样做没有javascript,但我不知道如何从表单拉正确的api调用到php文件,然后重定向到正确的paypal支付页面,这取决于所选择的选项。

当前格式:

<form name="golfsignup" method="Post" action="golfformsignup.php" onsubmit="return validate();">
                <table>
                <tbody><tr><td>Sponsor Name</td><td><input type="edit" name="Sponsor_Name__1" value="" size="20"></td></tr>
                <tr><td>Street Address</td><td><input type="edit" name="Street_Address__2" value="" size="30"></td></tr>
                <tr class="city partial"><td>City</td><td><input type="edit" name="City__3" value="" size="30"></td></tr>
                <tr class="state partial"><td>State</td><td><input type="edit" name="State__4" value="" size="30"></td></tr>
                <tr class="zip partial"><td>Zip Code (xxxxx)</td><td><input type="edit" name="Zip_Code_xxxxx__5" value="" size="5"></td></tr>
                <tr><td>Phone Number (No Spaces or Dashes)</td><td><input type="edit" name="Phone_Number_No_Spaces_or_Dashes__6" value="" size="13"></td></tr>
                <tr><td>Team Name</td><td><input type="edit" name="Team_Name__7" value="" size="30"></td></tr>
                <tr><td colspan="2" valign="top">Team Player Names<br><textarea name="Team_Player_Names__8" cols="30" size="4"></textarea></td></tr>
                <tr><td>Name on Credit Card</td><td><input type="edit" name="Name_on_Credit_Card__9" value="" size="50"></td></tr>
                <table>
                    <tr><td><input type="hidden" name="on0" value="Golf Tournament">Please proceed to PayPal to complete transaction.</td></tr><tr><td><select id="selectValue" name="os0">
                        <option value="Team">Team $900.00 USD</option>
                        <option value="Individual">Individual $225.00 USD</option>
                    </select> </td></tr>
                </table>
                <input type="hidden" name="cmd__10" value="_s-xclick">
                <input type="hidden" name="hosted_button_id__11" value="5820LFRI32195">
                <tr><td colspan="2">
                    <span id="bull"></span> <!-- target for nav with js disabled -->
                    <input id="golfButton" title="Register via PayPal" class="button" type="submit" name="Submit" value="Register Team">
                    </td></tr></tbody></table>
            </form>
PHP脚本
<?php session_start();
$youremail = 'jdhancock@gmail.com';
$fromsubject = 'Golf Signup';
$fname = $_POST['Sponsor_Name__1'];
$phone = $_POST['Phone_Number_No_Spaces_or_Dashes__6'];
$subject = $_POST['Team_Name__7'];
$message = $_POST['Team_Player_Names__8'];
$to = $youremail;
$mailsubject = 'Message received from'.$fromsubject.' Golf Registration Page';
$body = $fromsubject.';
The person that contacted you is '.$fname.'
Phone Number: '.$phone.'
Subject: '.$subject.'
Team Member Names:
'.$message.'
|---------END MESSAGE----------|';

mail($to, $subject, $body);
?>

这应该是您的开始。您可以在mail()函数之后添加以下代码。当按下按钮时,发送邮件,从表单数据构建支付查询字符串,方法header()将用户直接重定向到paypal站点。

它包含一些未设置的变量:所以请用传入的$_POST数据替换像$first_name这样的变量。它并不是开箱即用的——它只是一个指向正确方向的指针。

重要的是要根据下拉菜单更改价格和商品名称,参见if-condition。

// build a new PayPal GET query string
$query = array();
$query['notify_url'] = 'http://yourPaymentNotifyPage.com/';
$query['cmd'] = '_cart';
$query['upload'] = '1';
$query['business'] = 'your@business.com';
$query['address_override'] = '1';
$query['first_name'] = $first_name; 
$query['last_name'] = $last_name;
$query['email'] = $email;
$query['address1'] = $ship_to_address;
$query['city'] = $ship_to_city;
$query['state'] = $ship_to_state;
$query['zip'] = $ship_to_zip;
// now: use the value from your dropdown (select os0)
// to set different price and name for this payment
if($_POST['os0'] === 'Team') {
   $query['item_name_1'] = 'Team Golf';
   $query['quantity_1'] = 1;
   $query['amount_1'] = '900';
}
if($_POST['os0'] === 'Individual') {
   $query['item_name_1'] = 'Individual Golf';
   $query['quantity_1'] = 1;
   $query['amount_1'] = '225';
}
// Prepare query string
$query_string = http_build_query($query);
// redirect
header('Location: https://www.paypal.com/cgi-bin/webscr?' . $query_string);

测试:

  • https://www.paypal.com/cgi-bin/webscr?cmd=p/sell/ipn-test-outside
  • https://www.sandbox.paypal.com/cgi-bin/webscr (URL头重定向)