Testigo inesperado error al Publicar en Shopify de Facturación de la API
Pregunta
Estoy desarrollando un Shopify la aplicación rails.En desarrollo de modo que estoy tratando de crear un nuevo periódica de la aplicación de carga con Shopify de Facturación de la API al hacer esta solicitud POST de mi índice.html.erb:
(function($) {
var url = 'https://test.myshopify.com/admin/recurring_application_charges.json?';
$.ajax({
type: 'POST',
url: url,
crossDomain: true,
async: false,
contentType: "application/json",
dataType: 'jsonp',
data: {"recurring_application_charge": {"name": "Super Duper Plan", "test" : "true", "price": 10.0, "return_url": "http://super-duper.shopifyapps.com", "trial_days": 5}},
jsonp: 'whatever',
success: function(json) {
alert("success " + json);
},
error: function(e) {
console.log(e.message);
}
});
})(jQuery);
Me sale el siguiente error en el navegador de la consola:
Uncaught SyntaxError: Unexpected token : https://test.myshopify.com/admin/recurring_application_charges.json?whatever=jQuery1102022113484237343073_1393499741382&{%22recurring_application_charge%22:%20{%22name%22:%20%22Super%20Duper%20Plan%22,%20%22test%22%20:%20%22true%22,%20%22price%22:%2010.0,%20%22return_url%22:%20%22http://super-duper.shopifyapps.com%22,%20%22trial_days%22:%205%20}&_=1393499741383
y cuando hago clic en el vínculo de error que me lleva a una página que muestra
{"recurring_application_charges":[]}
¿Qué estoy haciendo mal?
Solución
Para obtener acceso a la Shopify API debe especificar:
- un
X-Shopify-Access-Token
dentro de la cabecera de su solicitud - o especificar
apikey:password
dentro de la URL de su intento de acceso.Por ejemplohttps://apikey:password@hostname/admin/resource.json
Sin embargo, tanto el X-Shopify-Access-Token
y apikey
password
combinación debe ser mantenido en secreto.Así que usted no debe incluir los secretos de un código legible (js
o html
).Estas acciones normalmente debe ser iniciada dentro de un controlador.
Por ejemplo, usted podría crear una ChargeController
que llama a la ShopifyAPI::RecurringCharge
método:
class ChargeController < ApplicationController
around_filter :shopify_session
# create new RecurringApplicationCharge
def create
ShopifyAPI::Base.activate_session(...)
ShopifyAPI::RecurringApplicationCharge.create(
name: "Super Duper Plan",
price: 10.0,
test: !Rails.env.production?,
return_url: charge_activate_url,
trial_days: 5
)
end
# activate RecurringApplicationCharge
def update
ShopifyAPI::Base.activate_session(...)
ShopifyAPI::RecurringApplicationCharge.find(params[:charge_id])
end
end
Otros consejos
¿Ha intentado eliminar los datos 'después de y agregar la faltación}?
que te da:
(function($) {
var url = 'https://test.myshopify.com/admin/recurring_application_charges.json?';
$.ajax({
type: 'POST',
url: url,
crossDomain: true,
async: false,
contentType: "application/json",
dataType: 'jsonp',
data: {"recurring_application_charge": {"name": "Super Duper Plan", "test" : "true", "price": 10.0, "return_url": "http://super-duper.shopifyapps.com", "trial_days": 5 }
},
jsonp: 'whatever',
success: function(json) {
alert("success " + json);
},
error: function(e) {
console.log(e.message);
}
});
})(jQuery);