详解微信小程序调用支付接口支付

 更新时间:2019年04月28日 09:58:01   作者:搬砖的蚂蚁  
这篇文章主要介绍了微信小程序调用支付接口支付,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

文档路径: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'

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

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

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

有什么问题欢迎提问

以上所述是小编给大家介绍的微信小程序调用支付接口支付详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 关于Function中的bind()示例详解

    关于Function中的bind()示例详解

    其实所谓bind顾名思义就是绑定。bind()方法会创建一个新函数,当这个新函数被调用时,它的this值是传递给bind()的第一个参数,它的参数是bind()的其他参数和其原本的参数。这么说可能很多人都糊涂了,下面通过这篇文章的示例来给大家详细的介绍下吧。
    2016-12-12
  • 微信小程序中子页面向父页面传值实例详解

    微信小程序中子页面向父页面传值实例详解

    这篇文章主要介绍了微信小程序中子页面向父页面传值实例详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • JS canvas实现画板和签字板功能

    JS canvas实现画板和签字板功能

    这篇文章主要为大家详细介绍了JS canvas实现画板和签字板功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • javascript实现鼠标点击生成文字特效

    javascript实现鼠标点击生成文字特效

    这篇文章主要为大家详细介绍了javascript实现鼠标点击生成文字特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • 使用javascript实现简单的选项卡切换

    使用javascript实现简单的选项卡切换

    本文主要介绍了使用javascript实现简单的选项卡切换的效果,代码非常的简单,兼容性十分棒,这里推荐给小伙伴们。
    2015-01-01
  • JavaScript定义全局对象的方法示例

    JavaScript定义全局对象的方法示例

    这篇文章主要介绍了JavaScript定义全局对象的方法,结合实例形式分析了javascript全局对象的简单定义流程与实现技巧,需要的朋友可以参考下
    2017-01-01
  • 详解JavaScript添加给定的标签选项

    详解JavaScript添加给定的标签选项

    这篇文章给大家分享了JavaScript实现添加给定的标签选项的相关知识点内容以及代码实例,有兴趣的朋友们参考下。
    2018-09-09
  • 爬虫进阶-JS自动渲染之Scrapy_splash组件的使用

    爬虫进阶-JS自动渲染之Scrapy_splash组件的使用

    Splash是一个Javascript渲染服务。它是一个实现了HTTP API的轻量级浏览器,Splash是用Python和Lua语言实现的,基于Twisted和QT等模块构建,今天重点给大家介绍js Scrapy_splash组件使用教程,一起看看吧
    2021-09-09
  • js弹出窗口简单实现代码

    js弹出窗口简单实现代码

    这篇文章主要为大家详细介绍了js弹出窗口的简单实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • JS实现兼容各种浏览器的获取选择文本的方法【测试可用】

    JS实现兼容各种浏览器的获取选择文本的方法【测试可用】

    这篇文章主要介绍了JS实现兼容各种浏览器的获取选择文本的方法,可实现鼠标拖动选择文本的同时,下方显示区同步实时显示选中内容的功能,涉及javascript响应鼠标事件及页面元素动态操作技巧,需要的朋友可以参考下
    2016-06-06

最新评论