Esempio n. 1
0
    def post(self, request, *args, **kwargs):
        try:
            package_id = request.POST.get('package_id')
            order = VIPOrder.create_order(request.user, int(package_id))
            if order:
                log.info('****** order id: {} ******'.format(order.id))
                order.pay_type = VIPOrder.PAY_TYPE_BY_ALIPAY_APP
                out_trade_no = create_trade_id(order.id)
                order.outtradeno = out_trade_no
                order.save()
                result = {'order_id': order.id}

                alipay_client_config = AlipayClientConfig()
                alipay_client_config.app_id = smart_str(settings.ALIPAY_APP_INFO['basic_info']['APP_ID'])
                alipay_client_config.sign_type = smart_str(settings.ALIPAY_APP_INFO['other_info']['SIGN_TYPE'])
                with open(settings.ALIPAY_APP_INFO['basic_info']['APP_PRIVATE_KEY'], 'r') as fp:
                    alipay_client_config.app_private_key = fp.read()

                client = DefaultAlipayClient(alipay_client_config=alipay_client_config)

                model = AlipayTradeAppPayModel()
                model.total_amount = smart_str(str_to_specify_digits(str(order.price)))
                model.product_code = smart_str("QUICK_MSECURITY_PAY")
                model.body = smart_str(order.name)
                model.subject = smart_str(order.name)
                model.out_trade_no = smart_str(out_trade_no)
                model.passback_params = smart_str(settings.LMS_ROOT_URL + reverse("vip_purchase"))

                request = AlipayTradeAppPayRequest(biz_model=model)
                request.notify_url = smart_str(settings.ALIPAY_APP_INFO['other_info']['NOTIFY_URL'])
                result['alipay_request'] = client.sdk_execute(request)

                return Response(data=result)
        except Exception, e:
            log.exception(e)
Esempio n. 2
0
    def get(self, request, *args, **kwargs):
        try:
            package_id = request.GET.get('package_id')
            order = VIPOrder.create_order(request.user, int(package_id))
            if order:
                order.pay_type = VIPOrder.PAY_TYPE_BY_ALIPAY_APP
                out_trade_no = create_trade_id(order.id)
                order.outtradeno = out_trade_no
                order.save()
                result = {'order_id': order.id}

                alipay_client_config = AlipayClientConfig()
                alipay_client_config.app_id = smart_str(
                    settings.ALIPAY_APP_INFO['basic_info']['APP_ID'])
                alipay_client_config.sign_type = smart_str(
                    settings.ALIPAY_APP_INFO['other_info']['SIGN_TYPE'])
                with open(
                        settings.ALIPAY_APP_INFO['basic_info']
                    ['APP_PRIVATE_KEY'], 'r') as fp:
                    alipay_client_config.app_private_key = fp.read()

                client = DefaultAlipayClient(
                    alipay_client_config=alipay_client_config)

                model = AlipayTradeWapPayModel()
                model.total_amount = smart_str(
                    str_to_specify_digits(str(order.price)))
                model.product_code = smart_str("QUICK_WAP_WAY")
                model.subject = smart_str(_(order.name))
                model.out_trade_no = smart_str(out_trade_no)
                # 返回页面时不使用缓存
                quit_url = settings.LMS_ROOT_URL + reverse(
                    "vip_alipay_h5_result")
                model.quit_url = smart_str(quit_url)
                model.passback_params = smart_str(settings.LMS_ROOT_URL +
                                                  reverse("vip_purchase"))

                request = AlipayTradeWapPayRequest(biz_model=model)
                request.notify_url = smart_str(
                    settings.ALIPAY_APP_INFO['other_info']['NOTIFY_URL'])
                result['alipay_request'] = client.sdk_execute(request)
                log.error(SERVER_URL + "?" + result['alipay_request'])
                data = {
                    'alipay_url': SERVER_URL + "?" + result['alipay_request'],
                    'order_id': order.id
                }
                return Response(xresult(data=data))
        except Exception, e:
            log.exception(e)
Esempio n. 3
0
 def get_pay_html(self, body, subject, total_fee, http_host, order_id):
     """
     get alipay html
     # 支付信息,订单号必须唯一
     """
     extra_common_param = settings.LMS_ROOT_URL + reverse("vip_purchase")
     total_fee = str_to_specify_digits(str(total_fee))
     trade_id = create_trade_id(order_id)
     pay_html = create_direct_pay_by_user(
         trade_id,
         body,
         subject,
         total_fee,
         http_host,
         extra_common_param=extra_common_param)
     return pay_html