Skip to content

Channels

Updated: 9/19/26, 4:12:01 PM

All codes below are taken from the open-source enum classes and are code-authoritative.
For concept distinctions (pay provider / pay method / payment channel / payment product / capability), see Glossary.

Payment Channel — ChannelEnum

Dictionary: channel. 23 channel enums are defined (in source declaration order).

  • Implemented — full strategy implementation (pay / close / sync / refund) exists under the main app daxpay-channel/; some are backed by independently-deployed channel sub-apps that carry the SDK calls.
  • Reserved — enum defined only, no implementation yet, extensible on demand.
codeChannelStatusNotes
alipayAlipayImplemented ✅Supports direct + ISV
wechatWeChat PayImplemented ✅Supports direct + ISV
union_payUnionPay (Cloud QuickPass)Implemented ✅UnionPay ACP direct gateway
leshua_payLeshuaImplemented ✅
vbill_payVBILL (Suixingfu)Implemented ✅
huifuHuifu (Adapay/Dougong)Implemented ✅Hosts two products ada_pay and dougong_pay (see Product table)
hkrt_payHKRTImplemented ✅
lakala_payLakalaImplemented ✅
fuyou_payFuiouImplemented ✅
sheng_paySheng PayImplemented ✅Standard merchant + ISV modes
ysep_payYSEPReserved
quick_payQuick Pay (99Bill)Reserved
sand_paySandImplemented ✅Indirectly via the hm_pay product (see Product table)
yee_payYeepayImplemented ✅Implemented in channel sub-app channel-two, not yet enabled in startup module
ums_payUMS (UnionPay Merchant Services)Implemented ✅
douyinDouyin PayImplemented ✅Direct brand, no _pay suffix
stripeStripeImplemented ✅International card acquiring (Visa / Mastercard, etc.), deployed via channel sub-app channel-three (port 20300)
jee_payJeepayReserved
easy_payEasy PayImplemented ✅Third-party aggregated platform, integrated via channel sub-app channel-two
xingyi_payXingyi PayReservedNewland's Guotong Xingyi; product ready, API integration in progress
long_payCCB Long PayReservedChina Construction Bank aggregated payment; product ready, API integration in progress
allin_payAllin PayReservedAggregated acquiring, hosts four products (see Product table)
shouqianbaShouqianbaReservedAggregated QR acquiring; product ready, API integration in progress

Naming convention

Direct-brand channels usually have no _pay suffix (wechat / alipay / douyin); ISV / aggregate channels may use xxx_pay (except lakala_pay / huifu). See Glossary.

Payment Product — ProductEnum

Dictionary: pay_product. 35 payment products are defined (in source declaration order). Each product binds to a channel (mapped via ProductEnum.getChannel()); the routing anchor is the product, not the channel (see Glossary).

  • Implemented — has a corresponding daxpay-channel-* strategy (pay / close / sync / refund), 24 in total.
  • Reserved — enum defined only, no implementation yet, 11 in total.

Alipay

codeProductChannel
alipayAlipay (Direct)alipay
alipay_isvAlipay (ISV / Service Provider)alipay

WeChat Pay

codeProductChannel
wechat_payWeChat Pay (Direct)wechat
wechat_isvWeChat Pay (ISV / Service Provider)wechat

Douyin Pay

codeProductChannel
douyin_payDouyin Paydouyin

Stripe

codeProductChannel
stripe_payStripe Pay (Visa / MasterCard international cards)stripe

UMS (UnionPay Merchant Services)

codeProductChannel
ums_qrcodeUMS (C-scan-B)ums_pay
ums_jsapiUMS (Official Account)ums_pay
ums_appUMS (APP)ums_pay
ums_miniUMS (Mini-program)ums_pay
ums_h5UMS (H5)ums_pay
ums_barcodeUMS (B-scan-C)ums_pay

UnionPay (Cloud QuickPass)

codeProductChannel
union_payUnionPay (Cloud QuickPass, ACP direct gateway; incl. UNION_QR / H5 / UNION_BARCODE)union_pay

Third-party Aggregate Channels

