我正在使用 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];
}
答案 0 :(得分:5)
不,这是不可能的。条纹的iOS和Android绑定仅用于收集卡片信息和创建令牌,就像在网络应用程序中Stripe.js和Checkout一样。
创建令牌后,必须将其发送到外部服务器,您可以在其中使用API请求,例如到create a charge。
必须使用外部服务器的原因是除了令牌创建之外的所有API请求都必须使用您的秘密API密钥发出,该密钥不能直接用于您的应用程序,否则恶意用户将能够检索并使用它访问您的帐户。