module Bootpay::Cancel

Public Instance Methods

cancel_payment(cancel_id: nil, receipt_id:, cancel_price: nil, cancel_tax_free: 0, cancel_username: '시스템', cancel_message: '결제취소', refund: { account: nil, accountholder: nil, bankcode: nil }) click to toggle source

결제 취소 요청 Comment by Gosomi Date: 2021-05-21

# File lib/bootpay/cancel.rb, line 8
def cancel_payment(cancel_id: nil, receipt_id:, cancel_price: nil, cancel_tax_free: 0, cancel_username: '시스템', cancel_message: '결제취소',
                   refund: { # (선택사항) 가상계좌 환불요청시, 전제조건으로 PG사와 CMS 특약이 체결되어 있을 경우에만 환불요청 가능, 기본적으로 가상계좌는 결제취소가 안됨
                     account: nil, #  환불받을 계좌번호 - 675601***1234
                     accountholder: nil, # 환불받을 계좌주 - 홍길동
                     bankcode: nil # 은행 코드
                   })
  request(
    uri: 'cancel',
    payload:
         {
           cancel_id:       cancel_id.presence || SecureRandom.uuid, # (선택사항) 부분취소 요청시 중복 요청을 방지하기 위한 고유값
           receipt_id:      receipt_id, # 부트페이에서 발급한 영수증 id
           price:           cancel_price, # (선택사항) 부분취소 요청시 금액을 지정, 미지정시 전액 취소 (부분취소가 가능한 PG사, 결제수단에 한해 적용됨)
           tax_free:        cancel_tax_free, # 취소할 비과세 금액
           name:            cancel_username, # 취소 요청자 이름
           reason:          cancel_message, # 취소 요청 사유
           refund:          refund.values.any? {|v|v != nil} ? refund : nil # (선택사항) 가상계좌 환불요청시, 전제조건으로 PG사와 CMS 특약이 체결되어 있을 경우에만 환불요청 가능, 기본적으로 가상계좌는 결제취소가 안됨
         }.compact
  )
end