Paytm sdk ios集成打开Paytm付款表格?

2024-01-12

在 iOS (Xcode 7) 中集成 Paytm sdk 2.1 并配置为进行支付。

我有一个表格,其中需要填写金额和其他字段,然后有一个 Payment 按钮。

这是我正在使用的代码:

 //Step 1: Create a default merchant config object
    PGMerchantConfiguration *mc = [PGMerchantConfiguration defaultConfiguration];

    //Step 2: If you have your own checksum generation and validation url set this here. Otherwise use the default Paytm urls
    mc.checksumGenerationURL = @"generate checksum url";
    mc.checksumValidationURL =   @"checksum validation url";


    //Step 3: Create the order with whatever params you want to add. But make sure that you include the merchant mandatory params
    NSMutableDictionary *orderDict = [NSMutableDictionary new];
    //Merchant configuration in the order object
    orderDict[@"MID"] = @"abc1111"; 
    orderDict[@"CHANNEL_ID"] = @"WAP";
    orderDict[@"INDUSTRY_TYPE_ID"] = @"Education";
    orderDict[@"WEBSITE"] = @"companyname";
    //Order configuration in the order object
    orderDict[@"TXN_AMOUNT"] = @"100";
    orderDict[@"ORDER_ID"] = [Feepayment generateOrderIDWithPrefix:@"111"];
    orderDict[@"REQUEST_TYPE"] = @"DEFAULT";
    orderDict[@"CUST_ID"] = @"abc7777";

    PGOrder *order = [PGOrder orderWithParams:orderDict];

    //Step 4: Choose the PG server. In your production build dont call selectServerDialog. Just create a instance of the
    //PGTransactionViewController and set the serverType to eServerTypeProduction


    [PGServerEnvironment selectServerDialog:self.view completionHandler:^(ServerType type)
     {
         PGTransactionViewController *txnController = [[PGTransactionViewController alloc] initTransactionForOrder:order];

         //show title var
         UIView *mNavBar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,44)];
         mNavBar.backgroundColor = [UIColor grayColor];
         txnController.topBar = mNavBar;

         //Cancel button
         UIButton *mCancelButton = [[UIButton alloc] initWithFrame:CGRectMake(5, 2, 70, 40)];
         [mCancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
         mCancelButton.titleLabel.textColor = PURPLE_COLOR;
         [mCancelButton setFont:[UIFont fontWithName:@"Helvetica-Bold" size:15.0]];
         txnController.cancelButton = mCancelButton;


         //add title
         UILabel *mTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.view.frame.size.width/2 - 10, 1, 100, 50)];
         [mTitleLabel setText:@"Payment"];
         [mTitleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:15.0]];
         mTitleLabel.textColor = [UIColor whiteColor];
         [mNavBar addSubview:mTitleLabel];

         if (type!=eServerTypeNone) {
             txnController.serverType = type;
             txnController.merchant = mc;
             txnController.loggingEnabled = YES;
             txnController.sendAllChecksumResponseParamsToPG = YES;
             txnController.delegate = self;
             [self showController:txnController];
         }

     }];

//show controller method
-(void)showController:(PGTransactionViewController *)controller {
    if (self.navigationController != nil)
        [self.navigationController pushViewController:controller animated:YES];
    else
        [self presentViewController:controller animated:YES
                         completion:^{

                         }];
}
//remove controller
-(void)removeController:(PGTransactionViewController *)controller {
    if (self.navigationController != nil)
        [self.navigationController popViewControllerAnimated:YES];
    else
        [controller dismissViewControllerAnimated:YES
                                       completion:^{
                                       }];
}
#pragma mark PGTransactionViewController delegate

