diff --git a/batiskaf/settings.py b/batiskaf/settings.py index 344d1ec..7d21c83 100644 --- a/batiskaf/settings.py +++ b/batiskaf/settings.py @@ -63,6 +63,7 @@ INSTALLED_APPS = ( 'rest_framework', 'easy_thumbnails', 'bootstrapform_jinja', + 'kkb', 'batiskaf', 'main', 'accounts', @@ -112,7 +113,6 @@ else: } } - EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.yandex.ru' EMAIL_HOST_USER = 'admin@batiskaf-kz.kz' @@ -160,7 +160,7 @@ TEMPLATES = [ 'BACKEND': 'django.template.backends.jinja2.Jinja2', 'DIRS': [ os.path.join(BASE_DIR, "batiskaf/templates/jinja2"), - #os.path.join(BASE_DIR, "batiskaf/templates/jinja2/bootstrapform"), + # os.path.join(BASE_DIR, "batiskaf/templates/jinja2/bootstrapform"), ], 'OPTIONS': { 'environment': 'batiskaf.jinja2.environment', @@ -260,4 +260,16 @@ THUMBNAIL_PROCESSORS = ( 'easy_thumbnails.processors.background', ) -PROFILE_TEMP_PASSWORD = 'dE6Hyo9heWck5yiM2dIs' \ No newline at end of file +PROFILE_TEMP_PASSWORD = 'dE6Hyo9heWck5yiM2dIs' + +MERCHANT_CERTIFICATE_ID = "c183d5b8" # ; Серийный номер сертификата Cert Serial Number +MERCHANT_NAME = "BATISKAF-KZ.KZ" # ; Название магазина (продавца) Shop/merchant Name +PRIVATE_KEY_FN = os.path.join(BASE_DIR, 'kkb_keys', + 'cert.prv') # "../paysys/cert.prv" # ; Путь к закрытому ключу Private cert path +PRIVATE_KEY_PASS = "1q2w3e4r" # ; Пароль к закрытому ключу Private cert password +# XML_TEMPLATE_FN = "../paysys/template.xml" # ; Путь к XML шаблону XML template path +# XML_COMMAND_TEMPLATE_FN = "../paysys/command_template.xml" # ; Путь к XML шаблону для команд (возврат/подтверждение) +PUBLIC_KEY_FN = os.path.join(BASE_DIR, 'kkb_keys', + 'kkbca.cer') # "../paysys/kkbca.pem" # ; Путь к открытому ключу Public cert path +MERCHANT_ID = "92210431" # ; Терминал ИД в банковской Системе + diff --git a/batiskaf/templates/jinja2/kkb.jinja b/batiskaf/templates/jinja2/kkb.jinja new file mode 100644 index 0000000..b2f3211 --- /dev/null +++ b/batiskaf/templates/jinja2/kkb.jinja @@ -0,0 +1,4 @@ +
+ + +
diff --git a/batiskaf/urls.py b/batiskaf/urls.py index b691a51..28ca8d1 100644 --- a/batiskaf/urls.py +++ b/batiskaf/urls.py @@ -3,7 +3,7 @@ from django.contrib import admin from django.http import HttpResponse from api.views import call_order from news.views import NewsSitemap -from store.views import order_view, order_print, ProductSitemap, CategorySitemap +from store.views import order_view, order_print, ProductSitemap, CategorySitemap, order_kkb from main.views import * from rest_framework import routers # from api.urls import router @@ -88,6 +88,8 @@ urlpatterns = patterns( url(r'^order_order/$', 'api.views.order_order'), url(r'^order/(?P.+)/print/$', order_print, name='store_order_print'), + url(r'^order/(?P.+)/kkb/$', order_kkb, + name='store_order_kkb'), url(r'^order/(?P.+)/$', order_view, name='store_order_view'), diff --git a/kkb_keys/cert.cer b/kkb_keys/cert.cer new file mode 100755 index 0000000..0009a7a --- /dev/null +++ b/kkb_keys/cert.cer @@ -0,0 +1,3 @@ +-----BEGIN CERTIFICATE----- +MIIDhDCCAmygAwIBAgIFAMGD1bgwDQYJKoZIhvcNAQEEBQAwUzELMAkGA1UEBhMCS1oxDDAKBgNVBAoTA0tLQjELMAkGA1UECxMCQ0ExDzANBgNVBAMTBktLQiBDQTEYMBYGCSqGSIb3DQEJARYJY2FAa2tiLmt6MB4XDTE1MDcyMTEyNDAwMVoXDTIwMDcxOTEyNDAwMVowfzELMAkGA1UEBhMCS1oxDzANBgNVBAcTBkFsbWF0eTEXMBUGA1UEChMOQkFUSVNLQUYtS1ouS1oxCzAJBgNVBAsTAkFUMRcwFQYDVQQDEw5CQVRJU0tBRi1LWi5LWjEgMB4GCSqGSIb3DQEJARYRcG9saW5raW5tQG1haWwucnUwgZ4wDQYJKoZIhvcNAQEBBQADgYwAMIGIAoGAYh21Ilsqz6gZVdY2fMw3tzSZLPp8ZP+eUPaBx0nrVD4XTqXRjVFWa5EehEOMaLVlpdR/95oLDBNxPVDKNxfnREDMSSaXTgL7T5658wHdVDznZvkivgEV9qdHghd/zFmE4l42N2ZW7c8VcZOqGiv8xw+aWsyfZAeP4bhnJbsJ3E0CAwEAAaOBtzCBtDAdBgNVHQ4EFgQUCJOy2op1pGgl7Qfv1CcgJZvZwYYwHwYDVR0jBBgwFoAU712nYyivxvN+d0LbneCElQZ9clMwDAYDVR0TBAUwAwEBADAOBgNVHQ8BAf8EBAMCBPAwNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL3d3dy5ra2Iua3ovY2VydHJvb3Qva2tiY2EuY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDANBgkqhkiG9w0BAQQFAAOCAQEAQjgSsxnk7iJHMeFvjPR+q5srO64TpeHrV95due2645QqFdRRwfvvrnvP4yDTZ6XgjldbSb8C2uNbJR+k7iY7sfcW7x56uTz+1uurpGGTw2Sm8rRc8wYJ2Mx5HoOhGs3ZyUUGfzFUejDJnO8GT5d0ArpAqJlC9/kVD/ziqAx6mdxCM0rxg99FrUn4JMiUt6ASmIJG4c+AvS0/AZPTgz1h7S3hK9MhGh9WUd4qp0kGmzKDsgg7hB8T8m1ZF1FQ0Gwn0Lh+HhBllFzehyxTafH5Xp7YXKPS0NE5ELZJpMo1SfVlwPdHWRVFDR/RoCIeI2fp9kj2S/Fe7VZSMXuiuGQsYw== +-----END CERTIFICATE----- diff --git a/kkb_keys/cert.der b/kkb_keys/cert.der new file mode 100755 index 0000000..819eba3 Binary files /dev/null and b/kkb_keys/cert.der differ diff --git a/kkb_keys/cert.jks b/kkb_keys/cert.jks new file mode 100755 index 0000000..26178e7 Binary files /dev/null and b/kkb_keys/cert.jks differ diff --git a/kkb_keys/cert.pfx b/kkb_keys/cert.pfx new file mode 100755 index 0000000..49f4a69 Binary files /dev/null and b/kkb_keys/cert.pfx differ diff --git a/kkb_keys/cert.pk8 b/kkb_keys/cert.pk8 new file mode 100755 index 0000000..c9ff00a Binary files /dev/null and b/kkb_keys/cert.pk8 differ diff --git a/kkb_keys/cert.prv b/kkb_keys/cert.prv new file mode 100755 index 0000000..8e84832 --- /dev/null +++ b/kkb_keys/cert.prv @@ -0,0 +1,17 @@ +-----BEGIN ENCRYPTED PRIVATE KEY----- +MIICxjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIScEGpk9gvkwCAggA +MBQGCCqGSIb3DQMHBAh1KNA8mz2JKwSCAoC43mDcn1CDBAS7QoMXc18GuAPfJWKH +XFEfnvgUcrEG+oJrpRyRs84kz+KcMEpvFDGZ9bEgscM9HX6TcxprxMlH6GEdWNDE +klW0EVq8uWIjFMpNviwV1kS+5NefF4Sow8BLirCJOOFhyK0K9lkT5Fcp7raP9z1h +XJ7kFytjyJmdzultABZ9IhxqmT+dmfQPpJX7zqhZo2QVi4YygpS8RSl9h3g1SGW7 +pvnykNStNpY5h991Z5f/8K35NpnbPJiicYjAKLAHZz4oNZwOldSKclo1ZyAnA+t5 +5g53GAwIFG0EKLPzsA/F4F4LUI9tLHZCb5w7SMbZarffLvielIKDmQUfEmq4bgBT ++33jxSuTUd0Aqfw7I24+2YGdYWsnc3epVrfofVreCE7XZYvGQAY+xF/rFuHNCTcf +q0d7AiNmLwLNPOznXC2GKyOygDqnneLD8qn7kOWGQmBB3/l2CPObV+JdFCw+zCgE +7hCRKw/kmSXKxgQdYwr/vgcJthN9NzglWdCF4PXNFZgAvg0Wyn9hQs73NgSkwfrj +ZbnQDjnsRMGjwlVZaXxPFzUhHR86fAAqB/5qjGYbnjtXZlN6/tXR92Isktvj2H9m +ADr7suuJX2nUKl4yJQLgZB4srJ+VaqQ6V3jlFBvbBPCAB1oa9R0aP78WGsBtsNid +8OyzY+GWUZYUgqZbgin+Mu1H0CVfPGGIMQ1thSV5a/aHTon3mx+Do/GuBqMqajr/ +OQzD16tdcniwCRzFqLpY3uFYNovXHYikriKWH1cvPsjQ0Ya7C5QeSJrxIE2my3TQ +N6cfnZ8dF7/HxaS1/itdL43c+v/+EsOAyVNWhZWPJOCUFcORHvHIOndw +-----END ENCRYPTED PRIVATE KEY----- \ No newline at end of file diff --git a/kkb_keys/cert.pub b/kkb_keys/cert.pub new file mode 100755 index 0000000..41cefec --- /dev/null +++ b/kkb_keys/cert.pub @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDhDCCAmygAwIBAgIFAMGD1bgwDQYJKoZIhvcNAQEEBQAwUzELMAkGA1UEBhMC +S1oxDDAKBgNVBAoTA0tLQjELMAkGA1UECxMCQ0ExDzANBgNVBAMTBktLQiBDQTEY +MBYGCSqGSIb3DQEJARYJY2FAa2tiLmt6MB4XDTE1MDcyMTEyNDAwMVoXDTIwMDcx +OTEyNDAwMVowfzELMAkGA1UEBhMCS1oxDzANBgNVBAcTBkFsbWF0eTEXMBUGA1UE +ChMOQkFUSVNLQUYtS1ouS1oxCzAJBgNVBAsTAkFUMRcwFQYDVQQDEw5CQVRJU0tB +Ri1LWi5LWjEgMB4GCSqGSIb3DQEJARYRcG9saW5raW5tQG1haWwucnUwgZ4wDQYJ +KoZIhvcNAQEBBQADgYwAMIGIAoGAYh21Ilsqz6gZVdY2fMw3tzSZLPp8ZP+eUPaB +x0nrVD4XTqXRjVFWa5EehEOMaLVlpdR/95oLDBNxPVDKNxfnREDMSSaXTgL7T565 +8wHdVDznZvkivgEV9qdHghd/zFmE4l42N2ZW7c8VcZOqGiv8xw+aWsyfZAeP4bhn +JbsJ3E0CAwEAAaOBtzCBtDAdBgNVHQ4EFgQUCJOy2op1pGgl7Qfv1CcgJZvZwYYw +HwYDVR0jBBgwFoAU712nYyivxvN+d0LbneCElQZ9clMwDAYDVR0TBAUwAwEBADAO +BgNVHQ8BAf8EBAMCBPAwNQYDVR0fBC4wLDAqoCigJoYkaHR0cDovL3d3dy5ra2Iu +a3ovY2VydHJvb3Qva2tiY2EuY3JsMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF +BQcDBDANBgkqhkiG9w0BAQQFAAOCAQEAQjgSsxnk7iJHMeFvjPR+q5srO64TpeHr +V95due2645QqFdRRwfvvrnvP4yDTZ6XgjldbSb8C2uNbJR+k7iY7sfcW7x56uTz+ +1uurpGGTw2Sm8rRc8wYJ2Mx5HoOhGs3ZyUUGfzFUejDJnO8GT5d0ArpAqJlC9/kV +D/ziqAx6mdxCM0rxg99FrUn4JMiUt6ASmIJG4c+AvS0/AZPTgz1h7S3hK9MhGh9W +Ud4qp0kGmzKDsgg7hB8T8m1ZF1FQ0Gwn0Lh+HhBllFzehyxTafH5Xp7YXKPS0NE5 +ELZJpMo1SfVlwPdHWRVFDR/RoCIeI2fp9kj2S/Fe7VZSMXuiuGQsYw== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/kkb_keys/config.txt b/kkb_keys/config.txt new file mode 100755 index 0000000..4624fa0 --- /dev/null +++ b/kkb_keys/config.txt @@ -0,0 +1,8 @@ +MERCHANT_CERTIFICATE_ID = "c183d5b8" ; Серийный номер сертификата Cert Serial Number +MERCHANT_NAME = "BATISKAF-KZ.KZ" ; Название магазина (продавца) Shop/merchant Name +PRIVATE_KEY_FN = "../paysys/cert.prv" ; Путь к закрытому ключу Private cert path +PRIVATE_KEY_PASS = "1q2w3e4r" ; Пароль к закрытому ключу Private cert password +XML_TEMPLATE_FN = "../paysys/template.xml" ; Путь к XML шаблону XML template path +XML_COMMAND_TEMPLATE_FN = "../paysys/command_template.xml" ; Путь к XML шаблону для команд (возврат/подтверждение) +PUBLIC_KEY_FN = "../paysys/kkbca.pem" ; Путь к открытому ключу Public cert path +MERCHANT_ID="92210431" ; Терминал ИД в банковской Системе \ No newline at end of file diff --git a/kkb_keys/kkbca.cer b/kkb_keys/kkbca.cer new file mode 100755 index 0000000..9365826 Binary files /dev/null and b/kkb_keys/kkbca.cer differ diff --git a/kkb_keys/kkbsign.cfg b/kkb_keys/kkbsign.cfg new file mode 100755 index 0000000..a47295d --- /dev/null +++ b/kkb_keys/kkbsign.cfg @@ -0,0 +1,10 @@ +keystore= "cert.jks" +alias= "cert" +keypass= "1q2w3e4r" +storepass= "1q2w3e4r" +template= "template.xml" +certificate= "c183d5b8" +merchant_id= "92210431" +currency= "398" +merchant_name= "BATISKAF-KZ.KZ" + diff --git a/store/views.py b/store/views.py index edda55f..7dc43ca 100644 --- a/store/views.py +++ b/store/views.py @@ -16,6 +16,7 @@ from datetime import datetime from django.conf import settings from django.contrib.sitemaps import Sitemap + class CategoryBaseView(object): category = None @@ -160,7 +161,7 @@ class ProductView(CategoryBaseView, DetailView): self.category = self._get_full_category(kwargs['categories']) super(ProductView, self).get(request, args, kwargs) context_data = self.get_context_data() - #context_data['category'] = self.category + # context_data['category'] = self.category form = ProductFeedbackForm(request.POST or None) if form.is_valid(): @@ -300,6 +301,15 @@ def order_print(request, order): return render(request, 'order_print.jinja', c) +def order_kkb(request, order): + order = get_object_or_404(OrderData, pk=order) + import kkb + context = kkb.get_context(order_id='333', amount="666", currency_id="398") + + c = dict(order=order, context=context) + return render(request, 'kkb.jinja', c) + + class ProductSitemap(Sitemap): changefreq = "daily" priority = 0.8 @@ -307,10 +317,10 @@ class ProductSitemap(Sitemap): def items(self): return Product.objects.all() + class CategorySitemap(Sitemap): changefreq = "daily" priority = 0.6 def items(self): return Category.objects.all() - diff --git a/tmp/eml/20150727-192204-4444393088.eml b/tmp/eml/20150727-192204-4444393088.eml new file mode 100644 index 0000000..934d65e --- /dev/null +++ b/tmp/eml/20150727-192204-4444393088.eml @@ -0,0 +1,11 @@ +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit +Subject: =?utf-8?b?W0RqYW5nb10g0J7RhNC+0YDQvNC40LvQuCDQt9Cw0LrQsNC3?= +From: admin@batiskaf-kz.kz +To: spacenergy@me.com, admin@batiskaf-kz.kz +Date: Mon, 27 Jul 2015 13:22:04 -0000 +Message-ID: <20150727132204.59049.16189@macbook-pro.local> + +Смотреть в админке +------------------------------------------------------------------------------- diff --git a/tmp/eml/20150727-192204-4444440896.eml b/tmp/eml/20150727-192204-4444440896.eml new file mode 100644 index 0000000..ae1c1b0 --- /dev/null +++ b/tmp/eml/20150727-192204-4444440896.eml @@ -0,0 +1,28 @@ +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit +Subject: =?utf-8?b?0KDQvtCx0L7RgiBCYXRpc2thZi1rei5reg==?= +From: admin@batiskaf-kz.kz +To: asdfasdf@sadf.com +Date: Mon, 27 Jul 2015 13:22:04 -0000 +Message-ID: <20150727132204.59049.39888@macbook-pro.local> + +Привет, gre! + +Поздравляем, вы успешно оформили заказ. + +Для того, чтобы его было удобнее отслеживать, мы создали для вас аккаунт в нашем интернет-магазине. + +Вы можете войти в него, используя свой номер телефона +7: + +http://batiskaf-kz.kz/account/ + + +Это автоматическое сообщение. Отвечать на него не нужно! + +С Уважением, +Администрация Batiskaf-kz.kz +-- +Skype: batiskaf_kz +Тел: +7 (777) 163-14-34 или +7 (775) 859-12-17 +-------------------------------------------------------------------------------