先放上地址GitHub,歡迎star,歡迎給我發issues
也歡迎star我另外的庫LDialog
LPhotoPickerjava
RxJava版本android
**(LiveData版本)**一個集成微信、支付寶、銀聯支付的小巧庫,本庫採用LiveData響應數據,具備LiveData的全部優勢,例如生命週期的感知。
本庫不提供任何邏輯,主要是提供庫的集成,省去配置時間,以簡單、輕量爲主,不作過分封裝。
三個支付平臺庫相互獨立,可根據項目,單獨使用,避免臃腫git
先在 build.gradle 的 repositories 添加倉庫:github
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"appJavaDemoActivitymaven
// …………後臺服務器返回的訂單數據,填入下方
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
權限,建議動態獲取給與ide
// …………後臺服務器返回的訂單數據,填入下方
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 都會走到這裏
// 不論成功與否,都在此對服務器進行查詢,一切數據,以服務器爲準
}
})
複製代碼