找回密码
 立即注册

QQ登录

只需一步,快速开始

恒美恒美
金牌服务用户   /  发表于:2024-10-21 15:44  /   查看:284  /  回复:7
1金币
本帖最后由 恒美恒美 于 2024-10-21 17:27 编辑

用JAVA开发了一个支付宝查询账单服务端插件,在服务端命令里面使用插件可以正常返回数据,然后在计划任务使用这个服务端命令就没有数据返回,是不是插件里面要插入什么代码才能在计划任务正常使用

7 个回复

倒序浏览
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-10-21 16:18:06
沙发
您好,这样的话,得看一下您的插件是怎么写的了,方便的话,可以上传一下您的插件源码,和测试的demo,这边儿看一下
回复 使用道具 举报
恒美恒美
金牌服务用户   /  发表于:2024-10-21 16:51:52
板凳
Lay.Li 发表于 2024-10-21 16:18
您好,这样的话,得看一下您的插件是怎么写的了,方便的话,可以上传一下您的插件源码,和测试的demo,这边 ...
  1. package alipay.data.bill.accountlog.query;
  2. //支付宝SDK
  3. import com.alipay.api.AlipayApiException;
  4. import com.alipay.api.AlipayClient;
  5. import com.alipay.api.DefaultAlipayClient;
  6. import com.alipay.api.request.AlipayDataBillAccountlogQueryRequest;
  7. import com.alipay.api.response.AlipayDataBillAccountlogQueryResponse;
  8. //其他插件
  9. import lombok.EqualsAndHashCode;
  10. import org.json.JSONArray;
  11. import org.json.JSONObject;
  12. //活字格
  13. import com.grapecity.forguncy.commands.ICommandExecutableInServerSide;
  14. import com.grapecity.forguncy.commands.IServerCommandExecuteContext;
  15. import com.grapecity.forguncy.commands.annotation.ResultToProperty;
  16. import com.grapecity.forguncy.commands.entity.Command;
  17. import com.grapecity.forguncy.commands.entity.ExecuteResult;
  18. //import com.grapecity.forguncy.commands.enumeration.CommandScope;
  19. import com.grapecity.forguncy.plugincommon.common.annotation.*;
  20. import lombok.Data;

  21. import java.util.List;

  22. @EqualsAndHashCode(callSuper = true)
  23. @Data
  24. @Icon("resources/Icon.png")
  25. public class AlipayAccountlog extends Command implements ICommandExecutableInServerSide {
  26.     @Required
  27.     @FormulaProperty
  28.     @DisplayName("第三方应用APPID:")
  29.     private Object app_id;

  30.     @Required
  31.     @FormulaProperty
  32.     @DisplayName("第三方应用APP_PRIVATE_KEY:")
  33.     private Object PrivateKey;

  34.     @Required
  35.     @FormulaProperty
  36.     @DisplayName("第三方支付宝ALIPAY_PUBLIC_KEY:")
  37.     private Object AlipayPublicKey;

  38.     @Required
  39.     @FormulaProperty
  40.     @DisplayName("app_auth_token:")
  41.     private Object app_auth_token;

  42.     @DisplayName("请求参数:")
  43.     @FlatListProperty
  44.     public List<MyObj> parameter;

  45.     @ResultToProperty
  46.     // @FormulaProperty
  47.     @DisplayName("请求结果至变量:")
  48.     private String resultTo;

  49.     /**
  50.      * 命令执行方法
  51.      * @param dataContext 从服务器端传递给命令执行时的上下文信息
  52.      * @return 是否执行成功
  53.      */
  54.     @Override
  55.     public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
  56.         JSONArray jsonArray = new JSONArray(parameter);
  57.         JSONObject results = new JSONObject();
  58.         for (int i = 0; i < jsonArray.length(); i++) {
  59.             JSONObject obj = jsonArray.getJSONObject(i);
  60.             String name = obj.getString("参数名");
  61.             String value = obj.getString("参数值");

  62.             // 将名称和值添加到新的JSONObject中
  63.             results.put(name, value);
  64.         }
  65.         AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", app_id.toString(), PrivateKey.toString(), "json", "UTF-8", AlipayPublicKey.toString(), "RSA2"); //获得初始化的AlipayClient
  66.         AlipayDataBillAccountlogQueryRequest request = new AlipayDataBillAccountlogQueryRequest();//创建API对应的request类
  67.         request.putOtherTextParam("app_auth_token", app_auth_token.toString());//授权token,代调用必传
  68.         request.setBizContent(results.toString()); //设置业务参数
  69.         AlipayDataBillAccountlogQueryResponse response;//通过alipayClient调用API,获得对应的response类
  70.         try {
  71.             response = alipayClient.execute(request);
  72.             dataContext.getParameters().put(resultTo, response.getBody());
  73.         } catch (AlipayApiException e) {
  74.             throw new RuntimeException(e);
  75.         }
  76.         return new ExecuteResult();
  77.     }

  78.     /**
  79.      * 返回插件的名称
  80.      * @return 插件的名称
  81.      */
  82.     @Override
  83.     public String toString() {
  84.         return "支付宝商家账户账务明细查询";
  85.     }
  86. }
复制代码
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-10-21 17:31:02
地板
大佬,这边儿没有调试的APPID啥的,可以发一下测试的demo看一下么,论坛不方便上传的话,可以上传到微信中哈
回复 使用道具 举报
恒美恒美
金牌服务用户   /  发表于:2024-10-21 17:46:00
5#
Lay.Li 发表于 2024-10-21 17:31
大佬,这边儿没有调试的APPID啥的,可以发一下测试的demo看一下么,论坛不方便上传的话,可以上传到微信中 ...
  1. https://gcdn.grapecity.com.cn/showtopic-222407-1-1.html
复制代码
跟这个问题是一样的,问题还没有修复码

评分

参与人数 1金币 +66 收起 理由
Lay.Li + 66 赞一个!

查看全部评分

回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-10-22 09:16:29
6#
您还,您现在换成在计划任务中使用发送http请求命令去调用使用了这个插件的服务端命令就正常了么
回复 使用道具 举报
恒美恒美
金牌服务用户   /  发表于:2024-10-22 15:40:14
7#
Lay.Li 发表于 2024-10-22 09:16
您还,您现在换成在计划任务中使用发送http请求命令去调用使用了这个插件的服务端命令就正常了么

是的
回复 使用道具 举报
Lay.Li悬赏达人认证 活字格认证
超级版主   /  发表于:2024-10-22 16:03:24
8#
好的,这个问题预计是会在10.1版本中修复,目前您使用这个绕的方案就可以,修复了的话,会在下方帖子中跟进的哈.感谢您的支持

【F-23425】【10.0.3.0】Java服务端插件由计划任务运行报错
https://gcdn.grapecity.com.cn/showtopic-222407-1-1.html
(出处: 葡萄城开发者社区)


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部