提现修改

hfpaylib6
liaoyin 3 weeks ago
parent 45f11579fb
commit 56e949aca7
  1. 22
      src/factory/impl/QueryFactory.php
  2. 23
      src/factory/impl/TradeFactory.php
  3. 2
      src/factory/object/trade/DeviceInfo.php
  4. 2
      src/factory/object/trade/DivDetail.php
  5. 2
      src/factory/object/trade/ObjectInfo.php
  6. 118
      src/factory/object/trade/WithdrawCashRequest.php
  7. 33
      src/factory/object/trade/WithdrawCashResponse.php

@ -211,4 +211,26 @@ class QueryFactory extends BaseFactory
}
return ChainBalance::make($result->getBody());
}
function openAccount(string $orderDate, string $orderId, string $transType)
{
// 20260422
// W260422150301297
// 8
//
$params = [
'order_date' => $orderDate,
'order_id' => $orderId,
'trans_type' => $transType
];
$result = $this->post('/api/alse/qry009', $params);
if(!$result->isSuccess()) {
return null;
}
return BindCardStatus::make($result->getBody());
}
}

@ -12,6 +12,8 @@ use Tansilu\HfPayLib\factory\object\trade\RefundInfo;
use Tansilu\HfPayLib\factory\object\trade\RefundRequest;
use Tansilu\HfPayLib\factory\object\trade\UnifiedOrder;
use Tansilu\HfPayLib\factory\object\trade\UnifiedOrderRequest;
use Tansilu\HfPayLib\factory\object\trade\WithdrawCashRequest;
use Tansilu\HfPayLib\factory\object\trade\WithdrawCashResponse;
use Tansilu\HfPayLib\http\Factory;
/**
@ -129,4 +131,25 @@ class TradeFactory extends Factory
}
return RefundGoodsResponse::make($result->getBody());
}
/**
* 取现
*
* @param WithdrawCashRequest $request
*
* @return WithdrawCashResponse|null
* @throws ParamsException
*
* @see https://hfpay.cloudpnr.com/customers/nft/#/transaction/withdrawCash
*/
function withdrawCash(WithdrawCashRequest $request): ?WithdrawCashResponse
{
$params = $request->toParams();
$result = $this->post('/api/acou/cash01', $params);
if (!$result->isSuccess()) {
return null;
}
return WithdrawCashResponse::make($result->getBody());
}
}

