All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sd.pay.sms1pay.ChargeData.scala Maven / Gradle / Ivy

The newest version!
package sd.pay.sms1pay

import org.apache.commons.codec.digest.HmacUtils.hmacSha256Hex

/** Data of: Nhận request
  *
  * @param access_key Đại diện cho sản phẩm của merchant khai báo trong hệ thống 1pay.vn
  * @param amount Số tiền trừ vào tài khoản khách hàng.
  * @param command_code Là mã dịch vụ của khách hàng. Đăng ký và khai báo trên hệ thống 1Pay. Ví dụ GAME1
  * @param error_code Là mã lỗi 1pay trả về cho khách hàng. Ví dụ:
  * {{{
  * WCG-0000: Giao dịch thành công
  * WCG-0001: Thuê bao không hợp lệ
  * WCG-0002: Dữ liệu CP gửi lên sai
  * WCG-0005 Tài khoản không đủ tiền
  * }}}
  * @param error_message Thông báo lỗi 1Pay gửi về cho merchant
  * @param mo_message Nội dung tin nhắn của khách hàng ở dạng String .Ví dụ: MI NAP10 dunglp
  * @param msisdn Số điện thoại nhắn tin của khách hàng, theo chuẩn international, bắt đầu bằng 84
  * @param request_id Id của tin nhắn ở dạng String
  * @param request_time Thời gian đầu số nhận được tin nhắn, ở dạng iso, ví dụ: 2013-07-06T22:54:50Z
  * @param signature Chữ ký, merchant có thể sử dụng signature để kiểm soát an ninh.
  * @see [[http://developers.1pay.vn/http-apis/smsplus-charging Kiểm tra cú pháp MO]]
  */
case class ChargeData(
    access_key:    String,
    amount:        Int,
    command_code:  String,
    error_code:    String,
    error_message: String,
    mo_message:    String,
    msisdn:        String,
    request_id:    String,
    request_time:  String,
    signature:     String
) extends BaseData {
  def checkSign(secret: String): Boolean = {
    val s = s"access_key=$access_key&amount=$amount&command_code=$command_code&error_code=$error_code&error_message=$error_message&mo_message=$mo_message&msisdn=$msisdn&request_id=$request_id&request_time=$request_time"
    hmacSha256Hex(secret, s) equalsIgnoreCase signature
  }
  lazy val telco = Phone2Telco(msisdn)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy