代运营手机端业务支付流程

这两天主要在回顾公司支付相关的代码,看得着实有点脑瓜疼,为了避免以后此类的麻烦,特地写下此文。
商户通短信支付流程:
一、短信方案页,获取公司发票抬头、充值方案
二、创建预支付订单
三、支付回调


公司有统一的支付中心,支付相关的业务必须从支付中心过,并且为了配合财务,支付相关的订单必须进行对账。
涉及到的数据表有:
1、统一订单表,所有支付相关的业务都在此表中有记录;
2、代运营报名订单表,本次支付业务的订单表;
3、第三方支付记录表;


以下是具体业务流程:
第一步,判断是否需要发票抬头,由于本次产品没有体现这一点,该步骤略过。


第二步,访问公共支付的预支付接口,获取支付中心的订单号
$apiUrl = '/Pay/Order/create';
$param = [
'outorderid' => '',
'subject' => '',
'detail' => '',
'totalfee' => '',
'callbackurl' => '',
'attach' => 'sop',
'expires' => '1800',
'notifyurl' => ''
];
$ret = D('Pay', 'Service')->createPay($apiUrl, $param);


第三步,根据接口返回的订单号生成统一订单记录
$insertData = https://www.it610.com/article/[
'orderid' => $ret['orderid'],
'outorderid' => $ret['outorderid'],
'subject' => $ret['subject'],
'detail' => $ret['detail'],
'paytype' => 0,
'totalfee' => $ret['totalfee'],
'closetime' => $ret['closetime'],
'qrcodeurl' => '',
'notifyurl' => $ret['notifyurl'],
'customerid' => $ret['customerid'],
'accttype' => $ret['accttype']
];
D('PtOrder')->addOrder($insertData);


第四步,新增代运营报名订单
$insertData = https://www.it610.com/article/[
'orderid' => '',
'outorderid' => '',
'company_code' => '',
'coupon_info' => '',
'room_type' => '',
'totalfee' => '',
'reg_price' => '',
'sms_price' => '',
'outordertype' => '',
'memo' => '',
'type' => '',
'status' => '',
'isinvoice' => '',
'issubmit' => '',
'createtime' => '',
'paidtime' => '',
'closetime' => '',
];
$sopRegOrder = D('SopRegOrder')->save($insertData);


第五步,访问支付中心支付页面接口,获取手机端支付地址
$apiUrl = '/Pay/Order/getCheckout/';
$payUrl = D('Pay', 'Service')->getCheckout($apiUrl, $sopRegOrder['orderid']);
手机端根据支付地址,跳转到支付中心的支付页面。


第六步,写支付回调代码
支付回调主要是修改订单支付状态。
支付成功后的业务:判断是否调用赠送短信接口;批量创建优惠券;批量创建活动。


第七步,写对账相关代码
【代运营手机端业务支付流程】略。

    推荐阅读