Default Changelist

This commit is contained in:
xl
2023-11-07 15:13:11 +08:00
parent dbdae7c6c5
commit 43f504b2ad
23 changed files with 832 additions and 624 deletions
+8 -1
View File
@@ -162,7 +162,14 @@ abstract class Subject extends Multiprogramming
$client = new Client($this->getHost(), 443, true); $client = new Client($this->getHost(), 443, true);
$client->withHeader(['Content-Type' => 'application/json; charset=utf-8']); $client->withHeader(['Content-Type' => 'application/json; charset=utf-8']);
$client->post($this->getUrl() . '?access_token=' . $access_token, $params);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->getUrl() . '?access_token=' . $access_token, $params);
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
+8 -1
View File
@@ -133,7 +133,14 @@ abstract class Template extends Multiprogramming
$client = new Client($this->getHost(), 443, true); $client = new Client($this->getHost(), 443, true);
$client->withHeader(['Content-Type' => 'application/json; charset=utf-8']); $client->withHeader(['Content-Type' => 'application/json; charset=utf-8']);
$client->post($this->getUrl() . '?access_token=' . $access_token, $params);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->getUrl() . '?access_token=' . $access_token, $params);
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
+584 -547
View File
File diff suppressed because it is too large Load Diff
+8 -1
View File
@@ -27,7 +27,14 @@ class Account extends SmallProgram
$client = new Client('api.q.qq.com', 443, true); $client = new Client('api.q.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$client->get('sns/jscode2session', $param);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->get('sns/jscode2session', $param);
$client->close(); $client->close();
return Result::init($client); return Result::init($client);
+7
View File
@@ -52,6 +52,13 @@ class Recharge extends SmallProgram
$client = new Client('qpay.qq.com', 443, true); $client = new Client('qpay.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/xml']); $client->withHeader(['Content-Type' => 'application/xml']);
$client->withBody($this->builder()); $client->withBody($this->builder());
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->uniformer); $client->post($this->uniformer);
$client->close(); $client->close();
+10
View File
@@ -303,6 +303,11 @@ class Redhat extends SmallProgram
$client->withSslKeyFile($this->config->getSslKey()); $client->withSslKeyFile($this->config->getSslKey());
$client->withSslCertFile($this->config->getSslCert()); $client->withSslCertFile($this->config->getSslCert());
$client->withCa($this->config->getSslCa()); $client->withCa($this->config->getSslCa());
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->sendUrl, http_build_query($this->generate())); $client->post($this->sendUrl, http_build_query($this->generate()));
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
@@ -336,6 +341,11 @@ class Redhat extends SmallProgram
$requestParam['sign'] = $this->builderSign($requestParam); $requestParam['sign'] = $this->builderSign($requestParam);
$client = new Client('qpay.qq.com', 443, true); $client = new Client('qpay.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->searchUrl, $requestParam); $client->post($this->searchUrl, $requestParam);
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
+10
View File
@@ -37,6 +37,11 @@ class SecCheck extends SmallProgram
]; ];
$client = new Client('api.q.qq.com', 443, true); $client = new Client('api.q.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'multipart/form-data']); $client->withHeader(['Content-Type' => 'multipart/form-data']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->upload($path, $data); $client->upload($path, $data);
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
@@ -64,6 +69,11 @@ class SecCheck extends SmallProgram
$client = new Client('api.q.qq.com', 443, true); $client = new Client('api.q.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($url, ['appid' => $this->config->getAppid(), 'content' => $content]); $client->post($url, ['appid' => $this->config->getAppid(), 'content' => $content]);
$client->close(); $client->close();
+5
View File
@@ -22,6 +22,11 @@ class Token extends SmallProgram
]; ];
$client = new Client('api.q.qq.com', 443, true); $client = new Client('api.q.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->get('/api/getToken', $query); $client->get('/api/getToken', $query);
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
+8 -1
View File
@@ -91,7 +91,14 @@ class Cash_Bonus extends SmallProgram
$client->withSslCertFile($this->getConfig()->getSslCert()); $client->withSslCertFile($this->getConfig()->getSslCert());
$client->withSslKeyFile($this->getConfig()->getSslKey()); $client->withSslKeyFile($this->getConfig()->getSslKey());
$client->withCa($this->getConfig()->getSslCa()); $client->withCa($this->getConfig()->getSslCa());
$client->post($this->_cash, $this->orderConfig($mch_billno, $openId, $price));
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->_cash, $this->orderConfig($mch_billno, $openId, $price));
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
return new Result(code: 505, message: $client->getBody()); return new Result(code: 505, message: $client->getBody());
+8 -1
View File
@@ -77,7 +77,14 @@ class Enterprise_payment extends SmallProgram
$client->withSslCertFile($this->getConfig()->getSslCert()); $client->withSslCertFile($this->getConfig()->getSslCert());
$client->withSslKeyFile($this->getConfig()->getSslKey()); $client->withSslKeyFile($this->getConfig()->getSslKey());
$client->withCa($this->getConfig()->getSslCa()); $client->withCa($this->getConfig()->getSslCa());
$client->post($this->_cash, $this->orderConfig($mch_billno, $openId, $price));
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->_cash, $this->orderConfig($mch_billno, $openId, $price));
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
return new Result(code: 505, message: $client->getBody()); return new Result(code: 505, message: $client->getBody());
+12
View File
@@ -30,6 +30,9 @@ class Account extends SmallProgram
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
if (!empty($this->getConfig()->getProxyHost()) && $this->getConfig()->getProxyPort() > 0) {
$client->withProxyHost("192.168.0.57")->withProxyPort(12286);
}
$client->get('sns/jscode2session', $param); $client->get('sns/jscode2session', $param);
$client->close(); $client->close();
@@ -59,6 +62,9 @@ class Account extends SmallProgram
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
if (!empty($this->getConfig()->getProxyHost()) && $this->getConfig()->getProxyPort() > 0) {
$client->withProxyHost("192.168.0.57")->withProxyPort(12286);
}
$client->get('cgi-bin/user/info', $query); $client->get('cgi-bin/user/info', $query);
$client->close(); $client->close();
@@ -112,6 +118,12 @@ class Account extends SmallProgram
$sendBody['width'] = $width; $sendBody['width'] = $width;
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($url . $this->getConfig()->getAccessToken(), $sendBody); $client->post($url . $this->getConfig()->getAccessToken(), $sendBody);
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
+10
View File
@@ -261,6 +261,11 @@ class Message extends SmallProgram
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'multipart/form-data']); $client->withHeader(['Content-Type' => 'multipart/form-data']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($url, $data); $client->post($url, $data);
$client->close(); $client->close();
@@ -297,6 +302,11 @@ class Message extends SmallProgram
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($url, $this->msgData); $client->post($url, $this->msgData);
$client->close(); $client->close();
+5
View File
@@ -148,6 +148,11 @@ class PublicTemplate extends SmallProgram
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($url, $default); $client->post($url, $default);
$client->close(); $client->close();
+15
View File
@@ -36,6 +36,11 @@ class SecCheck extends SmallProgram
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'multipart/form-data']); $client->withHeader(['Content-Type' => 'multipart/form-data']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->upload($this->_url . '?access_token=' . $access_token, [ $client->upload($this->_url . '?access_token=' . $access_token, [
'media' => new \CURLFile($path) 'media' => new \CURLFile($path)
]); ]);
@@ -66,6 +71,11 @@ class SecCheck extends SmallProgram
$requestUrl = $this->_mediaCheckAsync . $this->config->getAccessToken(); $requestUrl = $this->_mediaCheckAsync . $this->config->getAccessToken();
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($requestUrl, ['media_url' => $url, 'media_type' => $type]); $client->post($requestUrl, ['media_url' => $url, 'media_type' => $type]);
$client->close(); $client->close();
@@ -104,6 +114,11 @@ class SecCheck extends SmallProgram
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($requestUrl, ['content' => $content]); $client->post($requestUrl, ['content' => $content]);
$client->close(); $client->close();
+5
View File
@@ -22,6 +22,11 @@ class Token extends SmallProgram
]; ];
$client = new Client('api.weixin.qq.com', 443, true); $client = new Client('api.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->get('cgi-bin/token', $query); $client->get('cgi-bin/token', $query);
$client->close(); $client->close();
if (!in_array($client->getStatusCode(), [101, 200, 201])) { if (!in_array($client->getStatusCode(), [101, 200, 201])) {
+5
View File
@@ -34,6 +34,11 @@ class WxV2AppPayment extends SmallProgram
$client = new Client('api.mch.weixin.qq.com', 443, true); $client = new Client('api.mch.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->withBody($this->sign($body)); $client->withBody($this->sign($body));
$client->post($this->uniformed); $client->post($this->uniformed);
$client->close(); $client->close();
+20
View File
@@ -37,6 +37,11 @@ class WxV2PayJsApi extends SmallProgram
$client = new Client('api.mch.weixin.qq.com', 443, true); $client = new Client('api.mch.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$client->withBody($this->sign($body)); $client->withBody($this->sign($body));
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->uniformed); $client->post($this->uniformed);
$client->close(); $client->close();
@@ -83,6 +88,11 @@ class WxV2PayJsApi extends SmallProgram
$client = new Client('api.mch.weixin.qq.com', 443, true); $client = new Client('api.mch.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$client->withBody($this->sign($body)); $client->withBody($this->sign($body));
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->uniformed); $client->post($this->uniformed);
$client->close(); $client->close();
@@ -129,6 +139,11 @@ class WxV2PayJsApi extends SmallProgram
$client = new Client('api.mch.weixin.qq.com', 443, true); $client = new Client('api.mch.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$client->withBody($this->sign($body)); $client->withBody($this->sign($body));
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->uniformed); $client->post($this->uniformed);
$client->close(); $client->close();
@@ -175,6 +190,11 @@ class WxV2PayJsApi extends SmallProgram
$client = new Client('api.mch.weixin.qq.com', 443, true); $client = new Client('api.mch.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$client->withBody($this->sign($body)); $client->withBody($this->sign($body));
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->uniformed); $client->post($this->uniformed);
$client->close(); $client->close();
+5
View File
@@ -40,6 +40,11 @@ class WxV2Withdrawal extends SmallProgram
$client = new Client('api.mch.weixin.qq.com', 443, true); $client = new Client('api.mch.weixin.qq.com', 443, true);
$client->withHeader(['Content-Type' => 'application/json']); $client->withHeader(['Content-Type' => 'application/json']);
$client->withBody($body = Help::toXml($array)); $client->withBody($body = Help::toXml($array));
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post($this->transfers); $client->post($this->transfers);
$client->close(); $client->close();
+7 -2
View File
@@ -32,8 +32,13 @@ class TransferBatches extends SmallProgram
$client = new Client('api.mch.weixin.qq.com', 443, TRUE); $client = new Client('api.mch.weixin.qq.com', 443, TRUE);
$client->withAddedHeader('Authorization', $sign)->withContentType('application/json') $client->withAddedHeader('Authorization', $sign)->withContentType('application/json')
->withAgent('application/json')->withBody($json) ->withAgent('application/json')->withBody($json)->withAddedHeader("Accept", "*/*");
->post('/v3/transfer/batches'); $proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post('/v3/transfer/batches');
$client->close(); $client->close();
return json_decode($client->getBody(), TRUE); return json_decode($client->getBody(), TRUE);
+30 -25
View File
@@ -10,37 +10,42 @@ class WxV3AppPayment extends SmallProgram
{ {
use WxV3PaymentTait; use WxV3PaymentTait;
/** /**
* @param $orderNo * @param $orderNo
* @param int $total * @param int $total
* @param string|null $openId * @param string|null $openId
* @param string $payer_client_ip * @param string $payer_client_ip
* @return array * @return array
* @throws Exception * @throws Exception
*/ */
public function payment($orderNo, int $total, string $openId = NULL, string $payer_client_ip = '127.0.0.1'): array public function payment($orderNo, int $total, string $openId = NULL, string $payer_client_ip = '127.0.0.1'): array
{ {
$body = $this->getInitCore($orderNo, $total); $body = $this->getInitCore($orderNo, $total);
$body['scene_info'] = ['payer_client_ip' => $payer_client_ip]; $body['scene_info'] = ['payer_client_ip' => $payer_client_ip];
$sign = $this->signature('POST', '/v3/pay/transactions/components', $json = json_encode($body, JSON_UNESCAPED_UNICODE)); $sign = $this->signature('POST', '/v3/pay/transactions/components', $json = json_encode($body, JSON_UNESCAPED_UNICODE));
$client = new Client('api.mch.weixin.qq.com', 443, TRUE); $client = new Client('api.mch.weixin.qq.com', 443, TRUE);
$client->withAddedHeader('Authorization', $sign)->withContentType('application/json') $client->withAddedHeader('Authorization', $sign)->withContentType('application/json')
->withAgent('application/json')->withBody($json) ->withAgent('application/json')->withBody($json)->withAddedHeader("Accept", "*/*");
->post('/v3/pay/transactions/components'); $proxyHost = $this->getConfig()->getProxyHost();
$client->close(); $proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post('/v3/pay/transactions/components');
$client->close();
$json = json_decode($client->getBody(), TRUE); $json = json_decode($client->getBody(), TRUE);
if (!isset($json['prepay_id'])) { if (!isset($json['prepay_id'])) {
throw new Exception('微信支付调用失败'); throw new Exception('微信支付调用失败');
} }
return $this->createResponse($json, $body); return $this->createResponse($json, $body);
} }
} }
+7 -2
View File
@@ -31,8 +31,13 @@ class WxV3NativePayment extends SmallProgram
$client = new Client('api.mch.weixin.qq.com', 443, TRUE); $client = new Client('api.mch.weixin.qq.com', 443, TRUE);
$client->withAddedHeader('Authorization', $sign)->withContentType('application/json') $client->withAddedHeader('Authorization', $sign)->withContentType('application/json')
->withAgent('application/json')->withBody($json) ->withAgent('application/json')->withBody($json)->withAddedHeader("Accept", "*/*");
->post('/v3/pay/transactions/native'); $proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post('/v3/pay/transactions/native');
$client->close(); $client->close();
$json = json_decode($client->getBody(), TRUE); $json = json_decode($client->getBody(), TRUE);
+7 -1
View File
@@ -34,7 +34,13 @@ class WxV3Payment extends SmallProgram
->withContentType('application/json') ->withContentType('application/json')
->withAddedHeader('User-Agent', 'application/json') ->withAddedHeader('User-Agent', 'application/json')
->withBody($json) ->withBody($json)
->post('/v3/pay/transactions/jsapi'); ->withAddedHeader("Accept", "*/*");
$proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post('/v3/pay/transactions/jsapi');
$client->close(); $client->close();
$json = json_decode($client->getBody(), TRUE); $json = json_decode($client->getBody(), TRUE);
+48 -42
View File
@@ -12,56 +12,62 @@ class WxV3Withdrawal extends SmallProgram
{ {
use WxV3PaymentTait; use WxV3PaymentTait;
/** /**
* @param $orderNo * @param $orderNo
* @param string $batch_name * @param string $batch_name
* @param string $batch_remark * @param string $batch_remark
* @param TransferDetail[] $details * @param TransferDetail[] $details
* @return array * @return array
* @throws Exception * @throws Exception
*/ */
public function payment($orderNo, string $batch_name, string $batch_remark, array $details): array public function payment($orderNo, string $batch_name, string $batch_remark, array $details): array
{ {
$body = $this->create($orderNo, $batch_name, $batch_remark, $details); $body = $this->create($orderNo, $batch_name, $batch_remark, $details);
$sign = $this->signature('POST', '/v3/pay/transactions/batches', $json = json_encode($body, JSON_UNESCAPED_UNICODE)); $sign = $this->signature('POST', '/v3/pay/transactions/batches', $json = json_encode($body, JSON_UNESCAPED_UNICODE));
$client = new Client('api.mch.weixin.qq.com', 443, TRUE); $client = new Client('api.mch.weixin.qq.com', 443, TRUE);
$client->withAddedHeader('Authorization', $sign) $client->withAddedHeader('Authorization', $sign)
->withContentType('application/json') ->withContentType('application/json')
->withAddedHeader('User-Agent', 'application/json') ->withAddedHeader('User-Agent', 'application/json')
->withBody($json) ->withBody($json)
->post('/v3/pay/transactions/batches'); ->withAddedHeader("Accept", "*/*");
$client->close(); $proxyHost = $this->getConfig()->getProxyHost();
$proxyPort = $this->getConfig()->getProxyPort();
if (!empty($proxyHost) && $proxyPort > 0) {
$client->withProxyHost($proxyHost)->withProxyPort($proxyPort);
}
$client->post('/v3/pay/transactions/batches');
$client->close();
$json = json_decode($client->getBody(), TRUE); $json = json_decode($client->getBody(), TRUE);
if (!isset($json['prepay_id'])) { if (!isset($json['prepay_id'])) {
throw new Exception('微信支付调用失败'); throw new Exception('微信支付调用失败');
} }
return $this->createResponse($json, $body); return $this->createResponse($json, $body);
} }
#[ArrayShape(['transfer_detail_list' => "array", 'total_amount' => "int", 'total_num' => "int", 'batch_remark' => "string", 'batch_name' => "string", 'out_batch_no' => ""])] #[ArrayShape(['transfer_detail_list' => "array", 'total_amount' => "int", 'total_num' => "int", 'batch_remark' => "string", 'batch_name' => "string", 'out_batch_no' => ""])]
private function create($orderNo, string $batch_name, string $batch_remark, array $details): array private function create($orderNo, string $batch_name, string $batch_remark, array $details): array
{ {
$total = 0; $total = 0;
$body = ['transfer_detail_list' => []]; $body = ['transfer_detail_list' => []];
$body['out_batch_no'] = $orderNo; $body['out_batch_no'] = $orderNo;
$body['batch_name'] = $batch_name; $body['batch_name'] = $batch_name;
$body['batch_remark'] = $batch_remark; $body['batch_remark'] = $batch_remark;
$body['total_num'] = count($details); $body['total_num'] = count($details);
foreach ($details as $detail) { foreach ($details as $detail) {
$total += $detail->transfer_amount; $total += $detail->transfer_amount;
$body['transfer_detail_list'][] = $detail->toArray(); $body['transfer_detail_list'][] = $detail->toArray();
} }
$body['total_amount'] = $total; $body['total_amount'] = $total;
return $body; return $body;
} }
} }