调用微信支付接口总结

调用微信支付接口总结

时间:2018-04-09 23:17:29      阅读:2020      评论:0      收藏:0      [点我收藏+]

标签:工具   发送   tps   认证   跳转   设计   查询   val   代码   

  毕业设计项目里面用到了微信支付的功能,在视频教程里面学习了一下,这里做个总结来记录。教材的模板里面用到的是anglusJS来做前端开发,我这边简化了,用的ajax进行异步的调用,然后业务也直接写在了控制层(不过不应该这么写的。。),应该是个简洁明了的模板,主要是让自己理解整个流程。

  1 关于在调用微信支付接口之前的一些准备工作,申请公众号,认证,拿到密钥等等操作就不概述了, 微信的在线支付文档中都有描述,这里贴出地址 :https://pay.weixin.qq.com/wiki/doc/api/index.html 

     然后,需要使用到的一些工具类的maven坐标:

          技术分享图片

          包括了一个微信的工具类,一个网络连接的工具类。

          技术分享图片

          二维码的生成插件

          注意要在页面引用!!

          技术分享图片

  2 大致的流程 :

    1)二维码的生成

    二维码支付的大致流程,个人理解是,访问到支付页面后,想后台发起一个请求,然后,在后台将各种参数封装成一个MAP,用原生方式或者工具类将MAP发送到微信的第一个接口 https://api.mch.weixin.qq.com/pay/unifiedorder。这里主要用来生成二维码!

    部分代码如下:

    首先,咱们到了要付款的页面了,jquery初始化页面的时候异步请求后台,这里传订单号过去.

    技术分享图片

 

    一些主要的参数,比如商户密钥写在外部的配置文件里面 然后@Value("${partnerkey}")这样注入。这里的notify_url参数是可以随便写的,但是必须写,我写的慕课网的地址。。。其他参数,在微信文档里面有介绍,哪些必须写的。

    技术分享图片

    然后 , 发送,发送方式不限,这里使用的是拷来的工具类。

    技术分享图片

    然后,获取结果,这里主要是code_url,用来生成二维码的东西。

    我这里用的是把这个结果封装成MAP然后使用了FASTJSON转化成JSON串发送到前台,比较简单,因为是AJAX的方式访问的。

    技术分享图片

    这样已经生成了。

    技术分享图片

 

     这里前台就接到了数据,在图一中的回调函数里面,拿到一个<img id=‘" qrious">的文档模型,这里会帮你生成二维码,但是一定要引入之前的插件!

      2)怎样去判断是否支付

    判断支付的大致流程,在二维码生成后去调用后台进行判断.

    在我图一的AJAX回调函数最后一排,调用了查询的函数,如下:

    技术分享图片

    而在后台,怎样去判断你是否支付了?

    后台写入一个死循环,循环调用微信支付另一个接口:https://api.mch.weixin.qq.com/pay/orderquery

    技术分享图片

    当然,需要sleep,不然调用太快会崩掉,这里他会每隔3S一直去调接口,当然是根据你前台传过来的订单编号去查询!

    我这里没有支付,所以控制台一直打印出订单未支付!

    技术分享图片

    如果支付成功的话,我想前台传递一个1.然后,在回调函数里面去判断,然后你就可以去做你想做的操作了,比如付款失败跳转到失败页面,成功的话转入后台更改订单状态!

    PS:这里设计到一个二维码超时的问题,这样程序会一直去调接口,线程会不断的增加,因此,加入一个变量X,当超过多少次时,跳出循环!

    大致的流程就是这样了,个人理解,新手写博客,欢迎指正!后续还会完善!共勉!

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Python调用微信支付接口,首先需要安装并导入相关的Python库。常用的库有requests、xmltodict等。 首先,需要在微信支付官方网站申请并获取到支付接口的API密钥、APPID等信息。然后,使用requests库发送HTTPS请求,并在请求头中添加必要的信息,如用户的API密钥、签名类型、请求方法等。 在请求的主体部分,需要构建符合微信支付接口要求的XML格式的数据,包括必要的参数如商户订单号、总金额、商品描述等。可以使用xmltodict库将数据转换为XML格式,并将其作为请求的主体发送。 接下来,需要对请求的数据进行签名处理。微信支付接口要求对请求的参数进行MD5签名或者HMAC-SHA256签名。可以使用hashlib库计算MD5或HMAC-SHA256签名,并将签名结果添加到请求的参数中。 然后,将请求的数据发送到微信支付接口的URL。接收到响应后,需要对响应进行相应的处理,如判断响应的状态码、对返回的XML格式数据进行解析等。 最后,根据微信支付接口返回的结果,可以进行相应的业务逻辑处理。例如,判断支付是否成功、更新订单的状态等。 需要注意的是,在调用微信支付接口时要保证请求的安全性,如使用HTTPS协议、对请求的数据进行加密等。同时,还要遵循微信支付接口的相关规范,如接口版本的要求、接口参数的格式要求等。 总结起来,Python调用微信支付接口的过程主要包括:获取接口信息、构建请求数据、对请求数据进行签名处理、发送请求、处理响应、处理支付结果等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值