首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微信支付notify.php

微信支付 notify.php 是微信支付回调通知的处理文件,用于接收微信支付服务器发送的支付结果通知。当用户完成支付后,微信支付服务器会向商户服务器发送一个异步通知,告知支付结果。商户服务器需要正确处理这个通知,以确认支付状态并更新订单状态。

基础概念

  1. 回调通知:微信支付服务器在用户支付完成后,会向商户服务器发送一个HTTP请求,通知支付结果。
  2. 异步通知:这种通知方式是异步的,即微信支付服务器不会等待商户服务器的响应。
  3. 签名验证:为了确保通知的真实性,微信支付服务器会对通知内容进行签名,商户服务器需要验证签名以确保通知来自微信支付服务器。

相关优势

  1. 实时性:异步通知可以实时告知支付结果,商户可以及时更新订单状态。
  2. 安全性:通过签名验证,可以有效防止伪造通知。
  3. 可靠性:微信支付服务器会多次发送通知,确保商户能够接收到。

类型

微信支付回调通知主要分为两种类型:

  1. 支付成功通知:用户支付成功后,微信支付服务器发送的通知。
  2. 支付失败通知:用户支付失败后,微信支付服务器发送的通知。

应用场景

  1. 订单状态更新:根据支付结果更新订单状态,如将订单状态从“待支付”更新为“已支付”。
  2. 通知用户:根据支付结果通知用户支付成功或失败。
  3. 财务对账:记录支付结果,便于后续财务对账。

常见问题及解决方法

1. 通知未收到

  • 原因:可能是服务器防火墙阻止了微信支付服务器的请求,或者服务器配置有问题。
  • 解决方法:检查服务器防火墙设置,确保微信支付服务器的IP地址被允许访问;检查服务器配置,确保能够正确处理HTTP请求。

2. 签名验证失败

  • 原因:可能是签名算法不正确,或者签名参数有误。
  • 解决方法:仔细检查签名算法,确保与微信支付文档一致;检查签名参数,确保所有必要参数都正确无误。

3. 通知处理失败

  • 原因:可能是处理通知的代码有误,或者服务器响应超时。
  • 解决方法:检查处理通知的代码,确保逻辑正确;优化服务器响应时间,确保能够及时处理通知。

示例代码

以下是一个简单的 notify.php 示例代码,用于处理微信支付回调通知:

代码语言:txt
复制
<?php
// 引入微信支付SDK
require_once 'wxpay/WxPay.Api.php';
require_once 'wxpay/WxPay.Notify.php';

class PayNotifyCallBack extends WxPayNotify
{
    // 查询订单
    public function QueryOrder($transaction_id)
    {
        $input = new WxPayOrderQuery();
        $input->SetTransaction_id($transaction_id);
        $result = WxPayApi::orderQuery($input);
        if (array_key_exists("return_code", $result)
            && array_key_exists("result_code", $result)
            && $result["return_code"] == "SUCCESS"
            && $result["result_code"] == "SUCCESS") {
            return true;
        }
        return false;
    }

    // 处理通知
    public function NotifyProcess($data, &$msg)
    {
        $notfiyOutput = array();

        if (!array_key_exists("transaction_id", $data)) {
            $msg = "输入参数不正确";
            return false;
        }

        // 查询订单,判断订单真实性
        if (!$this->QueryOrder($data["transaction_id"])) {
            $msg = "订单查询失败";
            return false;
        }

        // 处理业务逻辑
        // TODO: 更新订单状态等操作

        $notfiyOutput["return_code"] = "SUCCESS";
        $notfiyOutput["return_msg"] = "OK";
        return $notfiyOutput;
    }
}

$notify = new PayNotifyCallBack();
$notify->Handle(false);
?>

参考链接

通过以上内容,您可以了解微信支付 notify.php 的基础概念、相关优势、类型、应用场景以及常见问题及解决方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

微信支付之微信小程序支付

