main.tea 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. import EasySDKKernel;
  2. type @kernel = EasySDKKernel
  3. init(kernel: EasySDKKernel) {
  4. @kernel = kernel;
  5. }
  6. model IdentityParam {
  7. identityType: string(name='identity_type'),
  8. certType: string(name='cert_type'),
  9. certName: string(name='cert_name'),
  10. certNo: string(name='cert_no')
  11. }
  12. model MerchantConfig {
  13. returnUrl: string(name='return_url')
  14. }
  15. model AlipayUserCertifyOpenInitializeResponse {
  16. httpBody: string(name='http_body', description='响应原始字符串'),
  17. code: string(name='code'),
  18. msg: string(name='msg'),
  19. subCode: string(name='sub_code'),
  20. subMsg: string(name='sub_msg'),
  21. certifyId: string(name='certify_id')
  22. }
  23. model AlipayUserCertifyOpenCertifyResponse {
  24. body: string(name='body', description='认证服务请求地址')
  25. }
  26. model AlipayUserCertifyOpenQueryResponse {
  27. httpBody: string(name='http_body', description='响应原始字符串'),
  28. code: string(name='code'),
  29. msg: string(name='msg'),
  30. subCode: string(name='sub_code'),
  31. subMsg: string(name='sub_msg'),
  32. passed: string(name='passed'),
  33. identityInfo: string(name='identity_info'),
  34. materialInfo: string(name='material_info')
  35. }
  36. api init(outerOrderNo: string, bizCode: string, identityParam: IdentityParam, merchantConfig: MerchantConfig): AlipayUserCertifyOpenInitializeResponse {
  37. var systemParams: map[string]string = {
  38. method = 'alipay.user.certify.open.initialize',
  39. app_id = @kernel.getConfig("appId"),
  40. timestamp = @kernel.getTimestamp(),
  41. format = 'json',
  42. version = '1.0',
  43. alipay_sdk = @kernel.getSdkVersion(),
  44. charset = 'UTF-8',
  45. sign_type = @kernel.getConfig("signType"),
  46. app_cert_sn = @kernel.getMerchantCertSN(),
  47. alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
  48. };
  49. var bizParams: map[string]any = {
  50. outer_order_no = outerOrderNo,
  51. biz_code = bizCode,
  52. identity_param = identityParam,
  53. merchant_config = merchantConfig
  54. };
  55. var textParams: map[string]string = {
  56. };
  57. __request.protocol = @kernel.getConfig("protocol");
  58. __request.method = 'POST';
  59. __request.pathname = '/gateway.do';
  60. __request.headers = {
  61. host = @kernel.getConfig("gatewayHost"),
  62. content-type = 'application/x-www-form-urlencoded;charset=utf-8'
  63. };
  64. __request.query = @kernel.sortMap({
  65. sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
  66. ... systemParams,
  67. ... textParams
  68. });
  69. __request.body = @kernel.toUrlEncodedRequestBody(bizParams);
  70. } returns {
  71. var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.user.certify.open.initialize");
  72. if (@kernel.isCertMode()) {
  73. if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
  74. return @kernel.toRespModel(respMap);
  75. }
  76. } else {
  77. if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
  78. return @kernel.toRespModel(respMap);
  79. }
  80. }
  81. throw {
  82. message = '验签失败,请检查支付宝公钥设置是否正确。'
  83. }
  84. } runtime {
  85. connectTimeout = 15000,
  86. readTimeout = 15000,
  87. retry = {
  88. maxAttempts = 0
  89. }
  90. }
  91. function certify(certifyId: string): AlipayUserCertifyOpenCertifyResponse {
  92. var systemParams: map[string]string = {
  93. method = 'alipay.user.certify.open.certify',
  94. app_id = @kernel.getConfig("appId"),
  95. timestamp = @kernel.getTimestamp(),
  96. format = 'json',
  97. version = '1.0',
  98. alipay_sdk = @kernel.getSdkVersion(),
  99. charset = 'UTF-8',
  100. sign_type = @kernel.getConfig("signType"),
  101. app_cert_sn = @kernel.getMerchantCertSN(),
  102. alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
  103. };
  104. var bizParams: map[string]any = {
  105. certify_id = certifyId
  106. };
  107. var textParams: map[string]string = {
  108. };
  109. var sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig('merchantPrivateKey'));
  110. var response: map[string]string = {
  111. body = @kernel.generatePage('GET', systemParams, bizParams, textParams, sign)
  112. };
  113. return response;
  114. }
  115. api query(certifyId: string): AlipayUserCertifyOpenQueryResponse {
  116. var systemParams: map[string]string = {
  117. method = 'alipay.user.certify.open.query',
  118. app_id = @kernel.getConfig("appId"),
  119. timestamp = @kernel.getTimestamp(),
  120. format = 'json',
  121. version = '1.0',
  122. alipay_sdk = @kernel.getSdkVersion(),
  123. charset = 'UTF-8',
  124. sign_type = @kernel.getConfig("signType"),
  125. app_cert_sn = @kernel.getMerchantCertSN(),
  126. alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
  127. };
  128. var bizParams: map[string]any = {
  129. certify_id = certifyId
  130. };
  131. var textParams: map[string]string = {
  132. };
  133. __request.protocol = @kernel.getConfig("protocol");
  134. __request.method = 'POST';
  135. __request.pathname = '/gateway.do';
  136. __request.headers = {
  137. host = @kernel.getConfig("gatewayHost"),
  138. content-type = 'application/x-www-form-urlencoded;charset=utf-8'
  139. };
  140. __request.query = @kernel.sortMap({
  141. sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
  142. ... systemParams,
  143. ... textParams
  144. });
  145. __request.body = @kernel.toUrlEncodedRequestBody(bizParams);
  146. } returns {
  147. var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.user.certify.open.query");
  148. if (@kernel.isCertMode()) {
  149. if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
  150. return @kernel.toRespModel(respMap);
  151. }
  152. } else {
  153. if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
  154. return @kernel.toRespModel(respMap);
  155. }
  156. }
  157. throw {
  158. message = '验签失败,请检查支付宝公钥设置是否正确。'
  159. }
  160. } runtime {
  161. connectTimeout = 15000,
  162. readTimeout = 15000,
  163. retry = {
  164. maxAttempts = 0
  165. }
  166. }