paypal: geld angkommen, keine bestellung registriert

In diesem Board könnt Ihr alle "allgemeinen" Fragen zum Thema MyOOS stellen.
Antworten
1274d3dd3
Beiträge: 5
Registriert: 13.10.2008, 12:09
Kontaktdaten:

Beitrag von 1274d3dd3 »

hi,

ich nutze die 1.4er version von myoos.

bei manchen bestellungen mit paypal bezahlung wird zwar das geld gutgeschrieben, aber die bestellung wird weder per email versendet, noch im adminbereich aufgeführt.
verschiedene testbestellungen funktionierten einwandfrei aber hin und wieder kommt es trotzdem vor.
woran könnte das liegen?
kann man irgendwie die bestellung schon vor dem bezahlen abschliessen?
versand ist ja eh erst nach geldeingang.

viele grüße,
kutte128
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,
kann man irgendwie die bestellung schon vor dem bezahlen abschliessen?
Man kann die Reihenfolge der Aktionen in der Payment Klasse ändern.

hier steht

function before_process() {
return false;
}

oder
function after_process() {
return false;
}

zur Verfügung.


Ich verwende in der 1.7.x

<div class='codetop'>CODE[/align]<div class='codemain' style='height:200px;white-space:pre;overflow:auto'> function after_process() {
global $oOrder, $oCurrencies;

$my_currency = 'EUR';

$aFilename = oos_get_filename();
$aModules = oos_get_modules();

$sAmount = number_format(($oOrder->info['total] - $oOrder->info['shipping_cost]) * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency));
$sShipping = number_format($oOrder->info['shipping_cost] * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency));
$sReturn = oos_href_link($aModules['checkout], $aFilename['checkout_success], '', 'SSL');
$sCancel_return = oos_href_link($aModules['checkout], $aFilename['checkout_payment], '', 'SSL');

$sLink = 'https://www.paypal.com/de/cgi-bin/websc ... &business=' . MODULE_PAYMENT_PAYPAL_ID .
'&item_name=' . STORE_NAME .
'&amount=' . urlencode($sAmount) .
'&shipping=' . urlencode($sShipping) .
'&return=' . urlencode($sReturn) .
'&cancel_return=' . urlencode($sCancel_return) .
'&currency_code=EUR';


oos_redirect($sLink);

return false;
}[/align]

D.h. hier werden aus den $_Post Daten unter
function process_button() {
}

einfach $_GET Daten gemacht.

Nachteil: Sollte der Kunde bei PayPal die Zahlung abbrechen ist im Shop die
Bestellung als "bezahlt" aufgenommen worden.

In einer etwas aufwendigen Methode speichert ein Modul den Warenkorb
für den Kunden und leitet die Komunikation zwischen PayPal und Kunden per
Curl Sitzung weiter.


Sollten Probleme bei der Änderung der PayPal Klasse auftreten sind wir gerne
bereit für 45 euro + mwst) die Klasse zu ändern...


cu

ralf
wolfschw
Beiträge: 396
Registriert: 01.03.2009, 21:23
Wohnort: Ilshofen
Kontaktdaten:

Beitrag von wolfschw »

habe das gleiche Problem. O.g habe ich versucht, aber ohne Erfolg, das Problem müssten doch alle haben, kann wer helfen ?

Danke
wolfschw
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,
O.g habe ich versucht, aber ohne Erfolg
Welche Änderungen an der ~/shop/includes/modules/payment/paypal.php
wurden gemacht ... bei welcher MyOOS Version?


cu

ralf
sedata
Beiträge: 9
Registriert: 28.01.2009, 22:38
Kontaktdaten:

Beitrag von sedata »

hallo,



habe das gleiche problem.

wir setzen meiner meinung nach die version 1.6 ein.

wie kann ich die bestellung "abspeichern" BEVOR auf die paypal-seite umgeleitet wird?

bitte um genaue infos, bin anfänger.



gruss

stefan
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

> wir setzen meiner meinung nach die version 1.6 ein

damit wir helfen können, benötigen wir die genaue Version.

Bitte einmal aus der
~/shop/includes/oos_version.php

die Werte von den Konstanten OOS_VERSION_MAJOR, OOS_VERSION_MINOR und OOS_VERSION_MICRO

Code: Alles auswählen

 /**
  * Major software version
  */
  define('OOS_VERSION_MAJOR', '1');

 /**
  * Minor software version
  */
  define('OOS_VERSION_MINOR', '6');

 /**
  * Micro software version
  */
  define('OOS_VERSION_MICRO', '14');
mitteilen. (einfach ins Forum posten)

cu

ralf
sedata
Beiträge: 9
Registriert: 28.01.2009, 22:38
Kontaktdaten:

Beitrag von sedata »

hallo, danke für deine schnelle antwort:



/**
* Major software version
*/
define('OOS_VERSION_MAJOR', '1');

