安全键盘SDK集成

Q1. 为什么签约和支付时未显示密码键盘,而是显示系统默认软键盘?

后台密码键盘开关未打开,请联系招行开发人员帮忙打开。

Q2. 为什么签约绑卡输密码后出现报错,提示“操作失败,访问的人太多了,属性DrawPwd解密失败”或者支付时,输密码后,提示“交易失败!NP0020.请求处理失败,请重新提交”?

请确认:

1) 请再次确保sdk版本为最新版本.

2) 确认是否按照集成文档中的方法设置公钥。

3) 确认是测试密码或者生产密钥。

4) 确认公钥字符串中没有空格等特殊字符,即保证公钥字符串的正确性。

如上述都没问题,请联系招行技术支持人员,在签约阶段请联系手机银行服务端开发组,在支付阶段请联系一网通支付开发组。

Q3. 为什么App能调出密码键盘,但是网页上密码输入框中没有显示?

请确认:

1) 请再次确保sdk版本为最新版本.

2) 确认是否按照集成文档中的方法设置公钥。

3) 确认是测试密码或者生产密钥。

4) 确认公钥字符串中没有空格等特殊字符,即保证公钥字符串的正确性。

如不是上述原因,请参考下面的原因,适当处理:

ios版本:没有将当前页面赋值给密码键盘:secKeyboard.webView = _webView;

Android版本:WebView没有执行JS的权限,webview设置setJavaScriptEnabled(true)即可;或者webview所在的Activity线程被挂起。

Q4. 为什么绑卡页面输入卡片信息和验证码后提交系统一直提示正在加载或者出现奇怪页面。其url类似为:http://cmbls/cmbKeyboard.....,支付时也会出现该错误?

请严格按照集成文档中的方法去集成SDK。具体可参看例子程序kbTest中的代码。

ios版本:webview方法中,在if语句的最后面加上一句return NO;拦截请求。

安卓版本:shouldOverrideUrlLoading接口里请勿调用loadUrl接口去加载http://cmbls/cmbKeyboard。

注意:http://cmbls/cmbKeyboard.这个请求只是为了唤起键盘而构造的特殊URL,在唤起键盘后,不要在webview中去加载这个URL,务必拦截掉。

Q5. 为什么iPhone6以前的手机和部分安卓手机,密码键盘会遮挡输入框。

密码键盘的上一个输入键盘没有点击完成(系统键盘是done),如输入短信验证码时没有点击done,导致点击密码输入框捕获的url中,pointy和scrolltop的参数不对。使得页面滚动的幅度不对。(网页的问题)

Q6. 为什么输入密码后,再次点击密码输入框时,调出密码键盘,但是,输入框中的显示不清空。

不影响正常使用,无需处理。

Q7. 为什么Android手机,集成SDK后,生成release版APP失败,报错位置在SDK代码中?

cmbkeyboard.jar已混淆,APP里不需要再对cmbkeyboard.jar做混淆处理。

Q8. 为什么苹果手机,编译时提示支付宝和一网通的类Base64冲突。

支付宝和一网通的Base64类名相同。修改其中之一即可。1.5版iOS cmbkeyboard(6月初)已修复该问题。

Q9. 为什么苹果手机,使用kbTest编译时提示:ld: framework not found cmbkeyboard,但是使用开发包里的cmbkeyboard.framework就不发生该错误?

cmbkeyboard.framework能支持4种CPU类型的手机进行调试,但是kbTest中的cmbkeyboard.framework没有更新,只支持armv7、arm64的CPU。1.5版(6月初)版本修复这个问题。

Q10. 为什么苹果手机App编译时报错:ld: framework not found cmbkeyboard,找不到cmbkeyboard库?

1、确认mbkeyboard是否拷贝到本地项目目录下。

2、本SDK不支持armv7s类型的CPU,即不支持iphone 5和iphone 5C的真机调试。但是Release版没问题。

3、确认库的路径,在Build Setting页面中,查看“Framework Search Path”是否与自己的本地路径一致。

4、如上述都没解决,请重新解压SDK导入。

Q11. 为什么苹果手机,调出密码键盘后,能显示数字,但是不显示背景图片,密码键盘的界面是透明的?

项目中没有加载密码键盘的资源图片。方法:将开发包中的cmbkeyboard(ios版)目录下的 SecreteKeyBoard文件夹将其拷贝到Assets.xcassets或者Image.xcassets目录下。

Q12. 为什么苹果手机,点击输入密码,没有调出密码键盘,也没有调用系统默认键盘?

App没有设置网页代理,请在webviewcontroller.m的viewdidload方法中设置代理。[self.view addSubview:_webView]; _webView.delegate = self;

Q13. 为什么Ios端,输入一网通支付密码,弹窗直接关闭,安全键盘却不自动消失?

在那个handlesingletap方法里隐藏键盘,[[CMBWebKeyboard shareInstance] hideKeyboard]

Q14. 为什么弹出支付密码界面后闪退,提示:找不到CMBLS的服务器DNS地址?

客户端没有集成密码键盘导致

Q15. ios键盘sdk支持iOS6系统吗?

ios键盘sdk仅支持IOS7及以上。

Q16. 商户用iphone手机,在签约模式下,为什么输了取款密码,但是取款密码文本框为空,密码无法显示在密码文本框内?

IOS密码键盘公钥没有添加。

Q17. 安卓手机调起密码键盘的时候把手机屏幕熄灭(按关机键),再打开的时候会有一个黑框,怎么解决?

正常流程应该不会去按锁屏的,如果真要解决,可以监听下锁屏的广播,在收到锁屏消息时,调用PbKeyboardActivity.c().finish() 先把键盘关掉

Q18. 安卓版,商户在支付页面,调起键盘之前把页面关闭后,回到上个页面,密码键盘却弹出了,怎么解决?

可以看下商户的返回和handleurcall哪个先执行。密码键盘通过判断点击了返回键后,不再执行handleurcall,解决了返回app,还弹出招商密码键盘的问题。