title: Meteor method not returning ID to client
body: <p>I am in the process of integrating stripe payments on my website, but I have run into a problem. 
  I want to transition the user to a dynamic route upon submitting the payments form (iframe supplied by stripe), but the Meteor method that I call on the client returns undefined instead of the ID of the newly inserted document that I wish to transition to</p>
  
  <p>Any advice?</p>
  
  <p>ERROR</p>
  
  <pre><code>Error: Missing required parameters on path "/purchases/:purchaseId". The missing params are: ["purchaseId"]. The params object passed in was: undefined.
  </code></pre>
  
  <p>client:</p>
  
  <pre><code>Template.viewTab.events({
    'click #download': function(event) {
      handler.open({
        name: 'Tabr',
        description: this.title,
        amount: this.price
      });
      event.preventDefault();
    },
  });
  
  var handler = StripeCheckout.configure({
    key: '..............',
    token: function(token) {
      // Use the token to create the charge with a server-side script.
      // You can access the token ID with `token.id`
  
      tabId = Tabs.findOne()._id;
      Meteor.call('makePurchase', tabId, token, function(error, purchaseId) {
        if (error) {
          console.log('makePurchaseError: ' + error);
          FlashMessages.clear();
          return FlashMessages.sendError(error.message, {
            autoHide: true,
            hideDelay: 10000
          });
        }
        console.log(purchaseId);
        Router.go('viewPurchase', purchaseId);
      });
    }
  });
  </code></pre>
  
  <p>Server:</p>
  
  <pre><code>Meteor.methods({
  
    /**
     * [makePurchase attempts to charge the customer's credit card, and if succesful
     * it inserts a new purchaes document in the database]
     *
     * @return {[String]} [purchaseId]
     */
    makePurchase: function(tabId, token) {
      check(tabId, String);
      tab = Tabs.findOne(tabId);
  
      Stripe.charges.create({
        amount: tab.price,
        currency: "USD",
        card: token.id
      }, Meteor.bindEnvironment(function (error, result) {
        if (error) {
          console.log('makePurchaseError: ' + error);
          return error;
        }
  
        purchaseId = Purchases.insert({
          sellerId: tab.userId,
          tabId: tab._id,
          price: tab.price
        }, function(error, result) {
          if (error) {
            console.log('InsertionError: ' + error);
            return error;
          }
          return result;
        });
      }));
  
      console.log(purchaseId);
      return purchaseId;
    }
  
  });
  </code></pre>