个人商城系统开源(配置支付宝支付!)

news2024/12/27 13:45:16

原文地址:个人商城系统开源(配置支付宝支付!) - Pleasure的博客

下面是正文内容:

前言

由于近期实在没有什么话题可写和一些有趣的项目教程可以分享。所以我只能决定将我自己亲手编写的一个迷你迷你商城系统进行开源。

也就是放在我博客右边的“我的另一个网站”(由于实在没什么生意只能开源了,充当教材)

开始分享一些前后端全栈的内容,希望对你们有所帮助。

虽然是迷你的商城系统,但是由于要实现每一部分各自的功能还是非常复杂的,比如用户的注册登录,手机号邮箱的绑定,充值支付功能的实现等等。

所以在这里我会花一周的时间按照功能进行划分来逐块解释,也好水一周的文章。顺便可以迁个站,整理一下代码。

看之前还是麻烦大家点点关注,谢谢!(就不选仅粉丝可见了)

如果在实现上存在什么问题,可以联系我。

正文

开始之前

这里需要预先进行说,由于相关操作涉及到财产,所以在操作上会有一定的难度。

线上电子支付的形式一般有:微信支付,支付宝支付,第四方支付平台等等。

第四方支付平台是指未获得国家支付结算许可,依托支付宝、财付通等正规第三方支付平台,通过注册商户或个人账户搭建的支付通道。

由于内容较多,就分为两期来进行阐述。划分依据为有无个人的个体工商户营业执照

如果你没有个人的个体工商户营业执照,那你就只需要看这篇文章就可以了。

一些说明

这篇文章的实现方式是通过第四方支付平台,也就是借助其他公司的支付网关和付款接口来实现。

支付宝开放平台

登录 - 支付宝

由于整个过程需要用到的电脑网站支付,手机网站支付,当面付等功能都需要个体工商户的认证。如果你没有那就不得不委托第四方支付平台。

预先准备

两个支付宝账户分别用于收款和付款,第四方支付平台我选择的是迅虎网络(因为在WordPress的woocommerce插件中也可以使用)(毕竟是委托不是免费的)。

需要下载他们平台的支付SDK插件。

链接放在下方,选择php的SDK进行下载。当然在我上传的开源包中也有配备,但在展示页面上个人进行了一些修改。

API接入文档-虎皮椒

在该平台申请相应的支付渠道,记录下相应的appid,密钥,网关值。

正式开始

打开SDK可以看到下面的内容。其实就是相当于平台已经帮助我们编写完成了相应的功能实现文件,我们只需要对应就行修改就可以了。

其中index.php是前端展示页面,payment.php是扫码支付页面(需要修改配置信息),return.php是支付成功后的回显,notify.php是支付成功异步回调接口,api.php是用于获得支付回调数据,query.php用于查询订单信息(需要修改配置信息)。

对于需要修改配置信息的文件,寻找appid appsecret url三个变量值,修改为“预先准备”中记录的值。

然后输入https://www.example.com/dictionary/index.php进行试验,扫码支付,看整个过程是否成功。

虽然平台为我们提供了相应的SDK,但是当支付成功后作为商城系统方的我们需要对支付订单做出一些回应,比如修改账户充值后的余额,发送账户选择的物品等等。

下面就是根据SDK返回的信息修改账户在数据库中余额的代码。其实就是对return.php进行了一些修改。

