wpPayUtil.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. //微信支付相关的处理
  3. namespace common\components;
  4. use Yii;
  5. class wpPayUtil
  6. {
  7. //退款
  8. //https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_4
  9. /**
  10. * @param $out_trade_no 支付时的订单号(零售端订单号)
  11. * @param $total_fee 支付时金额
  12. * @param $refund_fee 退款金额
  13. * @param $out_refund_no 退款订单
  14. * @param $appid
  15. * @param $mchid
  16. * @param $notify_url 回调地址
  17. * @return bool|\成功时返回,其他抛异常
  18. */
  19. public static function refund($out_trade_no,$total_fee,$refund_fee,$out_refund_no,$appid,$mchid,$notify_url)
  20. {
  21. try{
  22. ini_set('date.timezone','Asia/Shanghai');
  23. error_reporting(E_ERROR);
  24. $wx = Yii::getAlias("@vendor/weixin");
  25. require_once($wx . '/lib/WxPay.Api.php');
  26. $input = new \WxPayRefund();
  27. $input->SetOut_trade_no($out_trade_no);
  28. $input->SetTotal_fee($total_fee);
  29. $input->SetRefund_fee($refund_fee);
  30. $input->SetOut_refund_no($out_refund_no);
  31. $input->SetOp_user_id($mchid);
  32. $input->SetNotify_url($notify_url);
  33. $res = \WxPayApi::refund($input,6,$appid,$mchid);
  34. Yii::info("退款返回信息: ",$res);
  35. return $res;
  36. }catch (\Exception $exception){
  37. Yii::warning("退款返回信息: ",$exception->getMessage());
  38. }
  39. return false;
  40. }
  41. }