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

OSCHINA-MIRROR/jamling-af-pay

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

af-pay

af-pay изначально был компонентом оплаты в QuickAF (быстрый фреймворк для разработки Android), а теперь выделен в отдельную библиотеку для оплаты на Android. Поддерживает оплату через Alipay, WeChat Pay и позволяет выполнять как клиентские, так и серверные платежи.

Существует две версии библиотеки:

  • полная версия, которая включает зависимости от платёжных платформ;
  • чистая версия, не включающая зависимости от платёжных платформ. Это сделано для того, чтобы избежать конфликтов с другими библиотеками, такими как библиотека для обмена данными с друзьями. В этом случае необходимо самостоятельно добавить соответствующие jar-файлы, иначе во время выполнения произойдёт сбой.

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

Обратите внимание: если вы не хотите включать зависимости от платёжной платформы, используйте версию pure или соответствующую ветку.

Версия pure не содержит никаких зависимостей от платёжных платформ, и если ваш проект уже включает другие jar-файлы (например, libammsdk.jar для обмена данными с друзьями), это может привести к конфликтам и сбоям при упаковке. Рекомендуется использовать чистую версию.

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

  • Чтобы использовать полную версию, включая зависимости от платёжных платформ:
dependencies {
    compile 'cn.ieclipse.af:af-pay:0.0.2'
}
  • Для использования чистой версии:
dependencies {
    compile 'cn.ieclipse.af:af-pay-pure:0.0.2'
}

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

  1. Добавьте репозиторий Jitpack в файл build.gradle в корне проекта:
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
  1. Добавьте зависимость в модуль приложения:

— Для использования полной версии:

dependencies {
    compile 'com.github.Jamling:af-pay:master-SNAPSHOT'
}

— Для использования версии pure:

dependencies {
    compile 'com.github.Jamling:af-pay:pure-SNAPSHOT'
}

Пример кода

Оплата через Alipay

Способ оплаты через клиентское приложение поддерживает обе версии Alipay SDK (v1 и v2). Рекомендуется использовать v2. Способ оплаты через сервер поддерживает только v2. Если вы подали заявку на оплату через Alipay, вы можете изменить соответствующие настройки и запустить демонстрационное приложение для успешной оплаты.

Пример кода:

private void doAlipay(String orderInfo) {

    final Activity activity = this;
    Alipay alipay = new Alipay(activity);
    alipay.setPayListener(new Alipay.PayListener() {
        @Override
        public void onPaySuccess(PayResult payResult) {
            showToast(activity, "Оплата прошла успешно");
        }

        @Override
        public void onPayWaiting(PayResult payResult) {
            showToast(activity, "Ожидание подтверждения результата оплаты...");
        }

        @Override
        public void onPayCancel(PayResult payResult) {
            showToast(activity, "Вы отменили оплату");
        }

        @Override
        public void onPayFailure(PayResult payResult) {
            showToast(activity, "Ошибка оплаты\n" + payResult.getMemo());
        }
    });

    if (TextUtils.isEmpty(orderInfo)) {
        // Настройка v1
        Alipay.DEBUG = true;
        Alipay.Config.appId = "";
        Alipay.Config.rsa_private = "";
        Alipay.Config.rsa_public = "";
        Alipay.Config.notify_url = "app/pay/alipay_notify.do";

        if (!alipay.check()) {
            showToast(activity, "Не хватает настроек, оплата невозможна");
            return;
        }

        String trans_order_id = OrderInfoUtil2_0.genOutTradeNo();
        Map<String, String> map = OrderInfoUtil2_0.buildOrderParamMap(trans_order_id, "Тестовая оплата", "Тестовый товар 1, Тестовый товар 2",
                String.valueOf(0.01f), null);
        orderInfo = OrderInfoUtil2_0.getOrderInfo(map);

        alipay.payV1(orderInfo);
    } else {
        alipay.payV2(orderInfo);
    }
}

Оплата через WeChat

Пример кода:

private void doWxpay(String orderInfo) {
    final Activity activity = this;
    // Получение класса оплаты
    Wxpay wxpay = Wxpay.getInstance(activity);
    // Установка слушателя оплаты
    wxpay.setPayListener(new Wxpay.PayListener() {
        @Override
        public void onPaySuccess(BaseResp resp) {
            showToast(activity, "Оплата прошла успешно");
        }

        @Override
        public void onPayCanceled(BaseResp resp) {
            showToast(activity, "Отмена оплаты");
        }

        @Override
        public void onPayFailure(BaseResp resp) {
            showToast(activity, "Неудача при оплате");
        }
    });
    // Здесь выполняется серверный платеж, содержимое — это xml, возвращённый после создания единого заказа
    if (!TextUtils.isEmpty(orderInfo)) {
        PayReq req = OrderInfoUtil.getPayReq(orderInfo);
        wxpay.pay(req);
    } else { // Клиентский платеж
        Wxpay.DEBUG = true; // Включение журнала
``` ```
// API ключ, устанавливается на платформе продавца в WeChat
Wxpay.Config.api_key = "32-битная строка";

// APPID, генерируется после создания приложения на открытой платформе WeChat
Wxpay.Config.app_id = "wx...";

// Идентификатор продавца, создаётся после регистрации на платформе продавца
Wxpay.Config.mch_id = "14...";

// Интерфейс асинхронного уведомления о результатах оплаты, разрабатывается бэкендом
Wxpay.Config.notify_url = "http://www.ieclipse.cn/app/pay/wxpay_notify.do";

// Создание задачи для асинхронной обработки заказа по умолчанию
Wxpay.DefaultOrderTask task = new Wxpay.DefaultOrderTask(wxpay);

// Этот номер заказа продавца генерируется случайным образом
String outTradeNo = OrderInfoUtil2_0.genOutTradeNo();

// Установка параметров запроса для обработки заказа
task.setParams(OrderInfoUtil.buildOrderParamMap(outTradeNo, "Тестовый платёж", "", "1", null, null, null));

task.execute();
}

Примечание: данный перевод не является профессиональным и может содержать неточности.

Комментарии ( 0 )

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

Введение

Описание недоступно Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/jamling-af-pay.git
git@gitlife.ru:oschina-mirror/jamling-af-pay.git
oschina-mirror
jamling-af-pay
jamling-af-pay
master