一個簡單輕便的移動支付整合庫FastPay
先放上地址GitHub,歡迎star,歡迎給我發issues
也歡迎star我另外的庫LDialog
LPhotoPicker
FastPay
(LiveData版本)一個整合微信、支付寶、銀聯支付的小巧庫,本庫採用LiveData響應資料,具有LiveData的所有優點,例如生命週期的感知。
本庫不提供任何邏輯,主要是提供庫的整合,省去配置時間,以簡單、輕量為主,不做過度封裝。
三個支付平臺庫相互獨立,可根據專案,單獨使用,避免臃腫
獲取
先在 build.gradle 的 repositories 新增倉庫:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在dependencies中新增:
dependencies {
//(根據需要,選擇對應包匯入)
//支付寶
implementation 'com.github.limuyang2.FastPay:alipaylibrary:0.1'
//微信
implementation 'com.github.limuyang2.FastPay:wechatpaylibrary:0.1'
//銀聯
implementation 'com.github.limuyang2.FastPay:unionpaylibrary:0.1'
}
使用
微信
銀聯
- 根據以上官方文件所示,移動端屬於不安全端,資料容易被篡改,所以不能以客戶端返回結果作為使用者支付的結果
(重要) 使用建議:
onSuccess
和onFailed
方法可以不用重寫,所有的結果均在onComplete
中去進行伺服器查詢
以下示例為kotlin。唯一區別在於java例項化Observer時,請在"xxObserver"前加上"Java",例如:WxPayObserver,java使用"JavaWxPayObserver"
微信使用
// …………後臺伺服器返回的訂單資料,填入下方
val request = PayReq()
request.appId = "wx7e16cf49c52635e2"
request.partnerId = "1900000109"
request.prepayId = "1101000000140415649af9fc314aa427"
request.packageValue = "Sign=WXPay"
request.nonceStr = "1101000000140429eb40476f8896f4c9"
request.timeStamp = "1398746574"
request.sign = "7FFECB600D7157C5AA49810D2D8F28BC2811827B"
FastWxPay("wx7e16cf49c52635e2", this).pay(request, object : WxPayObserver {
override fun onSuccess() {
//成功,微信app返回的結果。
//(可以不重寫;如果重寫,建議僅作為除錯列印Log使用)
//注意一定不能以客戶端返回作為使用者支付的結果,應以伺服器端的接收的支付通知或查詢API返回的結果為準
}
override fun onFailed(message: String) {
//失敗,微信app返回的結果。
//(可以不重寫;如果重寫,建議僅作為除錯列印Log使用)
//注意一定不能以客戶端返回作為使用者支付的結果,應以伺服器端的接收的支付通知或查詢API返回的結果為準
}
override fun onCancel() {
//取消
}
override fun onComplete() {
// onSuccess,onFailed 都會走到這裡
// 不論成功與否,都在此對伺服器進行查詢,一切資料,以伺服器為準
}
})
支付寶使用
支付寶官方需要獲取android.permission.READ_PHONE_STATE
許可權,建議動態獲取給與
// …………後臺伺服器返回的訂單資料,填入下方
val orderInfo = "app_id=2015052600090779&biz………………………………"
FastAliPay(this).pay(orderInfo, object : AliPayObserver {
override fun onSuccess() {
//(可以不重寫;如果重寫,建議僅作為除錯列印Log使用)
}
override fun onFailed(message: String) {
//(可以不重寫;如果重寫,建議僅作為除錯列印Log使用)
}
override fun onCancel() {
}
override fun onComplete() {
// onSuccess,onFailed 都會走到這裡
// 不論成功與否,都在此對伺服器進行查詢,一切資料,以伺服器為準
}
})
銀聯支付
// …………後臺伺服器返回的 銀聯tn 資料,填入下方
val tn = "869278591167656016600"
// UnionPayType.TEST 為銀聯測試環境;UnionPayType.RELEASE 為銀聯正式環境
FastUnionPay(this).pay(UnionPayType.TEST, tn, object : UnionPayObserver {
override fun onSuccess() {
Log.d("FastUnionPay", "onSuccess")
}
override fun onFailed(message: String) {
Log.d("FastUnionPay", message)
}
override fun onCancel() {
Log.d("FastUnionPay", "onCancel")
}
override fun onComplete() {
// onSuccess,onFailed 都會走到這裡
// 不論成功與否,都在此對伺服器進行查詢,一切資料,以伺服器為準
}
})
相關文章
- GeoPackage - 一個簡便輕量的本地地理資料庫Package資料庫
- 對移動支付的一些簡單安全探測
- 一個出於ARouter,卻更輕便簡潔的Route工具
- VSCode一個簡單的vue移動端適配方案VSCodeVue
- android 整合微信支付和支付寶支付其實很簡單Android
- 一個簡單、輕量、可隨意定製的Android版本更新庫 ?Android
- 一個簡單易用高效的工具庫
- 一個簡單多庫配置
- RxRouter -- 一個輕量級、簡單、智慧並且強大的安卓路由庫安卓路由
- 用 PHP 開發一個簡單的以太坊支付系統PHP
- 一個簡單例子教會你C++動態庫的用法單例C++
- 支付寶alipay移動支付
- SpringBoot整合MongoDB(實現一個簡單快取)Spring BootMongoDB快取
- Laravel 用 abstract 與 interface 寫一個簡單的支付回撥 demoLaravel
- 一個簡單的人臉識別庫
- 動手實現一個簡單的promisePromise
- 使用JavaScript手寫一個簡單的快捷鍵庫JavaScript
- 一個.Net簡單、易用的配置檔案操作庫
- Vue封裝一個簡單輕量的上傳檔案元件Vue封裝元件
- 自己動手實現一個簡單的 IOC
- 使用node啟動一個簡單的服務
- 封裝一個簡單的動畫函式封裝動畫函式
- leetcode 283. 移動零(簡單)LeetCode
- 一個簡單的構建React元件動畫方案React元件動畫
- 分享一個簡單的畫刷動畫效果:?️BrushEffect動畫
- 一個網站故障排查的、程式碼更新的簡便指令碼網站指令碼
- 搭建個人圖書館!一個簡單的線上個人書庫
- .net 站點整合【先鋒支付】線上充值實現簡單整理
- 一個簡簡單單的紅點系統框架框架
- 一個簡單的 PWA 指南
- 一個簡單的Tessellation Shader
- 一個簡單的「IOC」例子
- Vant 1.0 釋出:輕量、可靠的移動端 Vue 元件庫Vue元件
- 一個簡單易用的資料庫壞塊處理方案資料庫
- ?一個簡單愉悅的 hooks 使用庫 react-hooks-easyHookReact
- parallel: 一個簡單的並行執行Go迴圈的庫Parallel並行Go
- Soa: 一個輕量級的微服務庫微服務
- 一個簡單的Linux啟動jar包的shell指令碼LinuxJAR指令碼