项目中用到了支付功能,采用的是ping++实现的,上线运行一年多都很正常,但是最近突然出现有买家反映说不能进行支付的情况 通过了解和沟通之后发现发现是重复拉起失败,然后我们对问题进行了排查. 测试过程中我们的测试机重复拉起不管是支付宝还是微信都很正常,发生了很奇怪的问题.   于是对ping++的通过各种渠道对ping++订单号的规则做了详细的了解,总结结果如下:   一.非微信类渠道: ①.首次请求 Ping++ 返回的 Charge 对象,在接下来的 1 分钟内如果请求上来还是相同的订单信息…
无论采取模式一还是模式二,进行预支付ID获取的时候应当确保订单号的唯一性,否则就会造成第二次扫码后的重复提醒. 解决方案: 以预支付ID处理为例: 商城: 1.创建log_id数据表如:out_trade_no,time 2.发起预支付时,对表中对应的out_trade_no进行关闭订单操作,避免无效的空订单. 3.发起时对out_trade_no进行随机处理,如order_id.rand(1,99999).time(); 通过这三个步骤即可避免订单号重复的问题又可以有效删除无效订单.…
微信小程序下拉加载和上拉刷新两种实现方法 方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性             属性   类型                           描述 enablePullDownRefresh Boolean 是否开启下拉刷新,详见页面相关事件处理函数. 设置js里onPullDownRefresh和onReachBottom方法 属性    类型 描述 on…
(https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航 首页支持微信登陆,只有第8套模板支持(endv模板),后台配置后可显示,原版7套模板都不支持 非加密版本  微信支付:微信公众号(服务号), 微信登陆:微信开发者帐号>创建网站应用  源码仅供测试研究,正式使用请购买官方版本! 点击下载源码 完整功能:体验 每个登陆界面增加全局导航,站长工具.下拉登陆有微信.qq.手机等登陆功能,商铺导航可自定义等  …
代码地址如下:http://www.demodashi.com/demo/11110.html 一.准备工作 首先需要下载小程序开发工具 官方下载地址: https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html 目录结构说明 二.程序实现 1.运行开发工具 选择「本地小程序项目」 2.新建项目 3.开启接口域名免校验 4.运行效果 三.功能说明 1.通过page方式实现下拉刷新,上拉更多列表 onPullDownRefres…
小程序做得多了,有些常用功能就有必要记录一下 请看详解: 微信小程序之下拉触底时加载下一页 wxml参考: <scroll-view class='dataContainer' scroll-y bindscrolltolower="nextDataPage"> <block wx:for="{{userList}}" wx:key="index"> <text>这是一条数据:{{item.data}}<…
方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性 设置js里onPullDownRefresh和onReachBottom方法 下拉加载说明: 当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新. onPullDownRefresh(){ console.log('--------下拉刷新-------') wx.showNavigationBarLoadin…
业务需求: 业务需求是给订单列表添加分页功能,也就是上拉加载这种每次只请求加载固定数量的数据. 需求分析: 对业务来说就是简单的分页上拉加载,但是对于技术实现来说,除了要处理分页数据的累加加载,还要处理操作订单返回列表后需要更新列表数据以同步订单最新状态,其中的难点在于后者. 当然你可以直接重新初始化列表数据(请求加载第一页),但是小程序中会记忆数据重载之前的滚动位置,所以要进行处理使页面滚动到顶部.但是如果订单列表数据比较多,用户操作的订单在第一页之后,那么操作订单后返回列表查找之前操作的订单…
一.使用场景以及说明 使用场景:商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 说明:1.用户打开图文消息或者扫描二维码,在微信内置浏览器打开网页进行的支付. 2.商户网页前端通过使用微信提供的 JSAPI,调用微信支付模块.这种方式,适合需要在商户网页进行选购下单的购买流程. 二.准备工作 公共号支付需要提前在微信公共平台进行业务配置,包括设置支付授权目录.测试支付目录和白名单.设置JS接口安全域名以及设置授权回调页面域名. 1.进行微信…
一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开发者在调用这些接口时,都需要传入一个相同的参数 access_token,它是公众账号的全局唯一票据,它是接口访问凭证. access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存. access_token的存储至少要保留512个字符…
微信公众号支付官方demo错误, 公众号支付只能用在微信里,也就是微信内部浏览器. 1.到WxPayHubHelper.php文件 JsApi_pub()类下createOauthUrlForCode($redirectUrl)方法, 第二个参数 改为 $urlObj["redirect_uri"] = urlencode($redirectUrl); //对$url变量进行url编码 不然header重定向时无法获取订单号和金额 2.wx.jsapi.php这个文件在header重定…
前言 本篇主要记录微信支付中公众号及H5支付全过程. 准备篇 公众号或者服务号(并开通微信支付功能).商户平台中开通JSAPI支付.H5支付. 配置篇 公众号或者服务号中 -------开发-------开发者工具---------web开发者工具-------绑定为开发者 公众号或者服务号中 -------公众号设置--------功能设置   :填写业务域名.JS安全域名.网页授权域名 示例:pay.one.com 商户平台中--------产品中心-------开发配置------JSAP…
因项目没有PC站所以没有写电脑网站支付. Pay.php支付控制器 <?php // +---------------------------------------------------------------------- // | YFCMS [ WE CAN DO IT MORE SIMPLE ] // +---------------------------------------------------------------------- // | Copyright (c) 2…
前言 很久以来,一直想写一篇微信支付有关的总结文档:一方面是总结自己的一些心得,另一方面也可以帮助别人,但是因种种原因未能完全理解透彻微信支付的几大支付方式,今天有幸做一些总结上的文章,也趁此机会,将一年多以来的相关经验分享一下. 概述 1. 扫码支付 商户在pc端展示一个支付二维码,用户使用微信扫一扫功能,扫码后实现付款的支付方式. 2. 公众号支付 商户在微信APP内(微信浏览器)打开H5网页,通过微信支付实现付款的支付方式. 3. H5支付 商户在微信浏览器以外的手机浏览器打开H5网页,通…
返回目录 谈谈transactionId和out_trade_no 前一篇微信JSApi支付~坑和如何填坑文章反映不错,所以又写了个后篇,呵呵. 每个第三方在线支付系统中都会有至少两类订单号,其一为支付系统的订单号,我们称为transactionId,其二为商户平台的订单号,我们通常称为out_trade_no,这两个号一般用来对账,在第三方支付平台你可以通过这两个订单号来查询订单的状态,而在商户自己的网站后台,也可以查询它的状态,一般地,transactionId由支付系统生成,并在回调时转回…
最近公司有一个应用,用户可以在微信公众号上面下单,也可以在APP 中下单. 当用户在公共号上面下单时,微信支付成功可以返回微信支付单号,但是在APP 中用户微信支付时,个别时候会出现用户已经付款成功,却没有执行订单支付成功后的回调逻辑(比如修改业务系统中的订单状态为已付款). 显然在APP中微信支付的这种回调逻辑是不可靠的. (1)首先说明下为什么要拿到微信支付订单号 微信支付订单号是微信系统在支付成功后返回的订单号,比如这样的订单号:4007322001201705049543255213,…
微信app支付需要以下参数,类封装如下 public class WxPayModel { /// <summary> /// 应用ID /// </summary> public string appid { set; get; } = ""; /// <summary> /// 商户号 /// </summary> public string partnerid{ set; get; } = ""; /// <…
在微信公众号中访问手机网站,当需要调用支付时候无法使用H5支付,只有使用微信公众号支付,使用公众号支付用户必须关注该公众号同时该公众号必须开通公众号支付功能. 1.获取用户的OpenId ,参考之前写的随笔 https://www.cnblogs.com/jomzhang/p/9209241.html 2.微信公众号支付唤起需要一下几个参数 //定义参数名 string _appId = "appId"; string _nonceStr = "nonceStr";…
上一篇说到微信扫码支付,今天来分享下微信H5支付,适用场景为手机端非微信浏览器调用微信H5支付惊醒网站支付业务处理.申请开通微信H5支付工作不多做介绍,直接上代码. 首先是微信支付业务类(WxPayService)中的方法,传上必要的参数,该方法将会构造请求XML字符串到微信api接口,H5支付用到的是返回XML参数的mweb_url的值,控制器中的Aciton方法调用该业务层方法得到mweb_url的值,此时,前端ajax调用控制器返回mweb_url值,直接将window.localtion…
2018-08-13更新生成二维码的方法 在做微信支付前,首先要了解你需要什么方式的微信支付,目前本人做过的支付包含扫码支付.H5支付.公众号支付.App支付等,本人使用的是asp.net mvc core2.0框架开发,core技术目前国内用的不算多,所以本人总结使用asp.net mvc core开发微信支付的一些经验,之前都在博客园学习,没有写过文章,文笔差,欢迎指正. 首先定义个微信支付参数保存的类,本人定义类如下,具体参数意义就只有去参考微信官方文档了,后台接口开发都将用到这边的参数,…
不要直接使用demo中的notify.php,重写notify.php,继承WxPayNotify(可参考微信api),具体如下: require_once "WxPay.Api.php"; require_once 'WxPay.Notify.php'; class PayNotifyCallBack extends WxPayNotify { //查询订单 public function Queryorder($transaction_id) { $input = new WxPa…
一.微信公众号支付APIJS: 要完整的实现微信支付功能,需要前后端一起实现,还需要微信商户平台的配置.这里只是涉及服务端的代码. jar包:pom.xml <!-- ↓↓↓↓↓↓↓↓ 支付相关 ↓↓↓↓↓↓↓↓ --> <!-- http --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactI…
啥也不说了搬砖的都知道老板说是什么就是什么 最近我老板让饿哦做一个微信支付的功能  还带微信上面京东众筹活动的那种,我买东西别人出钱的那种 然后用微信支付 我是新手之前也没有做过这个 所以估计着过程中肯定遇到很多问题 所以专门开个一个文档记录下来开发中遇到的问题 供交流用 首先了我自己先看了一下文档 知道了我的这种支付是属于公众号支付的那种 就是公众号支付.公众号支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付.应用场景有: ◆ 用…
定位至 CODE /** * 将xml转为array * @param string $xml * @throws WxPayException */ public static function Init($xml) { $obj = new self(); $obj->FromXml($xml); return 123; return $obj; //fix bug 2015-06-29 if($obj->values['return_code'] != 'SUCCESS'){ retur…
图解微信小程序---实现页面的跳转与返回操作 代码笔记 操作步骤 第一步:在app.json配置文件中,创建跳转页面 第二步:编写首页跳转(注意跳转方式,和设置点击样式类名) 第三步:编写首页样式 第四步:编写nv页面 第五步:编写nv页面样式 第六步:因为首页使用了 ?占位符进行传参,所以编写js获取参数 第七步:编写re页面(需要设置返回跳转,因为跳转过来时,设置了open-type属性值为redirect) 第八步:编写re页面样式 第九步:因为首页跳转过来了也传递了参数,所以编写js获取…
必要参数:      1) AppID,AppSecret : 在微信公众号后台管理—>(菜单栏)开发 —> 基本设置     2)商户号 :在微信公众号后台管理—>(菜单栏)微信支付—> 商户号管理           3)商户秘钥 :在微信商户平台(可直接点击上图的“查看”)商户平台 —> 产品中心 —> 开发配置  基本配置:       1)IP白名单:a.测试电脑的ip地址,b.存放WebApi的服务器电脑ip地址     2)商户平台-->产品中心--…
我也是被坑就当留个纪念 前两天查了各种关于微信app支付返回-1的都是ERR_COMM 问题然后各种 验证最后还是误解 第三天去验证了一下微信开放平台发现了问题 appid 不在同一个开放平台 项目之前要做微信登 录上了一个开放平台,后来要做支付,负责支付申请的又单独开了一个开放平台在里面又重新 添加了应用,重新生成了appid ,项目一直是用的第一个开放平台的appid,所以没对上,更换 到申请了支付的开放平台上的appid 问题解决.…
当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上. 请注意: 1.关于重试的消息排重,推荐使用msgid排重. 2.微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次.假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试.详情请见“发送消息-被动回复消息”. 3.为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密.开启加密后,用户发来的消息会被加密,公众号被…
------------------------微信支付接口------------------------------- 微信支付开发并没有想象中的那么难,主要是微信提供了sdk. 微信公众号必须是服务号,并且通过微信认证. 满足上诉条件后,在微信公众账号平台上就会出现一个微信支付的管理模块. 下载微信支付的sdk 然后打开wx.payconfig.php 根据上面提示,配置这里的数据. 然后再jsapi.php文件中查看代码 代码执行主要执行两步 ①首先获取用户的open_id ②然后通过统…
微信小程序里没有和HTML里的下拉框一样的组件,想要相同的效果只能自己写一个,先看效果 下面来看一下代码: 首先WXML <view class='select_box'> <view class='select' catchtap='selectTap'> <text class='select_text'>{{selectData[index]}}</text> <image class='select_img {{show&&&q…