这几天在弄android的支付宝unity3d插件,在这记录一下,以供后人参考。1:android 4.1版本以上支付时遇到"java.security.spec.InvalidKeySpecException" 跳转支付宝支付时出现异常,debug发现“java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag”;在网上找了下,发现stackOverFlow有个比较符合这个问题的答案:
1
2
3
4
5

// use encription in my app. I store private key as bytes array and use the following code to restore it:

PrivateKey
private
= KeyFactory.getInstance(
"RSA"
).generatePrivate(
new
PKCS8EncodedKeySpec(s_privateKeyIn1t));

// It works perfectly on all my target android platforms 2.1 -> 4.0.4, but fails on Jelly Bean!

测试出现bug的机器刚好是android4.1的系统。根据其中一个答案 修改支付宝插件demo Rsa.java相应的sign和doCheck方法:

1
2
3

PKCS8EncodedKeySpec privSpec =
new
PKCS8EncodedKeySpec(s_privateKeyIn1t);

KeyFactory keyFactory = KeyFactory.getInstance(
"RSA"
,
"BC"
);

PrivateKey privateKey = keyFactory.generatePrivate(privSpec);

再次测试OK;
http://blog.csdn.net/nono_love_lilith/article/details/88339602:华为测试机支付时卡死 在公司华为测试机上调用支付方法时卡死,其他同样版本机器上无次问题。 初步估计是华为机预装有支付宝快捷支付服务,且该服务不能删除。调用支付宝demo时所用支付服务和机器预装服务版本不匹配造成。 该原因还没有验证,稍后root删除机器预装支付服务后再来补充。

更多相关文章

  1. Android(安卓)下GDB调试
  2. 使用 Android(安卓)Studio 进行测试 (一) 单元测试
  3. Android(安卓)单元测试 Error: ShouldNotReachHere()
  4. Android(安卓)开发Tips 之 Bmob操作
  5. Study:基于Selenium进行Android客户端自动化测试的例子。
  6. zz:Android(安卓)APP Monkey信息自动收集脚本
  7. 移动安全测试框架MobSF(二):动态分析
  8. 在android下获取有线和无线IP地址的方法,经测试可用
  9. Android(安卓)Activity 测试

随机推荐

  1. android绘图Paint.setXfermode()和Canvas
  2. 自己写的一套应用管理系统(包含一套app系
  3. 浅谈Android之系统概述
  4. android的应用程序调用另一个应用程序的
  5. Android(安卓)设备关闭实体按键
  6. AndroidUI设计之 布局管理器 - 详细解析
  7. Android利用Fiddler进行网络数据抓包
  8. Android(安卓)NDK
  9. android的四种启动方式和各自特点
  10. Android(安卓)Studio 之一个项目的不同视