instamojo支付网关与ios目标c的集成

时间:2017-02-23 10:50:39

标签: ios objective-c instamojo

如何在iOS Objective C中集成instamojo支付网关?可能没有直接的方法。然后通过WebView,如何在iOS中集成支付网关?已经添加了长URL,但是应该在重定向链接中放置什么以及标头和参数的发送位置。

1 个答案:

答案 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的网址