unionpei 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,31 +1,31 @@
1
- #encoding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- require "date"
3
+ require 'date'
4
4
  require_relative 'sdk_config'
5
5
  require_relative 'acp_service'
6
6
  module UnionPei
7
7
  class Payment
8
8
  class << self
9
9
  @@default_b2c_req = {
10
- "version"=>UnionPei::SDKConfig.instance.version,
11
- "encoding"=>UnionPei::SDKConfig.instance.encoding,
12
- "signMethod"=>UnionPei::SDKConfig.instance.signMethod,
13
- "frontUrl"=>UnionPei::SDKConfig.instance.frontUrl,
14
- "backUrl"=>UnionPei::SDKConfig.instance.backUrl,
15
- "txnType"=>"01",
16
- "txnSubType"=>"01",
17
- "bizType"=>"000201", # 000201 是b2c / 000202 是 b2b
18
- "channelType"=>"07",
19
- "currencyCode"=>"156",
20
- "txnAmt"=>"881000",
21
- "merId"=>"777290058189920",
22
- "orderId"=>DateTime.parse(Time.now.to_s).strftime("%Y%m%d%H%M%S").to_s,
23
- "txnTime"=>DateTime.parse(Time.now.to_s).strftime("%Y%m%d%H%M%S").to_s,
24
- "accessType"=>"0"
10
+ 'version' => UnionPei::SDKConfig.instance.version,
11
+ 'encoding' => UnionPei::SDKConfig.instance.encoding,
12
+ 'signMethod' => UnionPei::SDKConfig.instance.signMethod,
13
+ 'frontUrl' => UnionPei::SDKConfig.instance.frontUrl,
14
+ 'backUrl' => UnionPei::SDKConfig.instance.backUrl,
15
+ 'txnType' => '01',
16
+ 'txnSubType' => '01',
17
+ 'bizType' => '000201', # 000201 是b2c / 000202 是 b2b
18
+ 'channelType' => '07',
19
+ 'currencyCode' => '156',
20
+ 'txnAmt' => '881000',
21
+ 'merId' => '777290058189920',
22
+ 'orderId' => DateTime.parse(Time.now.to_s).strftime('%Y%m%d%H%M%S').to_s,
23
+ 'txnTime' => DateTime.parse(Time.now.to_s).strftime('%Y%m%d%H%M%S').to_s,
24
+ 'accessType' => '0'
25
25
  }
26
26
 
27
27
  # 【默认大于配置】哲学
28
- def b2c(req=@@default_b2c_req)
28
+ def b2c(req = @@default_b2c_req)
29
29
  req = @@default_b2c_req.merge(req)
30
30
  UnionPei::AcpService.sign(req)
31
31
  url = UnionPei::SDKConfig.instance.frontTransUrl
@@ -33,29 +33,29 @@ module UnionPei
33
33
  end
34
34
 
