Files
kiri-wchat/wx/V3/TransferBatches.php
T

50 lines
1.7 KiB
PHP
Raw Normal View History

2023-11-07 13:48:04 +08:00
<?php
namespace wchat\wx\V3;
use JetBrains\PhpStorm\ArrayShape;
use wchat\wx\SmallProgram;
class TransferBatches extends SmallProgram
{
use WxV3PaymentTait;
/**
2025-02-17 16:26:32 +08:00
* @param string $transfer_scene_id
* @param array $transfer_scene_report_infos
2023-11-07 14:02:43 +08:00
* @param TransferDetail $detail
2023-11-07 13:48:04 +08:00
* @return array
*/
2023-11-07 16:48:59 +08:00
#[ArrayShape([])]
2025-02-24 16:29:54 +08:00
public function transfer(string $transfer_scene_id, array $transfer_scene_report_infos, TransferDetail $detail): array
2023-11-07 13:48:04 +08:00
{
2023-11-14 00:06:57 +08:00
$payConfig = $this->getPayConfig();
$body = [];
if ($payConfig->typeIsApp()) {
$body['appid'] = $payConfig->pay->wx->appId;
} else {
$body['appid'] = $payConfig->appId;
}
2025-02-24 16:29:54 +08:00
$body['out_bill_no'] = $detail->out_detail_no;
2025-02-17 16:26:32 +08:00
$body["transfer_scene_id"] = $transfer_scene_id;
2025-02-24 16:29:54 +08:00
$body['openid'] = $detail->openid;
$body["transfer_amount"] = $detail->transfer_amount;
$body["transfer_remark"] = $detail->transfer_remark;
2025-02-17 16:26:32 +08:00
$body["transfer_scene_report_infos"] = $transfer_scene_report_infos;
2025-02-24 16:29:54 +08:00
$sign = $this->signature('POST', '/v3/fund-app/mch-transfer/transfer-bills', $json = json_encode($body, JSON_UNESCAPED_UNICODE));
2025-02-17 16:26:32 +08:00
2025-02-24 16:29:54 +08:00
$client = $this->createClient($sign, $json);
2025-02-18 11:53:54 +08:00
$client->post('/v3/fund-app/mch-transfer/transfer-bills');
2023-11-07 13:48:04 +08:00
$client->close();
2025-02-24 16:29:54 +08:00
$data = json_decode($client->getBody(), TRUE);
2023-11-07 16:29:44 +08:00
if (json_last_error() != JSON_ERROR_NONE) {
2025-02-24 16:29:54 +08:00
return ['code' => $client->getStatusCode(), 'message' => $client->getBody()];
2023-11-07 16:31:30 +08:00
} else {
return $data;
2023-11-07 16:29:44 +08:00
}
2023-11-07 13:48:04 +08:00
}
2025-02-18 11:53:54 +08:00
}