Table of Contents

一、引言

二、内网穿透

三、支付异步回调处理

异步回调通知返回出参:PayResponse

SDK API定义:BestPayService

SDK API实现:BestPayServiceImpl

微信相关API实现:WxPayServiceImpl

支付异步回调通知测试:

四、订单状态查询

订单状态枚举:OrderStatusEnum

订单查询请求入参:WxOrderQueryRequest

订单查询返回入参:WxOrderQueryResponse

请求微信API定义:WxPayApi

对外提供请求查询订单入参:OrderQueryRequest

对外提供接收查询订单入参:OrderQueryRequest

SDK API定义:BestPayService

SDK API实现:BestPayServiceImpl

微信相关API实现:WxPayServiceImpl

订单查询测试:


一、引言

上篇文章中,讲解并且实现微信支付,既然微信下单成功了,那我们怎么知道用户有没有付款呢?

说到这里,小编先要明确一下,我们主要的是针对开发一个支付的SDK。SDK通俗来讲,把我们所编写的一个项目可以打包成一个jar包,其他项目进行依赖,就可以使用该jar包中所对应的方法。

那么这里微信首先会:异步回调通知商户系统 —— 商户系统调用SDK中异步回调处理的方法 —— 商户系统拿到SDK处理结果做相对应的处理。

二、内网穿透

在开始讲解之前,小编先给大家介绍一款开发调试神器 : Sunny-Ngrok 点击访问

内网穿透可能还有小伙伴们没有听说过,简单来说,通过内网穿透可以通过互联网来访问对应本机的某个项目

这个也是小编实际在公司中也会所使用的,在一个新项目开发完毕之后,肯定还会遗留bug、或者一些细节部分处理不当等操作。 按照正常来说双方都是公司的小伙伴则可以使用内网IP来访问对应本机项目,那么双方如果没在同一个局域网呢?

小编公司需要和B公司进行接口联调,在完全一个新开发的项目,小编首先会通过内网穿透进行接口联调,这样能够快速定位问题以及解决,解决后也无需发布新的版本,大大提高效率。

因为微信支付异步回调通知,要求商户系统回调地址必须为直接可访问的url,不能携带参数。那么这个可访问的url代表的就是可通过互联网进行访问。

这个Sunny-Ngrok之所以推荐是因为,可免费提供固定域名、免费穿透(当然也有收费的)、跨平台。 

教程地址:http://www.ngrok.cc/_book/general/open.html,只需要开通对应的隧道,下载客户端,按照教程启动就行了,小编就不多讲了。

三、支付异步回调处理

支付结果通知官方文档:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_7

小编来说说需要注意的几个点:

1、首先url可直接访问的,可参考上文内网穿透,或者直接使用公司或者个人域名也都行。

