解析 Stripe 模块的 returns 错误

Parse returns error for Stripe module

我想在我的应用程序中使用 Stripe 云模块对信用卡进行收费,但是云功能总是 returns,错误代码为 141。

Error: Uh oh, something went wrong (Code: 141, Version: 1.5.0)
Error Domain=Parse Code=141 "The operation couldn’t be completed. (Parse error 141.)" UserInfo=0x170a640c0 {error=Uh oh, something went wrong, code=141}

这是我的云代码:

var Stripe = require('stripe');
Stripe.initialize('pk_test_xxxxxxxxxxxxxxxx');

Parse.Cloud.define("chargeCreditCard", function(request, response) {

 Stripe.Charges.create({
   amount: request.params.amount * 100, 
   currency: "usd",
   card: request.params.token
 },{
   success: function(httpResponse) {
     response.success("Purchase made!");
   },
   error: function(httpResponse) {
     response.error("Uh oh, something went wrong");
   }
 });

});

这就是我从我的应用程序中调用此函数的方式:

NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:[NSNumber numberWithInt:100] forKey:@"amount"];
[params setObject:token.tokenId forKey:@"token"];

[PFCloud callFunctionInBackground:@"chargeCreditCard" withParameters:params block:^(id object, NSError *error) {
    if (error) {
        NSLog(@"%@", error);
    }
}];

我已经调试过了,tokenId是正确的。我还将 global.json 文件中的 Parse 版本号更改为 1.5.0。非常感谢任何帮助!

我可以自己解决问题。第一个提示是记录有用的错误消息,而不是 Parse 文档中提供的错误消息。

error: function(httpResponse) {
 response.error(httpResponse.message);
 // alternatively
 console.log(httpResponse.message);
}

这帮助我找到了导致问题的原因。在我的例子中,我在我的 JavaScript 云代码中使用了可发布的密钥,但是 Stripe 模块需要 密钥 .