2017-01-23 5 views
1

Привет, мне интересно, как наилучшим образом рассчитать цену, включая НДС для предварительной оплаты продукта. В настоящее время единственным способом, который я нашел, является создание заказа, содержащего товар, а затем получение налога и цены из заказа. Это, однако, создает множество избыточных заказов и кажется оптимальным. Есть ли способ сделать это вычисление без создания заказа?Лучший способ расчета полосы таксомовой цены, включая налог

def get_price 
    location = current_user.location 
    location_data = APP_CONFIG['country_list'][location] 
    currency = location_data['currency'] 
    country_code = location_data['code'] 
    product_id = APP_CONFIG['stripe_reconstruction_ids'][currency] 
    product = Stripe::Product.retrieve(product_id) 
    product_sku = product['skus']['data'][0]['id'] 
    ip = request.remote_ip 

    order = Stripe::Order.create(
    :currency => currency, 
    :customer => current_user.stripe_id, 
    :items => [ 
     { 
      :type => 'sku', 
      :parent => product_sku, 
      :quantity => 1, 
      :currency => currency 
     } 
    ], 
    :email => current_user.email, 
    :metadata => { 
     :buyer_ip => ip, 
     :billing_country_code => country_code, 
     :product_type => 'e-service' 
    } 
) 


    render :json => order, :status => 200 and return 


rescue => error 
    logger.error error.message 
    render :json => { message: "Could not fetch the correct price." }, :status => 500 and return 
end 

UPDATE

После разговора с поддержкой полосовой мое предложение, кажется, лучший способ сделать это в данный момент. Я предложил им, что было бы неплохо, если бы разработчики могли установить флаг в том порядке, что только для информации о ценах можно было бы избежать создания заказа, который впоследствии не будет использоваться для платежа. Они заявили, что предоставят это предложение своим разработчикам. Возможно, у нас будет лучший способ сделать это в будущем.

ответ

3

Вы можете использовать API-адрес Taxamo API Calculate tax конечной точки (Ruby client lib is available).

Обратите внимание, что если параметр buyer_ip должен использоваться в качестве частного токена, в противном случае поле игнорируется.

Пример вызова завиток:

curl -X 'POST' -H "Content-Type: application/json" -d \ 
'{ 
     "transaction": { 
      "currency_code": "EUR", 
      "transaction_lines": [ 
       { 
        "custom_id": "line1", 
        "product_type": "e-service", 
        "amount": 100 
       } 
      ], 
      "billing_country_code": "SOME_COUNTRY_CODE", 
      "buyer_ip": "SOME_IP" 
     }, 
     "private_token": "YOUR_PRIVATE_TOKEN" 
    }' \ 
https://api.taxamo.com/api/v1/tax/calculate | python -m json.tool 

 Смежные вопросы

  • Нет связанных вопросов^_^