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

OSCHINA-MIRROR/mayubao2015-Android-Pay

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CN.md 9.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 03:01 8a72d4f

Android-Pay

Поддержка интеграции библиотек для двух основных платёжных систем: WeChat и Alipay. Интеграция WeChat занимает две строки кода, а Alipay — три.

Импорт

Gradle

В файле build.gradle проекта добавьте зависимость:

dependencies {
    // Добавляем платёжную библиотеку
    compile 'io.github.mayubao:pay_library:1.0.1'
}

Maven

<dependency>
  <groupId>io.github.mayubao</groupId>
  <artifactId>pay_library</artifactId>
  <version>1.0.1</version>
  <type>pom</type>
</dependency>

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

WeChat Pay

  1. Создайте запрос на оплату WeChat:

         // 1. Создаём запрос на оплату через WeChat
         WechatPayReq wechatPayReq = new WechatPayReq.Builder()
                 .with(this) // activity экземпляр
                 .setAppId(appid) // Идентификатор приложения WeChat
                 .setPartnerId(partnerid)// Идентификатор продавца WeChat
                 .setPrepayId(prepayid)// Код предоплаты

// .setPackageValue(wechatPayReq.get)// "Sign=WXPay" .setNonceStr(noncestr) .setTimeStamp(timestamp)// Временная метка .setSign(sign)// Подпись .create(); //2. Отправляем запрос на оплату через WeChat PayAPI.getInstance().sendPayRequest(wechatPayReq);

    // О платеже через WeChat:
    // wechatPayReq.setOnWechatPayListener(new OnWechatPayListener);

Обратите внимание: сумма платежа не задана, она уже содержится в коде предоплаты prepayid.

### Alipay Pay

Существует два способа оплаты через Alipay: первый способ (не рекомендуется, так как он подвергает риску безопасность, поскольку закрытый ключ клиента раскрывается) и второй способ (рекомендуется).

#### Первый способ оплаты через Alipay (не рекомендуется)

```java

        //1. Создаем конфигурацию для оплаты через Alipay
        AliPayAPI.Config config = new AliPayAPI.Config.Builder()
                .setRsaPrivate(rsa_private) // Устанавливаем закрытый ключ (закрытый ключ продавца, формат pkcs8)
                .setRsaPublic(rsa_public)// Устанавливаем открытый ключ (открытый ключ Alipay)
                .setPartner(partner) // Устанавливаем партнера
                .setSeller(seller) // Устанавливаем продавца
                .create();

        //2. Создаем запрос на оплату через Alipay
        AliPayReq aliPayReq = new AliPayReq.Builder()
                .with(activity)// Activity экземпляр
                .apply(config)// Конфигурация для оплаты через Alipay
                .setOutTradeNo(outTradeNo)// Указываем уникальный номер заказа
                .setPrice(price)// Указываем цену заказа
                .setSubject(orderSubject)// Указываем тему заказа
                .setBody(orderBody)// Указываем содержание заказа
                .setCallbackUrl(callbackUrl)// Указываем URL обратного вызова
                .create()//
                .setOnAliPayListener(null);//

        //3. Отправляем запрос на оплату через Alipay
        PayAPI.getInstance().sendPayRequest(aliPayReq);

        // Об оплате через Alipay:
        // aliPayReq.setOnAliPayListener(new OnAliPayListener);

Второй способ оплаты через Alipay (рекомендуется)

        //1. Создаем информацию о заказе для оплаты через Alipay
        String rawAliOrderInfo = new AliPayReq2.AliOrderInfo()
                .setPartner(partner) // Идентификатор партнера || Идентификатор подписанта
                .setSeller(seller)  // Идентификатор продавца || Идентификатор покупателя Alipay
                .setOutTradeNo(outTradeNo) // Указываем уникальный номер заказа
                .setSubject(orderSubject) // Указываем тему заказа
                .setBody(orderBody) // Указываем содержание заказа
                .setPrice(price) // Указываем цену заказа
                .setCallbackUrl(callbackUrl) // Указываем URL обратного вызова
                .createOrderInfo(); // Создаем информацию о заказе для Alipay


        //2. Подписываем информацию о заказе с помощью закрытого ключа продавца
        // Здесь необходимо получить подписанную информацию о заказе от сервера
        String signAliOrderInfo = getSignAliOrderInfoFromServer(rawAliOrderInfo);

        //3. Отправляем запрос на оплату через Alipay
        AliPayReq2 aliPayReq = new AliPayReq2.Builder()
                .with(activity)// Activity экземпляр
                .setRawAliPayOrderInfo(rawAliOrderInfo)// Информация о заказе для Alipay
                .setSignedAliPayOrderInfo(signAliOrderInfo) // Подписанная информация о заказе
                .create()//
                .setOnAliPayListener(null);//
        PayAPI.getInstance().sendPayRequest(aliPayReq);

        // Об оплате через Alipay:
        // aliPayReq.setOnAliPayListener(new OnAliPayListener);

Скрытие кода


#pay_library
-dontwarn io.github.mayubao.pay_library.**
-keep class io.github.mayubao.pay_library.** {*;}

#wechat pay
-dontwarn com.tencent.**
-keep class com.tencent.** {*;}


#alipay
-dontwarn com.alipay.**
-keep class com.alipay.** {*;}

-dontwarn  com.ta.utdid2.**
-keep class com.ta.utdid2.** {*;}

-dontwarn  com.ut.device.**
-keep class com.ut.device.** {*;}

-dontwarn  org.json.alipay.**
-keep class corg.json.alipay.** {*;}

Документация

Документация по WeChat Pay

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

Документация по Alipay Pay

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.sdGXaH&treeId=204&articleId=105296&docType=1

Примечание

WeChat Pay

  • Перевод текста:

1. Платёж через WeChat

Платёж через WeChat может быть успешно инициирован только в приложении с официальной подписью и правильным именем пакета.

То есть, после того как продавец подаст заявку на разработку приложения на открытой платформе WeChat, приложение с соответствующим именем пакета и подписью сможет успешно инициировать платёж.

Подробности см. в документации по процессу разработки платёжного API WeChat.

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

  • В API платёжа через WeChat нет настроек обратного вызова, отображаемых на клиенте, обратный вызов настраивается на сервере. (В отличие от платёжной системы Alipay, где обратный вызов устанавливается на клиенте).

2. Платёжная система Alipay

Для обеспечения безопасности транзакций и защиты данных обеих сторон в платёжной системе Alipay необходимо настроить ключи для обеих сторон.

Подробнее см. документацию по системе обработки ключей платёжной системы Alipay.

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.1wPnBT&treeId=204&articleId=106079&docType=1

Поощрение

Если вы считаете, что этот проект был вам полезен, можете ли вы вознаградить меня чашкой кофе?

Платёж через WeChat

Платёжная система Alipay

Платёжная система Alipay

Лицензия

Copyright 2017 mayubao

Licensed under the Apache License, Version 2.0 (the «License»); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an «AS IS» BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

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

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

1
https://api.gitlife.ru/oschina-mirror/mayubao2015-Android-Pay.git
git@api.gitlife.ru:oschina-mirror/mayubao2015-Android-Pay.git
oschina-mirror
mayubao2015-Android-Pay
mayubao2015-Android-Pay
master