cxgj/models/common/payment/WxpayTransfer.php
2023-11-27 09:45:13 +08:00

58 lines
1.7 KiB
PHP

<?php
/**
* @author Any
* @description KISS
* @date 2021年6月11日
* @version 1.0.0
*
* _____LOG_____
*
*/
namespace app\models\common\payment;
use app\models\UniqueOrderNo;
use app\models\User;
use app\models\Model;
class WxpayTransfer extends Model
{
/**
* @param \app\models\PaymentTransfer $paymentTransfer
* @param \app\models\User $user
* @return bool
* @throws PaymentException
*/
public function transfer($paymentTransfer, $user)
{
try {
$plugin = new \app\models\common\PluginService();
if($user->bindWxmp){
//已绑定微信小程序
$wxmpService = $plugin->getWxmpService($paymentTransfer->cx_mch_id);
$res = $wxmpService->pay->transfers([
'partner_trade_no' => $paymentTransfer->order_no,
'openid' => $user->bindWxmp->openid,
'amount' => $paymentTransfer->amount * 100,
'desc' => $paymentTransfer->title,
]);
if ($res['result_code'] != 'SUCCESS') {
throw new \Exception($res['err_code_des']);
}
} else {
throw new \Exception("无效打款方式");
}
$paymentTransfer->is_pay = 1;
if (!$paymentTransfer->save()) {
throw new \Exception($this->getErrorMsg($paymentTransfer));
}
return true;
} catch (\Exception $e) {
throw new PaymentException($e->getMessage());
}
}
}