chengkun
2025-09-09 774d962b76d63366ed26c395e0a33cdbec309242
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import EasySDKKernel;
 
type @kernel = EasySDKKernel
 
init(kernel: EasySDKKernel) {
  @kernel = kernel;
}
 
model AlipayOpenAppMiniTemplatemessageSendResponse {
  httpBody: string(name='http_body', description='响应原始字符串'),
  code: string(name='code'),
  msg: string(name='msg'),
  subCode: string(name='sub_code'),
  subMsg: string(name='sub_msg')
}
 
api send(toUserId: string, formId: string, userTemplateId: string, page: string, data: string): AlipayOpenAppMiniTemplatemessageSendResponse {
  var systemParams: map[string]string = {
  method = 'alipay.open.app.mini.templatemessage.send',
  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 = {
    to_user_id = toUserId,
    form_id = formId,
    user_template_id = userTemplateId,
    page = page,
    data = data
  };
 
  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.open.app.mini.templatemessage.send");
 
  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 {
  ignoreSSL = @kernel.getConfig("ignoreSSL"),
  httpProxy = @kernel.getConfig("httpProxy"),
  connectTimeout = 15000,
  readTimeout = 15000,
  retry = {
    maxAttempts = 0
  }
}