哗啦啦---微信、支付宝直连

一、何为直连

直连和间连微信支付/支付宝的区别

此处参考于https://zhuanlan.zhihu.com/p/385787756

直连与间连在产品具体能力上的差异

(这里仅比较微信支付和支付宝的直连和间连,不做其他方面比较。)

  • “直连”是指商户自己注册或通过官方认证的普通服务商开通对接的微信支付和支付宝支付。
  • “间连”是指商户借助其他持牌支付机构/银行,通过银联、网联与微信支付/支付宝实现连接。

  • 账户侧机构:支付宝、微信支付等(有支付牌照+有面向C端用户的App+App有钱包功能+对其他支付机构开放)
  • 收单侧机构:能给商户开特约商户号用于收单的机构,泛指所有第三方支付机构(有时候为了区别于账户侧机构可特指非账户侧的支付机构)。
  • 清算机构:银联、网联

微信支付和支付宝有部分能力是没有对其他支付机构和银行开放的(即不支持间连),但有替代方案可弥补:

上图补充:App上的支付宝,除了唤起支付宝小程序支付,也可以用支付宝主扫支付的技术实现。

另外还有支付费率、商户如何选择支付方式等,详见链接。

哗啦啦目前采用的方式:

一:直连

通过哗啦啦作为服务商,第三方使用哗啦啦系统的商户作为哗啦啦服务商的特约商户;

因此第三方商户需要通过哗啦啦去与微信官方进行店铺绑定,否则无法在哗啦啦系统内进行微信、支付宝收银。

也正由于此种方式,所有采用此种方式的微信、支付宝收付款的信息,均需要法人及其授权账户登录相应的商户后台,方可查看。               

而哗啦啦官方内部后台可以随时访问并观察到所有采用微信、支付宝收付款的商户信息,与关联关系,并可以进行相应操作。

二:间连

通过哗啦啦作为服务商,与爱农支付(支付机构)合作,爱农支付作为收单侧机构;第三方使用哗啦啦系统的商户作为账户侧机构;

因此第三方商户需要通过哗啦啦和爱农支付去与微信官方进行店铺绑定,否则无法在哗啦啦系统内进行微信、支付宝收银。

也正由于此种方式,哗啦啦官方内部后台可以随时访问并观察到所有采用微信、支付宝收付款的商户信息,与关联关系,并可以进行相应操作。

且通过此种方式达成的间连商户,无法登录微信商户后台。

  我们需要登录微信商户后台,因此不使用此种方式。

二、哗啦啦微信直连创建流程:

1.建立账务主体:

哗啦啦系统位置:总部视角:交易中心-财务主体-新增;

材料:需要营业执照,食品经营许可证,法人信息等

2.申请财务主体-实名认证:

哗啦啦系统位置:总部视角:交易中心-财务主体;

材料:需要营业执照,食品经营许可证,法人信息,银行卡相关信息,门店门头、店内照片

3.开户意愿确认:

哗啦啦系统位置:总部视角:交易中心-财务主体;

等待哗啦啦实名认证通过(大概需要10min-30min),便可在刚刚申请实名认证的账户主体处,点击右上角微信标识,让法人扫码做开户意愿确认。分别用法人的微信和支付宝扫码确认即可。(与哗啦啦确认不需要,等待验证)

4.哗啦啦做内部直连绑定(直连进件)

  此处是我方将店铺信息交由哗啦啦系统进行注册、备案,和微信并无关联,因此数据申请速度比较快,一般在2-4H左右(工作日)。

由哗啦啦执行,需要提供给哗啦啦法人的相关信息包括:手机号,邮箱,客户电话,门店名称,开户行,开户行名称,开户行省市

5.超管签约

哗啦啦给链接,法人微信扫码确认,人脸识别;完成后告知哗啦啦业务人员。

截止此处,我方对微信方已授权哗啦啦作为我方的服务商;且我方资料已交由哗啦啦。因此我方工作已经结束,后续跟踪哗啦啦签约是否成功即可。

此处签约成功后,微信便可以进行收款。

但需要注意的是:

此处收款便会收到哗啦啦钱包中去,并非直连账户;

此时微信商户仍被判定为间连账户,并非普通商户,于是无法登录微信商户。

6.等待哗啦啦微信签约(预计3到5日)

  此处需要哗啦啦将我方之前提交的信息,与微信做沟通、提交备案申请。

当哗啦啦确认已经签约成功后,便可以登录微信商户后台。

7.微信小程序绑定确认

小程序(申请直连资料内提交的小程序appID,此处登录的即为此小程序)的管理员登录小程序平台,确认与该商户号的绑定意愿,并签署相关协议。

(位置:登录相应的微信小程序:功能>微信支付→商户号管理→待关联商户号(服务商模式)→去确认→确认)

微信直连至此结束,其余工作:

需要超管登录微信商户web端,添加财务账号作为后续财款跟踪使用。

8.后续核对

  需要核对桌面二维码支付;

  需要核对前台收银系统支付。

