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

OSCHINA-MIRROR/javen205-JPay

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать

A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.

Permissions
  • Commercial use
  • Modification
  • Distribution
  • Patent use
  • Private use
Limitations
  • Trademark use
  • Liability
  • Warranty
Conditions
  • License and copyright notice
  • State changes
README.md 9.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 07.03.2025 23:54 27450e8

JPay — простой, но не тривиальный платежный SDK

Обёртка над платежами WeChat App, Alipay App и UnionPay App, предоставляющая простой интерфейс и обратный вызов результата платежа

License JPay Автор

Клиентская и серверная части

Контактная информация

QQ0Group Email

Способ использования

1. Координаты

Шаг 1. Добавьте его в ваш основной build.gradle в конце раздела repositories:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

Шаг 2. Добавьте зависимости

implementation 'com.github.javen205:JPay:AliPay:latest.release.here'
implementation 'com.github.javen205:JPay:WxPay:latest.release.here'

Например, версия 0.0.5:

implementation 'com.github.javen205.JPay:AliPay:0.0.5'
implementation 'com.github.javen205.JPay:WxPay:0.0.5'

2. Настройка Android Manifest

2.1 Объявление прав доступа

// Для последней версии специальных настроек не требуется, они уже включены в библиотеку
```#### 2.2 Регистрация activity

Добавьте следующий контент в узел `<application>`:

// Для последней версии специальных настроек не требуется, они уже включены в библиотеку


### 3. Вызов платежа

#### 3.1 Платеж через WeChat

```java
com.jpay.wxpay.JPay.getIntance(mContext).toWxPay(appId, partnerId, prepayId, nonceStr, timeStamp, sign, new com.jpay.wxpay.JPay.WxPayListener() {
    @Override
    public void onPaySuccess() {
        Toast.makeText(mContext, "Платёж завершен успешно", Toast.LENGTH_SHORT).show();
    }
});
@Override
public void onPayError(int error_code, String message) {
    Toast.makeText(mContext, "Платёж не удался> " + error_code + " " + message, Toast.LENGTH_SHORT).show();
}

@Override
public void onPayCancel() {
    Toast.makeText(mContext, "Отменён платёж", Toast.LENGTH_SHORT).show();
}
});

или

com.jpay.wxpay.JPay.getIntance(mContext).toWxPay(payParameters, new com.jpay.wxpay.JPay.WxPayListener() {
    @Override
    public void onPaySuccess() {
        Toast.makeText(mContext, "Успешный платёж", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPayError(int error_code, String message) {
        Toast.makeText(mContext, "Платёж не удался> " + error_code + " " + message, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPayCancel() {
        Toast.makeText(mContext, "Отменён платёж", Toast.LENGTH_SHORT).show();
    }
});

payParameters — это JSON-строка в следующем формате:

{
  "appId": "",
  "partnerId": "",
  "prepayId": "",
  "sign": "",
  "nonceStr": "",
  "timeStamp": ""
}

или

JPay.getIntance(mContext).toWxPay(appId, partnerId, prepayId, nonceStr, timeStamp, sign, new JPay.JPayListener() {
    @Override
    public void onPaySuccess() {
        Toast.makeText(mContext, "Успешный платёж", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPayError(int error_code, String message) {
        Toast.makeText(mContext, "Платёж не удался> " + error_code + " " + message, Toast.LENGTH_SHORT).show();
    }
});
``````java
    @Override
    public void onPayCancel() {
        Toast.makeText(mContext, "Отменён платеж", Toast.LENGTH_SHORT).show();
    }
});
3.2 Платеж через Alipay
JPay.getIntance(mContext).toAliPay(orderInfo, new JPay.AliPayListener() {
    @Override
    public void onPaySuccess() {
        Toast.makeText(mContext, "Успешный платеж", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPayError(int error_code, String message) {
        Toast.makeText(mContext, "Платеж не удался>" + error_code + " " + message, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPayCancel() {
        Toast.makeText(mContext, "Отменён платеж", Toast.LENGTH_SHORT).show();
    }
});
3.3 Платеж через UnionPay
com.jpay.unionpay.JPay.getIntance(mContext).toUnionPay("01", tn, new com.jpay.unionpay.JPay.UnionPayListener() {
    @Override
    public void onPaySuccess() {
        Toast.makeText(mContext, "Успешный платеж", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPayError(int error_code, String message) {
        Toast.makeText(mContext, "Платеж не удался>" + error_code + " " + message, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPayCancel() {
        Toast.makeText(mContext, "Отменён платеж", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUnionPay(String dataOrg, String sign, String mode) {
        Log.d("onUnionPay", "Платеж успешен>необходимо проверить заказ в бэкэнде>dataOrg" + dataOrg + " sign>" + sign + " mode>" + mode);
        Toast.makeText(mContext, "Платеж успешен>необходимо проверить заказ в бэкэнде>" + dataOrg + " " + mode, Toast.LENGTH_SHORT).show();
    }
});

Активность переопределяет метод onActivityResult для прослушивания обратных вызовов

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.e("UnionPay", requestCode + " " + resultCode);
    try {
        UnionPay.getInstance(this).onUnionPayResult(data);
    } catch (JSONException e) {
        e.printStackTrace();
    }
    super.onActivityResult(requestCode, resultCode, data);
}
```### 4. Пример использования

> appId и связанные ключи мы получаем с сервера

#### 4.1 Указания для клиента

 1. Измените имя пакета в `AndroidManifest.xml` на имя пакета вашего приложения
 2. Измените `applicationId` в `build.gradle` вашего приложения на имя пакета вашего приложения
 3. При тестировании измените ключ подписи по умолчанию

> Скопируйте ключ в корневую директорию проекта (app) и измените конфигурацию `buildTypes` следующим образом:

signingConfigs { release { storeFile file("wxkey") storePassword '123456' keyAlias '1' keyPassword '123456' } }

buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { signingConfig signingConfigs.release } }


#### 4.2 Дополнительные материалы

Подробное описание работы с платежами WeChat и Alipay через мобильные приложения доступно по ссылке [блог](http://javen.blog.csdn.net).

[Как создать свой ngrok-сервер за 10 минут для проксирования внутренней сети](http://javen.blog.csdn.net/article/details/70341106)
[Интеграция WeChat APP платежей в Android](http://javen.blog.csdn.net/article/details/54024232)

[Интеграция Alipay APP платежей в Android](http://javen.blog.csdn.net/article/details/54024238)[Понимаете ли вы WAP-платежи Alipay?](http://javen.blog.csdn.net/article/details/54024253)

**Рекомендую**

[Разработка WeChat Official Account: подписка, сервис](https://gitee.com/javen205/weixin_guide)

[Множественная сборка Android Studio для различных каналов](http://javen.blog.csdn.net/article/details/61420290)

[Управление зависимостями в Android и создание частной серверной среды](http://javen.blog.csdn.net/article/details/60336030)[Загрузка aar (библиотеки) в JCenter с помощью Android Studio](http://javen.blog.csdn.net/article/details/60336189)

Поскольку предоставленный текст представляет собой ссылку на внешний источник, который не содержит текста для перевода, то здесь нет необходимости делать какие-либо изменения. Текст остается без изменений.

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

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

1
https://api.gitlife.ru/oschina-mirror/javen205-JPay.git
git@api.gitlife.ru:oschina-mirror/javen205-JPay.git
oschina-mirror
javen205-JPay
javen205-JPay
master