캔 결제수단 추가

- 카카오페이
This commit is contained in:
klaus 2024-08-27 17:05:23 +09:00
parent 63e9b705a9
commit e38778d9e7
4 changed files with 55 additions and 19 deletions

View File

@ -35,8 +35,8 @@ android {
applicationId "kr.co.vividnext.sodalive" applicationId "kr.co.vividnext.sodalive"
minSdk 23 minSdk 23
targetSdk 34 targetSdk 34
versionCode 99 versionCode 100
versionName "1.16.0" versionName "1.16.1"
} }
buildTypes { buildTypes {
@ -137,7 +137,7 @@ dependencies {
implementation 'com.google.firebase:firebase-config-ktx' implementation 'com.google.firebase:firebase-config-ktx'
// bootpay // bootpay
implementation "io.github.bootpay:android:4.3.4" implementation "io.github.bootpay:android:4.4.3"
// agora // agora
implementation "io.agora.rtc:voice-sdk:4.2.6" implementation "io.agora.rtc:voice-sdk:4.2.6"

View File

@ -33,13 +33,17 @@ class CanPaymentActivity : BaseActivity<ActivityCanPaymentBinding>(
ActivityCanPaymentBinding::inflate ActivityCanPaymentBinding::inflate
) { ) {
enum class PaymentMethod(val method: String) { enum class PaymentMethod(val method: String) {
CARD("카드"), BANK("계좌이체"), PHONE("휴대폰") CARD("카드"),
BANK("계좌이체"),
PHONE("휴대폰"),
KAKAOPAY("카카오페이")
} }
private val viewModel: CanPaymentViewModel by inject() private val viewModel: CanPaymentViewModel by inject()
private var canResponse: CanResponse? = null private var canResponse: CanResponse? = null
private var gotoPrevPage: Boolean = false private var gotoPrevPage: Boolean = false
private var isKakao: Boolean = false
private val handler = Handler(Looper.getMainLooper()) private val handler = Handler(Looper.getMainLooper())
@ -105,6 +109,9 @@ class CanPaymentActivity : BaseActivity<ActivityCanPaymentBinding>(
binding.tvMethodCard.setOnClickListener { viewModel.setPaymentMethod(PaymentMethod.CARD) } binding.tvMethodCard.setOnClickListener { viewModel.setPaymentMethod(PaymentMethod.CARD) }
binding.tvMethodBank.setOnClickListener { viewModel.setPaymentMethod(PaymentMethod.BANK) } binding.tvMethodBank.setOnClickListener { viewModel.setPaymentMethod(PaymentMethod.BANK) }
binding.tvMethodPhone.setOnClickListener { viewModel.setPaymentMethod(PaymentMethod.PHONE) } binding.tvMethodPhone.setOnClickListener { viewModel.setPaymentMethod(PaymentMethod.PHONE) }
binding.flMethodKakaopay.setOnClickListener {
viewModel.setPaymentMethod(PaymentMethod.KAKAOPAY)
}
viewModel.paymentMethodLiveData.observe(this) { viewModel.paymentMethodLiveData.observe(this) {
allPaymentMethodSelectFalse() allPaymentMethodSelectFalse()
@ -114,15 +121,23 @@ class CanPaymentActivity : BaseActivity<ActivityCanPaymentBinding>(
PaymentMethod.CARD -> paymentMethodSelect(binding.tvMethodCard) PaymentMethod.CARD -> paymentMethodSelect(binding.tvMethodCard)
PaymentMethod.BANK -> paymentMethodSelect(binding.tvMethodBank) PaymentMethod.BANK -> paymentMethodSelect(binding.tvMethodBank)
PaymentMethod.PHONE -> paymentMethodSelect(binding.tvMethodPhone) PaymentMethod.PHONE -> paymentMethodSelect(binding.tvMethodPhone)
PaymentMethod.KAKAOPAY -> {
isKakao = true
binding.flMethodKakaopay
.setBackgroundResource(R.drawable.bg_round_corner_10_13181b_3bb9f1)
}
} }
} }
} }
} }
private fun allPaymentMethodSelectFalse() { private fun allPaymentMethodSelectFalse() {
isKakao = false
paymentMethodSelectFalse(binding.tvMethodBank) paymentMethodSelectFalse(binding.tvMethodBank)
paymentMethodSelectFalse(binding.tvMethodCard) paymentMethodSelectFalse(binding.tvMethodCard)
paymentMethodSelectFalse(binding.tvMethodPhone) paymentMethodSelectFalse(binding.tvMethodPhone)
binding.flMethodKakaopay
.setBackgroundResource(R.drawable.bg_round_corner_10_232323_777777)
} }
private fun paymentMethodSelectFalse(view: TextView) { private fun paymentMethodSelectFalse(view: TextView) {
@ -159,25 +174,34 @@ class CanPaymentActivity : BaseActivity<ActivityCanPaymentBinding>(
} }
private fun requestPayment(chargeId: Long) { private fun requestPayment(chargeId: Long) {
var username = SharedPreferenceManager.nickname var payload = Payload()
if (username.length > 10) {
username = "${username.take(6)}..."
}
val user = BootUser()
.setId("${SharedPreferenceManager.userId}")
.setUsername(username)
val payload = Payload()
.setApplicationId(BuildConfig.BOOTPAY_APP_HECTO_ID) .setApplicationId(BuildConfig.BOOTPAY_APP_HECTO_ID)
.setOrderId("$chargeId") .setOrderId("$chargeId")
.setOrderName(canResponse!!.title) .setOrderName(canResponse!!.title)
.setPrice(canResponse!!.price.toDouble()) .setPrice(canResponse!!.price.toDouble())
.setTaxFree(0.toDouble()) .setTaxFree(0.toDouble())
.setPg("세틀뱅크") .setPg(
if (isKakao) {
"카카오"
} else {
"세틀뱅크"
}
)
.setMethod(viewModel.paymentMethodLiveData.value!!.method) .setMethod(viewModel.paymentMethodLiveData.value!!.method)
.setUser(user)
if (!isKakao) {
var username = SharedPreferenceManager.nickname
if (username.length > 10) {
username = "${username.take(6)}..."
}
val user = BootUser()
.setId("${SharedPreferenceManager.userId}")
.setUsername(username)
payload = payload.setUser(user)
}
Bootpay.init(this, this) Bootpay.init(this, this)
.setPayload(payload) .setPayload(payload)

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -152,10 +152,22 @@
android:textColor="@color/color_eeeeee" android:textColor="@color/color_eeeeee"
android:textSize="13.3sp" /> android:textSize="13.3sp" />
<View <FrameLayout
android:id="@+id/fl_method_kakaopay"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" /> android:layout_marginStart="13.3dp"
android:layout_weight="1"
android:background="@drawable/bg_round_corner_10_232323_777777"
android:paddingVertical="8.3dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@null"
android:src="@drawable/ic_kakaopay" />
</FrameLayout>
</LinearLayout> </LinearLayout>
<TextView <TextView