目录
1、什么是软件著作权,为什么要申请软件著作权?
软件著作权是指对软件作品的创作权利的法律保护。具体来说,它是指对计算机程序、软件代码及相关文档的著作权。著作权法通常将软件作品视为文学作品的一种,因此软件作者或开发者可以根据相关法律规定享有软件著作权。
申请软件著作权的主要目的包括以下几点:
-
法律保护:软件著作权的申请可以确保软件作者对其作品享有合法权益。一旦获得软件著作权,作者就能够依法追究侵权者的责任,并获得相应的法律保护。
-
商业利益:获得软件著作权可以为软件作者带来商业利益。在市场竞争中,拥有著作权的软件更具有竞争优势,因为它们可以通过法律手段保护自己的创新和独特功能,防止他人未经授权复制或篡改。
-
增强信誉:软件著作权的申请也可以增强软件作者的信誉。在申请著作权的过程中,作者必须提供详细的文档和说明,证明其作品的原创性和独特性,这有助于树立作者在行业内的良好声誉。
-
合作交流:著作权申请过程中,作者需要清晰地记录软件的功能、特点和设计,这有助于与其他开发者、合作伙伴或投资者进行交流和合作。
因此,申请软件著作权是保护软件作者合法权益、维护创新和商业利益的重要手段。
2、申请软著需要什么材料
- 公司申请需要营业执照副本(复印件也可以),个人申请需要个人身份证复印件
- 软件说明书: 这是对软件的详细描述,包括软件的功能、特点、使用方法等。
- 前后各30页源代码(超出没事)(微软雅黑、字体大小10、每页不低于50行,行间距固定值设为13磅)
- 申请书,需签字盖章
3、如何开始申请软著?
3.1、注册账号
首先你需要前往中国版权中心官网,进行注册。(点击链接跳转)
进入登录页首页点击注册账号
我这边是机构账号注册,个人注册也没太大区别,主要是实名认证的时候要认真!!
注册完成之后,先到用户中心,账号管理里面进行实名认证,需要你提供你的身份证正反面以及手拿身份证人像面的图片。如果你刚才注册的是机构的话,还需要营业执照,还有授权书(需要盖章)。
上传的材料照片信息需要清晰明确,一定要按照系统提示来做,不然不通过很浪费时间,通常24小时至72小时后即可查看结果。
授权书系统里有模板,下载填写后盖章扫描成PDF上传。
实名认证步骤到此为止(还有问题可以留言,看到一定回复)。
3.2、软著申请
一旦完成账号注册并成功进行实名认证,您即可开始进行软件著作权申请。首先,登录中国版权保护中心的著作权登记系统,在页面中找到计算机软件著作权相关登记选项。点击进入界面,选择R11——计算机软件著作权登记申请,并点击立即登记。进入下一步界面后,您将看到以下几个步骤。
请注意图中文字说明!
软件开发信息需要根据实际情况填写
软件功能与特点根据实际填写就好了,自己语言不好描述的话可以ChatGPT上让它帮你润色一下,以下是我的填写情况,供您参考!
3.3、程序鉴别材料与文档鉴别材料排版要求
*提交程序鉴别材料与文档鉴别材料
提交程序鉴别材料与文档鉴别材料一定是pdf
源程序排版要求:
- 页眉为软件名称+版本号,页码页面居中就行。
- 代码3000行以下全部提交。3000行以上取前后各30页,第一页为代码开头,最后一页为明显的代码结尾,页码连续编1~60。
- 每页50行以上,建议13磅固定值行距,字体为5号,设置13磅每一页就有53行,有多余的空格一定要注意删掉。
在鉴别材料中,请确保没有著作权人以外的名字出现,也不要包含网址、商标等信息。测试数据请使用虚构数据,避免使用实际数据。在截图中,名称、版本号和申请内容需保持一致,以避免后续补正的情况发生
以下是我申报的代码实例,供你们参考
<?php
namespace App\Api\Controllers;
use App\Api\Foundation\Controllers\Controller;
use App\Models\UserAccount;
use App\Models\Users;
use App\Models\UsersReal;
use App\Repositories\Common\BaseRepository;
use App\Repositories\Common\DscRepository;
use App\Repositories\Common\TimeRepository;
use App\Services\Payment\PaymentService;
use App\Services\User\UserService;
use Exception;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
use App\Repositories\Common\StrRepository;
/**
* Class AccountController
* @package App\Api\Controllers
*/
class AccountController extends Controller
{
protected $config;
protected $userService;
protected $paymentService;
protected $dscRepository;
public function __construct(
UserService $userService,
PaymentService $paymentService,
DscRepository $dscRepository
)
{
$this->userService = $userService;
$this->paymentService = $paymentService;
$this->dscRepository = $dscRepository;
}
protected function initialize()
{
parent::initialize();
//加载外部类
$files = [
'clips',
'common',
'time',
'main',
'order',
'function',
'payment',
'base',
];
load_helper($files);
//加载语言包
$this->dscRepository->helpersLang('user');
}
/**
* 账户概要
* @param Request $request
* @return JsonResponse
* @throws Exception
*/
public function index(Request $request)
{
$user_id = $this->authorization();
if (empty($user_id)) {
return $this->setErrorCode(12)->failed(lang('user.not_login'));
}
//会员账户信息
$user_account = get_row_user_account($user_id);
$user_account['user_balance_withdrawal'] = config('shop.user_balance_withdrawal') ?? 1; // 会员余额提现设置项
if ($user_account) {
$user_account['value_card']['use_value_card'] = config('shop.use_value_card');
}
$user_account['user_balance_recharge'] = config('shop.user_balance_recharge') ?? 1; // 会员余额充值设置项
return $this->succeed($user_account);
}
/**
* 申请记录
* @param Request $request
* @return JsonResponse
* @throws Exception
*/
public function replylog(Request $request)
{
$page = (int)$request->get('page', 1);
$user_id = $this->authorization();
if (empty($user_id)) {
return $this->setErrorCode(12)->failed(lang('user.not_login'));
}
/* 获取记录条数 */
$record_count = UserAccount::where('user_id', $user_id)->whereIn('process_type', [SURPLUS_SAVE, SURPLUS_RETURN])->count();
//分页函数
$pager = get_pager('user.php', ['act' => 'account_log'], $record_count, $page);
$account_log = $this->userService->getAccountLog($user_id, $pager['size'], $pager['start']);
return $this->succeed($account_log);
}
/**
* 账户明细
* @param Request $request
* @return JsonResponse
* @throws Exception
*/
public function accountlog(Request $request)
{
$page = (int)$request->input('page', 1);
$size = (int)$request->input('size', 10);
$order_sn = $request->input('order_sn', '');
$month = $request->input('month', 0);
$user_id = $this->authorization();
if (empty($user_id)) {
return $this->setErrorCode(12)->failed(lang('user.not_login'));
}
// //获取余额记录
$account_log = $this->userService->userMoneyAccountLogList($user_id, $page, $size, $order_sn, $month);
return $this->succeed($account_log);
}
/**
* 资金提现
* @param Request $request
* @return JsonResponse
* @throws Exception
*/
public function reply(Request $request)
{
$user_id = $this->authorization();
if (empty($user_id)) {
return $this->setErrorCode(12)->failed(lang('user.not_login'));
}
//提现类型 0 银行卡 1 微信/支付宝
$withdraw_type = (int)$request->input('withdraw_type', 0);
$usersReal = [];
if (empty($withdraw_type)) {
// 检测是否实名认证
$usersReal = UsersReal::where('user_id', $user_id)->where('user_type', 0);
$usersReal = BaseRepository::getToArrayFirst($usersReal);
$res['code'] = 0;
if (empty($usersReal)) {
$res['code'] = 1;
$res['msg'] = $GLOBALS['_LANG']['16_no_users_real_desc'];
return $this->succeed($res);
}
if ($usersReal['review_status'] != 1) {
$res['code'] = 2;
$res['msg'] = $GLOBALS['_LANG']['16_users_real'] . $GLOBALS['_LANG']['is_confirm'][$usersReal['review_status']];
return $this->succeed($res);
}
}
// 获取剩余余额
$surplus_amount = get_user_surplus($user_id);
if (empty($surplus_amount)) {
$surplus_amount = 0;
}
$res['buyer_cash'] = (int)config('shop.buyer_cash');
if (empty($withdraw_type)) {
// 组装提现卡号,二维数组便于模板循环
$bank = [
[
'bank_name' => $usersReal['bank_name'] ?? '',
'bank_card' => $usersReal && $usersReal['bank_card'] ? substr($usersReal['bank_card'], 0, 4) . '******' . substr($usersReal['bank_card'], -4) : '',
'bank_region' => $usersReal['bank_name'] ?? '',
'bank_user_name' => $usersReal['real_name'] ?? '',
'bank_card_org' => $usersReal['bank_card'] ?? '',
'bank_mobile' => $usersReal['bank_mobile'] ?? '',
]
];
$res['bank'] = $bank;
}
$res['surplus_amount'] = $surplus_amount;
$res['deposit_fee'] = (float)config('shop.deposit_fee', 0); // 提现手续费比例
/* 获取记录条数 */
$res['record_count'] = UserAccount::where('user_id', $user_id)->whereIn('process_type', [SURPLUS_SAVE, SURPLUS_RETURN])->count();
$res['page_title'] = 'account_user_repay';
$res['code'] = 0;
return $this->succeed($res);
}
/**
* 账户充值
* @param Request $request
* @return JsonResponse
* @throws Exception
*/
public function deposit(Request $request)
{
$user_id = $this->authorization();
if (empty($user_id)) {
return $this->setErrorCode(12)->failed(lang('user.not_login'));
}
$surplus_id = (int)$request->input('id', 0);
$account = get_surplus_info($surplus_id, $user_id);
$res = [
'payment' => $this->paymentService->availablePaymentList(0, 0, 1),
'page_title' => 'account_user_charge'
];
if (!empty($account)) {
$res['order'] = $account;
$res['process_type'] = $surplus_id;
}
return $this->succeed($res);
}
/**
* 充值提现操作
* @param Request $request
* @return JsonResponse
* @throws ValidationException
*/
public function account(Request $request)
{
//数据验证
$this->validate($request, [
'amount' => 'required|numeric',
//'payment_id' => 'required|integer',
]);
$payment_id = (int)$request->input('payment_id', 0);
$user_note = addslashes($request->input('user_note', ''));
$amount = floatval($request->input('amount', 0));
$rec_id = (int)$request->input('rec_id', 0);
$surplus_type = (int)$request->input('surplus_type', 0); // 操作类型:0为充值,1为提现
$res['code'] = 0;
$user_id = $this->authorization();
if (empty($user_id)) {
return $this->setErrorCode(12)->failed(trans('user.not_login'));
}
// 用户不存在返回
if (!$this->checkUserExist($user_id)) {
return $this->setErrorCode(102)->failed(trans('user.user_not_exist'));
}
/* 变量初始化 */
$surplus = [
'user_id' => $user_id,
'rec_id' => $rec_id,
'process_type' => $surplus_type,
'payment_id' => $payment_id,
'user_note' => $user_note,
'amount' => $amount,
];
if ($surplus['process_type'] == 1) {
$withdraw_type = (int)$request->input('withdraw_type', 0); // 提现类型:0为银行卡,1为微信 2为支付宝
$withdraw_user_number = $request->input('withdraw_user_number', ''); // 提现账号
$usersReal = UsersReal::where('user_id', $user_id)
->where('user_type', 0)
->where('review_status', 1);
$usersReal = BaseRepository::getToArrayFirst($usersReal);
if (empty($usersReal) && empty($withdraw_type)) {
$res['code'] = 1;
$res['msg'] = $GLOBALS['_LANG']['16_users_real_desc'];
return $this->succeed($res);
}
//支付宝/微信提现必须填写账号
if (!empty($withdraw_type) && empty($withdraw_user_number)) {
$res['code'] = 1;
$res['msg'] = $GLOBALS['_LANG']['16_withdraw_number_empty'];
return $this->succeed($res);
}
$buyer_cash = intval(config('shop.buyer_cash')); // 买家提现最低金额,0表示不限
if (!empty($buyer_cash) && $amount < $buyer_cash) {
$res['code'] = 2;
$res['msg'] = $GLOBALS['_LANG']['forward_total_lowest'] . ":" . $buyer_cash;
return $this->succeed($res);
}
/* 判断是否有足够的余额的进行退款的操作 */
$sur_amount = get_user_surplus($user_id);
if ($amount > $sur_amount) {
$res['code'] = 3;
$res['msg'] = $GLOBALS['_LANG']['surplus_amount_error'];
return $this->succeed($res);
}
if ($usersReal && (empty($usersReal['bank_card']) || empty($usersReal['real_name'])) && empty($withdraw_type)) {
$res['code'] = 4;
$res['msg'] = $GLOBALS['_LANG']['users_real_no_complete'];
return $this->succeed($res);
}
// 会员余额提现设置项
if (config('shop.user_balance_withdrawal') == 0) {
$res['code'] = 5;
$res['msg'] = $GLOBALS['_LANG']['surplus_withdrawal_not_support'];
return $this->succeed($res);
}
$deposit_fee = (float)config('shop.deposit_fee', 0); // 提现手续费比例
$deposit_money = 0;
if ($deposit_fee > 0) {
$deposit_money = $amount * $deposit_fee / 100;
}
//判断手续费扣除模式,余额充足则从余额中扣除手续费,不足则在提现金额中扣除
if (($amount + $deposit_money) > $sur_amount) {
$amount = $amount - $deposit_money;
}
//插入会员账目明细
$surplus['deposit_fee'] = '-' . $deposit_money;
//提现金额
$frozen_money = $amount + $deposit_money;
$amount = '-' . $amount;
$surplus['payment'] = '';
$surplus['rec_id'] = insert_user_account($surplus, $amount);
/* 如果成功提交 */
if ($surplus['rec_id'] > 0) {
//by wang提现记录扩展信息start
$user_account_fields = [
'user_id' => $surplus['user_id'],
'account_id' => $surplus['rec_id'],
'withdraw_type' => $withdraw_type
];
//银行卡提现查询绑定银行卡号
if (empty($withdraw_type)) {
$user_account_fields['bank_number'] = $usersReal['bank_card'];
$user_account_fields['real_name'] = $usersReal['real_name'];
} else {
//微信/支付宝 使用用户填写的账号
$user_account_fields['bank_number'] = $withdraw_user_number;
$user_name = Users::where('user_id', $user_id)->value('user_name');
$user_account_fields['real_name'] = $user_name;
}
insert_user_account_fields($user_account_fields);
//by wang提现记录扩展信息end
/* 申请提现的资金进入冻结状态 */
log_account_change($user_id, $amount, $frozen_money, 0, 0, "【" . $GLOBALS['_LANG']['application_withdrawal'] . "】" . $surplus['user_note'], ACT_ADJUSTING, 0, $surplus['deposit_fee']);
$res['msg'] = $GLOBALS['_LANG']['surplus_appl_submit'];
}
} else {
$buyer_recharge = intval(config('shop.buyer_recharge')); // 买家充值最低金额,0表示不限
if (!empty($buyer_recharge) && $amount < $buyer_recharge) {
$res['code'] = 1;
$res['msg'] = $GLOBALS['_LANG']['user_recharge_notic'] . ":" . $buyer_recharge;
return $this->succeed($res);
}
if ($surplus['payment_id'] <= 0) {
$res['code'] = 2;
$res['msg'] = $GLOBALS['_LANG']['js_languages']['select_payment_pls'];
return $this->succeed($res);
}
// 会员余额充值设置项
if (config('shop.user_balance_recharge') == 0) {
$res['code'] = 5;
$res['msg'] = $GLOBALS['_LANG']['surplus_withdrawal_not_support'];
return $this->succeed($res);
}
//获取支付方式名称
$payment_info = payment_info($surplus['payment_id']);
$surplus['payment'] = $payment_info['pay_name'];
if ($surplus['rec_id'] > 0) {
//更新会员账目明细
$surplus['rec_id'] = update_user_account($surplus);
} else {
//插入会员账目明细
$surplus['rec_id'] = insert_user_account($surplus, $amount);
}
//取得支付信息,生成支付代码
$payment = unserialize_config($payment_info['pay_config']);
//生成伪订单号, 不足的时候补0
$order = [];
$order['order_sn'] = $surplus['rec_id'];
$order['user_name'] = Users::where('user_id', $user_id)->value('user_name');
$order['surplus_amount'] = $amount;
$order['add_time'] = TimeRepository::getGmTime(); // 默认时间戳
$order['subject'] = lang('user.account_deposit');// 充值描述
//计算支付手续费用
$payment_info['pay_fee'] = pay_fee($surplus['payment_id'], $order['surplus_amount'], 0);
//计算此次预付款需要支付的总金额
$order['order_amount'] = $amount + $payment_info['pay_fee'];
if ($order['order_amount'] > 0 && $payment_info && strpos($payment_info['pay_code'], 'pay_') === false) {
$pay_name = StrRepository::studly($payment_info['pay_code']);
$pay_obj = app('\\App\\Plugins\\Payment\\' . $pay_name . '\\' . $pay_name);
//记录支付log
$order['log_id'] = insert_pay_log($surplus['rec_id'], $order['order_amount'], PAY_SURPLUS, 0);
if (!is_null($pay_obj)) {
$res['pay_button'] = $pay_obj->get_code($order, $payment, $user_id);
}
}
}
return $this->succeed($res);
}
/**
* 个人积分明细
* @param Re