35
35
  @@default_b2b_req = {
36
- "version"=>UnionPei::SDKConfig.instance.version,
37
- "encoding"=>UnionPei::SDKConfig.instance.encoding,
38
- "signMethod"=>UnionPei::SDKConfig.instance.signMethod,
39
- "frontUrl"=>UnionPei::SDKConfig.instance.frontUrl,
40
- "backUrl"=>UnionPei::SDKConfig.instance.backUrl,
41
- "txnType"=>"01",
42
- "txnSubType"=>"01",
43
- "bizType"=>"000202", # 000201 是b2c / 000202 是 b2b,
44
- "channelType"=>"07",
45
- "currencyCode"=>"156",
46
- "txnAmt"=>"881000",
47
- "merId"=>"777290058189920",
48
- "orderId"=>DateTime.parse(Time.now.to_s).strftime("%Y%m%d%H%M%S").to_s,
49
- "txnTime"=>DateTime.parse(Time.now.to_s).strftime("%Y%m%d%H%M%S").to_s,
50
- "accessType"=>"0",
51
- "payTimeout"=>DateTime.parse((Time.now + 15 * 60 * 1000).to_s).strftime("%Y%m%d%H%M%S").to_s,
52
- "bizScene"=> "110001",
53
- "payeeAcctNm"=> "xx商户",
54
- "payeeAcctNo"=> "12345678",
55
- "payeeBankName"=> "xx行"
36
+ 'version' => UnionPei::SDKConfig.instance.version,
37
+ 'encoding' => UnionPei::SDKConfig.instance.encoding,
38
+ 'signMethod' => UnionPei::SDKConfig.instance.signMethod,
39
+ 'frontUrl' => UnionPei::SDKConfig.instance.frontUrl,
40
+ 'backUrl' => UnionPei::SDKConfig.instance.backUrl,
41
+ 'txnType' => '01',
42
+ 'txnSubType' => '01',
43
+ 'bizType' => '000202', # 000201 是b2c / 000202 是 b2b,
44
+ 'channelType' => '07',
45
+ 'currencyCode' => '156',
46
+ 'txnAmt' => '881000',
47
+ 'merId' => '777290058189920',
48
+ 'orderId' => DateTime.parse(Time.now.to_s).strftime('%Y%m%d%H%M%S').to_s,
49
+ 'txnTime' => DateTime.parse(Time.now.to_s).strftime('%Y%m%d%H%M%S').to_s,
50
+ 'accessType' => '0',
51
+ 'payTimeout' => DateTime.parse((Time.now + 15 * 60 * 1000).to_s).strftime('%Y%m%d%H%M%S').to_s,
52
+ 'bizScene' => '110001',
53
+ 'payeeAcctNm' => 'xx商户',
54
+ 'payeeAcctNo' => '12345678',
55
+ 'payeeBankName' => 'xx行'
56
56
  }
57
57
 
58
- def b2b(req=@@default_b2b_req)
58
+ def b2b(req = @@default_b2b_req)
59
59
  req = @@default_b2b_req.merge(req)
60
60
  UnionPei::AcpService.sign(req)
61
61
  url = UnionPei::SDKConfig.instance.frontTransUrl
@@ -63,21 +63,21 @@ module UnionPei
63
63
  end
64
64
 
65
65
  @@default_trans_req = {
66
- "version"=>UnionPei::SDKConfig.instance.version,
67
- "encoding"=>UnionPei::SDKConfig.instance.encoding,
68
- "bizType"=>"000000",
69
- "txnTime"=>DateTime.parse(Time.now.to_s).strftime("%Y%m%d%H%M%S").to_s,
70
- "txnType"=>"00",
71
- "txnSubType"=>"00",
72
- "accessType"=>"0",
73
- "signMethod"=>UnionPei::SDKConfig.instance.signMethod,
74
- "merId"=>"777290058189920",
75
- "orderId"=>DateTime.parse(Time.now.to_s).strftime("%Y%m%d%H%M%S").to_s,
66
+ 'version' => UnionPei::SDKConfig.instance.version,
67
+ 'encoding' => UnionPei::SDKConfig.instance.encoding,
68
+ 'bizType' => '000000',
69
+ 'txnTime' => DateTime.parse(Time.now.to_s).strftime('%Y%m%d%H%M%S').to_s,
70
+ 'txnType' => '00',
71
+ 'txnSubType' => '00',
72
+ 'accessType' => '0',
73
+ 'signMethod' => UnionPei::SDKConfig.instance.signMethod,
74
+ 'merId' => '777290058189920',
75
+ 'orderId' => DateTime.parse(Time.now.to_s).strftime('%Y%m%d%H%M%S').to_s
76
76
  }
77
77
 
78
78
  # query single transaction info
79
79
  # doc https://open.unionpay.com/tjweb/acproduct/APIList?acpAPIId=757&apiservId=448&version=V2.2&bussType=0
80
- def query_trans(req=@@default_trans_req)
80
+ def query_trans(req = @@default_trans_req)
81
81
  req = @@default_trans_req.merge(req)
82
82
  UnionPei::AcpService.sign(req)
83
83
  url = UnionPei::SDKConfig.instance.singleQueryUrl
@@ -86,4 +86,3 @@ module UnionPei
86
86
  end
87
87
  end
88
88
  end
89
-
@@ -1,4 +1,4 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'iniparse'
4
4
  require 'singleton'
@@ -14,62 +14,62 @@ module UnionPei
14
14
  :encoding, :secureKey, :logFilePath, :logLevel
15
15
 
16
16
  def initialize
17
-
18
- path = File.dirname(__FILE__)
19
- ini = IniParse.parse(File.read("#{path}/acp_sdk.ini").force_encoding("UTF-8"))
20
-
21
- @frontTransUrl = ini["acpsdk"]["acpsdk.frontTransUrl"]
22
- @singleQueryUrl = ini["acpsdk"]["acpsdk.singleQueryUrl"]
23
- @backTransUrl = ini["acpsdk"]["acpsdk.backTransUrl"]
24
- @batchTransUrl = ini["acpsdk"]["acpsdk.batchTransUrl"]
25
- @fileTransUrl = ini["acpsdk"]["acpsdk.fileTransUrl"]
26
- @appTransUrl = ini["acpsdk"]["acpsdk.appTransUrl"]
27
- @cardTransUrl = ini["acpsdk"]["acpsdk.cardTransUrl"]
28
-
29
- @jfFrontTransUrl = ini["acpsdk"]["acpsdk.jfFrontTransUrl"]
30
- @jfSingleQueryUrl = ini["acpsdk"]["acpsdk.jfSingleQueryUrl"]
31
- @jfBackTransUrl = ini["acpsdk"]["acpsdk.jfBackTransUrl"]
32
- @jfCardTransUrl = ini["acpsdk"]["acpsdk.jfCardTransUrl"]
33
- @jfAppTransUrl = ini["acpsdk"]["acpsdk.jfAppTransUrl"]
34
-
35
- @qrcBackTransUrl = ini["acpsdk"]["acpsdk.qrcBackTransUrl"]
36
- @qrcB2cIssBackTransUrl = ini["acpsdk"]["acpsdk.qrcB2cIssBackTransUrl"]
37
- @qrcB2cMerBackTransUrl = ini["acpsdk"]["acpsdk.qrcB2cMerBackTransUrl"]
38
-
39
- @signMethod = ini["acpsdk"]["acpsdk.signMethod"]
40
- @signMethod = @signMethod.to_s if !@signMethod.nil?
41
- @version = ini["acpsdk"]["acpsdk.version"]
42
- @version = "5.0.0" if @version.nil?
43
-
44
- @ifValidateCNName = ini["acpsdk"]["acpsdk.ifValidateCNName"]
17
+ ini = parse_acpsdk
18
+ acpsdk = ini['acpsdk']
19
+
20
+ @frontTransUrl = acpsdk['acpsdk.frontTransUrl']
21
+ @singleQueryUrl = acpsdk['acpsdk.singleQueryUrl']
22
+ @backTransUrl = acpsdk['acpsdk.backTransUrl']
23
+ @batchTransUrl = acpsdk['acpsdk.batchTransUrl']
24
+ @fileTransUrl = acpsdk['acpsdk.fileTransUrl']
25
+ @appTransUrl = acpsdk['acpsdk.appTransUrl']
26
+ @cardTransUrl = acpsdk['acpsdk.cardTransUrl']
27
+
28
+ @jfFrontTransUrl = acpsdk['acpsdk.jfFrontTransUrl']
29
+ @jfSingleQueryUrl = acpsdk['acpsdk.jfSingleQueryUrl']
30
+ @jfBackTransUrl = acpsdk['acpsdk.jfBackTransUrl']
31
+ @jfCardTransUrl = acpsdk['acpsdk.jfCardTransUrl']
32
+ @jfAppTransUrl = acpsdk['acpsdk.jfAppTransUrl']
33
+
34
+ @qrcBackTransUrl = acpsdk['acpsdk.qrcBackTransUrl']
35
+ @qrcB2cIssBackTransUrl = acpsdk['acpsdk.qrcB2cIssBackTransUrl']
36
+ @qrcB2cMerBackTransUrl = acpsdk['acpsdk.qrcB2cMerBackTransUrl']
37
+
38
+ @signMethod = acpsdk['acpsdk.signMethod']
39
+ @signMethod = @signMethod.to_s unless @signMethod.nil?
40
+ @version = acpsdk['acpsdk.version']
41
+ @version = '5.0.0' if @version.nil?
42
+
43
+ @ifValidateCNName = acpsdk['acpsdk.ifValidateCNName']
45
44
  @ifValidateCNName = true if @ifValidateCNName.nil?
