Android-Pay
Поддержка интеграции библиотек для двух основных платёжных систем: WeChat и Alipay. Интеграция WeChat занимает две строки кода, а Alipay — три.
Импорт
В файле build.gradle проекта добавьте зависимость:
dependencies {
// Добавляем платёжную библиотеку
compile 'io.github.mayubao:pay_library:1.0.1'
}
<dependency>
<groupId>io.github.mayubao</groupId>
<artifactId>pay_library</artifactId>
<version>1.0.1</version>
<type>pom</type>
</dependency>
Использование
Создайте запрос на оплату 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);
//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.** {*;}
Документация
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
Примечание
1. Платёж через WeChat
Платёж через WeChat может быть успешно инициирован только в приложении с официальной подписью и правильным именем пакета.
То есть, после того как продавец подаст заявку на разработку приложения на открытой платформе WeChat, приложение с соответствующим именем пакета и подписью сможет успешно инициировать платёж.
Подробности см. в документации по процессу разработки платёжного API WeChat.
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
2. Платёжная система Alipay
Для обеспечения безопасности транзакций и защиты данных обеих сторон в платёжной системе 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 )