微信开发

微信支付之扫码支付开发:我遇到的坑及解决办法(附:Ecshop 微信支付插件)

本小妞迷上赌 提交于 2020-02-12 04:53:04
前段时间帮一个朋友的基于ecshop开发的商城加入微信扫描支付功能,本以为是很简单的事儿——下载官方sdk或开发帮助文档,按着里面的做就ok了,谁知折腾了两三天的时间才算搞定,中间也带着疑问在网上找了不少技术文章,却发现都只是比较粗略的写他们是怎么开发接入的,并没有解决我遇到的问题...,唉,有时候真心的感觉‘只能靠自己’。本文就是想把自己遇到的问题及解决办法写出来,让做这方面开发的朋友有所帮助!   开发之前,先查看官方 【扫码支付】开发文档 ,扫码支付分为以下两种模式:   △ 模式一:    遇到的问题:第一次扫描二维码还能正常扫描,未付款再次扫描会提示:ok 或 请求商户信息超时HttpCode非200 ——此问题尝试通过各种途径寻找解决办法都无果,在这里希望有知道朋友能给与解答,谢谢!   △ 模式二:    注意: 不可以直接用商城的订单号作为交易订单号(out_trade_no),否则再次生成微信扫码支付二维码时,接口会提示: 商户订单号重复 ,无法重新生成。   那么酱紫问题来了,应该怎样设置交易订单号,还能保证后面通过接口查询微信商户平台里的相应订单信息或实现对账?可行的办法是:扫码之前的统一下单接口,out_trade_no不要传入商城订单系统的订单号,而是重新生成一个新的唯一流水;再增加一个订单号和微信支付交易订单号(out_trade_no)对应表,如下:

本地微信公众号开发调试配置

