2017-02-11 4 views
0

У меня есть куча данных, отправляемых на шлюз paypal через скрытые поля ввода. Тем не менее, я хотел бы проанализировать данные из формы в мою базу данных, когда пользователь отправляется в платежную систему PayPal. У меня есть следующие блоки PHP, чтобы отбросить кнопку PayPal, но у меня возникли проблемы с вводом поля ввода type = 'submit' для анализа данных формы. Как только пользователь нажимает кнопку PAyPal, данные формы не отправляются в мою базу данных. Как я могу отправить данные формы в мою базу данных, как только пользователь нажмет кнопку PayPal?Данные формы анализа на кнопке PayPal нажмите?

<?php 
 
////////////////////////////////////////////////////////////////////////////// 
 
//  Section 5 (render the cart for the user to view on the page)  // 
 
////////////////////////////////////////////////////////////////////////////// 
 
$cartOutput = ""; 
 
$cartTotal = ""; 
 
$pp_checkout_btn = ''; 
 
$product_id_array = ''; 
 
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1){ 
 
\t $cartOutput = "<h2 align='center'>Your shopping cart is empty</h2>"; 
 
} else{ 
 
\t //Start PayPal Checkout Button 
 
\t $pp_checkout_btn .= '<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
 
\t <input type="hidden" name="cmd" value="_cart"> 
 
\t <input type="hidden" name="upload" value="1"> 
 
\t <input type="hidden" name="business" value="[email protected]">'; 
 
\t //Start the For Each loop 
 
\t $i = 0; 
 
\t foreach($_SESSION["cart_array"] as $each_item){ 
 
\t \t $item_id = $each_item['item_id']; 
 
\t \t $sql = mysql_query("SELECT * FROM products WHERE id='$item_id' LIMIT 1"); 
 
\t \t while ($row = mysql_fetch_array($sql)){ 
 
\t \t \t $product_name = $row["product_name"]; 
 
\t \t \t $price = $row["price"]; 
 
\t \t \t $details = $row["details"]; 
 
\t \t } 
 
\t \t $pricetotal = $price * $each_item['quantity']; 
 
\t \t $cartTotal = $pricetotal + $cartTotal; 
 

 
\t \t setlocale(LC_MONETARY, "en_US"); 
 
\t \t $pricetotal = money_format("%10.2n", $pricetotal); 
 
\t \t //Dynamic Checkout Btn assembly 
 
\t \t $x = $i + 1; 
 
\t \t $pp_checkout_btn .= '<input type="hidden" name="item_name_' . $x . '" value="' . $product_name . '"> 
 
\t \t <input type="hidden" name="amount_' . $x . '" value="' . $price . '"> 
 
\t \t <input type="hidden" name="quantity_' . $x . '" value="' . $each_item['quantity'] . '"> '; 
 
\t \t //Create the product array variable 
 
\t \t $product_id_array .= "$item_id-".$each_item['quantity'].","; 
 
\t \t //Dynamic table row assembly 
 
\t \t $cartOutput .= '<tr style="border-top: none">'; 
 
\t \t $cartOutput .= '<td><img src="inventory_images/' . $item_id . '.jpg" alt="' . $product_name . '" width="52" height="40"/><br /><a href="product.php?id=' . $item_id . '">' . $product_name . '</a></td>'; 
 
\t \t $cartOutput .= '</tr>'; 
 
\t \t $i++; 
 
\t } 
 
\t setlocale(LC_MONETARY, "en_US"); 
 
\t $cartTotal = money_format("%10.2n", $cartTotal); 
 
\t $cartTotal = "<div style='font-size:18px; margin-top:12px; color: black' align='right'><strong>Cart Total : ".$cartTotal." USD </strong></div>"; 
 
\t //Finish the Paypal Checkout Btn 
 
\t $pp_checkout_btn .= '<input type="hidden" name="custom" value="' . $product_id_array . '"> 
 
\t <input type="hidden" name="notify_url" value="https://www.hyperesale.com/storescripts/paypalipn.php"> 
 
\t <input type="hidden" name="return" value="https://www.hyperesale.com/checkout_complete.php"> 
 
\t <input type="hidden" name="rm" value="2"> 
 
\t <input type="hidden" name="cbt" value="Return to The Store"> 
 
\t <input type="hidden" name="cancel_return" value="https://www.hyperesale.com/home/index.php"> 
 
\t <input type="hidden" name="lc" value="US"> 
 
\t <input type="hidden" name="currency_code" value="USD"> 
 
\t <input type="image" src="https://www.paypalobjects.com/webstatic/en_US/i/buttons/checkout-logo-large.png" name="submit" alt="Make payments with PayPal - its fast, free and secure!" width="280vw" height="60vh"> 
 
\t </form> 
 
\t '; 
 
} 
 
