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.
153 lines
4.3 KiB
153 lines
4.3 KiB
<?php
|
|
|
|
namespace app\base\controller\demo\api;
|
|
|
|
use app\base\model\app\AppUser;
|
|
use EasyWeChat\Factory;
|
|
use think\App;
|
|
use think\facade\Request;
|
|
|
|
class Mpalipay extends Base
|
|
{
|
|
|
|
/**
|
|
* 预授权
|
|
* @date 2022-04-01
|
|
*/
|
|
public function order()
|
|
{
|
|
$param = input('post.');
|
|
$ali_pay_param = get_mp_alipay_config();
|
|
|
|
$ali_pay_class = new \ali\alipay\pay\AliPay($ali_pay_param);
|
|
$notify_url = Request::domain() . '/index.php/base/demo/api/Callback/freezeNotify/uid/' . UID;
|
|
$order_number = date("Ymd") . createNonceStr(4, ['number']);
|
|
$result = $ali_pay_class->freeze($param['money'], $order_number, '预授权冻结', $notify_url);
|
|
|
|
//记录日志
|
|
platformLog([
|
|
'out_order_no' => $order_number,
|
|
'out_request_no' => $order_number,
|
|
'order_title' => '预授权冻结',
|
|
'amount' => round($param['money'], 2),
|
|
'product_code' => 'PRE_AUTH_ONLINE',
|
|
], $result, 'alipaysdk_pay_mp_alipay_freeze_' . UID);
|
|
|
|
if (!isset($result['body'])) {
|
|
return sendErrorMessage(4100, '生成预授权订单失败');
|
|
}
|
|
|
|
return sendSuccessMessage(['pay_params' => $result['body']]);
|
|
}
|
|
|
|
/**
|
|
* 预授权支付
|
|
* @date 2022-04-02
|
|
*/
|
|
public function freezePay()
|
|
{
|
|
$param = input('post.');
|
|
$ali_pay_param = get_mp_alipay_config();
|
|
|
|
$ali_pay_class = new \ali\alipay\pay\AliPay($ali_pay_param);
|
|
// $notify_url = Request::domain() . '/index.php/base/demo/api/Callback/tradeNotify/uid/' . UID;
|
|
$order_number = date("Ymd") . createNonceStr(4, ['number']);
|
|
$result = $ali_pay_class->freezePay($param['money'], $order_number, '预授权冻结后支付', $param['auth_code']);
|
|
|
|
//记录日志
|
|
platformLog([
|
|
'order_number' => $order_number,
|
|
'money' => $param['money'],
|
|
'body' => '预授权冻结',
|
|
'auth_code' => $param['auth_code']
|
|
], $result, 'alipaysdk_pay_freeze_pay_' . UID);
|
|
|
|
dump($result);
|
|
if ($result['code'] !== '10000') {
|
|
return sendErrorMessage($result['code'], $result['sub_msg']);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 预授权资金解冻
|
|
* @date 2022-04-02
|
|
*/
|
|
public function unfreeze()
|
|
{
|
|
$param = input('post.');
|
|
$ali_pay_param = get_mp_alipay_config();
|
|
|
|
$ali_pay_class = new \ali\alipay\pay\AliPay($ali_pay_param);
|
|
|
|
$order_number = 'JD' . date("Ymd") . createNonceStr(4, ['number']);
|
|
$result = $ali_pay_class->unfreeze($param['money'], $order_number, $param['auth_no'], '资金解冻');
|
|
|
|
//记录日志
|
|
platformLog([
|
|
'order_number' => $order_number,
|
|
'money' => $param['money'],
|
|
'remark' => '资金解冻',
|
|
'auth_code' => $param['auth_no']
|
|
], $result, 'alipaysdk_pay_unfreeze_' . UID);
|
|
|
|
dump($result);
|
|
if ($result['code'] !== '10000') {
|
|
return sendErrorMessage($result['code'], $result['sub_msg']);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 预授权查询
|
|
* @date 2022-04-01
|
|
*/
|
|
public function orderFind()
|
|
{
|
|
$param = input('post.');
|
|
$ali_pay_param = get_mp_alipay_config();
|
|
|
|
$ali_pay_class = new \ali\alipay\pay\AliPay($ali_pay_param);
|
|
|
|
$result = $ali_pay_class->freezeQuery($param['order_number']);
|
|
|
|
//记录日志
|
|
platformLog([
|
|
'out_order_no' => $param['order_number'],
|
|
'out_request_no' => $param['order_number'],
|
|
], $result, 'alipaysdk_find_' . UID);
|
|
|
|
if ($result['code'] !== '10000') {
|
|
return sendErrorArray($result['code'], $result['sub_msg']);
|
|
}
|
|
|
|
dump($result);
|
|
}
|
|
|
|
/**
|
|
* 预授权支付
|
|
* @date 2022-04-02
|
|
*/
|
|
public function freezePayRefund()
|
|
{
|
|
$param = input('post.');
|
|
$ali_pay_param = get_mp_alipay_config();
|
|
|
|
$ali_pay_class = new \ali\alipay\pay\AliPay($ali_pay_param);
|
|
|
|
$result = $ali_pay_class->refund($param['order_number'], $param['order_number'] . 'R', 0.01);
|
|
|
|
//记录日志
|
|
platformLog([
|
|
|
|
], $result, 'alipaysdk_pay_freeze_pay111_' . UID);
|
|
|
|
dump($result);
|
|
if ($result['code'] !== '10000') {
|
|
return sendErrorMessage($result['code'], $result['sub_msg']);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|