整合支付平台可能具有挑戰性,尤其是當文件缺少您首選的語言範例時。 本文詳細介紹了用於驗證Bayarcash校驗和的Ruby Ruby,這是與此馬來西亞支付網關合作的開發人員的常見障礙。 官方文件提供了一個PHP範例,但是本指南橋接了Ruby開發人員的差距。
理解php範例)相連,並產生HMAC SHA256校驗和。 但是,將其直接轉換為Ruby需要仔細考慮資料結構和雜湊方法。
|
>在鐵軌解決方案上有強大的紅寶石
此程式碼解決了PHP和Ruby之間的關鍵差異:
<code class="language-ruby"># Your BayarcashService class def valid_checksum?(params) received_checksum = params['checksum'] payload_data = { 'record_type' => params['record_type'], 'transaction_id' => params['transaction_id'], 'exchange_reference_number' => params['exchange_reference_number'], 'exchange_transaction_id' => params['exchange_transaction_id'], 'order_number' => params['order_number'], 'currency' => params['currency'], 'amount' => params['amount'], 'payer_name' => params['payer_name'], 'payer_email' => params['payer_email'], 'payer_bank_name' => params['payer_bank_name'], 'status' => params['status'], 'status_description' => params['status_description'], 'datetime' => params['datetime'] } sorted_payload = payload_data.sort.to_h payload_string = sorted_payload.values.join('|') generated_checksum = OpenSSL::HMAC.hexdigest('sha256', SECRET_KEY, payload_string) ActiveSupport::SecurityUtils.secure_compare(generated_checksum.downcase, received_checksum.downcase) rescue => e Rails.logger.error "Checksum validation error: #{e.message}" false end</code>
hash.sort.to_h
ksort
方法有效地串聯了分類的有效載荷值。 join('|')
OpenSSL::HMAC.hexdigest
以上是使用Ruby實施Bayarcash付款API:驗證校驗和的詳細內容。更多資訊請關注PHP中文網其他相關文章!