如何在.NET应用创建Odoo会计发票后获取Access Token以查看PDF
解决Odoo发票PDF Access Token自动获取问题
核心逻辑
Odoo生成发票PDF所需的Access Token,无需通过界面预览触发,可直接通过RPC调用对应模型方法生成,完全适配你的.NET应用场景。
具体实现步骤
获取Account Move ID
你通过portacapena.odoojsonrpcclient创建发票后,创建操作的返回值就是account.move的记录ID,直接保存即可。如果需要补查,可通过发票号等唯一标识调用search方法:// 示例:根据发票号查询Account Move ID var domain = new List<object> { new object[] { "name", "=", "INV/2024/0001" } }; var moveIds = odooClient.Search("account.move", domain, new Dictionary<string, object>()); var targetMoveId = moveIds.First();调用Token生成方法
Odoo内置了生成预览Token的方法account.move.get_access_token,直接通过RPC调用即可获取:// 调用方法获取Access Token var accessToken = odooClient.CallKw("account.move", "get_access_token", new object[] { new long[] { targetMoveId } }, new Dictionary<string, object>());若该方法无效(部分旧版本Odoo),可尝试私有方法
_get_access_token。构造PDF访问链接
用获取到的Move ID和Token拼接PDF地址,直接请求即可获取文件:https://你的Odoo域名/web/content/account.move/{targetMoveId}/invoice.pdf?access_token={accessToken}
权限说明
确保你的.NET RPC客户端使用的Odoo账号,拥有account.move模型的读权限和打印权限,否则会出现调用失败或权限不足的错误。
内容的提问来源于stack exchange,提问作者Sureya Pragaash
相关产品推荐
相关产品推荐

