2017-02-11 1 views
0

Je crois comprendre d'ici https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/PassKit_PG/Updating.html#//apple_ref/doc/uid/TP40012195-CH5-SW1 le niveau élevé de mise à jour d'une passe. Je suis en mesure d'ajouter avec succès le pass à mon portefeuille, et lors de l'ajout du passe, l'application portefeuille est censé envoyer une demande de poste à une URL comme indiqué ici https://developer.apple.com/library/content/documentation/PassKit/Reference/PassKit_WebService/WebService.html - J'ai mis en place un itinéraire en conséquence (im assez sûr!) Dans les rails. Dans mes itinéraires fichier je:Enregistrement de l'Apple Wallet Pass pour les notifications push

post '/v1/devices/:device_id/registrations/:pass_type_id/:serial_number', to: 'test_wallet#register' 

et dans un fichier contrôleur appelé test_wallet_controller.rb je:

class TestWalletController < ApplicationController 
    def register 
    puts "woohoo we're in!" 
    puts params[:device_id].inspect 

    render :nothing => true, :status => 200 
    end 
end 

La chose bizarre pour moi est que lorsque j'envoie une demande de poste manuellement (comme de Facteur) Je suis capable de frapper cette route et de me connecter "woohoo nous sommes dedans!" mais quand j'ajoute un laissez-passer de portefeuille à mon téléphone et Apple envoie une demande de poste mon serveur se connecte

ERROR -- : app error: No route matches [POST] "/v1/devices/b842730982707582104b371aea99a73f/registrations/pass.io.impacthealth.users/E5982H-I2" (ActionController::RoutingError) 

et de bundle exec rake routes j'ai /v1/devices/:device_id/registrations/:pass_type_id/:serial_number(.:format) pointant vers test_wallet#register (préfixé par POST)

Toute aide serait follement grandement apprécié - merci d'avance! Et s'il vous plaît laissez-moi savoir s'il y a d'autres informations que je peux fournir qui pourraient aider à déboguer cela :)

Répondre

0

Ahh, le problème était que le pass_type_id a quelques périodes dans ce qui causait des rails d'interpréter l'itinéraire différemment de ce que j'avais attendu (et j'avais négligé d'inclure des périodes où j'ai cinglé la route par l'intermédiaire du facteur). On dirait qu'il peut être manipulé comme on le voit ici https://x3ro.de/rails-3-routing-parameters-with-dots/.