README
这个项目初衷是适配公司多个不同支付渠道下(支付宝/微信支付)的支付组件,目前支持的支付渠道如下
渠道 |
渠道编号 |
进度 |
官方 |
5 |
(已完成) |
随行付 |
10 |
(已完成) |
移动杭研 |
15 |
(已完成) |
IPay88 Pay |
9 |
(待测试) |
Hi Pay |
13 |
(待测试) |
Stripe Pay |
14 |
(待测试) |
Gkash Pay |
16 |
(待测试) |
MayBank Pay |
17 |
(待测试) |
Nets Pay |
18 |
(已完成) |
渠道 |
渠道编号 |
进度 |
联付通 |
1 |
(已完成,停止更新) |
付呗 |
4 |
(已完成,停止更新) |
收钱吧 |
6 |
(已完成,停止更新) |
乐刷 |
7 |
(已完成,停止更新) |
云闪付 |
8 |
(已完成,停止更新) |
乐天成 |
11 |
(已完成,停止更新) |
更多
可以通过继承Base类后实现更多的支付渠道
示例
参看examples文件夹
国内渠道请求参数
通用参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
channel |
M |
int |
1 |
支付渠道 1-联付通,4-付呗,5-官方直连,6-收钱吧,7-乐刷,8-云闪付,10-随行付,11-乐天成 |
payType |
M |
int |
1 |
支付通道。1-支付宝,2-微信,3-银联,暂未支持银联,只是预留拓展 |
charset |
C |
string |
UTF-8 |
请求和返回编码,目前都是UTF-8 |
tradeNo |
M |
string |
SB202012261548555 |
商户订单号 |
refundTradeNo |
O |
string |
SBTK202012261548555 |
商户退款订单号 |
totalAmount |
O |
float |
1.23 |
订单总金额/退款总金额,可多次退款的渠道可能需要同时传入订单金额和退款金额,目前不支持传入不同值,即只能全退 |
notifyUrl |
O |
string |
https://www.abc.com/pay/notify |
支付结果异步通知地址,网页/小程序支付必填 |
subject |
C |
string |
FPX.Doinb |
订单标题 |
authCode |
O |
string |
12331231321 |
B扫C时读取到的条码内容 |
appid |
O |
string |
wx5ccf1abe464a2215 |
微信支付时发起支付的公众号/小程序的APP ID |
isMiniProgram |
O |
int |
1 |
webPay是不是由小程序发起,1-小程序,0-公众号/服务窗/js支付 |
userId |
O |
string |
oDdgAwTnZ2z4ov8p-VDAb-0GeBIU |
用户在微信/支付宝中的id,即微信的openid,支付宝的buyer_id .etc |
userIP |
O |
string |
192.168.1.1 |
用户发起请求的IP地址,目前只有微信直连支付和随行付支付需要传入 |
optional |
O |
array |
['a'=>1] |
用于更多未添加的参数,当前只写了最小需求的参数,如果有更多需传给第三方的参数,可以通过该数组传入,具体参数请查阅第三方文档 |
支付宝直连参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
appAuthToken |
O |
string |
Sf***** |
ISV服务商模式下的授权token,不填写就是商户直连,填写就是走服务商支付 |
merchantPrivateKey |
M |
string |
MII**** |
应用私钥 |
alipayCertPath |
O |
string |
/foo/alipayCertPublicKey_RSA2.crt |
支付宝公钥证书文件路径 |
alipayRootCertPath |
O |
string |
/foo/alipayRootCert.crt |
支付宝根证书文件路径 |
merchantCertPath |
O |
string |
/foo/appCertPublicKey_2019051064521003.crt |
应用公钥证书文件路径 |
alipayPublicKey |
O |
string |
MII***** |
支付宝公钥,非证书模式填入这个,此时不需要上面三个证书 |
encryptKey |
C |
string |
MII***** |
AES密钥,调用AES加解密相关接口时需要,非必填 |
微信直连参数(V2版本)
名称 |
是否必填 |
类型 |
示例 |
说明 |
mchId |
M |
string |
85555555 |
商户号 |
subAppId |
O |
string |
wx***** |
子商户的公众号/小程序的APP ID |
subMchId |
O |
string |
85555555 |
子商户号,填写代表上面的商户号是服务商 |
apiV2Key |
M |
string |
vdZV*** |
商户API v2密钥 |
clientApiV2KeyFilePath |
O |
string |
/foo/api_client_key.pem |
商户API v2证书密钥地址,退款等接口需要证书 |
clientApiV2CertFilePath |
O |
string |
/foo/api_client_cert.pem |
商户API v2证书地址,退款等接口需要证书 |
attach |
C |
string |
'a:1' |
附加数据,不建议使用 |
expireTime |
C |
int |
123131 |
订单有效截止10位(秒级)时间戳 |
随行付参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
orgIdSxf |
M |
string |
85555555 |
服务商编号 |
merchantNoSxf |
M |
string |
85555555 |
商户编号 |
orgPrivateRSAKeySxf |
M |
string |
MIB*** |
服务商RSA私钥内容 |
orgPublicRSAKeySxf |
M |
string |
MIB*** |
平台RSA公钥内容 |
outFrontUrlSxf |
O |
string |
https://www.abc.com/pay/redirect |
web支付后跳转网页地址 |
wechatFoodOrderSxf |
C |
string |
FoodOrder |
微信扫码点餐标识,目前仅有FoodOrder可上传 |
refundReasonSxf |
C |
string |
商家与消费者协商一致 |
退款原因。默认值:商家与消费者协商一致 |
联付通参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
userNameLT |
O |
string |
85555555 |
商户后台登录账号,用于auth方法获取商户的支付信息 |
userPwdLt |
O |
string |
85555555 |
商户后台登录密码,用于auth方法获取商户的支付信息 |
appIdLt |
M |
string |
EW_*** |
合作方ID,通过auth方法获得 |
appKeyLt |
M |
string |
8cc*** |
签名密钥,通过auth方法获得 |
merchantCodeLt |
M |
string |
EW_*** |
商户编号,通过auth方法获得 |
refundReasonLt |
C |
string |
商家与消费者协商一致 |
退款原因。默认值:商家与消费者协商一致 |
付呗参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
merchantIdFb |
M |
string |
2021*** |
商户ID |
merchantKeyFb |
M |
string |
3b2*** |
商户密码 |
storeIdFb |
M |
string |
11*** |
商户门店ID |
wxOpenIDFb |
O |
string |
wx*** |
付呗微信网页支付下需要的openid,获取方法见付呗文档 |
收钱吧参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
serviceProviderIDSqb |
O |
string |
2021*** |
服务商ID,用于激活获取终端码 |
activateCodeSqb |
O |
string |
2311*** |
激活码,用于激活获取终端码 |
activateDeviceIDSqb |
O |
string |
123*** |
激活设备ID,用于激活获取终端码 |
terminalSNSqb |
M |
string |
xx*** |
终端码,通过activate接口激活获取 |
terminalKeySqb |
M |
string |
xx*** |
终端密钥,通过activate接口激活获取或者checkin接口刷新 |
returnUrlSqb |
C |
string |
https://www.abc.com/pay/redirect |
web支付后跳转网页地址 |
reflectSqb |
C |
string |
'a:1' |
web支付后的反射参数 |
operatorSqb |
C |
string |
Obama*** |
操作员,好像没啥用 |
乐刷参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
merchantIdLS |
M |
string |
2021*** |
商户ID |
serviceProviderKeyLS |
M |
string |
2311*** |
服务商密码 |
jumpUrlLS |
O |
string |
https://www.abc.com/pay/redirect |
使用乐刷收银台支付后跳回地址 |
乐天成支付参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
appKeyLtc |
M |
string |
zzxx*** |
商户在乐天成的支付PayCode |
privateSecretLtc |
M |
string |
MB**** |
商户在乐天成的私钥 |
publicSecretLtc |
M |
string |
MB***** |
乐天成的公钥 |
requestDomainLtc |
M |
string |
https://www.abc.com/pay/redirect |
乐天成的支付请求地址 |
jumpUrlLtc |
O |
string |
https://www.abc.com/pay/redirect |
使用乐天成收银台支付后跳回地址 |
accessSecretLtc |
C |
string |
MB*** |
商户在乐天成的内容密钥 |
移动杭研支付参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
domainHY |
M |
string |
https://xxxx |
移动杭研支付请求域名 |
originIdHY |
M |
string |
2021*** |
移动杭研的交易来源Id |
merchantCodeHY |
M |
string |
189****1234 |
商户在移动杭研的商户code |
merchantIdHY |
M |
int |
123 |
商户在移动杭研的商户id |
productIdHY |
M |
int |
123 |
移动杭研的产品id |
privateKeyHY |
M |
string |
MB*** |
商户在移动杭研的密钥 |
publicKeyHY |
M |
string |
MB*** |
移动杭研的公钥 |
国外渠道请求参数
通用参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
channel |
M |
int |
1 |
支付渠道 1-KBZ Pay |
charset |
C |
string |
UTF-8 |
请求和返回编码,目前都是UTF-8 |
tradeNo |
M |
string |
SB202012261548555 |
商户订单号 |
refundTradeNo |
O |
string |
SBTK202012261548555 |
商户退款订单号 |
totalAmount |
O |
float |
1.23 |
订单总金额/退款总金额,可多次退款的渠道可能需要同时传入订单金额和退款金额,目前不支持传入不同值,即只能全退 |
notifyUrl |
O |
string |
https://www.abc.com/pay/notify |
支付结果异步通知地址 |
subject |
O |
string |
FPX.Doinb |
订单标题 |
authCode |
O |
string |
12331231321 |
B扫C时读取到的条码内容 |
optional |
C |
array |
['a'=>1] |
用于更多未添加的参数,当前只写了最小需求的参数,如果有更多需传给第三方的参数,可以通过该数组传入,具体参数请查阅第三方文档 |
isSandbox |
C |
bool |
false |
是否使用了UAT环境 |
KBZ Pay参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
kbzAppId |
M |
string |
Sf***** |
应用ID |
kbzMerchantCode |
M |
string |
MII**** |
商户编码 |
kbzMerchantKey |
M |
string |
MII**** |
商户私钥 |
Hi Pay参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
hiPayAppId |
M |
string |
Sf***** |
应用ID |
hiPayPrivateKey |
M |
string |
MII**** |
商户私钥 |
hiPayPublicKey |
M |
string |
MII**** |
应用公钥 |
IPay88参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
iPay88MerchantKey |
M |
string |
Sf***** |
商户key |
iPay88MerchantCode |
M |
string |
Sf***** |
商户编码 |
iPay88MerchantName |
M |
string |
Sf***** |
商户名称 |
iPay88MerchantContact |
M |
string |
Sf***** |
商户手机号 |
iPay88MerchantEmail |
M |
string |
Sf***** |
商户邮箱 |
Gkash参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
gKashMerchantKey |
M |
string |
Sf***** |
商户key |
gKashMerchantCID |
M |
string |
Sf***** |
商户id |
MayBank参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
mayBankMerchantCode |
M |
string |
Sf***** |
商户Code |
Stripe参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
stripePublicKey |
M |
string |
Sf***** |
应用公钥 |
stripePrivateKey |
M |
string |
Sf***** |
应用私钥 |
stripeEndKey |
M |
string |
Sf***** |
平台公钥 |
stripeAccount |
M |
string |
Sf***** |
商户账号 |
stripePaymentMethod |
O |
string |
xxx |
支付方式id, 网页支付需要 |
stripePaymentMethodType |
O |
string |
card |
支付方式, 网页支付需要 |
stripePaymentIntentId |
O |
string |
xxx |
支付id,刷卡支付需要 |
Nets参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
netsKeyId |
M |
string |
b027dacd-**** |
应用key id |
netsKey |
M |
string |
21296dd3-**** |
应用key |
netsMID |
M |
string |
11137066800 |
应用MID |
netsTID |
M |
string |
37066801 |
应用TID |
netsSTAN |
M |
string |
000001 |
商户unique number |
返回参数
通用参数
名称 |
是否必填 |
类型 |
示例 |
说明 |
result |
M |
bool |
true |
支付请求结果,true-请求成功,false-请求失败 |
errMsgNo |
C |
mixed |
1001 |
支付请求失败的失败错误码,用于特定场景的特殊处理 |
errMsg |
C |
string |
缺失参数xxx |
支付请求失败的失败原因 |
data |
C |
mixed |
https://xxx/xx |
请求成功时,一些额外信息返回,各接口的返回必需参数参看Base类的注释 |
名词解释
M-必填,C-可以不填写,O-部分场景下必填