我们在网站上遇到与高CPU使用率相关的性能问题.使用分析器时,我们已经确定了一个需要约35秒才能返回的特定方法.
这是使用名为SagePay的支付网关时的回拨方法.
我已经复制了下面这个调用的两个方法:
public void SagePayNotificationReturn()
{
string vendorTxCode = Request.Form["vendortxcode"];
var sagePayTransaction = this.sagePayTransactionManager.GetTransactionByVendorTxCode(vendorTxCode);
if (sagePayTransaction == null)
{
// Cannot find the order, so log an error and return error response
int errorId = this.exceptionManager.LogException(System.Web.HttpContext.Current.Request, new Exception(string.Format("Could not find SagePay transaction for order {0}.", vendorTxCode)));
ReturnResponse(System.Web.HttpContext.Current, StatusEnum.ERROR, string.Format("{0}home/error/{1}", GlobalSettings.SiteURL, errorId), string.Format("Received notification for {0} but the transaction was not found.", vendorTxCode));
}
else
{
// Store the response and respond immediately to SagePay
sagePayTransaction.NotificationValues = sagePayTransactionManager.FormValuesToQueryString(Request.Form);
this.sagePayTransactionManager.Save(sagePayTransaction);
ReturnResponse(System.Web.HttpContext.Current, …Run Code Online (Sandbox Code Playgroud) 我有一个使用版本的Magento网站1.6.2.0,我遇到了重复订单的问题.
在研究了这个主题之后,我发现大多数论坛主题都解释1.4.x了重复订单和提到的解决方案存在问题(甚至那些我发现的SO)只是建议用户更新Magento >1.4.
我也在这里找到了一个建议的解决方案,但我不愿意删除观察员,这会阻止可下载的购买工作.
我也发现了几次提到的阵列死亡修复(例如这里)但是这个问题不存在1.6.x,Zend似乎已经解决了它.
有几个Javascript黑客建议,确认订单按钮在提交时隐藏,但Magento 1.6.x已经这样做了.
我已将支付网关超时配置变量增加到120秒,并且尚未查看它是否产生结果.我无法测试它,因为问题是间歇性的(因此可能是由支付网关和Magento之间的通信或缺乏引起的).
我使用Sagepay作为支付网关.
如果任何人有任何可能有帮助的想法,或者可以建议我如何进一步调试这个,并理想地解决它,这将是非常感谢!
在Live网站上提交表单时,我得到以下错误.
状态:无效
状态详细信息:4006:此帐户不支持请求的TxType.
我的sagepay设置是为LIVE低于,
SAGEPAY_CONNECT_TO ='现场'; SAGEPAY_TRANSACTION_TYPE ='付款';
但它不起作用.有人说它改为'DEFERRED',但它也没有用.以上设置在TEST模式下正常工作,对于TEST模式设置,
SAGEPAY_CONNECT_TO ='TEST'; SAGEPAY_TRANSACTION_TYPE ='付款';
我该如何解决这个问题?谁能帮我?
payment payment-gateway payment-processing payment-services opayo
我已经将sage pay与我的wordpress网站集成在一起.我目前正在模拟器模式下运行sagepay.
成功付款后,sagepay会重定向到我网站的成功页面.重定向网址是这样的.
mysite.com/?page_id=632&crypt=@7564ASKJjkkjh....encrypted string.
Run Code Online (Sandbox Code Playgroud)
当我试图通过$ _REQUEST或$ _GET在我的成功页面上获取查询字符串参数时,我只能得到page_id.
但我不能得到'crypt'参数.
我也试过var_dump($ _ REQUEST).它还只提供page_id但不提供crypt参数.
我不想从查询字符串中检索'crypt'参数.
注意:它正确地在localhost上工作.我有两个参数.但是当我在实时服务器上上传我的网站时,我只能获得page_id,而不能获得'crypt'参数.
有任何想法吗?
更新:我的Sage pay给出的查询字符串是这样的:
mysite.com/?page_id=632&crypt=@
但它在localhost上工作正常
我搜索了很多,但只有以下登录URL为sagepay测试帐户.
https://test.sagepay.com/mysagepay/login.msp
任何人都可以帮助我从我可以创建帐户登录屏幕上方.
我已经创建了模拟器帐户
此问题似乎仅影响 Firefox,然后仅影响部分用户(没有明显的版本/安全设置差异)。我们的 Laravel 应用程序中出现会话丢失问题。
我们有一个使用 iframe Opayo 服务器集成的支付集成。这将在 Laravel 应用程序的 iframe 中打开付款表单。提供了付款详细信息,并且付款成功 - 包括点击 Opayo webhook 来确认交易。
Webhook 返回一个重定向 URL,Opayo 使用该 URL 来重定向用户(自然在 iframe 中)。此重定向 URL 只是与应用程序(即 iframe 父级)位于同一站点上的 URL。
当 iframe 加载重定向 URL 时,站点会话立即被终止。最初,URL 处的页面脱离了 iframe(设置 window.top.location),并且还执行了一些 ajax 调用 - 我删除了这两个操作,以确认它们不会以某种方式导致会话被破坏。
该站点通过 HTTPS 提供服务并具有有效证书。会话 cookie 设置为安全、仅 HTTP,并且同一站点是“宽松”的
什么可能导致这种行为?
我有一个客户已经注册了一个sagepay帐户.他目前的网站运行wordpress 3.0,目前没有任何电子商务功能.
他需要一个按钮,让用户通过sagepay提交300英镑的押金(这个金额永远不会改变).(通常情况下,我建议使用PayPal这样的东西,但显然由于他的业务的旅行性质,paypal将不会让我的客户有专业帐户)
我已经看过三月份在类似线程中描述的方法(我如何制作一个SagePay BuyNow按钮?),但我不确定如何在wordpress的页面中实现这个,而不是非常了解php栏基本模板编辑,所以我完全迷失在$ PAYMENT_CRYPT部分.
如果有人能够提供我需要采取的步骤来实现每次提交相同金额的基本按钮,然后收集所有卡片详细信息/客户详细信息,一旦将它们发送到sagepay网关,我们将非常感激!
我设置了测试/暂存站点,但访问该站点受IP地址限制.
这意味着,虽然我可以很好地发布到SagePay模拟器,但Web服务器拒绝了返回响应.
是否有SagePay模拟器服务器使用的已发布的IP地址/范围列表,以便我可以将它们列入白名单?
干杯,
麦克风
协议 4.00 的文档可能会更有帮助。对于每个努力让 3DSV2 工作的人来说,我希望任何已经设法让 3DSV2 工作的人能够详细阐述基础知识。
我将根据我的理解总结流程,请大家帮忙纠正必要的地方并添加任何问题,例如从 VPSTx_Id 中删除 {} 大括号。
如果 SagePay 的响应是 3DAUTH,则构建一个表单以向客户显示,其中包含带有必需字段“acsUrl”、“creq”和“thirdDSSessionData”的 iFrame,这些字段是从 SagePay 响应中填写的。(协议 4 指南第 16 页)。笔记 *
该文档说要使其成为自动提交表单,但最好告知客户为什么要向银行进行身份验证并让他们单击按钮继续。青年MMV
Opayo 从我们的付款请求中返回,要求我们联系https://www.rsa3dsauth.co.uk/3ds2/cReqWebBased?issuer=barclays”进行 3D 安全身份验证,因此我们发送以下内容:
<form id="c-form" method="POST" action="https://www.rsa3dsauth.co.uk/3ds2/cReqWebBased?issuer=barclays">
<input type="hidden" name="creq" value="*removed for data protection*" />
<input type="hidden" name="threeDSSessionData" value="tQtpVHCcCVGEhPNDaeCtMK9I%2fREJERnarovmuZPsM4M6xy6gks9rOYix36waoxOn1wukcobCFbfd2jpmVDVDwZjrd3MzJtmpyFDEAu5R9azVveH6kBEXc5F2ETnFijQfEj5l6EzmH7EnMzbTlFHgbkDGR%2fH9CtURo0K2VSUKHN4%3d" />
<script>
document.addEventListener("DOMContentLoaded", function()
{
var b = document.getElementById("c-form");
b && b.submit();
});
</script>
</form>
Run Code Online (Sandbox Code Playgroud)
我们回来了
POST https://xxxxx.xxxxxxx.xxx/api/payment/3dsecurechallenge?eid=ctl00_cphMain_Payment_SagePay_ThreeD
cres=*removed for data protection*&threeDSSessionData=
Run Code Online (Sandbox Code Playgroud)
请注意,下面没有任何内容&threeDSSessionData=,它应该将字符串返回给我们。
文档说:

还有谁有相同的问题吗?