关于laravel使用easywechat进行微信退款教程
PHP

关于laravel使用easywechat进行微信退款教程

野牛哥
2021-09-10 / 0 评论 / 8 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年09月10日,已超过49天没有更新,若内容或图片失效,请留言反馈。

关于laravel使用easywechat进行微信退款教程

在日常微信开发中,支付、退款、提现是常有的事,今天主要讲微信退款操作,应用场景一般都是购物订单进行退货退款或者是不小心付款了,然后需要取消订单进行退款操作等等;

基础配置

1、在支付平台(http://pay.weixin.qq.com)->;账户中心->API安全,申请商户号
2、在支付平台->产品中心->开通需要的支付能力
3、在支付平台(http://pay.weixin.qq.com)->;账户中心->API安全,生成api证书和设置key
4、将刚刚申请的商户号与公众号或者小程序进行关联

引入easywechat包

根据自己的php版本选择安装easywechat版本,我这里php7.3版本安装easywechat5.0的

示例
use EasyWeChat\Factory;

/**
* 微信退款操作
* @param string out_trade_no 商户订单号(就是自定义的付款订单号)/微信订单号(微信平台订单号)
* @parem number money 订单金额
* @param number remoney 退款金额
* @return array
*/
public function refund($out_trade_no,$money,$remoney){
  $config = [
    // 必要配置
    'app_id'=> "公众号或者小程序的appid",
    'mch_id'=> '商户号',//微信支付平台的账号(也就是上面申请的商户号)
    'key'=> '商户号对应的key',// 微信支付平台的API密钥(跟上面是同一个商户号里key设置)
    'notify_url'=>  'https://www.xxx.com/wxpay/callback',// 回调地址
    'cert_path'=> '/www/demo/cert/apiclient_cert.pem',// 微信支付平台的api证书
    'key_path'=> '/www/demo/cert/apiclient_key.pem',// 微信支付平台的api证书的密钥
  ];
  $app = Factory::payment($config);
  $money=sprintf("%.2f",$money)*100;
  $remoney=sprintf("%.2f",$remoney)*100;
  $refund_trade_no='refund_'.date('YmdHis').mt_rand(10000000000,99999999999);// 退款订单号(自定义)
  // 参数分别为:商户订单号、商户退款单号、订单金额(单位为分)、退款金额(单位为分)、其他参数参考(不填请设置为空数组):https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4

  // 根据微信订单号操作
  $result = $app->refund->byTransactionId($out_trade_no,$refund_trade_no,$money,$remoney,[]);

  // 根据商户订单号操作
  $result = $app->refund->byOutTradeNumber($out_trade_no,$refund_trade_no,$money,$remoney,[
    'refund_desc' => '用户取消订单',
  ]);
  if($result['return_code']==='SUCCESS' && $result['result_code']==='SUCCESS'){
    // 进行退款逻辑操作
    // ...
    return "退款$remoey元成功";
  }else{
    return $result['err_code_des'];
  }
}

$res=refund('demo_123456789','100','100'); // 调用,退款100元
var_deump($res); // 退款100元成功

配置信息参数一定要填正确,不然会报错; 有疑问的也可以留言给渣渣编, 更多深入的了解请看文档;

本文共 577 个字数,平均阅读时长 ≈ 2分钟
2

打赏

评论 (0)

取消