添加忽略
This commit is contained in:
parent
4fc0c29601
commit
3985642e24
|
|
@ -214,9 +214,9 @@ class VueOperationController extends BaseController
|
|||
throw new AppException("订单已锁定,无法继续操作");
|
||||
}
|
||||
|
||||
if ($this->order->hasOneRefundApply && $this->order->hasOneRefundApply->isRefunding()) {
|
||||
throw new AppException('订单有售后记录待处理,无法继续操作');
|
||||
}
|
||||
// if ($this->order->hasOneRefundApply && $this->order->hasOneRefundApply->isRefunding()) {
|
||||
// throw new AppException('订单有售后记录待处理,无法继续操作');
|
||||
// }
|
||||
|
||||
\app\backend\modules\refund\services\RefundOperationService::orderCloseAndRefund($this->order);
|
||||
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ class PayType extends BaseModel
|
|||
const T_H5= 207; // 微信直连H5支付
|
||||
const T_APP= 208; // 微信APP支付(只支持直连)
|
||||
const T_NATIVE= 209; // 微信正扫(只支持直连)
|
||||
const T_dNATIVE= 127; // 微信正扫(只支持直连)
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -35,8 +35,6 @@ class RefundPayAdapter
|
|||
{
|
||||
$this->pay_type_id = $pay_type_id;
|
||||
|
||||
var_dump($pay_type_id);die;
|
||||
|
||||
$this->pay = PayFactory::create($this->pay_type_id);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ class RefundService
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
//必须保证请求支付退款接口成功才能改变售后状态
|
||||
//如果先改变退款状态会触发退款成功监听,实际请求支付退款接口失败了
|
||||
switch ($this->refundApply->order->pay_type_id) {
|
||||
|
|
@ -209,6 +210,19 @@ class RefundService
|
|||
case PayType::HUIBEI_CODE:
|
||||
$result=$this->HuibeiPayRefund();
|
||||
break;
|
||||
case 127 :
|
||||
case PayType::T_JSAPI:
|
||||
case PayType::A_NATIVE:
|
||||
case PayType::T_MINIAPP:
|
||||
case PayType::A_JSAPI:
|
||||
case PayType::U_NATIVE:
|
||||
case PayType::U_JSAPI:
|
||||
case PayType::D_NATIVE:
|
||||
case PayType::T_H5:
|
||||
case PayType::T_APP:
|
||||
case PayType::T_NATIVE:
|
||||
$this->HftxPay();
|
||||
break;
|
||||
default:
|
||||
$result = $this->unknownPay();
|
||||
}
|
||||
|
|
@ -216,6 +230,22 @@ class RefundService
|
|||
return $result;
|
||||
}
|
||||
|
||||
private function HftxPay(){
|
||||
\Log::debug('------售后确认退款支付类型无对应退款方法--'.$this->refundApply->order->pay_type_id,[$this->refundApply->order->order_sn]);
|
||||
$payAdapter = new \app\common\modules\refund\RefundPayAdapter($this->refundApply->order->pay_type_id);
|
||||
|
||||
|
||||
$result = $payAdapter->pay($this->refundApply->order->hasOneOrderPay->pay_sn, $this->refundApply->order->created_at, $this->refundApply->price);
|
||||
|
||||
if ($result['resp_code']!=='00000000') {
|
||||
throw new AdminException('HftxPay退款失败');
|
||||
}
|
||||
//微信退款 同步改变退款和订单状态
|
||||
RefundOperationService::refundComplete(['id' => $this->refundApply->id]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function unknownPay()
|
||||
{
|
||||
\Log::debug('------售后确认退款支付类型无对应退款方法--'.$this->refundApply->order->pay_type_id,[$this->refundApply->order->order_sn]);
|
||||
|
|
|
|||
|
|
@ -91,7 +91,8 @@ class AliPay extends Pay
|
|||
\Log::debug('支付宝扫码支付');
|
||||
return $this->payService->scan($order)->qr_code;
|
||||
}
|
||||
return $this->payService->wap($order)->getTargetUrl(); }
|
||||
return $this->payService->wap($order)->getTargetUrl();
|
||||
}
|
||||
|
||||
public function doRefund($out_trade_no, $totalmoney, $refundmoney = '0')
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1127,6 +1127,7 @@ class PayFactory
|
|||
case self::T_H5:
|
||||
case self::T_APP:
|
||||
case self::T_NATIVE:
|
||||
case 127:
|
||||
case 'T_JSAPI':
|
||||
case 'T_MINIAPP':
|
||||
case 'A_JSAPI':
|
||||
|
|
|
|||
|
|
@ -339,7 +339,6 @@ class MergePayController extends ApiController
|
|||
$orders = Order::whereIn('id', $orderPay->order_ids)->get();
|
||||
event($event = new AfterOrderPaidRedirectEvent($orders,$orderPay->id));
|
||||
$data['redirect'] = $event->getData()['redirect']?:$redirect;
|
||||
var_dump($data);die;
|
||||
return $this->successJson('成功', $data);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,9 @@
|
|||
|
||||
namespace app\payment\controllers;
|
||||
|
||||
use app\common\events\order\AfterOrderPaidRedirectEvent;
|
||||
use app\common\models\Order;
|
||||
use app\common\models\OrderPay;
|
||||
use app\frontend\modules\payType\BasePayType;
|
||||
use app\payment\PaymentController;
|
||||
use app\common\services\Pay;
|
||||
|
|
@ -41,7 +44,8 @@ class HfpayController extends PaymentController
|
|||
|
||||
public function preAction()
|
||||
{
|
||||
// $_POST=json_decode(file_get_contents('1700912948pay.txt'),true);
|
||||
// $_POST=json_decode(file_get_contents('1700982737pay.txt'),true);
|
||||
// var_dump($_POST);die;
|
||||
parent::preAction();
|
||||
if (empty(\YunShop::app()->uniacid)) {
|
||||
$this->jsonData=json_decode($_POST['resp_data'],true);
|
||||
|
|
@ -59,7 +63,6 @@ class HfpayController extends PaymentController
|
|||
if($verify_result){
|
||||
$resp_data=$this->jsonData;
|
||||
$this->pay_type_id = BasePayType::where('code','=',$resp_data['trade_type'])->value('id');
|
||||
// var_dump($resp_data);
|
||||
$data = [
|
||||
'total_fee' => $resp_data['trans_amt'],
|
||||
'out_trade_no' => $resp_data['req_seq_id'],
|
||||
|
|
@ -68,7 +71,6 @@ class HfpayController extends PaymentController
|
|||
'pay_type' => '汇付'.$this->payTpye[$resp_data['trade_type']],
|
||||
'pay_type_id' => $this->pay_type_id
|
||||
];
|
||||
// var_dump($data);die;
|
||||
$this->payResutl($data);
|
||||
echo "success";
|
||||
}else{
|
||||
|
|
@ -82,9 +84,13 @@ class HfpayController extends PaymentController
|
|||
public function refundUrl()
|
||||
{
|
||||
file_put_contents(time().'refundUrl.txt',json_encode($_POST));
|
||||
|
||||
|
||||
|
||||
$out_trade_no='';
|
||||
$orderPay = OrderPay::where('pay_sn', $out_trade_no)->first();
|
||||
if (!is_null($orderPay)) {
|
||||
$orders = Order::whereIn('id', $orderPay->order_ids)->get();
|
||||
event($event = new AfterOrderPaidRedirectEvent($orders, $orderPay->id));
|
||||
}
|
||||
echo "success";
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,22 @@
|
|||
<?php
|
||||
|
||||
namespace Yunshop\HftxPay\services;
|
||||
|
||||
use app\common\exceptions\AppException;
|
||||
use app\common\helpers\Url;
|
||||
use app\common\models\Member;
|
||||
use app\common\models\PayOrder;
|
||||
use app\common\services\Pay;
|
||||
use BsPaySdk\core\BsPay;
|
||||
use BsPaySdk\core\BsPayClient;
|
||||
use BsPaySdk\request\V2TradePaymentJspayRequest;
|
||||
use BsPaySdk\request\V2TradePaymentScanpayRefundRequest;
|
||||
|
||||
# SDK 初始化文件加载
|
||||
require_once dirname(__FILE__) . "/../BsPaySdk/init.php";
|
||||
require_once dirname(__FILE__) . "/../BsPaySdk/request/V2TradePaymentJspayRequest.php";
|
||||
require_once dirname(__FILE__) . "/../BsPaySdk/request/V2TradePaymentScanpayRefundRequest.php";
|
||||
|
||||
class HfPay extends Pay
|
||||
{
|
||||
protected $notify_url;
|
||||
|
|
@ -28,6 +35,7 @@ class HfPay extends Pay
|
|||
207 => 'T_H5',
|
||||
208 => 'T_APP',
|
||||
209 => 'T_NATIVE',
|
||||
127 => '',
|
||||
'T_JSAPI' => '微信公众号',
|
||||
'T_MINIAPP' => '微信小程序',
|
||||
'A_JSAPI' => '支付宝JS',
|
||||
|
|
@ -39,6 +47,7 @@ class HfPay extends Pay
|
|||
'T_APP' => '微信APP支付(只支持直连)',
|
||||
'T_NATIVE' => '微信正扫(只支持直连)'
|
||||
];
|
||||
|
||||
/**
|
||||
* WechatH5Pay constructor.
|
||||
* @throws AppException
|
||||
|
|
@ -67,6 +76,10 @@ class HfPay extends Pay
|
|||
*/
|
||||
public function doPay($data)
|
||||
{
|
||||
|
||||
$op = "{$this->payTpye[$this->TradeType]}订单支付 订单号:" . $data['order_no'];
|
||||
$this->log($data['extra']['type'], $this->payTpye[$this->TradeType], $data['amount'], $op, $data['order_no'], Pay::ORDER_STATUS_NON, \YunShop::app()->getMemberId());
|
||||
|
||||
$this->notify_url = Url::shopSchemeUrl('payment/hfpay/notifyUrl.php');
|
||||
// 2.组装请求参数
|
||||
$request = new V2TradePaymentJspayRequest();
|
||||
|
|
@ -108,11 +121,34 @@ class HfPay extends Pay
|
|||
* @param $refundmoney
|
||||
* @return void
|
||||
*/
|
||||
public function doRefund($out_trade_no, $totalmoney, $refundmoney)
|
||||
public function doRefund($out_trade_no, $OrgReqDate, $refundmoney, $org_req_seq_id = '')
|
||||
{
|
||||
$this->notify_url = Url::shopSchemeUrl('payment/hfpay/returnUrl.php');
|
||||
// 2.组装请求参数
|
||||
$request = new V2TradePaymentScanpayRefundRequest();
|
||||
// 请求日期
|
||||
$request->setReqDate(date("Ymd"));
|
||||
// 请求流水号
|
||||
$request->setReqSeqId($out_trade_no);
|
||||
// 商户号
|
||||
$request->setHuifuId($this->paySet['sys_id']);
|
||||
|
||||
var_dump($out_trade_no, $totalmoney, $refundmoney);die;
|
||||
$request->setOrgReqDate(date('Ymd', $OrgReqDate)); //原交易日
|
||||
// 交易金额
|
||||
$request->setOrdAmt($refundmoney);
|
||||
// 设置非必填字段
|
||||
$extendInfoMap = $this->getExtendInfos();
|
||||
$extendInfoMap['org_req_seq_id'] = PayOrder::getPayOrderInfo($out_trade_no)->value('trade_no');
|
||||
$request->setExtendInfo($extendInfoMap);
|
||||
// 3. 发起API调用
|
||||
$client = new BsPayClient();
|
||||
$result = $client->postRequest($request);
|
||||
if (!$result || $result->isError()) { //失败处理
|
||||
$data['msg'] = $result->getErrorInfo();
|
||||
} else { //成功处理
|
||||
$data = $result->getRspDatas()['data'];
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -120,7 +156,8 @@ class HfPay extends Pay
|
|||
* 获取扩展参数
|
||||
* @return array
|
||||
*/
|
||||
public function getExtendInfos(){
|
||||
public function getExtendInfos()
|
||||
{
|
||||
$data['notify_url'] = $this->notify_url;
|
||||
$data['remark'] = \YunShop::app()->uniacid;
|
||||
switch ($this->TradeType) {
|
||||
|
|
@ -140,6 +177,7 @@ class HfPay extends Pay
|
|||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 提现
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue