首页 > 编程语言 >likeshop商城小程序接入第三方支付富友支付方法

likeshop商城小程序接入第三方支付富友支付方法

时间:2023-12-15 14:02:42浏览次数:28  
标签:pay res 富友 order likeshop 支付 id

likeshop商城小程序接入富友支付的小程序支付功能需要用到富友的第三方插件

一、开发步骤
第一步:订单支付插件接口-封装报文;
第二步:打开富友插件:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wxe2ae77d4cbb8abf0&token=158753519&lang=zh_CN,
第三步:小程序加入富友插件代码,把第一步封装的密文报文丢进插件方法体里面-插件方法里有示例
第四步:就可以拉起支付了


二、likeshop前端代码修改:

1.uniapp\manifest.json文件里153行加入

 "plugins" : {
            "fuiou-pay" : {
                "version" : "latest",
                "provider" : "富友小程序的APPID"
            }
        },

2.uniapp/utils/pay.js文件里的最底部112行加入:

//富友支付
export function getFuioupay(opt) {
	 const plugin = requirePlugin('fuiou-pay')
	  plugin.fuioupay({
	    fee: opt.amount, // 支付金额(分为单位)传1就是1分钱
	    mchnt_cd: opt.mchnt_cd, // 商家id
	    message: opt.message, // 加密参数(通过接口获取)	
	    log: true, // 是否开启组件内log
	  })
	    .then(res => {
	      console.log(res) 
		   console.log("支付成功!");	   
	    })
	    .catch(e => {
	      // e.message 代码错误
	      console.error(e);
	    })
}

3.uniapp/pages/payment/payment.vue文件里加入

import { wxpay, alipay, getFuioupay } from "@/utils/pay";

161行:

case 30001:
		this.handleFuiouPay(data);
		break; 

173行:

    // 富友支付
    handleFuiouPay(data) {
      getFuioupay(data)
        .then((res) => {
          console.log(res);
		   console.log("支付成功了");
		  //支付成功
		  this.handPayResult("success");
        })
        .catch((err) => {
		  console.log("支付失败了");
          console.log(err);
        });
    },
三、likeshop后端代码修改:

1.在server\app\api\controller里的pay.php文件的89行加入:

case OrderEnum::PAY_WAY_FUIOUPAY://富友支付
                $result = PayLogic::fuiouPay($post['order_id'], $post['from'],$this->client);
                $data = [
                    'code' => 30001,
                    'msg' => '发起成功',
                    'data' => $result,
                    'show' => 0,
                ];
                return json($data);
                break;    

2.在server\app\api\logic里的OrderLogic.php文件的1752行加入:

  if ($item['code'] == 'fuioupay') {
                $item['extra'] = '富友支付';
                $item['pay_way'] = PayEnum::FUIOU_PAY;
            }

3.在server\app\api\logic里的PayLogic.php文件的385行加入:

  /**
     * @notes 富友支付
     * @param $order_id
     * @param $from
     * @param $client
     * @return bool|string
     * @author kinko
     */
 
    public static function fuiouPay($order_id, $form, $client)
    {
        switch ($form) {
            case "trade":
                $order = OrderTrade::find($order_id);
                if (self::checkPayStatus($order_id)) {
                    $order['pay_status'] = PayEnum::ISPAID;
                }
                break;
            case "order":
                $order = Order::where([
                    ['del', '=', 0],
                    ['id', '=', $order_id]
                ])->find();
                break;
            case "recharge":
                $order = RechargeOrder::where([
                    ['id', '=', $order_id]
                ])->find();
                break;
            case "integral":
                $order = IntegralOrder::where(['del' => 0, 'id' => $order_id])->find();
                break;
        }
        if (empty($order)) {
            return JsonServer::error('订单不存在');
        }
        if (isset($order['pay_status']) && $order['pay_status'] == PayEnum::ISPAID) {
            return JsonServer::error('订单已支付');
        }
        // 富友支付       
        $fuiouPay = new FuiouPayServer();
        $res = $fuiouPay->pay($from , $order , $client);
        return $res;
        if (false === $res) {
            return JsonServer::error(WeChatPayServer::getError());
        }
        if ((is_object($res) || is_string($res)) && $client != Client_::pc) {
            $res = (array)($res);
        }
        if (is_string($res)) {
            $data = [
                'code' => 1,
                'msg' => '富友支付发起成功',
                'show' => 0,
                'data' => $res
            ];
            return json($data);
        }
        return JsonServer::success('富友支付发起成功', $res, 1);
    }
