⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ps_checkout.inc

📁 phpShop是一个基于php的分布式电子商务模块
💻 INC
📖 第 1 页 / 共 3 页
字号:
       $qt .= "AND user_info.address_type='BT'";       $dbbt->query($qt);       $dbbt->next_record();       $dbst = new ps_DB;       $qt = "SELECT * FROM user_info ";       $qt .= "WHERE user_info_id='";       $qt .= $db->f("user_info_id") . "'";       $dbst->query($qt);       $dbst->next_record();        $dbv = new ps_DB;       $qt = "SELECT * from vendor ";       /* Need to decide on vendor_id <=> order relationship */       $qt .= "WHERE vendor_id = $ps_vendor_id";       $dbv->query($qt);       $dbv->next_record();       // Email Addresses for shopper and vendor       // **************************************       $shopper_email = $dbbt->f("user_email");       $from_email = $dbv->f("contact_email");       // Headers and Footers       // ******************************       // Shopper Header       $shopper_header = "Thank you for shopping with us.  Your order ";       $shopper_header .= "information follows.\n\n";       //Shopper Footer       $shopper_footer = "\n\nThank you for your patronage.\n";       $shopper_footer .= "\n\nQuestions? Problems?\n";       $shopper_footer .= "Email: " . $dbv->f("contact_email");              $shopper_subject = $dbv->f("vendor_name") . " Order -" . $db->f("order_id");       // Vendor Header       $vendor_header = "The following order was received.\n";       $vendor_subject = "Order Notice-" . $db->f("order_id");       // Vendor Footer       $url = $sess->url(SECUREURL . "?page=order/order_print&amp;order_id=$order_id");       $vendor_footer = "\n\nView the order by following the link below.\n";       $vendor_footer .= $sess->url($url);       $vendor_email = $dbv->f("contact_email");        // Main Email Message Purchase Order       // *********************************       $shopper_message  = "\nPURCHASE ORDER\n";       $shopper_message .= "------------------------------------------------------------------------\n";       $shopper_message .= "ORDER NUMBER: " . $db->f("order_id") . "\n";       $shopper_message .= "ORDER DATE:   ";       $shopper_message .= date("d-M-Y:H:i", $db->f("cdate")) . "\n";       $shopper_message .= "ORDER STATUS: ";       switch($db->f("order_status")) {         case ("P"):           $shopper_message .= "Pending\n\n";           break;         case ("X"):           $shopper_message .= "Canceled\n\n";           break;         case ("C"):           $shopper_message .= "Confirmed\n\n";           break;       }       $shopper_message .= "CUSTOMER INFORMATION\n";       $shopper_message .= "--------------------\n\n";       $shopper_message .= "Bill To\n";       $shopper_message .= "-------\n\n";       $shopper_message .= "     Company:    ";       $shopper_message .= $dbbt->f("company") . "\n";       $shopper_message .= "     Name:       ";       if ($dbbt->f("title")) {         $shopper_message .= $dbbt->f("title") . " ";       }       $shopper_message .= $dbbt->f("first_name") . " ";       if ($dbbt->f("middle_name")) {         $shopper_message .= $dbbt->f("middle_name") . " ";       }       $shopper_message .= $dbbt->f("last_name") . "\n";       $shopper_message .= "     Address1:   ";       $shopper_message .= $dbbt->f("address_1") . "\n";       $shopper_message .= "     Address2:   ";       $shopper_message .= $dbbt->f("address_2") . "\n";       $shopper_message .= "     City:       ";       $shopper_message .= $dbbt->f("city") . "\n";       $shopper_message .= "     State/Region:      ";       $shopper_message .= $dbbt->f("state") . "\n";       $shopper_message .= "     Zip:        ";       $shopper_message .= $dbbt->f("zip") . "\n";       $shopper_message .= "     Country:    ";       $shopper_message .= $dbbt->f("country") . "\n";       $shopper_message .= "     Phone:      ";       $shopper_message .= $dbbt->f("phone_1") . "\n";       $shopper_message .= "     Fax:        ";       $shopper_message .= $dbbt->f("fax") . "\n\n";              $shopper_message .= "Ship To\n";       $shopper_message .= "-------\n\n";       $shopper_message .= "     Company:    ";       $shopper_message .= $dbst->f("company") . "\n";       $shopper_message .= "     Name:       ";       $shopper_message .= $dbbt->f("title") . " ";       $shopper_message .= $dbst->f("first_name") . " ";       $shopper_message .= $dbst->f("middle_name") . " ";       $shopper_message .= $dbst->f("last_name") . "\n";       $shopper_message .= "     Address1:   ";       $shopper_message .= $dbst->f("address_1") . "\n";       $shopper_message .= "     Address2:   ";       $shopper_message .= $dbst->f("address_2") . "\n";       $shopper_message .= "     City:       ";       $shopper_message .= $dbst->f("city") . "\n";       $shopper_message .= "     State/Region:      ";       $shopper_message .= $dbst->f("state") . "\n";       $shopper_message .= "     Zip:        ";       $shopper_message .= $dbst->f("zip") . "\n";       $shopper_message .= "     Country:    ";       $shopper_message .= $dbst->f("country") . "\n";       $shopper_message .= "     Phone:      ";       $shopper_message .= $dbst->f("phone_1") . "\n";       $shopper_message .= "     Fax:        ";       $shopper_message .= $dbst->f("fax") . "\n\n";       $shopper_message .= "ORDER ITEMS\n";       $shopper_message .= "-----------";       $dboi = new ps_DB;       $q = "SELECT * ";       $q .= "FROM product, order_item, orders ";       $q .= "WHERE product.product_id=order_item.product_id ";       $q .= "AND order_item.order_id='";       $q .= $order_id . "' ";       $q .= "AND orders.order_id=order_item.order_id";       $dboi->query($q);       while($dboi->next_record()) {          $shopper_message .= "\n\n";          $shopper_message .= "PRODUCT  = ";          if ($dboi->f("product_parent_id")) {            $shopper_message .= $ps_product->get_field($dboi->f("product_parent_id"), "product_name") . "\n";            $shopper_message .= "SERVICE  = ";          }          $shopper_message .= $dboi->f("product_name") . "\n";          $shopper_message .= "QUANTITY = ";          $shopper_message .= $dboi->f("product_quantity") . "\n";          $shopper_message .= "SKU      = ";          $shopper_message .= $ps_product->get_field($dboi->f("product_id"), "product_sku") . "\n";          $price = $ps_product->get_price($dboi->f("product_id"));          $shopper_message .= "PRICE    = ";          $shopper_message .= sprintf("%1.2f %s", $price["product_price"], $price["product_currency"]);       }       $shopper_message .= "\n\n";       $sub_total = $db->f("order_subtotal");       $shopper_message .= "SUBTOTAL = ";       $shopper_message .= sprintf("%1.2f %s\n", $sub_total, $price["product_currency"]);       $order_tax = $db->f("order_tax");       $shopper_message .= "TAX      = ";       $shopper_message .= sprintf("%1.2f\n", $order_tax);       $order_shipping = $db->f("order_shipping");       $shopper_message .= "SHIPPING = ";       $shopper_message .= sprintf("%1.2f\n", $order_shipping);       $order_shipping_tax = $db->f("order_shipping_tax");       $shopper_message .= "SHIPPING TAX   = ";       $shopper_message .= sprintf("%1.2f\n", $order_shipping_tax);       $order_total= $sub_total +                      $order_tax +                      $order_shipping +                      $order_shipping_tax;       $shopper_message .= "\n\n";       $shopper_message .= "TOTAL    = ";       $shopper_message .= sprintf("%1.2f %s\n", $order_total, $price["product_currency"]);       $shopper_message .= "------------------------------------------------------------------------\n";       // End of Purchase Order       // *********************       		require_once("admin/lib/ps_mail.inc");		$ps_mail = new ps_mail;		       // Mail receipt to the shopper       $ps_mail->send($shopper_email,             $shopper_subject,             $shopper_header . $shopper_message . $shopper_footer,            $from_email);       // Mail receipt to the vendor       $ps_mail->send($vendor_email,            $vendor_subject,            $vendor_header . $shopper_message . $vendor_footer,            $from_email);      return(True);    }  /**************************************************************************  ** name: asterisk_pad()  ** created by: gday  ** description:  Return $str with all but $display_length at the end as   **               asterisks.  ** parameters: $str - string to asterisk pad  **             $display_length - length at the end of $str that will not  **                               be obscured by asterisks  ** returns: $str with all but $display_length at the end obscured  **          by asterisks  ***************************************************************************/   function asterisk_pad($str, $display_length) {      $total_length = strlen($str);      if($total_length > $display_length) {         for($i = 0; $i < $total_length - $display_length; $i++) {           $str[$i] = "*";         }      }      return($str);   }   /**************************************************************************  ** name: cybercash_process()  ** created by: pablo  ** description:  Based on the cyberlib class found in the PHP extensions library.  ** parameters:   ** returns:   ***************************************************************************/   function cybercash_process($order_number, $order_total, &$d) {     global $auth,       $ps_vendor_id;     require "checkout/lib/ps_cyberlib.inc";          // Get user billing information     $dbbt = new ps_DB;     $qt = "SELECT * from user_info ";     $qt .= "WHERE user_info.user_id='".$auth["user_id"]."' ";     $qt .= "AND user_info.address_type='BT'";     $dbbt->query($qt);     $dbbt->next_record();          $merchant=CC_MERCHANT;     $merchant_key=CC_MERCHANT_KEY;     $payment_url=CC_PAYMENT_URL;     $auth_type=CC_AUTH_TYPE;          $expire_date = date("m/y",$d["order_payment_expire"]);     $response=SendCC2_1Server($merchant,$merchant_key,$payment_url,			       $auth_type,			       array(				     "Order-ID" => $order_number,				     "Amount" => $this->get_vendor_currency($ps_vendor_id) . " " . $order_total,				     "Card-Number" => $d["order_payment_number"],				     "Card-Address" => $dbbt->f("address_1"),				     "Card-City" => $dbbt->f("city"),				     "Card-State" => $dbbt->f("state"),				     "Card-Zip" => $dbbt->f("zip"),				     "Card-Country" => $dbbt->f("country"),				     "Card-Exp" => $expire_date,				     "Card-Name" => $dbbt->f("first_name")." ".$dbbt->f("last_name")				     )			       );         $d["order_payment_log"] = "";     while(list($key,$val)=each($response)) {       $d["order_payment_log"] .= $key."=".$val."<br>";     }             if ($response["MStatus"] == "success")       return True;     else {       $d["error"] = $response["MErrMsg"];       return False;     }   }  /**************************************************************************  ** name: authnet_process()  ** created by: jep  ** description: process transaction using ps_authnet.inc class  ** parameters:   ** returns:   ***************************************************************************/   function authnet_process($order_number, $order_total, &$d) {     global $auth,       $ps_vendor_id;     // Get user billing information     $dbbt = new ps_DB;     $qt = "SELECT * from user_info ";     $qt .= "WHERE user_info.user_id='".$auth["user_id"]."' ";     $qt .= "AND user_info.address_type='BT'";     $dbbt->query($qt);     $dbbt->next_record();          //Object to convert country code to two character code     include("admin/lib/ps_country.inc");     $country = new ps_country;     //Authnet - connect settings     $host = "secure.authorize.net";     $port = 443;     $path = "/gateway/transact.dll";     //Authnet vars to send     //More can be added if needed.     $formdata = array (       'x_version' => '3.1',       'x_delim_data' => 'True',       'x_delim_char' => '|',       'x_relay_response' => 'False',       'x_login' => AN_LOGIN,       'x_tran_key' => AN_TRAN_KEY,       'x_test_request' => AN_TEST_REQUEST,       'x_type' => AN_TYPE,       'x_first_name' => $dbbt->f("first_name"),       'x_last_name' => $dbbt->f("last_name"),       'x_address' => $dbbt->f("address_1"),       'x_city' => $dbbt->f("city"),       'x_state' => $dbbt->f("state"),       'x_zip' => $dbbt->f("zip"),       'x_country' => $country->getTwoLetterCode($dbbt->f("country")),       'x_card_num' => $d["order_payment_number"],       'x_card_code' => '',       'x_amount' => $this->get_vendor_currency($ps_vendor_id) . " " . $order_total,       'x_exp_date' => date("mY",$d["order_payment_expire"]),       'x_email' => '',       'x_email_customer' => 'False',       'x_cust_id' => '',       'x_customer_ip' => $_SERVER["REMOTE_ADDR"],       'x_phone' => '',       'x_fax' => '',       'x_invoice_num' => $order_number,       'x_description' => ''     );     //build the post string       $poststring = '';       foreach($formdata AS $key => $val){         $poststring .= urlencode($key) . "=" . urlencode($val) . "&";       }     // strip off trailing ampersand     $poststring = substr($poststring, 0, -1);      $fp = fsockopen("ssl://".$host, $port, $errno, $errstr, $timeout = 60);     if(!$fp){      //error tell us      echo "$errstr ($errno)\n";     }else{       //send the server request       fputs($fp, "POST $path HTTP/1.1\r\n");       fputs($fp, "Host: $host\r\n");       fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");       fputs($fp, "Content-length: ".strlen($poststring)."\r\n");       fputs($fp, "Connection: close\r\n\r\n");       fputs($fp, $poststring . "\r\n\r\n");       //Get the response header from the server       $str = '';       while(!feof($fp) && !stristr($str, 'content-length')) {         $str = fgets($fp, 4096);       }       // If didnt get content-lenght, something is wrong, return false.       if (!stristr($str, 'content-length')) {         return false;       }       // Get length of data to be received.       $length = trim(substr($str,strpos($str,'content-length') + 15));       // Get buffer (blank data before real data)       fgets($fp, 4096);       // Get real data       $data = fgets($fp, $length);       fclose($fp);       $response = explode("|", $data);     }     $d["order_payment_log"] = $response[3];          if ($response[0] == '1') {       $d["order_status"] = 'C';       return True;     } else {       $d["error"] = $response[3];       return False;     }   }      } ?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -