第三方分享:我使用的是友盟第三方分享,首先注册友盟开放平台账号,创建应用,生成对应的Appkey,然后在项目导入友盟提供的Jar包
在QQ开放平台申请账号,之后认证,完成之后创建应用,然后绑定包名和签名。
在WX开放平台申请账号,认证,WX开放平台是有费用的每年300,之后认证通过创建应用,然后绑定包名和签名
在微博开放平台申请账号,创建应用,绑定包名和签名
之后在清单文件中配置各个平台需要的权限,然后再进行初始化,之后按照文档集成
第三方定位地图:
在百度地方开放平台注册账号,创建应用,然后获取SHA1值,创建完成会生成AK
下载自己需要的功能的开发包,导入百度提供的Jar包,添加SO文件,之后配置百度需要的权限和注册四大组件,最后在初始化布局之后,通过继承百度地图中的一个抽象类,叫BDLocationListener,重写它的onReceiveLocation()方法,然后通过LocationClient注册这个监听,就可以实现地图的定位功能了.
Tag:
当问为什么集成百度而不集成高德地图的回答(或者反着问):
首先说一下高德和百度的优劣点:
- 高德地图可以离线(没网也可以用)运行,而百度地图是必需有网络才可以的。
- 驾车导航上高德地图更精准一些,而步行的话百度地图更为精准。
- 百度地图上的应用场景比高德地图场景多,这是因为有着强大的百度做支撑.
- 百度地图有全景功能,能给用户带来逼真的全景三维效果,还有步行实景功能和新闻资讯功能,这些是高德所没有的。
回答方法:
根据地图优点回答 比如:因为我们公司主要其实是为了更全面的向用户展现地图的场景,所以我选择了集成百度地图,因为百度地图是由百度公司开发,所以在信息收集这方面做得更好,可以展示的场景也就更多.
第三方推送:
我使用的是极光推送,先注册极光账号,创建应用,申请AK,导入极光提供的Jar包,添加极光需要的权限,之后按照文档集成就可以了
第三方支付:
支付宝支付
在注册完蚂蚁金服开放平台之后,需要先使用秘钥生成工具生成一对公钥和私钥;
然后将生成的公钥传给支付宝,得到支付宝的公钥;
这个时候我们自己生成的秘钥就会和这个支付宝的公钥匹配。
然后让我们的项目导入支付宝提供的jar包;
然后在清单文件配置好支付宝需的权限 以及一些 h5页面的activity。
然后在我们需要支付的逻辑代码中去使用支付宝提供的 api;
我们主要用到paytask这个类,然后调用paytask.pay()方法;
将从服务器获取的订单信息传入,然后就可以发起支付了。
从服务器获取的订单信息比较重要:
主要包括 biz_content,时间戳,随机字符串,appid,签名,等等一些必要的信息
biz_content中主要有订单的描述,订单的名称,订单的金额,订单的超时时间,订单的唯一编码等
然后发起支付后,会有一个返回结果
我们可以从返回结果中根据返回码去判断支付是否成功:
如果支付成功,返回9000,支付失败返回4000,
用户取消 返回6001。
最后根据返回结果,去做不同的页面跳转。
微信支付
微信的注册方式和支付宝不太一样,微信需要注册两个平台的账号:
一个微信开放平台,一个微信商户平台
微信开放平台是为了拿到appid,微信商户平台是为了拿到商户id。
微信也不需要私钥公钥什么的,直接就开始集成就好了
微信先添加依赖,在 build.gradle中直接添加依赖就可以了
然后到清单文件配置一些权限
然后在Applicaiton或者是MainActivity中通过AppId去注册WxApi。
然后后边就需要调用微信的api 去创建一个PayRequest
然后根据服务器返回的的订单支付信息
去给刚才创建出来的PayRequest配置信息:
配置信息包含:商户id,预支付id,随机字符串,时间戳,签名等信息
然后通过 WXApi(微信api)去发起这个支付请求。
然后我们还需要在我们的项目的根目录下创建一个wxapi的包
然后在包下创建一个WXPayEntryActivity这样名字的一个Activity类
并且实现IWXAPIEventHandler接口,实现接口中的onResp方法
然后根据 返回参数中的errCode(返回码)去做下一步的操作。
errCode为0 表示 支付成功
errCode为-1 表示 支付失败
(可能是因为签名错误,appid未设置或者设置错误等订单返回的预支付id不正确等等)
errCode为-2 表示用户取消
根据返回码,去做不一样的操作即可。