The large number of personal wireless devices in the urban areas could be used to provide various opportunistic data services, such as WiFi sharing, content-based file sharing and opportunistic networking. In order to facilitate these services, it is essential to incentivise the device owners to become service providers. However, previous research failed to deliver any practical payment systems for opportunistic data services. Inspired by smart contracts functionalities of bitcoin, this paper proposes a payment system named OPPay for opportunistic data services, which implements a micropayment communication protocol for mobile devices to perform data transactions and make payments using bitcoin. The system is designed to make incremental payments and thus resilient to interrupted communications caused by human mobility in the mobile network. By implementing and evaluating the system for three different applications, we show that the system is able to work in heterogeneous hardware and software environments and can achieve fast transactions confirmation with small fee overhead and low faulty payment value.