随着互联网的兴起,网上支付已经风靡了各个角落,然而移动支付中比较火的当然属于微信支付了。

今天跟大家分享一下微信开发中所遇到的一些问题。

1.首先在微信下载微信支付的SDK, 最好下载最新的SDK, 在官方的SDK中,已经做好请求的格式,只需要填写相关的配置信息即可

2.申请相关配置信息  一、开通服务号(需认证) 二、开通商户平台

3.配置相关授权地址

微信支付有几种支付方式:1.公众号支付、2.H5支付 3.扫码支付、4.APP支付、5.刷卡支付

我主要开发了公众号、H5、扫码支付。 不过大家不用担心,其他支付方式的坑也是大同小异。

一、公众号支付所需要的前提条件:认证的服务号,因为是在微信浏览器中支付。所以要获取当前微信身份信息的token .

二、H5支付和扫描支付 只需在商户平台中配置相关的 授权地址即可 ,(注意。在填写授权地址链接跟你访问地址是区分大小写的,新手请绕行哈。。。哈哈)

4. 申请配置完所有的信息之后,我们准备进入开发阶段,在开发之前,我跟大家分享一下我们的业务如何跟微信支付完美对接 ,在开发过程中 ,我们肯定要保存微信支付信息,以及订单信息 。so ,我们在设计数据结构的时候 ,应该考虑到它的扩展性 。

上面这张图是我临时画的微信支付所需要的表结构, 首先我们要有一种系统业务订单表,里面存的 是系统的 商品信息、

中间的订单表是一张中间表,把系统订单跟微信订单 关联起来、 中间表(订单表)中除了两个关联表的ID以外,可以存价格、状态以及交易号 个人推荐的。因为可以提高后面报表查询的速度,再者,这些订单信息创建以后就不会再修改 ,只能删除。

表之间的关系: 系统订单表(1)--》订单表(1)----》第三方支付订单表(多)

5.系统订单与微信订单的冲突。 如果我们的支付方式可以同时支持多种 ,在业务处理的时候就会遇到一个坑,就是同一个系统订单,则需要生成多个微信订单 ,这是为什么呢 。这个坑可能不少新手都掉进去了 ,这个坑个人感觉是微信自己挖的 ,而且巨深。 大家在看开发文档的时候 ,判断同一个订单的条件应该是:商品描述+金额。  如果在同一个支付方式是可行的 ,如果在公众号中创建订单,然后在PC端扫码支付,这时微信会返回 商户订单号重复。 所以同一个订单的条件是 商品描述+金额+支付方式这就是为什么在表结构设计的时候,订单表与微信订单表的关系是1对多了 。

但是这样的设计方案,会有一个bug出现,真是一波未平一波又起哈,当然这个只是一种极端情况,用户可以同时在两个不同的支付方式对同一个系统业务订单进行付款,造成订单重复支付的情况,当然。用户在支付的时候会谨慎,但是这是属于我们系统中的一个bug,所以我们要避免这种情况的发生。

解决方案:支付成功后,判断该系统订单状态。如果支付了则进行退款操作。

6.微信支付成功通知

系统有一个API是接收用户支付成功后的回调地址,当接收到微信的回调,可以根据返回的支付状态 更新系统的业务状态。

之后再分享沙箱测试!

这个是在微信支付遇到的一些坑,希望我的小小分享能给各位带来一点点的帮助。如果文中有不正确的地方,欢迎指出指教!不胜感激。

一分打赏,给创作添一滴油。

微信支付--采坑记(1)相关推荐

  1. 微信支付采坑记录(java后端 一:微信支付调用从哪一步开始)

    普通商户模式微信支付之APP支付统一下单: 前言: 最近项目开发到微信支付的模块,经过一周的不懈努力,虽然微信支付流程跑通了,但当时的那些坑是真的烦,为了避免自己以后犯同样的错误,当然还有各位新接触微 ...

  2. RTFM:腾讯微信公众号H5页面使用微信支付爬坑记

    一. 微信公众号支付的流程 公众号的页面会在微信环境下打开,所以默认已经有登录态.openID.AppID.AppSecret 都能拿到,申请开通商家支付之后会有 PayKey 和 mch_id (商 ...

  3. 加入域时出现以下错误 登陆失败 该目标账户名称不正确_微信支付踩坑合集:微信小程序支付失败是什么原因?持续更新...

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

  4. Android平台招商银行“一网通”支付对接采坑记

    公司最近的App中需要做支付功能,支付中需要支持微信支付.支付宝支付.一网通支付.本文主要记录在对接Android平台中的"一网通"过程中遇到的坑,如果有类似需求的朋友,可供你参考 ...

  5. 微信APP支付填坑记

    首先吐槽几句,微信支付很强大,古人有诗赞曰:自古多坑空余恨,此坑绵绵无绝期. 先说几个必做前置任务: 1 在微信商户平台设置你的公用key,程序里生成sign签名时,要用到这个key.为md5 32位 ...

  6. 微信支付的坑 返回值 -1

    2019独角兽企业重金招聘Python工程师标准>>> 最近在用android接入微信支付.. 之前的包没问题,发现这段时间突然不行了... 于是调试之. 1.开始用的支付配置参数估 ...

  7. Taro小程序采坑记

    Taro,京东凹凸实验室出品的适配多端的一个框架, Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种多样,Web.React-Native.微信小程序等各种端 ...

  8. 微信支付踩坑合集:微信小程序支付失败是什么原因?

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

  9. 微信支付踩坑合集:微信小程序支付失败是什么原因?持续更新

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

最新文章

  1. C#教程3:基本语言结构
  2. ./configure 参数解析
  3. 学校电用计算机控制的,高等学校适用教材:计算机控制技术
  4. docker-compose命令介绍和使用【官方英文文档翻译】【附加案例】
  5. md5会重复吗_如何优雅地处理重复请求(并发请求)
  6. 字体感觉小了 引入的vant_动态字体海报如何设计与制作?
  7. 收款码合并有什么弊端_为什么明明有个人收款码了,还要申请微信收款商业版?...
  8. xcode5 ios7 64位 iphone5s引用第三方库报错的解决办法
  9. Python入门--文件的读写,相对路径,绝对路径
  10. windowsxp中linq 指定的转换无效_.NET Core 3.0 中的新变化
  11. java 中如何连接 oracle 数据库
  12. vscode win10笔记本 蓝屏_老鸟教你win10开机蓝屏0xc000000d的详尽解决办法
  13. IAR环境下的STM32H750片外QSPI Flash下载仿真
  14. 计算机等级考试:IE地址栏不见了 怎么让消失了的IE地址栏神奇的再次出现。?
  15. 矸石称重自动化系统有什么特点
  16. 使用 Screen 创建并管理多个 shell
  17. 零基28岁自学python入坑ing
  18. net.sf.json.JSONObject实现Object对象与Json字符串的互转
  19. 二叉树遍历之前序遍历,中序遍历,后序遍历
  20. java反序列化漏洞分析

热门文章

  1. python中列表的操作
  2. E1/CE1/T1/PRI/BRI知识介绍和配置
  3. Spark-core电商分析
  4. 熬夜加班赚钱?放弃吧,你的基因里有一个大写的穷。
  5. matlab图像压缩像素编码,基于DCT的图像压缩编码算法的MATLAB实现
  6. blogbus背景音乐及音乐播放器设置
  7. 什么是跨境电商ERP系统
  8. 红旗linux软件下载,红旗linux操作系统下载
  9. SuperMap iClient for JavaScript常见问题解答集锦(十二)
  10. SpringFramework核心技术一(IOC:ApplicationContext的附加功能)