payment_id dans payment_end

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230057

-- HikaShop version -- : 261
-- Joomla version -- : 348

Bonjour

il n'y a pas le payment_id dans les hikashoppayment-> payment_end ce qui fait que si on utilise plusieurs fois un plugin de payment , comme banktransfert pour d'autres modes (mandat postal par exemple) on a les infos du banktransfert dans le payment end alors qu'on a besoin des infos du mandat
les payment_images n'y sont pas non plus
par contre oder_payment_id est correct dans la table #__hk_order

comment puis je recuperer ces champs (sans requete SQL) ?

merci

Last edit: 8 years 7 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230060

si je hack le plugin c'est tout simple mébon

function onAfterOrderConfirm(&$order,&$methods,$method_id) {

.....
$this->method_id = $method_id;
}

ça serait mieux et si simple pour vous d'origine

Please Log in or Create an account to join the conversation.

  • Posts: 26121
  • Thank you received: 4023
  • MODERATOR
8 years 7 months ago #230071

Bonjour,

Le trigger "onAfterOrderConfirm" n'est pas lié au controlleur et pas non plus à la vue.
Faire une assignation du "method_id" n'est donc pas la bonne solution.

Par contre, dans la vue "end" vous devez avoir accès à la commande ( $this->order ) qui va contenir déjà vos informations avec le " $this->order->order_payment_id ".

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230149

non justement, ça ne marche pas

dans banktransfert_end.php -> var_dump($this->order); -> NULL

$this->order->order_payment_id n'existe pas , on a aucun acces à cette info , j'ai fais un var_dump($this) l'info n'y est pas

la manière que j'ai trouve est de le passer dans onAfterOrderConfirm puisque $method_id est deja dedans, et je ne vois pas pourquoi ce serait une mauvaise solution de recuperer une info qui est deja dedans

il faut impérativement cette info dans les payment_end sinon on ne peut pas utiliser plusieurs fois les plugins de payment car rien ne les sépare en fin de paiement

Last edit: 8 years 7 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 26121
  • Thank you received: 4023
  • MODERATOR
8 years 7 months ago #230182

Bonjour,

Au temps pour moi, j'ai regardé du côté de "after_end" et donc de la vue "checkout / after_end".
Du coup, je vais plus vous conseiller de modifier le helper d'HikaShop et de remplacer

	function onAfterOrderConfirm(&$order, &$methods, $method_id) {
		return true;
	}
Par
	function onAfterOrderConfirm(&$order, &$methods, $method_id) {
		$this->order = $order;
		return true;
	}
Afin de pouvoir fournir à tous les plugins de payement (utilisant une vue "end") d'accéder à la commande sans avoir besoin de la re-charger.
Et de notre côté nous allons ajouter également le patch dans HikaShop.

Cordialement,


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230259

dans /administrator/components/com_hikashop/helpers/helper.php ligne 3003

function onAfterOrderConfirm(&$order,&$methods,$method_id) {
		$this->order = $order;
		return true;
	}

Je ne recupere pas les valeurs dans banktransfer_end
var_dump($this->order); -> NULL
echo '$this->order->order_payment_id = ' . $this->order->order_payment_id ; -> vide

en tout cas merci pour l'ajout dans une prochaine version

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230293

mais meme si on recupere $this->order tous les champs de la table payment seront absent , ils sont nécessaires dans les payment_end pour afficher les consignes de paiement spécifiques payment_name, payment_description, payment_images ect ...

Please Log in or Create an account to join the conversation.

  • Posts: 82523
  • Thank you received: 13282
  • MODERATOR
8 years 7 months ago #230330

Bizarre. Cela fonctionne de mon coté.

Vérifiez bien que vous avez ajouté la fonction dans la class hikashopPaymentPlugin et non dans une autre class du fichier helper.php sinon cela ne fera rien.

Pour les infos de la méthode de paiement, vous pouver rajouter une ligne comme ceci:

$this->payment = @$methods[$method_id];

The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230463

je n'avais pas vu qu'il y avait 2 onAfterOrderConfirm
avec $this->payment = @$methods[$method_id]; au bon endroit ca marche , on a tout !
avec un seul plugin j'ai 5 modes de paiement :-)