这些值在商户申请成功之后都会通过邮件的形式发送给商户,所以如果还没有拿到这些值的情况下,是不能够进行微信支付的。 上面的那些值全部拿到之后,我们就可以开始微信支付开发了。...微信支付的流程大致分为四步骤: 1.在小程序中获取用户的登录信息,成功后可以获取到用户的code值 2.在用户自己的服务端请求微信获取用户openid接口,成功后可以获取用户的openid值 微信官方...api地址:点击打开链接 3.在用户自己的服务器上面请求微信的统一下单接口,下单成功后可以获取prepay_id值 微信官方api地址:点击打开链接 4.在微信小程序中支付订单,最终实现微信的支付功能...最后也是最关键的一步就是小程序里面的微信支付过程了,官方支付的代码是: wx.requestPayment( { 'timeStamp': '', 'nonceStr': '', 'package':...最后支付还是需要我们真实用手机付钱才可以,支付的最小单位可以是1分钱,测试的时候我们支付一分钱就可以了。 这样微信小程序支付的整个过程就好了,大致的流程就是上面说的这样。

4.4K51

微信支付之微信小程序支付

今天给大家介绍一下微信小程序是如果实现支付的流程,在开发之前我们首先要获取到商户的appId和mchId最后就是商户的key值了。...这些值在商户申请成功之后都会通过邮件的形式发送给商户,所以如果还没有拿到这些值的情况下,是不能够进行微信支付的。 上面的那些值全部拿到之后,我们就可以开始微信支付开发了。...微信支付的流程大致分为四步骤: 1.在小程序中获取用户的登录信息,成功后可以获取到用户的code值 微信官方api地址:点击打开链接 微信官方api地址:点击打开链接 4.在微信小程序中支付订单,最终实现微信的支付功能...微信官方api地址:点击打开链接 具体的流程图如下所示: 下面我们就开始详细的介绍一下微信支付的整个流程: 首先是获取用户的信息,也就是小程序中的登录接口: [javascript]view plaincopy...最后也是最关键的一步就是小程序里面的微信支付过程了,官方支付的代码是: [javascript]view plaincopy wx.requestPayment( { 'timeStamp':'', '

5.7K51
  • java调用微信支付接口(调用微信支付)

    Java 使用微信支付 前言百度搜了一下微信支付,都描述的不太好,于是乎打算自己写一个案例,希望以后拿来直接改造使用。 因为涉及二维码的前端显示,所以有前端的内容 一....准备工作 所需微信公众号信息配置 APPID:绑定支付的APPID(必须配置) MCHID:商户号(必须配置) KEY:商户支付密钥,参考开户邮件设置(必须配置) APPSECRET:公众帐号secert...WxPayUtils.WX_PAY_PARTNER); m.put("nonce_str", WXPayUtil.generateNonceStr()); m.put("body","微信支付测试...WxPayUtils.WX_OPEN_NOTIFY_URL);//回调地址 m.put("trade_type", "NATIVE");//生成二维码的类型 //3 发送httpclient请求,传递参数xml格式,微信支付提供的固定的地址...查询订单信息的写法和生成二维码的方式差不多 无非就是请求时少了几个参数,必须得带上订单号 微信提供的查询订单接口返回数据中 trade_state 代表支付状态 notpay没有支付,seccess表示已成功

    6.2K60

    微信支付支付宝支付

    微信支付 微信支付-开发者文档 (qq.com) # 微信支付相关参数 # 商户号 wxpay.mch-id= # 商户API证书序列号 wxpay.mch-serial-no= # 商户私钥文件 (...sucess"); }else { log.info("失败"+statusCode+" 返回体"+bodyAsString); // 微信支付出现问题...对更改状态进行加锁,以防止同时到达两条请求 这里验签时用户WechatPay2ValidatorForRequest,是通过更改微信sdk的WechatPay2ValidatorForResponse...// 验签 // 签名: 就微信的私钥对信息加密 // 加密: 用微信的公钥解密 WechatPay2ValidatorForRequest wechatPay2ValidatorForRequest...调用微信退款api 解析响应体,看看是否发送退款成功;如果发送成功,则更新本地订单状态(退款中),并更新退款单 请求封装参数 //构建参数 Gson gson=new Gson(); HashMap

    62420

    【java微信支付】微信支付之扫码支付相关代码

    最近开发网站过程,需要引入支付过程,第三方支付中最火的莫过于支付宝支付和微信支付,下边借助微信支付官网上的文档,写一下接入微信支付之扫码支付的流程 相对支付宝支付而言,微信支付的开发文档写的相当的...(2)用户确认支付后调用微信支付【统一下单API】生成预支付交易; (3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。...(5)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。 (6)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。...(7)用户在微信客户端输入密码,确认支付后,微信客户端提交授权。 (8)微信支付系统根据用户授权完成支付交易。...(9)微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。 (10)微信支付系统通过发送异步消息通知商户后台系统支付结果。

    4.7K20

    微信支付之微信退款

    ---- 官方文档 无论刷卡支付、微信公众号支付、扫码支付、H5支付、APP支付等都有申请退款API并且接口一样,本篇文章就拿刷卡支付中的申请退款API文档举例 应用场景 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时...,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。...注意事项 交易时间超过一年的订单无法提交退款 微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。...50次 下载证书 参考安全规范-3.商户证书 下载:微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全-->证书下载 IJPay 中的接口 https://github.com...[CDATA[4200000100201801133414066940]]> 微信支付、支付宝支付博客专栏 如有疑问欢迎留言交流讨论

    8.4K11

    微信支付实例

    1,导入微信的libs包libammsdk.jar; 2,测试时使用weixinDemo中的debug_keystore; 3,需要注意应用要通过审核,并且几个Key值正确,一下为微信支付Demo中的值...: //微信公众平台id; privateString app_wx_appid=WxConstants.app_wx_appid; //微信开放平台和商户约定的密钥 privateString app_wx_secret_key...商家向财付通申请的商家id */ privateString app_tx_parent_key = "1900000109"; ========================================== 根据微信支付...Demo,微信支付分为三步: 第一步,获取accessToken,accessToken值第二步要用; privateclassGetAccessTokenTask extendsAsyncTask<void...1 第三步:在项目下新建一个包wxapi,建立一个类名为WXPayEntryActivity作为接受微信的支付结果,不过最终结果以服务器的返回为准notify_url: packagenet.sourceforge.simcpux.wxapi

    2.7K50

    微信JSAPI支付

    最近接到新的需求,需要在公众号引入微信支付。之前微信支付方式使用过Native当面付以及H5支付。...Native支付有两个弊端所在: 其一,Navicat支付最终会生成一个微信端链接,格式为:weixin://xxx,我们微信直接访问链接没毛病成功打开支付界面,但是支付的时候就报错了:...在H5项目中我们一直正常使用H5微信支付,接到公众号支付的时候第一反应直接使用H5支付,这样用户使用浏览器打开一样可以使用微信支付,但是当我们支付接入才发现H5支付的弊端:只能在外部浏览器使用H5支付,...在微信内无法使用微信支付。...当我们完成支付的时候,微信服务器会异步执行我们统一订单接口设置的回调方法,回调方法需要特别注意的是微信回调给微信端返回格式为xml格式: ?

    4.2K50

    android微信支付

    :+’ 微信开放平台 https://open.weixin.qq.com/ 微信android开发手册 https://open.weixin.qq.com/cgi-bin/showdocument?...chapter=8_5 首先要在微信开放平台申请你的AppID 注意: #####包名正确(重要) #####签名正确(重要) 微信提供的签名生成工具 把包名添加上去就可以获取签名 注意:把要获取签名的应用安装在手机上...action=dir_list&t=resource/res_list&verify=1&id=open1419319167&lang=zh_CN #####开始接入微信支付 1.在项目中引入微信开发包...: 检查签名是否正确 包名是否与微信后台配置的一致 检查是否添加权限 检查代码 是否在初始化时注册微信 是否正确发送请求 微信支付调用起来没有回调: 查看包名是否正确 类名是否正确 在AndroidManifest.xml...是否注册activity 解决方法: 实在掉不起来微信(包名正确签名正确)就重新安装微信客户端 和重新安装 测试项目

    2.4K20

    微信支付案例

    微信支付 微信支付分为微信扫码支付和移动端支付,开始说说微信移动端支付吧 一、微信移动端发起支付 类在类文件weixin移动端 WechatPayment,现在开始进行实例化 并进行发起支付操作,代码如下...这个package参数才是发起支付的关键,在js代码会使用到这个参数,代码如下 首先引入支付js脚本文件 package 传入进去就可以了,不行的话进行eval 二、微信PC端发起扫码支付 类在类文件下weixinPc端 方法如下: $gateorder 是订单信息...,想你所想,传你所传,主要注意的是qrcodeurl地址,这是张二维码图片,用来进行微信扫码的。...支付成功之后会有通知地址,也就是SetNotify_url,没有return只有notify.支付宝才会有return。方法如下: 接收到数据之后你想怎么处理就怎么处理

    1.8K20

    微信开放平台申请 – 微信支付

    image.png 注意: 需要APP的截图,涉及到微信登录、微信支付的页面 APP所属 类目要准确 有介绍网站。需要等待审核1-7天。一般是1天(第二天)就行了!...image.png 4、应用审核完毕,让自己的每个应用去签约微信登录(登录好像是默认签约)、支付的接口。 image.png 5、就可以正常开发了。...6、商户号关联后才可以实现移动应用中使用微信支付收款。 image.png 要记得商户号 以及商户名称,用于后续API安全认证!...7、要去商户平台 – 账户中心 -API安全 image.png 申请API证书 需要下载“微信支付商户平台证书工具V1.3”输入商户号 、商户名称生成 请求串!...粘贴至API安全的申请API证书中,输入操作密码 得到证书串 输入至“微信支付商户平台证书工具V1.3”即可得到证书文件! 证书文件暂时没啥用,需要的是我们的API密钥,自己创建一个即可。

    10.6K10

    支付系列:微信支付前准备

    如果想要开通支付就必须要开通服务号 服务号是什么? 订阅号即使是认证的,也没有微信支付的申请的权限,登陆微信公众平台,在左侧列表没有申请微信支付这一搜索栏目。...服务号是针对于组织的,组织包括 政府、媒体、企业、其他组织 几个选项,开发中经常碰到的是企业类型的,开通服务号需要提供企业的一些资料, 还要每年交300元人民币,整个申请过程还是比较耗时的,相对于支付宝可是麻烦多了...申请前准备 登陆用邮箱(提供一个未绑定微信的邮箱)及密码; 企业名称、营业执照注册号(营业执照)、营业执照照片、公章; 运营者信息登记:身份证姓名、身份证号码、手机号、运营者微信扫码绑定(此微信需要绑定运营者本人的银行卡...填写所需要的信息,填写公众号名称 申请微信认证 ? 填写认证资料 ? 确认公众号名称 ? 支付认证费用之后等待审核 ?

    1.3K20

    Java调用微信支付

    准备工作 所需微信公众号信息配置 APPID:绑定支付的APPID(必须配置) MCHID:商户号(必须配置) KEY:商户支付密钥,参考开户邮件设置(必须配置) APPSECRET:公众帐号secert...依赖中需要注意的是我导入了微信提供的sdk,以及freemarker模板引擎 3....WxPayUtils.WX_PAY_PARTNER); m.put("nonce_str", WXPayUtil.generateNonceStr()); m.put("body","微信支付测试...WxPayUtils.WX_OPEN_NOTIFY_URL);//回调地址 m.put("trade_type", "NATIVE");//生成二维码的类型 //3 发送httpclient请求,传递参数xml格式,微信支付提供的固定的地址...,用的qrcode插件,生成 然后设置定时器,来实时查询订单是否支付 查询订单信息的写法和生成二维码的方式差不多 无非就是请求时少了几个参数,必须得带上订单号 微信提供的查询订单接口返回数据中 trade_state

    1.9K41

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券