58 lines
1.7 KiB
PHP
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());
|
|
}
|
|
}
|
|
}
|
|
|