Skip to content

Commit

Permalink
fix : ignore judge 로직 수정
Browse files Browse the repository at this point in the history
feat : example 앱 생명주기에 따라 동작 수정
fix : example mobileweb.html 결과 로그 수정
  • Loading branch information
kjh5833 committed Jul 8, 2021
1 parent ca89d74 commit 7f72919
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,24 +27,30 @@ import java.util.*
class MobileWebViewModeFragment : Fragment() {

private var binding: WebViewModeFragmentBinding? = null
private var createdView = false

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
Iamport.init(this)
binding = WebViewModeFragmentBinding.inflate(inflater, container, false)
createdView = true
return binding?.root
}

override fun onStart() {
super.onStart()
if(!createdView) {
return
}

// 모바일 웹 단독 모드
binding?.webview?.let {
it.loadUrl(CONST.PAYMENT_MOBILE_WEB_FILE_URL)
// it.loadUrl("https://www.iamport.kr/demo") // 아임포트 데모 페이지
Iamport.pluginMobileWebSupporter(it) // 로컬 데모 페이지
createdView = false
}

binding?.normalmodeButton?.setOnClickListener {
Expand Down
28 changes: 16 additions & 12 deletions app/src/main/java/com/iamport/sampleapp/ui/WebViewModeFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ import java.util.*
class WebViewModeFragment : Fragment() {

private var binding: WebViewModeFragmentBinding? = null
val viewModel: ViewModel by activityViewModels()
private val viewModel: ViewModel by activityViewModels()
private var request: IamPortRequest? = null

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
Expand All @@ -40,29 +41,32 @@ class WebViewModeFragment : Fragment() {
Iamport.init(this)
binding = WebViewModeFragmentBinding.inflate(inflater, container, false)
// binding?.webview?.loadUrl("https://github.com/iamport/iamport-android")
request = viewModel.createIamPortRequest()
return binding?.root
}

override fun onStart() {
super.onStart()

// 웹뷰 모드 enable
Log.d("WebViewMode", "결제 요청!")

val userCode = viewModel.userCode
val request = viewModel.createIamPortRequest()
request?.let { request ->

binding?.webview?.let {
Log.d("WebViewMode", "결제 요청!")
binding?.webview?.let {

this.activity?.onBackPressedDispatcher?.addCallback(this, backPressCallback)
this.activity?.onBackPressedDispatcher?.addCallback(this, backPressCallback)

Log.d("WebViewMode", "iamport sdk webview mode? ${Iamport.isWebViewMode()}")
// 아임포트에 결제 요청하기
Iamport.payment(userCode, webviewMode = it, iamPortRequest = request, paymentResultCallback = { it ->
// 결제 완료 후 결과 콜백을 토스트 메시지로 보여줌
Log.d("WebViewMode", "iamport sdk webview mode? ${Iamport.isWebViewMode()}")
// 아임포트에 결제 요청하기
Iamport.payment(userCode, webviewMode = it, iamPortRequest = request, paymentResultCallback = { it ->
// 결제 완료 후 결과 콜백을 토스트 메시지로 보여줌
// Toast.makeText(this.context, "결제결과 => $it", Toast.LENGTH_LONG).show()
callBackListener.result(it)
})
callBackListener.result(it)
})

this.request = null // reload 방지
}
}

binding?.normalmodeButton?.setOnClickListener {
Expand Down
4 changes: 2 additions & 2 deletions sdk/src/main/assets/mobileweb.html
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ <h1 id="header-value"></h1>

IMP.request_pay(data, function(response) {
console.log(response);
alert(`${response}`)
alert(JSON.stringify(response))
});
}

Expand All @@ -101,7 +101,7 @@ <h1 id="header-value"></h1>

IMP.certification(data, function(response) {
console.log(response);
alert(`${response}`)
alert(JSON.stringify(response))
});
}

Expand Down
1 change: 1 addition & 0 deletions sdk/src/main/java/com/iamport/sdk/domain/core/Iamport.kt
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ object Iamport {

// webview 사용 모드
fun enableWebViewMode(webview: WebView) {
d("enableWebViewMode $webview")
iamportSdk?.enableWebViewMode(webview)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ class JudgeStrategy : BaseStrategy(), IamportKoinComponent {
return when (user.pg_provider?.let { PG.convertPG(it) }) {
PG.chai -> {
if (ignoreNative) { // ignoreNative 인 경우 webview strategy 가 동작하기 위하여
Triple(JudgeKinds.WEB, user, payment)
return Triple(JudgeKinds.WEB, user, payment)
}
Triple(JudgeKinds.CHAI, user, payment)
}
Expand Down

0 comments on commit 7f72919

Please sign in to comment.