codeProductChannelStatus
lakala_payLakalalakala_payImplemented ✅
leshua_payLeshualeshua_payImplemented ✅
ada_payAdapayhuifuImplemented ✅
dougong_payDougonghuifuImplemented ✅
hkrt_payHKRThkrt_payImplemented ✅
vbill_payVBILL (Suixingfu)vbill_payImplemented ✅
fuyou_payFuioufuyou_payImplemented ✅
hm_payHMPay (on Sand's rail)sand_payImplemented ✅
yee_payYeepayyee_payImplemented ✅
sheng_paySheng Paysheng_payImplemented ✅
ysep_payYSEPysep_payReserved
quick_payQuick Pay (99Bill)quick_payReserved
jee_payJeepayjee_payReserved
easy_payEasy Payeasy_payImplemented ✅
xingyi_payXingyi Payxingyi_payReserved
long_payCCB Long Paylong_payReserved
allin_cloudAllin Pay · Cloud Commerce (comprehensive payment, one-stop acquiring)allin_payReserved
allin_cashierAllin Pay · Cashier Bao (acquiring, unified ordering API)allin_payReserved
allin_payfundAllin Pay · PayFund (collection + payment)allin_payReserved
allin_directAllin Pay · Direct (AT direct acquiring)allin_payReserved
shouqianbaShouqianbashouqianbaReserved

One channel, multiple products

Some channels host multiple products — a key design of channel routing:

  • huifuada_pay + dougong_pay — two products share one Huifu channel
  • allin_payallin_cloud + allin_cashier + allin_payfund + allin_direct — four product lines share one Allin Pay channel, all supporting acquiring and sandbox
  • ums_pay → 6 products — C-scan-B / Official Account / APP / Mini-program / H5 / B-scan-C, each onboarded independently
  • sand_payhm_pay — HMPay runs on Sand's rail
  • alipay / wechat → 2 products each — Direct + ISV (Service Provider)

Payment Method — PayMethodEnum

Dictionary: pay_method. The code is globally unique and each method binds to exactly one pay provider (provider).

The aggregated aggregate_pay_barcode is no longer provided. When the merchant scans the user's barcode, the platform identifies the wallet by the authCode prefix and maps it to wechat_barcode / alipay_barcode / union_barcode, then resolves routing.
Prefix rules: WeChat 10–15, Alipay 25–30, UnionPay 62. Merchants may pass only authCode without method.

Aggregate Pay

codeMethodDescription
aggregate_pay_qrcodeAggregate QR payNative channel scan

WeChat Pay

codeMethod
wechat_cashierWeChat mini-program cashier
wechat_qrWeChat Native QR
wechat_jsapiWeChat JSAPI
wechat_miniWeChat mini-program
wechat_h5WeChat H5
wechat_appWeChat in-app payment
wechat_barcodeWeChat barcode (merchant scan)

Alipay

codeMethod
alipay_qrAlipay scan (QR)
alipay_jsapiAlipay JSAPI (incl. mini-program; official product code JSAPI_PAY)
alipay_pcAlipay PC web pay
alipay_h5Alipay H5
alipay_appAlipay in-app payment
alipay_barcodeAlipay barcode (merchant scan)

UnionPay

codeMethod
union_qrUnionPay scan (QR)
union_jsapiUnionPay JSAPI
union_h5UnionPay H5
union_barcodeUnionPay barcode (merchant scan)

Douyin

codeMethod
douyin_qrDouyin scan pay
douyin_jsapiDouyin JSAPI pay
douyin_h5Douyin H5 pay
douyin_appDouyin in-app pay

Card Schemes (Visa / MasterCard)

codeMethod
visa_card_gatewayVisa gateway pay
visa_card_presentVisa card-present pay
mastercard_card_gatewayMasterCard gateway pay
mastercard_card_presentMasterCard card-present pay

Other

codeMethodDescription
otherOtherNo fixed provider, provider is null

Channel Implementation Architecture

The main app calls independently-deployed channel sub-apps over HTTP to isolate third-party SDK dependencies and allow independent upgrades and elastic scaling.

  • Channel strategy layer — unified under the main app's daxpay-channel/ (pay / close / sync / refund orchestration, no SDK).
  • Channel sub-appsdax-pay-channel-one (Alipay / WeChat / Douyin / UMS / UnionPay, port 20100), dax-pay-channel-two (Lakala / HKRT / Dougong / Leshua / VBILL / HMPay / Adapay / Fuiou / Yeepay / Sheng Pay / Easy Pay, port 20200), dax-pay-channel-three (Stripe, port 20300).

To add a new channel, create an independent sub-app following the dax-pay-channel-one / dax-pay-channel-two / dax-pay-channel-three pattern.

Official Website · Released under the GNU LGPL v3.0