Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde galera,
Tenho pouco conhecimento no momento em relação ao funcionamento de api restfull com php.
Como realizo esta mesma consulta que consigo em JavaScript e Ajax, porém, com php curl ?
>
Citar
<script>
;(function($, global, undefined) {
var api = 'https://api.melhorenvio.com.br/v1';
var results = $('#results');
var table = $('table', results);
$('#quote').on('click', function() {
results.slideUp(function() {
table.html($('script[type="template/table-header"]').html());
var template = $('script[type="template/table-body"]').html();
$.getJSON(api + '/shipping/services', function(companies) {
companies.forEach(function(company) {
company.services.forEach(function(service) {
table.append(
template
.replace(/__id__/, service.id)
.replace(/__company__/g, company.name)
.replace(/__icon__/, company.icon)
.replace(/__service__/, service.name)
.replace(/__status__/, 'Carregando...')
.replace(/__price__|__delivery_time__d|__discount__/g, '-')
);
(function(service_id) {
var option = $('#option_' + service_id);
$.post(api + '/shipping/calculate', {
from: {
postal_code: $('[name=from]').val(),
// Teste, informações necessárias para municipais como Shippify
address: 'Rua Anita Costa',
number: '1'
},
to: {
postal_code: $('[name=to]').val(),
// Teste, informações necessárias para municipais como Shippify
address: 'Rua Anita Ferraz',
number: '2'
},
package: {
width: $('[name=width]').val(),
height: $('[name=height]').val(),
length: $('[name=length]').val(),
weight: $('[name=weight]').val()
},
options: {
declared_value: $('[name=declared_value]').val(),
own_hand: $('[name=own_hand]').is(':checked') ? 1 : 0,
receipt: $('[name=receipt]').is(':checked') ? 1 : 0
},
filters: {
id: [service_id]
}
})
.done(function(companies) {
var service = companies[0].services[0];
if (service.status) {
$('.status', option).addClass('text-success').html('Disponível');
$('.price', option).html('R$ ' + service.price.toFixed(2).replace('.', ','));
$('.delivery_time', option).html(service.delivery_time + ' dia' + (service.delivery_time > 0 ? 's' : ''));
$('.discount', option).html('R$ ' + service.discount.toFixed(2).replace('.', ','));
} else {
$('.status', option).addClass('text-danger').html('Indisponível');
setTimeout(function() {
option.fadeOut(function() {
option.remove();
});
}, 3000);
}
})
.fail(function() {
$('.status', option).addClass('text-danger').html('Indisponível');
setTimeout(function() {
option.remove();
}, 3000);
});
})(service.id);
});
});
results.slideDown();
});
});
});
})(jQuery, this);
</script>
Obrigado pela atenção galera,
Att. Marcelo.Carregando comentários...