La página de Android H5 ajusta el pago de WeChat y Alipay

1. Precondición: El backend ha generado un enlace de pago

  1. WeChat admite H5 para iniciar el pago en navegadores principales que no son de WeChat, pero el proceso es engorroso y requiere una aplicación de cuenta empresarial, y el ciclo es largo. Instrucciones oficiales de apertura de WeChat

    Entrada de la aplicación: inicie sesión en la plataforma comercial -> centro de productos -> mi producto -> producto de pago -> pago H5

  2. Instrucciones de acceso al pago del sitio web de Alipay H5 , documentos de Alipay

2. Interactuar entre H5 y la aplicación y pasar la orden generada a la aplicación

Proceso general: utilice WebView para cargar la página H5 en la aplicación. Después de que la página H5 solicite la interfaz correctamente, el enlace de pago se enviará a la aplicación y la aplicación llamará a la interfaz de pago de Alipay o WeChat para completar la operación de pago final.

  1. Use el Esquema para evocar la interfaz de pago de Alipay, y
    el Esquema de pago: “alipays://platformapi/startapp?appId=20000067”
    debe ser el ** del pagoEl contenido de la URL está codificado en URLEncoder.encode**: De lo contrario, falla al invocar la interfaz de pago.

     //跳转支付宝支付
     val url = "alipays://platformapi/startapp?appId=20000067&url=${
            
            URLEncoder.encode(it.data)}"
     val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
     startActivity(intent)
    
  2. Dado que WeChat no ha habilitado la función de pago H5, pero no desea acceder al SDK de pago de WeChat en la aplicación, existe la siguiente solución final.

    1. Genere una imagen de código QR desde el enlace de pago y muéstrela en la interfaz;

    2. Después de que el usuario presiona el código QR durante mucho tiempo, la imagen generada se guarda en el álbum del teléfono móvil;

    3. Después de guardar la imagen, abra la interfaz de escaneo de WeChat

    4. Ahora los usuarios solo necesitan escanear el código QR en el álbum de fotos en WeChat para realizar el pago

    El código clave es el siguiente, los comentarios ya están muy detallados.

     //二维码中logo
    val logo = BitmapFactory.decodeResource(resources,R.mipmap.ic_wechat_pay_round)
    //生成二维码位图
    val qrCode =  CodeUtils.createQRCode(payUrl,300,logo, Color.BLACK)
    //显示微信支付二维码
    mIvQRCode.setImageBitmap(qrCode)
    
    //长按保存二维码
    mIvQRCode.setOnLongClickListener {
          
          
        val bitmap = ImageUtils.view2Bitmap(mIvQRCode)
      	//保存到相册
        val file = ImageUtils.save2Album(bitmap, Bitmap.CompressFormat.PNG)
        file?.let {
          
          
            ToastUtils.showLong("微信付款码已保存到手机相册")
            openWeChatScan()
        }
        return@setOnLongClickListener false
    }
    
      /**
       * 打开微信扫一扫
       */
      @SuppressLint("WrongConstant")
      private fun openWeChatScan() {
          
          
          val intent = Intent()
          intent.component =
              ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI")
          intent.putExtra("LauncherUI.From.Scaner.Shortcut", true)
          intent.flags = 335544320
          intent.action = "android.intent.action.VIEW"
          startActivity(intent)
      }
    

Finalmente, adjunte el protocolo Scheme de Alipay para ir a la página especificada

