Browse Source

1.杉德支付走webview

shihuiyun 2 years ago
parent
commit
b3bf67c157

+ 0 - 1
app/build.gradle

@@ -168,7 +168,6 @@ dependencies {
     implementation 'com.alibaba:fastjson:1.2.62'
     implementation 'com.aliyun.dpa:oss-android-sdk:+'
     //杉德快捷支付
-    implementation(name: 'paytypelibrary3.5.2', ext: 'aar')
 
 
 

BIN
app/libs/paytypelibrary3.5.2.aar


+ 3 - 161
app/src/main/java/com/hdl/xl/activity/LotsDetailsActivity.kt

@@ -32,9 +32,6 @@ import com.hdl.xl.vmodel.LotsDetailsVModel
 import com.hdl.xl.vmodel.TibetanDetailsVModel
 import com.hwangjr.rxbus.annotation.Subscribe
 import com.hwangjr.rxbus.annotation.Tag
-import com.pay.paytypelibrary.base.OnPayResultListener
-import com.pay.paytypelibrary.base.OrderInfo
-import com.pay.paytypelibrary.base.PayUtil
 import com.qmuiteam.qmui.kotlin.onClick
 import com.ysnows.base.utils.B
 import com.ysnows.base.utils.UiSwitch
@@ -100,21 +97,9 @@ class LotsDetailsActivity : MBActivity<LotsDetailsVModel, ActivityLotsDetailsBin
 
         vm.bean.observe(this) {
 
-            var amount = it.pay.body.totalAmount.toFloat() * 0.01
-            var name = User.get()?.true_name
-            var certNo = User.get()?.id_card
-            //创建用户支付订单信息
-            //amount:订单金额
-            //orderNumber:商户订单号
-            //createTime: 订单创建时间
-            //goodsName:商品名称
-            //name:真实姓名
-            //certNo:身份证号 //6888803045944  16938552
-            cashierPay("MD5", "16938552", "06030001", amount.toString(),
-                    it.pay.body.orderCode, it.pay.head.respTime, "象链数购买藏品", name!!, certNo!!)
-
-
-
+            UiSwitch.bundle(context(), WebViewActivity::class.java,
+                    B().putString("url", it.pay_url)
+                            .ok())
 
         }
 
@@ -363,148 +348,5 @@ class LotsDetailsActivity : MBActivity<LotsDetailsVModel, ActivityLotsDetailsBin
     }
 
 
-    //"MD5","16938552", "06030001"
-    //amount:订单金额
-    //orderNumber:商户订单号
-    //createTime: 订单创建时间
-    //goodsName:商品名称
-    //name:真实姓名
-    //certNo:身份证号
-    private fun cashierPay(
-            signType: String, merNo: String, productCode: String, amount: String,
-            orderNumber: String, createTime: String, goodsName: String, name: String,
-            certNo: String,
-    ) {
-
-
-        val orderJson = JSONObject()
-        try {
-            orderJson.put("version", BuildConfig.VERSION_NAME)
-            orderJson.put("sign_type", signType)
-            orderJson.put("mer_no", merNo) // 商户编号
-            orderJson.put("mer_key", "Xx52CDtWRH1etGu4IfFEB4OeRrnbr+EUd5VO7cBQFCqxfDl5FJcJaUjKJbHapVsyxSODBEbssNk=") // 商户密钥
-            orderJson.put("mer_order_no", orderNumber) // 商户订单号
-            orderJson.put("create_time", createTime) // 订单创建时间
-            orderJson.put("expire_time", AppUtils.getOrderExpireTime()) // 订单失效时间
-            orderJson.put("order_amt", amount) // 订单金额
-            orderJson.put("notify_url", "http://sandcash/notify") // 回调地址
-            orderJson.put("return_url", "https://www.taobao.com") // 支付完成后跳转到商户页面  一键快捷不能传空
-            orderJson.put("create_ip", "172_12_12_12") // 客户端的真实IP
-            orderJson.put("goods_name", goodsName) // 商品名称
-            orderJson.put("store_id", "100001") // 门店号
-            orderJson.put("product_code", productCode) // 支付产品编码
-            orderJson.put("clear_cycle", "0") // 清算模式
-            val payExtraJson = JSONObject()
-//            if (!TextUtils.isEmpty(cardNo)) {
-//                payExtraJson.put("cardNo", cardNo) //付款卡号
-//            }
-            orderJson.put("pay_extra", payExtraJson.toString())
-
-            orderJson.put("accsplit_flag", "NO") // 分账标识 NO无分账,YES有分账
-            orderJson.put("jump_scheme", "tibetan://spay") //参数值可以自定义,和android:scheme、android:host保持一致
-            orderJson.put("activity_no", "") //营销活动编码
-            orderJson.put("benefit_amount", "") //优惠金额
-            orderJson.put("extend", "123") //扩展字段,非必传
-            orderJson.put("limit_pay", "5") //微信传1屏蔽信用卡,支付宝传5屏蔽部分信用卡以及花呗,支付宝传4屏蔽花呗,支付宝传1屏蔽部分信用卡,银联不支持屏蔽   不参与签名
-            //            orderJson.put("channel_mid", ""); //非必传
-            val extendParamJson = JSONObject()
-            val payerVerificationInfoJson = JSONObject()
-            payerVerificationInfoJson.put("needCheckFlag", "0")
-            payerVerificationInfoJson.put("name", name) //姓名
-            payerVerificationInfoJson.put("certNo", certNo) //证件号
-            payerVerificationInfoJson.put("certType", "01")
-            extendParamJson.put("payerVerificationInfo", payerVerificationInfoJson.toString())
-            orderJson.put("extend_params", extendParamJson.toString()) //支付宝实名信息字段,非必传,不参与签名
-            val signKey: String
-            signKey = if ("6888800012098" == merNo) {
-                "PZdBctMl2c0ma9b9+25FBgH2twQBTmhzn/qNSS6xANEGMqBi/S9IhyhDi1aBb1H9gxmcvjxmMk305pcUaISEmjm6gacvTBPHj0zSgRk//7ZYF0Go/X03BZt5mTdcmslgH81l03NMtaRixuz+UKFTiw=="
-            } else {
-                "UZfTHiut04dIJSOqwT2KVn6Bf4OBGBrUvjaUibKc5UFinTz/EY8j/5P1nOAZxsgRJKC6qKPhB7NJAPxc7RyrM8BDgM+UhiKrzR/MvvQhFMgTDfQFoDZYEYW2z+pi4zany5c0bz6FNidixuz+UKFTiw=="
-            }
-
-            //计算签名
-            val signMap: MutableMap<String, String> = HashMap()
-            signMap["version"] = orderJson.getString("version")
-            signMap["mer_no"] = orderJson.getString("mer_no")
-            if ("MD5" == signType) {
-                signMap["mer_key"] = orderJson.getString("mer_key")
-            }
-            signMap["mer_order_no"] = orderJson.getString("mer_order_no")
-            signMap["create_time"] = orderJson.getString("create_time")
-            signMap["order_amt"] = orderJson.getString("order_amt")
-            signMap["notify_url"] = orderJson.getString("notify_url")
-            signMap["return_url"] = orderJson.getString("return_url")
-            signMap["create_ip"] = orderJson.getString("create_ip")
-            signMap["store_id"] = orderJson.getString("store_id")
-            signMap["pay_extra"] = orderJson.getString("pay_extra")
-            signMap["accsplit_flag"] = orderJson.getString("accsplit_flag")
-            signMap["sign_type"] = orderJson.getString("sign_type")
-            signMap["mer_order_no"] = orderJson.getString("mer_order_no")
-            signMap["create_time"] = orderJson.getString("create_time")
-            signMap["order_amt"] = orderJson.getString("order_amt")
-            signMap["notify_url"] = orderJson.getString("notify_url")
-            signMap["return_url"] = orderJson.getString("return_url")
-            signMap["create_ip"] = orderJson.getString("create_ip")
-            signMap["store_id"] = orderJson.getString("store_id")
-            signMap["pay_extra"] = orderJson.getString("pay_extra")
-            signMap["accsplit_flag"] = orderJson.getString("accsplit_flag")
-            signMap["sign_type"] = orderJson.getString("sign_type")
-            if (!TextUtils.isEmpty(orderJson.optString("activity_no"))) {
-                signMap["activity_no"] = orderJson.getString("activity_no")
-            }
-            if (!TextUtils.isEmpty(orderJson.optString("benefit_amount"))) {
-                signMap["benefit_amount"] = orderJson.getString("benefit_amount")
-            }
-            if (!TextUtils.isEmpty(orderJson.optString("extend"))) {
-                signMap["extend"] = orderJson.getString("extend")
-            }
-            if (!TextUtils.isEmpty(orderJson.optString("channel_mid"))) {
-                signMap["channel_mid"] = orderJson.getString("channel_mid")
-            }
-            val list = MD5Utils.sortMap(signMap)
-            val signBuilder = StringBuilder()
-            for ((key, value) in list) {
-                signBuilder.append(key)
-                signBuilder.append("=")
-                signBuilder.append(value)
-                signBuilder.append("&")
-            }
-
-            signBuilder.append("key")
-            signBuilder.append("=")
-            signBuilder.append(signKey)
-            orderJson.put("sign", MD5Utils.getMD5(signBuilder.toString()).toUpperCase()) // MD5签名结果
-
-        } catch (e: Exception) {
-            e.stackTrace
-        }
-
-//        • PayUtil.CashierPaySingle
-//        传入单个支付产品,直接拉起支付,无过渡页,调用方需要自己添加进度加载框;
-//        在Listener的onSuccess拉起支付(支付宝除外)。
-//
-//        • PayUtil.CashierPayMulti
-//        传入多个支付产品,也可传入单个,跳转sdk自带的收银台页面;
-//        在onActivityResult拉起支付(支付宝除外)。
-//
-//        调用方有自己的收银台页面时建议使用Single,否则使用Multi。
-//        两个API二选一即可。 (demo是为了演示用法,所以两种都写了)
-
-
-        PayUtil.CashierPaySingle(this@LotsDetailsActivity, orderJson.toString(), object : OnPayResultListener {
-            override fun onSuccess(orderInfo: OrderInfo) {
-                //支付宝、H5快捷、一键快捷、快捷充值、云账户,支付完成不走这里!
-                Toast.makeText(this@LotsDetailsActivity, "支付成功", Toast.LENGTH_LONG).show()
-
-            }
-
-            override fun onError(retMsg: String) {
-                Toast.makeText(this@LotsDetailsActivity, retMsg, Toast.LENGTH_LONG).show()
-
-            }
-        })
-
-    }
-
 
 }