<?php
session_start();
$username = $_SESSION['username'];
$param['price'] = $_SESSION['total_fee'];
$userAvatarPath = "../uploads/" . $username . ".jpg";
$defaultAvatarPath = "../uploads/avatar.jpg";
if (isset($_SESSION['username'])) { ?>

    <!DOCTYPE html>
    <html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Account Recharge</title>
        <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
        <link rel="stylesheet" href="css/weui.css">
        <link rel="stylesheet" href="css/weuix.css">
        <style>
            .page-bg {
                max-width: 750px;
                margin: 0 auto;
            }

            .weui-cells {
                margin-top: 0;
                border: 1px solid #eee;
                border-radius: 1em;
            }

            .bgc-b {
                background-color: #fff;
            }
        </style>
    </head>

    <body class="page-bg">
        <div class="weui-msg">
            <div class="weui-msg__icon-area"><i class="weui-icon-success weui-icon_msg"></i></div>
            <div class="weui-msg__text-area">
                <h2 class="weui-msg__title">Payment Successful</h2>
            </div>
            <div class="weui-msg__opr-area">
                <p class="weui-btn-area">
                    <a href="https://shop2.yiming1234.cn/index.php" class="weui-btn weui-btn_primary">Back to Personal Center</a>
                </p>
            </div>
        </div>
        <div class="weui-footer weui-footer_fixed-bottom">
            <p class="weui-footer__text"></p>
        </div>
    </body>

    </html>
    <?php require "../conn.php";
    $stmt1 = $conn->prepare("UPDATE account SET account = account + ? WHERE username = ?");
    $stmt1->bind_param("ds", $param['price'], $username);
    $stmt1->execute();
    if (isset($_SESSION['total_fee'])) {
        unset($_SESSION['total_fee']);
    } ?>
<?php
} else {
    header('Location: ../index1.html');
    exit;
}
?>

具体的效果我在下面的文章中已经进行过演示了。

CSDN地址:https://yiming1234.blog.csdn.net/article/details/136558816

个人博客地址:个人商城系统开源(展示宣传) - Pleasure的博客

尾声

后面会出一期有个体工商户营业执照的操作教程,大家可以点个关注等待一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1509653.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

npm install报错,error <https://npm.community>解决方法

报错信息如下&#xff1a; 分析原因&#xff1a; 1.可能是由于node版本过低&#xff0c;或者过高,解决方法看我另一文章&#xff1a;npm install报错&#xff0c;npm版本过高&#xff0c;需要切换低版本node&#xff0c;过程记录 2.网络问题导致 3.切换node版本后&#xff0…

Material UI 5 学习03-Text Field文本输入框

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Text Field文本输入框 一、最基本的本文输入框1、基础示例2、一些表单属性3、验证 二、多行文本 一、最基本的本文输入框 1、基础示例 import {Box, TextField} from "…

Linux第76步_“gpio子系统”下的LED驱动

使用新字符设备驱动的一般模板和“gpio子系统”&#xff0c;以及设备树&#xff0c;驱动LED。 1、添加“gpio_led”节点 打开虚拟机上“VSCode”&#xff0c;点击“文件”&#xff0c;点击“打开文件夹”&#xff0c;点击“zgq”&#xff0c;点击“linux”&#xff0c;点击“…

LLM - 大语言模型的自注意力(Self-Attention)机制基础 概述

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/136623432 注意力(Attention)机制是大型语言模型中的一个重要组成部分&#xff0c;帮助模型决定在处理信息时&#xff0c;所应该关注的部…

后端八股笔记------微服务篇

注册中心的主要作用&#xff1a;根据服务进行负载均衡&#xff0c;服务的健康监控。 服务雪崩&#xff0c;因为一个服务D的宕机&#xff0c;导致很多服务崩掉。 达到失败阈值----Closed_to_Open 服务降级------某一个接口 服务熔断------整个服务 限流常见的算法可以是令牌…

代理IP如何应对自动化测试和爬虫检测

目录 一、代理IP在自动化测试和爬虫中的作用 二、代理IP的优缺点分析 1.优点 2.缺点 三、应对自动化测试和爬虫检测的策略 1.选择合适的代理IP 2.设置合理的请求频率和间隔 3.模拟人类行为模式 4.结合其他技术手段 四、案例与代码示例 五、总结 在自动化测试和爬虫开…

Docker笔记-进入运行中的镜像,查看日志等操作

docker搭建好后&#xff0c;查看运行的docker镜像&#xff1a; docker ps -a 进入运行的容器&#xff0c;命令如下&#xff1a; docker exec -it <容器ID> /bin/bash # 或者&#xff0c;直接用容器里面的命令&#xff0c;比如mysql镜像 docker exec -it <容器ID>…

RuoYi-Vue前后端部署

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

MacOS - 在 Mac 上自定义“访达”边栏(快捷方式)

将文件添加到边栏&#xff1a;按住 Command 键&#xff0c;然后将文件拖到“个人收藏”部分。如果没有看到“个人收藏”部分&#xff0c;请选取“访达” > “设置” > “边栏”&#xff0c;然后在“个人收藏”部分中选择至少一个项目。 将文件添加到“访达”边栏仅会创建…

