123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- """
- @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
- @AUTHOR: ASJRD018
- @NAME: Ansjer
- @software: PyCharm
- @DATE: 2018/5/22 13:58
- @Version: python3.6
- @MODIFY DECORD:ansjer dev
- @file: Test.py
- @Contact: chanjunkai@163.com
- """
- from django.views.generic.base import View
- from django.utils.decorators import method_decorator
- from django.views.decorators.csrf import csrf_exempt
- from django.contrib import auth
- from django.http import HttpResponseRedirect
- '''
- http://192.168.136.40:8077/Test
- '''
- import json
- import requests
- from Service.ModelService import ModelService
- from django.middleware.csrf import get_token
- from django.http import JsonResponse
- from ratelimit.decorators import ratelimit
- from Object.ResponseObject import ResponseObject
- from Object.TokenObject import TokenObject
- from Object.RedisObject import RedisObject
- from django.shortcuts import render_to_response, render, redirect
- import paypalrestsdk
- from django.http import HttpResponseRedirect, HttpResponse
- # 测试接口sdk
- class Test(View):
- '''
- limit=10:指定返回记录的数量
- offset=10:指定返回记录的开始位置。
- page=2&per_page=100:指定第几页,以及每页的记录数。
- sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
- animal_type_id=1:指定筛选条件
- '''
- @method_decorator(csrf_exempt)
- def dispatch(self, *args, **kwargs):
- return super(Test, self).dispatch(*args, **kwargs)
- def get(self, request, *args, **kwargs):
- return self.updatePrimaryMaster()
- # 增加
- def post(self, request, *args, **kwargs):
- response = ResponseObject()
- return response.json(0)
- def updatePrimaryMaster(self):
- from Model.models import Device_Info, Device_User
- qs = Device_Info.objects.filter(isShare=True, primaryMaster='').values('primaryUserID', 'id')
- for i in qs:
- user_qs = Device_User.objects.filter(userID=i['primaryUserID'])
- if user_qs:
- is_update = Device_Info.objects.filter(id=i['id']).update(primaryMaster=user_qs[0].username)
- print(is_update)
- return HttpResponse(status=200, content='1234')
- def ossCrd(self):
- '''
- 生成sts上传授权
- '''
- from aliyunsdkcore import client
- from aliyunsdksts.request.v20150401 import AssumeRoleRequest
- import json
- import oss2
- # Endpoint以杭州为例,其它egion请按实际情况填写。
- endpoint = 'oss-cn-shenzhen.aliyuncs.com'
- # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
- # access_key_id = 'LTAIXSozepSx81xe'
- # access_key_secret = '19BlxRiAHDPLx4mhz6vQZRuhK0eKed'
- access_key_id = 'LTAIyMkGfEdogyL9'
- access_key_secret = '71uIjpsqVOmF7DAITRyRuc259jHOjO'
- bucket_name = 'cloudvod1'
- # role_arn是角色的资源名称。
- role_arn = 'acs:ram::1901342792446414:role/stsoss'
- clt = client.AcsClient(access_key_id, access_key_secret, 'cn-shenzhen')
- req = AssumeRoleRequest.AssumeRoleRequest()
- # 设置返回值格式为JSON。
- req.set_accept_format('json')
- req.set_RoleArn(role_arn)
- req.set_RoleSessionName('chanjunkai')
- req.set_DurationSeconds(3600)
- policys = {
- "Version": "1",
- "Statement": [
- {
- "Action": [
- "oss:PutObject",
- "oss:DeleteObject",
- ],
- "Resource": ["acs:oss:*:*:cloudvod1/*"],
- "Effect": "Allow",
- "Condition": {
- "IpAddress": {
- "acs:SourceIp": "120.237.157.184"
- }
- }
- }
- ]
- }
- req.set_Policy(Policy=json.dumps(policys))
- body = clt.do_action(req)
- # body = clt.do_action_with_exception(req)
- # 使用RAM账号的AccessKeyId和AccessKeySecret向STS申请临时token。
- token = json.loads(body)
- print(token)
- res = {
- 'AccessKeyId': token['Credentials']['AccessKeyId'],
- 'AccessKeySecret': token['Credentials']['AccessKeySecret'],
- 'SecurityToken': token['Credentials']['SecurityToken'],
- 'Expiration': token['Credentials']['Expiration'],
- 'expire': '3600',
- 'endpoint': endpoint,
- 'bucket_name': bucket_name,
- 'arn': token['AssumedRoleUser']['Arn']
- }
- return JsonResponse(status=200, data=res)
- def qiniutokentest(self):
- # flake8: noqa
- from qiniu import Auth
- # 需要填写你的 Access Key 和 Secret Key
- access_key = 'dwdHw1pQ9wFNiHDdflBUiZyWmiLppd5VCC2yF0O_'
- secret_key = 'uTn7hdKD9Mbf2dzMWjLj2e9V1nXN7HAsOGRKwqDF'
- # 构建鉴权对象
- q = Auth(access_key, secret_key)
- # 要上传的空间
- bucket_name = 'test'
- # 上传到七牛后保存的文件名
- key = '/*'
- # 生成上传 Token,可以指定过期时间等
- # 上传策略示例
- # https://developer.qiniu.com/kodo/manual/1206/put-policy
- policy = {
- # 'callbackUrl':'https://requestb.in/1c7q2d31',
- # 'callbackBody':'filename=$(fname)&filesize=$(fsize)'
- # 'persistentOps':'imageView2/1/w/200/h/200'
- }
- # 3600为token过期时间,秒为单位。3600等于一小时
- token = q.upload_token(bucket_name, key, 3600, policy)
- print(token)
- return HttpResponse(content=token, status=200)
- def paypaytest(self, request):
- '''
- :param request:
- :param args:
- :param kwargs:
- :return:
- '''
- response = ResponseObject()
- # return response.json(0)
- paymentId = request.GET.get('paymentId', None)
- PayerID = request.GET.get('PayerID', None)
- if paymentId and PayerID:
- paypalrestsdk.configure({
- "mode": "sandbox", # sandbox or live
- "client_id": "AfnfDqezODOoWGS-W2Itu-Zl1ay1R95IsGlMqPghPA3KGhkPndNMnQT0bdEewvSv92XAFIfLiinmyhBL",
- "client_secret": "EErLskwYA1xXY3890mHx5OhzgK83B2rNc57zIozGNyKc8i6RJuhPTF9WyhhdZgyDEih0heo1MH9Jk1lj"
- })
- # ID of the payment. This ID is provided when creating payment.
- payment = paypalrestsdk.Payment.find(paymentId)
- payres = payment.execute({"payer_id": PayerID})
- print(payres)
- if payres:
- print("Payment execute successfully")
- else:
- print(payment.error) # Error Hash
- return response.json(0)
- else:
- pass
- paypalrestsdk.configure({
- "mode": "sandbox", # sandbox or live
- "client_id": "AfnfDqezODOoWGS-W2Itu-Zl1ay1R95IsGlMqPghPA3KGhkPndNMnQT0bdEewvSv92XAFIfLiinmyhBL",
- "client_secret": "EErLskwYA1xXY3890mHx5OhzgK83B2rNc57zIozGNyKc8i6RJuhPTF9WyhhdZgyDEih0heo1MH9Jk1lj"})
- payment = paypalrestsdk.Payment({
- "intent": "sale",
- "payer": {
- "payment_method": "paypal"},
- "redirect_urls": {
- # "return_url": "http://192.168.136.45:3000/payment/execute",
- "return_url": "http://192.168.136.40:8077/Test",
- "cancel_url": "http://localhost:3000/"},
- "transactions": [{
- "item_list": {
- "items": [{
- "name": "item",
- "sku": "item",
- "price": "5.00",
- "currency": "USD",
- "quantity": 1}]},
- "amount": {
- "total": "5.00",
- "currency": "USD"},
- "description": "This is the payment transaction description."}]})
- if payment.create():
- print("Payment created successfully")
- else:
- print(payment.error)
- print(payment)
- for link in payment.links:
- if link.rel == "approval_url":
- # Convert to str to avoid Google App Engine Unicode issue
- # https://github.com/paypal/rest-api-sdk-python/pull/58
- approval_url = str(link.href)
- print("Redirect for approval: %s" % (approval_url))
- return HttpResponseRedirect(approval_url)
- # 修改 资源改变
- def put(self, request):
- response = ResponseObject()
- return response.json(0)
- # 修改 属性改变
- def PATCH(self, request):
- response = ResponseObject()
- return response.json(0)
- # 删除
- def delete(self, request):
- response = ResponseObject()
- return response.json(0)
- def validation(self, request_dict, *args, **kwargs):
- response = ResponseObject()
- return response.json(0)
|