2015-02-23 2 views
1

Хорошо, поэтому я знаю, как использовать систему IPN PayPal для платежей «Купить сейчас» и «Основные», хотя теперь я создал базовый магазин с примерно 12 различными товарами, которые можно было заказать несколько раз с помощью системы корзины покупок, и это становится немного сложнее.PHP Как использовать IPN с корзиной PayPal?

Мой вопрос, в то время как элементы выбраны POST в этом типе кода:

mc_gross=0.02 


item_number1=0003 
item_number2=0012 


payment_date=06:07:02 Feb 23, 2015 PST 
payment_status=Completed 
first_name=Name 
[email protected] 
[email protected] 
last_name=lastname 
[email protected] 


custom= 


num_cart_items=2 
item_name1=Professional Website Design 
item_name2=Additional Website Page 

quantity1=1 
quantity2=1 


txn_type=cart 
mc_currency=GBP 

mc_gross_1=0.01 
mc_gross_2=0.01 

Как я смог бы сделать обновление MySQL для добавления каждого другого элемента или нескольких элементов & цены?

К примеру, вот что у меня есть для одного элемента проводки в моей базе данных ...

// assign posted variables to local variables 
    $item_name = $_POST['item_name']; 
    $item_number = $_POST['item_number']; 
    $payment_status = $_POST['payment_status']; 
    if ($_POST['mc_gross'] != NULL) 
     $payment_amount = $_POST['mc_gross']; 
    else 
     $payment_amount = $_POST['mc_gross1']; 
    $payment_currency = $_POST['mc_currency']; 
    $txn_id = $_POST['txn_id']; 
    $receiver_email = $_POST['receiver_email']; 
    $payer_email = $_POST['payer_email']; 
    $custom = $_POST['custom']; 
    $first_name = $_POST['first_name']; 
    $last_name = $_POST['last_name']; 

    if($payment_status == 'Completed'){ 
     $txn_id_check = mysql_query("SELECT `txn_id` FROM `payment_logs` WHERE `txn_id`='".$txn_id."'"); 
     if(mysql_num_rows($txn_id_check)!= 1){ 

      if($receiver_email == '[email protected]'){ 

       if($item_name == 'Personal Website Design'){ 

        // Add TXN ID to LOG 
        mysql_query("INSERT INTO `payment_logs` VALUES ('','".$first_name."','".$last_name."','".$payer_email."','".$txn_id."','".$item_name."','£".$payment_amount."',NOW(),'0','','£0.00')"); 

Если пользователь выбрал несколько элементов, как бы я изменить код & свою базу данных, чтобы включить различные разные выбор, который может использовать покупатель?

ответ

0

Вот фрагмент, который я всегда использовал для сортировки элементов корзины в IPN.

$i = 1; 
$cart_items = array(); 
while(isset($_POST['item_number' . $i])) 
{ 
    $item_number = isset($_POST['item_number' . $i]) ? $_POST['item_number' . $i] : ''; 
    $item_name = isset($_POST['item_name' . $i]) ? $_POST['item_name' . $i] : ''; 
    $quantity = isset($_POST['quantity' . $i]) ? $_POST['quantity' . $i] : ''; 
    $mc_gross = isset($_POST['mc_gross_' . $i]) ? $_POST['mc_gross_' . $i] : 0; 
    $mc_handling = isset($_POST['mc_handling' . $i]) ? $_POST['mc_handling' . $i] : 0; 
    $mc_shipping = isset($_POST['mc_shipping' . $i]) ? $_POST['mc_shipping' . $i] : 0; 
    $custom = isset($_POST['custom' . $i]) ? $_POST['custom' . $i] : ''; 
    $option_name1 = isset($_POST['option_name1_' . $i]) ? $_POST['option_name1_' . $i] : ''; 
    $option_selection1 = isset($_POST['option_selection1_' . $i]) ? $_POST['option_selection1_' . $i] : ''; 
    $option_name2 = isset($_POST['option_name2_' . $i]) ? $_POST['option_name2_' . $i] : ''; 
    $option_selection2 = isset($_POST['option_selection2_' . $i]) ? $_POST['option_selection2_' . $i] : ''; 
    $option_name3 = isset($_POST['option_name3_' . $i]) ? $_POST['option_name3_' . $i] : ''; 
    $option_selection3 = isset($_POST['option_selection3_' . $i]) ? $_POST['option_selection3_' . $i] : ''; 
    $option_name4 = isset($_POST['option_name4_' . $i]) ? $_POST['option_name4_' . $i] : ''; 
    $option_selection4 = isset($_POST['option_selection4_' . $i]) ? $_POST['option_selection4_' . $i] : ''; 
    $option_name5 = isset($_POST['option_name5_' . $i]) ? $_POST['option_name5_' . $i] : ''; 
    $option_selection5 = isset($_POST['option_selection5_' . $i]) ? $_POST['option_selection5_' . $i] : ''; 
    $option_name6 = isset($_POST['option_name6_' . $i]) ? $_POST['option_name6_' . $i] : ''; 
    $option_selection6 = isset($_POST['option_selection6_' . $i]) ? $_POST['option_selection6_' . $i] : ''; 
    $option_name7 = isset($_POST['option_name7_' . $i]) ? $_POST['option_name7_' . $i] : ''; 
    $option_selection7 = isset($_POST['option_selection7_' . $i]) ? $_POST['option_selection7_' . $i] : ''; 
    $option_name8 = isset($_POST['option_name8_' . $i]) ? $_POST['option_name8_' . $i] : ''; 
    $option_selection8 = isset($_POST['option_selection8_' . $i]) ? $_POST['option_selection8_' . $i] : ''; 
    $option_name9 = isset($_POST['option_name9_' . $i]) ? $_POST['option_name9_' . $i] : ''; 
    $option_selection9 = isset($_POST['option_selection9_' . $i]) ? $_POST['option_selection9_' . $i] : ''; 

    $btn_id = isset($_POST['btn_id' . $i]) ? $_POST['btn_id' . $i] : ''; 

    $current_item = array( 
          'item_number' => $item_number, 
          'item_name' => $item_name, 
          'quantity' => $quantity, 
          'mc_gross' => $mc_gross, 
          'mc_handling' => $mc_handling, 
          'mc_shipping' => $mc_shipping, 
          'custom' => $custom, 
          'option_name1' => $option_name1, 
          'option_selection1' => $option_selection1, 
          'option_name2' => $option_name2, 
          'option_selection2' => $option_selection2, 
          'option_name3' => $option_name3, 
          'option_selection3' => $option_selection3, 
          'option_name4' => $option_name4, 
          'option_selection4' => $option_selection4, 
          'option_name5' => $option_name5, 
          'option_selection5' => $option_selection5, 
          'option_name6' => $option_name6, 
          'option_selection6' => $option_selection6, 
          'option_name7' => $option_name7, 
          'option_selection7' => $option_selection7, 
          'option_name8' => $option_name8, 
          'option_selection8' => $option_selection8, 
          'option_name9' => $option_name9, 
          'option_selection9' => $option_selection9, 
          'btn_id' => $btn_id 
         ); 

    array_push($cart_items, $current_item); 
    $i++; 
} 

Затем вы можете добавить цикл ваших обновлений баз ...

foreach($cart_items as $cart_item) 
{ 
    /** 
    * Update database with values like... 
    * $cart_item['item_name'] 
    * $cart_item['item_number'] 
    * $cart_item['quantity'] 
    * $cart_item['mc_gross'] 
    */ 
} 
+0

Brill, спасибо за помощь! Сделаю это. – Aidanpt6