46
- @ifValidateRemoteCert = ini["acpsdk"]["acpsdk.ifValidateRemoteCert"]
45
+ @ifValidateRemoteCert = acpsdk['acpsdk.ifValidateRemoteCert']
47
46
  @ifValidateRemoteCert = false if @ifValidateRemoteCert.nil?
48
47
 
49
- @signCertPath = ini["acpsdk"]["acpsdk.signCert.path"]
50
- @signCertPwd = ini["acpsdk"]["acpsdk.signCert.pwd"]
51
- @signCertPwd = @signCertPwd.to_s if !@signCertPwd.nil?
48
+ @signCertPath = acpsdk['acpsdk.signCert.path']
49
+ @signCertPwd = acpsdk['acpsdk.signCert.pwd']
50
+ @signCertPwd = @signCertPwd.to_s unless @signCertPwd.nil?
52
51
 
53
- @validateCertDir = ini["acpsdk"]["acpsdk.validateCert.dir"]
54
- @encryptCertPath = ini["acpsdk"]["acpsdk.encryptCert.path"]
55
- @rootCertPath = ini["acpsdk"]["acpsdk.rootCert.path"]
56
- @middleCertPath = ini["acpsdk"]["acpsdk.middleCert.path"]
52
+ @validateCertDir = acpsdk['acpsdk.validateCert.dir']
53
+ @encryptCertPath = acpsdk['acpsdk.encryptCert.path']
54
+ @rootCertPath = acpsdk['acpsdk.rootCert.path']
55
+ @middleCertPath = acpsdk['acpsdk.middleCert.path']
57
56
 
58
- @frontUrl = ini["acpsdk"]["acpsdk.frontUrl"]
59
- @backUrl = ini["acpsdk"]["acpsdk.backUrl"]
57
+ @frontUrl = acpsdk['acpsdk.frontUrl']
58
+ @backUrl = acpsdk['acpsdk.backUrl']
60
59
 
61
- @encoding = ini["acpsdk"]["acpsdk.encoding"]
62
- @secureKey = ini["acpsdk"]["acpsdk.secureKey"]
63
- @secureKey = @secureKey.to_s if !@secureKey.nil?
60
+ @encoding = acpsdk['acpsdk.encoding']
61
+ @secureKey = acpsdk['acpsdk.secureKey']
62
+ @secureKey = @secureKey.to_s unless @secureKey.nil?
64
63
 
65
- @logFilePath = ini["acpsdk"]["acpsdk.log.file.path"]
66
- @logLevel = ini["acpsdk"]["acpsdk.log.level"]
64
+ @logFilePath = acpsdk['acpsdk.log.file.path']
65
+ @logLevel = acpsdk['acpsdk.log.level']
67
66
 
68
67
  @encoding = 'UTF-8'
68
+ end
69
69
 
70
+ def parse_acpsdk
71
+ path = File.dirname(__FILE__)
72
+ @ini ||= IniParse.parse(File.read("#{path}/acp_sdk.ini").force_encoding('UTF-8'))
70
73
  end
71
74
  end
72
75
  end
73
-
74
-
75
-