eGHL 付款:哈希值不匹配。如果在 url 中使用“&”传递多个参数

阿辛基

我正在使用 PHP 实现 eGHL 付款方式。我在他们的 api 上发现了一个奇怪的错误,或者可能在 PHP 中。

我正在使用hash().

<?php   $callback = 'http://localhost/test/eghl.php?query=abce123';

        $orderid = '2512718999';
        $amount = '81.50';
        $currency = 'MYR';
        $merchant = 'IDNOXXXXX';
        $password = 'PASSXXXXX';
        $ip = '127.0.0.1';
        $timeout = '600';

        $string = $password . $merchant . $orderid . $callback . $amount . $currency . $ip . $timeout;

        $hash = hash('sha256', $string);
?>

然后把这些值变成形式

<form action="https://test2pay.ghl.com/IPGSG/Payment.aspx" method="post" name="adminForm" enctype="multipart/form-data">


            <p>
                <strong>eGHL Payments </strong>
            </p>

            <input name="TransactionType" value="SALE" type="hidden"> 
            <input name="PymtMethod" value="ANY" type="hidden"> 
            <input name="ServiceID" value="<?php echo $merchant; ?>" type="hidden"> 
            <input name="PaymentID" value="<?php echo $orderid; ?>" type="hidden">
            <input name="OrderNumber" value="<?php echo $orderid; ?>" type="hidden">
            <input name="PaymentDesc" value="Demo - #<?php echo $orderid; ?>" type="hidden"> 
            <input name="MerchantReturnURL" value="<?php echo $callback; ?>" type="hidden">
            <input name="Amount" value="<?php echo $amount; ?>" type="hidden"> 
            <input name="CurrencyCode" value="<?php echo $currency; ?>" type="hidden"> 
            <input name="CustIP" value="<?php echo $ip; ?>" type="hidden"> 
            <input name="CustName" value="Suraj Mishra" type="hidden"> 
            <input name="CustEmail" value="[email protected]" type="hidden"> 
            <input name="CustPhone" value="9876543210" type="hidden"> 
            <input name="PageTimeout" value="<?php echo $timeout; ?>" type="hidden"> 
            <input name="HashValue" value="<?php echo $hash; ?>" type="hidden"> 
            <input class="k2store_checkout_button btn btn-primary" value="Click Here to Complete Order" type="submit">
            <input name="order_id" value="1512718995" type="hidden">
            <input name="orderpayment_id" value="53" type="hidden">
            <input name="orderpayment_type" value="payment_eghl" type="hidden">
            <input name="task" value="confirmPayment" type="hidden">
          <!-- I am making a plugin for k2Store in joomla so i need to use view & task parameters too or do you know any better way ? !-->
        </form>

一切正常,但是当我在 $callback url 中添加更多参数时出现错误

http://localhost/test/eghl.php?query=abce123 &another=value123

然后 eGHL 得到这个错误响应Hash 值不匹配。

Array
(
    [query] => abce123
    [test] => value
    [TransactionType] => SALE
    [PymtMethod] => CC
    [ServiceID] => IDNOXXXXX
    [PaymentID] => 2512718999
    [OrderNumber] => 2512718999
    [Amount] => 81.50
    [CurrencyCode] => MYR
    [TxnID] => 
    [TxnStatus] => 1
    [Param6] => 
    [Param7] => 
    [TxnMessage] => Hash value mismatched.
    [HashValue] => 1fff3118058ee7c87d70cd0b43b0f8a018ffa1c88bcf0951c08ff6606219e775
    [HashValue2] => 7516c7fd788d36a6bae8a10b57b647c6f79e30f3f10dc387b6dd4c4650a11341
)

我已经尝试过 urlencode 但在这种情况下没有帮助我需要它,因为我必须按照使用 k2Store Plugin _postpayment dispatcher 所需的以下格式构建我的回调 url。

http://localhost/joomla/index.php?option=com_k2store&view=checkout&task=confirmPayment&orderpayment_type=payment_eghl

如果我&从 $callback 中删除它会给我这样的成功响应

[Amount] => 81.50
[CurrencyCode] => MYR
[HashValue] => 7c9a56fee7f7f5c16af4f3b5075e4d836e9ae1a1d9dacb96aea5349222be5f7d
[HashValue2] => 333eb4135c2b94330feca670c0c0815f038e4da3ed571e2daf7f462b4ba44d02
[TxnID] => sit00000000002512728991
[IssuingBank] => HostSim
[TxnStatus] => 0
[AuthCode] => sit000
[BankRefNo] => sit00000000002512728991
[TokenType] => OCP
[Token] => xTyQRgpPE2bZtv96KeBQtw==
[RespTime] => 2017-12-08 20:39:49
[TxnMessage] => Transaction Successful

任何帮助将不胜感激和最受欢迎

XuDing

您需要将 & 替换为 ; 在您的网址中

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取url参数:如果在输入字段的name属性中使用三号括号,则JavaScript无法正常工作

如果在URL中使用斜杠,则进行重定向。htaccess

使用flask在URL中传递多个参数

如何在Swift中使用包含相同键的多个值的查询参数构建URL?

如何在Laravel 5.1中使用url(路由)传递多个参数

Html :: a()在yii2中的超链接中使用干净的URL传递多个参数,但不会生成干净的URL

如果在页面上找到部分匹配的URL,请获取该URL

如果在URL中捕获了特定的字符串,请使用.htaccess停止处理

使用 URL 传递参数

如果传递了URL参数,则使用jQuery显示div

根据url中传递的参数在Django中使用order_by

如何在表单验证中使用通过url传递的参数

使用vuejs时如何在url中传递多个参数

用户可以在Flask URL参数中使用的限制值

如何在Sapper / Svelte中使用多个URL参数

如果URL中传递了多个参数,则Django无法在POST请求正文中加载Json

如果在findAll中使用beautifulsoup

如果在MySQL中使用SUM

如果在Excel中使用AND OR功能

如果在r中使用%in%

通过PHP中的URL传递和获取同一参数的多个值的最佳方法

如何在URL中传递多个参数?

通过Wordpress中的URL传递多个参数

如何在URL中传递多个参数?

django-CBV-从url传递多个值

在SSRS URL中传递多个值

如果在uib-tabset中使用,则值不与作用域的变量绑定

URL参数哈希值js的打印值

使用多个参数清除URL

TOP 榜单

热门标签

归档