通过付款码来区分是属于支付宝、微信、还是银行

1,274 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

现在市面上的聚合支付实在是太多了,例如:收钱吧、易收银、美团收银、超市扫码等等。

而开发聚合支付,你就肯定会遇到扫码支付的场景,以上面所说的几种商户常用的收款方式,他们全部都牵扯到了扫码支付。

那么付款码的支付流程是什么样子的呢?别急,这就为大家介绍!

付款码的使用流程如下:

客户出示微信或者支付宝再或者银行卡的付款码 -> 工作人员使用扫码枪或者扫码盒对付款码进行扫描 -> 扫描到付款码后上报给服务器进行扣款处理

其实通过付款码扫描出来的就是一堆有规则性的数字,为什么说是有规则性的数字呢?他们的规则都有哪些呢?

首先讲的是付款码规则:

微信支付码生成规则:18位纯数字,以10、11、12、13、14、15开头

支付宝支付码生成规则:25 - 30开头的长度为16~24位的数字,实际字符串长度以开发者获取的付款码长度为准

现在我们已经知道了付款码规则,那我们该如何区分这串数字的支付方式呢?哪些上报上来的数字是属于支付宝,哪些属于微信,又有哪些属于银联呢?

基于我们公司现有的支付方式也就是微信、支付宝、银联三种,所以我简单写了下面的这段判断,或许可以帮到你

// $auth_code 为授权码
$payType = substr($auth_code, 0, 2);
if ($payType < 25) {
    // 微信支付
}
elseif ($payType > 50) {
    // 银行卡支付
}
else {
    // 支付宝支付
}

因为业务场景的不同,所以使用的判断也不同,以上只是目前主流支付码的判断,如果添加了其他的扫码支付场景,可以根据他们的规则重新编写判断!