C语言——简易版扫雷

目录 前言 ​编辑 游戏规则 游戏结构的分析 游戏的设计 使用多文件的好处有以下几点&#xff1a; 游戏代码实现 框架&#xff08;test.c&#xff09; game函数&#xff08;test.c&#xff09; InitBoard初始化&#xff08;game.c&#xff09; Print打印棋盘&#xff08;g…

【C++初阶】第六站 : 模板初阶

前言&#xff1a; 本章知识点&#xff1a;泛型编程、函数模板、类模板 专栏&#xff1a; C初阶 目录 泛型编程 函数模板 1.函数模板概念 2.函数模板格式 3.函数模板的原理 4.函数模板的实例化 5.模板参数的匹配原则 类模板 类模板的定义格式 类模板的实例化 泛型编程 如何实现一…

Flink实时数仓同步:实时表、流水表、快照表整合实战详解

一、背景 在大数据领域&#xff0c;数据分析、实时数仓已经成为平台上常见的功能之一。无论是进行实时分析还是离线分析&#xff0c;都离不开数仓中的表数据。 特别是在实时分析领域&#xff0c;查阅实时数据、历史数据以及历史变更数据是非常常见的需求。而这些功能的实现主…

基于android的物业管理系统的设计与实现19.8

目录 基于android的物业管理系统的设计与实现 3 摘 要 3 Android property managemengt system 5 Abstract 5 1 绪论 6 1.1 选题背景 6 1.2 课题研究现状 6 1.3 设计研究主要内容 7 1.4 系统主要设计思想 8 2 开发环境 8 2.1 Android系统的结构 8 图2-1 Android系统架构图 9 2…

【C++精简版回顾】21.迭代器,实现迭代器

1.什么是迭代器&#xff1f; 用来遍历容器&#xff0c;访问容器数据。 2.迭代器使用 1.初始化 //初始化 list<int> mylist;//list的整数对象 list<int>::iterator iter;//list内部类&#xff0c;迭代器对象(正向输出) list<int>::reverse_iterator riter;//…

详解数据挖掘

数据挖掘&#xff08;Data Mining&#xff09;&#xff0c;又译为资料探勘、数据采矿&#xff0c;是数据库知识发现&#xff08;Knowledge-Discovery in Databases&#xff0c;简称&#xff1a;KDD&#xff09;中的一个步骤。数据挖掘主要是指从大量的数据中&#xff0c;通过算…

如何选择软文推广渠道?媒介盒子分享

想要做好一个品牌&#xff0c;除了软文文案、推广方式要不断更新外&#xff0c;软文推广渠道也十分重要。有许多企业在创立之初容易踩平台没选好的坑。渠道是品牌触达用户的关键点&#xff0c;今天媒介盒子就来和大家聊聊&#xff1a;如何选择软文发布平台。 一、 了解平台用户…

Java项目:47 ssm007亚盛汽车配件销售业绩管理统+jsp(含文档)

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 亚盛汽车配件销售业绩管理系统根据调研&#xff0c;确定管理员管理客户&#xff0c;供应商&#xff0c;员工。 管理配件和配件的进货以及出售…

Python中的异常处理及最佳实践【第125篇—异常处理】

Python中的异常处理及最佳实践 异常处理是编写健壮、可靠和易于调试的Python代码中不可或缺的一部分。在本文中&#xff0c;我们将深入探讨Python中的异常处理机制&#xff0c;并分享一些最佳实践和代码示例&#xff0c;以帮助您更好地处理错误情况和提高代码的稳定性。 异常…

VUE3项目学习系列--Axios二次封装(五)

Axios中文文档 | Axios中文网 (axios-http.cn) Axios 是一个基于 promise 网络请求库&#xff0c;作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequ…

【SpringCloud微服务实战01】Eureka 注册中心

前言 在 Eureka 架构中,微服务角色有两类: EurekaServer :服务端,注册中心 记录服务信息 心跳监控 EurekaClient :客户端 Provider :服务提供者,例如案例中的 user-service 注册自己的信息到 EurekaS…