_kernel = $kernel; } /** * @param string $title * @param string $cover * @param string $content * @param string $contentComment * @param string $ctype * @param string $benefit * @param string $extTags * @param string $loginIds * @return AlipayOpenPublicMessageContentCreateResponse * @throws TeaError * @throws Exception * @throws TeaUnableRetryError */ public function createImageTextContent($title, $cover, $content, $contentComment, $ctype, $benefit, $extTags, $loginIds){ $_runtime = [ "ignoreSSL" => $this->_kernel->getConfig("ignoreSSL"), "httpProxy" => $this->_kernel->getConfig("httpProxy"), "connectTimeout" => 15000, "readTimeout" => 15000, "retry" => [ "maxAttempts" => 0 ] ]; $_lastRequest = null; $_lastException = null; $_now = time(); $_retryTimes = 0; while (Tea::allowRetry(@$_runtime["retry"], $_retryTimes, $_now)) { if ($_retryTimes > 0) { $_backoffTime = Tea::getBackoffTime(@$_runtime["backoff"], $_retryTimes); if ($_backoffTime > 0) { Tea::sleep($_backoffTime); } } $_retryTimes = $_retryTimes + 1; try { $_request = new Request(); $systemParams = [ "method" => "alipay.open.public.message.content.create", "app_id" => $this->_kernel->getConfig("appId"), "timestamp" => $this->_kernel->getTimestamp(), "format" => "json", "version" => "1.0", "alipay_sdk" => $this->_kernel->getSdkVersion(), "charset" => "UTF-8", "sign_type" => $this->_kernel->getConfig("signType"), "app_cert_sn" => $this->_kernel->getMerchantCertSN(), "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN() ]; $bizParams = [ "title" => $title, "cover" => $cover, "content" => $content, "could_comment" => $contentComment, "ctype" => $ctype, "benefit" => $benefit, "ext_tags" => $extTags, "login_ids" => $loginIds ]; $textParams = []; $_request->protocol = $this->_kernel->getConfig("protocol"); $_request->method = "POST"; $_request->pathname = "/gateway.do"; $_request->headers = [ "host" => $this->_kernel->getConfig("gatewayHost"), "content-type" => "application/x-www-form-urlencoded;charset=utf-8" ]; $_request->query = $this->_kernel->sortMap(Tea::merge([ "sign" => $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey")) ], $systemParams, $textParams)); $_request->body = $this->_kernel->toUrlEncodedRequestBody($bizParams); $_lastRequest = $_request; $_response= Tea::send($_request, $_runtime); $respMap = $this->_kernel->readAsJson($_response, "alipay.open.public.message.content.create"); if ($this->_kernel->isCertMode()) { if ($this->_kernel->verify($respMap, $this->_kernel->extractAlipayPublicKey($this->_kernel->getAlipayCertSN($respMap)))) { return AlipayOpenPublicMessageContentCreateResponse::fromMap($this->_kernel->toRespModel($respMap)); } } else { if ($this->_kernel->verify($respMap, $this->_kernel->getConfig("alipayPublicKey"))) { return AlipayOpenPublicMessageContentCreateResponse::fromMap($this->_kernel->toRespModel($respMap)); } } throw new TeaError([ "message" => "验签失败,请检查支付宝公钥设置是否正确。" ]); } catch (Exception $e) { if (!($e instanceof TeaError)) { $e = new TeaError([], $e->getMessage(), $e->getCode(), $e); } if (Tea::isRetryable($e)) { $_lastException = $e; continue; } throw $e; } } throw new TeaUnableRetryError($_lastRequest, $_lastException); } /** * @param string $contentId * @param string $title * @param string $cover * @param string $content * @param string $couldComment * @param string $ctype * @param string $benefit * @param string $extTags * @param string $loginIds * @return AlipayOpenPublicMessageContentModifyResponse * @throws TeaError * @throws Exception * @throws TeaUnableRetryError */ public function modifyImageTextContent($contentId, $title, $cover, $content, $couldComment, $ctype, $benefit, $extTags, $loginIds){ $_runtime = [ "ignoreSSL" => $this->_kernel->getConfig("ignoreSSL"), "httpProxy" => $this->_kernel->getConfig("httpProxy"), "connectTimeout" => 15000, "readTimeout" => 15000, "retry" => [ "maxAttempts" => 0 ] ]; $_lastRequest = null; $_lastException = null; $_now = time(); $_retryTimes = 0; while (Tea::allowRetry(@$_runtime["retry"], $_retryTimes, $_now)) { if ($_retryTimes > 0) { $_backoffTime = Tea::getBackoffTime(@$_runtime["backoff"], $_retryTimes); if ($_backoffTime > 0) { Tea::sleep($_backoffTime); } } $_retryTimes = $_retryTimes + 1; try { $_request = new Request(); $systemParams = [ "method" => "alipay.open.public.message.content.modify", "app_id" => $this->_kernel->getConfig("appId"), "timestamp" => $this->_kernel->getTimestamp(), "format" => "json", "version" => "1.0", "alipay_sdk" => $this->_kernel->getSdkVersion(), "charset" => "UTF-8", "sign_type" => $this->_kernel->getConfig("signType"), "app_cert_sn" => $this->_kernel->getMerchantCertSN(), "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN() ]; $bizParams = [ "content_id" => $contentId, "title" => $title, "cover" => $cover, "content" => $content, "could_comment" => $couldComment, "ctype" => $ctype, "benefit" => $benefit, "ext_tags" => $extTags, "login_ids" => $loginIds ]; $textParams = []; $_request->protocol = $this->_kernel->getConfig("protocol"); $_request->method = "POST"; $_request->pathname = "/gateway.do"; $_request->headers = [ "host" => $this->_kernel->getConfig("gatewayHost"), "content-type" => "application/x-www-form-urlencoded;charset=utf-8" ]; $_request->query = $this->_kernel->sortMap(Tea::merge([ "sign" => $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey")) ], $systemParams, $textParams)); $_request->body = $this->_kernel->toUrlEncodedRequestBody($bizParams); $_lastRequest = $_request; $_response= Tea::send($_request, $_runtime); $respMap = $this->_kernel->readAsJson($_response, "alipay.open.public.message.content.modify"); if ($this->_kernel->isCertMode()) { if ($this->_kernel->verify($respMap, $this->_kernel->extractAlipayPublicKey($this->_kernel->getAlipayCertSN($respMap)))) { return AlipayOpenPublicMessageContentModifyResponse::fromMap($this->_kernel->toRespModel($respMap)); } } else { if ($this->_kernel->verify($respMap, $this->_kernel->getConfig("alipayPublicKey"))) { return AlipayOpenPublicMessageContentModifyResponse::fromMap($this->_kernel->toRespModel($respMap)); } } throw new TeaError([ "message" => "验签失败,请检查支付宝公钥设置是否正确。" ]); } catch (Exception $e) { if (!($e instanceof TeaError)) { $e = new TeaError([], $e->getMessage(), $e->getCode(), $e); } if (Tea::isRetryable($e)) { $_lastException = $e; continue; } throw $e; } } throw new TeaUnableRetryError($_lastRequest, $_lastException); } /** * @param string $text * @return AlipayOpenPublicMessageTotalSendResponse * @throws TeaError * @throws Exception * @throws TeaUnableRetryError */ public function sendText($text){ $_runtime = [ "ignoreSSL" => $this->_kernel->getConfig("ignoreSSL"), "httpProxy" => $this->_kernel->getConfig("httpProxy"), "connectTimeout" => 15000, "readTimeout" => 15000, "retry" => [ "maxAttempts" => 0 ] ]; $_lastRequest = null; $_lastException = null; $_now = time(); $_retryTimes = 0; while (Tea::allowRetry(@$_runtime["retry"], $_retryTimes, $_now)) { if ($_retryTimes > 0) { $_backoffTime = Tea::getBackoffTime(@$_runtime["backoff"], $_retryTimes); if ($_backoffTime > 0) { Tea::sleep($_backoffTime); } } $_retryTimes = $_retryTimes + 1; try { $_request = new Request(); $systemParams = [ "method" => "alipay.open.public.message.total.send", "app_id" => $this->_kernel->getConfig("appId"), "timestamp" => $this->_kernel->getTimestamp(), "format" => "json", "version" => "1.0", "alipay_sdk" => $this->_kernel->getSdkVersion(), "charset" => "UTF-8", "sign_type" => $this->_kernel->getConfig("signType"), "app_cert_sn" => $this->_kernel->getMerchantCertSN(), "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN() ]; $textObj = new Text([ "title" => "", "content" => $text ]); $bizParams = [ "msg_type" => "text", "text" => $textObj ]; $textParams = []; $_request->protocol = $this->_kernel->getConfig("protocol"); $_request->method = "POST"; $_request->pathname = "/gateway.do"; $_request->headers = [ "host" => $this->_kernel->getConfig("gatewayHost"), "content-type" => "application/x-www-form-urlencoded;charset=utf-8" ]; $_request->query = $this->_kernel->sortMap(Tea::merge([ "sign" => $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey")) ], $systemParams, $textParams)); $_request->body = $this->_kernel->toUrlEncodedRequestBody($bizParams); $_lastRequest = $_request; $_response= Tea::send($_request, $_runtime); $respMap = $this->_kernel->readAsJson($_response, "alipay.open.public.message.total.send"); if ($this->_kernel->isCertMode()) { if ($this->_kernel->verify($respMap, $this->_kernel->extractAlipayPublicKey($this->_kernel->getAlipayCertSN($respMap)))) { return AlipayOpenPublicMessageTotalSendResponse::fromMap($this->_kernel->toRespModel($respMap)); } } else { if ($this->_kernel->verify($respMap, $this->_kernel->getConfig("alipayPublicKey"))) { return AlipayOpenPublicMessageTotalSendResponse::fromMap($this->_kernel->toRespModel($respMap)); } } throw new TeaError([ "message" => "验签失败,请检查支付宝公钥设置是否正确。" ]); } catch (Exception $e) { if (!($e instanceof TeaError)) { $e = new TeaError([], $e->getMessage(), $e->getCode(), $e); } if (Tea::isRetryable($e)) { $_lastException = $e; continue; } throw $e; } } throw new TeaUnableRetryError($_lastRequest, $_lastException); } /** * @param Article[] $articles * @return AlipayOpenPublicMessageTotalSendResponse * @throws TeaError * @throws Exception * @throws TeaUnableRetryError */ public function sendImageText($articles){ $_runtime = [ "ignoreSSL" => $this->_kernel->getConfig("ignoreSSL"), "httpProxy" => $this->_kernel->getConfig("httpProxy"), "connectTimeout" => 15000, "readTimeout" => 15000, "retry" => [ "maxAttempts" => 0 ] ]; $_lastRequest = null; $_lastException = null; $_now = time(); $_retryTimes = 0; while (Tea::allowRetry(@$_runtime["retry"], $_retryTimes, $_now)) { if ($_retryTimes > 0) { $_backoffTime = Tea::getBackoffTime(@$_runtime["backoff"], $_retryTimes); if ($_backoffTime > 0) { Tea::sleep($_backoffTime); } } $_retryTimes = $_retryTimes + 1; try { $_request = new Request(); $systemParams = [ "method" => "alipay.open.public.message.total.send", "app_id" => $this->_kernel->getConfig("appId"), "timestamp" => $this->_kernel->getTimestamp(), "format" => "json", "version" => "1.0", "alipay_sdk" => $this->_kernel->getSdkVersion(), "charset" => "UTF-8", "sign_type" => $this->_kernel->getConfig("signType"), "app_cert_sn" => $this->_kernel->getMerchantCertSN(), "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN() ]; $bizParams = [ "msg_type" => "image-text", "articles" => $articles ]; $textParams = []; $_request->protocol = $this->_kernel->getConfig("protocol"); $_request->method = "POST"; $_request->pathname = "/gateway.do"; $_request->headers = [ "host" => $this->_kernel->getConfig("gatewayHost"), "content-type" => "application/x-www-form-urlencoded;charset=utf-8" ]; $_request->query = $this->_kernel->sortMap(Tea::merge([ "sign" => $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey")) ], $systemParams, $textParams)); $_request->body = $this->_kernel->toUrlEncodedRequestBody($bizParams); $_lastRequest = $_request; $_response= Tea::send($_request, $_runtime); $respMap = $this->_kernel->readAsJson($_response, "alipay.open.public.message.total.send"); if ($this->_kernel->isCertMode()) { if ($this->_kernel->verify($respMap, $this->_kernel->extractAlipayPublicKey($this->_kernel->getAlipayCertSN($respMap)))) { return AlipayOpenPublicMessageTotalSendResponse::fromMap($this->_kernel->toRespModel($respMap)); } } else { if ($this->_kernel->verify($respMap, $this->_kernel->getConfig("alipayPublicKey"))) { return AlipayOpenPublicMessageTotalSendResponse::fromMap($this->_kernel->toRespModel($respMap)); } } throw new TeaError([ "message" => "验签失败,请检查支付宝公钥设置是否正确。" ]); } catch (Exception $e) { if (!($e instanceof TeaError)) { $e = new TeaError([], $e->getMessage(), $e->getCode(), $e); } if (Tea::isRetryable($e)) { $_lastException = $e; continue; } throw $e; } } throw new TeaUnableRetryError($_lastRequest, $_lastException); } /** * @param string $toUserId * @param Template $template * @return AlipayOpenPublicMessageSingleSendResponse * @throws TeaError * @throws Exception * @throws TeaUnableRetryError */ public function sendSingleMessage($toUserId, $template){ $template->validate(); $_runtime = [ "ignoreSSL" => $this->_kernel->getConfig("ignoreSSL"), "httpProxy" => $this->_kernel->getConfig("httpProxy"), "connectTimeout" => 15000, "readTimeout" => 15000, "retry" => [ "maxAttempts" => 0 ] ]; $_lastRequest = null; $_lastException = null; $_now = time(); $_retryTimes = 0; while (Tea::allowRetry(@$_runtime["retry"], $_retryTimes, $_now)) { if ($_retryTimes > 0) { $_backoffTime = Tea::getBackoffTime(@$_runtime["backoff"], $_retryTimes); if ($_backoffTime > 0) { Tea::sleep($_backoffTime); } } $_retryTimes = $_retryTimes + 1; try { $_request = new Request(); $systemParams = [ "method" => "alipay.open.public.message.single.send", "app_id" => $this->_kernel->getConfig("appId"), "timestamp" => $this->_kernel->getTimestamp(), "format" => "json", "version" => "1.0", "alipay_sdk" => $this->_kernel->getSdkVersion(), "charset" => "UTF-8", "sign_type" => $this->_kernel->getConfig("signType"), "app_cert_sn" => $this->_kernel->getMerchantCertSN(), "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN() ]; $bizParams = [ "to_user_id" => $toUserId, "template" => $template ]; $textParams = []; $_request->protocol = $this->_kernel->getConfig("protocol"); $_request->method = "POST"; $_request->pathname = "/gateway.do"; $_request->headers = [ "host" => $this->_kernel->getConfig("gatewayHost"), "content-type" => "application/x-www-form-urlencoded;charset=utf-8" ]; $_request->query = $this->_kernel->sortMap(Tea::merge([ "sign" => $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey")) ], $systemParams, $textParams)); $_request->body = $this->_kernel->toUrlEncodedRequestBody($bizParams); $_lastRequest = $_request; $_response= Tea::send($_request, $_runtime); $respMap = $this->_kernel->readAsJson($_response, "alipay.open.public.message.single.send"); if ($this->_kernel->isCertMode()) { if ($this->_kernel->verify($respMap, $this->_kernel->extractAlipayPublicKey($this->_kernel->getAlipayCertSN($respMap)))) { return AlipayOpenPublicMessageSingleSendResponse::fromMap($this->_kernel->toRespModel($respMap)); } } else { if ($this->_kernel->verify($respMap, $this->_kernel->getConfig("alipayPublicKey"))) { return AlipayOpenPublicMessageSingleSendResponse::fromMap($this->_kernel->toRespModel($respMap)); } } throw new TeaError([ "message" => "验签失败,请检查支付宝公钥设置是否正确。" ]); } catch (Exception $e) { if (!($e instanceof TeaError)) { $e = new TeaError([], $e->getMessage(), $e->getCode(), $e); } if (Tea::isRetryable($e)) { $_lastException = $e; continue; } throw $e; } } throw new TeaUnableRetryError($_lastRequest, $_lastException); } /** * @param string $messageId * @return AlipayOpenPublicLifeMsgRecallResponse * @throws TeaError * @throws Exception * @throws TeaUnableRetryError */ public function recallMessage($messageId){ $_runtime = [ "ignoreSSL" => $this->_kernel->getConfig("ignoreSSL"), "httpProxy" => $this->_kernel->getConfig("httpProxy"), "connectTimeout" => 15000, "readTimeout" => 15000, "retry" => [ "maxAttempts" => 0 ] ]; $_lastRequest = null; $_lastException = null; $_now = time(); $_retryTimes = 0; while (Tea::allowRetry(@$_runtime["retry"], $_retryTimes, $_now)) { if ($_retryTimes > 0) { $_backoffTime = Tea::getBackoffTime(@$_runtime["backoff"], $_retryTimes); if ($_backoffTime > 0) { Tea::sleep($_backoffTime); } } $_retryTimes = $_retryTimes + 1; try { $_request = new Request(); $systemParams = [ "method" => "alipay.open.public.life.msg.recall", "app_id" => $this->_kernel->getConfig("appId"), "timestamp" => $this->_kernel->getTimestamp(), "format" => "json", "version" => "1.0", "alipay_sdk" => $this->_kernel->getSdkVersion(), "charset" => "UTF-8", "sign_type" => $this->_kernel->getConfig("signType"), "app_cert_sn" => $this->_kernel->getMerchantCertSN(), "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN() ]; $bizParams = [ "message_id" => $messageId ]; $textParams = []; $_request->protocol = $this->_kernel->getConfig("protocol"); $_request->method = "POST"; $_request->pathname = "/gateway.do"; $_request->headers = [ "host" => $this->_kernel->getConfig("gatewayHost"), "content-type" => "application/x-www-form-urlencoded;charset=utf-8" ]; $_request->query = $this->_kernel->sortMap(Tea::merge([ "sign" => $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey")) ], $systemParams, $textParams)); $_request->body = $this->_kernel->toUrlEncodedRequestBody($bizParams); $_lastRequest = $_request; $_response= Tea::send($_request, $_runtime); $respMap = $this->_kernel->readAsJson($_response, "alipay.open.public.life.msg.recall"); if ($this->_kernel->isCertMode()) { if ($this->_kernel->verify($respMap, $this->_kernel->extractAlipayPublicKey($this->_kernel->getAlipayCertSN($respMap)))) { return AlipayOpenPublicLifeMsgRecallResponse::fromMap($this->_kernel->toRespModel($respMap)); } } else { if ($this->_kernel->verify($respMap, $this->_kernel->getConfig("alipayPublicKey"))) { return AlipayOpenPublicLifeMsgRecallResponse::fromMap($this->_kernel->toRespModel($respMap)); } } throw new TeaError([ "message" => "验签失败,请检查支付宝公钥设置是否正确。" ]); } catch (Exception $e) { if (!($e instanceof TeaError)) { $e = new TeaError([], $e->getMessage(), $e->getCode(), $e); } if (Tea::isRetryable($e)) { $_lastException = $e; continue; } throw $e; } } throw new TeaUnableRetryError($_lastRequest, $_lastException); } /** * @param string $primaryIndustryCode * @param string $primaryIndustryName * @param string $secondaryIndustryCode * @param string $secondaryIndustryName * @return AlipayOpenPublicTemplateMessageIndustryModifyResponse * @throws TeaError * @throws Exception * @throws TeaUnableRetryError */ public function setIndustry($primaryIndustryCode, $primaryIndustryName, $secondaryIndustryCode, $secondaryIndustryName){ $_runtime = [ "ignoreSSL" => $this->_kernel->getConfig("ignoreSSL"), "httpProxy" => $this->_kernel->getConfig("httpProxy"), "connectTimeout" => 15000, "readTimeout" => 15000, "retry" => [ "maxAttempts" => 0 ] ]; $_lastRequest = null; $_lastException = null; $_now = time(); $_retryTimes = 0; while (Tea::allowRetry(@$_runtime["retry"], $_retryTimes, $_now)) { if ($_retryTimes > 0) { $_backoffTime = Tea::getBackoffTime(@$_runtime["backoff"], $_retryTimes); if ($_backoffTime > 0) { Tea::sleep($_backoffTime); } } $_retryTimes = $_retryTimes + 1; try { $_request = new Request(); $systemParams = [ "method" => "alipay.open.public.template.message.industry.modify", "app_id" => $this->_kernel->getConfig("appId"), "timestamp" => $this->_kernel->getTimestamp(), "format" => "json", "version" => "1.0", "alipay_sdk" => $this->_kernel->getSdkVersion(), "charset" => "UTF-8", "sign_type" => $this->_kernel->getConfig("signType"), "app_cert_sn" => $this->_kernel->getMerchantCertSN(), "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN() ]; $bizParams = [ "primary_industry_code" => $primaryIndustryCode, "primary_industry_name" => $primaryIndustryName, "secondary_industry_code" => $secondaryIndustryCode, "secondary_industry_name" => $secondaryIndustryName ]; $textParams = []; $_request->protocol = $this->_kernel->getConfig("protocol"); $_request->method = "POST"; $_request->pathname = "/gateway.do"; $_request->headers = [ "host" => $this->_kernel->getConfig("gatewayHost"), "content-type" => "application/x-www-form-urlencoded;charset=utf-8" ]; $_request->query = $this->_kernel->sortMap(Tea::merge([ "sign" => $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey")) ], $systemParams, $textParams)); $_request->body = $this->_kernel->toUrlEncodedRequestBody($bizParams); $_lastRequest = $_request; $_response= Tea::send($_request, $_runtime); $respMap = $this->_kernel->readAsJson($_response, "alipay.open.public.template.message.industry.modify"); if ($this->_kernel->isCertMode()) { if ($this->_kernel->verify($respMap, $this->_kernel->extractAlipayPublicKey($this->_kernel->getAlipayCertSN($respMap)))) { return AlipayOpenPublicTemplateMessageIndustryModifyResponse::fromMap($this->_kernel->toRespModel($respMap)); } } else { if ($this->_kernel->verify($respMap, $this->_kernel->getConfig("alipayPublicKey"))) { return AlipayOpenPublicTemplateMessageIndustryModifyResponse::fromMap($this->_kernel->toRespModel($respMap)); } } throw new TeaError([ "message" => "验签失败,请检查支付宝公钥设置是否正确。" ]); } catch (Exception $e) { if (!($e instanceof TeaError)) { $e = new TeaError([], $e->getMessage(), $e->getCode(), $e); } if (Tea::isRetryable($e)) { $_lastException = $e; continue; } throw $e; } } throw new TeaUnableRetryError($_lastRequest, $_lastException); } /** * @return AlipayOpenPublicSettingCategoryQueryResponse * @throws TeaError * @throws Exception * @throws TeaUnableRetryError */ public function getIndustry(){ $_runtime = [ "ignoreSSL" => $this->_kernel->getConfig("ignoreSSL"), "httpProxy" => $this->_kernel->getConfig("httpProxy"), "connectTimeout" => 15000, "readTimeout" => 15000, "retry" => [ "maxAttempts" => 0 ] ]; $_lastRequest = null; $_lastException = null; $_now = time(); $_retryTimes = 0; while (Tea::allowRetry(@$_runtime["retry"], $_retryTimes, $_now)) { if ($_retryTimes > 0) { $_backoffTime = Tea::getBackoffTime(@$_runtime["backoff"], $_retryTimes); if ($_backoffTime > 0) { Tea::sleep($_backoffTime); } } $_retryTimes = $_retryTimes + 1; try { $_request = new Request(); $systemParams = [ "method" => "alipay.open.public.setting.category.query", "app_id" => $this->_kernel->getConfig("appId"), "timestamp" => $this->_kernel->getTimestamp(), "format" => "json", "version" => "1.0", "alipay_sdk" => $this->_kernel->getSdkVersion(), "charset" => "UTF-8", "sign_type" => $this->_kernel->getConfig("signType"), "app_cert_sn" => $this->_kernel->getMerchantCertSN(), "alipay_root_cert_sn" => $this->_kernel->getAlipayRootCertSN() ]; $bizParams = []; $textParams = []; $_request->protocol = $this->_kernel->getConfig("protocol"); $_request->method = "POST"; $_request->pathname = "/gateway.do"; $_request->headers = [ "host" => $this->_kernel->getConfig("gatewayHost"), "content-type" => "application/x-www-form-urlencoded;charset=utf-8" ]; $_request->query = $this->_kernel->sortMap(Tea::merge([ "sign" => $this->_kernel->sign($systemParams, $bizParams, $textParams, $this->_kernel->getConfig("merchantPrivateKey")) ], $systemParams, $textParams)); $_request->body = $this->_kernel->toUrlEncodedRequestBody($bizParams); $_lastRequest = $_request; $_response= Tea::send($_request, $_runtime); $respMap = $this->_kernel->readAsJson($_response, "alipay.open.public.setting.category.query"); if ($this->_kernel->isCertMode()) { if ($this->_kernel->verify($respMap, $this->_kernel->extractAlipayPublicKey($this->_kernel->getAlipayCertSN($respMap)))) { return AlipayOpenPublicSettingCategoryQueryResponse::fromMap($this->_kernel->toRespModel($respMap)); } } else { if ($this->_kernel->verify($respMap, $this->_kernel->getConfig("alipayPublicKey"))) { return AlipayOpenPublicSettingCategoryQueryResponse::fromMap($this->_kernel->toRespModel($respMap)); } } throw new TeaError([ "message" => "验签失败,请检查支付宝公钥设置是否正确。" ]); } catch (Exception $e) { if (!($e instanceof TeaError)) { $e = new TeaError([], $e->getMessage(), $e->getCode(), $e); } if (Tea::isRetryable($e)) { $_lastException = $e; continue; } throw $e; } } throw new TeaUnableRetryError($_lastRequest, $_lastException); } /** * ISV代商户代用,指定appAuthToken * * @param $appAuthToken String 代调用token * @return $this 本客户端,便于链式调用 */ public function agent($appAuthToken) { $this->_kernel->injectTextParam("app_auth_token", $appAuthToken); return $this; } /** * 用户授权调用,指定authToken * * @param $authToken String 用户授权token * @return $this */ public function auth($authToken) { $this->_kernel->injectTextParam("auth_token", $authToken); return $this; } /** * 设置异步通知回调地址,此处设置将在本调用中覆盖Config中的全局配置 * * @param $url String 异步通知回调地址,例如:https://www.test.com/callback * @return $this */ public function asyncNotify($url) { $this->_kernel->injectTextParam("notify_url", $url); return $this; } /** * 将本次调用强制路由到后端系统的测试地址上,常用于线下环境内外联调,沙箱与线上环境设置无效 * * @param $testUrl String 后端系统测试地址 * @return $this */ public function route($testUrl) { $this->_kernel->injectTextParam("ws_service_url", $testUrl); return $this; } /** * 设置API入参中没有的其他可选业务请求参数(biz_content下的字段) * * @param $key String 业务请求参数名称(biz_content下的字段名,比如timeout_express) * @param $value object 业务请求参数的值,一个可以序列化成JSON的对象 * 如果该字段是一个字符串类型(String、Price、Date在SDK中都是字符串),请使用String储存 * 如果该字段是一个数值型类型(比如:Number),请使用Long储存 * 如果该字段是一个复杂类型,请使用嵌套的array指定各下级字段的值 * 如果该字段是一个数组,请使用array储存各个值 * @return $this */ public function optional($key, $value) { $this->_kernel->injectBizParam($key, $value); return $this; } /** * 批量设置API入参中没有的其他可选业务请求参数(biz_content下的字段) * optional方法的批量版本 * * @param $optionalArgs array 可选参数集合,每个参数由key和value组成,key和value的格式请参见optional方法的注释 * @return $this */ public function batchOptional($optionalArgs) { foreach ($optionalArgs as $key => $value) { $this->_kernel->injectBizParam($key, $value); } return $this; } }