文件
mashangyoujiu/Application/Common/Business/PaymentRefund.class.php

104 行
2.8 KiB
PHP
可执行文件

<?php
namespace Common\Business;
use Common\Model\RetailBillOrderModel;
//[1.8.68]
/**
* 支付退款成功回调类
* Class PaymentRefund
* [
* 第三方退款成功回调 paymentRefund
* 微信退款的代金券信息 wxRefund
* 第三方退款成功回调的参数验证 paymentRefundVerify
* ]
* @package Common\Business
*/
class PaymentRefund
{
/**
* 第三方退款成功回调(暂只支持微信代金券处理)
* @param $param
* {
* old_pay_order_id 原支付订单id
* merchant_id
* refund_info 退款信息
* type 1线上 2线下
* }
* @return mixed
* [
* pay_coupon_id_str 代金券id
* pay_coupon_fee 代金券优惠总金额 单位元
* cash_fee 微信的现金金额 指客户实际付款或退款金额
* ]
*/
public function paymentRefund($param)
{
//参数验证
$verifyResult = $this->paymentRefundVerify($param);
if ($verifyResult['status'] != 1) {
return $verifyResult;
}
$result = $this->wxRefund($param);
return $result;
}
/**
* 微信退款的代金券信息
* @param $param
* {
* old_pay_order_id 原支付订单id
* merchant_id
* refund_info 退款信息
* type 1线上 2线下
* }
* @return mixed
*/
public function wxRefund($param)
{
$merchant_id = $param['merchant_id'];
$type = $param['type'];
$refund_info = $param['refund_info'];
$old_pay_order_id = $param['old_pay_order_id'];
switch ($type) {
case 1:
case 2:
//线下
$PayCouponClass = new PayCoupon();
$result = $PayCouponClass->couponVerification_v1(json_encode([
'merchant_id' => $merchant_id,
'pay_info' => $refund_info,
'coupon_way' => 2, //退款
'old_pay_order_id'=>$old_pay_order_id
]));
break;
}
return $result;
}
/**
* 第三方退款成功回调
* @param $param
* {
* merchant_id
* refund_info 退款信息
* }
* @return mixed
*/
public function paymentRefundVerify(&$param)
{
$param = json_decode($param, true);
if (!is_array($param)) {
return callBack(statusCode()['error'], '退款详情有误');
}
if (empty($param['merchant_id'])) {
return callBack(statusCode()['error'], '身份验证失败');
}
if (empty($param['refund_info'])) {
return callBack(statusCode()['error'], '退款信息有误');
}
return callBack(statusCode()['success'], '验证通过');
}
}