有没有办法从我的服务器没有后端费用从iOS应用程序收取卡。(条纹 - iOS)

时间:2016-03-17 07:08:53

标签: ios objective-c stripe-payments

我正在使用 Stripe 付款。我想从我的应用程序收取卡。目前我使用下面的代码来收费卡,但过程是从服务器端完成的。有没有办法从应用程序收取卡而不是发送stripeToken到服务器?

-(void)createBackendChargeWithToken:(STPToken *)token completion:(void (^)(PKPaymentAuthorizationStatus))completion {
    NSURL *url = [NSURL URLWithString:@"https://example.com/token"];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
    request.HTTPMethod = @"POST";
    NSString *body     = [NSString stringWithFormat:@"stripeToken=%@&amount=%@", token.tokenId,_txtAmount.text];
    request.HTTPBody   = [body dataUsingEncoding:NSUTF8StringEncoding];
    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
    NSURLSessionDataTask *task =
    [session dataTaskWithRequest:request
               completionHandler:^(NSData *data,
                                   NSURLResponse *response,
                                   NSError *error) {
                   if (error) {
                       completion(PKPaymentAuthorizationStatusFailure);
                       // [self customeAlertView:@"Payment not successful" message:@"Please try again later."];
                       NSLog(@"Payment not successful. Please try again later.");
                   } else {
                       completion(PKPaymentAuthorizationStatusSuccess);
                       // [self customeAlertView:@"Success" message:@"Please enjoy your new purchase."];
                       NSLog(@"Payment Success. Please enjoy your new purchase.");
                   }
               }];
    [task resume];
}

1 个答案:

答案 0 :(得分:5)

不,这是不可能的。条纹的iOSAndroid绑定仅用于收集卡片信息和创建令牌,就像在网络应用程序中Stripe.jsCheckout一样。

创建令牌后,必须将其发送到外部服务器,您可以在其中使用API​​请求,例如到create a charge

必须使用外部服务器的原因是除了令牌创建之外的所有API请求都必须使用您的秘密API密钥发出,该密钥不能直接用于您的应用程序,否则恶意用户将能够检索并使用它访问您的帐户。