2、用户支付后,微信可能会多次进行通知商户系统,如果微信不能收到商户系统的正确返回信息,则判定本次通知失败,知道成功为止(在通知一直不成功的情况下,微信总共会发起多次通知,通知频率为(15s/15s/30s/3m/10m/20m/30m/30m/30m/60m/3h/3h/3h/6h/6h - 总计 24h4m),但微信不保证通知最终一定能成功

3、如果下单成功,收到微信支付结果通知或者在订单状态不明的情况下,则需要商户系统调用订单查询API。

4、商户系统收到支付结果通知,一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,以及检查数据对应业务状态。

5、需要严格按照示例返回参数给微信支付,在文档最下方微信有给出实例。

以上说的这五点,指的是商户系统所需要注意的事情。而我们本次所开发的SDK异步回调处理,只是仅仅完成签名验证,以及把相对应的参数返回出去,至于一些金额校验需要商户系统查询数据库订单信息来与SDK返回参数信息进行对比等等。 

本文代码环节是接着前几篇文章接着来的,如有疑惑的小伙伴,可参考一下前几篇文章。

对接微信Native支付:点击查看

项目工具类:实战开发支付SDK —— 项目结构设计讲解(微信、支付宝)

本文中的所使用的工具类,可在上文友情链接中可以找到

实战开发支付SDK —— 处理微信支付异步回调以及订单状态查询(含源码)相关推荐

  1. 仿得物微信小程序(动手就会,含源码)

    点击上方 前端瓶子君,关注公众号 回复算法,加入前端编程面试算法每日一题群 前言 最近正在学习微信小程序开发,也是与两个同学一起合作着手仿做得物APP微信小程序.这里主要分享一下我的学习过程及踩过的一 ...

  2. ADI Blackfin DSP处理器-BF533的开发详解52:图像处理专题-CMOS摄像头采集图像(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 功能介绍 板卡上设计了一个摄像头接口,可以连接 ...

  3. 微信小程序+VUE社区疫情防控(含源码+论文+答辩PPT等)

    该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采用前后台前后分离的形式使用Java+VUE 微信小程序--前台涉及技 ...

  4. ADI Blackfin DSP处理器-BF533的开发详解41:图像处理专题-LinearTransform图像线性变换处理(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 功能介绍 代码实现了图像线性变换,代码运行时, ...

  5. DI Blackfin DSP处理器-BF533的开发详解47:图像处理专题-Resize (图像缩放处理)(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 功能介绍 代码实现了图像缩放处理,代码运行时, ...

  6. ADI Blackfin DSP处理器-BF533的开发详解9:UART串口的驱动和应用(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 接口功能介绍 UART(Universal A ...

  7. 给女朋友的微信小程序之情侣手账本(含源码)

    目录 一.背景 二.思路 三.效果图 四.代码 1.xxxx.wxml 2.xxxx.js 3.xxxx.json 4.xxxx.less 5.app.js 五.结语 一.背景 和女朋友的四周年纪念日 ...

  8. SwiftUI实战教程之创建Tinder样式的可左右滑动卡视图(项目含源码)

    本文价值与收获 看完本文后,您将能够作出下面的界面 在本文中,我想向您展示如何仅用几行代码就能实现类似Tinder的卡片视图和行为(轻拂以行动). 为此,我们需要执行以下操作: 创建用户视图 创建Na ...

  9. iOS SDK开发系列三之微信支付SDK封装Demo以及xcodebuild简单打包脚本实现

    前言 SDK开发系列文章一 SDK开发系列文章二 之前两个文章介绍了Cocoapods的原理,Xcode环境变量以及动态库和静态库的介绍,这些基本知识就单独抽出来了,方便以后翻阅.看了一遍网上的一些静 ...

  10. 微信小程序开发笔记 支付篇④——基于微信支付SDK实现Java后端接口使用

    文章目录 一.前文 二.微信支付 Java SDK 三.示例 一.前文 微信小程序开发笔记--导读 微信支付-SDK与DEMO下载 先看README.md 二.微信支付 Java SDK 对微信支付开 ...

最新文章

  1. Installing python 2.7 on centos 6.3.
  2. c# 变量,对象,静态类型,集合类的线程安全回顾
  3. mysql 更改 uf_SQL经典实例(四)插入、更新和删除
  4. Thymeleaf相关补充
  5. [SCOI2015]情报传递(主席树+lca)
  6. C# 4.0 实现 Method Missing
  7. MATLAB GUI程序设计中ListBox控件在运行期间消失的原因及解决方法
  8. IOS之xib计算cell的高度
  9. paip.网页右键复制菜单限制解除解决方案
  10. OpenCV-图像处理(19、Canny边缘检测)
  11. python升级导致yum命令无法使用的解决办法(修改版)
  12. 【多标签文本分类】层次多标签文本分类方法
  13. linux设计论文题目,计算机linux本科毕业论文题目
  14. C语言之取反和取相反数
  15. 腾讯信鸽Java服务端推送IOS静默消息的IOS客户端走两个回调的问题
  16. QQ在线客服聊天功能
  17. 【python】使用jieba分词并导出txt
  18. cdn回源php_CDN回源、网站解析 是什么意思?
  19. ORA-01950: 对表空间 USERS无权限
  20. 【BZOJ1211】【HNOI2004】树的计数(prufer序,组合数)

热门文章

  1. Solution of ZOJ 2748 Free Kick
  2. 微信公众平台深度开发JAVA版
  3. 合并拆分wim文件命令imagex
  4. RFID和NFC的区别 以及门禁卡和饭卡
  5. c语言中while(a)、if(a)、while(!a)、if(!a)、if(%a)是什么意思?
  6. idea git使用
  7. 聚齐乐服务器维护时间多久,9月19日服务器例行维护更新公告(已完成)
  8. python中label函数_让Label像Button一样可以点击
  9. OpenCV 表盘指针自动读数
  10. php师汤姆猫壁,汤姆猫家族与vivo游戏中心线上线下破壁联动