<?php /** * ECSHOP 支付宝插件 * ============================================================================ * ---------------------------------------------------------------------------- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。 * ============================================================================ * $Author: liubo $ * $Id: alipay.php 17217 2011-01-19 06:29:08Z liubo $ */ if (!defined('IN_ECS')) { die('Hacking attempt'); } $payment_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/payment/alipay.php'; if (file_exists($payment_lang)) { global $_LANG; include_once($payment_lang); } /* 模块的基本信息 */ if (isset($set_modules) && $set_modules == TRUE) { $i = isset($modules) ? count($modules) : 0; /* 代码 */ $modules[$i]['code'] = basename(__FILE__, '.php'); /* 描述对应的语言项 */ $modules[$i]['desc'] = 'alipay_desc'; /* 是否支持货到付款 */ $modules[$i]['is_cod'] = '0'; /* 是否支持在线支付 */ $modules[$i]['is_online'] = '1'; /* 作者 */ $modules[$i]['author'] = 'ECSHOP TEAM'; /* 网址 */ $modules[$i]['website'] = 'http://www.alipay.com'; /* 版本号 */ $modules[$i]['version'] = '1.0.2'; /* 配置信息 */ $modules[$i]['config'] = array( array('name' => 'alipay_account', 'type' => 'text', 'value' => ''), array('name' => 'alipay_key', 'type' => 'text', 'value' => ''), array('name' => 'alipay_partner', 'type' => 'text', 'value' => ''), // array('name' => 'alipay_real_method', 'type' => 'select', 'value' => '0'), // array('name' => 'alipay_virtual_method', 'type' => 'select', 'value' => '0'), // array('name' => 'is_instant', 'type' => 'select', 'value' => '0') array('name' => 'alipay_pay_method', 'type' => 'select', 'value' => '') ); return; } /** * 类 */ class alipay { /** * 构造函数 * * @access public * @param * * @return void */ function alipay() { } function __construct() { $this->alipay(); } /** * 生成支付代码 * @param array $order 订单信息 * @param array $payment 支付方式信息 */ function get_code($order, $payment) { if (!defined('EC_CHARSET')) { $charset = 'utf-8'; } else { $charset = EC_CHARSET; } // if (empty($payment['is_instant'])) // { // /* 未开通即时到帐 */ // $service = 'trade_create_by_buyer'; // } // else // { // if (!empty($order['order_id'])) // { // /* 检查订单是否全部为虚拟商品 */ // $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']->table('order_goods'). // " WHERE is_real=1 AND order_id='$order[order_id]'"; // // if ($GLOBALS['db']->getOne($sql) > 0) // { // /* 订单中存在实体商品 */ // $service = (!empty($payment['alipay_real_method']) && $payment['alipay_real_method'] == 1) ? // 'create_direct_pay_by_user' : 'trade_create_by_buyer'; // } // else // { // /* 订单中全部为虚拟商品 */ // $service = (!empty($payment['alipay_virtual_method']) && $payment['alipay_virtual_method'] == 1) ? // 'create_direct_pay_by_user' : 'create_digital_goods_trade_p'; // } // } // else // { // /* 非订单方式,按照虚拟商品处理 */ // $service = (!empty($payment['alipay_virtual_method']) && $payment['alipay_virtual_method'] == 1) ? // 'create_direct_pay_by_user' : 'create_digital_goods_trade_p'; // } // } $real_method = $payment['alipay_pay_method']; switch ($real_method){ case '0': $service = 'trade_create_by_buyer'; break; case '1': $service = 'create_partner_trade_by_buyer'; break; case '2': $service = 'create_direct_pay_by_user'; break; } $extend_param = 'isv^sh22'; $parameter = array( 'extend_param' => $extend_param, 'service' => $service, 'partner' => $payment['alipay_partner'], //'partner' => ALIPAY_ID, '_input_charset' => $charset, 'notify_url' => return_url(basename(__FILE__, '.php')), 'return_url' => return_url(basename(__FILE__, '.php')), /* 业务参数 */ 'subject' => $order['order_sn'], 'out_trade_no' => $order['order_sn'] . $order['log_id'], 'price' => $order['order_amount'], 'quantity' => 1, 'payment_type' => 1, /* 物流参数 */ 'logistics_type' => 'EXPRESS', 'logistics_fee' => 0, 'logistics_payment' => 'BUYER_PAY_AFTER_RECEIVE', /* 买卖双方信息 */ 'seller_email' => $payment['alipay_account'] ); ksort($parameter); reset($parameter); $param = ''; $sign = ''; foreach ($parameter AS $key => $val) { $param .= "$key=" .urlencode($val). "&"; $sign .= "$key=$val&"; } $param = substr($param, 0, -1); $sign = substr($sign, 0, -1). $payment['alipay_key']; //$sign = substr($sign, 0, -1). ALIPAY_AUTH; $button = '<div style="text-align:center"><input type="button" onclick="window.open(\'https://www.alipay.com/cooperate/gateway.do?'.$param. '&sign='.md5($sign).'&sign_type=MD5\')" value="' .$GLOBALS['_LANG']['pay_button']. '" /></div>'; return $button; } /** * 响应操作 */ function respond() { if (!empty($_POST)) { foreach($_POST as $key => $data) { $_GET[$key] = $data; } } $payment = get_payment($_GET['code']); $seller_email = rawurldecode($_GET['seller_email']); $order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']); $order_sn = trim($order_sn); /* 检查支付的金额是否相符 */ if (!check_money($order_sn, $_GET['total_fee'])) { return false; } /* 检查数字签名是否正确 */ ksort($_GET); reset($_GET); $sign = ''; foreach ($_GET AS $key=>$val) { if ($key != 'sign' && $key != 'sign_type' && $key != 'code') { $sign .= "$key=$val&"; } } $sign = substr($sign, 0, -1) . $payment['alipay_key']; //$sign = substr($sign, 0, -1) . ALIPAY_AUTH; if (md5($sign) != $_GET['sign']) { return false; } if ($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS') { /* 改变订单状态 */ order_paid($order_sn, 2); return true; } elseif ($_GET['trade_status'] == 'TRADE_FINISHED') { /* 改变订单状态 */ order_paid($order_sn); return true; } elseif ($_GET['trade_status'] == 'TRADE_SUCCESS') { /* 改变订单状态 */ order_paid($order_sn, 2); return true; } else { return false; } } } ?>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值