【问题标题】:Jazzcash Payment Integration V2.0Jazzcash 支付集成 V2.0
【发布时间】:2022-07-17 14:22:27
【问题描述】:

我正在开发基于 Rest 的 api 版本 2.0。它不断给我错误

请为 pp_SecureHash 提供一个有效值

在“页面重定向”的情况下工作正常,因此哈希密钥生成方法是正确的,问题在于参数(可能是一些丢失/额外/错误的数据)。我做错了什么?

{ “uri”: “https://sandbox.jazzcash.com.pk/ApplicationAPI/API/2.0/Purchase/DoMWalletTransaction”, “method”: “POST”, “body”: “pp_Amount=1100&pp_BillReference=billRef&pp_CNIC=345678&pp_Description=jazzcash&pp_Language=EN&pp_MerchantID=xyz&pp_MobileNumber=03123456789&pp_Password=xyz&pp_ReturnURL=https://sandbox.jazzcash.com.pk/ApplicationAPI/API/2.0/Purchase/DoMWalletTransaction&pp_SecureHash=BC3BABD0481A2FA756F2E16CE15FC6F8029D40E23B974065668CCEAC300B80AE&pp_TxnCurrency=PKR&pp_TxnDateTime=20220406132730&pp_TxnExpiryDateTime=20220406142730&pp_TxnRefNo=T20220406142730&ppmpf_1=1&ppmpf_2=2&ppmpf_3=3&ppmpf_4=4&ppmpf_5=5” }

【问题讨论】:

    标签: react-native asp.net-core asp.net-web-api payment-gateway


    【解决方案1】:

    您的pp_SecureHash 值需要经过 HmacSHA256 编码。

    var sHash = HMACSHA256Encode(hash, jazz.salt);
    

    您可以参考此代码示例来实现您的要求。

    C#: Generate pp_SecureHash ()

    【讨论】:

      【解决方案2】:

      请检查您的商家 ID、密码和盐密钥。如果您的任何信息有误,也是通过错误。 仔细阅读文档。如果添加版本 1.2 并且在文档中提到 1.1,它将无法正常工作并出现相同的错误。提供有效的安全

      如果您确定其他信息正确,则可以使用以下方法生成安全 ssh

      $post_data =  array(
                  "pp_Version"            => Config::get('constants.jazzcash.VERSION'),
                  "pp_TxnType"            => "MWALLET",
                  "pp_Language"           => Config::get('constants.jazzcash.LANGUAGE'),
                  "pp_MerchantID"         => Config::get('constants.jazzcash.MERCHANT_ID'),
                  "pp_SubMerchantID"      => "",
                  "pp_Password"           => Config::get('constants.jazzcash.PASSWORD'),
                  "pp_BankID"             => "TBANK",
                  "pp_ProductID"          => "RETL",
                  "pp_TxnRefNo"           => $pp_TxnRefNo,
                  "pp_Amount"             => $pp_Amount,
                  "pp_TxnCurrency"        => Config::get('constants.jazzcash.CURRENCY_CODE'),
                  "pp_TxnDateTime"        => $pp_TxnDateTime,
                  "pp_BillReference"      => "billRef",
                  "pp_Description"        => "Description of transaction",
                  "pp_TxnExpiryDateTime"  => $pp_TxnExpiryDateTime,
                  "pp_ReturnURL"          => Config::get('constants.jazzcash.RETURN_URL'),
                  "pp_SecureHash"         => "",
                  "ppmpf_1"               => "1",
                  "ppmpf_2"               => "2",
                  "ppmpf_3"               => "3",
                  "ppmpf_4"               => "4",
                  "ppmpf_5"               => "5",
              );
      
          private function get_SecureHash($data_array)
          {
              ksort($data_array);
              
              $str = '';
              foreach($data_array as $key => $value){
                  if(!empty($value)){
                      $str = $str . '&' . $value;
                  }
              }
              
              $str = Config::get('constants.jazzcash.INTEGERITY_SALT').$str;
              
              $pp_SecureHash = hash_hmac('sha256', $str, Config::get('constants.jazzcash.INTEGERITY_SALT'));
              
              //echo '<pre>';
              //print_r($data_array);
              //echo '</pre>';
              
              return $pp_SecureHash;
          }
      

      最后通过调用这个方法可以获得安全密钥

      $pp_SecureHash = $this->get_SecureHash($post_data);
      

      【讨论】:

        猜你喜欢
        • 2020-11-27
        • 2012-07-23
        • 2020-06-08
        • 1970-01-01
        • 2021-11-03
        • 2020-09-23
        • 2020-10-02
        • 2011-05-05
        • 2020-03-10
        相关资源
        最近更新 更多