iOS]使用form-data的方式提交表单

https://blog.csdn.net/wsyx768/article/details/103686724

 

做内购支付时,后端需要验证订单支付状态,因为这个校验字符串非常长,所以使用form-data的方式提交表单。

 

#pragma mark - 内购支付成功后确认

- (void)netApplePayWithTran:(SKPaymentTransaction *)transaction OrderId:(NSString *)orderId {
NSString *tranID = transaction.transactionIdentifier;
[[XYStore defaultStore] base64Receipt:^(NSString *base64Data) {
// base64Data = [GAPublicClass URLEncodedString:base64Data];
NSMutableDictionary *parms = [NSMutableDictionary dictionary];
[parms setObject:tranID forKey:@"transactionId"]; // 苹果内购交易ID
[parms setObject:base64Data forKey:@"payload"]; // 校验体(base64字符串
[parms setObject:orderId forKey:@"orderId"]; // 订单id
[self validationPartPost:parms];
} failure:^(NSError *error) {

}];
}

- (void)validationPartPost:(NSDictionary *)dicData {
NSString *POST_BOUNDS = @"yxqipayanzheng";
NSString *tokenStr = [AccountTool sqLoginModel].token;

NSURL *url = [NSURL URLWithString:[API_DOMAIN_COMMUNITY stringByAppendingString:url_apple_pay]];
NSMutableString *bodyContent = [NSMutableString string];
for(NSString *key in dicData.allKeys){
id value = [dicData objectForKey:key];
[bodyContent appendFormat:@"--%@\r\n",POST_BOUNDS];
[bodyContent appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];
[bodyContent appendFormat:@"%@\r\n",value];
}
[bodyContent appendFormat:@"--%@--\r\n",POST_BOUNDS];
NSData *bodyData=[bodyContent dataUsingEncoding:NSUTF8StringEncoding];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
[request addValue:[NSString stringWithFormat:@"multipart/form-data;boundary=%@",POST_BOUNDS] forHTTPHeaderField:@"Content-Type"];
[request setValue:tokenStr forHTTPHeaderField:@"token"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:bodyData];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
dispatch_async(dispatch_get_main_queue(), ^{
[MBProgressHUD hideHUDForView:KWindow animated:YES];
});
NSDictionary *responseJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSInteger status = [responseJSON[@"status"] integerValue];
if (status == 200) {

}
}];
[task resume];
}
TO
————————————————
版权声明:本文为CSDN博主「风浅月明」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wsyx768/article/details/103686724

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...