如何在Php站点中集成Quickpay

时间:2017-09-28 06:15:37

标签: php payment-gateway quickpay

朋友。 我尝试在我的PHP站点中集成quickpay。 我的快速支付表格

<form method="POST" action="https://payment.quickpay.net">
<input type="hidden" name="version" value="v10">
<input type="hidden" name="merchant_id" value="43215429">
<input type="hidden" name="agreement_id" value="114267437">
<input type="hidden" name="order_id" value="0001">
<input type="hidden" name="amount" value="100">
<input type="hidden" name="currency" value="INR">
<input type="hidden" name="continueurl" value="http://shop.domain.tld/continue">
<input type="hidden" name="cancelurl" value="http://shop.domain.tld/cancel">
<input type="hidden" name="callbackurl" value="http://shop.domain.tld/callback">
<input type="hidden" name="checksum" value="ed93f788f699c42aefa8a6713794b4d347ff493ecce1aca660581fb1511a1816">
<input type="submit" value="Continue to payment...">
</form>

但是当我尝试测试代码时,它会显示错误,如

校验和无效

请帮助朋友如何在表格中生成校验和用于成功付款 感谢

1 个答案:

答案 0 :(得分:0)

QuickPay表单采用校验和机制对您和您的系统进行身份验证,并确保数据没有被纠缠在一起。

<?php
function sign($base, $private_key) {
  return hash_hmac("sha256", $base, $private_key);
}

$request_body = file_get_contents("php://input");
$checksum     = sign($request_body, "your_account_private_key");

if ($checksum == $_SERVER["HTTP_QUICKPAY_CHECKSUM_SHA256"]) {
  // Request is authenticated
} else {
  // Request is NOT authenticated
}
?>

整个原始回调请求体的校验和 - 使用HMAC和SHA256作为加密哈希函数。校验和使用帐户的私钥进行签名。