本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Securepay 无法使用

发布于2024-10-31 11:01     阅读(1078)     评论(0)     点赞(19)     收藏(4)


我已在我的网站上实施了安全支付网关。它运行良好,但从昨天开始就无法正常工作。我没有收到安全服务器的任何响应。我还收到错误。

遇到 PHP 错误

严重程度:通知

消息:尝试获取非对象的属性

文件名:libraries/securepay.php

行号:479

在 securepay.php 中 479 数字行是

($this->_TranslateServerCode($this->ResponseTree->Status->statusCode) == SECUREPAY_STATUS_OK);

完整功能如下

function TestConnection() {
    $this->RequestXml = $this->_ComposeEcho();
    $this->ResponseXml = $this->_Dispatch($this->RequestXml);
    $this->ResponseTree = simplexml_load_string($this->ResponseXml);
    return ($this->_TranslateServerCode($this->ResponseTree->Status->statusCode) == SECUREPAY_STATUS_OK);
} 

下面是我的示例代码:

包括('securepay.php');

$sp = new SecurePay('ABC0001','abc123', TRUE);
$sp->TestMode();    
$sp->TestConnection();  
$sp->Cc = 4111111111111111;
$sp->ExpiryDate = '07/20';
$sp->ChargeAmount = 1500;
$sp->ChargeCurrency = 'AUD';
$sp->Cvv = 321;
$sp->OrderId = 'ORD34234';

if ($sp->Valid()) { 
    $response = $sp->Process();
    if ($response == SECUREPAY_STATUS_APPROVED) {
        echo "Transaction was a success\n";
    } else {
        echo "Transaction failed with the error code: $response\n";
        echo "XML Dump: " . print_r($sp->ResponseXml,1) . "\n";
    }
} else {
    die("Your data is invalid\n");
} 

请帮我解决该问题。


解决方案


您可以使用以下 curl REST API 代码:

$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, 'https://test.api.securepay.com.au/xmlapi/payment' );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, 2 );
curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, false );
curl_setopt ( $ch, CURLOPT_MAXREDIRS, 1 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $ch, CURLOPT_HTTPHEADER, array (
            'Content-Type: application/json' 
    ) );

curl_setopt ( $ch, CURLOPT_POST, true );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $jsonRequest );

curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt ( $ch, CURLOPT_TIMEOUT, 30 );

$result = curl_exec ( $ch );

这里 $jsonRequest 会包含“信用卡付款”等请求数据。您可以使用以下链接找到 JSON 请求数据并进行测试。SecurePay沙盒测试环境



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/552020/e2c15023d86d6f247dee/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

19 0
收藏该文
已收藏

评论内容:(最多支持255个字符)