"alipayqr://platformapi/startapp?saId=10000003"//手机充值
"alipayqr://platformapi/startapp?saId=10000007"//扫一扫
"alipayqr://platformapi/startapp?saId=10000009"//爱心捐赠
"alipayqr://platformapi/startapp?saId=100000011"//彩票首页
"alipayqr://platformapi/startapp?saId=100000033"//话费卡转让
"alipayqr://platformapi/startapp?saId=10000110"//关于
"alipayqr://platformapi/startapp?saId=10000112"//服务授权
"alipayqr://platformapi/startapp?saId=20000116"//转账
"alipayqr://platformapi/startapp?saId=20000056"//付款码-----210
"alipays://platformapi/startapp?appId=20000003";//账单
"alipays://platformapi/startapp?appId=20000076";//账单
"alipays://platformapi/startapp?appId=20000006"//切换账户
"alipays://platformapi/startapp?appId=20000008"//支付宝登出
"alipays://platformapi/startapp?appId=20000009"//手机号注册
"alipays://platformapi/startapp?appId=20000010"//绑定手机
"alipays://platformapi/startapp?appId=20000011"//客服帮助
"alipays://platformapi/startapp?appId=20000013"//修改支付密码
"alipays://platformapi/startapp?appId=20000014"//我的银行卡
"alipays://platformapi/startapp?appId=20000015"//找回登录密码
"alipays://platformapi/startapp?appId=20000017"//修改登录密码
"alipays://platformapi/startapp?appId=20000019"//余额
"alipays://platformapi/startapp?appId=20000020"//卡包
"alipays://platformapi/startapp?appId=20000024"//支付宝设置
"alipays://platformapi/startapp?appId=20000027"//账号切换
"alipays://platformapi/startapp?appId=20000031"//设置个人头像
"alipays://platformapi/startapp?appId=20000032"//余额宝
"alipays://platformapi/startapp?appId=20000033"//提现
"alipays://platformapi/startapp?appId=20000038"//身份验证
"alipays://platformapi/startapp?appId=20000048"//添加生活好
"alipays://platformapi/startapp?appId=20000049"//意见反馈
"alipays://platformapi/startapp?appId=20000050"//打开地图
"alipays://platformapi/startapp?appId=20000057"//账号管理
"alipays://platformapi/startapp?appId=20000068"//快速挂失
"alipays://platformapi/startapp?appId=20000068"//安全中心
"alipays://platformapi/startapp?appId=20000071"//城市一卡通
"alipays://platformapi/startapp?appId=20000078"//上银汇款
"alipays://platformapi/startapp?appId=20000081"//更多
"alipays://platformapi/startapp?appId=20000122"//首页活动
"alipays://platformapi/startapp?appId=20000123"//收钱
"alipayqr://platformapi/startapp?appId=68687017"//年度账单
"alipayqr://platformapi/startapp?appId=20000101"//生活号
"alipayqr://platformapi/startapp?appId=20000102"//打开nfc
"alipayqr://platformapi/startapp?appId=20000107"//出境
"alipayqr://platformapi/startapp?appId=20000108"//挂号就诊
"alipayqr://platformapi/startapp?appId=20000110"//我的保障
"alipayqr://platformapi/startapp?appId=20000115"//设备管理
"alipayqr://platformapi/startapp?appId=20000119"//阿里游戏
"alipayqr://platformapi/startapp?appId=20000118"//芝麻信用
"alipayqr://platformapi/startapp?appId=20000120"//饿了么
"alipayqr://platformapi/startapp?appId=20000123"//收钱
"alipayqr://platformapi/startapp?appId=20000125"//首页
"alipayqr://platformapi/startapp?appId=20000126"//免费wifi
"alipayqr://platformapi/startapp?appId=20000130"//滴滴
"alipayqr://platformapi/startapp?appId=20000132"//亲情号
"alipayqr://platformapi/startapp?appId=20000134"//股票自选
"alipayqr://platformapi/startapp?appId=20000135"//火车票
"alipayqr://platformapi/startapp?appId=20000136"//游戏充值
"alipayqr://platformapi/startapp?appId=20000139"//酒店搜索
"alipayqr://platformapi/startapp?appId=20000141"//修改昵称
"alipayqr://platformapi/startapp?appId=20000142"//娱乐宝
"alipayqr://platformapi/startapp?appId=20000143"//火车票汽车票预定
"alipayqr://platformapi/startapp?appId=20000146"//我的淘宝
"alipayqr://platformapi/startapp?appId=20000150"//汇率换算
"alipayqr://platformapi/startapp?appId=20000153"//游戏中心
"alipayqr://platformapi/startapp?appId=20000155"//飞猪
"alipayqr://platformapi/startapp?appId=20000157"//国际机票查询
"alipayqr://platformapi/startapp?appId=20000160"//蚂蚁会员
"alipayqr://platformapi/startapp?appId=20000161"//理财小工具
"alipayqr://platformapi/startapp?appId=20000162"//羊城通
"alipayqr://platformapi/startapp?appId=20000165"//定期理财
"alipayqr://platformapi/startapp?appId=20000161"//指纹手势解锁
"alipayqr://platformapi/startapp?appId=20000168"//年度账单
"alipayqr://platformapi/startapp?appId=20000176"//红包
"alipayqr://platformapi/startapp?appId=20000183"//设置手势密码
"alipayqr://platformapi/startapp?appId=20000161"//指纹手势解锁设定界面
"alipayqr://platformapi/startapp?appId=20000186"//通讯录
"alipayqr://platformapi/startapp?appId=20000161"//绑定智能手环
"alipayqr://platformapi/startapp?appId=20000197"//首页-热门游戏
"alipayqr://platformapi/startapp?appId=20000199"//花呗
"alipayqr://platformapi/startapp?appId=20000205"//亲情圈
"alipayqr://platformapi/startapp?appId=20000218"//黄金
"alipayqr://platformapi/startapp?appId=20000225"//借条
"alipayqr://platformapi/startapp?appId=20000227"//卡包
"alipayqr://platformapi/startapp?appId=20000234"//刷脸
"alipayqr://platformapi/startapp?appId=20000235"//服务提醒
"alipayqr://platformapi/startapp?appId=20000241"//车险服务
"alipayqr://platformapi/startapp?appId=20000243"//总资产
"alipayqr://platformapi/startapp?appId=20000248"//个性签名
"alipayqr://platformapi/startapp?appId=20000252"//朋友模块
"alipayqr://platformapi/startapp?appId=20000255"//账户充值
"alipayqr://platformapi/startapp?appId=20000266"//邮箱账单
"alipayqr://platformapi/startapp?appId=20000288"//聊天室
"alipayqr://platformapi/startapp?appId=20000290"//可能认识的人
"alipayqr://platformapi/startapp?appId=20000298"//证书管理
"alipayqr://platformapi/startapp?appId=20000301"//多设备管理
"alipayqr://platformapi/startapp?appId=20000305"//支付宝内付款码声波付

Supongo que te gusta

Origin blog.csdn.net/jiabaokang/article/details/126162891
Recomendado
Clasificación