Changeset 2783062
- Timestamp:
- 09/12/2022 12:14:24 AM (4 years ago)
- Location:
- pay-advantage/trunk
- Files:
-
- 7 edited
-
README.txt (modified) (2 diffs)
-
admin/options-ajax.php (modified) (2 diffs)
-
payadvantage.php (modified) (2 diffs)
-
public/ajax-payadvantage-creditcard.php (modified) (1 diff)
-
public/ajax-payadvantage-customer.php (modified) (1 diff)
-
public/ajax-payadvantage-woocommerce.php (modified) (1 diff)
-
public/js/common.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
pay-advantage/trunk/README.txt
r2745606 r2783062 3 3 Tags: credit cards, payment gateway, online payments, e-commerce 4 4 Requires at least: 5.2 5 Tested up to: 6.0. 05 Tested up to: 6.0.2 6 6 Stable tag: 3.2.1 7 7 Requires PHP: 7.0 … … 49 49 = 3.2.0 = 50 50 * If you have 3.1, you must upgrade to this version to continue processing payments. 51 * Bu xfixes51 * Bug fixes 52 52 * Security improvements 53 53 * Increased supported Wordpress version to 5.9.1 -
pay-advantage/trunk/admin/options-ajax.php
r2708855 r2783062 6 6 */ 7 7 function save_pay_advantage_settings_handler() { 8 check_ajax_referer( 'pay_advantage_nonce', 'security' ); 8 try { 9 check_ajax_referer( 'pay_advantage_nonce', 'security' ); 9 10 10 if ( ! is_admin() ) {11 pay_advantage_write_error_to_response( 'Failed, user is not an admin.' );12 wp_die();13 }11 if ( ! is_admin() ) { 12 pay_advantage_write_error_to_response( 'Failed, user is not an admin.' ); 13 wp_die(); 14 } 14 15 15 $require_mobile = filter_var( $_POST['payadvantagerequiremobile'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0;16 $require_address = filter_var( $_POST['payadvantagerequireaddress'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0;17 $show_credit_card = filter_var( $_POST['payadvantageshowbcreditcard'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0;18 $oncharge_credit_card_fees = filter_var( $_POST['payadvantageonchargecreditcardfees'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0;19 $wc_oncharge_credit_card_fees = filter_var( $_POST['payadvantagewconchargecreditcardfees'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0;20 $show_bpay = filter_var( $_POST['payadvantageshowbpay'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0;21 $description = sanitize_text_field( $_POST['payadvantagecarddescription'] );22 $anonymous_permission = filter_var( $_POST['payadvantageanonymouspermission'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0;23 $register_credit_card_button = sanitize_text_field( $_POST['payadvantagemakepaymentbutton'] );24 $wc_paid_status = sanitize_text_field( $_POST['payadvantagewcpaidstatus'] );25 $wc_cancel_status = sanitize_text_field( $_POST['payadvantagewccancelstatus'] );16 $require_mobile = filter_var( $_POST['payadvantagerequiremobile'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0; 17 $require_address = filter_var( $_POST['payadvantagerequireaddress'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0; 18 $show_credit_card = filter_var( $_POST['payadvantageshowbcreditcard'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0; 19 $oncharge_credit_card_fees = filter_var( $_POST['payadvantageonchargecreditcardfees'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0; 20 $wc_oncharge_credit_card_fees = filter_var( $_POST['payadvantagewconchargecreditcardfees'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0; 21 $show_bpay = filter_var( $_POST['payadvantageshowbpay'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0; 22 $description = sanitize_text_field( $_POST['payadvantagecarddescription'] ); 23 $anonymous_permission = filter_var( $_POST['payadvantageanonymouspermission'], FILTER_VALIDATE_BOOLEAN ) ? 1 : 0; 24 $register_credit_card_button = sanitize_text_field( $_POST['payadvantagemakepaymentbutton'] ); 25 $wc_paid_status = sanitize_text_field( $_POST['payadvantagewcpaidstatus'] ); 26 $wc_cancel_status = sanitize_text_field( $_POST['payadvantagewccancelstatus'] ); 26 27 27 update_option( 'pay_advantage_credit_card_description', $description );28 update_option( 'pay_advantage_show_widget_to_users_not_logged_in', $anonymous_permission );29 update_option( 'pay_advantage_require_mobile', $require_mobile );30 update_option( 'pay_advantage_require_address', $require_address );31 update_option( 'pay_advantage_show_credit_card', $show_credit_card );32 update_option( 'pay_advantage_oncharge_credit_card_fees', $oncharge_credit_card_fees );33 update_option( 'pay_advantage_wc_oncharge_credit_card_fees', $wc_oncharge_credit_card_fees );34 update_option( 'pay_advantage_show_bpay', $show_bpay );35 update_option( 'pay_advantage_make_payment_button', $register_credit_card_button );36 update_option( 'pay_advantage_wc_paid_status', $wc_paid_status );37 update_option( 'pay_advantage_wc_cancel_status', $wc_cancel_status );28 update_option( 'pay_advantage_credit_card_description', $description ); 29 update_option( 'pay_advantage_show_widget_to_users_not_logged_in', $anonymous_permission ); 30 update_option( 'pay_advantage_require_mobile', $require_mobile ); 31 update_option( 'pay_advantage_require_address', $require_address ); 32 update_option( 'pay_advantage_show_credit_card', $show_credit_card ); 33 update_option( 'pay_advantage_oncharge_credit_card_fees', $oncharge_credit_card_fees ); 34 update_option( 'pay_advantage_wc_oncharge_credit_card_fees', $wc_oncharge_credit_card_fees ); 35 update_option( 'pay_advantage_show_bpay', $show_bpay ); 36 update_option( 'pay_advantage_make_payment_button', $register_credit_card_button ); 37 update_option( 'pay_advantage_wc_paid_status', $wc_paid_status ); 38 update_option( 'pay_advantage_wc_cancel_status', $wc_cancel_status ); 38 39 39 pay_advantage_send_response( array() ); 40 wp_die(); 40 pay_advantage_send_response( array() ); 41 wp_die(); 42 } catch (Exception $e) { 43 Pay_Advantage_Api_Error_Handler::log_error( $e->getMessage() . ' ' . $e->getTraceAsString() ); 44 pay_advantage_write_error_to_response( $e->getMessage() ); 45 wp_die(); 46 } 41 47 } 42 48 … … 54 60 add_action( 'wp_ajax_pay_advantage_connect_action', 'pay_advantage_connect_handler' ); 55 61 function pay_advantage_connect_handler() { 56 if ( ! is_admin() ) { 57 pay_advantage_write_error_to_response( 'Not authorised.' ); 58 wp_die(); 59 } 62 try { 63 if ( ! is_admin() ) { 64 pay_advantage_write_error_to_response( 'Not authorised.' ); 65 wp_die(); 66 } 60 67 61 $env = sanitize_text_field( $_POST['payadvantageenv'] );62 update_option( 'pay_advantage_env', $env );63 update_option( 'pay_advantage_url', $env == "live" ? PAYADV_API_URL_LIVE : PAYADV_API_URL_SANDBOX );68 $env = sanitize_text_field( $_POST['payadvantageenv'] ); 69 update_option( 'pay_advantage_env', $env ); 70 update_option( 'pay_advantage_url', $env == "live" ? PAYADV_API_URL_LIVE : PAYADV_API_URL_SANDBOX ); 64 71 65 // Use a specific instance for the connection. This allows the user to manage various installations of the plugin.66 $instance_id = get_option( 'pay_advantage_instance_id' );72 // Use a specific instance for the connection. This allows the user to manage various installations of the plugin. 73 $instance_id = get_option( 'pay_advantage_instance_id' ); 67 74 68 // create a nonce state and append. Pick up nonce and compare on registration callback.69 $nonce = wp_create_nonce( 'pay_advantage_connect_nonce' );75 // create a nonce state and append. Pick up nonce and compare on registration callback. 76 $nonce = wp_create_nonce( 'pay_advantage_connect_nonce' ); 70 77 71 $client_id = 'D69CB714EC1E4B9781C48D9B980FBD36';72 $code_verifier = pay_advantage_create_code_code_verifier();73 $code_challenge = base64_encode( hash( 'sha256', $code_verifier, true ) );74 update_option( 'pay_advantage_app_client_id', $client_id );75 update_option( 'pay_advantage_app_code_verifier', $code_verifier );78 $client_id = 'D69CB714EC1E4B9781C48D9B980FBD36'; 79 $code_verifier = pay_advantage_create_code_code_verifier(); 80 $code_challenge = base64_encode( hash( 'sha256', $code_verifier, true ) ); 81 update_option( 'pay_advantage_app_client_id', $client_id ); 82 update_option( 'pay_advantage_app_code_verifier', $code_verifier ); 76 83 77 global $wp;78 $redirect_uri = get_site_url() . '/wp-admin/options-general.php?page=PayAdvantage';84 global $wp; 85 $redirect_uri = get_site_url() . '/wp-admin/options-general.php?page=PayAdvantage'; 79 86 80 // redirect. 81 pay_advantage_send_response( array( 82 'RedirectTo' => ( 83 $env == "live" ? PAYADV_REGISTRATION_URL_LIVE : PAYADV_REGISTRATION_URL_SANDBOX ) . 84 "?client_id=" . urlencode( $client_id ) . 85 "&code_challenge=" . urlencode( $code_challenge ) . 86 "&code_challenge_method=S256" . 87 "&state=" . urlencode( $nonce ) . 88 "&redirect_uri=" . urlencode( $redirect_uri ) . 89 "&response_type=code" . 90 "&response_mode=query" . 91 "&instance_id=" . urlencode( $instance_id ) . 92 "&instance_name=" . rawurlencode( get_bloginfo( 'name' ) ) 93 ) ); 94 wp_die(); 87 // redirect. 88 pay_advantage_send_response( array( 89 'RedirectTo' => ( 90 $env == "live" ? PAYADV_REGISTRATION_URL_LIVE : PAYADV_REGISTRATION_URL_SANDBOX ) . 91 "?client_id=" . urlencode( $client_id ) . 92 "&code_challenge=" . urlencode( $code_challenge ) . 93 "&code_challenge_method=S256" . 94 "&state=" . urlencode( $nonce ) . 95 "&redirect_uri=" . urlencode( $redirect_uri ) . 96 "&response_type=code" . 97 "&response_mode=query" . 98 "&instance_id=" . urlencode( $instance_id ) . 99 "&instance_name=" . rawurlencode( get_bloginfo( 'name' ) ) 100 ) ); 101 wp_die(); 102 } catch (Exception $e) { 103 Pay_Advantage_Api_Error_Handler::log_error( $e->getMessage() . ' ' . $e->getTraceAsString() ); 104 pay_advantage_write_error_to_response( $e->getMessage() ); 105 wp_die(); 106 } 95 107 } 96 108 97 109 add_action( 'wp_ajax_pay_advantage_disconnect_action', 'pay_advantage_disconnect_handler' ); 98 110 function pay_advantage_disconnect_handler() { 99 if ( ! is_admin() ) { 100 pay_advantage_write_error_to_response( 'Not authorised.' ); 101 wp_die(); 102 } 111 try { 112 if ( ! is_admin() ) { 113 pay_advantage_write_error_to_response( 'Not authorised.' ); 114 wp_die(); 115 } 103 116 104 pay_advantage_send_response( ( new Pay_Advantage_Api() )->delete_refresh_token() ); 105 wp_die(); 117 pay_advantage_send_response( ( new Pay_Advantage_Api() )->delete_refresh_token() ); 118 wp_die(); 119 } catch (Exception $e) { 120 Pay_Advantage_Api_Error_Handler::log_error( $e->getMessage() . ' ' . $e->getTraceAsString() ); 121 pay_advantage_write_error_to_response( $e->getMessage() ); 122 wp_die(); 123 } 106 124 } 107 125 ?> -
pay-advantage/trunk/payadvantage.php
r2745605 r2783062 23 23 * Text Domain: PayAdvantage 24 24 * Domain Path: /languages 25 * WC tested up to: 6. 5.125 * WC tested up to: 6.8.2 26 26 * WC requires at least: 3.7 27 27 */ … … 30 30 * Current plugin version. 31 31 */ 32 define( 'PayAdvantagePluginVersion', '3.2. 1' );32 define( 'PayAdvantagePluginVersion', '3.2.2' ); 33 33 34 34 include( plugin_dir_path( __FILE__ ) . '/includes/payadvantage-files.php' ); -
pay-advantage/trunk/public/ajax-payadvantage-creditcard.php
r2721266 r2783062 12 12 //Extracts the data from the widget api call and sends it to pay advantage. 13 13 function pay_advantage_credit_card_handler() { 14 $pay_advantage_api = new Pay_Advantage_Api(); 14 try { 15 $pay_advantage_api = new Pay_Advantage_Api(); 15 16 16 check_ajax_referer( 'pay_advantage_nonce', 'security' );17 check_ajax_referer( 'pay_advantage_nonce', 'security' ); 17 18 18 if ( current_user_can( 'read' ) == 0 && get_option( 'pay_advantage_show_widget_to_users_not_logged_in' ) == "0" ) { 19 pay_advantage_write_error_to_response( 'Please login to use this service.' ); 19 if ( current_user_can( 'read' ) == 0 && get_option( 'pay_advantage_show_widget_to_users_not_logged_in' ) == "0" ) { 20 pay_advantage_write_error_to_response( 'Please login to use this service.' ); 21 wp_die(); 22 } 23 24 if ( ! get_option( 'pay_advantage_refresh_token' ) ) { 25 pay_advantage_write_error_to_response( 'Not connected to Pay Advantage.' ); 26 wp_die(); 27 } 28 29 if ( ! get_option( 'pay_advantage_verified' ) ) { 30 pay_advantage_write_error_to_response( 'Your business has not been verified. Please complete your pending verification(s).' ); 31 wp_die(); 32 } 33 34 $payment_amount = sanitize_text_field( $_POST['paymentamount'] ); 35 $payment_description = sanitize_text_field( $_POST['paymentdescription'] ); 36 $customer_code = sanitize_text_field( $_POST['customercode'] ); 37 $oncharge_credit_card_fees = get_option( 'pay_advantage_oncharge_credit_card_fees' ); 38 39 $validation_messages = array(); 40 41 if ( empty( $payment_amount ) ) { 42 array_push( $validation_messages, 'Amount is required.' ); 43 } else if ( $payment_amount < 1 || $payment_amount > 99999.00 ) { 44 array_push( $validation_messages, 'Enter an amount between $1.00 and $99,999.00.' ); 45 } 46 47 if ( empty( $payment_description ) ) { 48 array_push( $validation_messages, 'Description is required.' ); 49 } 50 51 if ( empty( $customer_code ) ) { 52 array_push( $validation_messages, 'Customer is required.' ); 53 } 54 55 if ( count( $validation_messages ) > 0 ) { 56 pay_advantage_write_error_to_response( $validation_messages ); 57 wp_die(); 58 } 59 60 $onchargedFees = 0; 61 if ( $oncharge_credit_card_fees ) { 62 $onchargedFeesResult = $pay_advantage_api->calculate_oncharge_fees( $payment_amount ); 63 if ( isset( $onchargedFeesResult['Status'] ) && $onchargedFeesResult['Status'] != 200 ) { 64 pay_advantage_write_error_to_response( 'Failed to calculate the fees.' ); 65 wp_die(); 66 } 67 $onchargedFees = round( $onchargedFeesResult['AttemptFee'] + $onchargedFeesResult['AttemptFeeGST'] + $onchargedFeesResult['MSF'] + $onchargedFeesResult['MSFGST'], 2 ); 68 } 69 70 $iframe_url_response = $pay_advantage_api->get_cc_iframe_url( $customer_code, $payment_amount, $payment_description, null, $onchargedFees ); 71 if ( isset( $iframe_url_response['Status'] ) && $iframe_url_response['Status'] != 200 ) { 72 pay_advantage_write_error_to_response( 'Failed to prepare the payment.' ); 73 wp_die(); 74 } 75 76 pay_advantage_send_response( array( 77 "IFrameUrl" => $iframe_url_response['IFrameUrl'], 78 "ExpectedOnchargedFee" => $onchargedFees 79 ) ); 80 wp_die(); 81 } catch (Exception $e) { 82 Pay_Advantage_Api_Error_Handler::log_error( $e->getMessage() . ' ' . $e->getTraceAsString() ); 83 pay_advantage_write_error_to_response( $e->getMessage() ); 20 84 wp_die(); 21 85 } 22 23 if ( ! get_option( 'pay_advantage_refresh_token' ) ) {24 pay_advantage_write_error_to_response( 'Not connected to Pay Advantage.' );25 wp_die();26 }27 28 if ( ! get_option( 'pay_advantage_verified' ) ) {29 pay_advantage_write_error_to_response( 'Your business has not been verified. Please complete your pending verification(s).' );30 wp_die();31 }32 33 $payment_amount = sanitize_text_field( $_POST['paymentamount'] );34 $payment_description = sanitize_text_field( $_POST['paymentdescription'] );35 $customer_code = sanitize_text_field( $_POST['customercode'] );36 $oncharge_credit_card_fees = get_option( 'pay_advantage_oncharge_credit_card_fees' );37 38 $validation_messages = array();39 40 if ( empty( $payment_amount ) ) {41 array_push( $validation_messages, 'Amount is required.' );42 } else if ( $payment_amount < 1 || $payment_amount > 99999.00 ) {43 array_push( $validation_messages, 'Enter an amount between $1.00 and $99,999.00.' );44 }45 46 if ( empty( $payment_description ) ) {47 array_push( $validation_messages, 'Description is required.' );48 }49 50 if ( empty( $customer_code ) ) {51 array_push( $validation_messages, 'Customer is required.' );52 }53 54 if ( count( $validation_messages ) > 0 ) {55 pay_advantage_write_error_to_response( $validation_messages );56 wp_die();57 }58 59 $onchargedFees = 0;60 if ($oncharge_credit_card_fees) {61 $onchargedFeesResult = $pay_advantage_api->calculate_oncharge_fees($payment_amount);62 if (isset($onchargedFeesResult['Status']) && $onchargedFeesResult['Status'] != 200) {63 pay_advantage_write_error_to_response('Failed to calculate the fees.');64 wp_die();65 }66 $onchargedFees = round( $onchargedFeesResult['AttemptFee'] + $onchargedFeesResult['AttemptFeeGST'] + $onchargedFeesResult['MSF'] + $onchargedFeesResult['MSFGST'], 2);67 }68 69 $iframe_url_response = $pay_advantage_api->get_cc_iframe_url( $customer_code, $payment_amount, $payment_description, null, $onchargedFees );70 if ( isset( $iframe_url_response['Status'] ) && $iframe_url_response['Status'] != 200 ) {71 pay_advantage_write_error_to_response( 'Failed to prepare the payment.' );72 wp_die();73 }74 75 pay_advantage_send_response( array(76 "IFrameUrl" => $iframe_url_response['IFrameUrl'],77 "ExpectedOnchargedFee" => $onchargedFees78 ) );79 wp_die();80 86 } 81 87 -
pay-advantage/trunk/public/ajax-payadvantage-customer.php
r2721266 r2783062 14 14 */ 15 15 function pay_advantage_create_customer_handler() { 16 check_ajax_referer( 'pay_advantage_nonce', 'security' ); 16 try { 17 check_ajax_referer( 'pay_advantage_nonce', 'security' ); 17 18 18 if ( ! get_option( 'pay_advantage_refresh_token' ) ) { 19 pay_advantage_write_error_to_response( 'Not connected to Pay Advantage.' ); 19 if ( ! get_option( 'pay_advantage_refresh_token' ) ) { 20 pay_advantage_write_error_to_response( 'Not connected to Pay Advantage.' ); 21 wp_die(); 22 } 23 24 if ( ! get_option( 'pay_advantage_verified' ) ) { 25 pay_advantage_write_error_to_response( 'Your business has not been verified. Please complete your pending verification(s).' ); 26 wp_die(); 27 } 28 29 $validator = new Pay_Advantage_Validator(); 30 $pay_advantage_api = new Pay_Advantage_Api(); 31 32 $create_bpay = isset( $_POST['payadvantagecreatebpay'] ) ? $_POST['payadvantagecreatebpay'] === 'true' : 0; 33 34 $customer_data = Pay_Advantage_Data_Mapper::get_customer_data_from_post(); 35 36 $validation_messages = $validator->validate_customer_register( $customer_data, $create_bpay ); 37 38 if ( count( $validation_messages ) > 0 ) { 39 pay_advantage_write_error_to_response( $validation_messages ); 40 wp_die(); 41 } 42 43 pay_advantage_send_response( $pay_advantage_api->create_customer( $customer_data, $create_bpay ) ); 44 wp_die(); 45 } catch (Exception $e) { 46 Pay_Advantage_Api_Error_Handler::log_error( $e->getMessage() . ' ' . $e->getTraceAsString() ); 47 pay_advantage_write_error_to_response( $e->getMessage() ); 20 48 wp_die(); 21 49 } 22 23 if ( ! get_option( 'pay_advantage_verified' ) ) {24 pay_advantage_write_error_to_response( 'Your business has not been verified. Please complete your pending verification(s).' );25 wp_die();26 }27 28 $validator = new Pay_Advantage_Validator();29 $pay_advantage_api = new Pay_Advantage_Api();30 31 $create_bpay = isset( $_POST['payadvantagecreatebpay'] ) ? $_POST['payadvantagecreatebpay'] === 'true' : 0;32 33 $customer_data = Pay_Advantage_Data_Mapper::get_customer_data_from_post();34 35 $validation_messages = $validator->validate_customer_register( $customer_data, $create_bpay );36 37 if ( count( $validation_messages ) > 0 ) {38 pay_advantage_write_error_to_response( $validation_messages );39 wp_die();40 }41 42 pay_advantage_send_response( $pay_advantage_api->create_customer( $customer_data, $create_bpay ) );43 wp_die();44 50 } 45 51 ?> -
pay-advantage/trunk/public/ajax-payadvantage-woocommerce.php
r2708855 r2783062 14 14 15 15 function pay_advantage_mark_order_as_paid_handler() { 16 check_ajax_referer( 'pay_advantage_paid_nonce', 'security' ); 16 try { 17 check_ajax_referer( 'pay_advantage_paid_nonce', 'security' ); 17 18 18 $order_id = sanitize_text_field( $_POST['orderid'] ); 19 if ( empty( $order_id ) ) { 20 pay_advantage_write_error_to_response( 'Invalid order id.' ); 19 $order_id = sanitize_text_field( $_POST['orderid'] ); 20 if ( empty( $order_id ) ) { 21 pay_advantage_write_error_to_response( 'Invalid order id.' ); 22 wp_die(); 23 } 24 25 $payment_code = sanitize_text_field( $_POST['paymentcode'] ); 26 if ( empty( $payment_code ) ) { 27 pay_advantage_write_error_to_response( 'Invalid payment code.' ); 28 wp_die(); 29 } 30 31 $order = new WC_Order( $order_id ); 32 33 // The order id being completed needs to be verified against the payment to ensure the correct order is completed. If this is not the case then the merchant must investigate as it is possibly due to tampering. 34 $pay_advantage_api = new Pay_Advantage_Api(); 35 $receipt = $pay_advantage_api->get_payment( $payment_code ); 36 if ( ! isset( $receipt['ExternalID'] ) || $receipt['ExternalID'] != 'wc-' . $order_id ) { 37 pay_advantage_write_error_to_response( 'Payment was not for this order.' ); 38 wp_die(); 39 } 40 41 $paid_status = get_option( 'pay_advantage_wc_paid_status' ); 42 43 if ( $order->get_status() != 'pending' && $order->get_status() != 'failed' ) { 44 pay_advantage_write_error_to_response( 'Failed to record the order as ' . $paid_status . '. Order does not have a status of pending or failed.' ); 45 wp_die(); 46 } 47 48 $order->update_status( apply_filters( 'woocommerce_pay_advantage_process_payment_order_status', $paid_status, $order ), __( 'Payment received.', 'woocommerce' ) ); 49 WC()->cart->empty_cart(); 50 51 pay_advantage_send_response( array( 52 'result' => 'success', 53 'redirect' => apply_filters( 'woocommerce_get_return_url', $order->get_checkout_order_received_url(), $order ) 54 ) ); 55 wp_die(); 56 } catch (Exception $e) { 57 Pay_Advantage_Api_Error_Handler::log_error( $e->getMessage() . ' ' . $e->getTraceAsString() ); 58 pay_advantage_write_error_to_response( $e->getMessage() ); 21 59 wp_die(); 22 60 } 23 24 $payment_code = sanitize_text_field( $_POST['paymentcode'] );25 if ( empty( $payment_code ) ) {26 pay_advantage_write_error_to_response( 'Invalid payment code.' );27 wp_die();28 }29 30 try {31 $order = new WC_Order($order_id);32 } catch ( Exception $e ) {33 pay_advantage_write_error_to_response( $e->getMessage() );34 wp_die();35 }36 37 // The order id being completed needs to be verified against the payment to ensure the correct order is completed. If this is not the case then the merchant must investigate as it is possibly due to tampering.38 $pay_advantage_api = new Pay_Advantage_Api();39 $receipt = $pay_advantage_api->get_payment( $payment_code );40 if ( ! isset( $receipt['ExternalID'] ) || $receipt['ExternalID'] != 'wc-' . $order_id ) {41 pay_advantage_write_error_to_response( 'Payment was not for this order.' );42 wp_die();43 }44 45 $paid_status = get_option( 'pay_advantage_wc_paid_status' );46 47 if ( $order->get_status() != 'pending' && $order->get_status() != 'failed' ) {48 pay_advantage_write_error_to_response( 'Failed to record the order as ' . $paid_status . '. Order does not have a status of pending or failed.' );49 wp_die();50 }51 52 $order->update_status( apply_filters( 'woocommerce_pay_advantage_process_payment_order_status', $paid_status, $order ), __( 'Payment received.', 'woocommerce' ) );53 WC()->cart->empty_cart();54 55 pay_advantage_send_response( array(56 'result' => 'success',57 'redirect' => apply_filters( 'woocommerce_get_return_url', $order->get_checkout_order_received_url(), $order )58 ) );59 wp_die();60 61 } 61 62 62 63 function pay_advantage_mark_order_as_cancelled_handler() { 63 check_ajax_referer( 'pay_advantage_paid_nonce', 'security' ); 64 try { 65 check_ajax_referer( 'pay_advantage_paid_nonce', 'security' ); 64 66 65 $order_id = sanitize_text_field( $_POST['orderid'] );66 if ( empty( $order_id ) ) {67 pay_advantage_write_error_to_response( 'Invalid order id.' );68 wp_die();69 }67 $order_id = sanitize_text_field( $_POST['orderid'] ); 68 if ( empty( $order_id ) ) { 69 pay_advantage_write_error_to_response( 'Invalid order id.' ); 70 wp_die(); 71 } 70 72 71 try { 72 $order = new WC_Order($order_id); 73 } catch ( Exception $e ) { 74 pay_advantage_write_error_to_response( $e->getMessage() ); 75 wp_die(); 76 } 73 $order = new WC_Order( $order_id ); 77 74 78 $cancel_status = get_option( 'pay_advantage_wc_cancel_status' );75 $cancel_status = get_option( 'pay_advantage_wc_cancel_status' ); 79 76 80 if ( $order->get_status() != 'pending' && $order->get_status() != 'failed' ) {81 pay_advantage_write_error_to_response( 'Failed to record the order as ' . $cancel_status . '. Order does not have a status of pending or failed.' );82 wp_die();83 }77 if ( $order->get_status() != 'pending' && $order->get_status() != 'failed' ) { 78 pay_advantage_write_error_to_response( 'Failed to record the order as ' . $cancel_status . '. Order does not have a status of pending or failed.' ); 79 wp_die(); 80 } 84 81 85 $order->update_status( apply_filters( 'woocommerce_pay_advantage_process_payment_order_status', $cancel_status, $order ), __( 'Payment cancelled.', 'woocommerce' ) );82 $order->update_status( apply_filters( 'woocommerce_pay_advantage_process_payment_order_status', $cancel_status, $order ), __( 'Payment cancelled.', 'woocommerce' ) ); 86 83 87 pay_advantage_send_response( array( 88 'result' => 'success' 89 ) ); 90 wp_die(); 84 pay_advantage_send_response( array( 85 'result' => 'success' 86 ) ); 87 wp_die(); 88 } catch (Exception $e) { 89 Pay_Advantage_Api_Error_Handler::log_error( $e->getMessage() . ' ' . $e->getTraceAsString() ); 90 pay_advantage_write_error_to_response( $e->getMessage() ); 91 wp_die(); 92 } 91 93 } 92 94 93 95 function pay_advantage_mark_order_as_failed_handler() { 94 check_ajax_referer( 'pay_advantage_paid_nonce', 'security' ); 96 try { 97 check_ajax_referer( 'pay_advantage_paid_nonce', 'security' ); 95 98 96 $order_id = sanitize_text_field( $_POST['orderid'] ); 97 if ( empty( $order_id ) ) { 98 pay_advantage_write_error_to_response( 'Invalid order id.' ); 99 $order_id = sanitize_text_field( $_POST['orderid'] ); 100 if ( empty( $order_id ) ) { 101 pay_advantage_write_error_to_response( 'Invalid order id.' ); 102 wp_die(); 103 } 104 105 $order = new WC_Order($order_id); 106 107 if ( $order->get_status() != 'pending' && $order->get_status() != 'failed' ) { 108 pay_advantage_write_error_to_response( 'Failed to record the order as failed. Order does not have a status of pending or failed.' ); 109 wp_die(); 110 } 111 112 $order->update_status( apply_filters( 'woocommerce_pay_advantage_process_payment_order_status', 'failed', $order ), __( 'Payment failed.', 'woocommerce' ) ); 113 114 pay_advantage_send_response( array( 115 'result' => 'success' 116 ) ); 99 117 wp_die(); 100 } 101 102 try { 103 $order = new WC_Order($order_id); 104 } catch ( Exception $e ) { 118 } catch (Exception $e) { 119 Pay_Advantage_Api_Error_Handler::log_error( $e->getMessage() . ' ' . $e->getTraceAsString() ); 105 120 pay_advantage_write_error_to_response( $e->getMessage() ); 106 121 wp_die(); 107 122 } 108 109 if ( $order->get_status() != 'pending' && $order->get_status() != 'failed' ) {110 pay_advantage_write_error_to_response( 'Failed to record the order as failed. Order does not have a status of pending or failed.' );111 wp_die();112 }113 114 $order->update_status( apply_filters( 'woocommerce_pay_advantage_process_payment_order_status', 'failed', $order ), __( 'Payment failed.', 'woocommerce' ) );115 116 pay_advantage_send_response( array(117 'result' => 'success'118 ) );119 wp_die();120 123 } 121 124 -
pay-advantage/trunk/public/js/common.js
r2708315 r2783062 97 97 error: function (response) { 98 98 console.log(response); 99 reject(response); 99 if (response.message) { 100 reject(response); 101 } else if (response.responseText) { 102 reject(new Error(response.responseText)); 103 } else { 104 reject(new Error('An unexpected error occurred. Check the browsers console log for more information.')); 105 } 100 106 } 101 107 });
Note: See TracChangeset
for help on using the changeset viewer.