BIP70 who issues the transactions, wallet or payment_url server? The BIP70 specs I'm reading confuse me about who broadcasts the underlying transactions to the bitcoin network. My reading seems to suggest that both the user's wallet and the server at the payment_url do. 

Is that true, or is it the user's wallet unless a payment_url is specified in the payment request, in which case the server at the payment_url does?
You're right, it is confusing in the specification. Particularly:


  When the merchant's server receives the Payment message, it must determine whether or not the transactions satisfy conditions of payment. If and only if they do, if [sic] should broadcast the transaction(s) on the Bitcoin p2p network.


and


  Customer authorizes payment to the merchant's address and broadcasts the transaction through the Bitcoin p2p network.


The image particularly shows the Wallet broadcasting the transaction.



What is established, however, is that the transaction in the Payment message sent to the merchant is the same transaction the wallet app broadcasts. IMHO, I think it's safe to assume that both the customer's wallet and the merchant attempt to broadcast the transaction. When both parties hold the transaction, they can both ensure that it was broadcast to the network..