• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php对微信支付回调处理的方法
    POST TIME:2021-10-18 04:52

    应用场景

    支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。

    对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功。 (通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)

    注意:同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。

    推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

    特别提醒:商户系统对于支付结果通知的内容一定要做签名验证,并校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。

    微信支付回调处理分为

    1.同步
    2.异步

    这里微信官方推荐使用 第二种

    php对微信回调异步处理

    //获取返回的xml
    $testxml = file_get_contents("php://input");
    //将xml转化为json格式
    $jsonxml = json_encode(simplexml_load_string($testxml, 'SimpleXMLElement', LIBXML_NOCDATA));
    //转成数组
    $result = json_decode($jsonxml, true);
    if($result){
         //如果成功返回了
         if($result['return_code'] == 'SUCCESS'  $result['result_code'] == 'SUCCESS'){
         //进行改变订单状态等操作。。。。 
      }
    }
    
    

    本次微信支付返回的xml转化为json格式如下:

    {
      "appid": "12345",
      "attach": "pay",
      "bank_type": "CFT",
      "cash_fee": "1",
      "fee_type": "CNY",
      "is_subscribe": "Y",
      "mch_id": "12345",
      "nonce_str": "dZYFpaDYRpF5rwhv",
      "openid": "onhwF1hiutUySKCsrV21A6MCtT5Q",
      "out_trade_no": "SH201808222055598628",
      "result_code": "SUCCESS",
      "return_code": "SUCCESS",
      "sign": "5A019F52BEF1C3A98AE0F1FF29D01574",
      "time_end": "20180822205606",
      "total_fee": "1",
      "trade_type": "MWEB",
      "transaction_id": "4200000171201808221550954201"
    }
    

    其中

    "result_code": "SUCCESS",
    "return_code": "SUCCESS",
    

    是判断用户是否已经支付的依据

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • springboot整合微信支付sdk过程解析
    • Android自定义View实现微信支付密码输入框
    • 微信小程序与webview交互实现支付功能
    • Vue实现微信支付功能遇到的坑
    • 微信小程序调用微信支付接口的实现方法
    • java实现微信支付结果通知
    • 快速对接payjq的个人微信支付接口过程解析
    上一篇:PHP封装的验证码工具类定义与用法示例
    下一篇:php获取微信基础接口凭证Access_token
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信