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

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

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

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

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

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

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

有什么问题欢迎提问

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java二维数组初始化导入案例_Java二维数组初始化的方法详解

    java二维数组初始化导入案例_Java二维数组初始化的方法详解对于一个新使用的工具,我们会进行初步的初始化工具,目的是为了加上一些使用的配置。在学过了一维数组后,那么二维数组是加了一层维度的一维数组。在初始化方面,二维数组有三种方法,相信很多人只是掌握了其中的一种。下面本篇就Java二维数组简单介绍,然后就三种初始化方法带来详解。1.二维数组说明数组是一个容器,用来存储数据的。现在数组中存储的不再是int,double..的类型了,而是存储的数组。数组中的元…

    2022年5月25日
    49
  • pycharm安装教程2020.3.4_pycharm安装后无解释器

    pycharm安装教程2020.3.4_pycharm安装后无解释器第一步安装解释器,第二步安装pycharm1第一步安装解释器1.1什么是解释器:??就是将Python程序翻译成为计算机可以识别的01代码1.2安装解释器:解释器安装地址:https://www.python.org/downloads/release/python-372根据自己的操作系统安装适配的解释器:这里以Windows为例注意安装的时候我们需要需注意吧解释器添加到环境变量里面双击开始安装勾选addpythontopath,如果安装的时候没有勾选,请安装结束以后按

    2022年8月26日
    6
  • EasyExcel,让excel导入导出更加简单

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:风雨兼程 jianshu.com/p/8f3defdc76d4 EasyExcel 在做excel导入导出的时…

    2021年6月27日
    151
  • java帝国时代_new java project

    java帝国时代_new java project1.C语言帝国的统治现在是公元1995年,C语言帝国已经统治了我们20多年,实在是太久了。1972年,随着C语言的诞生和Unix的问世,帝国迅速建立统治,从北美到欧洲,从欧洲到亚洲,无数程序员臣服在他的脚下。帝国给我们提供了极好的福利:贴近硬件,运行极快,效率极高。使用这些福利,程序员们用C开发了很多系统级软件,操作系统,编译器,数据库,网络系统..

    2022年9月23日
    8
  • git的pull和fetch区别_git pull和git clone

    git的pull和fetch区别_git pull和git clonegitfetch和gitpull都可以将远端仓库更新至本地那么他们之间有什么区别呢?想要弄清楚这个问题有有几个概念不得不提。FETCH_HEAD:是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。commit-id:在每次本地工作完成后,都会做一个gitcommit操作来保存当前工作到本地的repo,此时会产生一个commit-id,这是一个能

    2022年8月22日
    6
  • processon激活成功教程版_杭州小木吉软件科技有限公司

    processon激活成功教程版_杭州小木吉软件科技有限公司processon.com-在线团队协作软件今天学到一个在线团队协作软件:www.processon.com免费在线作图,实时协作ProcessOn支持以下等等协同作业场景:流程图、思维导图、原型图、UML、网络拓扑图、组织结构图等等另外支持模板(可选)。以上就是关于“processon.com-在线团队协作软件(草巾冒小子)推荐”的全部内容。…

    2022年10月19日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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