【问题标题】:ePDQ Payment by link [PHP]ePDQ 通过链接付款 [PHP]
【发布时间】:2020-06-05 21:05:31
【问题描述】:

用户收到一封电子邮件,其中包含来自我的组织的链接。 此链接直接指向我的帐户https://mdepayments.epdq.co.uk/ncol/test/ 即它没有首先引用我组织的网站。 这一切都在测试环境中,而不是现场(真钱)。

我正在尝试在 url 之后使用参数,因为有时用户可能不允许使用 html 电子邮件。

我还没有找到有关如何执行此操作的示例代码。 EPDQ 给了我一些伪代码。

示例网址

https://mdepayments.epdq.co.uk/ncol/test/orderstandard.asp?
amount=12500&
CURRENCY=PND&
LANGUAGE=en_US&
OrderID=order123_001&
PSPID=XXXXX
SHASIGN=XXXX0C75B23EDBAE523E165176882C19BEACB7E7DEB38955224186BC66C2678FEEA4E4CA2512789001CC7A4E68XXXX3EFD35242BFEFBB7B1D4D7E19CBE80XXXX

(出于安全考虑,SHASIGN 一些字符已更改为 XXXX &PSPID 已更改为 XXXXX)

网页结果

<--------start----------> 
Payment confirmation
> 
> Order reference :     order123_001 Total charge :     --- Beneficiary
> :     ---
> 
> An error has occurred; please try again later. If you are the owner or
> the integrator of this website, please log into the Barclaycard back
> office to see the details of the error. 
<--------end--------->

我使用此代码生成 SHA

<?php

//- integration user details - //
$PW ="16char_SHA_code";
$PSPID = "XXXXX";
$OrderID ="order123_001";
$PaymentAmount =12500;
$CurrencyCode ="GBP";


$DigestivePlain =
"AMOUNT=" . $PaymentAmount . $PW .
"CURRENCY=" . $CurrencyCode . $PW .
"LANGUAGE=en_US" . $PW .
"ORDERID=" . $OrderID . $PW .
"PSPID=" . $PSPID . $PW .
"";

$strHashedString_plain = strtoupper(hash('sha512',($DigestivePlain)));
print $strHashedString_plain;
?>

我有一个可以通过我的组织网站运行的 HTML 表单。它允许用户输入详细信息,EPDQ 会成功付款。

$DigestivePlain 基于 EPDQ 示例,适用于我的 HTML 表单。

【问题讨论】:

  • 抱歉,我不确定它是否 100% 清楚...您是否尝试使用 PHP 生成一个 URL 字符串,就像您标记为“示例 URL”的那个字符串?如果是这样,那么它甚至没有接近,我不确定你认为散列与它有什么关系 - 你检查过$strHashedString_plain 输出的内容吗?目前还不清楚这与在电子邮件中使用 HTML 有什么关系。你能更准确地描述发生了什么吗?假设我们对您的方案一无所知(因为我们不知道),请不要觉得您在高看我们 - 只需清楚且足够详细地告诉我们即可。
  • 或者您是否尝试使用 PHP 从该 URL(用于访问您的站点)读取数据?从你说的我无法解决。如果是这样,您的代码也没有提及尝试这样做。
  • @ADyson 感谢您的 cmets。通过一些更正,我现在有了一个基本的支付屏幕工作。希望我现在可以改进它。标签 [EPDQ] 怎么样?

标签: php payment


【解决方案1】:

这个PHP是用来生成SHASIGN的

<?php

    //- integration user details - //
    $PW ="MyShaInPassPhrase";
  $PSPID = "MyPSPID"; 
  $OrderID ="order123_001";
  $PaymentAmount =12500;
  $CurrencyCode ="GBP";


//important to order alphabetically
$DigestivePlain =
"AMOUNT=" . $PaymentAmount . $PW .
"CURRENCY=" . $CurrencyCode . $PW .
"LANGUAGE=en_US" . $PW .
"ORDERID=" . $OrderID . $PW .
"PMLISTTYPE=2". $PW .
"PSPID=" . $PSPID . $PW .
"";


$strHashedString_plain = strtoupper(hash('sha512',($DigestivePlain)));
print $strHashedString_plain;
?>

现在是网址

PSPID:5 个字符的 PSPID(不是 XXXXX) SHASIGN - 由 128 个字符以上的 php 代码创建(不是 YYYY...)

https://mdepayments.epdq.co.uk/ncol/test/orderstandard.asp ?AMOUNT=12500&CURRENCY=GBP&LANGUAGE=en_US&ORDERID=order123_001&PMLISTTYPE=2&PSPID=XXXXX& SHASIGN=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

这将我带到 EPDQ 卡选择屏幕,然后进入付款屏幕并成功交易。

【讨论】:

    猜你喜欢
    • 2011-10-27
    • 2012-07-22
    • 1970-01-01
    • 2016-03-13
    • 2013-02-15
    • 2013-05-26
    • 2016-07-23
    • 2013-08-22
    • 1970-01-01
    相关资源
    最近更新 更多