篇首语:本文由小编为大家整理,主要介绍了分享一下,微信的支付接入(流程+实现)相关的知识,希望对你有一定的参考价值。
分享一下,微信的支付接入(流程+实现)
首先,我们肯定是要申请微信支付,并且上传资料后,等待审核通过就可以使用微信支付。
这是对于不同的商家用户类型,所需要的对应资料。
然后具体的申请方式
html
选择接入
进入之后,扫描登录填写。
特别提醒:QQ浏览器无法进入填写
然后提交审核,审核时间5-7个工作日。
在审核通过后
参照这个网址,做好接入准备,完成后可以接入使用
特别注意
创建App中的的签名,请使用带有签名打包的App去获取签名,否则接入后会显示 错误:-1,而却每次修改签名需要12小时的时间
完成准备事项以后,在自己的项目里导入微信支付的sdk
没有SDK的看这里
也可以直接通过引入
dependencies implementation'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
导入之后编译一下就可以开始,接入了
首先是要创建订单,订单的创建是和支付宝的订单创建是一样的。由服务器进行创建,
移动端只需要将服务器所需的参数传过去就可以了。
注意:微信的金额单位是分而不是元
这些字段是App吊起支付的必需字段,所以服务器返回的数据必须包含这些,最好另加一个订单号,用作支付后的回调查询。
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null); msgApi.registerApp(bean.getData().getAppid()); wxPayNo = bean.getData().getOrderNo(); PayReq request = new PayReq(); request.appId = bean.getData().getAppid(); request.partnerId = bean.getData().getPartnerid(); request.prepayId = bean.getData().getPrepayid(); request.packageValue = bean.getData().getPackageX(); request.nonceStr = bean.getData().getNoncestr(); request.timeStamp = bean.getData().getTimestamp(); request.sign = bean.getData().getSign(); msgApi.sendReq(request);
这个就是拉起微信支付的代码
是不是很简单,然后就是微信支付的回调了。
回调嘛,对于微信的这个回调方式,如果满分是100分,那个按照我个人的评分,我给0分。
不多过于吐槽,过会你们自己品。
你需要在你的项目的根目录创建
这个包,里面包含这个文件。
特别的注意
包名和下面的文件名不能有任何修改,不然就会无法回调。
至于里面的
这个可以从刚才的SDK下载的地址中的demo直接拿出来用的。
demo看这里
然后你以为这就结束了?不,这才是第一个坑。
还如要在注册时添加这些。
之后测试的时候需要打正式的包(带签名的),这就是第二个坑,因为测试起来不是很方便。
然后就是第三个坑,你支付完了,然后回调成功了。这时你发现这个,不是刚才的支付的,蒙了吧。上一个又不能,避免支付失败时,需要重新的支付。
这个问题也不是没有办法解决,给你们举个例子。
在拿到支付结果时,使用存入支付结果,在发起支付的中的方法中读取出来。
注意:需要判断一下是否存入的支付结果中,有值。在没有值得情况下不需要去服务器中回调支付结果。
从中取完值之后,记得清空里面的值,避免下次错误操作。
在微信返回成功结果时,需要向服务器回调一次支付结果,具体的支付结果以服务器的为准。
以上是关于分享一下,微信的支付接入(流程+实现)的主要内容,如果未能解决你的问题,请参考以下文章