2012-11-09 6 views
0

저는 Drupal 6, Ubercart 6.x-2.4 및 Stripe 지불 모듈을 사용하고 있습니다.Drupal/Ubercart가 CC 데이터를 저장하지 않는다고 말하면 "_save_cc_data_to_order"는 무엇입니까?

내 PCI ​​준수를 다시 확인하고 신용 카드 데이터를 내 데이터베이스에 저장하고 싶지는 않지만 내 데이터베이스를보고 uc_orders 테이블에 암호화 된 CC 데이터가 있음을 확인했습니다.

modules/ubercart/payment/uc_credit/uc_credit.module에는 _save_cc_data_to_order이라는 방법이 있습니다. 이 메소드의 내용을 주석 처리하면 주문은 여전히 ​​내 테스트 게이트웨이를 통과하지만 데이터베이스는 더 이상 cc 데이터로 채워지지 않습니다.

ubercart 모듈 코드를 해킹하는 것이 데이터베이스에 CC 데이터를 저장하는 것을 중지하는 효과적인 방법이지만, 필자는 이것이 필요하다고 생각하지 않았습니다.

무슨 일입니까? 내가 관리자/저장소/설정/지불 디버그 모드를 벗어났습니다. 왜 그것이 모든 cc 데이터를 저장하는지 이해할 수 없습니다. 영구적 인 사용자는 필요 없으며 의도적으로 익명의 체크 아웃을 사용했습니다.

답변

1

_save_cc_data_to_order() 3 곳에서 호출됩니다

  • uc_credit_order()의 저장 작업. 디버그 모드 (uc_credit_debug)가 켜지면 전체 지불 세부 정보가 저장됩니다. 디버그 모드가 꺼져 있으면 신용 카드 번호의 마지막 4 자리 숫자 (및 CVV를 제외한 다른 모든 지불 세부 정보)가 저장됩니다.
  • uc_credit_order()의 제출 작업. 디버그 모드가 켜져 있으면 전체 지불 세부 사항을 저장합니다. 디버그 모드가 꺼져 있으면 절대로 호출되지 않습니다.
  • uc_credit_terminal_form_submit(). 디버그 모드가 켜져 있으면 전체 지불 세부 사항을 저장합니다. 디버그 모드가 꺼져 있으면 절대로 호출되지 않습니다.

따라서, 정상적인 상황 (디버그 모드가 꺼져있을 때) 아래 Ubercart 일부 새 니타 이징 정보를 기억한다. 이것이 PCI 준수 요구 사항을 충족하는지 여부는 알 수 없지만 this answer이 도움이 될 수 있습니다.

1

Drupal/Ubercart 설정에서 참조 데이터가 데이터베이스에 저장되지 않는다는 것을 확인하려면 modules/ubercart/payment/uc_credit/uc_credit.module을 수정하고 _save_cc_data_to_order 함수의 내용을 주석으로 처리하십시오.

데이터베이스에서 uc_orders 테이블의 data 열을 모니터링하거나 관리 화면을 사용하여 순서를 확인하여 문제가 없는지 확인할 수 있습니다. 변경 후 CC 데이터는 마지막 4 개도 데이터베이스에 저장되지 않습니다.