【问题标题】:Creating a hash in Realex payments在 Realex 支付中创建哈希
【发布时间】:2016-02-18 12:38:15
【问题描述】:

我需要在 Realex 支付中更新现有卡上的到期日期和持卡人姓名。

哈希值语法应采用以下格式:

Timestamp.merchantID.payerref.ref.expirydate.cardnumber

这是一个外观示例

20030516175919.yourmerchantid.mypayer.card01.1015.

当我运行以下方法时出现错误:

“sha1hash 不正确 - 检查您的代码和开发者文档”

private string ReturnHash(string timeStamp, string merchantId, string payerRef, string reference, string expDate, string cardNum )
{
    SHA1 hash = new SHA1Managed();
    StringBuilder builder = new StringBuilder();

    builder.Append(timeStamp).Append(".");
    builder.Append(merchantId).Append(".");
    builder.Append(payerRef).Append(".");
    builder.Append(reference).Append(".");
    builder.Append(expDate).Append(".");
    builder.Append(cardNum );

    string resultingHash = BitConverter.ToString(hash.ComputeHash(Encoding.UTF8.GetBytes(builder.ToString())));
    resultingHash = BitConverter.ToString(hash.ComputeHash(Encoding.UTF8.GetBytes(resultingHash)));

    return resultingHash;
}

我做错了什么?

【问题讨论】:

  • 您使用的是什么产品?我知道使用 Realex RealAuth 时,哈希值必须为小写(参见第 16 页)。您的代码似乎没有这样做。 resourcecentre.realexpayments.com/documents/pdf.html?id=137
  • @DamienDennehy 它的真实保险库。那是一样的吗?我对整个付款很陌生。
  • 单独的产品,但上面有文档。 resourcecentre.realexpayments.com/documents/pdf.html?id=152 第 18 页和第 19 页上有一个示例 SHA1 哈希,您应该尝试使用您的代码进行复制。如果它与 Realex 的样本值不匹配,那么您的方法可能做错了什么。
  • @DamienDennehy 太好了,感谢您提供的文档。更进一步

标签: c# realex-payments-api


【解决方案1】:

感谢您的留言。

你可以在运行这行代码之前尝试一下吗:

string resultingHash = BitConverter.ToString(hash.ComputeHash(Encoding.UTF8.GetBytes(builder.ToString())));

要将“resultingHash”全部小写?

还有运行前:

resultingHash = BitConverter.ToString(hash.ComputeHash(Encoding.UTF8.GetBytes(resultingHash)));

将“resultingHash”也设为小写。

谢谢, 博尔哈

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 2016-03-30
    相关资源
    最近更新 更多