分享一下,微信的支付接入(流程+实现)

分享一下,微信的支付接入(流程+实现)

首先,我们肯定是要申请微信支付,并且上传资料后,等待审核通过就可以使用微信支付。
在这里插入图片描述
这是对于不同的商家用户类型,所需要的对应资料。

然后具体的申请方式
https://pay.weixin.qq.com/static/applyment_guide/applyment_detail_app.shtml
选择接入
在这里插入图片描述
进入之后,扫描登录填写。

特别提醒:QQ浏览器无法进入填写
然后提交审核,审核时间5-7个工作日。

在审核通过后
https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_1.shtml
参照这个网址,做好接入准备,完成后可以接入使用

特别注意
创建App中的的签名,请使用带有签名打包的App去获取签名,否则接入后会显示 错误:-1,而却每次修改签名需要12小时的时间

完成准备事项以后,在自己的项目里导入微信支付的sdk
没有SDK的看这里

也可以直接通过gradle引入
在这里插入图片描述

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看这里
然后你以为这就结束了?不,这才是第一个坑。
在这里插入图片描述
还如要在manifest注册时添加这些。
之后测试的时候需要打正式的包(带签名的),这就是第二个坑,因为测试起来不是很方便。
然后就是第三个坑,你支付完了,然后回调成功了。这时你发现这个activity,不是刚才的支付的activity,蒙了吧。上一个activity又不能finish,避免支付失败时,需要重新的支付。

这个问题也不是没有办法解决,给你们举个例子。
在这里插入图片描述
在拿到支付结果时,使用SharedPreferences存入支付结果,在发起支付的activity中的onResume方法中读取出来。
在这里插入图片描述
注意:需要判断一下是否SharedPreferences存入的支付结果中,有值。在没有值得情况下不需要去服务器中回调支付结果。
从SharedPreferences中取完值之后,记得清空里面的值,避免下次错误操作。

在微信返回成功结果时,需要向服务器回调一次支付结果,具体的支付结果以服务器的为准。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Spring Boot项目中实现微信支付接入可以按照以下步骤进行: 1. 首先,需要在项目中引入相应的依赖,如微信支付的sdk和Spring Boot的相关依赖。 2. 在项目中创建微信支付的配置类,可以在该类中配置微信支付的相关信息,如appid、商户号、商户密钥等。可以参考之前提到的中的配置信息。 3. 创建微信支付的服务类,该类中可以编写具体的支付相关的方法,如生成预支付订单、回调处理等。可以使用微信支付sdk提供的API完成支付功能的具体实现。 4. 在需要使用微信支付的地方,可以注入微信支付服务类,并调用相应的方法来完成支付操作。可以结合具体的业务需求,如生成支付链接、调用支付接口等。 需要注意的是,在实现微信支付接入的过程中,还需要处理支付回调通知,以及支付结果的验签等安全问题,确保支付流程的安全性和可靠性。 这样,在Spring Boot项目中就可以实现微信支付接入。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Spring Boot项目实现微信支付支付](https://blog.csdn.net/orton777/article/details/131538447)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [spring+mybatis接入微信支付支付支付(包含微信公众号支付和H5支付)](https://download.csdn.net/download/yongyuai/10603536)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风伴佳人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值