/**
* Minor software version
*/
define('OOS_VERSION_MINOR', '6');

/**
* Micro software version
*/
define('OOS_VERSION_MICRO', '10');



gruss
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

hallo,

die Datei bitte als paypal.php nach

~/shop/includes/modules/payment kopieren.

http://www.oos-shop.de/service/oos16x/paypal.txt

Das script ist ungeprüft. Evtl. Fehlermeldungen hier bitte veröffetnlichen.

Beste Grüße

ralf
sedata
Beiträge: 9
Registriert: 28.01.2009, 22:38
Kontaktdaten:

Beitrag von sedata »

hallo,

das klappt schonmal super.

jetzt möchte ich als ( hoffentlich) letzte sache statt dem shopnamen auch noch die bestellnummer drinnen haben:



also statt

&item_name= Pop Art von ' . STORE_NAME .


sowas wie

&item_name= Pop Art von ' . STORE_NAME . 'Bestellnr.: ' . &order_id



DANKE
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

Hallo,

der Shop speichert in

~/shop/includes/pages/checkout/process.php

die Bestellung.

in Zeile 112

Code: Alles auswählen

  $insert_id = $db->Insert_ID();
steht nun die Betellnummer in der $insert_id

in Zeile 383

Code: Alles auswählen

 $payment_modules->after_process();
gibt man die Bestellummer "weiter"

Code: Alles auswählen

 $payment_modules->after_process($insert_id);
im Script selbst, kann man is_numeric($variable) überprüfen, ob eine zahl
übergeben wurde.

Hoffe dies hilft weiter

Ralf
sedata
Beiträge: 9
Registriert: 28.01.2009, 22:38
Kontaktdaten:

Beitrag von sedata »

hallo, leider geht es noch nicht ganz.



ich habe jetzt in der process.php folgenden eintrag:

// load the after_process function from the payment modules
$payment_modules->after_process($insert_id);

$_SESSION['cart]->reset(true);



in der paypal.php:

function after_process($insert_id) {
global $oOrder, $oCurrencies;

$my_currency = 'EUR';

$aFilename = oos_get_filename();
$aModules = oos_get_modules();

$sAmount = number_format(($oOrder->info['total] - $oOrder->info['shipping_cost]) * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency));
$sShipping = number_format($oOrder->info['shipping_cost] * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency));
$sReturn = oos_link($aModules['checkout], $aFilename['checkout_success], '', 'SSL');
$sCancel_return = oos_link($aModules['checkout], $aFilename['checkout_payment], '', 'SSL');

$sLink = 'https://www.paypal.com/de/cgi-bin/websc ... &business=' . MODULE_PAYMENT_PAYPAL_ID .
'&item_name= BestellNr.: ' . urlencode($insert_id) .





leider bekomme ich weder die bestellnr noch den betrag/versandkosten.

was mache ich da falsch? muss ich noch woanders was eintragen?



gruss
sedata
Beiträge: 9
Registriert: 28.01.2009, 22:38
Kontaktdaten:

Beitrag von sedata »

habe es hinbekommen, musste noch in der class_payment.php

die funktionen ändern



leider geht das aber mit der betragsübergabe noch nicht

was ist da noch falsch?



gruss
r23
Beiträge: 2625
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

Beitrag von r23 »

[quote='sedata',index.php?page=Thread&postID=1736#post1736]habe es hinbekommen, musste noch in der class_payment.php

die funktionen ändern
[/quote]

sorry...

dann könnte man

Code: Alles auswählen

function after_process() {
      global $insert_id,
verwenden.


leider geht das aber mit der betragsübergabe noch nicht
grummel.

bei der 1.6.10 ist das Objekt noch $order

Code: Alles auswählen

    function after_process() {
      global $insert_id, $order, $oCurrencies;

      $my_currency = 'EUR';

      $aFilename = oos_get_filename();
      $aModules = oos_get_modules();

      $sAmount = number_format(($order->info['total] - $order->info['shipping_cost]) * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency));
      $sShipping = number_format($order->info['shipping_cost] * $oCurrencies->get_value($my_currency), $oCurrencies->get_decimal_places($my_currency));
      $sReturn =  oos_link($aModules['checkout], $aFilename['checkout_success], '', 'SSL');
      $sCancel_return = oos_link($aModules['checkout], $aFilename['checkout_payment], '', 'SSL');

      $sLink = 'https://www.paypal.com/de/cgi-bin/webscr?cmd=_xclick&business=' . MODULE_PAYMENT_PAYPAL_ID .
Hoffe deies hilft weiter?

Ralf
sedata
Beiträge: 9
Registriert: 28.01.2009, 22:38
Kontaktdaten:

Beitrag von sedata »

hallo, VIELEN DANK für die hilfe,

jetzt läuft alles so wie es sollte.

die order id und der betrag wird richtig übergeben.



gruss
Antworten