+ 0 - 155
app/src/main/java/com/hdl/xl/activity/TibetanDetailsActivity.kt

@@ -27,9 +27,6 @@ import com.hdl.xl.utils.net.NetEngine
 import com.hdl.xl.vmodel.TibetanDetailsVModel
 import com.hwangjr.rxbus.annotation.Subscribe
 import com.hwangjr.rxbus.annotation.Tag
-import com.pay.paytypelibrary.base.OnPayResultListener
-import com.pay.paytypelibrary.base.OrderInfo
-import com.pay.paytypelibrary.base.PayUtil
 import com.qmuiteam.qmui.kotlin.onClick
 import com.ysnows.base.utils.B
 import com.ysnows.base.utils.UiSwitch
@@ -342,11 +339,7 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
     }
 
 
-    fun toPay(parse_url: String) {
 
-        PayUtil.CashierPayMulti(this, parse_url)
-
-    }
 
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
         super.onActivityResult(requestCode, resultCode, data)
@@ -356,152 +349,4 @@ class TibetanDetailsActivity : MBActivity<TibetanDetailsVModel, ActivityTibetanD
     }
 
 
-    //"MD5","16938552", "06030001"
-    //6888803045944   00000008
-    //amount:订单金额
-    //orderNumber:商户订单号
-    //createTime: 订单创建时间
-    //goodsName:商品名称
-    //name:真实姓名
-    //certNo:身份证号
-    private fun cashierPay(bean: PayOrder.PayQuery) {
-
-
-        val orderJson = JSONObject()
-        try {
-            orderJson.put("version", BuildConfig.VERSION_NAME)
-            orderJson.put("sign_type", bean.sign_type)
-            orderJson.put("mer_no", bean.mer_no) // 商户编号
-            orderJson.put("mer_key", bean.mer_key) // 商户密钥
-            orderJson.put("mer_order_no", bean.mer_order_no) // 商户订单号
-            orderJson.put("create_time", bean.create_time) // 订单创建时间
-            orderJson.put("expire_time", bean.expire_time) // 订单失效时间
-            orderJson.put("order_amt", bean.order_amt) // 订单金额
-            orderJson.put("notify_url", bean.notify_url) // 回调地址
-            orderJson.put("return_url", bean.return_url) // 支付完成后跳转到商户页面  一键快捷不能传空
-            //-
-            orderJson.put("create_ip", bean.create_ip) // 客户端的真实IP
-            //-
-            orderJson.put("goods_name", bean.goods_name) // 商品名称
-            //-
-            orderJson.put("store_id", bean.store_id) // 门店号
-            //-
-            orderJson.put("product_code", bean.product_code) // 支付产品编码
-            //-
-            orderJson.put("clear_cycle", bean.clear_cycle) // 清算模式
-            //-
-            val payExtraJson = JSONObject()
-//            if (!TextUtils.isEmpty(cardNo)) {
-//                payExtraJson.put("cardNo", cardNo) //付款卡号
-//            }
-            orderJson.put("pay_extra", payExtraJson.toString())
-            //-
-
-            orderJson.put("accsplit_flag", bean.accsplit_flag) // 分账标识 NO无分账,YES有分账
-            //-
-            orderJson.put("jump_scheme", "sandcash://scpay") //参数值可以自定义,和android:scheme、android:host保持一致
-            //-
-            orderJson.put("activity_no", "") //营销活动编码
-            orderJson.put("benefit_amount", "") //优惠金额
-            orderJson.put("extend", "123") //扩展字段,非必传
-            orderJson.put("limit_pay", "5") //微信传1屏蔽信用卡,支付宝传5屏蔽部分信用卡以及花呗,支付宝传4屏蔽花呗,支付宝传1屏蔽部分信用卡,银联不支持屏蔽   不参与签名
-            //            orderJson.put("channel_mid", ""); //非必传
-            val extendParamJson = JSONObject()
-            val payerVerificationInfoJson = JSONObject()
-            payerVerificationInfoJson.put("needCheckFlag", "0")
-            payerVerificationInfoJson.put("name", User.get()?.name) //姓名
-            //-
-            payerVerificationInfoJson.put("certNo", User.get()?.id_card) //证件号
-            //-
-            payerVerificationInfoJson.put("certType", "01")
-            extendParamJson.put("payerVerificationInfo", payerVerificationInfoJson.toString())
-            orderJson.put("extend_params", extendParamJson.toString()) //支付宝实名信息字段,非必传,不参与签名
-            val signKey: String
-            signKey = bean.mer_key
-            orderJson.put("sign", bean.sign)
-
-            //计算签名
-            val signMap: MutableMap<String, String> = HashMap()
-            signMap["version"] = orderJson.getString("version")
-            signMap["mer_no"] = orderJson.getString("mer_no")
-            if ("MD5" == bean.sign_type) {
-                signMap["mer_key"] = orderJson.getString("mer_key")
-            }
-            signMap["mer_order_no"] = orderJson.getString("mer_order_no")
-            signMap["create_time"] = orderJson.getString("create_time")
-            signMap["order_amt"] = orderJson.getString("order_amt")
-            signMap["notify_url"] = orderJson.getString("notify_url")
-            signMap["return_url"] = orderJson.getString("return_url")
-            signMap["create_ip"] = orderJson.getString("create_ip")
-            signMap["store_id"] = orderJson.getString("store_id")
-            signMap["pay_extra"] = orderJson.getString("pay_extra")
-            signMap["accsplit_flag"] = orderJson.getString("accsplit_flag")
-            signMap["sign_type"] = orderJson.getString("sign_type")
-            signMap["mer_order_no"] = orderJson.getString("mer_order_no")
-            signMap["create_time"] = orderJson.getString("create_time")
-            signMap["order_amt"] = orderJson.getString("order_amt")
-            signMap["notify_url"] = orderJson.getString("notify_url")
-            signMap["return_url"] = orderJson.getString("return_url")
-            signMap["create_ip"] = orderJson.getString("create_ip")
-            signMap["store_id"] = orderJson.getString("store_id")
-            signMap["pay_extra"] = orderJson.getString("pay_extra")
-            signMap["accsplit_flag"] = orderJson.getString("accsplit_flag")
-            signMap["sign_type"] = orderJson.getString("sign_type")
-            if (!TextUtils.isEmpty(orderJson.optString("activity_no"))) {
-                signMap["activity_no"] = orderJson.getString("activity_no")
-            }
-            if (!TextUtils.isEmpty(orderJson.optString("benefit_amount"))) {
-                signMap["benefit_amount"] = orderJson.getString("benefit_amount")
-            }
-            if (!TextUtils.isEmpty(orderJson.optString("extend"))) {
-                signMap["extend"] = orderJson.getString("extend")
-            }
-            if (!TextUtils.isEmpty(orderJson.optString("channel_mid"))) {
-                signMap["channel_mid"] = orderJson.getString("channel_mid")
-            }
-            val list = MD5Utils.sortMap(signMap)
-            val signBuilder = StringBuilder()
-            for ((key, value) in list) {
-                signBuilder.append(key)
-                signBuilder.append("=")
-                signBuilder.append(value)
-                signBuilder.append("&")
-            }
-
-            signBuilder.append("key")
-            signBuilder.append("=")
-            signBuilder.append(signKey)
-            orderJson.put("sign", MD5Utils.getMD5(signBuilder.toString()).toUpperCase()) // MD5签名结果
-
-        } catch (e: Exception) {
-            e.stackTrace
-        }
-
-//        • PayUtil.CashierPaySingle
-//        传入单个支付产品,直接拉起支付,无过渡页,调用方需要自己添加进度加载框;
-//        在Listener的onSuccess拉起支付(支付宝除外)。
-//
-//        • PayUtil.CashierPayMulti
-//        传入多个支付产品,也可传入单个,跳转sdk自带的收银台页面;
-//        在onActivityResult拉起支付(支付宝除外)。
-//
-//        调用方有自己的收银台页面时建议使用Single,否则使用Multi。
-//        两个API二选一即可。 (demo是为了演示用法,所以两种都写了)
-
-
-        PayUtil.CashierPaySingle(this@TibetanDetailsActivity, orderJson.toString(), object : OnPayResultListener {
-            override fun onSuccess(orderInfo: OrderInfo) {
-                Toast.makeText(this@TibetanDetailsActivity, "支付成功", Toast.LENGTH_LONG).show()
-
-            }
-
-            override fun onError(retMsg: String) {
-                Toast.makeText(this@TibetanDetailsActivity, retMsg, Toast.LENGTH_LONG).show()
-
-            }
-        })
-
-    }
-
-
 }