感觉很多程序都是只要一有关钱这一方面,我磨磨唧唧,文档也写的简直了!

前排提示:微信文档坑很多,在没有前辈或者有经验的情况下,千万不要死怼代码,一个人思考,最好遇到问题直接去找微信客服,发邮箱就发邮箱嘛~~~
 
   微信openId那一块,磨磨唧唧的弄完后,明明APP还没有支持会员系统,就已经叫我去弄微信支付充值会员了~~~(什么鬼~~~)
 
   看了两天微信文档,结果翻来翻去就那两种方法,简直无奈啊~~~
 
   其一:JS-SDK,文档接口https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
 
   
    
   这种方式跟微信分享那一块差不多,先插入JS文件http://res.wx.qq.com/open/js/jweixin-1.2.0.js,这个是动态网站,直接添加就是了!
 
  然后自己先弄一个签名,签名怎么弄呢,其实问下文档附录1写的很清楚的!如图
 
签名需要jsapi_ticket,而jsapi_ticket需要通过access_token获取,access_token的获取方式就是一个坑了,微信授权那有一个access_token,而基本配置那也有一个access_token,两个token,我们获取的当然不会是授权的那个了(什么!你说为什么不是授权的那个?TM我测试的十几次,我当然知道了~~~~~~)
 
    基本配置那的access_token获取方式非常简单,知道APPID,和APP密码(开发者ID和开发者密码),调用微信提供的API接口就可以返回你需要的access_token了!
    文档接口:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
咋一看是不是很简单,然后呢,这又是一个坑!access_token获取是不能在前台上获取的,因为在前台获取的话,APPID和appsecret都能被人看到的,为了安全起见,也就是保险,这个只能在后台获取,接口参数这些也很简单,跟后台吱呼一声,让他写个接口,然后我们这边调用获取到access_token后就更简单了,直接调微信接口按照参数把access_token写进去就能获取到我们需要的jsapi_ticket了!
    
     接口格式: https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
     
 
然后值得注意的就是access_token和jsapi_ticket的存在时间都是7200秒也就是2小时。最好是叫后台获取到access_token后在服务器端缓存一下,不然会造成数据流失异常(但是这个异常我到现在都没有遇到过~~~~)!
 
   有了jsapi_ticket后,我们就要进入另一个微信坑了,简直就是天坑啊,简直了~~~~
 
  
 
 
话不多说,直接上图,签名~~~,前端签名这个东东是真的恼火,但是这块倒也不是很难,现在网上找几个封装好了的时间轴方法,随机数方法,然后按照ASCII从小到大排序,基本上也可以获取的到。
 
接下来就是另一个坑人游戏了,统一下单!
 
文档入口:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
 
统一下单最开始我还以为也是前端调用接口,然后获取的,直到无论如何都获取不到后,各种度娘文档论坛发现都是后台获取的,然后我一脸懵逼的交给了后台,才发现,原来事情并不是那么简单!
 
看到没有!看到我话红线的地方没有?上面写的什么?开户成功后,要想进行微信支付,必须要接入沙箱测试,验收完沙箱的所有用例后,才能进行审核,审核完毕后才可以进行正式的上/下交易~~~~
 
这说明了什么,说明必须要用沙箱测试,用沙箱测试制造假的key用假的key调用统一下单,调用完下单后,收到微信返回的数据sign,然后用sign再进行一次签名,然后再将签名给前台,然后...........然后就一脸懵逼了.......
 
用沙箱是的的确确调用统一下单能够成功返回的,但是呢,但是统一下单返回数据中最重要的prepay_id参数用于是错的,永远只有22位,少了后面的total_fee以及一些其他参数的拼装集合!
 
 
然后我和后台java就一脸懵逼了,各种测试,各种鼓膜,各种度娘,永远是错,一直到我这边实在熬不住了去找微信客服,然后微信客服又叫我发邮件去他们那边的技术相关~~~然后收到了一条回信!!
 
这是什么意思???什么鬼,微信文档写着必须走沙箱,测试全部通过才能走正式,微信技术支持说,管毛的沙箱,直接走正式环境~~~~~~辣子的时间啊,辣子的脑细胞啊~~~~~
 
一场闹剧闹了整整一周的时间,我能说什么~~~
然后统一下单需要注意的一点
 
 
是微信公众号支付的话openId是必须传入的,否则微信无法确认是公众号对应的是哪一个用户!
 
还有就是我们前端这边,第一步完成后,第二部传入的prepay_id的格式必须是package:"=***********";
只要格式不对,就一定会报错!
然后这里的paySign也是一个坑,这里的paySign很容易让人误解是统一下单中的sign返回参数,其实不然,统一下单返回的参数中,我们只用得到prepay_id这个,其他的对于我们前台来说,一个也没用,这里的paySign是支付签名,由后台用统一下单的签名方式生成!千万不要搞错
 
然后我们这边的微信签名接口对应的参数,全部都是最后一次后台签名paySign中对应的参数!
 
这些全部获取好了,直接按照微信文档格式写就OK~~~~
 
   这是第一种方式,而第二种方式确实没什么区别,只是不需要那么繁琐,直接调用然后完成就OK!但是最后需要的参数,跟第一种方式也是一样的,后台代码不会有改变!
 
 
第二种只是接口名不一样,然后要传入的参数多一个APPID其他的全部都跟第一种需要的参数和获取方法一模一样!
 
这边是我写的:
画红线的地方是绝对需要再三检查的,只要格式有一丁点不对劲,都一定会错。
 
然后我这里有一个非常好检查错误的方法,微信公众号支付一定要用IOS来测试。
IOS会根据如图从上到下的顺序报错~~~~~~~
 
     
最后再说一次,千万不要用沙箱测试,那玩意有毒,用了永远报错,直接走正式环境~~~~~

微信公众号之微信支付相关推荐

  1. JAVA版开源微信管家—JeeWx捷微3.1小程序版本发布,支持微信公众号,微信企业号,支付窗

    支持小程序,JeeWx捷微3.1小程序版本发布^_^ JeeWx捷微V3.1--多触点小程序版本管理平台(支持微信公众号,微信企业号,支付窗) JeeWx捷微V3.1.0版本紧跟微信小程序更新,在原有 ...

  2. JeeWx捷微3.0多触点版本发布,支持微信公众号,微信企业号,支付窗——喜迎双“旦”

    喜迎双旦,JeeWx捷微3.0多触点版本发布^_^ JeeWx捷微V3.0--多触点版本管理平台(支持微信公众号,微信企业号,支付窗) JeeWx捷微V3.0.0版本是一个颠覆和跨时代版本,官方团队历 ...

  3. 微信公众号:支付宝支付

    微信公众号:支付宝支付 微信公众号:支付宝支付 由于支付宝月微信是两个对立的企业,支付宝想介入微信的充值,微信发现就将其规避,在支付宝与微信博弈的过程中,双方一直是处于你争我赶的地步. 微信公众号接入 ...

  4. php 微信支付闪了一下,php,_微信公众号JS API支付,安卓没有效果(会闪一下就消失了),php - phpStudy...

    微信公众号JS API支付,安卓没有效果(会闪一下就消失了) 代码如下,ios可以支付,但是到安卓手机上就会出现微信支付读条(那三个点),然后就消失了,没有跳出输入密码支付的界面.... //调用微信 ...

  5. PHP 支付PC端扫码支付、APP接口调起支付宝支付、微信公众号接入支付宝支付

    第一:第三方支付原理 第二:支付接口申请流程 地址:https://docs.open.alipay.com/270/105899/ : 参考地址:https://blog.csdn.net/nove ...

  6. HTML5微信支付和微信公众号内微信支付(VUE)

    实现html5微信支付以及微信公众号内微信支付 微信公众号内微信支付 首先进行微信授权获取code /*获取授权拿到code*/getCodeApi(state){//获取codelet urlNow ...

  7. python 微信公众号,微信小程序wechatpy的使用

    第一章 Python 微信公众号,小程序入门之wechatpy的使用 文章目录 第一章 Python 微信公众号,小程序入门之wechatpy的使用 前言 一.wechatpy是什么? 二.微信公众号 ...

  8. 微信公众号:微信H5页面JSAPI充值

    微信公众号:微信H5页面JSAPI充值,遇到的一些坑,以及解决方式. 首先说一下微信充值分为很多种:目前我所涉及到的只是APP支付.H5支付.JSAPI支付. 区别: 1.根据不同场景 APP支付:是 ...

  9. Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)

    Shopro商城无加密的开源源码(可用于自营+外包项目(多主体).可用于外包定制开发项目) shopro 商城,一款基于 uni-app 的前端模板商城.目前适配了(小程序+app+h5+公众号). ...

  10. Shopro商城,基于Fastadmin和Uniapp进行开发的多平台(微信公众号、微信小程序、H5网页、Android-App、IOS-App)购物商城

    Shopro商城 基于Fastadmin和Uniapp进行开发的多平台(微信公众号.微信小程序.H5网页.Android-App.IOS-App)购物商城,拥有强大的店铺装修.小程序直播.自定义模板. ...

最新文章

  1. sklearn GaussianNB(高斯朴素贝叶斯)模型使用RandomSearchCV获取最优参数及可视化​​​​​​​
  2. essyui php,Easyui Linkbutton 链接按钮_EasyUI 插件
  3. PyTorch 0.4新版本 升级指南 no_grad
  4. vue中使用keepAlive组件缓存遇到的坑
  5. android 片段,android – 将片段添加到片段中(嵌套片段)
  6. PHP5.3.8 + Mysql5.5.18 + Nginx1.1.8 安装使用感受
  7. Linq 入门系列 [Take,Skip,TakeWhile,SkipWhile]篇
  8. flash动画制作成品_Flash如何制作雪糕被吃掉的动画
  9. prometheus 筛选不同的cpu核心
  10. ext2文件系统源代码之ext2.h
  11. caxa画图怎么倒角_CAXA怎么画倒角和圆角?
  12. 面经:中国人民银行金融科技研究院
  13. WPF 自定义各类按钮样式
  14. 32位计算机装64位操作系统,电脑应该装32位还是64位系统?
  15. 云班课python答案_云班课测试题答案公众号
  16. PHPUnit袖珍指南 第六章 装置器
  17. word文件怎么另存
  18. htc 8x android,HTC 8X三款手机曝光:相机是重点 不支持SD卡
  19. 汪升华c语言答案,C语言程序设计教程/普通高等教育“十二五”规划教材
  20. 树的直径,树的重心,树的分冶

热门文章

  1. 人体姿态估计-评价指标(一)
  2. 2021年这些高频面试知识点最后再发一次,跳槽薪资翻倍
  3. ICPC 2019 徐州网络赛
  4. SimpleITK笔记本中ITK细分(Segmentation)介绍
  5. matlab显示sig,Matlab中LSSVM参数gam和sig2寻优范围如何确定以及寻优具体程序如何实现的问题...
  6. python爬取英雄联盟所有皮肤价格表_利用Python协程来爬取LOL所有英雄的皮肤高清图片...
  7. 在使用angular打包项目的时候 打包老是出错 内存溢出的解决办法
  8. 走出软件作坊:三五个人十来条枪 如何成为开发正规军 链接[收藏]
  9. 小程序制作预算_科普:小程序制作一个需要多少钱?
  10. javascript中使用枚举定义一个对象进行数据转换