美文网首页
通联支付接入注意事项

通联支付接入注意事项

作者: Fsn_soul | 来源:发表于2016-07-13 17:18 被阅读202次

项目里有接入通联支付,遇到一bug:进入快捷签约界面后,无论点哪里输入都弹出一个选择证件类型框,没法输入.

0CD6AC00D8FC4F94200DAB4AB0D13819.png

在更换了最新的通联SDK2.5.2,检查订单数据的正确性,跑他们DEMO.发现在DEMO上是正常的,但接入我们的工程里就出现了上述问题.
看了通联的界面上弹出的键盘上的东西,和IQKeyboardManager的风格很相似.

96C78955-A0C4-4C10-8779-812F7211D2EF.png

而我们的项目里面有使用了IQKeyboardManager第三方库,于是便把我们工程里的IQKeyboardManager第三方库去掉后,问题 (快捷签约界面,无论点哪里输入都弹出一个选择证件类型框,没法输入)就没有了.我觉得有可能通联的SDK里有使用了类似的键盘第三方库,导致了这个bug.

因此如果项目里面已经集成了IQKeyboardManager第三方库,但又要集成通联支付,那么慎重!!!
目前想到的暂时的解决办法就是改IQKeyboardManager源代码:
在进入到通联支付界面之前,先enable=NO,完事在=YES.

- (void)registerNotify
{
    //  Registering for keyboard notification.
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];
    
    //  Registering for textField notification.
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldViewDidBeginEditing:) name:UITextFieldTextDidBeginEditingNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldViewDidEndEditing:) name:UITextFieldTextDidEndEditingNotification object:nil];
    
    //  Registering for textView notification.
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldViewDidBeginEditing:) name:UITextViewTextDidBeginEditingNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldViewDidEndEditing:) name:UITextViewTextDidEndEditingNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFieldViewDidChange:) name:UITextViewTextDidChangeNotification object:nil];
    
    //  Registering for orientation changes notification
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willChangeStatusBarOrientation:) name:UIApplicationWillChangeStatusBarOrientationNotification object:nil];
}

- (void)resignNotify
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

/*  Automatically called from the `+(void)load` method. */
+ (instancetype)sharedManager
{
    //Singleton instance
    static IQKeyboardManager *kbManager;
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        
        kbManager = [[self alloc] init];
    });
    
    return kbManager;
}

#pragma mark - Dealloc
-(void)dealloc
{
    //  Disable the keyboard manager.
    [self setEnable:NO];
    
    //Removing notification observers on dealloc.
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

#pragma mark - Property functions
-(void)setEnable:(BOOL)enable
{
    // If not enabled, enable it.
    if (enable == YES && _enable == NO)
    {
        //Setting NO to _enable.
        _enable = enable;
        
        [self registerNotify];
        
        //If keyboard is currently showing. Sending a fake notification for keyboardWillShow to adjust view according to keyboard.
        if (_kbShowNotification)    [self keyboardWillShow:_kbShowNotification];

        _IQShowLog(IQLocalizedString(@"enabled", nil));
    }
    //If not disable, desable it.
    else if (enable == NO && _enable == YES)
    {
        //Sending a fake notification for keyboardWillHide to retain view's original frame.
        [self keyboardWillHide:nil];
        
        //Setting NO to _enable.
        _enable = enable;
        
        [self resignNotify];
        
        _IQShowLog(IQLocalizedString(@"disabled", nil));
    }
    //If already disabled.
    else if (enable == NO && _enable == NO)
    {
        _IQShowLog(IQLocalizedString(@"already disabled", nil));
    }
    //If already enabled.
    else if (enable == YES && _enable == YES)
    {
        _IQShowLog(IQLocalizedString(@"already enabled", nil));
    }
}

相关文章

  • 通联支付接入注意事项

    项目里有接入通联支付,遇到一bug:进入快捷签约界面后,无论点哪里输入都弹出一个选择证件类型框,没法输入. 在更换...

  • iOS 集成通联支付2(支付页面实现)

    直奔主题,上次是通联支付SDK的集成,今天是通联支付的支付页面实现!今天闲的蛋疼就传上来了 通联支付真的非常简单~...

  • 通联支付集成

    资料 SDK、Demo 地址 http://113.108.182.3:8282/techsp/helper/do...

  • iOS 通联支付

    本版本是基于V4.5 版的。目前的 SDK 版的所有版本必须以会员模式对接。 一共两个步骤,把下面的依赖库直接拖进...

  • iOS内购

    内购流程 一、填写协议,税务和银行业务 二、代码部分 三、注意事项 1.接入内购后把支付宝、微信支付的SDK删掉,...

  • 超详细Android接入支付宝支付实现,有图有真相

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微...

  • 支付宝支付接入(Android/IOS(swift)/Java后

    本文章仅作为个人笔记 接入方式可以参考支付宝登录接入 IOS端(swift):主要接入和代码可参考支付宝登录接入 ...

  • 接入支付宝注意事项

    按照支付宝支付,这个过程进行的很顺利,能够正常支付。但是在打包的时候不通过出现如下问题(图一)。是路径的问题。于是...

  • iOS RN 通联支付

    支付有很多 支付宝 微信 银联 等等 网上封装的也有很多 通联也有但是用的很少 在使用过程中 也在网上查找了下 下...

  • iOS 集成通联支付

    sdk部分可登陆 http://113.108.182.3:8282/techsp/index.html 选择{移...

网友评论

      本文标题:通联支付接入注意事项

      本文链接:https://www.haomeiwen.com/subject/phtejttx.html