Formal construction of PDA intersecting a DFA
The idea of the intersection is to construct a PDA that keeps track of the original PDA's state in the first component of the state (in the $Q_P$ component) together with the stack, and keep track of the DFA's state in the $Q_D$ component. If both accept by final state, you just need to accept if both automata end up in a final state.