Parse + Stripe iOS main.js

Я действительно изо всех сил пытаюсь заставить Parse + Stripe работать в моем проекте. На данный момент, я хочу простейшую рабочую версию, которая позволяет мне заряжать пользователя.

Самое близкое, что я нашел к ответу, это следующее: Самый простой пример, который я нашел

Когда я использую исправленный код по ссылке выше, со своим секретом я получаю следующую ошибку:

  Input: {"token":"tok_16kNOcIPNR1PIJsTyhvwTFJ9"}
  Result: TypeError: Object [object Object] has no method 'isString'
at request (stripe.js:49:25)
at post (stripe.js:117:12)
at Object.module.exports.Charges.create (stripe.js:157:16)
at main.js:19:31

Пожалуйста, помогите =**(это так расстраивает.

------------- ОБНОВИТЬ ----------------

В нескольких других сообщениях были похожие ошибки, и, похоже, виновата самая последняя версия кода Parse Cloud: 1.6.0. Вернитесь к версии 1.5.0, используя следующую командную строку в представлении консоли:

parse jssdk 1.5.0

Теперь, к сожалению, я все еще получаю следующую ошибку (но я думаю, что это связано с моим файлом main.js с облачным кодом. Я буду обновлять эту ветку, когда наконец выясню, как завершить файл с облачным кодом.

Error Domain=Parse Code=141 "success/error was not called" UserInfo=0x1740e5700 {code=141, temporary=0, error=success/error was not called, NSLocalizedDescription=success/error was not called}

2 ответа

В заключение. Итак, вот самый основной код, который РАБОТАЕТ для использования Parse + Stripe.

Код iOS

- (IBAction)save:(id)sender {
STPCard *card = [[STPCard alloc] init];
card.number = self.paymentTextField.cardNumber;
card.expMonth = self.paymentTextField.expirationMonth;
card.expYear = self.paymentTextField.expirationYear;
card.cvc = self.paymentTextField.cvc;

NSLog(@"%@, %@", self.paymentTextField.cvc, self.paymentTextField.cardNumber);
[[STPAPIClient sharedClient] createTokenWithCard:card
                                      completion:^(STPToken *token, NSError *error) {
                                          if (error) {
                                              NSLog(@"up here");
                                              NSLog(@"error - %@", error);
                                          } else {
                                           //[self createBackendChargeWithToken:token];
                                              NSLog(@"down here");
                                                NSString *myVal = token.tokenId;


                                              NSLog(@"%@",token);
                                              [PFCloud callFunctionInBackground:@"hello" withParameters:@{@"token":myVal}
                                                                          block:^(NSString *result, NSError *error) {
                                                                              if (!error) {
                                                                                  NSLog(@"from Cloud Code Res: %@",result);
                                                                              }
                                                                              else
                                                                              {
                                                                                  NSLog(@"from Cloud Code: %@",error);
                                                                              }

                                                                          }];
                                          }
                                      }];
}

А затем код main.js:

var Stripe = require('stripe');
Stripe.initialize('sk_test_********'); //replace *** with your key values


Parse.Cloud.define(“hello”, function(request, response) {

var stripeToken = request.params.token;

 var charge = Stripe.Charges.create({
 amount: 1000, // express dollars in cents 
 currency: 'usd',
 card: stripeToken
 }).then(null, function(error) {
 console.log('Charging with stripe failed. Error: ' + error);
 }).then(function() {
   // And we're done!
   response.success('Success');

   });
   });

Опять же, это работает ТОЛЬКО, если вы ОБРАТИТЕ КВОЙ ОБЛАЧНЫЙ КОД до версии 1.5.0 (как помогли мне другие). Надеюсь, что это помогает кому-то еще.

Просто чтобы быть немного более явным сверху:

cd в каталог облачного кода и запустите parse jssdk 1.5.0 а также parse deploy,

Другие вопросы по тегам