新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
微信支付需要以下三个参数,具体获取过程参考官方说明。
创新互联是一家专业提供秦州企业网站建设,专注与成都网站制作、网站建设、H5开发、小程序制作等业务。10年已为秦州众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
添加依赖包:
compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+
App 端通过接口将订单参数传给后台,后台调用 微信统一下单 接口,获得预支付订单id(prepayid), 签名后将参数返回给App端。
组装统一下单参数:
向微信后台发送统一下单请求,参数是xml格式的:
微信后台返回的数据也是xml格式,将参数签名后(注意字段名),返回给App端:
从后台拿到返回数据后,发起支付:
处理支付结果:
在包名目录下新建wxapi包,将官方Demo中的WXPayEntryActivity 放进去,并在manifest 中注册:
WXPayEntryActivity 界面也可以自定义,但包名和类名不可更改。重写 onResp(BaseResp resp) 方法,进行结果处理:
最近我其中一个项目需要接入微信支付,实现方式是在WebView里利用Url拉起微信支付页面,但是实际操作的时候却发现始终无法拉起支付页面,最后排查了一段时间,发现原来是因为一个很简单的问题出错了,于是解决问题以后特意想把这个问题记录下来分享,也便于以后自己解决同类问题。
可以看到,这里return 返回的是false,问题出在这里。这时我又在想,为什么会这样?
查阅资料以后我发现shouldOverrideUrlLoading的返回值的意义为:
那么这种情况下,返回值应该改为 false或者super .shouldOverrideUrlLoading(view, url); ,因为微信支付调用 这个开头的url后,会重定向到 weixin://wap/pay 开头的url,然后调用微信客户端支付,如果用true,则WebView不会自动重定向到 weixin://wap/pay 开头的url,需要程序员自行处理,这种情况下自然是无法吊起支付的。
最近工作中,开发的App版本需要加入微信支付、支付宝支付、QQ钱包支付功能。一般情况下,我们支付功能都是封装好的支付模块,支付方面一般不会有重大的更新。但是我却遇到了:
结合我之前的开发经验,个人觉得可能有以下几种情况:
最后问题的发现,是由于原因5导致的。主要出问题的微信手机客户端版本是8.0,我猜测是之前没有校验,因为我们之前使用微信7.0手机客户端支付成功并没有返回 -1 的情况。
这是日常Android开发中遇到的一个小小的bug,希望对同样是Android开发的小伙伴有帮助。
若使用的是vivo手机,微信指纹支付的操作方法:
1、打开“微信”点击“我”,找到“支付”并点击;
2、在“支付”界面点击右上角“...”,将“指纹支付”选项开启;
3、在“验证支付密码”界面输入微信支付密码,并验证之前录入手机中的指纹;
注:首次使用此功能,微信需绑定银行卡。
微信绑定银行卡步骤如下:打开微信--点击“我”--“支付”--找到“钱包”并点击,在“钱包”界面点击“银行卡”, 在“银行卡”界面点击“添加银行卡”。