首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将cXML back PunchOutOrderMessage发送回Ariba的网站

将cXML back PunchOutOrderMessage发送回Ariba的网站
EN

Stack Overflow用户
提问于 2018-09-16 11:22:08
回答 2查看 2.3K关注 0票数 1

我正在努力使现有的小网站与Ariba punchout兼容。

我可以读取传入的设置,进行响应,然后将他们重定向到有效的登录网站。

在Ariba punchout测试仪上,这一切都工作正常,可以向购物车添加物品。

我正在尝试完成该过程并将PunchOutOrderMessage发送回购物车。

在cXML文档示例中,它的格式如下:

代码语言:javascript
复制
<input type="hidden" name="cxml-urlencoded" value="<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.014/cXML.dtd">

……等

我已经为购物车配置了相同的消息,但具有正确的详细信息。

不过,我对如何将其发送回Ariba站点感到困惑。执行punchout操作将提供表单POST URL,我应该将表单发送回该URL。

我尝试了这里的方法:How to make HTTP POST web request连接到web服务器,但不确定如何处理消息。我刚刚将其作为文本加载:

代码语言:javascript
复制
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(ValidateRemoteCertificate);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

var content = new StringContent(strPost);

var response = await client.PostAsync(PostURL, content);

var responseString = await response.Content.ReadAsStringAsync();

检查ResponseString只会提供一个来自Ariba的完整网页,就像我刚刚手动转到该网站一样。

嵌入式浏览器只是在punchout站点上保持打开状态,不会去任何地方。

有没有人成功地连接回Ariba站点并发送订单?

EN

回答 2

Stack Overflow用户

发布于 2019-02-24 05:05:44

PunchOutOrderMessage文档应该发送回Ariba客户端,而不是服务器端。这可以通过将cXML放在<form>的隐藏输入字段中并使用JavaScript提交表单来实现。另外,确保cXML是在输入字段的值中进行HTML转义的。

这种情况下的示例可以在这里找到:https://punchoutcommerce.com/guides/punchout/cxml-punchout-order-message/#cart_transmission

票数 1
EN

Stack Overflow用户

发布于 2018-11-10 03:15:49

我在寻找我自己关于下一步的答案时遇到了这个问题,但迟到总比不到好。

这对我很有效(HOOK_URL是Ariba提供的网址)-保留您的服务点管理器代码:

代码语言:javascript
复制
byte[] response = Encoding.ASCII.GetBytes(output);
var request = (HttpWebRequest)WebRequest.Create(poom.HOOK_URL);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";

try
{
    request.GetRequestStream().Write(response, 0, response.Length);
}
catch (Exception ex)
{
    LogHelpers.Write(log, ex);
}

WebResponse webresponse = null;
try
{
    webresponse = request.GetResponse();
}
catch (Exception ex)
{
    LogHelpers.Write(log, ex);
}

我的问题是如何处理他们的响应,这是一个简短的script ()块,它将top.location.href重定向到另一个页面。问题是,这是一个相对的URL,所以它会尝试重定向到我网站上的那个URL。所以我会继续寻找,但希望这能帮助其他人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52350685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档