- (void)didSucceedTransaction:(PGTransactionViewController *)controller
                     response:(NSDictionary *)response {
    DEBUGLOG(@"ViewController::didSucceedTransactionresponse= %@", response);
    NSString *title = [NSString stringWithFormat:@"Your order  was completed successfully. \n %@", response[@"ORDERID"]];
    [[[UIAlertView alloc] initWithTitle:title message:[response description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
    [self removeController:controller];
}

- (void)didFailTransaction:(PGTransactionViewController *)controller error:(NSError *)error response:(NSDictionary *)response {
    DEBUGLOG(@"ViewController::didFailTransaction error = %@ response= %@", error, response);
    if (response)
    {
        [[[UIAlertView alloc] initWithTitle:error.localizedDescription message:[response description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
    }
    else if (error)
    {
        [[[UIAlertView alloc] initWithTitle:@"Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
    }
    [self removeController:controller];
}

- (void)didCancelTransaction:(PGTransactionViewController *)controller error:(NSError*)error response:(NSDictionary *)response {
    DEBUGLOG(@"ViewController::didCancelTransaction error = %@ response= %@", error, response);
    NSString *msg = nil;
    if (!error) msg = [NSString stringWithFormat:@"Successful"];
    else msg = [NSString stringWithFormat:@"UnSuccessful"];

    [[[UIAlertView alloc] initWithTitle:@"Transaction Cancel" message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
    [self removeController:controller];
}

- (void)didFinishCASTransaction:(PGTransactionViewController *)controller response:(NSDictionary *)response {
    DEBUGLOG(@"ViewController::didFinishCASTransaction:response = %@", response);


}

Here is screenshot while using staging directly showing this page : enter image description here

*注意-实际上我正在尝试登台而不是生产。

当我执行时,它不会显示 Paytm 费用支付表单,而是直接显示订单 ID 和金额以及交易 ID。

如何打开 Paytm 付款表格,当用户在表格中输入费用金额时,它应该计算包含额外税费的金额,然后单击费用支付按钮,它应该打开 PAYTM 付款表格。

请帮我解决这个问题(我已经一步步查看了 PAYTM SDK 文档,但找不到它)。 谢谢。

重要提示:**就 checksumGenerationURL 和 checksumValidationURL 而言,我们需要创建它。最初我尝试使用 Paytm 但它不起作用,所以最后我们的服务器团队做到了,这是集成 Paytm 最重要​​的一点


最后,通过在生产上测试并工作正常解决了这个问题。就 Staging 服务器而言,我猜 sdk 中存在硬编码信息,因此希望在下一个版本的 PGSDK 中我们也可以在 Staging 上对其进行测试。

Thanks .

@Pradeep k ...非常感谢您的所有宝贵支持。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Paytm sdk ios集成打开Paytm付款表格? 的相关文章

  • 将 UIPanGestureRecognizer 添加到 UIScrollView 时禁用滚动

    我有一个滚动视图 我想让它在平移完成时消失 它工作正常 平移时滚动视图消失 但问题是现在我无法滚动内容 UIView animateWithDuration 0 2 delay 0 2 options UIViewAnimationCurv
  • 如何为整个 iOS 应用程序设置自定义字体而不指定大小

    我正在尝试在整个我的应用程序中应用自定义字体iOS app 我发现我可以使用 UILabel appearance setFont UIFont fontWithName Proxima Nova size 17 0 设置所有的默认字体和大
  • 如何跟踪 SwiftUI 应用程序中的所有触摸

    我正在尝试在 SwiftUI 应用程序中实现锁屏 我需要跟踪每个事件才能重新启动锁定计时器 在 UIKit 应用程序中 我使用了这种方法 重写 UIApplication 它允许了解应用程序中的任何事件 override func send
  • 如何在 SwiftUI 中将变量从一个视图传递到另一个视图

    我正在尝试将一个变量从一个视图传递到 SwiftUI 中的另一个视图 我有一个重置按钮 我想在另一个视图中将变量设置为零 我尝试在视图一中创建一个新结构并在视图2中访问该变量 View 1 State var count MyNumber
  • 渐变方向从左到右

    我完全被这个问题难住了 它应该如此简单 以至于让我发疯 我正在使用这个苹果反射教程 苹果反射示例 http developer apple com library ios samplecode Reflection Listings MyV
  • 将 .p12 证书存储在钥匙串中以供稍后使用

    我正在尝试按照 Apple 文档处理此处的客户端 p12 证书 https developer apple com library ios documentation Security Conceptual CertKeyTrustProg
  • SpriteKit - 对多个 SKNode 上运行的多个 SKAction 进行排序

    我非常了解 SKAction API 但在多个节点上运行顺序代码时我无法获得良好的代码 这是示例代码 简化 import SpriteKit class GameScene SKScene weak var node1 SKNode wea
  • 如何在 UITextView 中禁用放大功能

    我想摆脱 UITextView 中的放大和文本选择 但我需要电话号码 链接和地址检测器 我在用 void addGestureRecognizer UIGestureRecognizer gestureRecognizer if gestu
  • sizeToFit 运行异常

    我有一段代码 每次发生后端数据库更改时都会执行 本质上我在父视图中有一个标签 标签由许多状态消息之一更新 每个状态消息位于不同的行上 并以换行符 n 结尾 每条状态消息只能在一行上 并且不能过多 我遇到的问题是 当视图首次重新加载时 一切正
  • NSIndexpath.item 与 NSIndexpath.row

    有谁知道之间的区别NSIndexpath row and NSIndexpath item 具体来说 我在以下情况中使用哪一个 UITableViewCell tableView UITableView tableView cellForR
  • 如何使用群组在 iPhone 和 Apple Watch 之间共享数据?

    我是 Watchkit 开发新手 无法找到在 iPhone 和 iWatch 之间共享数据的解决方案 请帮助我 我希望使用组来共享数据 我们可以使用组在 iPhone 和 iWatch 之间传递数据 基本上iWatch不能做任何处理 我们需
  • SKScene和SKView的paused属性之间的区别

    我使用以下代码暂停 SKScene self paused YES 然而 根据这个answer https stackoverflow com a 21593852 2043580 by 安德烈 戈尔杰耶夫 https stackoverf
  • 在 iOS Safari 上滚动后锚点失去点击能力

    使用它来获取点击次数 nav li a click function event event preventDefault target this attr href replace goToByScroll target 这是滚动功能 f
  • 如何将 SCNPlane 颜色更改为透明颜色

    我正在开发一个 ARKit 项目 在水平面上点击时需要波纹动画效果 为此 我采用了 UIView 对象并将其作为 SCNPlane 对象材料的内容传递 我已将波纹动画添加到 UIView 对象 一切正常 但我无法将 SCNPlane 颜色更
  • 带有图像的 UITableView 滚动非常慢[重复]

    这个问题在这里已经有答案了 可能的重复 带图像的表格视图 加载和滚动缓慢 https stackoverflow com questions 4071497 table view with images slow load and scro
  • Xcode 服务器 ibtool 构建失败

    我一直在研究使用 Xcode Server 进行 CI 我已经解决了一些问题 但现在有一个问题困扰着我 构建似乎工作正常 但在测试阶段挂起 并在日志底部生成以下内容 2015 11 25 14 44 45 650 xcodebuild 58
  • 旋转 GPUImageTiltShiftFilter - GPUImage

    我想要一个非水平 GPUImageTiltShiftFilter 旋转 我想将其旋转到任意旋转角度 我还希望过滤器速度快 可以通过带有 UIRotationGestureRecongizer 的 UI 进行旋转 我该怎么做呢 啊 想通了 不
  • dyld:无法加载插入的库,但可以在模拟器和另一部 iPhone 上使用

    所以我在过去的几个小时里在我的应用程序上编码 在某个时候我决定在我的 iPhone 8 13 3 1 上启动我的应用程序而不是使用模拟器 13 3 它立即崩溃并出现以下错误 dyld warning could not load inser
  • 如何将NSTextView的格式化内容转换为字符串

    我需要将 NSTextView 的内容从 Mac 应用程序传输到 iOS 应用程序 我使用 XML 作为传输文件格式 所以我需要将 NSTextView 的内容 文本 字体 颜色等 保存为字符串 有什么办法可以做到这一点吗 一种方法是存档
  • 应用程序仅启用纵向,但 UIImagePickerController 在 iOS6 中旋转

    请注意 下面的答案 不适用于 iOS6 所以我仍然需要答案 我的应用程序仅启用纵向模式 但是 如果我将 UIImagePickerController 作为子视图嵌入其中 并旋转设备 则顶部和底部栏将保持在同一位置 但 UIImagePic

随机推荐

  • Python 中是否有一个函数可以生成给定字母表上长度为 n 的所有字符串?

    我需要一个函数generateAllStrings n alphabet 做这样的事情 generateAllStrings 4 a b gt gt gt aaaa aaab aaba aabb abaa bbba bbbb 换句话说 ge
  • 如何在 Tkinter 窗口中打开网站?

    我正在尝试使用 Tkinter 构建一个简单的网络浏览器 我想知道如何在 Tkinter Python 中打开网站 你不能轻易地做你想做的事 Tkinter 无法渲染 html 您必须自己解析 HTML CSS 和 Javascript 并
  • 如何在两个不同的服务器之间移动 perforce 仓库,以便复制修订历史记录,但不复制用户信息和工作区?

    我需要将仓库从一台 Perforce 服务器复制到另一台 文件修订历史记录需要保持完整 但用户信息和工作区信息不能复制到新服务器 我已经尝试了标准检查点创建和恢复过程 但如果两台服务器上都存在同名的用户或工作区 源服务器将覆盖目标服务器上的
  • 自动热键如何检测您所在的虚拟桌面?

    您好 我是自动热键 以及一般编程 的新手 我想编写一个脚本 让我可以方便地切换到特定的桌面 例如 在我的脚本中 Capslock 3 切换到桌面 3 正如您所看到的或者如果您尝试一下 它并不是很强大 该脚本只知道与真实桌面号码不同的桌面号码
  • 调整 RMarkdown 文档中使用 kable() 制作的表格的宽度

    使用knitr中的kable 函数制作表格时是否可以调整列的宽度 对于具有两列的表来说 这样的块会生成一个占据文档整个宽度的表 我想让列更窄 这可以用 kable 完成还是需要另一个包 这个 rmarkdown 块 r df lt data
  • Windows Phone 8 中的自动深色/浅色图标支持

    我认为这是一个很常见的问题 但我找不到适合我的解决方案 众所周知 WP 支持深色和浅色主题 用户可以更改主题 并且有多种方法可以覆盖他的决定并以您选择的颜色主题显示所有内容 但是 我只是想对这两种主题类型做出反应 并且我想以正确的颜色显示图
  • 删除字符串中的逗号,用逗号和双引号括起来 / Python

    我在 stackoverflow 上发现了一些类似的主题 但我是 Python 和 Reg Exps 的新手 我有一根绳子 2 星级宜必思柏林高级酒店于 2009 年进行了全面翻修 Messe 拥有 168 间空调客房 毗邻 柏林的 ICC
  • forEach 和 for (objs 中的 var o) 之间的性能差异

    以下之间的执行速度和 或内存消耗是否有任何差异 for var o in objs and objs forEach o 对于列表和队列 在我的机器上 使用 Dart VM 后者的速度往往要快 2 到 2 5 倍 这是有道理的 因为forE
  • 在express js路由中调用异步函数的正确方法

    我现在就是这样做的 但试图看看是否有正确的或其他的方法可以做到这一点 async function getmanual vars req res ajax var return data let db await mongo client
  • vim:添加注释宏

    Vim 对我来说几乎是完美的 但我仍然想要行注释和块注释功能 我想知道如何编写 vimrc 来在 python 和 javascript 中执行此操作 没有插件 http www vim org scripts script php scr
  • 为什么苹果的闭包声明缺少参数标签

    当我读完UIKit 大多数时候我看到的是闭包 作为函数参数 缺少这样的参数标签 func fooClosure fooClosure Bool gt Swift Void 在某些情况下我可以猜出它代表什么 而在其他情况下我不能 Exampl
  • 从数据文件 VB 脚本中读取下一行

    我正在尝试获取数据标记文件的下一行 但是因为有多行具有相同的标记 所以它正在经历并获取最后一行 但我需要第一行 下面的示例标记文件 Summary SA2100 7775555 Summary SUM100 9674555 Summary
  • 使用 Jquery 附加多个 html 元素

    我对 jQuery 很陌生 想知道是否有人可以建议我最佳实践 我希望将一个 div 元素附加到页面 其中包含大量 html 并且不确定实现此目的的最佳方法是什么 或者是否建议使用 jquery 例如 如果我想使用 jquery 将以下代码附
  • 函数模板的多个定义

    假设头文件定义了一个函数模板 现在假设有两个实现文件 include这个头 并且每个都调用了函数模板 在两个实现文件中 函数模板都使用相同的类型进行实例化 header hh template
  • 加载页面时显示加载动画微调器

    我想在 JQueryMobile 页面中显示加载动画微调器 该页面是通过 ajax 关闭加载的 页面已加载data ajax false or rel external 我试穿了pagebeforecreate and pageshow事件
  • Javascript样式对象将复杂的颜色名称转换为rgb

    当将复杂的 CSS 颜色名称应用于 DOM 元素时 有没有一种方法可以覆盖 javascript 将复杂的 CSS 颜色名称转换为 RGB 值的方式document getElementById xxx style object 例如 设置
  • php imagemagick 创建平铺金字塔 TIFF

    好吧 正如标题所说 我遇到了一个问题 我的测试函数是这样的 imagePath tmp 511a3874a0da1 pngName imagePath png tifName imagePath tif tempImg new Imagic
  • 具有多个子类型的 Scala 泛型(元组)类型

    我正在 Scala 中编写一个数据结构 基本上是一个哈希图 它将采用一个元组 每次可能有不同数量的参数 并用它做一些事情 为了一般地实现这一点 我定义了一个类型 type T lt Tuple1 with Tuple2 with Tuple
  • 更改应用程序中的 Cocoa 显示名称?

    如何更改 OS X 上 Dock 中应用程序上方显示的名称 我尝试过重命名目标并重命名我的项目 而且 我已经用 Google 搜索过它 经过进一步谷歌搜索后 我发现了这一点 项目 gt 编辑活动目标 gt 打包 gt 产品名称 虽然我第一次
  • Paytm sdk ios集成打开Paytm付款表格?

    在 iOS Xcode 7 中集成 Paytm sdk 2 1 并配置为进行支付 我有一个表格 其中需要填写金额和其他字段 然后有一个 Payment 按钮 这是我正在使用的代码 Step 1 Create a default mercha