致力于提供有竞争力的软件解决方案和服务,德尚网络欢迎您!
DSKMS演示
DSKMS(内容付费系统)演示地址及账号
DSKMS交流群:DSCMS开源官方群2
演示角色 演示地址 账号 密码
后台PC端 http://dskms.csdeshang.com/admin/ admin admin888
用户PC端 http://dskms.csdeshang.com/ buyer 123456
机构PC端 http://dskms.csdeshang.com/home/sellerlogin/login.html seller 123456
用户手机端 http://m.dskms.csdeshang.com/home/memberlogin buyer 123456
机构手机端 http://m.dskms.csdeshang.com/home/sellerlogin seller 123456
DSKMS(内容付费系统)移动端二维码演示地址
  • 用户手机端

  • 机构手机端

  • 微信小程序

DSShop演示
DSShop(单店铺系统)相关演示地址及账号
DSShop交流群:DSShop单店铺商城官方群
演示角色 演示地址 账号 密码
后台PC端 http://dsshop.csdeshang.com/admin/ admin admin888
用户PC端 http://dsshop.csdeshang.com/ buyer 123456
手机端 http://m.dsshop.csdeshang.com/ buyer 123456
DSShop(单店铺系统)移动端二维码演示地址
  • 用户手机端

  • 微信小程序

DSO2O演示
DSO2O(外卖/上门服务/跑腿系统)演示地址及账号
DSO2O交流群:DSShop单店铺商城官方群
演示角色 演示地址 账号 密码
后台PC端 https://dso2o.csdeshang.com/admin/ admin admin888
用户PC端 https://dso2o.csdeshang.com/ buyer 123456
卖家PC端 https://dso2o.csdeshang.com/home/sellerlogin/login.html seller 123456
服务机构管理 https://dso2o.csdeshang.com/home/fuwu_manage_login/login.html 后台添加
用户手机端 https://m.dso2o.csdeshang.com/home/memberlogin buyer 123456
商家手机端 https://m.dso2o.csdeshang.com/home/sellerlogin seller 123456
配送员 https://m.dso2o.csdeshang.com/distributor/login 测试配送员 123456
服务机构管理 https://m.dso2o.csdeshang.com/fuwu_manage/login test1 123456
DSO2O(外卖/上门服务/跑腿系统)移动端二维码演示地址
  • 用户手机端

  • 商家手机端

  • 配送员管理

  • 上门服务机构

  • 微信小程序

DSMall演示
DSMall(多店铺商城系统)演示地址及账号
DSMall交流群: DSMall开源商城官方群
演示角色 演示地址 账号 密码
后台PC端 https://dsmall.csdeshang.com/admin/ admin admin888
用户PC端 https://dsmall.csdeshang.com/ buyer 123456
商家PC端 https://dsmall.csdeshang.com/home/sellerlogin/login.html seller 123456
用户手机端 https://m.dsmall.csdeshang.com/ buyer 123456
商家手机端 https://m.dsmall.csdeshang.com/home/sellerlogin seller 123456
微信小程序 微信内搜索小程序 DSSHOP
DSMall(多店铺商城系统)移动端二维码演示地址
  • 用户手机端

  • 商家手机端

  • 混合版苹果APP

  • 混合版安卓APP
    (使用浏览器打开)

  • 微信小程序

DSMall 增加支付插件

如果需要为系统增加新的支付能力,可以将支付插件放到\plugins\payments目录中。

首先新增一个目录,名称最好为新支付插件的名称,该目录中至少需要包含两个文件,{支付插件名称}.php以及payment.info.php{支付插件名称}.php的名称需要与它的上级目录名称一致。

payment.info.php用数组保存支付插件信息,payment_code{支付插件名称}payment_name为支付插件的展示名称,payment_desc为支付插件的介绍,payment_is_online表示是否是线上支付方式,payment_platform为支付插件应用的场景,值有pc(电脑端)、h5(手机端)、appapp端),payment_author为作者名称,payment_website为支付插件官网链接,payment_version为支付插件的版本信息,payment_config为支付插件需要用到的配置参数,其中的name为配置参数名,type为配置参数的输入类型,有text(文本型)、textarea(多行文本型)、file(文件型)。

return array(
    'payment_code' => 'wxpay_h5',
    'payment_name' => '微信H5支付',
    'payment_desc' => '微信H5支付',
    'payment_is_online' => '1',
    'payment_platform' => 'h5', #支付平台 pc h5 app
    'payment_author' => '长沙德尚',
    'payment_website' => 'http://www.alipay.com',
    'payment_version' => '1.0',
    'payment_config' => array(
        array('name' => 'wx_appid', 'type' => 'text', 'value' => '', 'desc' => '描述'),
        array('name' => 'wx_appsecret', 'type' => 'text', 'value' => '', 'desc' => '描述'),
        array('name' => 'wx_mch_id', 'type' => 'text', 'value' => '', 'desc' => '描述'),
        array('name' => 'wx_key', 'type' => 'text', 'value' => '', 'desc' => '描述'),
    ),
);

 

{支付插件名称}.php文件中,需要实现get_payformreturn_verifyverify_notify方法。

系统调用get_payform生成支付单,其中$order_info参数为待支付订单信息,含有pay_sn(商户订单号)、api_pay_amount(交易金额)、order_type(订单类型)、subject(订单描述)。

        //构造参数
        $payRequestBuilder = new AlipayTradePagePayContentBuilder();
        $payRequestBuilder->setBody($order_info['order_type']);
        $payRequestBuilder->setSubject($order_info['subject']);
        $payRequestBuilder->setTotalAmount($order_info['api_pay_amount']);
        $payRequestBuilder->setOutTradeNo($order_info['order_type'] . '-' . $order_info['pay_sn']);

 

verify_notifyreturn_verify都要返回结果数组,其中trade_status表示支付验证状态,0为失败1为成功,out_trade_no为商户订单号,trade_no交易凭证单号,total_fee为交易金额,order_type为订单类型。

        $return_result = array(
                'trade_status' => '0',
            );

 

            $return_result = array(
                    'out_trade_no' => $out_trade_no, #商户订单号
                    'trade_no' => input('param.trade_no'), #交易凭据单号
                    'total_fee' => input('param.total_amount'), #涉及金额
                    'order_type' => $order_type,
                    'trade_status' => '1',
                );