main.tea 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import EasySDKKernel;
  2. type @kernel = EasySDKKernel
  3. init(kernel: EasySDKKernel) {
  4. @kernel = kernel;
  5. }
  6. model PayeeInfo {
  7. identity: string(name='identity'),
  8. identityType: string(name='identity_type'),
  9. name: string(name='identity_type')
  10. }
  11. model AlipayFundTransUniTransferResponse {
  12. httpBody: string(name='http_body', description='响应原始字符串'),
  13. code: string(name='code'),
  14. msg: string(name='msg'),
  15. subCode: string(name='sub_code'),
  16. subMsg: string(name='sub_msg'),
  17. outBizNo: string(name='out_biz_no'),
  18. orderId: string(name='order_id'),
  19. payFundOrderId: string(name='pay_fund_order_id'),
  20. status: string(name='status'),
  21. transDate: string(name='trans_date')
  22. }
  23. api transfer(outBizNo: string, transAmount: string, productCode: string, payeeInfo: PayeeInfo): AlipayFundTransUniTransferResponse {
  24. var systemParams: map[string]string = {
  25. method = 'alipay.trade.create',
  26. app_id = @kernel.getConfig("appId"),
  27. timestamp = @kernel.getTimestamp(),
  28. format = 'json',
  29. version = '1.0',
  30. alipay_sdk = @kernel.getSdkVersion(),
  31. charset = 'UTF-8',
  32. sign_type = @kernel.getConfig("signType"),
  33. app_cert_sn = @kernel.getMerchantCertSN(),
  34. alipay_root_cert_sn = @kernel.getAlipayRootCertSN()
  35. };
  36. var bizParams: map[string]any = {
  37. out_biz_no = outBizNo,
  38. trans_amount = transAmount,
  39. product_code = productCode,
  40. payee_info = payeeInfo
  41. };
  42. var textParams: map[string]string = {
  43. };
  44. __request.protocol = @kernel.getConfig("protocol");
  45. __request.method = 'POST';
  46. __request.pathname = '/gateway.do';
  47. __request.headers = {
  48. host = @kernel.getConfig("gatewayHost"),
  49. content-type = 'application/x-www-form-urlencoded;charset=utf-8'
  50. };
  51. __request.query = @kernel.sortMap({
  52. sign = @kernel.sign(systemParams, bizParams, textParams, @kernel.getConfig("merchantPrivateKey")),
  53. ... systemParams,
  54. ... textParams
  55. });
  56. __request.body = @kernel.toUrlEncodedRequestBody(bizParams);
  57. } returns {
  58. var respMap: map[string]any = @kernel.readAsJson(__response, "alipay.fund.trans.uni.transfer");
  59. if (@kernel.isCertMode()) {
  60. if (@kernel.verify(respMap, @kernel.extractAlipayPublicKey(@kernel.getAlipayCertSN(respMap)))) {
  61. return @kernel.toRespModel(respMap);
  62. }
  63. } else {
  64. if (@kernel.verify(respMap, @kernel.getConfig("alipayPublicKey"))) {
  65. return @kernel.toRespModel(respMap);
  66. }
  67. }
  68. throw {
  69. message = '验签失败,请检查支付宝公钥设置是否正确。'
  70. }
  71. } runtime {
  72. ignoreSSL = @kernel.getConfig("ignoreSSL"),
  73. httpProxy = @kernel.getConfig("httpProxy"),
  74. connectTimeout = 15000,
  75. readTimeout = 15000,
  76. retry = {
  77. maxAttempts = 0
  78. }
  79. }