|
@@ -73,12 +73,26 @@ object SystemApi {
|
|
|
suspend fun paymentParam() = suspendCoroutine<DFSResult<ResultPaymentParam>> {
|
|
|
serviceTrx.paymentParam().enqueue(object : Callback<ResultObj<List<ResultPaymentParam>>> {
|
|
|
override fun onResponse(call: Call<ResultObj<List<ResultPaymentParam>>>, response: Response<ResultObj<List<ResultPaymentParam>>>) {
|
|
|
+ // {"StatusCode":200,"Message":"OK","Data":[{"PaymentId":2,"DispalyName":"支付宝支付"},{"PaymentId":3,"DispalyName":"微信支付"}]}
|
|
|
+ // {"StatusCode":200,"Message":"OK","Data":[{"PaymentId":13,"DispalyName":"通联"}]}
|
|
|
val code = response.code()
|
|
|
val body = response.body()
|
|
|
- when {
|
|
|
- code != 200 -> it.resume(DFSResult.fail(R.string.fail_get_pay_param))
|
|
|
- body != null && body.StatusCode == 200 && body.Data.isNotEmpty() -> it.resume(DFSResult.success(body.Data[0]))
|
|
|
- else -> it.resume(DFSResult.success(ResultPaymentParam(0, "移动支付")))
|
|
|
+ if (code != 200 || body?.Data.isNullOrEmpty()) {
|
|
|
+ it.resume(DFSResult.fail(R.string.fail_get_pay_param))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 目前就三种支付渠道:通联、微信、支付宝
|
|
|
+ // 由于实际使用只有两种方案:通联 OR 微信+支付宝,不存在单独使用的情况
|
|
|
+ // 对于微信+支付宝,pay 方法会根据付款码来判断区分究竟是微信还是支付宝,因此本地化一个支付类型
|
|
|
+ body!!.Data.let { channels ->
|
|
|
+ val combine = channels.find { type -> type.PaymentId == 13 }
|
|
|
+ if (combine != null) {
|
|
|
+ it.resume(DFSResult.success(combine))
|
|
|
+ return
|
|
|
+ } else {
|
|
|
+ it.resume(DFSResult.success(ResultPaymentParam(0, "移动支付")))
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|