当前位置: 首页 > 知识库问答 >
问题:

事务快递cURL与PHP集成不工作?

辛才俊
2023-03-14

此代码用于向支付网关发送详细信息。当我使用规范形式的代码时,它工作得很好,但在PHP中与cURL一起使用时,它不工作,并给出“objectismoved”的结果。

我的问题有什么解决办法?如何在Transaction express网关中使用cURL进行支付转账?

以下是导致问题的代码:

function httpPost($url,$params)
{
    $postData = '';
    //create name value pairs seperated by &
    foreach($params as $k => $v) 
    { 
      $postData .= $k . '='.$v.'&'; 
    }
    rtrim($postData, '&');
    $ch = curl_init();  
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_POST, count($postData));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);    
    $output=curl_exec($ch) or die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
    curl_close($ch);
    return $output;
}
$params = array(
   "HostedKey" => "xxxxxxxxxxxxxxxxxxx",
   "Gateway_ID" => "xxxxxxxx",
   "IndustryCode" => "2",
   "Amount" => "",
   "RecurringType" => "N",
   "RecurringAmount" => "",
   "RURL" => "http://www.example.com",
   "CURL" => "http://www.example.com",
   "AVSRequired" => "N",
   "CVV2Required" => "Y",
   "EmailRequired" => "Y",
   "PostRspMsg" => "N",
   "FullName" => "my name",
   "CustRefID" => "11111111"
);
echo httpPost("https://hosted.transactionexpress.com/Transaction/Transaction/Index/",$params);

共有3个答案

强烨
2023-03-14

为什么使用卷曲?这是一种过时的API消费方式。

在我的示例中,使用soapwsdl实现更健壮的面向对象方法

https://github.com/rojobo/TransactionExpressPHP

问候

赵修诚
2023-03-14

这适用于我的PayPal支付:

 $pp_hostname = "www.paypal.com";
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, "https://$pp_hostname/cgi-bin/webscr");
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);      
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
 curl_setopt($ch, CURLOPT_HTTPHEADER, array("Host: $pp_hostname"));

 $res = curl_exec($ch);
 curl_close($ch);
邢同
2023-03-14

出于安全原因,我认为存在ssl问题

你必须做一些类似的事情

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true);
 类似资料:
  • 当执行上面的代码时,将发生回滚,并且“Hibernate操作”将被回滚,但在TaskService.Complete中执行的操作不会被回滚。 我已经调试了Camunda代码,一切似乎都正常,我找到了一个SpringTransactionInterceptor,命令在中执行,此时事务处于活动状态。

  • 问题内容: 访问REST API时,这两段代码有何不同? 和 从以下两个方面判断,它们都产生相同的结果 问题答案: 是一个简单的螺丝刀。非常适合简单的GET请求,其中标头,HTTP请求方法,超时,cookiejar,重定向和其他重要内容无关紧要。 带有流上下文或带有setopt的cURL 的Powerdrill带有您可以想到的每一个细节。

  • 当通过PHP发出curl请求时,curl得到“无法连接到主机”。当我转储curl信息时,不是请求服务器的ip。 这在我的测试服务器上运行良好,但在生产环境中不起作用。在生产服务器上,这是我得到的响应: 大堆 7. 无法连接到主机数组(23){["url"]=

  • 我的独立应用程序已经使用narayana事务管理器与其他XA资源进行JTA事务,现在我也在尝试将其与Hiberante集成。因此Hibernate事务也在JTA超越范围内执行- hibernate.cfg.xml 其他爪哇会议 - 这就是我开始交易的方式 - 现在的问题是,db只在调用sessionFactory.close()后才显示会话的更改,而不是应该在transactionManager.

  • 嗨,我正在尝试开发带有事务的spring和hibernate应用程序,我正在使用Spring4。x和hibernate 4。下面是我的代码片段 应用程序上下文。xml servlet上下文。xml 坚持。xml finnaly meservice看起来像这样 和 这里会发生运行时异常,但db记录没有回滚。

  • 我目前在Spring集成中处理JMS事务时遇到困难。我正在创建的集成流程如下所示: JMS队列A- 我希望在JMS队列B和JMS队列C上保证消息的传递。然而,为了使传递稍微困难一些,我希望将导致错误的消息存储在单独的JMQ队列上,并在队列a上确认消息。 但是,如果我对此进行测试并在队列C上设置消息之前抛出错误(让我们假设队列B首先完成,队列C其次完成),事务将确认队列A并在队列B和错误队列上提交消