//查询订单是否存在
public function userOrderCheck(){
    
        $out_trade_no=  input("out_trade_no");   //订单号
        $type=  input("type"); //类型 1 充值,2 商城订单

$appid  = 'XXXXXX';//小程序openid
 
        $secret = 'XXX';  //小程序secret
        $mch_id = 'XXXXX'; //商户id
        $paykey = 'XXXX';  //V2 密钥
        $access_token = $this->get_access_token_a();
        $url = 'https://api.mch.weixin.qq.com/pay/orderquery';
        //这里是按照顺序的 因为下面的签名是按照(字典序)顺序 排序错误 肯定出错
        $post['appid'] = $appid;
        $post['mch_id'] = $mch_id;
        $post['nonce_str'] = md5(mt_rand(0,1000));//随机字符串
        $post['out_trade_no'] = $out_trade_no;//微信支付记录订单号
        $sign = $this->MakeSign_a($post,$paykey);              //签名
        $post_xml = '<xml>
                       <appid>'.$appid.'</appid>
                       <mch_id>'.$mch_id.'</mch_id>
                       <nonce_str>'.$post['nonce_str'].'</nonce_str>
                       <out_trade_no>'.$post['out_trade_no'].'</out_trade_no>
                       <sign>'.$sign.'</sign>
                    </xml>';
        $xml = $this->https_request_a($url,$post_xml);
        $result = $this->xml2array_a($xml); 
     
        if($result["return_code"] =="SUCCESS" && $result["result_code"]=="SUCCESS"){
           //自己的业务逻辑

}   
        
}

//获取token
    public function get_access_token_a(){

$appid  = '';   //小程序openid
 
        $secret = 'xxxx';
        $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret;
        $res = $this->https_request_a($url,'');
        $access_token1=json_decode($res,true);
        $access_token = $access_token1['access_token'];
        return $access_token;
    }
    
       /**
     * 将参数拼接为url: key=value&key=value
     * @param $params
     * @return string
     */
    public function ToUrlParams_a( $params ){
        $string = '';
        if( !empty($params) ){
            $array = array();
            foreach( $params as $key => $value ){
                $array[] = $key.'='.$value;
            }
            $string = implode("&",$array);
        }
        return $string;
    }
    
      /**
     * 生成签名, $KEY就是支付key
     * @return 签名
     */
    public function MakeSign_a( $params,$KEY){
        //签名步骤一:按字典序排序数组参数
        ksort($params);
        $string = $this->ToUrlParams_a($params);  //参数进行拼接key=value&k=v
        //签名步骤二:在string后加入KEY
        $string = $string . "&key=".$KEY;
        //签名步骤三:MD5加密
        $string = md5($string);
        //签名步骤四:所有字符转为大写
        $result = strtoupper($string);
        return $result;

}
    
    
    //获取xml里面数据,转换成array
    private function xml2array_a($xml) {
        if(!$xml) {
            throw new RuntimeException('xml 数据异常转换失败!!');
        }
        $map = array();
        libxml_disable_entity_loader(true);
        $map = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
        // var_dump($map);
        return $map;
    }
    
    
    //post请求
    public function https_request_a($url,$data = null){
        if(function_exists('curl_init')){
          $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
            curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
            if (!empty($data)){
                curl_setopt($curl, CURLOPT_POST, 1);
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            }
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            $output = curl_exec($curl);
            curl_close($curl);
            return $output;
        }else{
          return false;
        }
    }

}

