本文是【浅析微信支付】系列文章的第一篇,主要会介绍一下为什么写下这个系列以及对于微信支付的一点小经验,与君共勉。
如下会分几个步骤讲一下我学习微信支付的过程,也是一部辛酸史,也是但愿朋友们不要再次跌进坑里,节省时间。php
如标题通常,公司来了这么个需求,须要接入微信支付,那就必须搞定他了,相信大部分的小伙伴都是这样接触微信支付的吧。html
首先咱们须要明确一个需求,若是公司是作 App 支付,除了接入微信支付还须要接入支付宝、银联等第三方支付,那么就须要考虑几个问题,公司是选择自主开发仍是借助第三方聚合支付(如Ping++),从成本等方面考虑,其实接入聚合支付也是一个不错的选择哦。git
若是咱们选择自主开发微信支付,那么问题就接踵而至,程序员
什么是微信支付? 微信支付能作什么? 咱们须要怎么实现它? 网络上是否有大神们写好的demo直接拿来便可? 微信官方是否提供了明确的文档?
上面的问题咱们这个【浅析微信支付】都会将其一一解开,尽情期待!!!github
明确了要作微信支付后,咱们第一时间固然是去找微信官方文档咯,地址以下:https://pay.weixin.qq.com/wiki/doc/api/index.html
;数据库
如今小程序很是火,咱们就拿小程序来举例子吧,进入小程序支付的开发文档页面:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_3&index=1
;
很是遗憾的是,微信的文档已知是给他们本身的程序员看的,若是是小白瞬间闯入,直接就是一脸懵,我到底该如何入手???黑人问号??嗯?小程序
莫慌!其实微信支付套路也很简单,他们是将简单问题复杂化了,生怕开发者看不懂,文档写的很是的详细(围笑)致使咋们不知如何入手,从这里开始一直到支付的全部环节都如此,文档真正关键的地方模模糊糊,细节上确实很是细致了。微信小程序
下面讲一下我是如何去学习微信支付的。api
绝对是逼上梁山的,简单讲,一个微信支付开发的流程以下:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_4&index=3
;安全
商户系统和微信支付系统主要交互: 一、小程序内调用登陆接口,获取到用户的openid,api参见公共api【小程序登陆API】 二、商户server调用支付统一下单,api参见公共api【统一下单API】 三、商户server调用再次签名,api参见公共api【再次签名】 四、商户server接收支付通知,api参见公共api【支付结果通知API】 五、商户server查询支付结果,api参见公共api【查询订单API】
上面几步中难点的在于第二步和第三步,中间会有一些坑,为什么?举个例子,
微信支付接口文档中的参数有的是驼峰有的倒是下划线但官方并无强烈提示说明... 由于版本关系有些参数还会不同... 对于再次签名所须要的参数和如何签名说的很是的简单,须要一再试错... 最大的问题是:对Java开发的支持并不怎么好,官方的 sdk demo 真的不能直接拿来就能用,真的就是个 demo...
没有经历过的朋友可能不太能体会这种感受,真挺难受的;由于上面的问题没法解决只好手动百度+谷歌,然而问题来了,网上的文章同质化很是严重,每每点进去五篇文章,其中三篇都一毛同样啊,流泪...还有人出收费教程,这也是赚钱的好办法...
如上经历因此才有了这个系列的文章,固然最终我也在网络大神们的文章中筛选出了精华,实现了微信支付的大部分主体功能,足够知足常规的企业开发了。
这个系列的文章其实早就有写的想法了,由于在我解决问题的过程当中,遇到不少同行抱怨很是痛苦,可是实在是懒+并无打磨到拿来即用的地步,如今自我感受也差很少了,因此分享给你们。
下面会贴出我整理的这个系列主要功能点,以下所示:
1.浅析微信支付:前篇大纲 2.微信支付简单介绍 3.开发前的准备 4.统一下单接口 5.支付结果通知 6.查询订单 7.关闭订单 8.申请退款 9.退款结果通知 10.查询退款 11.下载对帐单 12.下载资金帐单 13.如何使用沙箱环境测试 14.支付验收指引 15.刷卡支付验收用例 16.扫码支付验收用例 17.公众号支付验收用例 18.免充值产品功能使用指引 19.(余额提现)企业付款到零钱资金使用商户号余额资金 20.商户平台-现金红包-发放普通红包 21.商户平台-现金红包-查询红包记录 22.商户平台-代金券或立减优惠-发放代金券 23.商户平台-代金券或立减优惠-查询代金券信息 24.商户平台-代金券或立减优惠-查询代金券批次 25.公众平台-微信卡券-建立卡券 26.公众平台-微信卡券-HTML5线上发券(JS-SDK接口) 27.公众平台-微信卡券-查看卡券详情 28.公众平台-社交立减金活动-概述 29.公众平台-社交立减金活动-开通产品权限 30.公众平台-社交立减金活动-完成免充值模式验收 31.公众平台-社交立减金活动-建立代金券并设置跳转小程序 32.公众平台-社交立减金活动-建立支付后领取立减金活动接口 番外篇: 1.微信公众号网页受权 2.微信公众号模板消息发送 3.生成永久无限制微信小程序二维码 4.多个微信公众号同一商户平台的支付处理 5.微信退款时jdk更换安全包的处理 6.微信支付 MD五、HMACSHA25六、SHA一、AES 加解密工具类
对于以上功能点的说明只会多不会少,可能其中还会穿插一些遇到的问题或异常处理,数据库和业务处理逻辑等等;
我也建立了一个微信群来提供给你们交流,一块儿共同进步吧。
但愿这个系列文章能给你们带来一些启发,帮助解决一些问题,与君共勉!!!
若是想要提早一览源码的小伙伴,能够先看看个人 github,地址以下:https://github.com/YClimb/wxpay-sdk/blob/master/README.md
加做者私人微信,做者微信号以下 yclimb
,回复 微信支付
可拉入微信支付讨论群与小伙伴一块儿探讨哦,必定要标明 微信支付
哦~
到此本文就结束了,关注公众号查看更多推送!!!