产品中接入了微博/微信的第三方登陆分享功能、微信和支付宝的第三方支付功能,以前在开发过程当中涉及到这些部分,因而抽空将接入过程梳理了一遍。php
SDK下载html
设置URL Scheme,用于从第三方应用或浏览器中启动appios
将SDK添加到工程中(支持CocoaPods),app启动时(didFinishLaunchingWithOptions)注册appkeygit
重写AppDelegate 的handleOpenURL和openURL方法,其它引用类库等开发环境设置具体参考SDK中提供的《微博iOS平台SDK 档》便可。后续便可针对登陆分享场景调用SDKgithub
下载地址api
开放平台SDK相关说明浏览器
配置相关与微博SDK基本一致,设置URL Scheme、添加相关类库、启动时注册appKey及重写handleOpenURL和openURL方法。微信
须要注意的是若是没有安装微信客户端,是没法像微博或支付宝那样调起网页进行操做的,因此须要使用SDK提供的方法“[WXApi isWXAppInstalled]”检测微信是否安装,若没有安装,则微信相关的操做没法进行,微信登陆或分享的标识须要隐藏。app
设置URL Scheme、添加相关类库,设置开发环境,详细参考DEMO及集成流程文档。
须要特别注意的点:
①Header Search Paths的设置
②白名单设置
③私钥生成
在支付宝支付sdk demo里提供了相关工具
在weibo sdk的协议方法“- (void)didReceiveWeiboResponse:(WBBaseResponse *)response”中判断操做行为及状态,经过认证申请后便可去请求获取用户信息,得到用户信息后再进行登陆相关处理便可
微博分享其实就是发微博操做,对应的是一个接口,不像微信分享那样会跳转过去,在微信里确认输入信息后分享,因此在应用里须要构建一个页面,将分享到微博的信息先展现预览出来,供用户修改文字等等,点击肯定再执行分享操做。根据分享对象构造相关参数调用接口便可
这里须要注意三点:
①微博字数限制为140字,超过没法分享。
②分享操做前须要更新access_token,防止过时致使没法进行相关操做
响应方法didReceiveWeiboResponse中拿到申请认证返回结果,刷新存储access_token等值便可
③分享时图片参数能够是一个url或者WBImageObject,二选一便可,若是两者都有值,则url被忽略。
code在获取access_token后失效
微信分享有分享到朋友圈(WXSceneTimeline)、分享到对话(WXSceneSession)两种,最多见的也就是图文类型的网页。
点击分享的网页,调起客户端则在微信的协议方法“onReq”里进行处理,根据相应规则逻辑在应用内跳转页面等等。
参考微信支付提供的demo进行接入,设计的是客户端与后台交互,由后台来调用微信支付接口,主要流程以下:
选择商品并填写相关信息后提交订单,后台返回订单数据(后台调用微信的统一下单api),后续支付时须要用到。
根据以前拿到的订单数据(订包括单id),向后台发起微信支付的请求,拿到请求结果后调起微信客户端准备支付
在“-(void) onResp:(BaseResp*)resp”方法判断支付操做状态,进行相应处理,例如支付成功后跳转到订单详情页给用户展现订单及支付信息等等。
一样,参考支付宝支付demo进行接入,客户端与后台交互,由后台来调用支付宝支付的接口,主要步骤以下:
选择商品并填写相关信息后提交订单,后台返回订单数据。
根据以前拿到的订单数据(订包括单id),向后台发起支付宝支付的请求,拿到请求结果后调起支付宝客户端准备支付,若没有安装支付宝,则调用支付宝网页进行支付。
在支付结果回调block中根据支付操做状态进行相关业务逻辑处理
在AppDelagate的“openURL”及“handleOpenURL”中判断支付宝支付操做,切回应用时在回调block中作相关业务逻辑处理