Automation of billing

It will be very convenient if you can control "PayPal" as a billing system from the workflow system "Questetra".

For example, if you create a mechanism that automatically issues a "PayPal invoice according to delivery details" immediately after "product delivery flow" is completed, it is possible to prevent the occurrence of "billing mistake" or "billing omission". If the current situation is a billing operation that mails a "paper invoice", it is also possible to reduce all stamp fee, printing fee and office work labor costs to zero.

In the previous article, I introduced you mechanisms that automatically instructs PayPal "to generate invoices in PayPal" and "to send the invoice generated in PayPal further to customers".

Further automation

If you could automate
  • letting PayPal generate a "PayPal Invoice", and
  • letting PayPal send a "PayPal Invoice" via email,

I would like to further automate
  • confirming payment to PayPal. (Improve efficiency of debt collection business)

In this article, we will consider assembling the automatic Steps cleverly and making the "payment check flow" unmanned.

* Here, programming knowledge is required since we are going to use "Script Task" which is a type of automatic Step

[Entry reception system-PayPal billing-Payment confirmation]

PayPal as a Billing System

"PayPal Invoice" is very useful.

Just by logging-in to PayPal and entering "destination email address" and "details of sold item", anyone can easily send the invoice. It can be said that it is one of a few settlement methods that can flexibly deal with "a little consignment work" or "special discounts". It almost makes me think that procedures of shopping at EC site is rather more difficult. Moreover, there is no need to tell "credit card number" from the buyer to the seller.

However, if dozens of issuance must be, it will inevitably be troublesome. (Its "flexibility" serves harmful.)

If the billing contents were exactly the same, there was a function to process collectively, but if the contents are subtly different from each other, you have to set the billing information one by one. However, repetition of manual work falls into error, by all means.

Automate invoice creation and transmission

In the previous article (*), I introduced you "a mechanism to automatically generate a request that "Generate a PayPal invoice" and transmit it to the PayPal system.
* Episode 525: How to Send OAuth2 Request from Automatic Step

In this article, I would like to study further about "a mechanism to automatically send a request that "generate and send PayPal invoice to the buyer". (Programming knowledge is required)

[Entry reception system]

Japanese calendar text

There are many cases in Japan that use "Japanese calendar" instead of "Western (Gregorian) calendar".

This year is "2017" as well as "Heisei 29".

In other words, there are many cases where Date type data such as "2017-03-13" should be displayed as "March 13, Heisei 29" in prints and email texts. In the article (*) about one year ago, I introduced you the Japanese calendar conversion using the [Script Task], the automatic step. (Automatic conversion of Issue data flowing in the Cloud-based Workflow "Questetra BPM Suite")

Episode 467: Certificate Issue Date on Auto-generated PDF in Japanese Era Name (2016-01-25)

Script step and Service step

However, as of version 11.1 or later (2016-09-05) of the Cloud-based Workflow "Questetra BPM Suite", it is possible to add arbitrary [Service step] by "Service definition file" (add-on XML).

That is, if you use [Service step] which performs Japanese calendar conversion, you do not need to use [Script step] (which requires programming knowledge).

[Certificate Issuance-Japanese Calendar]

Automation with server side JavaScript

In the last article (*), I mentioned that "automatic Step of Questetra BPM Suite can implement (not only simple numerical calculation) OAuth2 communication".
* Episode 524: Automation of Work with Server-side JavaScript

Therefore, in this article, I would like to briefly summarize about "what kind of external service is specifically possible with OAuth2 communication" and "what kind of programming is required specifically". (In the viewpoint of requesting from the workflow system side.)

What is OAuth2 communication

OAuth is a "scheme for authorizing requests to servers".

Reference) What is "OAuth", the Cloud Technology which Everyone should Know?

Since OAuth2 first appeared in 2012, APIs of many "resource servers", such as Google Drive and Dropbox, are now compatible with "OAuth2 access". That is, the external system can throw various "Reference request" and "Update request" to "resource server". (RFC6749/6750)

In the cloud-based Workflow "Questetra BPM Suite", it is possible for an automatic Step placed in a business process definition to behave as an "external system" (OAuth2 client). In other words, you can set so that the following requests are automatically executed each time an Issue reaches the automatic Step (Script Task / Service Task).

  • Script Task: a Step in which a Business designer can set server-side JavaScript (Communication using HttpClientWrapper can also be implemented) M230
  • Service Task (Addon): Step which packaged Script Task. Only configure setting is allowed for Business designer. M415 M416

How to get access token

"Access token" is required for such request communication.

"Access token" is "a proof that it is a request authorized by the owner of the resource", and the entity is a string of from about several tens to 200 characters. However, the access token acquisition method differs depending on "resource server".

As main method, there are
  • A. Let the owner click on "grant button" and then automatically obtain. (Authorization Code Grant)
  • B. Set secret credentials, then retrieve automatically (Client Credentials Grant)
  • C. Set the access token itself (e.g. when an Access Token without expiration date is possible)

However, it varies depending on the type or characteristic of data managed by "resource server".

Caution) Even with the OAuth 2 authorization method that the destination API can implement, there might be cases where automatic communication can not be set depending on implementation restrictions (Questetra side) regarding "HTTP header" and "Content - Type format".

[Invoice Submission]