• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - instamojo 支付网关与 ios objective-c 的集成

[复制链接]
菜鸟教程小白 发表于 2022-12-12 23:55:19 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

如何在 iOS Objective C 中集成 instamojo 支付网关?可能没有直接的方法。那么通过WebView,如何在iOS中集成支付网关呢?已添加长 URL,但重定向链接中应放置什么以及发送 header 和参数的键。



Best Answer-推荐答案


为了将 Instamojo 与 ios 应用程序集成,唯一可能的方法是 webview。但是对于首先打开 webview,我们必须发送诸如支付金额和支付信息之类的数据。重定向 url 用于在成功交易后重定向到页面。我已将网站 Url 之一作为重定向 url 和来自委托(delegate)方法webview 如果我得到相同的 url,我关闭 webview 作为成功付款的指示。参数 send_email 为 true 是发送电子邮件以通知。此键值对根据 instamojo 指南进行记录。Api key 和身份验证 token 是凭据当您在 instamojo 中创建帐户时,该帐户将在 header 字段中传递以验证凭据。作为响应,我们得到长 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 protected]&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"OST"];

    [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];
    }
}

我们得到的Long Url 并且支付选项可以通过webview 来处理。longurl 是加载webview 的url

关于ios - instamojo 支付网关与 ios objective-c 的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42413625/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap