Merge pull request #47 from cryptochangements34/master

payment verification bug fixes
This commit is contained in:
cryptochangements34 2018-02-11 18:15:40 -05:00 committed by GitHub
commit acc6b0d91c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8,7 +8,7 @@
class Monero_Gateway extends WC_Payment_Gateway class Monero_Gateway extends WC_Payment_Gateway
{ {
private $reloadTime = 30000; private $reloadTime = 17000;
private $discount; private $discount;
private $confirmed = false; private $confirmed = false;
private $monero_daemon; private $monero_daemon;
@ -325,7 +325,7 @@ class Monero_Gateway extends WC_Payment_Gateway
$uri = "monero:$address?tx_payment_id=$payment_id"; $uri = "monero:$address?tx_payment_id=$payment_id";
if($this->zero_confirm){ if($this->zero_confirm){
$this->verify_zero_conf($payment_id, $amount, $order_id); $this->verify_zero_conf($payment_id, $amount_xmr2, $order_id);
} }
else{ else{
$this->verify_non_rpc($payment_id, $amount_xmr2, $order_id); $this->verify_non_rpc($payment_id, $amount_xmr2, $order_id);
@ -578,10 +578,10 @@ class Monero_Gateway extends WC_Payment_Gateway
$order = wc_get_order($order_id); $order = wc_get_order($order_id);
if($this->is_virtual_in_cart($order_id) == true){ if($this->is_virtual_in_cart($order_id) == true){
$order->update_status('completed', __('Payment has been received', 'monero_gateway')); $order->update_status('completed', __('Payment has been received' . $payment_id, 'monero_gateway'));
} }
else{ else{
$order->update_status('processing', __('Payment has been received', 'monero_gateway')); $order->update_status('processing', __('Payment has been received' . $payment_id, 'monero_gateway')); // Show payment id used for order
} }
global $wpdb; global $wpdb;
$wpdb->query("DROP TABLE $payment_id"); // Drop the table from database after payment has been confirmed as it is no longer needed $wpdb->query("DROP TABLE $payment_id"); // Drop the table from database after payment has been confirmed as it is no longer needed
@ -652,6 +652,10 @@ class Monero_Gateway extends WC_Payment_Gateway
if($block_difference != 0) if($block_difference != 0)
{ {
if($block_difference > 2){
$this->log->add('[WARNING] Block difference is greater than 2');
}
$txs_from_block_2 = $tools->get_txs_from_block($bc_height - 1); $txs_from_block_2 = $tools->get_txs_from_block($bc_height - 1);
$tx_count_2 = count($txs_from_block_2) - 1; $tx_count_2 = count($txs_from_block_2) - 1;
@ -693,10 +697,15 @@ class Monero_Gateway extends WC_Payment_Gateway
if(isset($output_found)) if(isset($output_found))
{ {
$amount_atomic_units = $amount * 1000000000000; $amount_atomic_units = $amount * 1000000000000;
if($txs_from_block[$block_index]['payment_id'] == $payment_id && $output_found['amount'] >= $amount_atomic_units) if($txs_from_block[$block_index]['payment_id'] == $payment_id && $output_found['amount'] >= $amount_atomic_units)
{ {
$this->on_verified($payment_id, $amount_atomic_units, $order_id); $this->on_verified($payment_id, $amount_atomic_units, $order_id);
} }
if($txs_from_block_2[$block_index]['payment_id'] == $payment_id && $output_found['amount'] >= $amount_atomic_units)
{
$this->on_verified($payment_id, $amount_atomic_units, $order_id);
}
return true; return true;
} }