修复首次添加信用卡不能编辑的bug
This commit is contained in:
@@ -28,9 +28,9 @@ android {
|
||||
applicationId "com.abbidot.tracker"
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 35
|
||||
versionCode 2212
|
||||
// versionName "2.2.12"
|
||||
versionName "2.2.12-Beta2"
|
||||
versionCode 2213
|
||||
// versionName "2.2.13"
|
||||
versionName "2.2.13-Beta1"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
|
||||
@@ -44,6 +44,9 @@ class AddCreditCardPaymentActivity :
|
||||
private var mOldCard: CreditCardBean? = null
|
||||
private var isEdit = false
|
||||
|
||||
//是否存在PaymentMethodID
|
||||
private var isHavePaymentMethodID = false
|
||||
|
||||
override fun getTopBar() = mViewBinding.ilAddPaymentMethodTopInfo.titleTopBar
|
||||
|
||||
override fun initData() {
|
||||
@@ -52,7 +55,8 @@ class AddCreditCardPaymentActivity :
|
||||
mCreditCard = Util.getParcelableAdaptive(
|
||||
intent, ConstantString.Card, CreditCardBean::class.java
|
||||
)
|
||||
isEdit = getBoolean(ConstantString.Edit, false)
|
||||
isEdit = getBoolean(ConstantString.Edit)
|
||||
isHavePaymentMethodID = getBoolean(ConstantString.isCheck)
|
||||
}
|
||||
if (null == mCreditCard) mCreditCard = CreditCardBean()
|
||||
|
||||
@@ -382,45 +386,53 @@ class AddCreditCardPaymentActivity :
|
||||
setButtonEnabled(btnSaveNewCreditCard, ConstantInt.Type0)
|
||||
lifecycleScope.launch(Dispatchers.IO) {
|
||||
mCreditCard?.let {
|
||||
MyDatabase.creditCardDao().deleteAll(MyDatabase.CREDIT_CARD_TABLE)
|
||||
it.cardNumber = cardNumber
|
||||
it.cardName = cardName
|
||||
it.expirationDate = creditCardValidity
|
||||
it.cvv = cvv
|
||||
val insertResult = MyDatabase.creditCardDao().insert(it)
|
||||
if (insertResult > 0) {
|
||||
if (isEdit) {
|
||||
val dates = creditCardValidity.split("/")
|
||||
// 用 PaymentMethodCreateParams 封装银行卡,不再直接new Card
|
||||
val cardParams =
|
||||
PaymentMethodCreateParams.Card.Builder().setNumber(cardNumber)
|
||||
.setExpiryMonth(dates[0].toInt())
|
||||
.setExpiryYear(dates[1].toInt()).setCvc(cvv).build()
|
||||
val paymentMethodParams = PaymentMethodCreateParams.create(cardParams)
|
||||
val stripeKey = ThirdPartyUtil.instance.getStripeKey(mContext)
|
||||
LogUtil.e("支付stripeKey=$stripeKey")
|
||||
Stripe(mContext, stripeKey).createPaymentMethod(
|
||||
paymentMethodParams,
|
||||
callback = object : ApiResultCallback<PaymentMethod> {
|
||||
override fun onError(e: Exception) {
|
||||
showToast(R.string.txt_missing_param)
|
||||
setButtonEnabled(btnSaveNewCreditCard, ConstantInt.Type1)
|
||||
LogUtil.e("PaymentMethodCreateParams,${e.message}")
|
||||
}
|
||||
if (isHavePaymentMethodID && isEdit) {
|
||||
val dates = creditCardValidity.split("/")
|
||||
// 用 PaymentMethodCreateParams 封装银行卡,不再直接new Card
|
||||
val cardParams =
|
||||
PaymentMethodCreateParams.Card.Builder().setNumber(cardNumber)
|
||||
.setExpiryMonth(dates[0].toInt())
|
||||
.setExpiryYear(dates[1].toInt()).setCvc(cvv).build()
|
||||
val paymentMethodParams = PaymentMethodCreateParams.create(cardParams)
|
||||
val stripeKey = ThirdPartyUtil.instance.getStripeKey(mContext)
|
||||
LogUtil.e("支付stripeKey=$stripeKey")
|
||||
Stripe(mContext, stripeKey).createPaymentMethod(
|
||||
paymentMethodParams,
|
||||
callback = object : ApiResultCallback<PaymentMethod> {
|
||||
override fun onError(e: Exception) {
|
||||
var message = e.message
|
||||
if (null == message || TextUtils.isEmpty(message)) message =
|
||||
getString(R.string.txt_missing_param)
|
||||
showToast(message)
|
||||
setButtonEnabled(btnSaveNewCreditCard, ConstantInt.Type1)
|
||||
LogUtil.e("PaymentMethodCreateParams,${e.message}")
|
||||
}
|
||||
|
||||
override fun onSuccess(result: PaymentMethod) {
|
||||
LogUtil.e(result.toString())
|
||||
val paymentMethodID = "${result.id}"
|
||||
mSubscriptionPayViewModel.savePaymentMethodInfo(
|
||||
paymentMethodID
|
||||
)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
runOnUiThread {
|
||||
setResult(ResultCode.ResultCode_1, null)
|
||||
showToast(R.string.txt_save_successful, isFinish = true)
|
||||
}
|
||||
override fun onSuccess(result: PaymentMethod) {
|
||||
LogUtil.e(result.toString())
|
||||
MyDatabase.creditCardDao()
|
||||
.deleteAll(MyDatabase.CREDIT_CARD_TABLE)
|
||||
it.cardNumber = cardNumber
|
||||
it.cardName = cardName
|
||||
it.expirationDate = creditCardValidity
|
||||
it.cvv = cvv
|
||||
MyDatabase.creditCardDao().insert(it)
|
||||
val paymentMethodID = "${result.id}"
|
||||
mSubscriptionPayViewModel.savePaymentMethodInfo(
|
||||
paymentMethodID
|
||||
)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
MyDatabase.creditCardDao().deleteAll(MyDatabase.CREDIT_CARD_TABLE)
|
||||
it.cardNumber = cardNumber
|
||||
it.cardName = cardName
|
||||
it.expirationDate = creditCardValidity
|
||||
it.cvv = cvv
|
||||
MyDatabase.creditCardDao().insert(it)
|
||||
runOnUiThread {
|
||||
setResult(ResultCode.ResultCode_1, null)
|
||||
showToast(R.string.txt_save_successful, isFinish = true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,6 +135,13 @@ class CreditCardPaymentFragment : BaseFragment<FragmentCreditCardPaymentBinding>
|
||||
Intent(mContext, AddCreditCardPaymentActivity::class.java).let {
|
||||
it.putExtra(ConstantString.Card, cardBean)
|
||||
it.putExtra(ConstantString.Edit, true)
|
||||
//是否存在PaymentMethodID
|
||||
var isHavePaymentMethodID = false
|
||||
getHostActivity(PaymentMethodActivity::class.java)?.let { h ->
|
||||
isHavePaymentMethodID =
|
||||
!(null == h.mPaymentIDBean || TextUtils.isEmpty(h.mPaymentIDBean?.stripeMethodInfo?.lastFourNumber))
|
||||
}
|
||||
it.putExtra(ConstantString.isCheck, isHavePaymentMethodID)
|
||||
launchActivity(mActivity!!, mActivityResultLauncher, it)
|
||||
}
|
||||
}
|
||||
@@ -273,7 +280,10 @@ class CreditCardPaymentFragment : BaseFragment<FragmentCreditCardPaymentBinding>
|
||||
paymentMethodParams,
|
||||
callback = object : ApiResultCallback<PaymentMethod> {
|
||||
override fun onError(e: Exception) {
|
||||
showToast(R.string.txt_missing_param)
|
||||
var message = e.message
|
||||
if (null == message || TextUtils.isEmpty(message)) message =
|
||||
getString(R.string.txt_missing_param)
|
||||
showToast(message)
|
||||
showNoCancelableLoading(false)
|
||||
LogUtil.e("ApiResultCallback,${e.message}")
|
||||
}
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
<string name="txt_card_list_end">À partir du %s</string>
|
||||
<string name="txt_duration_min_unit">%s min</string>
|
||||
<string name="txt_legal_info_content">En utilisant notre application, vous acceptez notre Politique de confidentialité et nos Conditions générales. Nous pouvons les mettre à jour occasionnellement - votre utilisation continue signifie que vous acceptez ces modifications.</string>
|
||||
<!-- Android -->
|
||||
<string name="start_txt_yes">Oui</string>
|
||||
<string name="system_txt_copyright">Copyright © %d ABBIDOT Tous droits réservés</string>
|
||||
<string name="tracker_number">%d traceurs</string>
|
||||
@@ -357,7 +358,6 @@
|
||||
<string name="text_sticker_hint_easy_photos">Double-cliquez pour modifier</string>
|
||||
<string name="text_sticker_hint_name_easy_photos">Personnaliser</string>
|
||||
<string name="picture_selection_easy_photos">Sélection de photos</string>
|
||||
|
||||
<string name="gif_easy_photos">GIF</string>
|
||||
<string name="txt_card_list_time">Jours</string>
|
||||
<string name="txt_card_auto_sub">Renouvellement automatique :</string>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
# This option should only be used with decoupled projects. For more details, visit
|
||||
# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
|
||||
# org.gradle.parallel=true
|
||||
#Wed Jun 10 09:53:29 CST 2026
|
||||
#Fri Jun 26 11:14:19 CST 2026
|
||||
BAIDU_MAP_KEY=YT2CmlqAkpMyzmw1AKNIBlYlBtHESEaW
|
||||
BUGLY_KEY=06fc0a9cd1
|
||||
GOOGLE_MAP_KEY=AIzaSyCFEqlOoo2274NsX7tzoQjs_DA7B9N7-gY
|
||||
@@ -25,4 +25,4 @@ android.nonTransitiveRClass=false
|
||||
android.suppressUnsupportedCompileSdk=34
|
||||
android.useAndroidX=true
|
||||
kotlin.code.style=official
|
||||
org.gradle.jvmargs=-Xmx1024M -Dkotlin.daemon.jvm.options\="-Xmx1024M" -Dfile.encoding\=UTF-8
|
||||
org.gradle.jvmargs=-Xmx1536M -Dkotlin.daemon.jvm.options\="-Xmx1536M" -Dfile.encoding\=UTF-8
|
||||
|
||||
Reference in New Issue
Block a user