我一直在编写自己的流星帐户包,我似乎错过了一些东西。我没有在浏览器或终端中收到任何错误,所以我很难排除故障。我得到的唯一错误来自accounts-ui包本身,它说“没有配置登录服务”。如果有人可以查看,可以在https://github.com/khamoud/meteor-accounts-stripe看到代码。提前谢谢。
答案 0 :(得分:4)
我不久前自己创建了一个帐户包,我的建议是尽可能地坚持使用同一服务的基本帐户包(在这种情况下看起来像是OAuth 2)中所做的任何事情。我可以看到你已经做到了,但存在细微差别。
我下载了你的包并自己试了一下。虽然我不能使它工作(我没有使用Stripe API所以我不会完全深入研究它)我认为我可以取得比你更多的进步。
首先,我没有收到“未配置登录服务”错误。你添加了包吗?我做了'meteor add accounts-ui',在我项目的根目录下创建了一个包文件夹,并将你的包文件夹粘贴到其中,重命名为'accounts-stripe',然后做了'meteor add accounts-stripe'。
然后我在页面中添加了{{loginButtons}}帮助器。有了这个,我得到了配置条纹登录按钮,但是当我点击它时它不会打开弹出窗口。我在js控制台中收到错误消息'Uncaught Error:Duplicate service:stripe'。问题似乎是你有这条线:
Accounts.oauth.registerService('stripe');
在accounts_stripe.js和stripe_client.js中都。从stripe_client.js中删除它为我修复了它。然后我可以从条带中添加我的API密钥。
下一个问题是,一旦提交了这些问题,您将它们存储在stripe_configure.js中的“clientId”中,然后使用appId从stripe_client.js和stripe_server.js中的config对象中检索它们。我注意到这一点,因为提交API密钥后弹出窗口中的登录URL有一个未定义的client_id。在stripe_configure.js中将'clientId'更改为'appId'将解决这个问题。
不幸的是它仍然不起作用。我得到了
{"error":{"message":"No application matches the supplied client identifier"}}
从弹出窗口中。这可能是出于多种原因,也许我在API密钥窗口中提交了错误的东西,也许是因为我在Stripe上使用了测试项目,或者您可能错误地实现了登录工作流程。 Stripe OAuth文档的快速谷歌表明我已经为client_id和secret提交了错误的内容。就像我说过之前我没有使用Stripe API。
我希望我能让你开始修复它。