/** * Generates a Payment message and sends the payment to the merchant who sent the PaymentRequest. * Provide transactions built by the wallet. NOTE: This does not broadcast the transactions to the * bitcoin network, it merely sends a Payment message to the merchant confirming the payment. * Returns an object wrapping PaymentACK once received. If the PaymentRequest did not specify a * payment_url, returns null and does nothing. * * @param txns list of transactions to be included with the Payment message. * @param refundAddr will be used by the merchant to send money back if there was a problem. * @param memo is a message to include in the payment message sent to the merchant. */ public @Nullable ListenableFuture<Ack> sendPayment( List<Transaction> txns, @Nullable Address refundAddr, @Nullable String memo) throws PaymentRequestException, VerificationException, IOException { Protos.Payment payment = getPayment(txns, refundAddr, memo); if (payment == null) return null; if (isExpired()) throw new PaymentRequestException.Expired("PaymentRequest is expired"); URL url; try { url = new URL(paymentDetails.getPaymentUrl()); } catch (MalformedURLException e) { throw new PaymentRequestException.InvalidPaymentURL(e); } return sendPayment(url, payment); }
/** * Returns the payment url where the Payment message should be sent. Returns null if no payment * url was provided in the PaymentRequest. */ public @Nullable String getPaymentUrl() { if (paymentDetails.hasPaymentUrl()) return paymentDetails.getPaymentUrl(); return null; }