Paul started by creating a payment channel on Ripple by calling the "PaymentChannelCreate" function. He then specifies the total amount allocated (200 XRP), Ronat's Ripple address, and so on. This is submitted to Ripple's network for validation.
Once the payment channel is validated by the Ripple network, the payee (Ronat) can check the specifics of the payment channel. She ensures that the destination account to which the payment is sent is correct. She makes sure there's enough time set for her to cash out the receipts or claims. If her wallet has a destination tag, she also ensures that it's mentioned on the payment channel. It's important for the payee to check for the specifics of the payment channel, as any error in the specifics can result in failure of payments.
Paul now wants Ronat to blog about his gym. He creates a claim of 30 XRP and signs the claim using his private key. He sends the signed claim to Ronat using digital communication channels. Now, Ronat can verify whether the claim is valid using the "ChannelVerify" function. She ensures that the payment channel has enough balance.
Now, she can confidently provide her service. She writes a blog post about Paul's gym. This process is repeated, and Paul will continue sending claims for more blogs and tweets from Ronat.
Ronat is now done with her job. She can take the last claim from Paul, submit it to Ripple's network using the "PaymentChannelClaim" function to redeem her 200 XRP.
Now that everything ended well, Paul can request Ripple network to close the payment channel.
The following diagram demonstrates how two users can send and receive payments through payment channels:

Here's an example of the "PaymentChannelCreate" JSON that would be used by the sender to open a payment channel with a balance of 200 XRP:
{
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
"TransactionType": "PaymentChannelCreate",
"Amount": "200000000",
"Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
"SettleDelay": 86400,
"PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A",
"CancelAfter": 533171558,
"DestinationTag": 23480,
"SourceTag": 11747
}
Here's an example of the "PaymentChannelClaim" JSON that would be used by the receiver to claim 200 XRP to their account:
{
"Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198",
"Amount": "200000000",
"Signature": "30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA3CD7B9B",
"PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A"
}