1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jenly1314-AppPay

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 03:50 07840bc

AppPay для Android — это библиотека, специализирующаяся на платежах в приложениях. Она объединяет основные официальные способы оплаты приложений и упрощает процесс интеграции.

Модули AppPay:

  • WXPay — библиотека для оплаты через WeChat;
  • AliPay — библиотека для оплаты через Alipay;
  • UnionPay — библиотека для оплаты через UnionPay;
  • AppPay — объединяет все вышеперечисленные модули и предоставляет комплексное решение для интеграции платежей в приложения.

Структура

AppPay представляет собой повторно упакованную библиотеку, которая упрощает интеграцию платежей в приложениях.

Использование

WXPay

Платежи через WeChat: поддержка вызова официального SDK WeChat для оплаты из приложения. Приложение переходит в WeChat, где происходит оплата, после чего возвращается в приложение с результатом оплаты.

WXPay основан на официальном SDK WeChat и упрощает интеграцию. Быстрое подключение к платежам через WeChat.

Пример кода WXPay:

// Инициализация WeChat Pay
mWXPay = new WXPay(Context context);

// Настройка прослушивателя WeChat Pay
mWXPay.setOnPayListener(new WXPay.OnPayListener() {
    @Override
    public void onPayResult(WXPayResult result) {
        // Результат оплаты
        if (result.isSuccess()) {
            // TODO Оплата прошла успешно
        }
    }
});

// Отправка запроса на оплату через WeChat
mWXPay.sendReq(WXPayReq req);

или

// Отправка запроса на оплату через WeChat с прослушиванием (параметр: req — параметры запроса для запуска оплаты)
mWXPay.sendReq(req, new WXPay.OnPayListener() {
    @Override
    public void onPayResult(WXPayResult result) {
        // Результат оплаты
        if (result.isSuccess()) {
            // TODO Оплата прошла успешно
        }
    }
});

AliPay

Оплата через Alipay: интеграция официального SDK Alipay в приложении для осуществления платежей. Подходит для сценариев, когда требуется использовать функции оплаты через Alipay внутри приложения.

AliPay основан на официальном SDK Alipay и упрощает интеграцию. Быстрая настройка платежей через Alipay.

Пример кода AliPay:

 // Инициализация Alipay Pay
 mAliPay = new AliPay(Activity activity);

 // Настройка прослушивателя Alipay Pay
 mAliPay.setOnPayListener(new AliPay.OnPayListener() {
     @Override
     public void onPayResult(AliPayResult result) {
         // Результат оплаты
         if(result.isSuccess()){
             //TODO Оплата прошла успешно
         }
     }
 });

 // Отправка запроса на оплату через Alipay
 mAliPay.sendReq(String orderInfo);

или

// Отправка запроса на оплату через Alipay с прослушиванием (параметр: orderInfo — информация о заказе для запуска оплаты)
mAliPay.sendReq(orderInfo, new AliPay.OnPayListener() {
    @Override
    public void onPayResult(AliPayResult result) {
        // Результат оплаты
        if(result.isSuccess()){
            //TODO Оплата прошла успешно
        }
    }
});

UnionPay

UnionPay поддерживает оплату через различные инструменты, такие как облачные платежи, мобильные платежи и банковские приложения. UnionPay упрощает интеграцию с официальным SDK UnionPay.

Пример кода UnionPay:

 // Инициализация UnionPay Pay
 mUnionPay = new UnionPay(Context context);

 // Настройка прослушивателя UnionPay Pay
 mUnionPay.setOnPayListener(new UnionPay.OnPayListener() {
     @Override
     public void onPayResult(UnionPayResult result) {
         // Результат оплаты
         if(result.isSuccess()){
             //TODO Оплата прошла успешно
         }
     }
 });

 // Отправка запроса на оплату через UnionPay (параметры: orderInfo — номер потока данных заказа, serverMode — режим сервера UnionPay, используется для различения тестовой среды и официальной среды)
 mUnionPay.sendReq(String orderInfo, String serverMode);

или

//
``` **Отправьте запрос на оплату через UnionPay и прослушайте его;**

(Параметры: orderInfo  номер потока информации о заказе, то есть TN; serverMode  идентификатор среды бэкенда UnionPay. Используется для различения использования тестовой среды и официальной среды. См. 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 оплата прошла успешно
        }
    }
});

**При использовании UnionPay необходимо вызвать метод onActivityResult(int, int, Intent) в методе onActivityResult Activity**, чтобы активировать прослушивание оплаты.

### AppPay

AppPay  это интеграция всех дочерних библиотек и их повторное объединение, что позволяет легко интегрировать платёж приложения.

#### Пример кода AppPay

```Java
// Инициализация AppPay
mAppPay = new AppPay(Activity activity);

// Отправка запроса на оплату WeChat (параметр: req — параметры запроса оплаты)
mAppPay.sendWXPayReq(req, new WXPay.OnPayListener() {
    @Override
    public void onPayResult(WXPayResult result) {
         // результат оплаты
         if (result.isSuccess()) {
            // TODO оплата прошла успешно
         }
    }
});


// отправка запроса на оплату Alipay (параметр: orderInfo — информация о заказе)
mAppPay.sendAliPayReq(orderInfo, new AliPay.OnPayListener() {
    @Override
    public void onPayResult(AliPayResult result) {
         // результат оплаты
         if (result.isSuccess()) {
            // TODO оплата прошла успешно
         }
    }
});


