我花了最后一天试图在我的Rails应用程序中使用它,但不断得到响应:
{"code"=>"E-C-343", "message"=>"Unrecognized JSON Request."}
BancBox的Documentation非常轻松,所以我对如何解决这个问题感到有点陷入僵局。
有没有人使用REST在BancBox上成功调用createClient的API?
使用HTTParty的My Post API调用:
include HTTParty
format :json
def save_with_bancbox(params = {})
post_params = { :authentication => { :apiKey => BANCBOX_KEY,
:secret => BANCBOX_SECRET
},
:subscriberId => BANCBOX_ID,
:firstName => params[:first_name],
:lastName => params[:last_name],
:ssn => params[:ssn],
:dob => params[:dob],
:address => { :line1 => params[:address_line_1],
:line2 => params[:address_line_2],
:city => params[:city],
:state => params[:state],
:zipcode => params[:zipcode]
},
:homePhone => params[:dob],
:email => params[:email]
}
response = HTTParty.post( BANCBOX_REST_URL,
:body => post_params)
logger.debug "Response -- #{response}"
save!
end
答案 0 :(得分:2)
请在更改apikey,secret和subscriberid后尝试以下代码
require "net/https"
require 'rubygems'
require 'json'
require 'httparty'
###########################bancbox.rb in config/initializers#################
BANCBOX_API_KEY = "__KEY__"
BANCBOX_API_SECRET = "__SECRET__"
BANCBOX_SUBSCRIBER_ID = "__SUB_ID__"
BANCBOX_API_URL = "https://sandbox-api.bancbox.com/BBXPortRest"
module Bancbox
class API
include HTTParty
debug_output $stdout
base_uri "#{BANCBOX_API_URL}"
def initialize(u=BANCBOX_API_KEY,p=BANCBOX_API_SECRET)
auth = {:apiKey => u, :secret => p}
@options = {:body => {:authentication =>auth,:subscriberId=>BANCBOX_SUBSCRIBER_ID}, :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }}
end
#USERS
def create_client(options={})
options = options.merge(@options[:body])
@options.merge!({:body => options.to_json})
response = self.class.post("/createClient",@options)
#required_fields- subscriberId,firstName,lastName,ssn,dob,address,homePhone,email
end
def get_schedules(options={})
@options.merge!({:query => {:subscriberId => BANCBOX_SUBSCRIBER_ID}})
@options.merge!({:query => options})
self.class.post("/getSchedules",@options)
end
end
end
b = Bancbox::API .new
b.create_client({:firstName=> "Bipen",:lastName=> "Sasi",:ssn=>"334-444-4444",:dob=> Date.parse("January 1st 1988"), :address=>{:line1=> "4408 walnut st", :line2=>"apt 3r",:city=> "philly",:state=>"pa",:zipcode=>"19110"}, :homePhone=> "2672551161",:email=>"bipen@lokalty.com"})
答案 1 :(得分:0)
我认为您应该将请求发布到
https://sandbox-api.bancbox.com/BBXPortRest/createClient
而不是
https://sandbox-api.bancbox.com/BBXPortRest/
还要确保将内容类型设置为application / json
一般情况下,您将请求发布到https://sandbox-api.bancbox.com/BBXPortRest/<method&gt;