You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php
namespace App\Service;
use App\Model\OrderMain;use EasyWeChat\Factory;use Hyperf\DbConnection\Db;use App\Commons\Log;use App\Constants\LogLabel;use Hyperf\Di\Annotation\Inject;use Hyperf\Guzzle\CoroutineHandler;
class WxRefundService implements WxRefundServiceInterface{ /** * @Inject * @var Log */ protected $log;
/** * 微信支付退款 */ public function wxPayRefund($global_order_id) { $config = config('wxpay'); $app = Factory::payment($config); $app['guzzle_handler'] = CoroutineHandler::class;
$orderMain = $global_order_id; // 查询订单
// $orderMain = OrderMain::query()
// ->select('id','global_order_id','order_num','money','state')
// ->where('global_order_id',$global_order_id)
// ->where('pay_type',OrderMain::ORDER_PAY_WX)
// ->where(Db::raw('refund_time is null'))
// ->first()->toArray();
if(empty($orderMain)){ return false; };
$options = [ 'refund_desc' => '线上订单退款', // 'notify_url' => config('site_host') . '/wechat/notify/wxpayrefund'
]; $result = $app->refund->byOutTradeNumber( $orderMain['global_order_id'], $orderMain['global_order_id'], $orderMain['money'] * 100, $orderMain['money'] * 100, $options ); $this->log->event(LogLabel::WX_PAY_REFUND,$result); return $result; }
}
|