j'ai modifié le module paypal.php d'un script oscommerce ms2.2 afin de passer les champs adresse et noms etc ... à paypal ce qui évite à l'acheteur de les remplir sur paypal. La modification marche bien, mais les caractères accentués ne sont pas bien transmis, il y a un problème d'encodage. Un é dans os commerce est représenté par ¿½ dans paypal. Il me semble que dans oscommerce c'est de l'utf8 et dans paypal ? Comment assurer la compatibilitée ?
Voici le code en espérant que cela servent à d'autres :
paypal.php ligne 79 chez moi :
function process_button() {
global $order, $currencies, $currency;
if (MODULE_PAYMENT_PAYPAL_CURRENCY == 'Selected Currency') {
$my_currency = $currency;
} else {
$my_currency = substr(MODULE_PAYMENT_PAYPAL_CURRENCY, 5);
}
if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) {
$my_currency = 'USD';
}
$process_button_string = tep_draw_hidden_field('cmd', '_xclick') .
tep_draw_hidden_field('business', MODULE_PAYMENT_PAYPAL_ID) .
tep_draw_hidden_field('item_name', STORE_NAME) .
// Modif // EOF Modif pour passage paramêtres à paypal
tep_draw_hidden_field('first_name', $order->customer['firstname']) .
tep_draw_hidden_field('last_name', $order->customer['lastname']) .
tep_draw_hidden_field('address1', $order->customer['street_address']) .
tep_draw_hidden_field('address2', "") .
tep_draw_hidden_field('city', $order->customer['city']) .
tep_draw_hidden_field('zip', $order->customer['postcode']) .
tep_draw_hidden_field('state', $order->customer['state']) .
tep_draw_hidden_field('country', $order->customer['country']['iso_code_2']) .
tep_draw_hidden_field('email', $order->customer['email_address']) .
// EOF Modif pour passage paramêtres à paypal
tep_draw_hidden_field('amount', number_format(($order->info['total'] - $order->info['shipping_cost']) * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('shipping', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) .
tep_draw_hidden_field('currency_code', $my_currency) .
tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
return $process_button_string;
}
Merci d'avance.
Ce message a été modifié par BonBackLink - 20 novembre 2009 - 13:52.



Haut











