How to Use Stripe to Accept Payments via Alipay and WeChat Pay
“Alipay or WeChat Pay?” - That’s what you’ll hear in China a lot. Every time you buy a meal, checkout at a grocery store, or even buy a steamed bun from a cart on the street, they’ll ask you which digital platform you’re going to use to complete the transaction. Then, they’ll either give you a QR code to scan, or they’ll scan your QR code.
If you take more than one second to do this, they might show mild annoyance with the silly foreigner…after all, only foreigners would spend more than one second paying for something.
This is the experience that Chinese consumers are used to, and they expect the same thing online too.
Many don’t like credit cards because credit cards require them
to carry a wallet,
to remember a series of numbers to make a purchase online, and
have no password, so they’re insecure.
In fact, people in China do own credit cards and can pull them out if sufficiently motivated. Also, if you’re in an industry with Chinese customers that do lots of business abroad, you can expect them to be ready to pay via credit card too.
However, so many people are used to paying with Alipay and WeChat Pay that you should expect a boost in sales if you enable these payment options.
Luckily, it’s possible to accept Alipay and WeChat Pay if you’re already using Stripe. You do not need a Chinese business entity, nor do you need a Chinese bank account, phone number, ID card, or passport.
I tested this for two websites myself. One is my main business, Nanjing Marketing Group (NMG). The second is my hobby business Synotrip, which is a P2P platform for travelers to hire tour guides.
How To Set It Up
Go to the payment settings page and turn on Alipay and WeChat Pay.
You’ll then need to agree to some legal terms. You can’t activate it if WeChat Pay or Alipay prohibits your business type. Some types would obviously be illegal in China, such as gambling and porn. However, a number on the list surprised even me, such as real estate and seeds.
You can check the lists of prohibited business types here:
Within three days of requesting access for WeChat Pay and Alipay, the results differed:
For NMG, Alipay was accepted, and WeChat Pay was denied.
For Synotrip, both WeChat Pay and Alipay were accepted.
No explanation was given as to why each payment method was accepted or denied.
Both Alipay and WeChat Pay are single-use payment methods, and they do not support subscriptions. Also, subscriptions are less popular in China anyways.
Prices for all items for the user should be in the same currency, and payments will be offered to users in Chinese yuan (CNY).
Accepting Payments via Payment Links
Stripe offers “payment links.” These links can be created from the administration area and then sent to a customer.
As of January 2022, they can now accept payments via Alipay and WeChat Pay too. No coding required!
I was able to set this up within a few minutes and then receive payments successfully.
Below you can see the process that our test user went through to make a 5 Chinese yuan payment via Alipay to Nanjing Marketing Group. It was quite smooth.
First, the user should choose a payment method.
After choosing Alipay, they should scan the QR code with their phone and authorize the payment. Note that it also shows the exchange rate for Chinese Yuan to Canadian Dollars, although this isn't really necessary.
Then they will see a success message from Alipay.
Then they will be forwarded to a second success message, this one from Nanjing Marketing Group.
Below you can see a second test payment. This one was 5 Chinese yuan sent to Synotrip via WeChat Pay.
The initial step is the same as the example above, except that this business has both WeChat Pay and Alipay options available.
After choosing WeChat Pay, the user should scan the QR code.
After authorizing payment on WeChat, they will see a confirmation page.
Accepting Payments on Your Website
For marketers and execs, we need to know how hard it is to actually implement Stripe on a website.
So, I set out to test this with our Drupal development provider ADCI. We're on Drupal, so I was thinking (hoping) it would require an extra module and a few hours to enable Stripe. However, we ran into some issues, and it ended up taking about 19 hours of work.
For most client projects we run, we’re driving millions of dollars of sales, so the 19 hours of development work would easily be worth it. The bigger problem is that it might take the developers weeks or months to get around to it, which will cause lots of lost sales.
You can see the test page we created for accepting payments of five Chinese yuan here. It looks ugly because we didn’t bother designing it. Also, as I mentioned earlier, only the Alipay button will work because our WeChat Pay application was denied.
All in all, the way to create your own Alipay or WeChat integration is properly described in the Stripe documentation, and a lot of examples from it might be used directly as they are.
What will surely require some effort is handling Stripe responses during the payment lifecycle received through webhooks, in case you need your application to perform it. These may include the change of order status, providing access, or the purpose of the payment. There is no go-to solution provided because there are so many applications based on different stacks. However, again, Stripe documentation gives a clear boilerplate and example to start from and build these interactions.