You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
637 lines
19 KiB
637 lines
19 KiB
2 months ago
|
import EasySDKKernel;
|
||
|
|
||
|
type @kernel = EasySDKKernel
|
||
|
|
||
|
init(kernel: EasySDKKernel) {
|
||
|
@kernel = kernel;
|
||
|
}
|
||
|
|
||
|
model RefundRoyaltyResult{
|
||
|
refundAmount: string(name='refund_amount'),
|
||
|
royaltyType: string(name='royalty_type'),
|
||
|
resultCode: string(name='result_code'),
|
||
|
transOut: string(name='trans_out'),
|
||
|
transOutEmail: string(name='trans_out_email'),
|
||
|
transIn: string(name='trans_in'),
|
||
|
transInEmail: string(name='trans_in_email'),
|
||
|
}
|
||
|
|
||
|
model TradeFundBill {
|
||
|
fundChannel: string(name='fund_channel'),
|
||
|
bankCode: string(name='bank_code'),
|
||
|
amount: string(name='amount'),
|
||
|
realAmount: string(name='real_amount'),
|
||
|
fundType: string(name='fund_type')
|
||
|
}
|
||
|
|
||
|
model TradeSettleDetail {
|
||
|
operationType: string(name='operation_type'),
|
||
|
operationSerial_no: string(name='operation_serial_no'),
|
||
|
operationDt: string(name='operation_dt'),
|
||
|
transOut: string(name='trans_out'),
|
||
|
transIn: string(name='trans_in'),
|
||
|
amount: string(name='amount')
|
||
|
}
|
||
|
|
||
|
model TradeSettleInfo {
|
||
|
tradeSettleDetailList: [ TradeSettleDetail ](name='trade_settle_detail_list')
|
||
|
}
|
||
|
|
||
|
model PresetPayToolInfo {
|
||
|
amount: [ string ](name='amount'),
|
||
|
assertTypeCode: string(name='assert_type_code')
|
||
|
}
|
||
|
|
||
|
model AlipayTradeCreateResponse {
|
||
|
httpBody: string(name='http_body', description='响应原始字符串'),
|
||
|
code: string(name='code'),
|
||
|
msg: string(name='msg'),
|
||
|
subCode: string(name='sub_code'),
|
||
|
subMsg: string(name='sub_msg'),
|
||
|
|
||
|
outTradeNo: string(name='out_trade_no'),
|
||
|
tradeNo: string(name='trade_no')
|
||
|
}
|
||
|
|
||
|
model AlipayTradeQueryResponse {
|
||
|
httpBody: string(name='http_body', description='响应原始字符串'),
|
||
|
code: string(name='code'),
|
||
|
msg: string(name='msg'),
|
||
|
subCode: string(name='sub_code'),
|
||
|
subMsg: string(name='sub_msg'),
|
||
|
|
||
|
tradeNo: string(name='trade_no'),
|
||
|
outTradeNo: string(name='out_trade_no'),
|
||
|
buyerLogonId: string(name='buyer_logon_id'),
|
||
|
tradeStatus: string(name='trade_status'),
|
||
|
totalAmount: string(name='total_amount'),
|
||
|
transCurrency: string(name='trans_currency'),
|
||
|
settleCurrency: string(name='settle_currency'),
|
||
|
settleAmount: string(name='settle_amount'),
|
||
|
payCurrency: string(name='pay_currency'),
|
||
|
payAmount: string(name='pay_amount'),
|
||
|
settleTransRate: string(name='settle_trans_rate'),
|
||
|
transPayRate: string(name='trans_pay_rate'),
|
||
|
buyerPayAmount: string(name='buyer_pay_amount'),
|
||
|
pointAmount: string(name='point_amount'),
|
||
|
invoiceAmount: string(name='invoice_amount'),
|
||
|
sendPayDate: string(name='send_pay_date'),
|
||
|
receiptAmount: string(name='receipt_amount'),
|
||
|
storeId: string(name='store_id'),
|
||
|
terminalId: string(name='terminal_id'),
|
||
|
fundBillList: [ TradeFundBill ](name='fund_bill_list'),
|
||
|
storeName: string(name='store_name'),
|
||
|
buyerUserId: string(name='buyer_user_id'),
|
||
|
chargeAmount: string(name='charge_amount'),
|
||
|
chargeFlags: string(name='charge_flags'),
|
||
|
settlementId: string(name='settlement_id'),
|
||
|
tradeSettleInfo: [ TradeSettleInfo ](name='trade_settle_info'),
|
||
|
authTradePayMode: string(name='auth_trade_pay_mode'),
|
||
|
buyerUserType: string(name='buyer_user_type'),
|
||
|
mdiscountAmount: string(name='mdiscount_amount'),
|
||
|
discountAmount: string(name='discount_amount'),
|
||
|
buyerUserName: string(name='buyer_user_name'),
|
||
|
subject: string(name='subject'),
|
||
|
body: string(name='body'),
|
||
|
alipaySubMerchantId: string(name='alipay_sub_merchant_id'),
|
||
|
extInfos: string(name='ext_infos')
|
||
|
}
|
||
|
|
||
|
model AlipayTradeRefundResponse {
|
||
|
httpBody: string(name='http_body', description='响应原始字符串'),
|
||
|
code: string(name='code'),
|
||
|
msg: string(name='msg'),
|
||
|
subCode: string(name='sub_code'),
|
||
|
subMsg: string(name='sub_msg'),
|
||
|
|
||
|
tradeNo: string(name='trade_no'),
|
||
|
outTradeNo: string(name='out_trade_no'),
|
||
|
buyerLogonId: string(name='buyer_logon_id'),
|
||
|
fundChange: string(name='fund_change'),
|
||
|
refundFee: string(name='refund_fee'),
|
||
|
refundCurrency: string(name='refund_currency'),
|
||
|
gmtRefundPay: string(name='gmt_refund_pay'),
|
||
|
refundDetailItemList: [ TradeFundBill ](name='refund_detail_item_list'),
|
||
|
storeName: string(name='store_name'),
|
||
|
buyerUserId: string(name='buyer_user_id'),
|
||
|
refundPresetPaytoolList: [ PresetPayToolInfo ](name='refund_preset_paytool_list'),
|
||
|
refundSettlementId: string(name='refund_settlement_id'),
|
||
|
presentRefundBuyerAmount: string(name='present_refund_buyer_amount'),
|
||
|
presentRefundDiscountAmount: string(name='present_refund_discount_amount'),
|
||
|
presentRefundMdiscountAmount: string(name='present_refund_mdiscount_amount'),
|
||
|
}
|
||
|
|
||
|
model AlipayTradeCloseResponse {
|
||
|
httpBody: string(name='http_body', description='响应原始字符串'),
|
||
|
code: string(name='code'),
|
||
|
msg: string(name='msg'),
|
||
|
subCode: string(name='sub_code'),
|
||
|
subMsg: string(name='sub_msg'),
|
||
|
|
||
|
tradeNo: string(name='trade_no'),
|
||
|
outTradeNo: string(name='out_trade_no')
|
||
|
}
|
||
|
|
||
|
model AlipayTradeCancelResponse {
|
||
|
httpBody: string(name='http_body', description='响应原始字符串'),
|
||
|
code: string(name='code'),
|
||
|
msg: string(name='msg'),
|
||
|
subCode: string(name='sub_code'),
|
||
|
subMsg: string(name='sub_msg'),
|
||
|
|
||
|
tradeNo: string(name='trade_no'),
|
||
|
outTradeNo: string(name='out_trade_no'),
|
||
|
retryFlag: string(name='retry_flag'),
|
||
|
action: string(name='action'),
|
||
|
gmtRefundPay: string(name='gmt_refund_pay'),
|
||
|
refundSettlementId: string(name='refund_settlement_id')
|
||
|
}
|
||
|
|
||
|
model AlipayTradeFastpayRefundQueryResponse {
|
||
|
httpBody: string(name='http_body', description='响应原始字符串'),
|
||
|
code: string(name='code'),
|
||
|
msg: string(name='msg'),
|
||
|
subCode: string(name='sub_code'),
|
||
|
subMsg: string(name='sub_msg'),
|
||
|
|
||
|
errorCode: string(name='error_code'),
|
||
|
gmtRefundPay: string(name='gmt_refund_pay'),
|
||
|
industrySepcDetail: string(name='industry_sepc_detail'),
|
||
|
outRequestNo: string(name='out_request_no'),
|
||
|
outTradeNo: string(name='out_trade_no'),
|
||
|
presentRefundBuyerAmount: string(name='present_refund_buyer_amount'),
|
||
|
presentRefundDiscountAmount: string(name='present_refund_discount_amount'),
|
||
|
presentRefundMdiscountAmount: string(name='present_refund_mdiscount_amount'),
|
||
|
refundAmount: string(name='refund_amount'),
|
||
|
refundChargeAmount: string(name='refund_charge_amount'),
|
||
|
refundDetailItemList: [ TradeFundBill ](name='refund_detail_item_list'),
|
||
|
refundReason: string(name='refund_reason'),
|
||
|
refundRoyaltys: [ RefundRoyaltyResult ](name='refund_royaltys'),
|
||
|
refundSettlementId: string(name='refund_settlement_id'),
|
||
|
refundStatus: string(name='refund_status'),
|
||
|
sendBackFee: string(name='send_back_fee'),
|
||
|
totalAmount: string(name='total_amount'),
|
||
|
tradeNo: string(name='trade_no')
|
||
|
}
|
||
|
|
||
|
model AlipayDataDataserviceBillDownloadurlQueryResponse{
|
||
|
httpBody: string(name='http_body', description='响应原始字符串'),
|
||
|
code: string(name='code'),
|
||
|
msg: string(name='msg'),
|
||
|
subCode: string(name='sub_code'),
|
||
|
subMsg: string(name='sub_msg'),
|
||
|
|
||
|
billDownloadUrl: string(name='bill_download_url'),
|
||
|
}
|
||
|
|
||
|
api create(subject: string, outTradeNo: string, totalAmount: string, buyerId: string): AlipayTradeCreateResponse {
|
||
|
var systemParams: map[string]string = {
|
||
|
method = 'alipay.trade.create',
|
||
|
app_id = @kernel.getConfig("appId"),
|
||
|
timestamp = @kernel.getTimestamp(),
|
||
|
format = 'json',
|
||
|
version = '1.0',
|
||
|
alipay_sdk = @kernel.getSdkVersion(),
|
||
|
charset = 'UTF-8',
|
||
|
sign_type = @kernel.getConfig("signType"),
|
||
|
app_cert_sn = @kernel.getMerchantCertSN(),
|
||
|
alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
|
||
|
};
|
||
|
|
||
|
var bizParams: map[string]any = {
|
||
|
subject = subject,
|
||
|
out_trade_no = outTradeNo,
|
||
|
total_amount = totalAmount,
|
||
|
buyer_id = buyerId
|
||
|
};
|
||
|
|
||
|
var textParams: map[string]string = {
|
||
|
};
|
||
|
|
||
|
__request.protocol = @kernel.getConfig("protocol");
|
||
|
__request.method = 'POST';
|
||
|
__request.pathname = '/gateway.do';
|
||
|
|
||
|
__request.headers = {
|
||
|
host = @kernel.getConfig("gatewayHost"),
|
||
|
content-type = 'application/x-www-form-urlencoded;charset=utf-8'
|
||
|
};
|
||
|
|
||
|
__request.query = @kernel.sortMap({
|
||
|
sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
|
||
|
... systemParams,
|
||
|
... textParams
|
||
|
});
|
||
|
|
||
|
__request.body = @kernel.toUrlEncodedRequestBody(bizParams);
|
||
|
} returns {
|
||
|
var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.trade.create");
|
||
|
|
||
|
if (@kernel.isCertMode()) {
|
||
|
if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
} else {
|
||
|
if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
throw {
|
||
|
message = '验签失败,请检查支付宝公钥设置是否正确。'
|
||
|
}
|
||
|
|
||
|
} runtime {
|
||
|
connectTimeout = 15000,
|
||
|
readTimeout = 15000,
|
||
|
retry = {
|
||
|
maxAttempts = 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
api query(outTradeNo: string): AlipayTradeQueryResponse {
|
||
|
var systemParams: map[string]string = {
|
||
|
method = 'alipay.trade.query',
|
||
|
app_id = @kernel.getConfig("appId"),
|
||
|
timestamp = @kernel.getTimestamp(),
|
||
|
format = 'json',
|
||
|
version = '1.0',
|
||
|
alipay_sdk = @kernel.getSdkVersion(),
|
||
|
charset = 'UTF-8',
|
||
|
sign_type = @kernel.getConfig("signType"),
|
||
|
app_cert_sn = @kernel.getMerchantCertSN(),
|
||
|
alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
|
||
|
};
|
||
|
|
||
|
var bizParams: map[string]any = {
|
||
|
out_trade_no = outTradeNo
|
||
|
};
|
||
|
|
||
|
var textParams: map[string]string = {
|
||
|
};
|
||
|
|
||
|
__request.protocol = @kernel.getConfig("protocol");
|
||
|
__request.method = 'POST';
|
||
|
__request.pathname = '/gateway.do';
|
||
|
|
||
|
__request.headers = {
|
||
|
host = @kernel.getConfig("gatewayHost"),
|
||
|
content-type = 'application/x-www-form-urlencoded;charset=utf-8'
|
||
|
};
|
||
|
|
||
|
__request.query = @kernel.sortMap({
|
||
|
sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
|
||
|
... systemParams,
|
||
|
... textParams
|
||
|
});
|
||
|
|
||
|
__request.body = @kernel.toUrlEncodedRequestBody(bizParams);
|
||
|
} returns {
|
||
|
var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.trade.query");
|
||
|
|
||
|
if (@kernel.isCertMode()) {
|
||
|
if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
} else {
|
||
|
if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
throw {
|
||
|
message = '验签失败,请检查支付宝公钥设置是否正确。'
|
||
|
}
|
||
|
|
||
|
} runtime {
|
||
|
connectTimeout = 15000,
|
||
|
readTimeout = 15000,
|
||
|
retry = {
|
||
|
maxAttempts = 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
api refund(outTradeNo: string, refundAmount: string): AlipayTradeRefundResponse {
|
||
|
var systemParams: map[string]string = {
|
||
|
method = 'alipay.trade.refund',
|
||
|
app_id = @kernel.getConfig("appId"),
|
||
|
timestamp = @kernel.getTimestamp(),
|
||
|
format = 'json',
|
||
|
version = '1.0',
|
||
|
alipay_sdk = @kernel.getSdkVersion(),
|
||
|
charset = 'UTF-8',
|
||
|
sign_type = @kernel.getConfig("signType"),
|
||
|
app_cert_sn = @kernel.getMerchantCertSN(),
|
||
|
alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
|
||
|
};
|
||
|
|
||
|
var bizParams: map[string]any = {
|
||
|
out_trade_no = outTradeNo,
|
||
|
refund_amount = refundAmount
|
||
|
};
|
||
|
|
||
|
var textParams: map[string]string = {
|
||
|
};
|
||
|
|
||
|
|
||
|
__request.protocol = @kernel.getConfig("protocol");
|
||
|
__request.method = 'POST';
|
||
|
__request.pathname = '/gateway.do';
|
||
|
|
||
|
__request.headers = {
|
||
|
host = @kernel.getConfig("gatewayHost"),
|
||
|
content-type = 'application/x-www-form-urlencoded;charset=utf-8'
|
||
|
};
|
||
|
|
||
|
__request.query = @kernel.sortMap({
|
||
|
sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
|
||
|
... systemParams,
|
||
|
... textParams
|
||
|
});
|
||
|
|
||
|
__request.body = @kernel.toUrlEncodedRequestBody(bizParams);
|
||
|
} returns {
|
||
|
var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.trade.refund");
|
||
|
|
||
|
if (@kernel.isCertMode()) {
|
||
|
if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
} else {
|
||
|
if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
throw {
|
||
|
message = '验签失败,请检查支付宝公钥设置是否正确。'
|
||
|
}
|
||
|
|
||
|
} runtime {
|
||
|
connectTimeout = 15000,
|
||
|
readTimeout = 15000,
|
||
|
retry = {
|
||
|
maxAttempts = 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
api close(outTradeNo: string): AlipayTradeCloseResponse {
|
||
|
var systemParams: map[string]string = {
|
||
|
method = 'alipay.trade.close',
|
||
|
app_id = @kernel.getConfig("appId"),
|
||
|
timestamp = @kernel.getTimestamp(),
|
||
|
format = 'json',
|
||
|
version = '1.0',
|
||
|
alipay_sdk = @kernel.getSdkVersion(),
|
||
|
charset = 'UTF-8',
|
||
|
sign_type = @kernel.getConfig("signType"),
|
||
|
app_cert_sn = @kernel.getMerchantCertSN(),
|
||
|
alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
|
||
|
};
|
||
|
|
||
|
var bizParams: map[string]any = {
|
||
|
out_trade_no = outTradeNo
|
||
|
};
|
||
|
|
||
|
var textParams: map[string]string = {
|
||
|
};
|
||
|
|
||
|
__request.protocol = @kernel.getConfig("protocol");
|
||
|
__request.method = 'POST';
|
||
|
__request.pathname = '/gateway.do';
|
||
|
|
||
|
__request.headers = {
|
||
|
host = @kernel.getConfig("gatewayHost"),
|
||
|
content-type = 'application/x-www-form-urlencoded;charset=utf-8'
|
||
|
};
|
||
|
|
||
|
__request.query = @kernel.sortMap({
|
||
|
sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
|
||
|
... systemParams,
|
||
|
... textParams
|
||
|
});
|
||
|
|
||
|
__request.body = @kernel.toUrlEncodedRequestBody(bizParams);
|
||
|
} returns {
|
||
|
var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.trade.close");
|
||
|
|
||
|
if (@kernel.isCertMode()) {
|
||
|
if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
} else {
|
||
|
if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
throw {
|
||
|
message = '验签失败,请检查支付宝公钥设置是否正确。'
|
||
|
}
|
||
|
|
||
|
} runtime {
|
||
|
connectTimeout = 15000,
|
||
|
readTimeout = 15000,
|
||
|
retry = {
|
||
|
maxAttempts = 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
api cancel(outTradeNo: string): AlipayTradeCancelResponse {
|
||
|
var systemParams: map[string]string = {
|
||
|
method = 'alipay.trade.cancel',
|
||
|
app_id = @kernel.getConfig("appId"),
|
||
|
timestamp = @kernel.getTimestamp(),
|
||
|
format = 'json',
|
||
|
version = '1.0',
|
||
|
alipay_sdk = @kernel.getSdkVersion(),
|
||
|
charset = 'UTF-8',
|
||
|
sign_type = @kernel.getConfig("signType"),
|
||
|
app_cert_sn = @kernel.getMerchantCertSN(),
|
||
|
alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
|
||
|
};
|
||
|
|
||
|
var bizParams: map[string]any = {
|
||
|
out_trade_no = outTradeNo
|
||
|
};
|
||
|
|
||
|
var textParams: map[string]string = {
|
||
|
};
|
||
|
|
||
|
|
||
|
__request.protocol = @kernel.getConfig("protocol");
|
||
|
__request.method = 'POST';
|
||
|
__request.pathname = '/gateway.do';
|
||
|
|
||
|
__request.headers = {
|
||
|
host = @kernel.getConfig("gatewayHost"),
|
||
|
content-type = 'application/x-www-form-urlencoded;charset=utf-8'
|
||
|
};
|
||
|
|
||
|
__request.query = @kernel.sortMap({
|
||
|
sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
|
||
|
... systemParams,
|
||
|
... textParams
|
||
|
});
|
||
|
|
||
|
__request.body = @kernel.toUrlEncodedRequestBody(bizParams);
|
||
|
} returns {
|
||
|
var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.trade.cancel");
|
||
|
|
||
|
if (@kernel.isCertMode()) {
|
||
|
if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
} else {
|
||
|
if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
throw {
|
||
|
message = '验签失败,请检查支付宝公钥设置是否正确。'
|
||
|
}
|
||
|
|
||
|
} runtime {
|
||
|
connectTimeout = 15000,
|
||
|
readTimeout = 15000,
|
||
|
retry = {
|
||
|
maxAttempts = 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
api queryRefund(outTradeNo: string, outRequestNo: string): AlipayTradeFastpayRefundQueryResponse {
|
||
|
var systemParams: map[string]string = {
|
||
|
method = 'alipay.trade.fastpay.refund.query',
|
||
|
app_id = @kernel.getConfig("appId"),
|
||
|
timestamp = @kernel.getTimestamp(),
|
||
|
format = 'json',
|
||
|
version = '1.0',
|
||
|
alipay_sdk = @kernel.getSdkVersion(),
|
||
|
charset = 'UTF-8',
|
||
|
sign_type = @kernel.getConfig("signType"),
|
||
|
app_cert_sn = @kernel.getMerchantCertSN(),
|
||
|
alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
|
||
|
};
|
||
|
|
||
|
var bizParams: map[string]any = {
|
||
|
out_trade_no = outTradeNo,
|
||
|
out_request_no = outRequestNo
|
||
|
};
|
||
|
|
||
|
var textParams: map[string]string = {
|
||
|
};
|
||
|
|
||
|
__request.protocol = @kernel.getConfig("protocol");
|
||
|
__request.method = 'POST';
|
||
|
__request.pathname = '/gateway.do';
|
||
|
|
||
|
__request.headers = {
|
||
|
host = @kernel.getConfig("gatewayHost"),
|
||
|
content-type = 'application/x-www-form-urlencoded;charset=utf-8'
|
||
|
};
|
||
|
|
||
|
__request.query = @kernel.sortMap({
|
||
|
sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
|
||
|
... systemParams,
|
||
|
... textParams
|
||
|
});
|
||
|
|
||
|
__request.body = @kernel.toUrlEncodedRequestBody(bizParams);
|
||
|
} returns {
|
||
|
var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.trade.fastpay.refund.query");
|
||
|
|
||
|
if (@kernel.isCertMode()) {
|
||
|
if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
} else {
|
||
|
if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
throw {
|
||
|
message = '验签失败,请检查支付宝公钥设置是否正确。'
|
||
|
}
|
||
|
|
||
|
} runtime {
|
||
|
connectTimeout = 15000,
|
||
|
readTimeout = 15000,
|
||
|
retry = {
|
||
|
maxAttempts = 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
api downloadBill(billType: string, billDate: string): AlipayDataDataserviceBillDownloadurlQueryResponse {
|
||
|
var systemParams: map[string]string = {
|
||
|
method = 'alipay.data.dataservice.bill.downloadurl.query',
|
||
|
app_id = @kernel.getConfig("appId"),
|
||
|
timestamp = @kernel.getTimestamp(),
|
||
|
format = 'json',
|
||
|
version = '1.0',
|
||
|
alipay_sdk = @kernel.getSdkVersion(),
|
||
|
charset = 'UTF-8',
|
||
|
sign_type = @kernel.getConfig("signType"),
|
||
|
app_cert_sn = @kernel.getMerchantCertSN(),
|
||
|
alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
|
||
|
};
|
||
|
|
||
|
var bizParams: map[string]any = {
|
||
|
bill_type = billType,
|
||
|
bill_date = billDate
|
||
|
};
|
||
|
|
||
|
var textParams: map[string]string = {
|
||
|
};
|
||
|
|
||
|
|
||
|
__request.protocol = @kernel.getConfig("protocol");
|
||
|
__request.method = 'POST';
|
||
|
__request.pathname = '/gateway.do';
|
||
|
|
||
|
__request.headers = {
|
||
|
host = @kernel.getConfig("gatewayHost"),
|
||
|
content-type = 'application/x-www-form-urlencoded;charset=utf-8'
|
||
|
};
|
||
|
|
||
|
__request.query = @kernel.sortMap({
|
||
|
sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
|
||
|
... systemParams,
|
||
|
... textParams
|
||
|
});
|
||
|
|
||
|
__request.body = @kernel.toUrlEncodedRequestBody(bizParams);
|
||
|
} returns {
|
||
|
var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.data.dataservice.bill.downloadurl.query");
|
||
|
|
||
|
if (@kernel.isCertMode()) {
|
||
|
if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
} else {
|
||
|
if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
|
||
|
return @kernel.toRespModel(respMap);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
throw {
|
||
|
message = '验签失败,请检查支付宝公钥设置是否正确。'
|
||
|
}
|
||
|
|
||
|
} runtime {
|
||
|
connectTimeout = 15000,
|
||
|
readTimeout = 15000,
|
||
|
retry = {
|
||
|
maxAttempts = 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function verifyNotify(parameters: map[string]string): boolean {
|
||
|
if (@kernel.isCertMode()) {
|
||
|
return @kernel.verifyParams(parameters, @kernel.extractAlipayPublicKey(''));
|
||
|
} else {
|
||
|
return @kernel.verifyParams(parameters, @kernel.getConfig('alipayPublicKey'));
|
||
|
}
|
||
|
}
|