php教程微信支付技术(php微信扫码支付 php公众号支付)
类别:编程学习 浏览量:862
时间:2022-04-03 11:40:32 php教程微信支付技术
php微信扫码支付 php公众号支付本文实例为大家分享了php微信扫码支付,公众号支付的具体代码,供大家参考,具体内容如下
|
<?php # 微信统一下单接口 $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder' ; $param = [ 'appid' => '公众号id' , 'mch_id' => '商户id' , 'nonce_str' =>uniqid(), 'sign_type' => 'MD5' , 'body' => 'test' , 'detail' => 'test detail' , 'out_trade_no' => date ( 'Ymd' ).rand(10000,99999), 'total_fee' => 1, 'notify_url' => 'http://www.test.top/testpay/pay.php' , 'trade_type' => 'JSAPI' , ]; ksort( $param ); $sign_str = urldecode(http_build_query( $param )); $sign_str .= '&key=商户密钥' ; //echo $sign_str;exit; $sign_str = md5( $sign_str ); $param [ 'sign' ] = strtoupper ( $sign_str ); function CurlPost( $url , $param = [], $is_post = 1, $timeout = 5 ) { //初始化curl $curl = curl_init(); // 设置请求的路径 curl_setopt( $curl , CURLOPT_URL, $url ); if ( $is_post == 1) { //设置POST提交 curl_setopt( $curl , CURLOPT_POST, 0); } //显示输出结果 1代表 把接口返回的结果当作一个字符串处理 curl_setopt( $curl , CURLOPT_RETURNTRANSFER, 1); // 设置请求超时时间 curl_setopt( $curl , CURLOPT_TIMEOUT, $timeout ); curl_setopt( $curl , CURLOPT_SSL_VERIFYHOST, false); curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER, false); if ( $is_post == 1) { //提交数据 -- 设置post提交的数据 if ( is_array ( $param )) { //http_build_query curl_setopt( $curl , CURLOPT_POSTFIELDS, http_build_query( $param )); } else { curl_setopt( $curl , CURLOPT_POSTFIELDS, $param ); } } //执行请求 $data = $data_str = curl_exec( $curl ); //处理错误 if ( $error = curl_error( $curl )) { $log_data = array ( 'url' => $url , 'param' => $param , 'error' => '<span style="color:red;font-weight: bold">' . $error . '</span>' , ); var_dump( $log_data ); exit ; } # 关闭CURL curl_close( $curl ); //json数据转换为数组 $data = json_decode( $data , true); if (! is_array ( $data )) { $data = $data_str ; } #调用玩接口之后写一个日志 $log = [ 'url' => $url , 'param' => $param , 'response' => $data_str ]; file_put_contents (__DIR__ . '/wechat.log' , print_r( $log , true), 8); return $data ; } function arr2Xml( $arr ){ $xml = '<xml version="1.0" encoding="UTF-8"> ' ; foreach ( $arr as $key => $value ){ if ( is_numeric ( $value )){ $xml .= "<" . $key . ">" . $value . "</" . $key . ">" ; } else { $xml .= "<" . $key . "><![CDATA[" . $value . "]]></" . $key . ">" ; } } $xml .= '</xml>' ; return $xml ; } $xml = arr2Xml( $param ); $result = CurlPost( $url , arr2Xml( $param ) ); $api_arr = json_decode( json_encode(simplexml_load_string( $result , 'SimpleXMLElement' , LIBXML_NOCDATA) ), true ); if ( $api_arr [ 'return_code' ] == 'SUCCESS' ){ include __DIR__ . '/phpqrcode.php' ; header( 'content-type:image/png' ); echo Qrcode::png( $api_arr [ 'code_url' ] , false , 'H' , 6 ,2 ); } |
|
<?php #微信统一下单接口 $url = 'https://api.mch.weixin.qq.com/pay/unifiedorder' ; $param =[ #公众账号ID 'appid' => '****' , 'mch_id' => '***' , 'nonce_str' =>uniqid(), 'sign_type' => 'MD5' , 'body' => 'test' , 'detail' => 'detail' , 'out_trade_no' => date ( 'Ymd' ).rand(10000,99999), 'total_fee' =>1, 'spbill_create_ip' => $_SERVER [ 'SERVER_ADDR' ], 'notify_url' => 'http://****/test.php' , 'trade_type' => 'NATIVE' , ]; ksort( $param ); $sign_str =urldecode(http_build_query( $param )); $sign_str .= '&key=8934e7d15453e97507ef794cf7b0519d' ; $sign_str =md5( $sign_str ); $param [ 'sign' ]= strtoupper ( $sign_str ); //print_r($param);exit; function CurlPost( $url , $param = [], $is_post = 1, $timeout = 5 ) { //初始化curl $curl = curl_init(); // 设置请求的路径 curl_setopt( $curl , CURLOPT_URL, $url ); if ( $is_post == 1) { //设置POST提交 curl_setopt( $curl , CURLOPT_POST, 0); } //显示输出结果 1代表 把接口返回的结果当作一个字符串处理 curl_setopt( $curl , CURLOPT_RETURNTRANSFER, 1); // 设置请求超时时间 curl_setopt( $curl , CURLOPT_TIMEOUT, $timeout ); curl_setopt( $curl , CURLOPT_SSL_VERIFYHOST, false); curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER, false); if ( $is_post == 1) { //提交数据 -- 设置post提交的数据 if ( is_array ( $param )) { //http_build_query curl_setopt( $curl , CURLOPT_POSTFIELDS, http_build_query( $param )); } else { curl_setopt( $curl , CURLOPT_POSTFIELDS, $param ); } } //执行请求 $data = $data_str = curl_exec( $curl ); //处理错误 if ( $error = curl_error( $curl )) { $log_data = array ( 'url' => $url , 'param' => $param , 'error' => '<span style="color:red;font-weight: bold">' . $error . '</span>' , ); var_dump( $log_data ); exit ; } # 关闭CURL curl_close( $curl ); //json数据转换为数组 $data = json_decode( $data , true); if (! is_array ( $data )) { $data = $data_str ; } #调用玩接口之后写一个日志 $log = [ 'url' => $url , 'param' => $param , 'response' => $data_str ]; file_put_contents (__DIR__ . '/wechat.log' , print_r( $log , true), 8); return $data ; } function arrzxml( $arr ){ $xml = '<xml version="1.0" encoding="UTF-8">' ; foreach ( $arr as $key => $value ){ if ( is_numeric ( $value )){ $xml .= "<" . $key . ">" . $value . "</" . $key . ">" ; } else { $xml .= "<" . $key . "><![CDATA[" . $value . "]]></" . $key . ">" ; } } $xml .= '</xml>' ; // var_dump($xml);exit; return $xml ; } $xml =arrzxml( $param ); $result =CurlPost( $url ,arrzxml( $param )); //echo '<pre/>'; var_dump( $result ); exit ; $api_arr =json_decode(simplexml_load_string( $result , 'SimpleXMLElement' ,LIBXML_NOCDATA),true); if ( $result [ 'return_code' ]== 'SUCCESS' ){ include __DIR__. '/phpqrcode.php' ; header( 'content-type:image/png' ); echo Qrcode::png( $api_arr [ 'code_url' ],false, 'H' ,6,2); } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- php中怎么判断变量类型(PHP INT类型在内存中占字节详解)
- php中如何使用缓存(PHP使用OB缓存实现静态化功能示例)
- phpstudy配置教程(phpStudy2018安装教程及本地服务器的配置方法)
- php如何将数组清空(PHP实现数组向任意位置插入,删除,替换数据操作示例)
- php面向对象怎么调用属性(PHP面向对象程序设计__tostring和__invoke用法分析)
- phpstudy安装教程详解学习(phpstudy下载安装简明图文教程)
- php实现异步操作(php提供实现反射的方法和实例代码)
- php错误处理及调试(php报错502 bad gateway解决方法)
- php怎么修改单独一行数据(PHP实现批量修改文件名的方法示例)
- php闰年计算公式(php判断/计算闰年的方法小结三种方法)
- 怎么用单元测试php(PHP使用phpunit进行单元测试示例)
- phpstudymysql启动又自动停止(Win下解决phpStudy MySQL启动失败)
- phpstudy8.0使用教程视频(phpstudy v8.1 Apache伪静态配置图文教程)
- 本地phpstudy搭建网站教程学习(phpstudy搭建本地网站服务器图文教程)
- php关注公众号发送消息(php实现QQ小程序发送模板消息功能)
- phpstudy的默认网站根目录是什么(phpstudy v8.0创建本地站点域名教程图文)
- 为什么越来越多年轻人回农村(为什么越来越多年轻人回农村生活)
- 怎么快速学好英语(怎么快速学好英语初中)
- 中国留学生都是富二代吗()
- 我们现在吃的苹果是哪里来的 原来现代苹果引入中国仅有一百多年(我们现在吃的苹果是哪里来的)
- 买绿宝不能只挑黄绿色 菜农教你3招挑,个个皮薄肉脆,香甜爆汁(买绿宝不能只挑黄绿色)
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
热门推荐
- margin属性设置4个参数(解决margin塌陷与margin合并margin清除浮动问题)
- html5基本结构图解(html5简介及新增功能介绍)
- vue 排班安排(vue实现钉钉的考勤日历)
- jquery获取outerhtml
- linux更改inode(详解Linux索引节点inode)
- python的os模块操作(Python OS模块实例详解)
- idea怎样连接mysql(IDEA配置连接MYSQL数据库遇到Failed这个问题解决)
- 云服务器的优点(云服务器都有哪些特点和优势)
- 查看IIS网站的进程ID
- linuxcrontab怎么不执行(Linux crontab 命令的使用)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9