支付宝集成
2017-02-06 本文已影响0人
一只在时光里流浪的大懒猫
集成步骤:
- 1.【申请APPID】在蚂蚁金服开放平台上,创建一个项目,申请到APPID
- 2.【导入SDK】按照开发文档,导入支付宝SDK及相关文件,并进行代码混淆配置
- 3.【获取orderInfo】将订单相关信息,通过接口发送到自己服务器,服务器进行RSA加密后,返回给客户端一个字符串orderInfo,作为支付API的参数
- 4.【调用API】客户端,开启一个子线程去调用支付宝SDK的API,如果客户端装有支付宝APP,则进行支付宝客户端的相关支付流程;如果没有装,则跳转H5页面进行支付。支付完成后,显示支付结果
- 5.【支付结果】支付成功后,在蚂蚁金服开放平台上配置的回调接口会notify服务器端,然后服务器端修改订单状态,返回给客户端,客户端获取更新后的新信息并展示
集成过程中的几个坑:
- 1.【orderinfo的坑】一开始测试,我是在客户端生成orderinfo的,参照的是官方的支付Demo,结果不能跑通,断点调试,发现错误发生在SignUtils中的sign方法的最后一步
return Base64.encode(signed);
网上调查,有人说是支付宝版本问题。在SignUtils中作如下修改,
KeyFactory keyf = KeyFactory.getInstance(ALGORITHM);
KeyFactory keyf = KeyFactory.getInstance(ALGORITHM,"BC");
- 2.【APPID的坑】调试的时候,记得开启沙箱环境,使用沙箱环境下的APPID
- 3.【RSA公私钥的坑】按照开发文档,在平台上下载一个RSA的生成器,生成公私钥后,将公钥上传开放平台,私钥放在Demo下