use EasyWeChat\Factory;public function initialize(){parent::initialize();       $payconfig = [// 必要配置'app_id'             =>Config('app.WeiXinAPPID'),'mch_id'             => Config('app.WeiXinMCHID'),'key'                =>Config('app.WeiXinKEY'),   // API 密钥// 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)'cert_path'          => Config('app.Domain').'/extend/cert/apiclient_cert.pem', // XXX: 绝对路径!!!!'key_path'           => Config('app.Domain').'/extend/cert/apiclient_key.pem',      // XXX: 绝对路径!!!!'notify_url'         =>'',     // 你也可以在下单时单独设置来想覆盖它];$this->payapp = Factory::payment($payconfig);}//通用生成唯一订单号public function GetNumber(){@date_default_timezone_set("PRC");//$order_id_main = date('YmdHis') . rand(10000000, 99999999);$order_id_main = date('YmdHis') . rand(100, 999);//订单号码主体长度$order_id_len = strlen($order_id_main);$order_id_sum = 0;for ($i = 0; $i < $order_id_len; $i++) {$order_id_sum += (int)(substr($order_id_main, $i, 1));}//唯一订单号码(YYYYMMDDHHIISSNNNNNNNNCC)$osn = $order_id_main . str_pad((100 - $order_id_sum % 100) % 100, 2, '0', STR_PAD_LEFT); //生成唯一订单号return $osn;}//是否同意退款操作public function opbackorder(){$orderfront_id=input('orderfront_id','');
//        echo '<pre>';
//        print_r($_POST);// exit;$orderinfo=DB::name('orderfront')->where(['orderfront_id'=>$orderfront_id])->find();$totalorderinfo=DB::name('order')->where(['order_totalordernumber'=>$orderinfo['order_totalordernumber']])->find();$state=isset($_POST['order_backstate'])?$_POST['order_backstate']:'';$_POST['order_backtime']=time();if($state==2) //同意{unset($_POST['orde_backfailreason']);if($totalorderinfo['order_state']!=1){  return  back_result([],0,1,'当前状态不能退款');  }//判断订单状态if($orderinfo['order_frontpaytype']=='0')// 微信支付{$refund_no=$this->GetNumber();//退款单号//退款微信申请退款$result = $this->payapp->refund->byOutTradeNumber($orderinfo['order_frontnumber'], $refund_no, $orderinfo['order_totalmoneyfront']*100, $orderinfo['order_totalmoneyfront']*100, [// 可在此处传入其他参数,详细参数见微信支付文档'refund_desc' => '',]);
//            echo '<pre>';
//            print_r($result);if($result['result_code']=='SUCCESS'){DB::name('orderfront')->where(['orderfront_id'=>$orderfront_id])->update($_POST);DB::name('order')->where(['order_totalordernumber'=>$orderinfo['order_totalordernumber']])->update(['order_state'=>2]);return back_result([],0,0,'操作成功');}else{return back_result([],0,2,$result['err_code_des']);}}elseif($orderinfo['order_frontpaytype']=='1') //余额{//当前余额$curmoney=DB::name('member')->where(['openid'=>$orderinfo['openid']])->value('member_money');//给用户退款DB::name('member')->where(['openid'=>$orderinfo['openid']])->inc('member_money',$orderinfo['order_totalmoneyfront'])->update();//当前余额$curmoney2=DB::name('member')->where(['openid'=>$orderinfo['openid']])->value('member_money');$desc='申请退款,订单编号:'.$totalorderinfo['order_totalordernumber'].',退款金额:'.$orderinfo['order_totalmoneyfront'];//生成余额变动明细$data=[];$data['openid']=$orderinfo['openid'];$data['chargetype']=0;//0 收入  1支出$data['count']=$orderinfo['order_totalmoneyfront'];$data['curmoney']=$curmoney2;$data['time']=time();$data['desc']=$desc;DB::name('balance')->insert($data);//更新数据库订单状态DB::name('orderfront')->where(['orderfront_id'=>$orderfront_id])->update($_POST);DB::name('order')->where(['order_totalordernumber'=>$orderinfo['order_totalordernumber']])->update(['order_state'=>2]);return back_result([],0,0,'操作成功');}}elseif($state==3) //拒绝{DB::name('orderfront')->where(['orderfront_id'=>$orderfront_id])->update($_POST);return back_result([],0,0,'操作成功');}}

使用easywechat退款相关推荐

  1. 用easywechat插件做微信支付

    这里不要直接看easywechat,一定要先看一遍微信文档,在看easywechat要不然会有点懵,一切以微信开发文档为主 这里看示列: 在这里插入代码片 public function jssdkt ...

  2. easywechat Api大全

    一.入门 文档 1.1 安装 环境要求: PHP >= 7.0 PHP cURL 扩展 PHP OpenSSL 扩展 PHP SimpleXML 扩展 PHP fileinfo 拓展 使用 co ...

  3. php微信退款流程总结

    1.发起退款,使用easywechat包,退款时必须有证书,key文件,微信支付平台会在生成API证书时把文件下载到本地,平台没有保存证书及key $config = ['app_id' => ...

  4. 微信开放平台(第三方平台)代替微信公众号发送模板消息(基于lavarel框架开发,EasyWeChat)

    1.公众号必须得把模板消息授权到第三方平台. 2.我用的是 EasyWeChat 3.通过接口修改账号所属行业 (实质上就是开通模板消息) //修改账号所属行业public function set_ ...

  5. tp5中使用easywechat完成企业付款到用户微信钱包

    第一步:使用composer工具在框架中安装easywechat,并将证书放在框架根目录cert里(如果没该目录,则新建一个) 第二步:在控制器中使用: 类开始的时候引入: use EasyWeCha ...

  6. thinkPHP+easyWeChat开发微信公众号支付,企业付款,红包

    easywechat 配置 public function __construct(){$configModel = new Setting();$this->orderModel = new ...

  7. ThinkPHP接入EasyWechat

    使用EasyWechat接入用户登录,获取用户信息 官方文档 <?phpnamespace app\index\controller;use EasyWeChat\Factory; use th ...

  8. 直击阿里百度岗!助力求职,拿不到offer全额退款保证|第五期人工智能与推荐系统/NLP/CV专业方向...

    2019年计算机科学最高奖金图灵奖,授予了三位AI领域的杰出科学家: Geoffrey Hinton, Yann LeCun和Yoshua Bengio.人工智能尤其是基于深度学习的人工智能,在科学界 ...

  9. iphone退款申请教程_王者荣耀账号注销退钱吗?王者荣耀账号注销100%退款教程...

    王者荣耀注销账号能不能退款呢?今天小编给大家带来的是王者荣耀注销账号退款方法哦!想知道的小伙伴就和小编一起来看看吧! 王者荣耀注销账号能不能退款 玩家在王者荣有游戏中注销账号后是无法进行退款操作的,玩 ...

最新文章

  1. 「杂谈」白身,初识,不惑,有识,你处于深度学习哪一重境界了
  2. PS5独占游戏RETURNAL:华丽的黑暗电子声音是如何制作的(新 3D 音频引擎)下
  3. lm opencv 算法_OpenCV进行图像相似度对比的几种办法
  4. java接口经常变动前端怎么办_Java进程故障排查(CPU资源占用高,接口响应超时,功能接口停滞等)...
  5. PyQt5笔记(08) – 输入对话框
  6. JeeSite 企业信息化快速开发平台
  7. ios 画带有箭头的线_ios纯色箭头与渐变色箭头的实现
  8. 数据流图技术相关基础知识
  9. jQuery(非插件)制作商城放大镜效果
  10. 数据库的根据当前id查询所有父级菜单
  11. HNUCM 1325:fps游戏
  12. pdm怎么导入oracle,PowerDesigner导入导出PDM和rtf文件
  13. wordpress最佳架构_生活教练的22个最佳WordPress主题
  14. 计算机桌面文件删除不掉是怎么了,如何解决电脑桌面文件无法删除问题
  15. python将xls格式转成xlsx格式
  16. JavaScript九宫格数独生成算法
  17. 基于ffmpeg的GIF制作工具
  18. getopt()函数简介
  19. C语言基础——运算符(定义变量、转义字符、输入输出语句、运算符、32个关键字)
  20. 小学生数学测试软件编写分析,小学数学测试的质量分析

热门文章

  1. 【详细说明】二代身份证号码的组成结构(含校验码算法与行政区划代码)
  2. 总结之CSIG-MIIP 2017
  3. php 伪静态 获取当前页面路径_php伪静态如何获取地址栏url -
  4. 究竟什么是Vanilla JS?(娱乐向)
  5. 学习Lua编写魔兽插件 for wow addons
  6. 股票怎么用python_stock: stock,股票系统。使用python进行开发。
  7. Apache DolphinScheduler 开源之夏学生项目申请开启,6 大课题等你来拿万元奖金!
  8. 遗传算法求函数最小值(多维)1
  9. 宫崎骏用动漫教给我们的人生哲理,每一句都能说到心里[转]
  10. jupyter正在连接内核,报错No module named ipykernel_launcher