FAQ

1、虎符控制台地址?

https://hufu-yd-console.jdcloud.com/#/hufu/list

2、如何在虎符控制台创建应用完成对接?

参考文档:https://yd-doc.jdcloud.com/docs/5-hufu/5-3-sanfanghutong/erpmigrate/erpmigrate_apply.html 注:需要创建两个虎符应用(应用类型分别为ERP系统和线下ERP系统)才能完成对接流程。

3、改造涉及到的接口标准

参考文档:https://yd-doc.jdcloud.com/docs/5-hufu/5-3-sanfanghutong/erpmigrate/erpmigrate_standard.html 注:api详细字段说明:https://hufu-doc.s3.cn-north-1.jdcloud-oss.com/hufuErpMigrateV2.html

4、虎符自定义场景

操作文档:https://yd-doc.jdcloud.com/docs/5-hufu/5-4-custom/apiGroup/readme.html

上线申请:

提交上线申请后以邮件的形式通知虎符运营审核:
邮箱: jcloud-yd@jd.com
邮件标题: 虎符自定义场景API分组上线申请
邮件内容:

  • 开发者PIN(登录京东云鼎的PIN)
  • API分组id
  • 要发布的API分组版本号
  • 业务场景/申请原因
  • 接口字段描述/包含哪些字段,是否包含敏感字段
  • 公司名称
  • 申请人
  • 联系电话
  • 联系邮件(用于接收审核结果信息, 请务必填写)

5、请求虎符网关常见错误

(1)返回401错误

(2)后端服务返回的错误

  • a)如果响应信息中不包含[gw],说明错误信息是后端服务返回的,先检查一下后端服务是否可用;
  • b)如果响应信息中包含[gw],可以联系虎符技术人员排查。

6、不可逆加密,如何通过明文获得密文?

参考文档:https://yd-doc.jdcloud.com/docs/5-hufu/5-3-sanfanghutong/erpmigrate/encrypt.html

7、前端ajax调用虎符接口demo

/*
 *  2020-04-01
    前端调用虎符接口前需要在后端实现一个服务计算好签名信息(计算签名的参数和前端请求的参数要完全一致),上边提供了各种开发语言的签名包。
*/
function GetJDCloudGetSensitiveData(callbackFunction,url,headersZdy) {
    url = "https://hufu.cn-north-1.jdcloud-api.net/order/getSensitiveData?method=jingdong.hufu.order.getSensitiveData&app_key=xxx&customerId=xxx";
    var headers = {
        "Content-Type": "application/json",
        "X-Jdcloud-Nonce": "xxx",
        "X-Jdcloud-Date": "xxx",
        "Authorization": "JDCLOUD2-HMAC-SHA256 Credential=xxx/20200402/cn-north-1/xohk7ybhwien/jdcloud2_request, SignedHeaders=content-type;x-jdcloud-date;x-jdcloud-nonce, Signature=xxx"
    };

    $.ajax({
        type: "POST",
        url: url,
        data:
            JSON.stringify({
                "orders_nos": "xxx",
                "token": "xxx"
            })
        ,
        beforeSend: function (xhr) {
            for (key in headers) {
                if (headers.hasOwnProperty(key)) {
                    xhr.setRequestHeader(key, headers[key])
                }
            }
        },
        success: function (msg) {
            if (callbackFunction)
            callbackFunction(msg);
        },
        error: function (xhr, textStatus, errorThrown) {
            alert(xhr.responseText);
        }
    });
}

results matching ""

    No results matching ""