微信支付查询订单V2 接口相关推荐

  1. java微信支付v3系列——6.微信支付查询订单API

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  2. 微信支付查询订单java_微信支付java版本之查询订单

    本文实例为大家分享了微信支付订单的查询接口,供大家参考,具体内容如下 1.接口简介 2.代码实现 package com.zhrd.bussinss.platform.controller.shop; ...

  3. 开源PHP微信通用sdk,支持微信支付及所有基础接口(强烈推荐)

    PHP微信通用sdk,支持微信支付及所有基础接口 WeChatDeveloper for PHP 功能描述 技术帮助 代码仓库 文件说明(后缀会根据官方文档增加文件) 安装使用 微信支付 支付宝支付 ...

  4. 微信支付java版v2.0_刷卡支付-翟东平-专题视频课程

    微信支付java版v2.0_刷卡支付-1814人已学习 课程介绍         微信支付系列课程将讲解"刷卡支付"."扫码支付"."公众号支付&qu ...

  5. 电商平台接入第三方支付接口之微信支付接入订单系统

    边做边更新------ 先接入微信接口: 支付方式:用户扫描二维码支付 接口类型:扫码支付之模式二 先copy一份模式二的业务流程时序图 业务流程说明: (1)商户后台系统根据用户选购的商品生成订单. ...

  6. 微信小程序云开发微信支付、订单查询、申请退款

    微信小程序云开发微信支付 使用云开发微信支付功能的前提 统一下单 查询订单 申请退款 常见问题总结: 使用云开发微信支付功能的前提 小程序主体为企业或者工商个体户 小程序完成了微信认证 小程序接入微信 ...

  7. 浅析微信支付:统一下单接口

    本文是[浅析微信支付]系列文章的第五篇,主要讲解如何调用统一下单接口生成预支付单及调起支付页面. 浅析微信支付系列已经更新四篇了哟-,没有看过的朋友们可以看一下哦. 浅析微信支付:微信公众号网页授权 ...

  8. 电商第三方支付微信支付接入订单系统

    先接入微信接口: 支付方式:用户扫描二维码支付 接口类型:扫码支付之模式二  先copy一份模式二的业务流程时序图 业务流程说明:  (1)商户后台系统根据用户选购的商品生成订单.  (2)用户确认支 ...

  9. 微信支付Native下单API接口正确调用姿势

    商户Native支付下单接口,微信后台系统返回链接参数code_url,商户后台系统将code_url值生成二维码图片,用户使用微信客户端扫码后发起支付. 文档地址:微信支付-开发者文档 目录 一.N ...

  10. 微信支付退款,回调接口

    前期准备 Maven依赖 由于具体是哪个已经分不清了,有些是微信支付要用到的,有些是退款要用到的,有些是解码要用到的. <dependency><groupId>com.git ...

最新文章

  1. Windows7 64位 plsql developer连接oracle最终解决方法
  2. php粒子背景特效_粒子背景特效Particleground.js插件使用解析_蓝戒的博客
  3. Attachment rename issue in Faas
  4. LINUX --基本概念和操作
  5. 【网络流24题】餐巾计划问题(最小费用最大流)
  6. 【转】vs平台工具集介绍,vc6~vs2019各IDE对应的工具集版本
  7. 非递归中序,后序,先序遍历二叉树完整代码(用链式栈实现)
  8. linux下 添加一个新账户tom,linux 账户管理命令 useradd、groupadd使用方法
  9. 1002 输出第二个整数
  10. 织梦采集工具-织梦CMS采集教程
  11. 转载子龙山人 cocos2d-x学习资源汇总(持续更新。。。)
  12. PLC对接SQL数据库,实现数据采集和边缘计算
  13. Python 批量推送微信公众号模板消息
  14. 2012考研数学二第(21)题——中值定理:零点定理+数列极限:单调有界准则
  15. 微信小程序—那些安全验证,滑块验证、输入验证码、拼图验证
  16. ionic安卓打印终极解决方案,支持USB打印
  17. cad卸载工具_CAD安装失败都是红?
  18. HyperLynx(五)反射仿真
  19. sap客户信贷_信贷控制配置全过程-SAP
  20. 11月初.wang域名总量TOP15:13家中国域名商上榜

热门文章

  1. STM32MP157C-DK2 开机测试
  2. 整数 (Integer)
  3. Web并发页面访问量统计实现
  4. testerhome职业辅导沙龙
  5. SpringBoot 项目使用 Apache POI 解析 Word 的 docx 文档的图片和文字内容
  6. InnoDB存储引擎介绍-(6) 二. Innodb Antelope文件格式
  7. Cygwin warning: could not find /tmp, please create! 问题
  8. linux磁盘文件大小排序,Linux中查看磁盘大小、文件大小、排序方法小结
  9. 【手写简易版 vue3】究极长文详细讲解如何实现一个简易版 vue3
  10. SWUST OJ1132: 机器人收集硬币