私はMeteorとストライプパッケージを使って顧客を作りました。だから、最初に私がクリックしたときに、私はclient.jsを持っているサーバー上のメソッドを呼び出して、私のクライアント側のコードを持っている:ストライプ決済応答を返すための流星呼出の取得
Meteor.call('usersignup', function (error, result) {
console.log (result);
});
だから、これはserver.jsにメソッドを呼び出します。
var Future = Npm.require('fibers/future');
var stripe = StripeAPI('my key'); // secret stripe API key
Meteor.methods({
usersignup: function(cusEmail){
var fut = new Future();
stripe.customers.create(
{ email: cusEmail },
function(err, customer) {
if (err) {
console.log(err);
fut.ret;
}
fut.ret(customer);
}
);
return fut.wait();
},
userfail: function(cusid){
var fut = new Future();
stripe.customers.retrieve(cusid, function(err, result) {
if(err){
console.log(err);
fut.ret;
}
fut.ret(err, result);
});
return fut.wait();
}
});
これは動作し、stripe.comダッシュボードにログオンしたときに顧客を作成しますが、少なくとも今のカスタマーIDではクライアントに返された応答を取得しようとしています。これは私がそれを働かせるように見えないところです。 console.log(結果)を実行すると、定義されていないログに記録されます。何か案は?
編集:ファイバーとストライプキーをグローバル変数として追加しましたが、エラーは発生しませんでしたが、リターンは値を返さないようです。ので、クライアント側で私が持っている:
'click #signupsubmit': function (event) {
console.log("hello");
var whatis = getVal(); // function gets value of forms and returns object
var testid;
var cusid = Meteor.call('usersignup', whatis.email, function (error, result) {
if (error) {
console.log(err.message);
return;
}
console.log(result);
console.log("meteor call");
testid = result;
return (result);
});
console.log("outside call");
console.log(testid);
console.log(cusid);
},
});
ので、私はいくつかにconsole.logのテストを実行してきたし、meteor.callを実行し、ラインを下にいっているようです。 testidとcusidの両方のConsole.logは未定義に戻りますが、数秒後にmeteor.callの内部からresultとconsoleという文字列 "meteor call"を受け取ります。流星の呼び出しが完了してから、私のクリック機能の残りの部分を実行するのを待つ方法はありますか?
- "ハロー"
- "外線"
- テストID未定義
- cusid未定義
- "流星コール"
- "結果"
は、これは素晴らしい仕事が、私は、たとえばそれがスロー顧客を削除します別の方法を作るために行ったときエラー( '1回以上解決された未来')。だから、誰かがクリックしてフォームからすべての情報を取得し、stripe.customerを作成してMeteor.userを作成しますが、Accounts.createUserがエラーをスローすると、ストライプカスタマーを削除するメソッドが実行されます。ストライプのdelメソッドを呼び出すと、エラーが返されます。 – asiammyself
更新されたコードを投稿できますか?私はもう少し進む必要がありますが、複数の返品が提供されているので、fut.retが1回のみ実行されるようにする必要があります。 – Akshat
更新されたコード。未来をグローバルなものにしました。それがそれを処理する正しい方法であるかどうかわからないが、今のところ働く。機能はまだ編集されたポストを参照してリターンを待っていないようです。 – asiammyself