def get_cred(): payment_module = config_get_group('PAYMENT_GOOGLE') live = payment_live(payment_module) # get key and value if live: merchant_id = payment_module.MERCHANT_ID.value merchant_key = payment_module.MERCHANT_KEY.value else: merchant_id = payment_module.MERCHANT_TEST_ID.value merchant_key = payment_module.MERCHANT_TEST_KEY.value return (merchant_id, merchant_key)
def get_url(): """ Returns the urls needed """ (merchant_id, merchant_key) = get_cred() payment_module = config_get_group('PAYMENT_GOOGLE') live = payment_live(payment_module) if live: url_template = payment_module.POST_URL.value else: url_template = payment_module.POST_TEST_URL.value post_url = url_template % {'MERCHANT_ID' : merchant_id} return post_url
def pay_ship_render_form(request, form, template, payment_module, cart): template = lookup_template(payment_module, template) if cart.numItems > 0: products = [item.product for item in cart.cartitem_set.all()] sale = find_best_auto_discount(products) else: sale = None ctx = RequestContext(request, { 'form': form, 'sale' : sale, 'PAYMENT_LIVE': payment_live(payment_module), }) return render_to_response(template, ctx)
def confirm_info(request): payment_module = config_get_group('PAYMENT_GOOGLE') if not 'orderID' in request.session: url = lookup_url(payment_module, 'satchmo_checkout-step1') return http.HttpResponseRedirect(url) tempCart = Cart.objects.from_request(request) if tempCart.numItems == 0: template = lookup_template(payment_module, 'shop/checkout/empty_cart.html') return render_to_response(template, RequestContext(request)) try: order = Order.objects.from_request(request) except Order.DoesNotExist: order = None if not (order and order.validate(request)): context = RequestContext(request, {'message': _('Your order is no longer valid.')}) return render_to_response('shop/404.html', context) live = payment_live(payment_module) gcart = GoogleCart(order, payment_module, live) log.debug("CART:\n%s", gcart.cart_xml) template = lookup_template(payment_module, 'shop/checkout/confirm.html') if live: merchant_id = payment_module.MERCHANT_ID.value url_template = payment_module.POST_URL.value else: merchant_id = payment_module.MERCHANT_TEST_ID.value url_template = payment_module.POST_TEST_URL.value post_url = url_template % {'MERCHANT_ID' : merchant_id} default_view_tax = config_value('TAX', 'DEFAULT_VIEW_TAX') ctx = RequestContext(request, { 'order': order, 'post_url': post_url, 'default_view_tax': default_view_tax, 'google_cart' : gcart.encoded_cart(), 'google_signature' : gcart.encoded_signature(), 'PAYMENT_LIVE' : live }) return render_to_response(template, ctx)
def _onForm(self, controller): """Show the confirmation page for the order. Looks up the proper template for the payment_module. """ template = controller.lookup_template('CONFIRM') controller.order.recalculate_total() base_env = { 'PAYMENT_LIVE' : payment_live(controller.paymentModule), 'default_view_tax' : controller.viewTax, 'order': controller.order, 'errors': controller.processorMessage, 'checkout_step2': controller.lookup_url('satchmo_checkout-step2')} if controller.extra_context: base_env.update(controller.extra_context) context = RequestContext(self.request, base_env) return render_to_response(template, context)
def confirm_info(request): payment_module = config_get_group('PAYMENT_GOOGLE') controller = confirm.ConfirmController(request, payment_module) if not controller.sanity_check(): return controller.response live = payment_live(payment_module) gcart = GoogleCart(controller.order, payment_module, live) log.debug("CART:\n%s", gcart.cart_xml) post_url = auth.get_url() default_view_tax = config_value('TAX', 'DEFAULT_VIEW_TAX') ctx = { 'post_url': post_url, 'google_cart' : gcart.encoded_cart(), 'google_signature' : gcart.encoded_signature(), 'PAYMENT_LIVE' : live } controller.extra_context = ctx controller.confirm() return controller.response
def confirm_info(request): payment_module = config_get_group("PAYMENT_PAYPAL") try: order = Order.objects.from_request(request) except Order.DoesNotExist: url = lookup_url(payment_module, "satchmo_checkout-step1") return HttpResponseRedirect(url) tempCart = Cart.objects.from_request(request) if tempCart.numItems == 0: template = lookup_template(payment_module, "shop/checkout/empty_cart.html") return render_to_response(template, RequestContext(request)) # Check if the order is still valid if not order.validate(request): context = RequestContext(request, {"message": _("Your order is no longer valid.")}) return render_to_response("shop/404.html", context) template = lookup_template(payment_module, "shop/checkout/paypal/confirm.html") if payment_module.LIVE.value: log.debug("live order on %s", payment_module.KEY.value) url = payment_module.POST_URL.value account = payment_module.BUSINESS.value else: url = payment_module.POST_TEST_URL.value account = payment_module.BUSINESS_TEST.value try: address = lookup_url(payment_module, payment_module.RETURN_ADDRESS.value, include_server=True) except urlresolvers.NoReverseMatch: address = payment_module.RETURN_ADDRESS.value processor_module = payment_module.MODULE.load_module("processor") processor = processor_module.PaymentProcessor(payment_module) processor.create_pending_payment(order=order) default_view_tax = config_value("TAX", "DEFAULT_VIEW_TAX") recurring = None order_items = order.orderitem_set.all() for item in order_items: if item.product.is_subscription: recurring = {"product": item.product, "price": item.product.price_set.all()[0].price} trial0 = recurring["product"].subscriptionproduct.get_trial_terms(0) if len(order_items) > 1 or trial0 is not None or recurring["price"] < order.balance: recurring["trial1"] = {"price": order.balance} if trial0 is not None: recurring["trial1"]["expire_length"] = trial0.expire_length recurring["trial1"]["expire_unit"] = trial0.expire_unit[0] # else: # recurring['trial1']['expire_length'] = recurring['product'].subscriptionproduct.get_trial_terms(0).expire_length trial1 = recurring["product"].subscriptionproduct.get_trial_terms(1) if trial1 is not None: recurring["trial2"]["expire_length"] = trial1.expire_length recurring["trial2"]["expire_unit"] = trial1.expire_unit[0] recurring["trial2"]["price"] = trial1.price ctx = RequestContext( request, { "order": order, "post_url": url, "default_view_tax": default_view_tax, "business": account, "currency_code": payment_module.CURRENCY_CODE.value, "return_address": address, "invoice": order.id, "subscription": recurring, "PAYMENT_LIVE": payment_live(payment_module), }, ) return render_to_response(template, ctx)
def confirm_info(request): payment_module = config_get_group('PAYMENT_PAYPAL') try: order = Order.objects.from_request(request) except Order.DoesNotExist: url = lookup_url(payment_module, 'satchmo_checkout-step1') return HttpResponseRedirect(url) tempCart = Cart.objects.from_request(request) if tempCart.numItems == 0: template = lookup_template(payment_module, 'shop/checkout/empty_cart.html') return render_to_response(template, RequestContext(request)) # Check if the order is still valid if not order.validate(request): context = RequestContext(request, {'message': _('Your order is no longer valid.')}) return render_to_response('shop/404.html', context) template = lookup_template(payment_module, 'shop/checkout/paypal/confirm.html') if payment_module.LIVE.value: log.debug("live order on %s", payment_module.KEY.value) url = payment_module.POST_URL.value account = payment_module.BUSINESS.value else: url = payment_module.POST_TEST_URL.value account = payment_module.BUSINESS_TEST.value try: address = lookup_url(payment_module, payment_module.RETURN_ADDRESS.value, include_server=True) except urlresolvers.NoReverseMatch: address = payment_module.RETURN_ADDRESS.value processor_module = payment_module.MODULE.load_module('processor') processor = processor_module.PaymentProcessor(payment_module) processor.create_pending_payment(order=order) default_view_tax = config_value('TAX', 'DEFAULT_VIEW_TAX') recurring = None order_items = order.orderitem_set.all() for item in order_items: if item.product.is_subscription: recurring = {'product':item.product, 'price':item.product.price_set.all()[0].price,} trial0 = recurring['product'].subscriptionproduct.get_trial_terms(0) if len(order_items) > 1 or trial0 is not None or recurring['price'] < order.balance: recurring['trial1'] = {'price': order.balance,} if trial0 is not None: recurring['trial1']['expire_length'] = trial0.expire_length recurring['trial1']['expire_unit'] = trial0.expire_unit[0] # else: # recurring['trial1']['expire_length'] = recurring['product'].subscriptionproduct.get_trial_terms(0).expire_length trial1 = recurring['product'].subscriptionproduct.get_trial_terms(1) if trial1 is not None: recurring['trial2']['expire_length'] = trial1.expire_length recurring['trial2']['expire_unit'] = trial1.expire_unit[0] recurring['trial2']['price'] = trial1.price ctx = RequestContext(request, {'order': order, 'post_url': url, 'default_view_tax': default_view_tax, 'business': account, 'currency_code': payment_module.CURRENCY_CODE.value, 'return_address': address, 'invoice': order.id, 'subscription': recurring, 'PAYMENT_LIVE' : payment_live(payment_module) }) return render_to_response(template, ctx)