牧云@^-^@ 提交于 2020-02-08 15:45:50
第一步 欺骗微信开发者工具,让对应域名解析到本地主机ip(127.0.0.1) 改host文件,底部添加127.0.0.1 对应域名 第二步 用到微信jsApi时,微信开发者工具不认带端口的地址,所以需要通过nginx,将对应域名反向代理到本地主机ip地址全称(127.0.0.1:开发端口) 下载nginx,修改nginx.conf,在http {}内添加如下代码 server { # 指定端口(nginx默认监听的端口,不用管) listen 80; # 修改位置——被代理的对应域名 server_name bag.kdk56.top; location / { # 修改位置——代理到的开发地址 proxy_pass http://127.0.0.1:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0

微信公众号开发之如何一键导出微信所有用户信息到Excel

最后都变了- 提交于 2020-02-08 05:33:36
微信开发交流群:148540125 系列文章参考地址 极速开发微信公众号 欢迎留言、转发、打赏 项目源码参考地址 点我点我--欢迎Start 极速开发微信公众号系列文章之如何一键导出微信所有用户信息到Excel 前方高能警告⚠️:用户信息导出我们需要使用以下权限以及接口 权限:必须微信认证(测试号也是可以的) 接口:1、 获取用户列表 2、 获取用户基本信息 以上链接点击可以查看相关文档 本文中用户导入到excel使用的是jxl,当然大家可以使用poi。如果不会使用jxl可以参考我之前写的 Java实现Excel导入数据库,数据库中的数据导入到Excel 好了,准备工作做好了那就开干吧!!!! 实现的目标:访问一个地址可以下载一个保存最新所有用户详细信息的Excel,最终效果图如下 将详细的用户信息(List)保存到Excel /** * 将详细的用户信息保存到Excel * @param userInfos * @return */ private File saveToExcel(List<UserInfo> userInfos){ File file=null; try { WritableWorkbook wwb = null; // 创建可写入的Excel工作簿 String fileName = "用户详细信息.xls"; file=new File(fileName)

微信公众号开发之网页授权登录及code been used 解决!

眉间皱痕 提交于 2020-02-07 03:21:30
首先微信公众号开发网页授权登录使用环境: 开发工具:eclipse;服务器:tomcat8,开发语言:JAVA。 我写的网页授权登录时用开发者模式自定义view类型按钮点击跳转链接的。 微信网页授权登录首先以官方微信开发文档为准,大体共分为4步: 先说第一步获取code: code说明: code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5扽这未被使用自动过期。 微信公众开发文档给的有获取code的链接, 建议直接复制来用 ,然后替换其中相应的参数即可。 链接为: https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 其中参数说明: 这官网上都有,这里展示是想说明一下scope参数,请注意看官网上给出的demo: 请注意微信授权登录scope两种redirect_url后面跟的链接使用的协议。 这个协议使用不当可能会在项目部署到服务器上测试时在安卓和ios上出现问题。 至此, 以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的

微信小程序开发笔记⑤——事件、音频(音乐)组件、movable-area组件和cover-view组件

北慕城南 提交于 2020-02-06 01:10:18
事件 官网描述 https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/event.html 在小程序中存在两种事件,分别是冒泡事件和非冒泡事件: 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。 bind事件 bind事件属于冒泡事件 < view bindtap = ' bind1 ' > view1 < view bindtap = ' bind2 ' > view2 </ view > </ view > bind1 : function ( ) { console . log ( "bind1" ) ; } , bind2 : function ( ) { console . log ( "bind2" ) ; } catch事件 catch事件属于非冒泡事件 < view bindtap = ' bind1 ' > view1 < view catchtap = ' bind2 ' > view2 </ view > </ view > 在同一级中,catch事件会比bind事件先被捕捉 事件的参数,事件默认可以传递一个event对象 这个event对象包含了事件的一些信息 我们还可以在页面上传递一些参数,通过

微信小程序开发笔记⑥——rich-text(富文本框)组件、progress(进度条)组件和video(视频)组件

倖福魔咒の 提交于 2020-02-06 01:06:44
rich-text 富文本框,可以直接写html,并且会进行解释 官方描述 https://developers.weixin.qq.com/miniprogram/dev/component/rich-text.html 主要通过nodes属性传进去我们需要写的东西,一般可以直接传递一串html文本,如下 < rich-text nodes = " {{html}} " > </ rich-text > data : { html : "<h1>标签</h1>" , } 还可以传递json格式的数据,通过规定的语法输出我们需要的html文本,具体格式可以参考手册,示例如下 < rich-text nodes = " {{nodes}} " > </ rich-text > data : { html : "<h1>标签</h1>" , nodes : [ { name : "h4" , attrs : { style : "color:red;" } , children : [ { type : "text" , text : "节点列表" } ] } ] } , progress 进度条组件 官方描述 https://developers.weixin.qq.com/miniprogram/dev/component/progress.html 下面是一个简单的进度条 <

微信小程序开发笔记⑦——form组件、表单控件、navigator(跳转)组件和camera(相机)组件

☆樱花仙子☆ 提交于 2020-02-06 01:03:47
form组件 官方描述 https://developers.weixin.qq.com/miniprogram/dev/component/form.html 下面是一个简单的表单 < form bindsubmit = " formsubmit " bindreset = " formreset " > < input name = " inputValue " placeholder = " 请输入 " > </ input > < button form-type = " submit " > 提交 </ button > < button form-type = " reset " > 重写 </ button > </ form > formsubmit : function ( event ) { console . log ( event ) console . log ( event . detail . value . inputValue ) } , 提交事件触发,可以发现这个是根据input的name属性取的值 表单控件 表单中存在许多控件帮助我们实现多种形式的表单填写。 官方描述 https://developers.weixin.qq.com/miniprogram/dev/component/button.html 下面是简单的示例

微信小程序开发笔记⑨——downloadFile(下载)接口、request(请求)接口、uploadFile(上传)接口和websocket组件

穿精又带淫゛_ 提交于 2020-02-05 21:36:13
网络api downloadFile接口 官方描述 https://developers.weixin.qq.com/miniprogram/dev/api/network/download/wx.downloadFile.html 下面实现了文件的下载和下载过程中部分参数的获取,使用的是downloadFile接口 < view > < button bindtap = " downloadFile " > 下载 </ button > </ view > downloadFile : function ( ) { // 把文件下载到一个临时文件中 const downloadTask = wx . downloadFile ( { url : 'http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400' ,

iOS开发微信支付的介绍与实现

纵然是瞬间 提交于 2020-02-05 16:48:44
1、前期准备 1) 到 微信开放平台 注册账号 需要登录邮箱验证 填写您的商户信息 2) 进入管理中心 --- 移动应用 --- 创建移动应用 --- 根据页面完善应用资料 3) 审核过后,通过应用详情页面,查看应用详情,查看AppID和AppSecret相关信息 4) 创建这些是没有支付能力的,需要额外申请,还是根据提示一步步填写,填写完之后会发一封邮件到您的预留的邮箱,然后到商户平台点击打开链接填写资料,最主要的是验证下开户收款账号,会收到一波几分钱的巨额财产,那么这个时候如果你填写的是你的开户账号,直接跑路吧,这些钱够你在深圳买房了。。。。。。如果你是个好人,那么找你们财务验证下是否有收到,就代表通过了,愉快的代码时间来了. 2、实现过程 步骤1: 用户在商户APP中选择商品,提交订单,选择微信支付。 步骤2: 商户后台收到用户支付单,调用微信支付统一 下单接口 。 步骤3: 统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay 步骤4: 商户APP调起 微信支付 。 步骤5: 商户后台接收 支付通知 。 步骤6: 商户后台查询 支付结果 。 3、代码部分 代码地址 3

微信小程序开发笔记⑩——音频与录音api、背景音频组件api、图片api、加载外部字体和文件api

时光毁灭记忆、已成空白 提交于 2020-02-05 13:55:24
音频和录音 官方描述 https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/api-limit.html#录音 https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/api-limit.html#音频播放控制 下面实现了一个简单的ktv的功能 < view > < button bindtap = " record " > 录制5秒音频 </ button > < button bindtap = " playVoice " > 播放录音 </ button > < button bindtap = " pauseVoice " > 暂停音频 </ button > </ view > 其中record、pauseVoice和playVoice函数实现了录音、暂停音频和播放音频的功能,在onReady生命周期函数中我们可以选择需要播放的背景音乐。 // pages/record/record.js var tempFilePath = "" Page ( { /** * 页面的初始数据 */ data : { } , record : function ( ) { console . log ( "录制音频开始" ) //