Paytm sdk ios整合打开Paytm支付表格?

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

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

这是我正在使用的代码:

//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); } 

这是使用staging直接显示此页面时的屏幕截图: 在此处输入图像描述

*注意 – 实际上我正在尝试不用于生产。

当我执行时,它没有显示Paytm feepayment表单,而是显示orderid和金额与事务ID dirctly。

当用户在表格中输入费用金额时,如何打开Paytm支付表格,然后应该用额外税收计算金额,然后点击“付款”按钮,它应该打开PAYTM PAYMENT FORM。

请帮助我解决这个问题(我已经逐步通过PAYTM SDK DOC,但很难找到它)。 谢谢。

重要:**就checksumGenerationURL和checksumValidationURL而言,我们需要创建它。 最初我尝试使用Paytm,但它最终工作,所以最终我们的服务器团队做到了,这是整合Paytm最重要的一点

最后,通过测试生产及其工作正常解决。 就Staging服务器而言,我猜sdk中存在硬编码信息,所以希望在下一版本的PGSDK中我们也可以在Staging上测试它。

谢谢 。

@Pradeep k …非常感谢您的宝贵支持。

您是否正确填充了mc.checksumGenerationURL和mc.checksumValidationURL? 还有一个2.7版本的SDK应该使用。 向您的Paytm联系人询问最新的iOS SDK。

现在关于金额,Paytm不计算税额。 您必须将其添加到您发送给Paytm的金额。