我正在努力使现有的小网站与Ariba punchout兼容。
我可以读取传入的设置,进行响应,然后将他们重定向到有效的登录网站。
在Ariba punchout测试仪上,这一切都工作正常,可以向购物车添加物品。
我正在尝试完成该过程并将PunchOutOrderMessage发送回购物车。
在cXML文档示例中,它的格式如下:
<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服务器,但不确定如何处理消息。我刚刚将其作为文本加载:
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站点并发送订单?
发布于 2019-02-24 05:05:44
PunchOutOrderMessage文档应该发送回Ariba客户端,而不是服务器端。这可以通过将cXML放在<form>的隐藏输入字段中并使用JavaScript提交表单来实现。另外,确保cXML是在输入字段的值中进行HTML转义的。
这种情况下的示例可以在这里找到:https://punchoutcommerce.com/guides/punchout/cxml-punchout-order-message/#cart_transmission
发布于 2018-11-10 03:15:49
我在寻找我自己关于下一步的答案时遇到了这个问题,但迟到总比不到好。
这对我很有效(HOOK_URL是Ariba提供的网址)-保留您的服务点管理器代码:
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。所以我会继续寻找,但希望这能帮助其他人。
https://stackoverflow.com/questions/52350685
复制相似问题