{"id":20669688,"url":"https://github.com/fox-one/foxone-opensdk-android","last_synced_at":"2026-07-18T20:35:14.800Z","repository":{"id":97516699,"uuid":"166523734","full_name":"fox-one/foxone-opensdk-android","owner":"fox-one","description":"2019 Fox.ONE 全新体系下的开放系统 Android 端，含登录，注册，Sign 签发","archived":false,"fork":false,"pushed_at":"2020-01-16T08:15:59.000Z","size":514,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-10T16:42:44.302Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fox-one.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"support-common/.gitignore","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-19T08:21:38.000Z","updated_at":"2020-01-16T08:16:02.000Z","dependencies_parsed_at":"2023-05-18T13:33:54.263Z","dependency_job_id":null,"html_url":"https://github.com/fox-one/foxone-opensdk-android","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/fox-one/foxone-opensdk-android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2Ffoxone-opensdk-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2Ffoxone-opensdk-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2Ffoxone-opensdk-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2Ffoxone-opensdk-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fox-one","download_url":"https://codeload.github.com/fox-one/foxone-opensdk-android/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fox-one%2Ffoxone-opensdk-android/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017038,"owners_count":26085951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T20:15:35.772Z","updated_at":"2025-10-13T21:35:53.448Z","avatar_url":"https://github.com/fox-one.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# foxone-opensdk-android\nFox.ONE开放平台SDK是一套区块链支付、结算、交易的系统解决方案，包括如下SDK：\n\n* **passport**  提供用户账户系统能力及鉴权能力\n* **payment**   提供数字货币钱包功能，包含支付，转账等能力\n* **ex**  提供数字货币交易功能\n* **otc** (待开发)\n\n## 快速接入\n\n* 依赖 `cloud` sdk\n\n```\nimplementation 'com.fox.one:cloud:0.7.0'\n```\n查看[最新版本](http://jcenter.bintray.com/com/fox/one/cloud)\n\n* 在`Application.onCreate(..)`初始化`cloud`sdk\n\n```\n//MERCHANT_ID:平台分配的商户ID\n//Options.logEnable: log开关\n//Options.debugEnable: debug开关\n//Options.env: 环境设置，建议开发中设置为Enviroment.ALPHA，在产品代码中设置为Enviroment.ALPHA\n//Options.customBaseUrl: 自定义接口域名，APILoader.BaseUrl(alphaUrl\"https://xxx.xxx.xxx\", BetaUrl\"https://xxx.xxx.xxx\", releaseUrl=\"https://xxx.xxx.xxx\")\nFoxSDK.init(this, MERCHANT_ID, FoxSDK.Options(logEnable = true, debugEnable = true, env = Enviroment.ALPHA, customBaseUrl=null))\n\n```\n\n到此，Fox.ONE的`cloud`sdk接入完成。接下来就可以根据自己的业务需求接入对应的SDK并使用相关API，具体参考如下：\n\n* [账号系统接入说明](passport/README.md)\n* [钱包功能接入数据](payment/README.md)\n* [交易所功能接入说明](ex/README.md)\n* [交易所模块（含UI）接入说明](docs/README-ex-ui.md)，具体可参考Demo接入\n\n* **API调用举例**\n\n```\nPassportAPI.login(LoginWithPhoneReqBody(countryCode = \"86\", phoneNumber = phone, password = pwd))\n                .enqueue(object: Callback\u003cAccountInfo\u003e {\n                override fun onFailure(call: Call\u003cAccountInfo\u003e, t: Throwable) {\n                     //异常处理\n                    HttpErrorHandler.handle(t)\n                }\n\n                override fun onResponse(call: Call\u003cAccountInfo\u003e, response: Response\u003cAccountInfo\u003e) {\n                    DemoApp.onLogin(this@LoginActivity, response.body() ?: AccountInfo())\n                    LogUtils.i(\"foxone\", \"login::${JsonUtils.optToJson(response.body())}\")\n                }\n            })\n```\n\n* **[错误码](cloud/src/main/java/com/fox/one/cloud/ErrorCode.kt)**\n* **异常处理** [HttpErrorHandler](support-framework/src/main/java/com/fox/one/support/framework/network/HttpErrorHandler.kt)\n\n```\n//绑定错误码对应的提示文本\naddErrorHint\n\n//添加特定业务错误码的监听器，可以在监听器里自定义错误处理逻辑\naddErrorListener\n\n//添加http code错误监听器，自定义错误处理逻辑，比如httpCode == 401，说明用户token过去，可以提醒用户去重新登录\naddHttpCodeListener\n\n//捕获异常，在API接口onFailure时调用\nhandle(Throwable)\n\n//捕获异常，自定义异常处理逻辑，在API接口onFailure时调用\nhandle(Throwable, Listener)\n\n//通用网络错误提示语\nnetworkErrorToast\n```\n\n\n## 注意事项\n\n### 混淆\n\n```\n-keepattributes Signature\n-keepattributes Exceptions\n-keepattributes *Annotation*\n-keepattributes JavascriptInterface\n-keepattributes InnerClasses\n-keepattributes SourceFile\n-keepattributes LineNumberTable\n-keepattributes Deprecated\n-keepattributes EnclosingMethod\n\n-keep public class * extends android.app.Fragment\n-keep public class * extends android.app.Activity\n-keep public class * extends android.app.Application\n-keep public class * extends android.app.Service\n-keep public class * extends android.content.BroadcastReceiver\n-keep public class * extends android.content.ContentProvider\n-keep public class * extends android.app.backup.BackupAgentHelper\n-keep public class * extends android.preference.Preference\n-keep public class * extends android.support.v4.**\n-keep public class com.android.vending.licensing.ILicensingService\n\n# android.support.v4.content.FileProvider\n-keep class android.support.v4.** {*;}\n\n-keepclasseswithmembers enum * {\n    public static **[] values();\n    public static ** valueOf(java.lang.String);\n}\n\n-keepclasseswithmembers class * {\n\tpublic \u003cinit\u003e(android.content.Context, android.util.AttributeSet);\n}\n\n-keepclasseswithmembers class * {\n\tpublic \u003cinit\u003e(android.content.Context, android.util.AttributeSet, int);\n}\n\n-keepattributes *Annotation*\n\n-keepclasseswithmembernames class *{\n\tnative \u003cmethods\u003e;\n}\n\n-keep class * implements android.os.Parcelable {\n  public static final android.os.Parcelable$Creator *;\n}\n\n-keep class * implements java.io.Serializable{*;}\n-keepnames class * implements java.io.Serializable\n-keepclasseswithmembers class * implements java.io.Serializable {\n    static final long serialVersionUID;\n    private static final java.io.ObjectStreamField[] serialPersistentFields;\n    !static !transient \u003cfields\u003e;\n    !private \u003cfields\u003e;\n    !private \u003cmethods\u003e;\n    private void writeObject(java.io.ObjectOutputStream);\n    private void readObject(java.io.ObjectInputStream);\n    java.lang.Object writeReplace();\n    java.lang.Object readResolve();\n}\n-keep class kotlin.**\n\n-keepclasseswithmembers class * implements android.arch.lifecycle.GenericLifecycleObserver {\n\u003cinit\u003e(...);\n}\n# keep Lifecycle State and Event enums with fields\n-keepclasseswithmembers class android.arch.lifecycle.Lifecycle$* { *; }\n# keep methods annotated with @OnLifecycleEvent even if they seem to be unused\n# (Mostly for LiveData.LifecycleBoundObserver.onStateChange(), but who knows)\n-keepclasseswithmembers class * {\n    @android.arch.lifecycle.OnLifecycleEvent *;\n}\n# ViewModel's empty constructor is considered to be unused by proguard\n-keepclasseswithmembers class * extends android.arch.lifecycle.ViewModel {\n\u003cinit\u003e(...);\n}\n-keepclasseswithmembers class * implements android.arch.lifecycle.LifecycleObserver {\n    \u003cinit\u003e(...);\n}\n-keepclasseswithmembers class * implements android.arch.lifecycle.LifecycleObserver {\n    \u003cinit\u003e(...);\n}\n-keep class * extends android.arch.persistence.room.RoomDatabase {*;}\n\n\n-keep public class * implements com.bumptech.glide.module.GlideModule\n-keep public class * extends com.bumptech.glide.module.AppGlideModule\n-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {\n  **[] $VALUES;\n  public *;\n}\n\n-keepclasseswithmembers class * implements android.os.Parcelable {\n    public static final ** CREATOR;\n}\n\n-keep class com.google.gson.** { *; }\n-keep class com.google.inject.** { *; }\n-keep class org.apache.http.** { *; }\n-keep class org.apache.james.mime4j.** { *; }\n-keep class javax.inject.** { *; }\n-keep class com.google.gson.examples.android.model.** { *; }\n# Gson specific classes\n-keep class sun.misc.Unsafe { *; }\n#-keep class com.google.gson.stream.** { *; }\n\n# Prevent proguard from stripping interface information from TypeAdapterFactory,\n# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)\n-keep class * implements com.google.gson.TypeAdapterFactory\n-keep class * implements com.google.gson.JsonSerializer\n-keep class * implements com.google.gson.JsonDeserializer\n\n\n# -----------------webtoken start--------------------\n-keep class io.jsonwebtoken.**{*;}\n-dontwarn io.jsonwebtoken.**\n#------------------webtoken end--------------------\n\n```\n\n\n### 注：文档中提到的相关SDK的版本可能比较低，建议接入[最新版本](http://jcenter.bintray.com/com/fox/one/)\n\n## [Release](https://github.com/fox-one/foxone-opensdk-android/releases)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffox-one%2Ffoxone-opensdk-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffox-one%2Ffoxone-opensdk-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffox-one%2Ffoxone-opensdk-android/lists"}