0

支払い API を統合しようとしています。支払いを作成するために使用しているメソッドは、オブジェクトを返す必要があります。実際にはそうですが、オブジェクトをクライアントに戻すことができないだけです。

サーバー上のメソッドは同期的に実行されますが、API へのメソッドは非同期的に実行されるため、これが発生することはわかっています (私が間違っていなければ)。しかし、どうすればいいのか分からず、どなたかお力をお貸しいただければ幸いです。

サーバーへのクライアント側の呼び出し:

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

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}});
      }));     
    }
  });
4

1 に答える 1