<?php $nzshpcrt_gateways[$num] = array( 'name' => __( 'Bluepaid - Encaissement sécurisé par carte bancaire', 'wpsc' ), 'display_name' => __( 'Bluepaid, l\'encaissement par carte bancaire', 'wpsc' ), 'image' => WPSC_URL . '/images/cc.gif', 'requirements' => array( 'php_version' => 4.3, 'extra_modules' => array() ), 'form' => 'form_bluepaid_standard', 'submit_function' => 'submit_bluepaid_standard', 'function' => 'gateway_bluepaid_standard', 'internalname' => 'bluepaid_standard', 'payment_type' => 'bluepaid', 'supported_currencies' => array( 'currency_list' => array( 'AUD', 'BRL', 'CAD', 'CHF', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HUF', 'ILS', 'JPY', 'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PLN', 'SEK', 'SGD', 'THB', 'TWD', 'USD' ), 'option_name' => 'bluepaid_curcode' ) ); function gateway_bluepaid_standard($seperator, $sessionid) { global $wpdb, $wpsc_cart; $purchase_log = $wpdb->get_row("SELECT * FROM `".WPSC_TABLE_PURCHASE_LOGS."` WHERE `sessionid`= ".$sessionid." LIMIT 1",ARRAY_A) ; if ($purchase_log['totalprice']==0) { header("Location: ".get_option('transact_url').$seperator."sessionid=".$sessionid); exit(); } $cart_sql = "SELECT * FROM `".WPSC_TABLE_CART_CONTENTS."` WHERE `purchaseid`='".$purchase_log['id']."'"; $cart = $wpdb->get_results($cart_sql,ARRAY_A) ; $gateway = get_option('bluepaid_gateway'); if ( $gateway == 'bluepaid' ){ $gateway_url = "https://www.bluepaid.com/in.php"; }else if ( $gateway == 'bluepaid_new' ){ $gateway_url = "https://paiement-securise.bluepaid.com/in.php"; }else{ $gateway_url = "https://test-paiement-securise.bluepaid.com/in.php"; } $transact_url = $gateway_url; $data['id_boutique'] = get_option('bluepaid_standard_siteid'); $tmp_url=get_option('bluepaid_return_url'); $tmp_url=str_replace('https://', '', $tmp_url); $tmp_url=str_replace('http://', '', $tmp_url); $data['url_retour_ok'] = $tmp_url; $data['url_retour_bo'] = $tmp_url; $tmp_url=get_option('bluepaid_return_stop'); $tmp_url=str_replace('https://', '', $tmp_url); $tmp_url=str_replace('http://', '', $tmp_url); $data['url_retour_stop'] = $tmp_url; //$data['url_retour_bo'] = get_option('siteurl')."/?bluepaid_callback=true"; $data['test'] = get_option('bluepaid_test'); $data['debug'] = get_option('bluepaid_debug'); $currency_code = $wpdb->get_results("SELECT `code` FROM `".WPSC_TABLE_CURRENCY_LIST."` WHERE `id`='".get_option('currency_type')."' LIMIT 1",ARRAY_A); $local_currency_code = $currency_code[0]['code']; $psc_currency_code = get_option('bluepaid_curcode'); if($psc_currency_code == '') { $psc_currency_code = 'EUR'; } $user_data = $wpdb->get_results("SELECT `user_email`, `ID`, `display_name` FROM `wp_users` WHERE `ID` = '".$purchase_log['user_ID']."' LIMIT 1",ARRAY_A); $shipping = $wpsc_cart->calculate_total_shipping(); $discounts = $wpsc_cart->coupons_amount; $total = $wpsc_cart->calculate_total_price(); $data['devise'] = $psc_currency_code; $data['montant'] = number_format(sprintf("%01.2f",($total + $shipping - $discounts)),2,'.',''); $data['divers'] = base64_encode('invoice='.$sessionid); $data['id_client'] = $user_data[0]['ID']; $data['email_client'] = $user_data[0]['user_email']; $data['langue'] = 'FR'; $data = apply_filters('wpsc_psc_standard_post_data',$data); $output = "<p>You will be redirected to Bluepaid.com in a few seconds.</p>"; $output .= "<form name='bluepaid_backoffice' action='{$transact_url}' method='POST'>"; foreach($data as $key=>$value) { $output .= "<input type='hidden' name='{$key}' value='{$value}' />\n"; } $output .= "<input type='submit' name='bluepaid_submit' value='...or do it manually' /></form>"; $output .='<script type="text/javascript">document.bluepaid_backoffice.submit();</script>'; echo $output; $wpsc_cart->empty_cart(); exit(); } function zbaz_bluepaid_backoffice() { global $wpdb; if(isset($_POST['etat']) && isset($_POST['divers'])) { parse_str(base64_decode($_POST['divers'])); $sessionid = $invoice; $transaction_id = $_POST['id_trans']; $amount = $_POST['montant_org']; $payer_email = $_POST['email']; $etat = isset($_POST['etat'])?$_POST['etat']:'ko'; $etat=strtolower($etat); $mode = isset($_POST['mode'])?$_POST['mode']:''; if($etat == 'ok'){ switch($mode) { case 'test': ##transaction test ##no update break; case '': $wpdb->query("UPDATE `".WPSC_TABLE_PURCHASE_LOGS."` SET `transactid` = '".$transaction_id."', `date` = '".time()."', `processed` = '3' WHERE `sessionid` = ".$sessionid." LIMIT 1"); transaction_results($sessionid, false, $transaction_id); break; case 'r': ##refund break; default: $wpdb->query("UPDATE `".WPSC_TABLE_PURCHASE_LOGS."` SET `transactid` = '".$transaction_id."', `date` = '".time()."' WHERE `sessionid` = ".$sessionid." LIMIT 1"); break; } } else { if($etat == 'ko'){ $wpdb->query("UPDATE `".WPSC_TABLE_PURCHASE_LOGS."` SET `transactid` = '".$transaction_id."', `processed` = '6', `date` = '".time()."' WHERE `sessionid` = ".$sessionid." LIMIT 1"); }else{ ##payment in attempt } } exit(); } } function zbaz_bluepaid_callback() { /* if(isset($_GET['bluepaid_callback'])){ global $wpdb; if(isset($_POST['etat']) && isset($_POST['divers'])) { parse_str(base64_decode($_POST['divers'])); $sessionid = $invoice; $transaction_id = $_POST['id_trans']; $amount = $_POST['montant_org']; $payer_email = $_POST['email']; $etat = isset($_POST['etat'])?$_POST['etat']:'ko'; $etat=strtolower($etat); $mode = isset($_POST['mode'])?$_POST['mode']:''; if($etat == 'ok'){ switch($mode) { case 'test': ##transaction test ##no update $wpdb->query("UPDATE `".WPSC_TABLE_PURCHASE_LOGS."` SET `transactid` = '".$transaction_id."', `date` = '".time()."', `processed` = '3' WHERE `sessionid` = ".$sessionid." LIMIT 1"); transaction_results($sessionid, false, $transaction_id); break; case '': $wpdb->query("UPDATE `".WPSC_TABLE_PURCHASE_LOGS."` SET `transactid` = '".$transaction_id."', `date` = '".time()."', `processed` = '3' WHERE `sessionid` = ".$sessionid." LIMIT 1"); transaction_results($sessionid, false, $transaction_id); $wpsc_cart->empty_cart(); break; case 'r': ##refund break; default: $wpdb->query("UPDATE `".WPSC_TABLE_PURCHASE_LOGS."` SET `transactid` = '".$transaction_id."', `date` = '".time()."' WHERE `sessionid` = ".$sessionid." LIMIT 1"); break; } } else { if($etat == 'ko'){ $wpdb->query("UPDATE `".WPSC_TABLE_PURCHASE_LOGS."` SET `transactid` = '".$transaction_id."', `processed` = '6', `date` = '".time()."' WHERE `sessionid` = ".$sessionid." LIMIT 1"); }else{ ##payment in attempt } } exit(); } }*/ } function submit_bluepaid_standard(){ if($_POST['bluepaid_standard_siteid'] != null) { update_option('bluepaid_standard_siteid', $_POST['bluepaid_standard_siteid']); } if($_POST['bluepaid_return_url'] != null) { update_option('bluepaid_return_url', $_POST['bluepaid_return_url']); } if($_POST['bluepaid_return_stop'] != null) { update_option('bluepaid_return_stop', $_POST['bluepaid_return_stop']); } if($_POST['bluepaid_gateway'] != null) { update_option('bluepaid_gateway', $_POST['bluepaid_gateway']); } return true; } function form_bluepaid_standard() { global $wpdb, $wpsc_gateways; $tmp_returned_url=get_option( 'bluepaid_return_url' ); $tmp_return_stop=get_option( 'bluepaid_return_stop' ); $output = " <tr> <td>Plateforme :</td> <td> <select name='bluepaid_gateway'> <option value='bluepaid'" . ( get_option( 'bluepaid_gateway' ) == 'bluepaid' ? ' selected="selected"' : '' ) . ">Bluepaid</option> </select> </td> </tr> <tr> <td>Identifiant de compte : </td> <td> <input type='text' size='6' value='".get_option('bluepaid_standard_siteid')."' name='bluepaid_standard_siteid' /> </td> </tr> <tr> <td>Url de retour </td> <td> <select name='bluepaid_return_url'> <option value=''>".attribute_escape(__('Choisir une page'))."</option>"; // Tableau d'arguments pour personalisé la liste des pages $args = array( 'sort_order' => 'ASC', // ordre 'sort_column' => 'post_title', // par titre (post_date = par date ,post_modified = dernière modification, post_author = Par auteur) 'hierarchical' => 1, // Hiérarchie des sous pages 'exclude' => '', // page a exclure avec leurs ID ex: (2,147) 'include' => '', // page a inclure avec leurs ID (5,10) 'meta_key' => '', // Inclure uniquement les pages qui ont cette clé des champs personnalisés 'meta_value' => '', // Inclure uniquement les pages qui ont cette valeur de champ personnalisé 'authors' => '', // Inclure uniquement les pages écrites par l'auteur(ID) 'child_of' => 0, // niveau des sous-pages 'parent' => -1, // Affiche les pages qui ont cet ID en tant que parent. La valeur par défaut -1 'exclude_tree' => '', // Le contraire de «child_of», «exclude_tree 'supprimera tous les sous pages par ID. 'number' => '', // Défini le nombre de pages à afficher 'offset' => 0, // nombre de pages à passer au-dessus 'post_type' => 'page', // post type 'post_status' => 'publish' // publish = Publier, private = page privé ); $pages = get_pages($args); foreach ($pages as $pagg) { $select_opt=''; if($tmp_returned_url==get_page_link($pagg->ID))$select_opt='selected="selected"'; $option = '<option '.$select_opt.' value="'.get_page_link($pagg->ID).'">'; $option .= $pagg->post_title; $option .= '</option>'; $output .=$option; } $output .="</select>"; $output .="</td> </tr> <tr> <td>Url de retour sans validation </td> <td> <select name='bluepaid_return_stop'> <option value=''>".attribute_escape(__('Choisir une page'))."</option>"; $args = array( 'sort_order' => 'ASC', // ordre 'sort_column' => 'post_title', // par titre (post_date = par date ,post_modified = dernière modification, post_author = Par auteur) 'hierarchical' => 1, // Hiérarchie des sous pages 'exclude' => '', // page a exclure avec leurs ID ex: (2,147) 'include' => '', // page a inclure avec leurs ID (5,10) 'meta_key' => '', // Inclure uniquement les pages qui ont cette clé des champs personnalisés 'meta_value' => '', // Inclure uniquement les pages qui ont cette valeur de champ personnalisé 'authors' => '', // Inclure uniquement les pages écrites par l'auteur(ID) 'child_of' => 0, // niveau des sous-pages 'parent' => -1, // Affiche les pages qui ont cet ID en tant que parent. La valeur par défaut -1 'exclude_tree' => '', // Le contraire de «child_of», «exclude_tree 'supprimera tous les sous pages par ID. 'number' => '', // Défini le nombre de pages à afficher 'offset' => 0, // nombre de pages à passer au-dessus 'post_type' => 'page', // post type 'post_status' => 'publish' // publish = Publier, private = page privé ); $pages = get_pages($args); foreach ($pages as $pagg) { $select_opt=''; if($tmp_return_stop==get_page_link($pagg->ID))$select_opt='selected="selected"'; $option = '<option '.$select_opt.' value="'.get_page_link($pagg->ID).'">'; $option .= $pagg->post_title; $option .= '</option>'; $output .=$option; } $output .="</select>"; $output .="</td> </tr> "; return $output; } add_action('init', 'zbaz_bluepaid_callback'); add_action('init', 'zbaz_bluepaid_backoffice'); ?>
There are currently 1 users browsing this thread. (0 members and 1 guests)