mirror of
https://gitee.com/zoujingli/WeChatDeveloper.git
synced 2025-04-05 01:42:45 +08:00
105 lines
4.2 KiB
PHP
105 lines
4.2 KiB
PHP
<?php
|
||
|
||
// +----------------------------------------------------------------------
|
||
// | WeChatDeveloper
|
||
// +----------------------------------------------------------------------
|
||
// | 版权所有 2014~2024 ThinkAdmin [ thinkadmin.top ]
|
||
// +----------------------------------------------------------------------
|
||
// | 官方网站: https://thinkadmin.top
|
||
// +----------------------------------------------------------------------
|
||
// | 开源协议 ( https://mit-license.org )
|
||
// | 免责声明 ( https://thinkadmin.top/disclaimer )
|
||
// +----------------------------------------------------------------------
|
||
// | gitee 代码仓库:https://gitee.com/zoujingli/WeChatDeveloper
|
||
// | github 代码仓库:https://github.com/zoujingli/WeChatDeveloper
|
||
// +----------------------------------------------------------------------
|
||
|
||
namespace WePayV3;
|
||
|
||
use WePayV3\Contracts\BasicWePay;
|
||
|
||
/**
|
||
* 普通商户商家转账到零钱
|
||
* @class Transfers
|
||
* @package WePayV3
|
||
*/
|
||
class Transfers extends BasicWePay
|
||
{
|
||
/**
|
||
* 发起商家批量转账
|
||
* @param array $body
|
||
* @return array
|
||
* @throws \WeChat\Exceptions\InvalidDecryptException
|
||
* @throws \WeChat\Exceptions\InvalidResponseException
|
||
* @link https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_1.shtml
|
||
*/
|
||
public function batchs($body)
|
||
{
|
||
if (empty($body['appid'])) {
|
||
$body['appid'] = $this->config['appid'];
|
||
}
|
||
if (isset($body['transfer_detail_list']) && is_array($body['transfer_detail_list'])) {
|
||
foreach ($body['transfer_detail_list'] as &$item) if (isset($item['user_name'])) {
|
||
$item['user_name'] = $this->rsaEncode($item['user_name']);
|
||
}
|
||
}
|
||
if (empty($body['total_num'])) {
|
||
$body['total_num'] = count($body['transfer_detail_list']);
|
||
}
|
||
return $this->doRequest('POST', '/v3/transfer/batches', json_encode($body, JSON_UNESCAPED_UNICODE), true);
|
||
}
|
||
|
||
/**
|
||
* 通过微信批次单号查询批次单
|
||
* @param string $batchId 微信批次单号(二选一)
|
||
* @param string $outBatchNo 商家批次单号(二选一)
|
||
* @param boolean $needQueryDetail 查询指定状态
|
||
* @param integer $offset 请求资源的起始位置
|
||
* @param integer $limit 最大明细条数
|
||
* @param string $detailStatus 查询指定状态
|
||
* @return array
|
||
* @throws \WeChat\Exceptions\InvalidResponseException
|
||
*/
|
||
public function query($batchId = '', $outBatchNo = '', $needQueryDetail = true, $offset = 0, $limit = 20, $detailStatus = 'ALL')
|
||
{
|
||
if (empty($batchId)) {
|
||
$pathinfo = "/v3/transfer/batches/out-batch-no/{$outBatchNo}";
|
||
} else {
|
||
$pathinfo = "/v3/transfer/batches/batch-id/{$batchId}";
|
||
}
|
||
$params = http_build_query([
|
||
'limit' => $limit,
|
||
'offset' => $offset,
|
||
'detail_status' => $detailStatus,
|
||
'need_query_detail' => $needQueryDetail ? 'true' : 'false',
|
||
]);
|
||
return $this->doRequest('GET', "{$pathinfo}?{$params}", '', true);
|
||
}
|
||
|
||
/**
|
||
* 通过微信明细单号查询明细单
|
||
* @param string $batchId 微信批次单号
|
||
* @param string $detailId 微信支付系统内部区分转账批次单下不同转账明细单的唯一标识
|
||
* @return array
|
||
* @throws \WeChat\Exceptions\InvalidResponseException
|
||
*/
|
||
public function detailBatchId($batchId, $detailId)
|
||
{
|
||
$pathinfo = "/v3/transfer/batches/batch-id/{$batchId}/details/detail-id/{$detailId}";
|
||
return $this->doRequest('GET', $pathinfo, '', true);
|
||
}
|
||
|
||
/**
|
||
* 通过商家明细单号查询明细单
|
||
* @param string $outBatchNo 商户系统内部的商家批次单号,在商户系统内部唯一
|
||
* @param string $outDetailNo 商户系统内部区分转账批次单下不同转账明细单的唯一标识
|
||
* @return array
|
||
* @throws \WeChat\Exceptions\InvalidResponseException
|
||
*/
|
||
public function detailOutBatchNo($outBatchNo, $outDetailNo)
|
||
{
|
||
$pathinfo = "/v3/transfer/batches/out-batch-no/{$outBatchNo}/details/out-detail-no/{$outDetailNo}";
|
||
return $this->doRequest('GET', $pathinfo, '', true);
|
||
}
|
||
}
|