// отправка запроса на оплату UnionPay (параметры: orderInfo — номер потока информации о заказе, то есть TN; serverMode — идентификатор среды бэкенда UnionPay. Используется для различения использования тестовой среды и официальной среды. См. 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 оплата прошла успешно
         }
    }
});

Необходимо вызвать метод **onActivityResult(int, int, Intent)** в методе **onActivityResult Activity** при использовании UnionPay, чтобы активировать прослушивание оплаты.

Для получения дополнительной информации см. примеры использования в приложении или непосредственно в [документации API](https://jenly1314.github.io/AppPay/api/).

## Дополнительная информация

### Адаптация видимости приложений, связанных с оплатой UnionPay

Если targetSdkVersion равен 30 или выше, добавьте следующее в AndroidManifest, чтобы соответствовать требованиям механизма видимости приложений Android.

Способ 1: напрямую настроить разрешение на чтение всех списков приложений (это может повлиять на размещение приложения)

```java
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

Способ 2: настроить имена пакетов соответствующих приложений, которые необходимо запросить (если вы не можете использовать способ 1, вы можете использовать этот способ)

<!-- Адаптация видимости приложения: поддержка UnionPay соответствует различным пакетам приложений для оплаты -->
<queries>
    <!-- Cloud Flash Pay -->
    <package android:name="com.unionpay" />
    <!-- Другие приложения для Android Pay -->
    <package android:name="com.unionpay.tsmservice" />
    <!-- Xiaomi Pay -->
    <package android:name="com.unionpay.tsmservice.mi" />
    <!-- Huawei Wallet -->
    <package android:name="com.huawei.wallet" />
    <!-- Ping An Pocket Bank -->
    <package android:name="com.cmbc.cc.mbank" />
    <!-- China Construction Bank -->
    <package android:name="com.pingan.paces.ccms" />
    <!-- Bank of China Main -->
    <package android:name="com.chinamworld.main" />
    <!-- Industrial and Commercial Bank of China -->
    <package android:name="com.ecitic.bank.mobile" />
    <!-- Dynamic Card Space -->
    <package android:name="com.citiccard.mobilebank" />
    <!-- Guangda Bank -->
    <package android:name="com.cebbank.mobile.cemb" />
    <!-- Yangguang Hui Life -->
    <package android:name="com.ebank.creditcard" />
    <!-- Minsheng Bank -->
    <package android:name="cn.com.cmbc.newmbank" />
    <!-- Whole Life Bank -->
    <package android:name="com.cmbc.cc.mbank" />
    <!-- Pufang Bank -->
    <package android:name="cn.com.spdb.mobilebank.per" />
    <!-- Pudong Bank -->
    <package android:name="com.spdbccc.app" />
    <!-- Transportation Bank -->
    <package android:name="com.bankcomm.Bankcomm" />
    <!-- Buy One Bar -->
    <package android:name="com.bankcomm.maidanba" />
    <!-- Merchants Bank -->
    <package android:name="cmb.pb" />
    <!-- Pluto Life on Hand -->
    <package android:name="com.cmbchina.ccd.pluto.cmbActivity" />
    <!-- Shanghai Bank -->
    <package android:name="cn.com.shbank.mper" />
    <!-- Shanghai Pension Bank -->
    <package android:name="cn.com.shbank.pension" />
    <!-- Beijing Bank (Jingcai Life) -->
    <package android:name="com.bankofbeijing.mobilebanking" />
    <!-- Jingcai on Hand -->
    <package android:name="com.csii.bj.ui" />
    <!-- Industrial and Commercial Bank of China -->
    <package android:name="icbc" />
    <!-- ICBC eLife -->
    <package android:name="com.icbc.elife" />
    <!-- Agricultural Bank of China -->
    <package android:name="com.abchina.agbank" /> ## Другие

### ABI-фильтрация

В модуле **build.gradle** в разделе android{} можно настроить поддерживаемые архитектуры SO-библиотек (необязательно, можно выбрать несколько платформ для so, чем больше поддерживаемых платформ, тем больше размер APK).

```gradle
    defaultConfig {

        //...

        ndk {
            // Настройка поддерживаемых архитектур SO-библиотек (разработчик может выбрать одну или несколько платформ по необходимости)
            abiFilters 'armeabi-v7a' // , 'arm64-v8a', 'x86', 'x86_64'
        }
    }

Официальная документация

Журнал версий

v2.1.0: 2023-09-24

  • Упрощение процесса интеграции.
  • Оптимизация деталей (унификация определения результатов).

Посмотреть полный журнал изменений.

Пожертвования

Если вам нравится AppPay или вы считаете, что AppPay вам помог, вы можете поддержать его, поставив «звёздочку». Ваша поддержка — моя мотивация, спасибо :smiley:

Также вы можете отсканировать следующий QR-код, чтобы поддержать автора чашкой кофе :coffee:

Обо мне

Мой блог GitHub Gitee CSDN Блог-сад
Блог Jenly jenly1314 jenly1314 jenly121 Jenly

Свяжитесь со мной

Публичный аккаунт WeChat Электронная почта Gmail Электронная почта QQ Группа QQ Группа QQ
Jenly666 <a title="Напишите мне"

Обратите внимание, что в запросе есть код на языке программирования Gradle, который не был переведён. | jenly1314 | jenly1314 | 20867961 | 64020761 | |---|---|---|---| | jenly1314 | jenly1314 | 20867961 | 64020761|

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jenly1314-AppPay.git
git@api.gitlife.ru:oschina-mirror/jenly1314-AppPay.git
oschina-mirror
jenly1314-AppPay
jenly1314-AppPay
master