?> 
 
<?php 
 
// Parse the form data and add inventory item to the system 
 
if(isset($_POST['fName'])){ 
 

 
     $id = mysql_real_escape_string($_POST['id']); 
 
    $fName = mysql_real_escape_string($_POST['fName']); 
 
    $lName = mysql_real_escape_string($_POST['lName']); 
 
    $address = mysql_real_escape_string($_POST['address']); 
 
    $city = mysql_real_escape_string($_POST['city']); 
 
    $state = mysql_real_escape_string($_POST['state']); 
 
    $zipCode = mysql_real_escape_string($_POST['zipCode']); 
 
    $pNumber = mysql_real_escape_string($_POST['pNumber']); 
 
    $SHIPPINGfName = mysql_real_escape_string($_POST['SHIPPINGfName']); 
 
    $SHIPPINGlName = mysql_real_escape_string($_POST['SHIPPINGlName']); 
 
    $SHIPPINGaddress = mysql_real_escape_string($_POST['SHIPPINGaddress']); 
 
    $SHIPPINGcity = mysql_real_escape_string($_POST['SHIPPINGcity']); 
 
    $SHIPPINGstate = mysql_real_escape_string($_POST['SHIPPINGstate']); 
 
    $SHIPPINGzipCode = mysql_real_escape_string($_POST['SHIPPINGzipCode']); 
 
    $SHIPPINGpNumber = mysql_real_escape_string($_POST['SHIPPINGpNumber']); 
 
    $cardType = mysql_real_escape_string($_POST['cardType']); 
 
    $cardName = mysql_real_escape_string($_POST['cardName']); 
 
    $cardNumber = mysql_real_escape_string($_POST['cardNumber']); 
 
    $expireDate = mysql_real_escape_string($_POST['expireDate']); 
 
    $securityCode = mysql_real_escape_string($_POST['securityCode']); 
 
    $email = mysql_real_escape_string($_POST['email']); 
 

 
    //Add this product into the database now 
 
    $sql = mysql_query("INSERT INTO checkoutInfo (id, fName, lName, address, city, state, zipCode, pNumber, SHIPPINGfName, SHIPPINGlName, SHIPPINGaddress, SHIPPINGcity, SHIPPINGstate, SHIPPINGzipCode, SHIPPINGpNumber, cardType, cardName, cardNumber, expireDate, securityCode, email) 
 
     VALUES('$id','$fName','$lName','$address','$city','$state','$zipCode','$pNumber','$SHIPPINGfName','$SHIPPINGlName','$SHIPPINGaddress','$SHIPPINGcity','$SHIPPINGstate','$SHIPPINGzipCode','$SHIPPINGpNumber','$cardType','$cardName','$cardNumber','$expireDate','$securityCode','$email'") or die (mysql_error()); 
 
    $pid = mysql_insert_id(); 
 
} 
 
?>

ответ

0

Я не уверен, что происходит в вашем коде, так как вы не покажете, где $ _POST [ «cardNumber»] и т.д., откуда. Но в любом случае вы не можете отправлять POST на сервер PayPal и на свой сервер одновременно, чтобы обновить свою БД. Вы можете сделать что-то вроде:

1) POST к скрипту на вашем сервере, где вы проверяете данные и обновляете свою базу данных, и выводите страницу, содержащую форму выше, и отправляете форму при загрузке, что-то вроде onload = " javascript: document.myform.submit() "

2) Сделайте некоторые вещи AJAX POST на ваш сервер, когда пользователь нажмет кнопку, а затем отправьте форму.

Дайте мне знать, если это имеет смысл.