fix: 接入抖音原生支付并修复App支付服务缺失
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package uts.sdk.modules.tbDouyinPay
|
||||
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import com.ss.android.dypay.api.DyPay
|
||||
import com.ss.android.dypay.api.IDyPayResultCallback
|
||||
import io.dcloud.uts.UTSAndroid
|
||||
import org.json.JSONObject
|
||||
|
||||
object TbDouyinPayNative {
|
||||
private val main = Handler(Looper.getMainLooper())
|
||||
|
||||
fun initialize(appId: String) { DyPay.setAppId(appId) }
|
||||
|
||||
fun available(): Boolean {
|
||||
val activity = UTSAndroid.getUniActivity() ?: return false
|
||||
return DyPay.isDypayAppUsable(activity)
|
||||
}
|
||||
|
||||
fun pay(payload: String, loading: Boolean, done: (String) -> Unit) {
|
||||
main.post {
|
||||
val activity = UTSAndroid.getUniActivity()
|
||||
if (activity == null || activity.isFinishing) {
|
||||
done("""{"resultCode":"2","errorMsg":"当前页面不可用"}""")
|
||||
return@post
|
||||
}
|
||||
try {
|
||||
if (!DyPay.isDypayAppUsable(activity)) {
|
||||
done("""{"resultCode":"100","errorMsg":"请安装或升级抖音客户端"}""")
|
||||
return@post
|
||||
}
|
||||
val json = JSONObject(payload)
|
||||
val data = HashMap<String, String>()
|
||||
for (key in listOf("appid", "partnerid", "prepayid", "package", "noncestr", "timestamp", "sign")) {
|
||||
data[key] = json.getString(key)
|
||||
}
|
||||
DyPay(activity).pay(data, object : IDyPayResultCallback {
|
||||
override fun onResult(result: Map<String, String>) {
|
||||
val response = JSONObject()
|
||||
.put("resultCode", result["resultCode"] ?: "3")
|
||||
.put("errorMsg", result["errorMsg"] ?: "")
|
||||
main.post { done(response.toString()) }
|
||||
}
|
||||
}, loading)
|
||||
} catch (_: Exception) {
|
||||
done("""{"resultCode":"2","errorMsg":"支付 SDK 调用异常,请查询订单"}""")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user