我的编程空间,编程开发者的网络收藏夹
学习永远不晚

微信支付查询订单V2 接口

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

微信支付查询订单V2 接口

//查询订单是否存在
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 = '
                       '.$appid.'
                       '.$mch_id.'
                       '.$post['nonce_str'].'
                       '.$post['out_trade_no'].'
                       '.$sign.'
                   
';
        $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;
    }
    
       
    public function ToUrlParams_a( $params ){
        $string = '';
        if( !empty($params) ){
            $array = array();
            foreach( $params as $key => $value ){
                $array[] = $key.'='.$value;
            }
            $string = implode("&",$array);
        }
        return $string;
    }
    
     
    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;
        }
    }
    
    

}

来源地址:https://blog.csdn.net/dangjunwei123/article/details/125652445

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

微信支付查询订单V2 接口

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法(后台订单支付API设计)

客户端获取后台支付API请求参数的设计参数样例:{ data: { method: 1, platform: 1, version:"1.0", relate_orders:"B201602031023,B2016020310231", o
2022-06-06

Python3微信支付(小程序支付)V3接口的实现

本文主要介绍了Python3微信支付(小程序支付)V3接口的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-17

微信支付、支付宝支付等常用第三方支付通道接口手续费对比

微信支付、支付宝等第三方支付,需要和银联、网联对接,有清算机构和银行的交易处理通道成本。费率指支付手续费的费率,不同行业、不同的支付平台、不同的支付额度或次数所对应的通道费率是不一样的。
2023-01-28

微信小程序支付接口实例分析

这篇文章主要介绍“微信小程序支付接口实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序支付接口实例分析”文章能帮助大家解决问题。  小程序调起支付API 小程序调起支付数据签名字段列表
2023-06-26

SAP怎么按采购订单查询付款信息的报表

这篇文章主要介绍了SAP怎么按采购订单查询付款信息的报表的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SAP怎么按采购订单查询付款信息的报表文章都会有所收获,下面我们一起来看看吧。笔者了解到FI模块有个报表FB
2023-06-05

如何在PHP项目中实现支付接口和订单处理?

如何在PHP项目中实现支付接口和订单处理?随着电子商务的快速发展,支付接口和订单处理成为了一个PHP项目中不可或缺的组成部分。本文将介绍如何在PHP项目中实现支付接口和订单处理的方法和步骤。一、支付接口的选择和集成首先,我们需要选择一个适合
如何在PHP项目中实现支付接口和订单处理?
2023-11-02

如何使用nodejs搭建微信小程序支付接口

这篇文章主要介绍“如何使用nodejs搭建微信小程序支付接口”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用nodejs搭建微信小程序支付接口”文章能帮助大家解决问题。支付流程一、向后端服务器
2023-07-04

利用java如何实现一个微信APP支付接口

这篇文章给大家介绍利用java如何实现一个微信APP支付接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。开始开发1、配置相关的配置信息1.1、配置appid(Android)、mch_id(ios)、微信支付后的回调
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录