Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jenly1314/apppay
:money_with_wings: AppPay专注于App支付的库,几句代码轻松集成微信支付、支付宝支付、银联支付。(集成步骤超简单)
https://github.com/jenly1314/apppay
alipay android android-pay androidpay apppay pay-library payment paysdk sdk unionpay wechat-pay wechatpay weixin-pay wxpay zhifubao
Last synced: 5 days ago
JSON representation
:money_with_wings: AppPay专注于App支付的库,几句代码轻松集成微信支付、支付宝支付、银联支付。(集成步骤超简单)
- Host: GitHub
- URL: https://github.com/jenly1314/apppay
- Owner: jenly1314
- License: mit
- Created: 2019-03-21T07:56:06.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-25T14:04:10.000Z (4 months ago)
- Last Synced: 2024-12-08T05:30:15.765Z (15 days ago)
- Topics: alipay, android, android-pay, androidpay, apppay, pay-library, payment, paysdk, sdk, unionpay, wechat-pay, wechatpay, weixin-pay, wxpay, zhifubao
- Language: Java
- Homepage: https://jenly1314.github.io/AppPay/
- Size: 5.95 MB
- Stars: 74
- Watchers: 5
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# AppPay
![Image](app/src/main/ic_launcher-web.png)
[![MavenCentral](https://img.shields.io/maven-central/v/com.github.jenly1314.AppPay/apppay)](https://repo1.maven.org/maven2/com/github/jenly1314/AppPay)
[![JitPack](https://jitpack.io/v/jenly1314/AppPay.svg)](https://jitpack.io/#jenly1314/AppPay)
[![CircleCI](https://circleci.com/gh/jenly1314/AppPay.svg?style=svg)](https://circleci.com/gh/jenly1314/AppPay)
[![API](https://img.shields.io/badge/API-16%2B-blue.svg?style=flat)](https://android-arsenal.com/api?level=16)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/mit-license.php)AppPay for Android 是一个专注于App支付的库,将主流的官方App支付集成方式进行二次封装,简化集成步骤,让实现App支付更简单。
## AppPay的各Module相关说明
| 模块(子库) | 模块说明 |
|:---------------------|:--------------------------------|
| [WXPay](wxpay) | 封装的微信支付库 |
| [AliPay](alipay) | 封装的支付宝支付库 |
| [UnionPay](unionpay) | 封装的银联支付库 |
| [AppPay](apppay) | 基于以上所有子库进行整合再次封装,让集成App支付一步到位 |> AppPay的整体结构:将多个独立封装的子库再次封装,并且使用更简单。
## 结构
![Image](art/AppPay_architecture.jpg)## 引入
### Gradle:
1. 在Project的 **build.gradle** 或 **setting.gradle** 中添加远程仓库
```gradle
repositories {
//...
mavenCentral()
}
```2. 在Module的 **build.gradle** 里面添加引入依赖项
```gradle
// WXPay
implementation 'com.github.jenly1314.AppPay:wxpay:2.1.0'// AliPay
implementation 'com.github.jenly1314.AppPay:alipay:2.1.0'// UnionPay
implementation 'com.github.jenly1314.AppPay:unionpay:2.1.0'// AppPay
implementation 'com.github.jenly1314.AppPay:apppay:2.1.0'
```## 使用
### WXPay
微信App支付:支持商户App调用微信提供的SDK调用微信支付模块,商户App会跳转到微信中完成支付,支付完后跳回到商户App内,最后展示支付结果;
**WXPay** 主要是基于官方的微信支付SDK进行二次封装,简化集成步骤;使用 **WXPay** 可快速接入微信App支付;
##### WXPay代码示例
```Java
// 初始化微信支付
mWXPay = new WXPay(Context context);// 设置微信支付监听
mWXPay.setOnPayListener(new WXPay.OnPayListener() {
@Override
public void onPayResult(WXPayResult result) {
// 支付结果
if (result.isSuccess()) {
// TODO 支付成功
}
}
});// 发送微信支付请求
mWXPay.sendReq(WXPayReq req);```
或```Java
// 发送微信支付请求并监听(参数:req为拉起支付的请求参数)
mWXPay.sendReq(req, new WXPay.OnPayListener() {
@Override
public void onPayResult(WXPayResult result) {
// 支付结果
if (result.isSuccess()) {
// TODO 支付成功
}
}
});
```### AliPay
支付宝App支付:指商家在商家移动端 App 中集成支付宝 SDK,调起支付宝来完成付款的一种支付产品。适用于在商家移动端 App 内使用支付宝支付功能的场景。
**AliPay** 主要是基于官方的支付宝支付SDK进行二次封装,简化集成步骤;使用 **AliPay** 可快速接入支付宝App支付;
##### AliPay代码示例
```Java
// 初始化支付宝支付
mAliPay = new AliPay(Activity activity);// 设置支付宝支付监听
mAliPay.setOnPayListener(new AliPay.OnPayListener() {
@Override
public void onPayResult(AliPayResult result) {
// 支付结果
if(result.isSuccess()){
//TODO 支付成功
}
}
});// 发送支付宝支付请求;
mAliPay.sendReq(String orderInfo);```
或
```Java
// 发送支付宝支付请求并监听(参数:orderInfo为拉起支付的订单信息)
mAliPay.sendReq(orderInfo, new AliPay.OnPayListener() {
@Override
public void onPayResult(AliPayResult result) {
// 支付结果
if(result.isSuccess()){
//TODO 支付成功
}
}
});
```### UnionPay
银联支付:支持商户移动端APP或者WAP网页中拉起云闪付APP、手机Pay、银行APP(云网版、网银版)等支付工具完成支付;使用 **UnionPay** 可快速接入银联支付;
**UnionPay** 主要是基于官方的银联支付SDK进行二次封装,简化集成步骤;使用 **UnionPay** 可快速接入银联支付;
#### UnionPay代码示例
```java
// 初始化银联支付
mUnionPay = new UnionPay(Context context);// 设置银联支付监听
mUnionPay.setOnPayListener(new UnionPay.OnPayListener() {
@Override
public void onPayResult(UnionPayResult result) {
// 支付结果
if(result.isSuccess()){
//TODO 支付成功
}
}
});// 发送银联支付请求;(参数:orderInfo为订单信息的流水号,即TN;serverMode为银联后台环境标识;用于区分使用测试环境还是正式环境;说明参见:UnionPay.PRO_SERVER_MODE 和 UnionPay.TEST_SERVER_MODE)
mUnionPay.sendReq(String orderInfo, String serverMode);
```
或
```java
// 发送银联支付请求并监听;(参数:orderInfo为订单信息的流水号,即TN;serverMode为银联后台环境标识;用于区分使用测试环境还是正式环境;说明参见:UnionPay.PRO_SERVER_MODE 和 UnionPay.TEST_SERVER_MODE)
mUnionPay.sendReq(orderInfo, serverMode, new UnionPay.OnPayListener() {
@Override
public void onPayResult(UnionPayResult result) {
// 支付结果
if(result.isSuccess()){
//TODO 支付成功
}
}
});
```> 使用银联支付时需要在 `Activity` 中的 `onActivityResult` 方法中调用 **UnionPay** 的 **onActivityResult(int, int, Intent)}** 方法,这样设置的银联支付监听才会被触发。
### AppPay
**AppPay** 是基于以上所有子库进行整合再次封装,让集成App支付一步到位。
#### AppPay代码示例
```Java
// 初始化AppPay
mAppPay = new AppPay(Activity activity);// 发送微信支付请求(参数:req为拉起支付的请求参数)
mAppPay.sendWXPayReq(req, new WXPay.OnPayListener() {
@Override
public void onPayResult(WXPayResult result) {
// 支付结果
if (result.isSuccess()) {
// TODO 支付成功
}
}
});// 发送支付宝支付请求(参数:orderInfo为拉起支付的订单信息)
mAppPay.sendAliPayReq(orderInfo, new AliPay.OnPayListener() {
@Override
public void onPayResult(AliPayResult result) {
// 支付结果
if (result.isSuccess()) {
// TODO 支付成功
}
}
});// 发送银联支付请求(参数:orderInfo为订单信息的流水号,即TN;serverMode为银联后台环境标识;用于区分使用测试环境还是正式环境;说明参见:UnionPay.PRO_SERVER_MODE 和 UnionPay.TEST_SERVER_MODE)
mAppPay.sendUnionPayReq(orderInfo, serverMode, new UnionPay.OnPayListener() {
@Override
public void onPayResult(UnionPayResult result) {
// 支付结果
if (result.isSuccess()) {
// TODO 支付成功
}
}
});```
> 使用银联支付时需要在 `Activity` 中的 `onActivityResult` 方法中调用 **AppPay** 的 **onActivityResult(int, int, Intent)}** 方法,这样设置的银联支付监听才会被触发。
更多使用详情,请查看[app](app)中的源码使用示例或直接查看 [API帮助文档](https://jenly1314.github.io/AppPay/api/)
## 补充说明
### 关于银联支付相关的应用可见性适配
当 **targetSdkVersion** 为30或以上时,请在 **AndroidManifest** 中加入以下内容,以符合 Android 应用可见性机制的要求。
方式一:直接配置读取所有应用列表的权限(可能会影响应用上架)
```java
```
方式二:配置需要查询的应用对应的包名(如果你无法使用方式一,那么可以用方式二)
```xml
```## 其他
### ABI过滤
在Module的 **build.gradle** 里面的 android{} 中设置支持的 SO 库架构(可选,支持多个平台的 so,支持的平台越多,APK体积越大)
```gradle
defaultConfig {//...
ndk {
//设置支持的 SO 库架构(开发者可以根据需要,选择一个或多个平台的 so)
abiFilters 'armeabi-v7a' // , 'arm64-v8a', 'x86', 'x86_64'
}
}
```## 官方文档
[微信支付Android接入指南](https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html)
[支付宝支付Android接入指南](https://opendocs.alipay.com/open/204/105296)
[银联支付Android接入指南](doc/银联支付接入指南Android_v1.0.9.pdf)
## 版本日志
#### v2.1.0 :2023-09-24
* 简化集成步骤
* 优化细节(统一结果判定)#### [查看更多日志](CHANGELOG.md)
## 赞赏
如果您喜欢AppPay,或感觉AppPay帮助到了您,可以点右上角“Star”支持一下,您的支持就是我的动力,谢谢 :smiley:您也可以扫描下面的二维码,请作者喝杯咖啡 :coffee:
## 关于我
| 我的博客 | GitHub | Gitee | CSDN | 博客园 |
|:------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------|
| Jenly's Blog | jenly1314 | jenly1314 | jenly121 | jenly |## 联系我
| 微信公众号 | Gmail邮箱 | QQ邮箱 | QQ群 | QQ群 |
|:-------------|:---------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|
| [Jenly666](http://weixin.qq.com/r/wzpWTuPEQL4-ract92-R) | jenly1314 | jenly1314 | 20867961 | 64020761 |