思路
- 通过将SDK方法中返回的数据划分为正常返回数据以及错误返回的数据两部分,让调用者更简单的对接口调用错误进行处理。
- 将SDK调用第三方服务接口的流程划分为: 数据准备,http请求,结果处理三部分,以重用代码。
例子
以聚合数据手机话费充值SDK编写为例, 手机话费充值API
# encoding=utf-8 from urlparse import urljoin from hashlib import md5 from datetime import datetime from random import sample import requests import pytz class APIError(object): def __init__(self, code, msg): self.code = code self.message = msg class JuhePhoneChargeApi(object): API_PREFIX = 'https://op.juhe.cn/ofpay/mobile/' def __init__(self, openid, key, api_entry=None): self._key = key self._openid = openid self._api_entry = api_entry or self.API_PREFIX def telcheck(self, phoneno, cardnum): params = {'phoneno': phoneno, 'cardnum': cardnum} return self._get(path='telcheck', params=params) def telquery(self, phoneno, cardnum): params = { 'phoneno': phoneno, 'cardnum': cardnum, } return self._get(path='telquery', params=params) def onlineorder(self, phoneno, cardnum, orderid): params = { 'phoneno': phoneno, 'cardnum': cardnum, 'orderid': orderid or self.create_orderid(), } params.update({'sign': self._create_sign(**params)}) return self._get(path='onlineorder', params=params) def ordersta(self, orderid): params = {'orderid': orderid} return self._get(path='orderid', params=params) def create_orderid(self): return ''.join(( datetime.now(tz=pytz.timezone('Asia/Shanghai')).strftime('%Y%m%d%H%M%S%f'), self._create_code(12))) def _process_response(self, rsp): """ 对第三方接口返回数据做同一处理, :param rsp: :return: 接口正常返回值, 错误对象 """ if rsp.status_code != 200: return None, APIError(rsp.status_code, 'http error') try: content = rsp.json() except: return None, APIError(99999, 'invalid rsp') if 'error_code' in content and content['error_code'] != 0: return None, APIError(content['error_code'], content['reason']) return content['result'], None def _get(self, path, params=None): if not params: params = {} headers = {'Content-type': 'application/json'} params.update({'key': self._key}) rsp = requests.get(urljoin(self._api_entry, path), params=params, headers=headers) return self._process_response(rsp) def _create_sign(self, phoneno, cardnum, orderid=None): obj_str = ''.join(( self._openid, self._key, phoneno, str(cardnum), orderid or self.create_orderid())) m = md5() m.update(obj_str) return m.hexdigest() def _create_code(self, number_len): ELEMENT = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' return ''.join(sample(ELEMENT, number_len))
文/Ljian1992(简书作者)
原文链接:http://www.jianshu.com/p/08f783dea4d9
原文链接:http://www.jianshu.com/p/08f783dea4d9
相关推荐
Mob第三方短信验证SDK是一款专为开发者设计的便捷工具,它简化了移动应用中的用户身份验证过程,通过集成SDK,开发者可以快速实现短信验证码功能,提高应用的安全性和用户体验。这款SDK适用于Android Studio和...
在本实例中,我们将深入探讨如何使用JNI调用第三方DLL(动态链接库)文件,这是在Java应用程序中利用C++或C代码能力的常见场景。这个实例是在Visual Studio 2010环境下构建的,但请注意,其他环境可能需要不同的配置...
1. **获取SDK**:从第三方服务商的开发者网站下载SDK及相关文档。例如,如果你打算接入AdMob进行广告展示,那么你需要从Google AdMob的开发者中心获取iOS SDK。 2. **创建C#脚本**:在Unity项目中,创建C#脚本(如...
5. **编写JavaScript接口**:uniapp通过H5桥接原生代码,所以你需要创建一个JavaScript接口来调用Android SDK的方法。在uniapp的`plugin`目录下创建一个新的插件,定义对应的API。这些API将会被JavaScript层调用,并...
"融托付"就是这样的一个第三方支付服务,它不仅提供了与微信、支付宝类似的在线支付功能,还独具特色地支持使用融托付刷卡器进行线下刷卡交易。这个集成SDK和Demo的资源包,对于开发者来说,是实现融托付支付功能的...
2. **导入SDK**:将第三方SDK的静态库或动态库文件添加到Delphi项目中。这通常需要将库文件放入适当目录,然后在Delphi的项目选项中配置链接器路径。 3. **创建桥接头文件**:由于Delphi使用Objective-C的桥接技术...
在Android应用开发中,集成第三方Social SDK是为了充分利用社交媒体平台的功能,如用户登录、内容分享、评论、关注等,为用户提供便利并增强应用的互动性。本文将深入探讨如何集成和二次封装这些SDK,以实现更高效、...
而调用百度地图API,可以让我们的应用与百度地图服务进行交互,实现如定位、地图显示、路线规划等功能。本篇文章将深入探讨如何在MFC项目中集成并使用百度地图API。 首先,了解百度地图API的基本概念是至关重要的。...
CWShare第三方登录SDK是一款专为iOS开发者设计的集成工具,旨在简化应用中接入国内主流社交平台的登录和分享功能。这个SDK是用Objective-C编写的,使得具备Objective-C背景的开发者能够更方便地在其应用程序中整合...
总结来说,拼多多APISDK为PHP开发者提供了便捷的工具,帮助他们与拼多多开放平台进行数据交互,实现各种业务功能。通过学习和使用这套SDK,开发者可以快速地将拼多多的功能集成到自己的应用程序中,提升开发效率和...
- **编写代码**:在项目中编写代码调用第三方服务的API接口。 ##### 1.2 目前已经集成的第三方服务模块 - **推送服务**:如极光推送、阿里云推送等。 - **地图服务**:例如百度地图、高德地图等。 - **社交分享**...
9. **插件架构**:允许扩展IDE的功能,可以通过加载第三方插件来添加新的特性或支持其他编程语言。 在实现这些组件时,开发者需要熟练掌握Windows API,理解各种消息机制、线程管理和内存管理。此外,为了提高效率...
这两个凭据是API调用时用于身份验证的关键信息,相当于用户的登录密码,因此非常重要且不应泄露给第三方。 1. **获取方式**:登录腾讯云控制台,在API密钥管理页面中可以获取这些安全凭证。 2. **注意事项**:务必...
XenServer 提供了一个基于 ...语言绑定将各 API 调用显示为目标语言中的第一类函数,可以大大简化第三方应用程序开发工作。 XenServer SDK 可为 C、C#、Java、Python 和 PowerShell 编程语言提供语言绑定和示例代码。
"jar包被第三方调用Demo.zip"是一个示例,它演示了如何将一个Java类库(通常以.jar格式)打包并提供给第三方开发者作为SDK使用。这个过程涉及到多个关键知识点,包括jar包的创建、API设计、文档编写以及调试和测试。...
SDK通常包含了C++和.NET等接口,但通过Python,我们可以构建跨平台的应用程序,因为它有丰富的第三方库可以实现对C/C++库的绑定。 首先,要使用Python调用海康SDK,我们需要安装必要的库。这可能包括`ctypes`,它是...
2. **SDK集成**:学习如何下载并导入第三方SDK,了解其API接口和使用方法。 3. **AppID和Secret key**:获取每个社交平台的开发者账号,并从中获取AppID和Secret key,用于标识你的应用和验证请求。 4. **权限请求...
10. **更新维护**:第三方登录平台的API和策略可能会有变动,因此需要定期关注官方更新,及时调整你的代码以保持兼容性。 以上就是在Android应用中实现第三方登录所涉及的主要技术和知识点。通过这个过程,开发者...
例如,当你在开发一款需要使用第三方服务(如地图、支付、社交媒体分享等)的应用时,你需要向该服务提供商申请一个API密钥。这个密钥就像是你的应用程序的“护照”,证明了你的应用有权使用这些服务。 SDK则提供了...