如何在iOS Objective C中集成instamojo支付网关?可能没有直接的方法。然后通过WebView,如何在iOS中集成支付网关?已经添加了长URL,但是应该在重定向链接中放置什么以及标头和参数的发送位置。
答案 0 :(得分:2)
为了将Instamojo与ios app集成,只有可能的方式是webview。但是对于打开webview,首先我们必须发送付款金额和付款信息等数据。重定向网址用于在成功交易后重定向到页面。我已将网站Url中的一个作为重定向网址和委托方法webview如果我得到相同的网址我关闭webview作为成功付款的指示。参数send_email的一个是真的是发送电子邮件通知。这个密钥值对按照instamojo指导进行记录.Api密钥和身份验证令牌是凭据你在instamojo中创建帐户时会在头字段中传递以验证凭证。在响应中我们得到长URL并且在该URL上应该打开webview
开启按钮单击调用以下功能
-(void)func_proceedCheckout
{
NSError *error;
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
NSString *post = [NSString stringWithFormat:@"amount=10&purpose=dummy&redirect_url=http://url to be redirected&buyer_name=Aashi&phone=123456789&email=demo@gmail.com&send_email=true&Name=Aashi"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSURL * url=[NSURL URLWithString:[NSString stringWithFormat:@"https://www.instamojo.com/api/1.1/payment-requests/"]];//Url to be called
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
[request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"0" forHTTPHeaderField:@"Content-Length"];
[request addValue:@"123456789" forHTTPHeaderField:@"X-Api-Key"];//Get from Instamojo Account
[request addValue:@"123456789" forHTTPHeaderField:@"X-Auth-Token"];//Get from Instamojo Account
if (!error) {
NSURLSessionDataTask *downloadTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (!error) {
NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response;
if (httpResp.statusCode == 201) {
NSLog(@"%@",httpResp);
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:&error];
NSLog(@"%@",json);
NSDictionary * dic = [json objectForKey:@"payment_request"];
NSLog(@"%@",dic);
NSString * longurl = dic[@"longurl"];
NSURL *url = [NSURL URLWithString:longurl];
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
if (success) {
NSLog(@"Opened url");
}
}];
}
}
}];
[downloadTask resume];
}
}
我们得到的长网址付款选项可以通过webview处理.longurl是一个加载webview的网址