donc c'est exactement cette ligne que vous aller rajouter dans un prochain patch ?
la dernière est 2.6.1 [1602171525]

merci

Last edit: 8 years 7 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230519

Je viens de retester , ça marche parfaitement pour check et banktransfert (et donc les plugins dupliqués)
mais ni pour westernunion ni pour paypal
$payment = $this->payment;
var_dump($payment); - > NULL

western union c'est reglé je l'ai foutu à la poubelle et j'ai duplique banktransfert que j'ai appelé westernunion idem pour check comme ça j'ai un plugin (et un seul code) au lieu de 5

mais paypal ne recupere pas $this->payment;

Last edit: 8 years 7 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82523
  • Thank you received: 13282
  • MODERATOR
8 years 7 months ago #230524

Bonjour,

Pour PayPal Standard, je ne vois pas pourquoi cela ferait ça.
Pour western union, c'est normal il n'utilise pas l'API de paiement comme il le devrait.
Changez le code:
$this->loadOrderData($order);
$this->loadPaymentParams($order);
en:
parent::onAfterOrderConfirm($order,$methods,$method_id);
dans le fichier principal du plugin western union et cela fonctionnera.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230608

Pour westernunion j'utilise banktransfert donc le problème est réglé avec un seul plugin `
pour Paypal je recupere bien toutes les infos

$payment = $this->payment;
$payment->payment_description ect ...

mais je ne recuperes pas $this->order_number et $this->amount comme c'etait toujours le cas

il semble que $this->price_value_with_tax ait la somme mais je ne trouve nulle part dans var_dump($this); order_number

ce n'est pas indispensable bien sur puisque Paypal redirige


merci

Please Log in or Create an account to join the conversation.

  • Posts: 82523
  • Thank you received: 13282
  • MODERATOR
8 years 7 months ago #230612

$this->order_number et $this->amount ne sont pas initialisés dans PayPal puisque pas nécessaires.
Il faut regarder dans $this->order->order_number et $this->order->order_full_price à la place.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230957

Bonjour
order_payment_method est toujours sur banktransfert dans la table #__hikashop_order
par contre les emails vendeurs et clients sont bons

... ok vu c'est dans order_payment_id ...

Last edit: 8 years 7 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #230960

Dans la version du 22 fevrier cette function n'est toujours pas présente, ce qui fait que je dois a chaque fois controler et rajouter cette ligne
$this->payment = @$methods[$method_id];
allez vous le rajouter dans un prochain patch ?

function onAfterOrderConfirm(&$order, &$methods, $method_id) {
		$method = $methods[$method_id];
		$this->payment_params =& $method->payment_params;
		$this->payment_name = $method->payment_name;
		$this->payment = @$methods[$method_id];  // ajoutee
		$this->loadOrderData($order);
	}

Last edit: 8 years 7 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 26121
  • Thank you received: 4023
  • MODERATOR
8 years 7 months ago #230986

non...


Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #231081

Je ne comprend vraiment pas pourquoi vous ne voulez pas rajouter ça dans une prochaine version , ça rend vos plugin de payment in-duplicables

Last edit: 8 years 7 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82523
  • Thank you received: 13282
  • MODERATOR
8 years 7 months ago #231084

Bonjour,

Nous allons la rajouter dans la prochaine version d'HikaShop comme nous vous l'avions dit.
Mais pas dans les builds de la version actuelle. Les builds que ne faisons sont pour ajouter des bug fix, pas de nouvelles fonctions.

Please Log in or Create an account to join the conversation.

  • Posts: 2639
  • Thank you received: 66
  • Hikashop Business
8 years 7 months ago #231175

en ce cas c'est parfait
merci

avec ce changement de code est il possible de récupérer ces infos aussi dans les emails de notification de commande ?

Last edit: 8 years 7 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 82523
  • Thank you received: 13282
  • MODERATOR
8 years 7 months ago #231251

Non, c'est deux choses différentes.
Mais vous avez déjà toute la commande dans $data->cart et du coup il est ensuite très facile de charger les informations de la méthode de paiement avec une requête MySQL si nécessaire dans le préload de l'email.

The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

Time to create page: 0.091 seconds
Powered by Kunena Forum