Function Reference: geodir_ipn_handler_worldpay

Summary

This function has not been documented yet.

Source Code

function geodir_ipn_handler_worldpay() {
	$post = $_POST;
	
	$cardType 		= isset( $post['cardType'] ) ? geodir_strtoupper($post['cardType']) : '';
	$invoice_id 	= isset( $post['cartId'] ) ? (int)$post['cartId'] : '';
	$invoice_status = isset( $post['transStatus'] ) ? $post['transStatus'] : '';
	$txn_id			= isset( $post['transId'] ) ? $post['transId'] : '';
	
	if ( $invoice_id > 0 && $invoice_status != '' && $txn_id != '' ) {
		$invoice_info = geodir_get_invoice( $invoice_id );
		if ( empty( $invoice_info ) ) {
			exit;
		}
		
		$post_id		= $invoice_info->post_id;
		$user_id		= $invoice_info->user_id;
		
		$notify_status 	= 'payment_fail';
		
		if ( $invoice_status == 'Y' ) { // payment status approved
			$status 		= 'confirmed';
			$notify_status 	= 'payment_success';
		} else if ( $invoice_status == 'C' ) { // payment status pending
			$status 		= 'cancelled';
		} else { // payment status fail
			$status 		= 'fail';
		}
		
		$item_name		= $invoice_info->post_title;
		$payment_status = geodir_payment_status_name( $status );
		$amount			= geodir_payment_price( $post['amount'] );
		$payment_type 	= $cardType;
		$payment_date 	= date_i18n( "F j, Y, g:i a", current_time( 'timestamp' ) );
		$payment_method = geodir_payment_method_title( 'worldpay' );
		
		$transaction_details = "--------------------------------------------------
"; $transaction_details .= wp_sprintf( __( "Payment Details for Invoice ID #%s", 'geodir_payments' ), geodir_payment_invoice_id_formatted($invoice_id) ) . "
"; $transaction_details .= "--------------------------------------------------
"; $transaction_details .= wp_sprintf( __( "Item Name: %s", 'geodir_payments' ), $item_name ) . "
"; $transaction_details .= "--------------------------------------------------
"; $transaction_details .= wp_sprintf( __( "Trans ID: %s", 'geodir_payments' ), $txn_id ) . "
"; $transaction_details .= wp_sprintf( __( "Status: %s", 'geodir_payments' ), $payment_status ) . "
"; $transaction_details .= wp_sprintf( __( "Amount: %s", 'geodir_payments' ), $amount ) . "
"; $transaction_details .= wp_sprintf( __( "Type: %s", 'geodir_payments' ), $payment_type ) . "
"; $transaction_details .= wp_sprintf( __( "Date: %s", 'geodir_payments' ), $payment_date ) . "
"; $transaction_details .= wp_sprintf( __( "Method: %s", 'geodir_payments' ), $payment_method ) . "
"; $transaction_details .= "--------------------------------------------------
"; geodir_update_invoice_status( $invoice_id, $status ); geodir_update_invoice_transaction_details( $invoice_id, $transaction_details ); geodir_payment_adminEmail( $post_id, $user_id, $notify_status, $transaction_details ); // send notification to admin geodir_payment_clientEmail( $post_id, $user_id, $notify_status, $transaction_details ); // send notification to client } exit; }