2016-06-02 2 views
0

Ich versuche, eine Zahlungs-API zu integrieren. Die Methode, die ich zum Erstellen einer Zahlung verwende, sollte ein Objekt zurückgeben. Und zwar, aber ich kann das Objekt nicht zurück zum Client bringen.Meteor Return-Antwort von Server-Methode an Client

Ich weiß, dass dies passiert, weil die Methode zu API asynchron ausgeführt wird, während die Methode auf dem Server synchron ausgeführt wird (wenn ich mich nicht irre). Aber ich kann immer noch nicht herausfinden, wie es geht, und ich hoffe, dass ihr mir helfen könnt.

Client-Seite Aufruf zum Server:

Meteor.call('createPaymentLink',NewBooking, TotalAmount ,function(result) { 
      console.log(result); 
}); 

Server-Seite Aufruf API:

Meteor.methods({ 
    'createPaymentLink': function(bookingID, amount) { 

     //Create Booking No. 
     // First two digits = First two digits of booking ID 
     // Last two digits = Last two digits of Customer ID 
     var CustomerId = Bookings.findOne({_id: bookingID}).CustomerID; 
     var FirstPart = CustomerId.substring(0,2); 
     var LastPart = bookingID.slice(-2); 
     var rightNow = new Date(); 
     var OrderDate = rightNow.toISOString().slice(0,10).replace(/-/g,""); 

     var CustomerBookingCode = (FirstPart + OrderDate + LastPart).toUpperCase(); 

     mollieClient.payments.create({ 
      amount:  amount, 
      description: "Booking code: "+bookingID, 
      redirectUrl: "https://webshop.example.org/order/12345/" 
     }, Meteor.bindEnvironment(function(payment) { 
      return payment; 
      //Bookings.update({_id: bookingID}, {$set: {payment_id : PaymentUrl}}); 
     }));  
    } 
    }); 

Antwort

0

Das erste Argument für den Rückruf ist der Fehler, die null sein wird, wenn alles funktioniert! Versuchen Sie folgendes:

Meteor.call('createPaymentLink',NewBooking, TotalAmount ,function(err, result) { 
    console.log(result); 
}); 
+0

Danke für Ihre Antwort. Aber kein Glück :(Sowohl Fehler als auch Ergebnis kehren in der Browserkonsole undefiniert zurück. – NvdB31

Verwandte Themen