@ -49,7 +49,7 @@ class DeviceInfo implements JsonSerializable
return $self;
}
private array $data;
private array $data = [];
public function __get($name)
{

@ -22,7 +22,7 @@ class DivDetail implements JsonSerializable
return $self;
}
private array $data;
private array $data = [];
public function __get($name)
{

@ -33,7 +33,7 @@ class ObjectInfo implements JsonSerializable
return $self;
}
private array $data;
private array $data = [];
public function __get($name)
{

@ -0,0 +1,118 @@
<?php
namespace Tansilu\HfPayLib\factory\object\trade;
use Tansilu\HfPayLib\exception\ParamsException;
use Tansilu\HfPayLib\factory\object\RequestObj;
use Tansilu\HfPayLib\utils\StrFilterHelper;
/**
* 取现请求参数
*
* @property string $user_cust_id 用户客户号(付款人汇付客户号)必选
* @property string $order_date 订单日期 必选
* @property string $order_id 订单号 必选
* @property string $trans_amt 交易金额 必选,金额格式必须保留两位小数,例如2.00
* @property string $cash_type 取现方式 必选
* @property string $transaction_addr 交易发生地 必选
* @property string $purpose 用途 必选
* @property string $user_ip_addr 对手方IP 必选
* @property string $bind_card_id 取现绑卡ID 可选
* @property string $out_acct_id 出账账户号 可选
* @property string $fee_acct_id 手续费扣款子账户号 可选
* @property string $fee_cust_id 手续费扣款客户号 可选
* @property string $serv_amt 服务费 可选
* @property string $serv_cust_id 服务费收取方客户号 可选
* @property string $serv_acct_id 服务费账户号 可选
* @property string $bg_ret_url 商户后台应答地址 可选
* @property string $mer_priv 商户私有域 可选
* @property string $extension 扩展域 可选
* @property DeviceInfo $dev_info_json 设备静态信息 可选
*/
class WithdrawCashRequest
{
use RequestObj;
public function toParams(): array
{
$params = [];
if(empty($this->data['user_cust_id'])) {
throw new ParamsException('付款人汇付客户号不能为空', 'user_cust_id');
}
$params['user_cust_id'] = $this->data['user_cust_id'];
if(empty($this->data['order_date'])) {
throw new ParamsException('订单日期不能为空', 'order_date');
}
$params['order_date'] = $this->data['order_date'];
if(empty($this->data['order_id'])) {
throw new ParamsException('订单号不能为空', 'order_id');
}
$params['order_id'] = $this->data['order_id'];
if(empty($this->data['trans_amt'])) {
throw new ParamsException('取现金额不能为空', 'trans_amt');
}
$params['trans_amt'] = $this->data['trans_amt'];
if(empty($this->data['cash_type'])) {
throw new ParamsException('取现方式不能为空', 'cash_type');
}
$params['cash_type'] = $this->data['cash_type'];
if(empty($this->data['transaction_addr'])) {
throw new ParamsException('交易发生地不能为空', 'transaction_addr');
}
$params['transaction_addr'] = $this->data['transaction_addr'];
if(empty($this->data['purpose'])) {
throw new ParamsException('用途不能为空', 'purpose');
}
$params['purpose'] = $this->data['purpose'];
if(empty($this->data['user_ip_addr'])) {
throw new ParamsException('IP不能为空', 'user_ip_addr');
}
$params['user_ip_addr'] = $this->data['user_ip_addr'];
//以下为可选参数
if(!empty($this->data['bind_card_id'])) {
$params['bind_card_id'] = $this->data['bind_card_id'];
}
if(!empty($this->data['out_acct_id'])) {
$params['out_acct_id'] = $this->data['out_acct_id'];
}
if(!empty($this->data['fee_acct_id'])) {
$params['fee_acct_id'] = $this->data['fee_acct_id'];
}
if(!empty($this->data['fee_cust_id'])) {
$params['fee_cust_id'] = $this->data['fee_cust_id'];
}
if(!empty($this->data['serv_amt'])) {
$params['serv_amt'] = $this->data['serv_amt'];
}
if(!empty($this->data['serv_cust_id'])) {
$params['serv_cust_id'] = $this->data['serv_cust_id'];
}
if(!empty($this->data['serv_acct_id'])) {
$params['serv_acct_id'] = $this->data['serv_acct_id'];
}
if(!empty($this->data['bg_ret_url'])) {
$params['bg_ret_url'] = StrFilterHelper::fileUrl($this->data['bg_ret_url']);
}
if(!empty($this->data['mer_priv'])) {
$params['mer_priv'] = $this->data['mer_priv'];
}
if(!empty($this->data['extension'])) {
$params['extension'] = $this->data['extension'];
}
if(!empty($this->data['dev_info_json'])) {
$params['dev_info_json'] = $this->data['dev_info_json']->toJSON();
}
return $params;
}
}

@ -0,0 +1,33 @@
<?php
namespace Tansilu\HfPayLib\factory\object\trade;
use Tansilu\HfPayLib\factory\object\ResponseObj;
/**
* @property-read $resp_code 应答返回码
* @property-read $resp_desc 应答返回描述
* @property-read $mer_cust_id 商户客户号
* @property-read $user_cust_id 用户客户号(付款人汇付客户号)
* @property-read $order_date 订单日期
* @property-read $order_id 订单号
* @property-read $platform_seq_id 本平台交易唯一标识号
* @property-read $trans_amt 交易金额
* @property-read $real_trans_amt 实际到账金额(取现失败则不传)
* @property-read $bind_card_id 取现绑卡ID
* @property-read $out_acct_id 出账账户号
* @property-read $bank_id 开户银行代号
* @property-read $fee_amt 手续费金额
* @property-read $fee_cust_id 手续费扣款客户号
* @property-read $fee_acct_id 手续费扣款子账户号
* @property-read $serv_amt 服务费
* @property-read $serv_cust_id 服务费收取方客户号
* @property-read $serv_acct_id 服务费账户号
* @property-read $bg_ret_url 商户后台应答地址
* @property-read $mer_priv 商户私有域
* @property-read $extension 扩展域
*/
class WithdrawCashResponse
{
use ResponseObj;
}
Loading…
Cancel
Save