QuickPay-快速接入微信/支付寶/銀聯(lián)三種支付方式,幫助項(xiàng)目快速接入支付功能

項(xiàng)目開發(fā)中接入支付功能往往費(fèi)時(shí)費(fèi)力,不同的支付功能實(shí)現(xiàn)方式不一樣也導(dǎo)致代碼結(jié)構(gòu)不統(tǒng)一,這款QuickPay將微信/支付寶/銀聯(lián)三種支付方式進(jìn)行了統(tǒng)一封裝,方便項(xiàng)目中快速接入支付功能,接口統(tǒng)一也便于功能維護(hù)和修改。

項(xiàng)目地址:https://github.com/ban54/QuickPay
接入方式:

  1. 在項(xiàng)目根目錄的build.gradle中添加
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
     }
}
  1. 在project的build.gralde中增加依賴
dependencies {
    implementation 'com.github.ban54:QuickPay:v0.0.4'
}
  1. 微信支付對(duì)接
  • 在項(xiàng)目根package下建立的wxapi的子package, 并在這個(gè)package下新建一個(gè)類名為WXPayEntryActivity的類,繼承自com.ban54.quickpay.wx.WXPayCallbackActivity,同時(shí)實(shí)現(xiàn)wxAppId的get()方法,返回接入app中微信開放平臺(tái)注冊(cè)的app id
  • 在AndroidManifest.xml中注冊(cè)創(chuàng)建的WXPayEntryActivity類,并設(shè)置android:exported="true"
<activity android:name=".wxapi.WXPayEntryActivity" android:exported="true" />
  • 調(diào)用微信支付接口,代碼如下(WXPayParameter中的參數(shù)根據(jù)實(shí)際下單情況填充):
val payParameter = WXPayParameter()
payParameter.appId = "xxx"
payParameter.sign = "xxx"
payParameter.partnerId = "xxx"
payParameter.prepayId = "xxx"
payParameter.packageValue = "Sign=WXPay" // 固定值
payParameter.nonceStr = "xxx"
payParameter.timeStamp = "xxx"
PayHelper.pay(this, payParameter, mPayResultCallback)

mPayResultCallback的定義和使用請(qǐng)見“6. mPayResultCallback的定義和使用”。

  1. 支付寶支付對(duì)接
    代碼如下(AlipayParameter中的參數(shù)根據(jù)實(shí)際下單情況填充):
val payParameter = AlipayParameter("xxx")
PayHelper.pay(this, payParameter, mPayResultCallback)

mPayResultCallback的定義和使用請(qǐng)見“6. mPayResultCallback的定義和使用”

  1. 銀聯(lián)支付對(duì)接
    代碼如下(UnionPayParameter中的參數(shù)根據(jù)實(shí)際下單情況填充):
val payParameter = UnionPayParameter()
payParameter.tn = "xxx"
PayHelper.pay(this, payParameter, mPayResultCallback)

mPayResultCallback的定義和使用請(qǐng)見“6. mPayResultCallback的定義和使用”。

  1. mPayResultCallback的定義和使用
  • 作用:mPayResultCallback為PayResultCallback類實(shí)例,用于接收支付結(jié)果的回調(diào)(在主線程中執(zhí)行)
  • 定義:代碼如下
private val mPayResultCallback by lazy {
      object : PayResultCallback {
           override fun onSuccess(payParameter: PayParameter, payResult: PayResult) {
               // "支付成功"
           }

          override fun onFail(payParameter: PayParameter, payResult: PayResult) {
               // "支付失敗: " + payResult.description
           }

          override fun onCancel(payParameter: PayParameter, payResult: PayResult) {
               // "支付取消"
           }

          override fun onWait(payParameter: PayParameter, payResult: PayResult) {
               // "支付等待"
           }
     }
}
  1. 其它
  • PayResult類:PayResult用于保存返回的支付結(jié)果,其中code代表支付結(jié)果狀態(tài),description代表支付結(jié)果描述,主要用于支付失敗情況,subCode為錯(cuò)誤細(xì)分碼,日常使用可忽略
  • 微信支付調(diào)不起:排除接入問題和參數(shù)問題,微信支付很容易在這個(gè)場(chǎng)景卡住->“當(dāng)前手機(jī)微信賬號(hào)在另外一個(gè)手機(jī)上登錄后“,這種只能手動(dòng)去打開一下微信,屬于微信自身問題。如果還不行,可以嘗試在系統(tǒng)app設(shè)置中清除微信APP應(yīng)用數(shù)據(jù)再試。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 互聯(lián)網(wǎng)時(shí)代下的數(shù)字傳播 摘要:從一個(gè)21世紀(jì)新時(shí)代大學(xué)生的角度,淺談數(shù)字傳播帶來的社會(huì)影響以及大學(xué)生要具備的相關(guān)能...
    夏天的秘密花園閱讀 236評(píng)論 0 0
  • 經(jīng)歷網(wǎng)絡(luò)詐騙之后 不敢相信,網(wǎng)絡(luò)詐騙竟然會(huì)發(fā)生在我身上,而且金額如此之大。沒遇到過的人無法感同身受,真正遭遇后內(nèi)心...
    發(fā)配于人海閱讀 180評(píng)論 0 0
  • 今天還是有點(diǎn)開心的,都忍不住要告訴你,本來打算熬到全部成功的呢,可是又不想其他人比你先知道消息...... 然而你...
    自由和安閱讀 528評(píng)論 3 1
  • 越是喜歡,越是熟悉,反而越不知道怎么相處了。我喜歡你喜歡到心猿意馬,喜歡到無可救藥,喜歡到影響了工作。我已無法正常...
    清溪淺淺流閱讀 119評(píng)論 0 0
  • 幾天前看劉潤(rùn)老師分享的區(qū)塊鏈直播,挺有感觸的。作為國(guó)內(nèi)最棒的咨詢師之一,劉潤(rùn)老師對(duì)于每一個(gè)行業(yè)都有其專業(yè)、敏銳、獨(dú)...
    Hellc閱讀 658評(píng)論 0 0

友情鏈接更多精彩內(nèi)容