微信小程序调用支付接口支付失败_微信小程序与后端的接口

微信小程序调用支付接口支付失败_微信小程序与后端的接口我前段时间做微信支付,遇到了很多坑,网上也没有讲解的特别明白的,通过借鉴各路人才的经验,最后也完成了,网上有很多讲解,我在这只讲一些注意点和解决的方法。我就讲讲我从完全懵到完成的过程吧。在微信提供的接口文档中提供了一个微信支付接口,应该是直接调用这个接口就可以发起微信支付文档路径:https://developers.weixin.qq.com/miniprogram/dev/api/ap…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

我前段时间做微信支付,遇到了很多坑,网上也没有讲解的特别明白的,通过借鉴各路人才的经验,最后也完成了,网上有很多讲解,我在这只讲一些注意点和解决的方法。我就讲讲我从完全懵到完成的过程吧。

在微信提供的接口文档中提供了一个微信支付接口,应该是直接调用这个接口就可以发起微信支付

文档路径:https://developers.weixin.qq.com/miniprogram/dev/api/api-pay.html#wxrequestpaymentobject

微信小程序调用支付接口支付失败_微信小程序与后端的接口

但是,当开始信心满满的去看所需参数时,懵逼了,这些参数是什么

微信小程序调用支付接口支付失败_微信小程序与后端的接口

在这些参数中最难理解和获取的就是这两个了,仔细研究后发现,package这个参数的获取要调用微信提供的另一个接口,统一下单接口。原来在微信中支付需要先进行一下预下单。这里的时间戳使用的是秒值不是毫秒值

文档路径:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1

微信小程序调用支付接口支付失败_微信小程序与后端的接口

这个接口就需要后台通过http请求来调了

微信小程序调用支付接口支付失败_微信小程序与后端的接口

而在这些参数中,有两个参数很眼熟,在第一步发起微信请求时也有这两个参数,后发现这里的随机字符串就是调起支付时用到的随机字符串,而且是必须一致,那么签名呢,要是也认为一样就完全调沟里了,这里的签名我称为一次签名,因为支付的时候要进行第二次签名。签名生成算法有讲解,多读几遍就明白了,我建议读个几十遍。

把这些必填的参数都准备好

很重要的是你要首先有个店铺,就有商户号了

订单号必须唯一哦,通知地址就是当支付成功后微信会回调这个地址,在这里你可以做一些事,比如修改订单状态什么的。

然后就是签名生成,这个很重要:把需要的参数都放到一个map中,然后对这些参数进行排序,然后把商品key拼接到后面进行MD5加密就生成签名了,我还是建议仔细看看签名生成算法,不要想太复杂,就是排序,拼接,加密三步完成。

最后就是准备参数传输了,这里的参数传输是以xml的方式传输,下面就是传输的数据,其实就是一个大的字符串,

你可以这样

String s =“<xml>”

    +”<appid>wxdxxxxxxxxx</appid>”

    +”<mch_id>10000100</mch_id>”

    +”<nonce_str>24jtlk2j3ltjl2kjlkt3j</nonce_str>”

    +”<sign>432l4j5j4325l23k4j5lj34</sign>”

    +”</xml>”

微信小程序调用支付接口支付失败_微信小程序与后端的接口

我就意思一下了,大家懂就行,其实就是一个字符串,完全可以通过遍历参数map来自己拼接的。

然后就是把这个大字符串传过去,以上没问题的话就会返回一个字符串的xml,格式类型咱们拼接的参数。

微信小程序调用支付接口支付失败_微信小程序与后端的接口

从中取出我们需要的东西,最重要的应该就是这个,预下单id,这就是之前咱们需要的package

使用时是这样的:package=’prepay_id=201411109120471241k1241240124bk1k24′

然后就是二次签名了,签名生成顺序和第一次是一样的,主要要确定需要哪些参数。

微信小程序调用支付接口支付失败_微信小程序与后端的接口

然后把这些参数返回给前台使用,取出来放进去就行了。

微信小程序调用支付接口支付失败_微信小程序与后端的接口

到这里前端调用一下就发起支付了。

有什么问题欢迎提问

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192547.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python 图片拼图的制作 确定不来尝试一下……

    python 图片拼图的制作 确定不来尝试一下……

    2021年11月10日
  • Ubuntu根分区使用Lvm扩容

    Ubuntu根分区使用Lvm扩容ubuntu根分区剩余空间不足,影响工作,因此通过lvm工具对根文件系统进行扩容系统版本:ubuntu-14.04LTS1.使用新硬盘扩展根文件系统 新建一块硬盘并进行分区: fdisk/dev/sde 依次键入n,创建新分区;然后分区类型选择p;其他默认输入即可。 图1:创建新分区 分区创建完成后,修改分区类型为lvm: 图2:修改分区类型 新建的分区类型不能为扩展分区,否则不能更改分区类型,目前还不清楚原因,需要继续查找其他资料,..

  • 原来都是freesync惹的锅「建议收藏」

    原来都是freesync惹的锅「建议收藏」今天贪便宜入了一款创维的2k显示屏,开始用N卡+DP线驱动得挺稳定,然后手闲开了freesync,结果就各种闪烁、条纹。最无奈的是显示器菜单里freesycn选项竟然灰了,关不上了,呜呼!在打算退货前,胡乱操作了一通,例如,菜单里恢复出厂设置,无果。用HDMI线降分辨率、降刷新率,无果。进入工程界面(按住M在POWERON),没敢乱调,退出。然后再在菜单里恢复出厂设置…….最后菜单中选模式为文本,重新DP线接入,竟然freesync被神奇地关闭了。之后,2k屏就再没闪过,千万不要乱动free

  • pycharm激活码2021年【2021.7最新】

    (pycharm激活码2021年)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • listView1.Items.Add()与 listView1.Items[i].SubItems.Add()区别

    listView1.Items.Add()与 listView1.Items[i].SubItems.Add()区别listView1.Items是ListViewItem的集合打开资源管理器,看看windows目录,使用Details方式,一个ListViewItem就是一行,比如目录名称,修改时间,类型,大小,这整个一条记录是一个ListViewItem而listView1.Items[i].SubItems是ListViewSubItem的集合比如刚才的目录名称或

  • 一文读懂宏基因组分析套路

    一文读懂宏基因组分析套路很多亲人感觉宏基因组的分析结果内容种类太多,根本学不过来。其实本质上并不复杂,只分为两类:物种组成和功能组成两大类,这是核心结果;再加上开头系统描述和结尾的讨论比较。通常会出现固定套路的4部分结构。今天就从之前解决的1篇nature,2篇science,入手来总结宏基因组分析的基本思路。只有分析思路清楚,结果才更容易説清楚。文章思路和结果文章分析思路:整体概述——物种组成——功…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号