Android 支付宝集成及解决支付宝报null指针问题
最近公司的先项目有用到支付宝sdk,虽然支付宝集成简单,但是作为小白的我在集成过程中仍然遇到了几个问题再次总结一下,希望对他人有所帮助。
第一步:
下载支付宝的官方demo压缩包后里面有两个文件,一个是DEMO文件夹,一个是更新日志的txt(不用管),DEMO文件夹里有三个文件夹:
一个是android的demo
一个是ios的demo
一个是openssl
接下来我们会把android的demo导入到我们自己的开发工具中eclipse,之后运行我们会发现,一个toast提示“ 需要配置PARTNER | SELLER | RSA_PRIVATE” ,其实android项目还需要一个变量RSA_PUBLIC(支付宝公匙)
第二步:
获取PARTNER、 SELLER、 RSA_PRIVATE、RSA_PUBLIC
PARTNER即商户PID ,这个登录自己的支付宝账号,到商家服务里面会有对应的PID和key点击查看即可
SELLER即商户收款账号,这个账号就是商户注册的支付宝的登录的账号
RSA_PRIVATE和RSA_PUBLIC是商户私匙和公钥,这两个变量要用到openssl文件夹下bin下的openssl.exe去生成。
生成RSA_PRIVATE和RSA_PUBLIC:
双击openssl.exe,这时候进入我们熟悉的命令窗口,
Windows用户在cmd窗口中进行以下操作:
C:\Users\Hammer>cd C:\OpenSSL-Win32\bin
进入OpenSSL安装目录
C:\OpenSSL-Win32\bin>openssl.exe
进入OpenSSL程序
OpenSSL> genrsa -out rsa_private_key.pem 1024
生成私钥
OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
Java开发者需要将私钥转换成PKCS8格式
OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
生成公钥
OpenSSL> exit ##
退出OpenSSL程序
注意:对于使用Java的开发者,将pkcs8在console中输出的私钥去除头尾、换行和空格,作为开发者私钥,对于.NET和PHP的开发者来说,无 需进行pkcs8命令行操作。(貌似我的没有进行pkcs8转换,一样的可以,转了反而不行了)
第三步:
将生成的RSA_PUBLIC到支付宝中上传,生成密钥
第四步:
运动demo,在运行的过程中可能回报一个空指针在
sign = URLEncoder.encode(sign, "UTF-8"); 这一行。这是由于支付宝针对的版本不同所造成的,
解决办法:找到SignUtils类,
PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(
Base64.decode(privateKey));
//此处由于版本不同可能要添加 “BC”
KeyFactory keyf = KeyFactory.getInstance(ALGORITHM,"BC");
PrivateKey priKey = keyf.generatePrivate(priPKCS8);
再次运行,空指针的异常就不见了。
第五步:
正常情况下现在demo就可以正常运行了进入支付宝的HTML5页面进行支付了,如果在运行的返回结果中返回
4000,系统繁忙。那么请认真检查你的清单文件,是不是缺少权限,或者忘记注册activity。
Android 支付宝集成及解决支付宝报null指针问题相关推荐
- SpringBoot集成Quartz(解决@Autowired空指针Null问题即依赖注入的属性为null)
SpringBoot集成Quartz(解决@Autowired空指针Null问题即依赖注入的属性为null) 参考文章: (1)SpringBoot集成Quartz(解决@Autowired空指针Nu ...
- iOS开发之第三方支付支付宝支付教程,史上最新最全第三方支付宝支付方式实现、支付宝集成教程,支付宝实现流程
本章项目demo: https://github.com/zhonggaorong/alipayDemo 支付宝支付大致流程为 : 1. 公司与支付宝进行签约 , 获得商户ID(partner)和账号 ...
- Android sharesdk 集成Google登陆,报错Success,{isSigin:false}
按照sharesdk官方的集成步骤一步不差的集成了第三方登陆,其中报错Google登陆,这是官方的第三方开发平台appkey申请地址大全:http://bbs.mob.com/forum.php?mo ...
- Android-Studio-Chipmunk版本解决gradle报错connection-refuse的问题
Android Studio Chipmunk版本解决gradle报错connection refuse的问题 文章目录 Android Studio Chipmunk版本解决gradle报错conn ...
- Android App集成支付宝
http://blog.csdn.net/wenzhibinbin_pt/article/details/7933078 手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传 ...
- Android中集成支付宝
手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能. 人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫 ...
- Android端集成支付宝支付
Android端集成支付宝支付 1.申请账号及配置变量 支付宝快速接入链接点击打开链接 支付宝扫码或者账号密码登录 下面是支付宝给出的接入介绍 第一步:创建应用并获取APPID 要在您的应用中接入支付 ...
- Android Study 之 6分钟妥妥集成微信以及支付宝支付
LZ-Says:来说俩件事儿: 1.一心只为一人用,一言只为一人说~ 2.今天坐公交,末班车,车上只有司机和我,阴森森的,吓死LZ了...一路小跑!!! 前言 (浪费一分钟) 今天,不讲这个,也不讲那 ...
- Android项目内简单集成微信和支付宝支付功能
最近自己公司的项目需要集成微信和支付宝支付,我是个初学者,然后就开始在网上各种搜索相关Demo.最后找了一个自我感觉还不错的Demo,挺适合初学者使用的.在使用之前一定要在微信平台和蚂蚁金服申请权限, ...
最新文章
- 原创|一文读懂主成分分析(PCA)
- MySQL查询出2门及2门以上不及格者的平均成绩
- 找不到类型{0} 它在 ServiceHost 指令中提供为 Service 特性值
- LMV358, LMV321, LMV324, LMV324S-注意事项
- WPF实例秀——如何获取UI元素的图像
- 用CSS伪类制作一个不断旋转的八卦图?
- react文字滚动插件_【赠书】Preact(React)核心原理详解
- 面试官:Spring创建好的单例对象存在线程安全问题吗?
- WebRequestDataBinder实现将请求参数映射为POJO对象
- jmeter 中的Parameters 和Body Data的区别
- Robot framework之元素定位实战
- hsf端口_分布式服务框架HSF
- 华为初面+综合面试(Java技术面
- 算法基础14 —— 图论入门之弗洛伊德算法(Floyed + Dijkstra + Bellman-Ford + SPFA)
- 华为路由三层交互:单臂路由实验
- 微信小程序时间加法_微信小程序获取系统时间、时间戳、时间时间戳加减
- 使用GeoServer发布WMS动态地图服务,使用openlayers访问wms服务浏览地图数据
- matlab画不定积分图像实例,matlab怎么画函数图像,原来是这样的
- 如何做好大数据监测和舆情案例分析工作的办法
- python语言编程中的感叹号_python 感叹号的作用
热门文章
- BHAR-事件研究法-示例数据Stata计算代码
- OpenGL ES_手把手教你打造VR全景播放器
- Excel表格怎么排序?升序和降序
- JAVA--JQuery
- Dubbo 通信协议 dubbo 协议为什么不能传大包
- 扫雷java程序算法设计_基于Java的Windows扫雷游戏的设计与实现毕业论文+任务书+翻译及原文+源码+辅导视频...
- Excel到期提醒制作
- 怎样把文字调成竖排_如何把横向文字变竖排文字?
- 加壳技术-safengine
- mattermost server的启动流程