借助知行之桥实现OAuth1.0协议调用交易伙伴的API接口

Published On: 2024年7月31日Categories: 帮助文档, 常见问题和回答, 操作指南, 知识库Views: 2

© All rights reserved. • 西安知行软件有限公司 • 陕ICP备09022277号

OAuth1.0 介绍

OAuth 是一种开放标准授权协议,允许用户授权第三方应用访问其资源,而不需要向第三方应用透露其用户名和密码。OAuth 1.0 使用 HMAC-SHA1 或 RSA-SHA1 签名方法来对请求进行签名,通过请求令牌、用户授权、交换令牌和使用令牌,确保请求在传输过程中不被篡改,具有较高的安全性。现在OAuth 1.0 已经逐步被其 2.0版本取代,处于弃用状态,如非必要我们也强烈推荐大家使用更新的版本。

需求实现

近期国内物流行业某客户提出这样的需求:他们的交易伙伴要求使用OAuth1.0来调用其API接口,推送指定的JSON格式文件。而知行之桥本身不支持在REST端口仅通过配置实现OAuth1.0,需要通过Script端口写代码实现。实现OAuth1.0的步骤包含生成签名基础字符串 (Signature Base String)、签名密钥 (Signature Key)、计算签名(Signature)、组装授权标头(Authorization Header),并通过REST端口配置组装后的授权标头,将文件POST给交易伙伴。

1.获取 OAuth Auth Token

因为OAuth 1.0 处于弃用状态,所以知行之桥本身不支持从管理界面获取OAuth 1.0 的 Auth Token。但是由于 OAuth 1.0 的 Auth Token是长期有效的。所以,可以借助其它工具获取后,配置在知行之桥中使用即可,比如借助Postman获取,或者直接从交易伙伴那里获取。

2. 构建基础字符串 (Signature Base String)

基础字符串的构建需要包括 HTTP 方法、URL 和参数:

HTTP 方法: POST
URL: https://xxx.xxx.xx/xxx/xx/xxx

构建查询参数和OAuth参数

查询参数和 OAuth 参数需要按照字母顺序排序,并进行百分比编码。以下是示例代码:















  







  
    
  

3. 生成签名密钥 (Signature Key)

签名密钥是由消费者密钥和令牌密钥组成,中间用&分隔并进行百分比编码。





4. 计算签名 (Signature)

使用 HMAC-SHA256 算法计算基础字符串和签名密钥的哈希值,然后进行 Base64 编码。

 
 
 
 



  

5. 组装授权标头 (Authorization Header)

将签名添加到 OAuth 参数中,并构建最终的授权标头。











  



6. 示例输出

基础字符串:

POST&https%3A%2F%2F7023245-sb2.xxxxx.xxx.xx%2Fapp%2Fsite%2Fhosting%2Frestlet.nl&deploy%3D3%26oauth_consumer_key%3D7e62fXXXXXXXX%26oauth_nonce%3D22dcb800b08%26oauth_signature_method%3DHMAC-SHA256%26oauth_timestamp%3D1721197204%26oauth_token%3Deec0XXXXXXX%26oauth_version%3D1.0%26script%3D880

签名密钥:

f6b4XXXXXXXXX&b3eaXXXXXXXXXXXX

签名:

Fkejc1nsNs+Jm0SnevyXhaeCP8VX9ICxtqstsWstvJk=

授权标头: OAuth

oauth_consumer_key=”7e62XXXXXXXX”,oauth_nonce=”22dcXXX”,oauth_signature=”FkejcXXXXXXX=”,oauth_signature_method=”HMAC-SHA256″,oauth_timestamp=”1721197204″,oauth_token=”eec0XXXXXXXX”,oauth_version=”1.0″,realm=”7023245_SB2″

将得到的授权标头写在message header,以便在下一个REST端口使用。



REST端口调用

在REST端口选择填写“方法和URL”,认证类型选择None,在头部设置参数名称为“Authorization”,值为“[_message.header:authHeader]”。正文类型选择raw,Content Type选择“JSON(application/JSON)”即可。

OAuth1.0_API1.png
OAuth1.0_API2.png

最后

实际上业务中,OAuth 1.0 并没有OAuth 2.0流行,就是因为其复杂的授权流程,用户体验较差。而OAuth2.0简化了授权流程,提供多种授权模式、提高用户体验、增强灵活性和扩展性、使用 HTTPS 保证安全以及更好的开发者支持等方面,相比 OAuth 1.0 都有显著的优势。因此在未来的选择上,更推荐大家使用OAuth 2.0,借助知行之桥的REST端口,通过界面配置就可实现与交易伙伴的接口对接。

以下是REST端口选择OAuth2.0需要配置的参数:

OAuth1.0_API3.png

详细配置说明请点击

如果您希望了解更多有关EDI对接的相关信息,欢迎联系我们。

注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

为什么选择

知行之桥®?​

根据企业规模与集成需求,提供从本地部署到云端托管的灵活选择

可视化 EDI 工作流

基于拖拽式图形化设计器,零代码构建完整 EDI 业务流程,满足复杂供应链自动化场景。

Odette & Drummond 认证

通过 Odette(OFTP) 与 Drummond(AS2) 权威认证,确保与主机厂安全合规、高可靠的数据交换。

多系统集成能力

提供数据库、REST/SOAP、FTP/SFTP 等标准化接口,实现 ERP、WMS、MES 等系统的双向数据自动同步。

数据映射格式转换

内置可视化 Mapping 编辑器,零代码实现 EDI 报文与企业内部数据格式(XML/JSON…)的映射转换及复杂规则处理。

实时监控预警机制

全流程可视化监控报文状态,支持邮件、钉钉、企业微信自动预警,保障 JIT 交付的稳定性与及时性。

多工厂支持

支持集团级多组织、多工厂架构,实现数据隔离与权限管控,统一平台集中运维,满足大型制造企业多地点协同需求。