我一直在使用带有条纹的ApplePay,一切正常,直到用 PKPayment 获取条带标记这里所有人都提到将条带标记发送到服务器并收取金额。我不知道如何创建Web服务并将令牌发送到服务器。所以我计划通过iOS代码为卡充电。
创建费用文档:Link
curl https://api.stripe.com/v1/charges \
-u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \
-d amount=999 \
-d currency=usd \
-d description="Example charge" \
-d source=tok_IPLStrXFSITtr78XW5SyDWL8
这里我们不知道如何用密钥制作帖子数据。
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:config];
NSString *urlString = @"https://api.stripe.com/v1/charges";
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
request.HTTPMethod = @"POST";
NSString *postBody = [NSString stringWithFormat:@"source=%@&amount=%@", sourceID, @1099];
NSData *data = [postBody dataUsingEncoding:NSUTF8StringEncoding];
NSURLSessionUploadTask *uploadTask = [session uploadTaskWithRequest:request
fromData:data
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
if (!error && httpResponse.statusCode != 200) {
error = [NSError errorWithDomain:StripeDomain
code:STPInvalidRequestError
userInfo:@{NSLocalizedDescriptionKey: @"There was an error connecting to your payment backend."}];
}
if (error) {
completion(STPBackendChargeResultFailure, error);
} else {
completion(STPBackendChargeResultSuccess, nil);
}
}];
[uploadTask resume];
错误:
You did not provide an API key. You need to provide your API key in the Authorization header, using Bearer auth (e.g. 'Authorization: Bearer YOUR_SECRET_KEY'). See https://stripe.com/docs/api#authentication for details, or we can help at https://support.stripe.com/.
我们看过类似的问题Apple Pay using Stripe send token to server and charge for purchase
提前致谢..
答案 0 :(得分:1)
您永远不应该 *从不* 在您的iOS应用中创建费用。您需要使用密钥才能产生费用,从应用程序中存储秘密API密钥或在应用程序中检索密钥是不安全的。
您的公钥可以安全地存储在您的应用中以创建令牌,然后您可以将该令牌发送到后端以产生费用。这允许您的密钥安全地存储在您的服务器上。
这是Stripe在ruby中的示例后端,向您展示如何使用您创建的令牌创建费用: https://github.com/stripe/example-ios-backend