{"id":18565051,"url":"https://github.com/jenly1314/apppay","last_synced_at":"2025-07-28T12:41:58.975Z","repository":{"id":72501214,"uuid":"176896551","full_name":"jenly1314/AppPay","owner":"jenly1314","description":":money_with_wings: AppPay专注于App支付的库，几句代码轻松集成微信支付、支付宝支付、银联支付。（集成步骤超简单）","archived":false,"fork":false,"pushed_at":"2025-05-14T14:30:59.000Z","size":6249,"stargazers_count":80,"open_issues_count":0,"forks_count":16,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-14T15:43:45.146Z","etag":null,"topics":["alipay","android","android-pay","androidpay","apppay","pay-library","payment","paysdk","sdk","unionpay","wechat-pay","wechatpay","weixin-pay","wxpay","zhifubao"],"latest_commit_sha":null,"homepage":"https://jenly1314.github.io/AppPay/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenly1314.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":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-21T07:56:06.000Z","updated_at":"2025-05-14T14:31:03.000Z","dependencies_parsed_at":"2024-06-21T00:07:46.494Z","dependency_job_id":"329e4a2e-09dc-4fef-b635-80835dd34863","html_url":"https://github.com/jenly1314/AppPay","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/jenly1314/AppPay","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FAppPay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FAppPay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FAppPay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FAppPay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenly1314","download_url":"https://codeload.github.com/jenly1314/AppPay/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FAppPay/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267519359,"owners_count":24100813,"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-07-28T02:00:09.689Z","response_time":68,"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":["alipay","android","android-pay","androidpay","apppay","pay-library","payment","paysdk","sdk","unionpay","wechat-pay","wechatpay","weixin-pay","wxpay","zhifubao"],"created_at":"2024-11-06T22:17:31.451Z","updated_at":"2025-07-28T12:41:58.968Z","avatar_url":"https://github.com/jenly1314.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AppPay\n\n![Image](app/src/main/ic_launcher-web.png)\n\n[![MavenCentral](https://img.shields.io/maven-central/v/com.github.jenly1314.AppPay/apppay?logo=sonatype)](https://repo1.maven.org/maven2/com/github/jenly1314/AppPay)\n[![JitPack](https://img.shields.io/jitpack/v/github/jenly1314/AppPay?logo=jitpack)](https://jitpack.io/#jenly1314/AppPay)\n[![CI](https://img.shields.io/github/actions/workflow/status/jenly1314/AppPay/build.yml?logo=github)](https://github.com/jenly1314/AppPay/actions/workflows/build.yml)\n[![Download](https://img.shields.io/badge/download-APK-brightgreen?logo=github)](https://raw.githubusercontent.com/jenly1314/AppPay/master/app/release/app-release.apk)\n[![API](https://img.shields.io/badge/API-16%2B-brightgreen?logo=android)](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)\n[![License](https://img.shields.io/github/license/jenly1314/AppPay?logo=open-source-initiative)](https://opensource.org/licenses/mit)\n\n\nAppPay for Android 是一个专注于App支付的库，将主流的官方App支付集成方式进行二次封装，简化集成步骤，让实现App支付更简单。\n\n## AppPay的各Module相关说明\n\n| 模块（子库）               | 模块说明                            |\n|:---------------------|:--------------------------------|\n| [WXPay](wxpay)       | 封装的微信支付库                        |\n| [AliPay](alipay)     | 封装的支付宝支付库                       |\n| [UnionPay](unionpay) | 封装的银联支付库                        |\n| [AppPay](apppay)     | 基于以上所有子库进行整合再次封装，让集成App支付一步到位   |\n\n\u003e AppPay的整体结构：将多个独立封装的子库再次封装，并且使用更简单。\n\n## 结构\n![Image](art/AppPay_architecture.jpg)\n\n## 引入\n\n### Gradle:\n\n1. 在Project的 **build.gradle** 或 **setting.gradle** 中添加远程仓库\n\n    ```gradle\n    repositories {\n        //...\n        mavenCentral()\n    }\n    ```\n\n2. 在Module的 **build.gradle** 中添加依赖项\n   ```gradle\n       // WXPay\n       implementation 'com.github.jenly1314.AppPay:wxpay:2.1.0'\n\n       // AliPay\n       implementation 'com.github.jenly1314.AppPay:alipay:2.1.0'\n\n       // UnionPay\n       implementation 'com.github.jenly1314.AppPay:unionpay:2.1.0'\n\n       // AppPay\n       implementation 'com.github.jenly1314.AppPay:apppay:2.1.0'\n   ```\n\n## 使用\n\n### WXPay\n\n微信App支付：支持商户App调用微信提供的SDK调用微信支付模块，商户App会跳转到微信中完成支付，支付完后跳回到商户App内，最后展示支付结果；\n\n**WXPay** 主要是基于官方的微信支付SDK进行二次封装，简化集成步骤；使用 **WXPay** 可快速接入微信App支付；\n\n##### WXPay代码示例\n\n```Java\n// 初始化微信支付\nmWXPay = new WXPay(Context context);\n\n// 设置微信支付监听\nmWXPay.setOnPayListener(new WXPay.OnPayListener() {\n   @Override\n   public void onPayResult(WXPayResult result) {\n      // 支付结果\n      if (result.isSuccess()) {\n         // TODO 支付成功\n      }\n   }\n});\n\n// 发送微信支付请求\nmWXPay.sendReq(WXPayReq req);\n\n```\n或\n\n```Java\n// 发送微信支付请求并监听（参数：req为拉起支付的请求参数）\nmWXPay.sendReq(req, new WXPay.OnPayListener() {\n   @Override\n   public void onPayResult(WXPayResult result) {\n        // 支付结果\n        if (result.isSuccess()) {\n            // TODO 支付成功\n        }\n    }\n});\n```\n\n###  AliPay\n\n支付宝App支付：指商家在商家移动端 App 中集成支付宝 SDK，调起支付宝来完成付款的一种支付产品。适用于在商家移动端 App 内使用支付宝支付功能的场景。\n\n**AliPay** 主要是基于官方的支付宝支付SDK进行二次封装，简化集成步骤；使用 **AliPay** 可快速接入支付宝App支付；\n\n##### AliPay代码示例\n\n```Java\n // 初始化支付宝支付\n mAliPay = new AliPay(Activity activity);\n\n // 设置支付宝支付监听\n mAliPay.setOnPayListener(new AliPay.OnPayListener() {\n     @Override\n     public void onPayResult(AliPayResult result) {\n         // 支付结果\n         if(result.isSuccess()){\n             //TODO 支付成功\n         }\n     }\n });\n\n // 发送支付宝支付请求；\n mAliPay.sendReq(String orderInfo);\n\n```\n或\n```Java\n// 发送支付宝支付请求并监听（参数：orderInfo为拉起支付的订单信息）\nmAliPay.sendReq(orderInfo, new AliPay.OnPayListener() {\n    @Override\n    public void onPayResult(AliPayResult result) {\n        // 支付结果\n        if(result.isSuccess()){\n            //TODO 支付成功\n        }\n    }\n});\n```\n\n### UnionPay\n\n银联支付：支持商户移动端APP或者WAP网页中拉起云闪付APP、手机Pay、银行APP（云网版、网银版）等支付工具完成支付；使用 **UnionPay** 可快速接入银联支付；\n\n**UnionPay** 主要是基于官方的银联支付SDK进行二次封装，简化集成步骤；使用 **UnionPay** 可快速接入银联支付；\n\n#### UnionPay代码示例\n\n```java\n // 初始化银联支付\n mUnionPay = new UnionPay(Context context);\n\n // 设置银联支付监听\n mUnionPay.setOnPayListener(new UnionPay.OnPayListener() {\n     @Override\n     public void onPayResult(UnionPayResult result) {\n         // 支付结果\n         if(result.isSuccess()){\n             //TODO 支付成功\n         }\n     }\n });\n\n // 发送银联支付请求；（参数：orderInfo为订单信息的流水号，即TN；serverMode为银联后台环境标识；用于区分使用测试环境还是正式环境；说明参见：UnionPay.PRO_SERVER_MODE 和 UnionPay.TEST_SERVER_MODE）\n mUnionPay.sendReq(String orderInfo, String serverMode);\n```\n或\n```java\n// 发送银联支付请求并监听；（参数：orderInfo为订单信息的流水号，即TN；serverMode为银联后台环境标识；用于区分使用测试环境还是正式环境；说明参见：UnionPay.PRO_SERVER_MODE 和 UnionPay.TEST_SERVER_MODE）\nmUnionPay.sendReq(orderInfo, serverMode, new UnionPay.OnPayListener() {\n    @Override\n    public void onPayResult(UnionPayResult result) {\n        // 支付结果\n        if(result.isSuccess()){\n            //TODO 支付成功\n        }\n    }\n});\n```\n\n\u003e 使用银联支付时需要在 `Activity` 中的 `onActivityResult` 方法中调用 **UnionPay** 的 **onActivityResult(int, int, Intent)}** 方法，这样设置的银联支付监听才会被触发。\n\n### AppPay\n\n**AppPay** 是基于以上所有子库进行整合再次封装，让集成App支付一步到位。\n\n#### AppPay代码示例\n\n```Java\n\n // 初始化AppPay\n mAppPay = new AppPay(Activity activity);\n\n// 发送微信支付请求（参数：req为拉起支付的请求参数）\nmAppPay.sendWXPayReq(req, new WXPay.OnPayListener() {\n    @Override\n    public void onPayResult(WXPayResult result) {\n         // 支付结果\n         if (result.isSuccess()) {\n            // TODO 支付成功\n         }\n    }\n});\n\n\n// 发送支付宝支付请求（参数：orderInfo为拉起支付的订单信息）\nmAppPay.sendAliPayReq(orderInfo, new AliPay.OnPayListener() {\n    @Override\n    public void onPayResult(AliPayResult result) {\n         // 支付结果\n         if (result.isSuccess()) {\n            // TODO 支付成功\n         }\n    }\n});\n\n\n// 发送银联支付请求（参数：orderInfo为订单信息的流水号，即TN；serverMode为银联后台环境标识；用于区分使用测试环境还是正式环境；说明参见：UnionPay.PRO_SERVER_MODE 和 UnionPay.TEST_SERVER_MODE）\nmAppPay.sendUnionPayReq(orderInfo, serverMode, new UnionPay.OnPayListener() {\n    @Override\n    public void onPayResult(UnionPayResult result) {\n         // 支付结果\n         if (result.isSuccess()) {\n            // TODO 支付成功\n         }\n    }\n});\n\n```\n\n\u003e 使用银联支付时需要在 `Activity` 中的 `onActivityResult` 方法中调用 **AppPay** 的 **onActivityResult(int, int, Intent)}** 方法，这样设置的银联支付监听才会被触发。\n\n更多使用详情，请查看[app](app)中的源码使用示例或直接查看 [API帮助文档](https://jenly1314.github.io/AppPay/api/)\n\n## 补充说明\n\n### 关于银联支付相关的应用可见性适配\n\n当 **targetSdkVersion** 为30或以上时，请在 **AndroidManifest** 中加入以下内容，以符合 Android 应用可见性机制的要求。\n\n方式一：直接配置读取所有应用列表的权限（可能会影响应用上架）\n\n```java\n\u003cuses-permission android:name=\"android.permission.QUERY_ALL_PACKAGES\" /\u003e\n\n```\n\n方式二：配置需要查询的应用对应的包名（如果你无法使用方式一，那么可以用方式二）\n\n```xml\n    \u003c!-- 适配应用可见性：银联支付支持对应各商户相关的App包名 --\u003e\n    \u003cqueries\u003e\n        \u003c!-- 云闪付 --\u003e\n        \u003cpackage android:name=\"com.unionpay\" /\u003e\n        \u003c!-- 其他安卓 pay --\u003e\n        \u003cpackage android:name=\"com.unionpay.tsmservice\" /\u003e\n        \u003c!-- 小米 pay --\u003e\n        \u003cpackage android:name=\"com.unionpay.tsmservice.mi\" /\u003e\n        \u003c!-- 华为钱包 --\u003e\n        \u003cpackage android:name=\"com.huawei.wallet\" /\u003e\n        \u003c!-- 平安口袋银行 --\u003e\n        \u003cpackage android:name=\"com.cmbc.cc.mbank\" /\u003e\n        \u003c!-- 中国建设银行 --\u003e\n        \u003cpackage android:name=\"com.pingan.paces.ccms\" /\u003e\n        \u003c!-- 建行生活 --\u003e\n        \u003cpackage android:name=\"com.chinamworld.main\" /\u003e\n        \u003c!-- 中信银行 --\u003e\n        \u003cpackage android:name=\"com.ecitic.bank.mobile\" /\u003e\n        \u003c!-- 动卡空间 --\u003e\n        \u003cpackage android:name=\"com.citiccard.mobilebank\" /\u003e\n        \u003c!-- 光大银行 --\u003e\n        \u003cpackage android:name=\"com.cebbank.mobile.cemb\" /\u003e\n        \u003c!-- 阳光惠生活 --\u003e\n        \u003cpackage android:name=\"com.ebank.creditcard\" /\u003e\n        \u003c!-- 民生银行 --\u003e\n        \u003cpackage android:name=\"cn.com.cmbc.newmbank\" /\u003e\n        \u003c!-- 全民生活 --\u003e\n        \u003cpackage android:name=\"com.cmbc.cc.mbank\" /\u003e\n        \u003c!-- 浦发银行 --\u003e\n        \u003cpackage android:name=\"cn.com.spdb.mobilebank.per\" /\u003e\n        \u003c!-- 浦大喜奔 --\u003e\n        \u003cpackage android:name=\"com.spdbccc.app\" /\u003e\n        \u003c!-- 交通银行 --\u003e\n        \u003cpackage android:name=\"com.bankcomm.Bankcomm\" /\u003e\n        \u003c!-- 买单吧 --\u003e\n        \u003cpackage android:name=\"com.bankcomm.maidanba\" /\u003e\n        \u003c!-- 招商银行 --\u003e\n        \u003cpackage android:name=\"cmb.pb\" /\u003e\n        \u003c!-- 掌上生活 --\u003e\n        \u003cpackage android:name=\"com.cmbchina.ccd.pluto.cmbActivity\" /\u003e\n        \u003c!-- 上海银行 --\u003e\n        \u003cpackage android:name=\"cn.com.shbank.mper\" /\u003e\n        \u003c!-- 上银美好生活 --\u003e\n        \u003cpackage android:name=\"cn.com.shbank.pension\" /\u003e\n        \u003c!-- 北京银行（京彩生活） --\u003e\n        \u003cpackage android:name=\"com.bankofbeijing.mobilebanking\" /\u003e\n        \u003c!-- 掌上京彩 --\u003e\n        \u003cpackage android:name=\"com.csii.bj.ui\" /\u003e\n        \u003c!-- 中国工商银行 --\u003e\n        \u003cpackage android:name=\"com.icbc\" /\u003e\n        \u003c!-- 工银 e 生活 --\u003e\n        \u003cpackage android:name=\"com.icbc.elife\" /\u003e\n        \u003c!-- 中国农业银行 --\u003e\n        \u003cpackage android:name=\"com.android.bankabc\" /\u003e\n        \u003c!-- 农银 e 管家 --\u003e\n        \u003cpackage android:name=\"com.abchina.ebizbtob\" /\u003e\n        \u003c!-- 邮储银行 --\u003e\n        \u003cpackage android:name=\"com.yitong.mbank.psbc\" /\u003e\n        \u003c!-- 邮储信用卡 --\u003e\n        \u003cpackage android:name=\"com.yitong.mbank.psbc.creditcard\" /\u003e\n        \u003c!-- 中国银行 --\u003e\n        \u003cpackage android:name=\"com.chinamworld.bocmbci\" /\u003e\n        \u003c!-- 缤纷生活 --\u003e\n        \u003cpackage android:name=\"com.forms\" /\u003e\n        \u003c!-- 广发银行 --\u003e\n        \u003cpackage android:name=\"com.cgbchina.xpt\" /\u003e\n        \u003c!-- 发现精彩 --\u003e\n        \u003cpackage android:name=\"com.cs_credit_bank\" /\u003e\n        \u003c!-- 兴业银行 --\u003e\n        \u003cpackage android:name=\"com.cib.cibmb\" /\u003e\n        \u003c!-- 好兴动 --\u003e\n        \u003cpackage android:name=\"com.cib.xyk\" /\u003e\n        \u003c!-- 华夏银行 --\u003e\n        \u003cpackage android:name=\"com.hxb.mobile.client\" /\u003e\n        \u003c!-- 华彩生活 --\u003e\n        \u003cpackage android:name=\"com.HuaXiaBank.HuaCard\" /\u003e\n        \u003c!-- 兰州银行 --\u003e\n        \u003cpackage android:name=\"cn.com.lzb.mobilebank.per\" /\u003e\n    \u003c/queries\u003e\n```\n\n## 其他\n\n### ABI过滤\n\n在Module的 **build.gradle** 里面的 android{} 中设置支持的 SO 库架构（可选，支持多个平台的 so，支持的平台越多，APK体积越大）\n\n```gradle\n    defaultConfig {\n\n        //...\n\n        ndk {\n            //设置支持的 SO 库架构（开发者可以根据需要，选择一个或多个平台的 so）\n            abiFilters 'armeabi-v7a' // , 'arm64-v8a', 'x86', 'x86_64'\n        }\n    }\n```\n\n## 相关推荐\n- [AppUpdater](http://github.com/jenly1314/AppUpdater) 一个专注于App更新，一键傻瓜式集成App版本升级的轻量开源库。\n- [RetrofitHelper](http://github.com/jenly1314/RetrofitHelper) 一个支持动态改变BaseUrl，动态配置超时时长的Retrofit帮助类。\n- [BaseUrlManager](http://github.com/jenly1314/BaseUrlManager) 一个BaseUrl管理器，主要用于打测试包时，一个App可动态切换到不同的开发环境或测试环境。\n- [SuperTextView](http://github.com/jenly1314/SuperTextView) 一个在TextView的基础上扩展了几种动画效果的控件。\n- [ImageViewer](http://github.com/AndroidKTX/ImageViewer) 一个图片查看器，一般用来查看图片详情或查看大图时使用。\n- [GuidePage](http://github.com/AndroidKTX/GuidePage) 一个App欢迎引导页。一般用于首次打开App时场景，通过引导页指南，概述App特色等相关信息。\n- [LogX](http://github.com/jenly1314/LogX) 一个轻量而强大的日志框架；好用不解释。\n- [KVCache](http://github.com/jenly1314/KVCache) 一个便于统一管理的键值缓存库；支持无缝切换缓存实现。\n- [AndroidKTX](http://github.com/AndroidKTX/AndroidKTX) 一个简化 Android 开发的 Kotlin 工具类集合。\n- [AndroidUtil](http://github.com/AndroidUtil/AndroidUtil) 一个整理了Android常用工具类集合，平时在开发的过程中可能会经常用到。\n- [MVVMFrame](https://github.com/jenly1314/MVVMFrame) 一个基于Google官方推出的JetPack构建的MVVM快速开发框架。\n- [AppTemplate](https://github.com/jenly1314/AppTemplate) 一款基于 MVVMFrame 构建的App模板。\n\n## 官方文档\n\n[微信支付Android接入指南](https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html)\n\n[支付宝支付Android接入指南](https://opendocs.alipay.com/open/204/105296)\n\n[银联支付Android接入指南](doc/银联支付接入指南Android_v1.0.9.pdf)\n\n\u003c!-- end --\u003e\n\n## 版本日志\n\n#### v2.1.0 ：2023-09-24\n* 简化集成步骤\n* 优化细节（统一结果判定）\n\n#### [查看更多日志](CHANGELOG.md)\n\n\n---\n\n![footer](https://jenly1314.github.io/page/footer.svg)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenly1314%2Fapppay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenly1314%2Fapppay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenly1314%2Fapppay/lists"}