一個簡單輕便的移動支付整合庫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工具
- Loop手錶能進行移動支付:這個普通的手錶不簡單OOP
- 如何設計一個優秀的移動支付流程?
- VSCode一個簡單的vue移動端適配方案VSCodeVue
- 一個簡單的MySQL資料遷移示例MySql
- 用 PHP 開發一個簡單的以太坊支付系統PHP
- 【SQL】【遷移】寫了一個簡單的sequence遷移指令碼SQL指令碼
- Laravel 用 abstract 與 interface 寫一個簡單的支付回撥 demoLaravel
- 支付寶alipay移動支付
- js便籤筆記(14)——用nodejs搭建最簡單、輕量化的http server筆記NodeJSHTTPServer
- 動手實現一個簡單的promisePromise
- 輕量簡便的android沉浸式狀態列Android
- 優化 MySQL: 3 個簡單的小調整優化MySql
- Vue封裝一個簡單輕量的上傳檔案元件Vue封裝元件
- 自己動手實現一個簡單的 IOC
- 自己動手寫一個簡單的MVC框架MVC框架
- 一個網站故障排查的、程式碼更新的簡便指令碼網站指令碼
- 一個簡單的滾動數字的效果實現
- 一個簡單、輕量、可隨意定製的Android版本更新庫 ?Android
- RxRouter -- 一個輕量級、簡單、智慧並且強大的安卓路由庫安卓路由
- 簡單上手SpringBean的整個裝配過程SpringBean
- 一個簡單的 PWA 指南
- 一個簡簡單單的紅點系統框架框架
- 一個簡單的自動備份alert log指令碼指令碼
- AcWing 242. 一個簡單的整數問題(樹狀陣列解法)陣列
- Bain & Co.:移動支付使用者花費是非移動支付使用者的2倍AI
- 移動網際網路的支付作用
- Google:旅遊品牌應簡單化、個性化和移動化Go
- 一個簡單的載入動畫(一)動畫
- 泰國加快移動支付應用
- 全球12大移動支付AppAPP
- Go的第一個Hello程式 簡簡單單 - 快快樂樂Go
- Nancy .Net 輕量級mvc框架使用(1)搭建一個簡單專案NaNMVC框架
- Go語言一個輕便的實時日誌類似slack收集應用Go
- 遊戲開發之--簡單的人物走動和地圖移動(一)遊戲開發地圖
- 分享一個簡單的redis限流Redis
- 一個簡單的 Amqp 封裝MQ封裝