某个支付接口 API 要求提交的数值是以「分」为单位的,比方说要支付 10 块钱,提交的数值得是 1000。
但是我显然不能在网页上叫用户输入 1000 吧......
现在我在 controller 里面用这样的方式:
def process_payment
@card_transaction_details = CardTransactionDetails.new(card_transaction_details_params)
@card_transaction_details.amount = (@card_transaction_details.amount.to_i * 100).to_s
...
# 如果表单没填对
flash.now[:error] = MESSAGE_INVALID_DETAILS
render '填表页'
end
这样支付成功的话没有问题,但是如果表单有问题的话,重新 render 填表页的时候,付款数值那个 field 就会出问题。
比方说还是要支付 10 块钱,数值 field 填 10,然后填表的时候忘了填地址,重新 render 这一页的时候,那个 field 里面就会自动填上 1000,这很危险。
请问正确的 practice 应该是什么啊,thx。