总述

来自AnySDK 文档
跳转至: 导航搜索

插件自助开发

AnySDK为了方便开发者更加及时集成和更新第三方SDK,AnySDK推出插件自助开发,开发者可根据文档说明自助开发插件。AnySDK将第三方SDK的接口进行统一封装,接入第三方SDK时只需要根据SDK文档进行接口实现,后称之为插件(Plugins)。如此的设计可方便外部开发者自助开发插件,开发者只需要按照插件自助开发文档开发插件就可以更加方便快捷的使用AnySDK接入第三方SDK。

插件自助开发流程

Sh-flowchart.jpg

获取代码仓库

开发者可使用AnySDK客户端获取插件自助开发代码仓库,地址:【插件代码仓库

服务大全申请SDK

开发人员在AnySDK客户端选择要开发的SDK,若该SDK不在AnySDK的列表中,请到【服务大全】进行添加。详细文档请参考【工具使用概述

插件开发

开发人员根据【客户端概述】及【服务端概述】的文档,按照插件自助开发规则进行插件开发

提交审核

插件开发完毕,根据【自测流程】进行测试。确保插件准确无误,可以提交至AnySDK进行审核,AnySDK收到提交申请会尽快安排测试,开发人员也可根据客户端查看审核状态。

官方测试

AnySDK收到开发者的提交审核后会在Coding上获取插件代码,相关人员会安排进行代码审核及插件可用性测试

上线

上线包括代码部分的开源和插件在AnySDK客户端上开发下载。

git操作流程

Sh-git.jpg

注:若开发者遇到git仓库冲突,需要开发者手动处理冲突问题,才能完成相关的提交

名词解释

SDK 版本号

SDK版本是指第三方SDK的版本号,格式可能都不一样,如6.0、1.0.3、2.1.0.4等,这个版本号格式不需要任何改动。
通过自助开发工具配置后,自动生成到代码中,不需要修改。
外部通过getSDKVersion()接口获取SDK 版本号。

插件版本号

格式『版本序号_SDK版本号』,版本序号从『2.0.0』开始,每次更新+0.0.1,根据版本序号计数出 code(从1000开始,每次+1) 值,用于更新。
同样通过自助开发工具配置后,自动生成到代码中,不需要修改。
外部通过在getPluginVersion()接口获取插件版本号。

插件ID

插件的唯一标志,多支付时判断支付方式的标识。
外部通过getPluginId ()接口获取插件 ID。

登录验证地址

登录验证时,插件调用框架中UserWrapper的getAccessToken()接口,框架把相关数据发送至登录验证地址,通过登录验证地址转发给 AnySDK 服务端(见网页文档说明:http://docs.anysdk.com/Usersystem 中登录流程图的第3步、第4步)。
生成渠道包时配置。

订单获取地址

AnySDK 服务端获取订单号的地址(见网页文档说明:http://docs.anysdk.com/IAPSystem 中支付流程图的第1步的地址)。
获取支付订单号时,插件调用框架中IAPWrapper的getPayOrderId()接口,框架把相关数据发送至该地址。
可以在生成渠道包时配置,通用版一般情况下不需要修改。

渠道通知地址

AnySDK服务端接收渠道支付通知的地址(见网页文档说明:http://docs.anysdk.com/IAPSystem 中支付流程图的第5步的地址)。
每个支付插件对应一个渠道通知地址,新插件首次开发时确定地址,一旦确定后,不可改变。
可以通过客户端的 SDK 参数列表获取,不同渠道,该地址的使用方式不同:
  1. 渠道后台配置:大部分国内渠道中,需要将此地址填写到渠道后台的游戏配置中,如小米,搜狗等;
  2. 客户端传入:少部分国内渠道不需要在渠道后台配置,而是在支付时动态传入支付通知地址,如360、酷派等;
  3. 客户端通知:极个别的国内渠道和国外渠道不主动通知,而是支付完成后主动向SDK 服务器进行订单验证,这种情况下,需要AnySDK客户端插件收到支付返回消息后,通过支付通知地址主动通知AnySDK 服务端的进行支付验证,如腾讯 MSDK,APPStore、 SohaGame等。
渠道后台配置、客户端传入方式的支付流程见http://docs.anysdk.com/IAPSystem中的支付流程图,客户端通知方式的支付流程见。。。。。
客户端传入、和客户端通知需要在插件客户端代码中用到渠道通知地址,我们采用默认值+动态获取的方式来获取正确的地址:
//Android
//默认通知地址
private String notifyUrl = "http://pay.anysdk.com/v5/CoolpadPayNotice/payNotice/";
//使用前根据类和默认值动态获取正确地址
notifyUrl= IAPWrapper.replaceNotifyURL(mAdapter.getClass(),notifyUrl);
//iOS
//默认通知地址
_notifyUrl = @"http://pay.anysdk.com/v5/IOS_SohaGamePayNotice/payNotice/";
//使用前根据类和默认值动态获取正确地址
_notifyUrl= [IAPWrapper replaceNotifyURL:self.class url:_notifyUrl] ;

支付通知地址

AnySDK服务端收到支付结果(结束到渠道支付通知、订单验证)后通过该地址通知游戏服务端(游戏服务端地址)(见网页文档说明:http://docs.anysdk.com/IAPSystem 中支付流程图的第7步的地址);
生成渠道包时配置。