Ruby on Rails/EmberJS 응용 프로그램에서 SagePay의 양식 통합 방법을 사용하고 있습니다. 레일스의 복잡한 지불 구조를 다 처리하고 있습니다.Ruby on Rails와 SagePay 양식 통합 구현
즉, SagePay에는 암호화 된 암호화 된 'crypt'문자열이 필요합니다.이 문자열에는 사용자의 청구서 수신 주소, 금액, 후불 리다이렉트 및 기타 거래 데이터가 포함됩니다.
SagePay는 테스트 환경에서 암호화 암호을 제공합니다. 양식 통합 안내서는 crypt를 문자열로 작성한 다음 AES-256과 암호화 암호를 사용하여 암호화 한 다음 Base64가 Sage 테스트 지불 서버로 POSTing 용 문자열을 인코딩하도록합니다. 여기
내가 (암호기 보석 사용)을 구현 한 방법은 다음과 같습니다
string
트랜잭션 데이터가 포함 된 인코딩되지 않은, 암호화되지 않은 크립트 문자열이
def encryptandencode(string)
salt = Time.now.to_i.to_s
secret_key = 'test-server-secret-key-from-sage'
iv = OpenSSL::Cipher::Cipher.new('aes-256-cbc').random_iv
encrypted_value = Encryptor.encrypt(string, :key => secret_key, :iv => iv, :salt => salt)
encoded = Base64.encode64(encrypted_value).encode('utf-8')
return encoded
end
.
문제
암호 화기는 주어진 비밀 키를 사용 거부합니다. 열쇠가 너무 짧다고합니다.
무엇이 여기에 있습니까?
나는 동일한 방법을 사용했는데, 암호화 방법이 V3.00에 적합하지 않습니다. 결국, 나는 클라이언트가 스트라이프로 전환하도록 설득했다. 자신의 문서는 포괄적이고 쉽게 (많은 코드 예제) 따라 할 수있을뿐만 아니라 자연스러운 예측 및 개요 기능을 제공합니다. 수수료가 0.7 % 증가했지만 상인 수수료는 없었습니다. 사방 당선자. – sjmog