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

<?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']);
}
}
}