Changeset 3269356
- Timestamp:
- 04/09/2025 06:32:48 AM (12 months ago)
- Location:
- mustangpay/trunk/src
- Files:
-
- 3 edited
-
MustangpayApiConstantsV1.php (modified) (4 diffs)
-
MustangpayApiUtilsV1.php (modified) (6 diffs)
-
PaymentGateway.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
mustangpay/trunk/src/MustangpayApiConstantsV1.php
r3266014 r3269356 13 13 //The address is the official testing environment access request address for mustangpay 14 14 // 15 const TEST_BASE_URL = 'https://openapi- dev.mstpay-inc.com';15 const TEST_BASE_URL = 'https://openapi-sandbox.mstpay-inc.com'; 16 16 // Merchant details 17 17 const MERCHANT_ID = ''; … … 53 53 if($name=='mustangPayPublicKey'){ 54 54 return '-----BEGIN PUBLIC KEY----- 55 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjM4l4IHNfeWPktmcfN61LXx7aI4WoMnlpi7 56 YtE+OEwURvJE6Y+u5s3KbbPzLMlR8/ulnlQ7lV4LhlKhUakgVEhmpRtyDONOClnT9r0atdplzczZIEhV 57 k27D5bNq6X1EGidQ1efCk1I8n87n1BoPxu+VQYPHLafjS4Fb9sKJn3u0yEY6u1lx8uxBMDdeyko8XEF 58 ZUy1sf7oj2ipEks8ui1zs4qkAMl7EuHti1uzMpL+Eb+mToeTyvPZaLD4evF0BjirKiH58Yy+47KNWMCzG 59 NBNsTVH28efYW2A3LkOHykFucTasj4wlYd7pyZw30f3ppV5WnLAtoqgtoPnoKC2rPJwIDAQAB 55 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjM4l4IHNfeWPktmcfN61LXx7aI4WoMnlpi7YtE+OEwURvJE6Y+u5s3KbbPzLMlR8/ulnlQ7lV4LhlKhUakgVEhmpRtyDONOClnT9r0atdplzczZIEhVk27D5bNq6X1EGidQ1efCk1I8n87n1BoPxu+VQYPHLafjS4Fb9sKJn3u0yEY6u1lx8uxBMDdeyko8XEFZUy1sf7oj2ipEks8ui1zs4qkAMl7EuHti1uzMpL+Eb+mToeTyvPZaLD4evF0BjirKiH58Yy+47KNWMCzGNBNsTVH28efYW2A3LkOHykFucTasj4wlYd7pyZw30f3ppV5WnLAtoqgtoPnoKC2rPJwIDAQAB 60 56 -----END PUBLIC KEY-----'; 61 57 //return $config->get_option('mustangPayPublicKey'); … … 65 61 } 66 62 if($name=='rsaPublicKey'){ 67 return $config->get_option('rsaPublicKey'); 63 return '-----BEGIN PUBLIC KEY----- 64 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkip3xt6L5hJiLpXH6hpQ1u3ecFdAMoOvhFlAZ/BGzBurI1SnhLIEA7NGd7TgwBTm3AekqHxy6/li3NkOWuQX4ddkYxqWCMjsV/V/TSdTkgeC5h2V1dt7s2jTjuH21NzWG2Muor3FIM4Cof1bEDT8j8+Vi0wxUoYwT3Au9yMqWmyyMphKs6rD6K44Dkuk4Q0eDHybKBjjLSTCtgLPkC1I7B+/P4lfSmMBbsOZUc6ujajOl3VxwzB5EN20LVuUTdLPE9JHI/jpdjsbxDtxbtGRqEs/cw9CTbznFP36jg0wEmha1tBIAqvBthEmcRI7xBPdlIjMZqo+ZjagGnKGhcy3bQIDAQAB 65 -----END PUBLIC KEY-----'; 66 //return $config->get_option('rsaPublicKey'); 68 67 } 69 68 70 69 }else{ 70 71 72 /* test */ 73 71 74 if($name=='mustangPayPublicKey'){ 72 75 return '-----BEGIN PUBLIC KEY----- 73 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkip3xt6L5hJiLpXH6hpQ1u3ecFdAMoOvhF 74 lAZ/BGzBurI1SnhLIEA7NGd7TgwBTm3AekqHxy6/li3NkOWuQX4ddkYxqWCMjsV/V/TSdTkgeC5h2V 75 1dt7s2jTjuH21NzWG2Muor3FIM4Cof1bEDT8j8+Vi0wxUoYwT3Au9yMqWmyyMphKs6rD6K44Dkuk4 76 Q0eDHybKBjjLSTCtgLPkC1I7B+/P4lfSmMBbsOZUc6ujajOl3VxwzB5EN20LVuUTdLPE9JHI/jpdjsbxD 77 txbtGRqEs/cw9CTbznFP36jg0wEmha1tBIAqvBthEmcRI7xBPdlIjMZqo+ZjagGnKGhcy3bQIDAQAB 76 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkip3xt6L5hJiLpXH6hpQ1u3ecFdAMoOvhFlAZ/BGzBurI1SnhLIEA7NGd7TgwBTm3AekqHxy6/li3NkOWuQX4ddkYxqWCMjsV/V/TSdTkgeC5h2V1dt7s2jTjuH21NzWG2Muor3FIM4Cof1bEDT8j8+Vi0wxUoYwT3Au9yMqWmyyMphKs6rD6K44Dkuk4Q0eDHybKBjjLSTCtgLPkC1I7B+/P4lfSmMBbsOZUc6ujajOl3VxwzB5EN20LVuUTdLPE9JHI/jpdjsbxDtxbtGRqEs/cw9CTbznFP36jg0wEmha1tBIAqvBthEmcRI7xBPdlIjMZqo+ZjagGnKGhcy3bQIDAQAB 78 77 -----END PUBLIC KEY-----'; 79 78 //return $config->get_option('mustangPayPublicKey_test'); 80 79 } 81 80 if($name=='rsaPrivateKey'){ 82 /*return '-----BEGIN RSA PRIVATE KEY----- 83 MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAIU+jyWI6QJpBolfXSLtvCpJGGVrh 84 0aEmEuUyxkvtxHk9wFf2CbUE65kl0D2/MDwI05HCecBuVtipWF5VvzUuG0AgDSMgiOONAsKsz3MT 85 GXcIm3LDR/dsJW7TNnxn6lQB9m8YyS1VthR4FmkCTfFlKKqxmJ7/D6DlDaA8lnXvryBAgMBAAECgY 86 ASyAtp5UdA23h8JxjL+louVLDPZO2Du19zMeVB5telelJ122JusLCYgZ3PXrEoagD0AO/so7HSp5A7sd 87 yY1Uwsfnw9huUi9vByXbnmxgHQ+ZS8cESLgFKOTDQk2QCcrh2mtovd6t9fgBy3lcvZqZYlc8l6ynSFz 88 Wh0rAtpyHqgVQJBANcVyAe+T9WLlWpvkleDEF+4P6cDVl0Je0iHTgWj6/9Xc9UFKza0XMdQ59i00jv 89 W3shoiz62JpZa0AsdKJK+hEUCQQCel0v8yiY7mfptBg7nk1gCuxYClwB+l/D5+2IkL2d4RFotDDJFS/K 90 BA6osugMa/nq7eybBQJJR/j0wiuS3ksENAkEA0m5uCR1qUDxDkCHepJ4HTA8gv48lVNss8fXnIN+S 91 ynxOSJDJCbmGuD7wxnWK5p6/0oVuDon50MrCls0NYBzjnQJBAIZ6HMEaWRkpFCTmgjTzyCloot1H 92 VfACvx/6fdnZKI/exeh08xu3rsafaOnMQV3edAwN/WrZajmEsDY9UHwpQPECQEZpHvEiQg6aeCKjc+ 93 ng0Mv0lHcE8Y7J1Fzcm15JlShtuAc6u8gigwOH3/XIIPtAaSuX/4RrYdpEXmSuV1oQcyI= 81 //之前给的 82 /*return '-----BEGIN PRIVATE KEY----- 83 MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCSKnfG3ovmEmIulcfqGlDW7d5wV0Ayg6+EWUBn8EbMG6sjVKeEsgQDs0Z3tODAFObcB6SofHLr+WLc2Q5a5Bfh12RjGpYIyOxX9X9NJ1OSB4LmHZXV23uzaNOO4fbU3NYbYy6ivcUgzgKh/VsQNPyPz5WLTDFShjBPcC73IypabLIymEqzqsPorjgOS6ThDR4MfJsoGOMtJMK2As+QLUjsH78/iV9KYwFuw5lRzq6NqM6XdXHDMHkQ3bQtW5RN0s8T0kcj+Ol2OxvEO3Fu0ZGoSz9zD0JNvOcU/fqODTASaFrW0EgCq8G2ESZxEjvEE92UiMxmqj5mNqAacoaFzLdtAgMBAAECggEASdg2xzwsBcKH4+08IOPGr69hT/RktKCfDghhZ6GWwwu/fIwKThn5uTzbfyLc4W4t7D/YSl8FWH6YGed3Pyg5gJnnV8JYxntsHEwlUn9p0z8EPOn5hx/p8QwmxesXXxdq/E8xgnrJmvc5kUmEtj1u0+EWNlf6Gy08PwX4VFdp0GCQA4LkGsGlQOXUit0OGYa7jvOcJ34lXxCk7/VWgie5Lq2ft05B9437zFZeAxAnvBL4fZ+H4iEyOyoMF0OUFtnffYI4YowsgqD4b/CBEUmfcJTYNqqMraeGLQxh3KwAMMZTUhkfwaboYGfG4guAgjynbsHgblxamZpieZFbrBacqQKBgQDiq+n2AmvhqbnYLzQiyVTGIDTahOkKoUZAKoHlH+2goxJrI04EGZNmX5Ih/Q4QU7snIV0UZvqYIddGyqdRntKu4s6iHKl02qNg85VbQUNIs6ueZjR6TqlM6YkGD1fVvtUbEmYJDjjy3gFw+TROMMJiGVyEWqrDLyHeIkfu2wNQSwKBgQClE/MRzK4VHfJmRJ0PVS52KCGAoAO4toCRijvCSI1CRNMDIroOHxsC4SgjjbwI4IMm5G2GzidHOQA3eCOmW9JxkNQ39TK7PUTKSX1VDflJmnvm6ydM263Gk6lqgUq5f7w6Fr1lFQZwVfMLempZSBA6ff4g++TwNpAsEMkljMz0JwKBgQCHUwdMncl2YfPXwuanVfdMiXHEe9D9Tac5K6d8+QDPBEw8tkkfXX2IgsoljIRW7wYuqFZ/lbNKG/oAA4C808sIKdQfKGlqoBUmDoY+gsn+n3V4DaCK3GdqyYnKmmJf85wam3NbOKh7JltJ7R1zCN0j3+xCADcua/cWPPUg/pQN3QKBgDwpqiPpkeR2Vpq5FPi6lcVQWO105AZU1US1uZPUN09YoAL7jA2Lfp+tCaDzjf06PfJVvCkuRxhpCNAug+ekfW0QWJfQUF33NXP4FqqB/kG6AMAnIdqcEZhWxp7fYil7CVGuafZGFGOqn3qmcc36OpfmxVCmHUkCycaVk4mQ6D1vAoGBAIxVNzbMHHPTxQK5J9ikCk9y2J/nBs9rqhdPS9w+rUiBETCj5C+WN1NaWIFnBZrXwtQ+IpLEDXjHGgQoSl/0yvZB7cN/R/1uYHAOnafx684TEdBHM2VlTaxUdHxOq0u9hyDd2/FWzKdYBvkGNtMk19MwDdaPdYJ19TyGr7C9fLZX 84 -----END PRIVATE KEY-----';*/ 85 // 后台填写的 86 /* return '-----BEGIN RSA PRIVATE KEY----- 87 MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAIU+jyWI6QJpBolfXSLtvCpJGGVrh0aEmEuUyxkvtxHk9wFf2CbUE65kl0D2/MDwI05HCecBuVtipWF5VvzUuG0AgDSMgiOONAsKsz3MTGXcIm3LDR/dsJW7TNnxn6lQB9m8YyS1VthR4FmkCTfFlKKqxmJ7/D6DlDaA8lnXvryBAgMBAAECgYASyAtp5UdA23h8JxjL+louVLDPZO2Du19zMeVB5telelJ122JusLCYgZ3PXrEoagD0AO/so7HSp5A7sdyY1Uwsfnw9huUi9vByXbnmxgHQ+ZS8cESLgFKOTDQk2QCcrh2mtovd6t9fgBy3lcvZqZYlc8l6ynSFzWh0rAtpyHqgVQJBANcVyAe+T9WLlWpvkleDEF+4P6cDVl0Je0iHTgWj6/9Xc9UFKza0XMdQ59i00jvW3shoiz62JpZa0AsdKJK+hEUCQQCel0v8yiY7mfptBg7nk1gCuxYClwB+l/D5+2IkL2d4RFotDDJFS/KBA6osugMa/nq7eybBQJJR/j0wiuS3ksENAkEA0m5uCR1qUDxDkCHepJ4HTA8gv48lVNss8fXnIN+SynxOSJDJCbmGuD7wxnWK5p6/0oVuDon50MrCls0NYBzjnQJBAIZ6HMEaWRkpFCTmgjTzyCloot1HVfACvx/6fdnZKI/exeh08xu3rsafaOnMQV3edAwN/WrZajmEsDY9UHwpQPECQEZpHvEiQg6aeCKjc+ng0Mv0lHcE8Y7J1Fzcm15JlShtuAc6u8gigwOH3/XIIPtAaSuX/4RrYdpEXmSuV1oQcyI= 94 88 -----END RSA PRIVATE KEY-----';*/ 89 95 90 return $config->get_option('rsaPrivateKey_test'); 96 91 } … … 103 98 txbtGRqEs/cw9CTbznFP36jg0wEmha1tBIAqvBthEmcRI7xBPdlIjMZqo+ZjagGnKGhcy3bQIDAQAB 104 99 -----END PUBLIC KEY-----'; 100 105 101 //return $config->get_option('rsaPublicKey_test'); 106 102 } -
mustangpay/trunk/src/MustangpayApiUtilsV1.php
r3266014 r3269356 360 360 $config=new PaymentGateway(); 361 361 362 $sendJson = wp_json_encode(self::encryptToObject($srcBody, RSAUtils::getKeyPem( $config->get_option( 'mustangPayPublicKey' )),$merchant_id),JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);362 $sendJson = wp_json_encode(self::encryptToObject($srcBody, RSAUtils::getKeyPem(MustangpayApiConstantsV1::getKey( 'mustangPayPublicKey' )),$merchant_id),JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); 363 363 364 364 $url=MustangpayApiConstantsV1::geTestMustangPayApiUrl($jumpKey); 365 366 365 367 366 … … 370 369 $accessBody = json_decode($responseStr, true); 371 370 $body = self::merchantDecrypt($accessBody); 372 373 371 374 372 if ($body === null) { … … 396 394 $config=new PaymentGateway(); 397 395 398 $aesKey = RSAUtils::privateDecrypt($encryptKey, RSAUtils::getKeyPem( $config->get_option( 'rsaPrivateKey' )));396 $aesKey = RSAUtils::privateDecrypt($encryptKey, RSAUtils::getKeyPem(MustangpayApiConstantsV1::getKey( 'rsaPrivateKey' ))); 399 397 // Decrypt data using AES 400 398 $originalData = AESUtil::decrypt($encryptData, $aesKey); … … 405 403 //error_log("RSA sign is empty"); 406 404 return null; 407 } 405 } 408 406 409 407 // Remove sign and verify … … 411 409 ksort($originalDataObj); 412 410 $originalDataObjNoSignStr = wp_json_encode($originalDataObj, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); 413 $isVerified = RSAUtils::verify($originalDataObjNoSignStr, RSAUtils::getKeyPem( $config->get_option( 'mustangPayPublicKey' )), $sign);411 $isVerified = RSAUtils::verify($originalDataObjNoSignStr, RSAUtils::getKeyPem(MustangpayApiConstantsV1::getKey( 'mustangPayPublicKey' )), $sign); 414 412 415 413 … … 438 436 // Sign with RSA private key 439 437 $sign = RSAUtils::sign(wp_json_encode($jsonObject, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES), 440 RSAUtils::getKeyPem( $config->get_option( 'rsaPrivateKey')));438 RSAUtils::getKeyPem(MustangpayApiConstantsV1::getKey( 'rsaPrivateKey'))); 441 439 $jsonObject['sign'] = $sign; 442 440 // Encrypt the data with AES 443 441 $aesKey = bin2hex(random_bytes(16)); // Use a UUID as AES key (or random key generation) 444 442 //error_log("AES Key: {$aesKey}"); 443 444 // var_dump($jsonObject);exit; 445 445 446 446 $encryptData = AESUtil::encrypt(wp_json_encode($jsonObject, JSON_UNESCAPED_UNICODE), $aesKey); -
mustangpay/trunk/src/PaymentGateway.php
r3266014 r3269356 120 120 "Production" for live transactions. 121 121 The sandbox activates immediately without any setup.', 'mustangpay' ), 122 'default' => ' Test',122 'default' => 'test', 123 123 'desc_tip' => true, 124 124 'options' => array( 125 'test' => 'Sandbox (Test Mode)',125 'test' => 'Sandbox (Test)', 126 126 'live' => 'Production (Live)', 127 127 ), 128 128 ), 129 130 131 132 133 'merchant_id' => array ( 134 'title' => __( 'Merchant ID (Live)','mustangpay'), 129 'merchant_id_test' => array ( 130 'title' => __( 'Merchant ID(Test)','mustangpay'), 135 131 'type' => 'text', 136 132 'default' => '', … … 138 134 'css' => 'width:400px;', 139 135 'section' => 'default', 140 'description' => __('This is the merchant lD, received from Mustangpay.') 136 'description' => __('This is the merchant lD, received from Mustangpay.'), 141 137 ), 142 /*'mustangPayPublicKey' => array( 143 'title' => __( 'Merchant Key (Live)', 'mustangpay' ), 138 139 /*'mustangPayPublicKey_test' => array( 140 'title' => __( 'Mustangpay Public Key(Test)', 'mustangpay' ), 144 141 'type' => 'textarea', 145 142 'css' => 'width:400px', 146 143 'default'=>'', 147 144 'section' => 'default', 148 'description'=>__('This is the merchant key, received from Mustangpay.') 145 'description'=>__('This is the merchant key, received from Mustangpay.'), 149 146 ),*/ 150 'rsaPrivateKey' => array( 151 'title' => __( 'Merchant Private Key(Live)', 'mustangpay' ), 147 148 'rsaPrivateKey_test' => array( 149 'title' => __( 'Merchant Private Key(Test)', 'mustangpay' ), 152 150 'type' => 'textarea', 153 151 'css' => 'width:400px', 154 152 'default'=>'', 155 153 'section' => 'default', 156 'description'=>'' 154 'description'=>'', 157 155 ), 158 'rsaPublicKey' => array( 156 157 158 159 'merchant_id' => array ( 160 'title' => __( 'Merchant lD(Live)','mustangpay'), 161 'type' => 'text', 162 'default' => '', 163 'description' => '', 164 'css' => 'width:400px;', 165 'section' => 'default', 166 'description' => __('This is the merchant lD, received from Mustangpay.'), 167 ), 168 /*'mustangPayPublicKey' => array( 169 'title' => __( 'Mustangpay Public Key(Live)', 'mustangpay' ), 170 'type' => 'textarea', 171 'css' => 'width:400px', 172 'default'=>'', 173 'section' => 'default', 174 'description'=>__('This is the merchant key, received from Mustangpay.'), 175 ),*/ 176 'rsaPrivateKey' => array( 177 'title' => __( 'Merchant Private Key(Live)', 'mustangpay' ), 178 'type' => 'textarea', 179 'css' => 'width:400px', 180 'default'=>'', 181 'section' => 'default', 182 'description'=>'', 183 ), 184 /* 'rsaPublicKey' => array( 159 185 'title' => __( 'Merchant Public Key (Live)', 'mustangpay' ), 160 186 'type' => 'textarea', … … 163 189 'section' => 'default', 164 190 'description'=>'' 165 ), 191 ),*/ 166 192 167 'merchant_id_test' => array ( 168 'title' => __( 'Merchant ID(TEST Mode)','mustangpay'), 169 'type' => 'text', 170 'default' => '', 171 'description' => '', 172 'css' => 'width:400px;', 173 'section' => 'default', 174 'description' => __('This is the merchant lD, received from Mustangpay.') 175 ), 176 'rsaPrivateKey_test' => array( 177 'title' => __( 'Merchant Private Key', 'mustangpay' ), 178 'type' => 'textarea', 179 'css' => 'width:400px', 180 'default'=>'', 181 'section' => 'default', 182 'description'=>'' 183 ), 193 194 184 195 ); 185 196 } … … 208 219 <?php $this->generate_settings_html(); ?> 209 220 </table> 210 221 211 222 <?php 212 223 }
Note: See TracChangeset
for help on using the changeset viewer.