四、整体流程图

likeshop商城小程序接入第三方支付富友支付方法_json

标签:pay,res,富友,order,likeshop,支付,id
From: https://blog.51cto.com/u_52294/8840638

相关文章

  • APP整合微信APV3支付过程解析
    求个关注和点赞!!!!!谢谢啦~~~~~~~~~~~~~~~~~~~~~1.官方文档:开发指引-APP支付|微信支付商户平台文档中心(qq.com)2.根据官方文档给的SDK进入到相应的文档:https://github.com/wechatpay-apiv3/wechatpay-java3.在idea引入相应的maven依赖:<dependency><groupId>com.github.w......
  • 在 Sealos 中使用区块链技术实现统一支付系统
    拿着区块链技术不一定是去发币,很多业务系统也适合用这些技术,比如做个统一支付系统,积分系统等,可以做为一家公司的金融基础设施,或支付中台。拿链的技术去做有很多好处:高可用,自带多区域高一致性的能力,自带高可用能力和校验能力。安全,很大程度防范黑客或者用户篡改资金账户的可能性......
  • 设备指纹技术引入,提升三方支付安全
    随着互联网和移动互联网的发展,三方支付已经成为人们日常生活中不可或缺的一部分。然而,在享受三方支付带来的便利和效率的同时,我们也不能忽视其所面临着多种业务安全挑战。例如,在线交易中可能存在欺诈者利用虚假信息或恶意软件进行盗刷或转账操作;用户或商户在使用三方支付平台时可......
  • 支付宝云开发 H5 页面渲染提升优化实践
    支付宝云开发产品是一款蚂蚁集团独立自研的Serverless小程序一站式开发平台。蚂蚁内部FaaS产品有多年的研发、实践积累,并在内部众多业务线大规模应用,基于蚂蚁FaaS产品蚂蚁团队打造了全新的支付宝云开发产品。云开发产品具备极速弹性能力、高性能、高稳定性,在满足业务场景的同......
  • 聚合支付项目-06
    Mybatis-Plus课程目标:了解Mybatis-Plus整合Mybatis-Plus通用CRUDMybatis-Plus的配置条件构造器Mybatis-Plus的Service封装代码生成器1Mybatis-Plus介绍1.1Mybatis-Plus介绍MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发提高效率......
  • 聚合支付项目-05
    4基础技术栈总结Nacos用来干什么?Nacos是阿里巴巴公司开源的项目,它用来实现配置中心和服务注册中心。什么是服务发现?在微服务架构中一个业务流程需要多个微服务通过网络接口调用完成业务处理,服务消费方从服务注册中心获取服务提供方的地址,从而进行远程调用,这个过程叫做服务发现。......
  • odoo17.0 微信支付 支付宝 顺丰速递 圆通速递
    随着odoo17.0的发布,新代码的架构变动,导致之前的一些模块已经不能使用,因此,我们集中把常用的这几个模块率先进行了升级。本次发布的新模块有:微信支付支付宝支付顺丰速递圆通速递微信支付和支付宝支付我们在安装了在线商城模块之后,在设置-支付提供商中就可以看到微信支付/支......
  • 红米K70E支付宝无指纹支付选项的解决方法
    红米K70E这台手机,支付宝里无指纹支付选项,百度了一下,也没结果。自己摸索了下,终于折腾出了指纹支付。 解决方法:在手机-设置-指纹、面部与密码-指纹解锁-指纹支付-支付宝-更新证书。杀掉支付宝APP,重进支付宝。  OK ......
  • .NET Core 开发的支付SDK集 - paylink
    一套基于.NETCore开发的支付SDK集-paylink 前言在我们的日常工作开发中对接一些第三方支付是比较常见的,如最常见的就是支付宝、微信支付的对接。今天给大家推荐一个基于.NETCore开发的支付SDK集:paylink,它极大简化了API调用及通知的处理流程从而大大提供我们的工作生......
  • 商品支付流程梳理
    微信支付三种方式流程梳理1.Native方式---PC端Native方式一般是在PC端中使用。先看官方提供的流程图:![Native流程图](C:\Users\pc\Desktop\微信支付\Native流程图.png)根据官方的图来梳理即可:1.1第一步---商户平台内部生成订单信息并展示这一步一般是在用户......